AI Gateway Go 0.10.0 源码快照 + 旗舰版需求规划报告

M0-M7 已完成:核心网关(身份/RBAC/TOTP/OIDC/SAML/Provider/配额/路由/内容策略/审计/定价)+ 资源市场(MCP/Skills/数字员工)。
含 22 个 PostgreSQL 迁移、管理端/门户端前端源码、OpenAPI 契约、部署 compose。

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
ben
2026-08-12 11:45:54 +08:00
commit 5759c1862e
807 changed files with 114727 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
package gateway
import "testing"
func TestUsageCollectorReadsOpenAIJSON(t *testing.T) {
collector := &usageCollector{}
collector.feed([]byte(`{"usage":{"prompt_tokens":11,"completion_tokens":7,"total_tokens":18}}`))
if got := collector.tokens(); got != 18 {
t.Fatalf("got %d, want 18", got)
}
}
func TestUsageCollectorReadsChunkedSSEAndAnthropicUsage(t *testing.T) {
collector := &usageCollector{sse: true}
collector.feed([]byte("event: message_start\ndata: {\"message\":{\"usage\":{\"input_tokens\":13}}}\n\n"))
collector.feed([]byte("event: message_delta\ndata: {\"usage\":{\"output_"))
collector.feed([]byte("tokens\":9}}\n\ndata: [DONE]\n\n"))
if got := collector.tokens(); got != 22 {
t.Fatalf("got %d, want 22", got)
}
}