@cat-factory/worker 0.98.0 → 0.99.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1LlmCallMetricRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1LlmCallMetricRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAoE3D,iEAAiE;AACjE,qBAAa,yBAA0B,YAAW,uBAAuB;IACvE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"D1LlmCallMetricRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1LlmCallMetricRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAoE3D,iEAAiE;AACjE,qBAAa,yBAA0B,YAAW,uBAAuB;IACvE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDjD;IAEK,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAoBnC;IAEK,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,EAAE,CAAC,CAa1B;IAEK,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAmDjC;IAEK,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOtD;CACF"}
|
|
@@ -40,6 +40,15 @@ export class D1LlmCallMetricRepository {
|
|
|
40
40
|
this.db = db;
|
|
41
41
|
}
|
|
42
42
|
async record(metric) {
|
|
43
|
+
// First write wins (see the port). The harness-call recorder deliberately re-offers a
|
|
44
|
+
// deterministic id — the terminal write repeats calls the live poll drain already stored,
|
|
45
|
+
// and a durable-driver replay repeats the lot — so ignoring the repeat is what makes those
|
|
46
|
+
// paths idempotent. Never an UPSERT: overwriting would invalidate the row's stored prompt
|
|
47
|
+
// delta, which is only meaningful against the chain tip that preceded its FIRST write.
|
|
48
|
+
// `ON CONFLICT(id)`, NOT `INSERT OR IGNORE`: the latter also swallows NOT NULL/CHECK
|
|
49
|
+
// violations, so a malformed metric would vanish here while still throwing on Postgres.
|
|
50
|
+
// This mirrors the Drizzle repo's `onConflictDoNothing({ target: id })` exactly — only a
|
|
51
|
+
// duplicate id is ignored.
|
|
43
52
|
await this.db
|
|
44
53
|
.prepare(`INSERT INTO llm_call_metrics
|
|
45
54
|
(id, workspace_id, execution_id, agent_kind, provider, model, created_at,
|
|
@@ -47,7 +56,8 @@ export class D1LlmCallMetricRepository {
|
|
|
47
56
|
prompt_tokens, cached_prompt_tokens, completion_tokens, total_tokens, finish_reason,
|
|
48
57
|
upstream_ms, overhead_ms, total_ms, ok, http_status, error_message,
|
|
49
58
|
prompt_text, prompt_prefix_count, prompt_hash, response_text, reasoning_text)
|
|
50
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
59
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
60
|
+
ON CONFLICT(id) DO NOTHING`)
|
|
51
61
|
.bind(metric.id, metric.workspaceId, metric.executionId, metric.agentKind, metric.provider, metric.model, metric.createdAt, metric.streaming ? 1 : 0, metric.messageCount, metric.toolCount, metric.requestMaxTokens, metric.promptTokens, metric.cachedPromptTokens, metric.completionTokens, metric.totalTokens, metric.finishReason, metric.upstreamMs, metric.overheadMs, metric.totalMs, metric.ok ? 1 : 0, metric.httpStatus, metric.errorMessage, metric.promptText, metric.promptPrefixCount, metric.promptHash, metric.responseText, metric.reasoningText)
|
|
52
62
|
.run();
|
|
53
63
|
}
|
|
@@ -57,8 +67,14 @@ export class D1LlmCallMetricRepository {
|
|
|
57
67
|
.prepare(
|
|
58
68
|
// message_count breaks a same-millisecond createdAt tie in chain order (it
|
|
59
69
|
// grows monotonically as the conversation appends); id is the last resort.
|
|
70
|
+
// `message_count > 0` skips rows that can never BE a tip: a subagent call carries no
|
|
71
|
+
// re-sendable prompt chain (empty prompt, count 0), and such calls interleave with the
|
|
72
|
+
// parent's in real time now that telemetry streams. Letting one become the tip makes
|
|
73
|
+
// the next parent call unchainable, so it stores its whole prompt instead of a delta —
|
|
74
|
+
// the compression this chain exists for, lost for the rest of the run. Mirrors the
|
|
75
|
+
// Drizzle repo.
|
|
60
76
|
`SELECT message_count, prompt_hash FROM llm_call_metrics
|
|
61
|
-
WHERE workspace_id = ? AND execution_id = ? AND agent_kind = ?
|
|
77
|
+
WHERE workspace_id = ? AND execution_id = ? AND agent_kind = ? AND message_count > 0
|
|
62
78
|
ORDER BY created_at DESC, message_count DESC, id DESC
|
|
63
79
|
LIMIT 1`)
|
|
64
80
|
.bind(workspaceId, executionId, agentKind)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1LlmCallMetricRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1LlmCallMetricRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,GAK3B,MAAM,qBAAqB,CAAA;AAG5B,+EAA+E;AAC/E,+EAA+E;AAC/E,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAgCtF,SAAS,WAAW,CAAC,GAAc;IACjC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,SAAS,KAAK,CAAC;QAC9B,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,gBAAgB,EAAE,GAAG,CAAC,kBAAkB;QACxC,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,kBAAkB,EAAE,GAAG,CAAC,oBAAoB;QAC5C,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;QACvC,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC;QAChB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,iBAAiB,EAAE,GAAG,CAAC,mBAAmB;QAC1C,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,aAAa,EAAE,GAAG,CAAC,cAAc;KAClC,CAAA;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,OAAO,yBAAyB;IACnB,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAsB;QACpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAqB;QAChC,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN
|
|
1
|
+
{"version":3,"file":"D1LlmCallMetricRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1LlmCallMetricRepository.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/worker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.99.1",
|
|
4
4
|
"description": "Reusable Cloudflare Worker library (Hono + D1) exposing the Agent Architecture Board core: the `createApp()` Hono factory, the default fetch/scheduled/queue handler, and the Durable Object + Workflow classes. Deployments (see deploy/backend) supply the wrangler.toml + config and re-export these.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -42,22 +42,22 @@
|
|
|
42
42
|
"pino": "^10.3.1",
|
|
43
43
|
"valibot": "^1.4.2",
|
|
44
44
|
"workers-ai-provider": "^3.3.1",
|
|
45
|
-
"@cat-factory/agents": "0.
|
|
46
|
-
"@cat-factory/caching": "0.10.
|
|
47
|
-
"@cat-factory/consensus": "0.11.
|
|
48
|
-
"@cat-factory/contracts": "0.
|
|
49
|
-
"@cat-factory/eks": "0.1.
|
|
50
|
-
"@cat-factory/gates": "0.7.
|
|
51
|
-
"@cat-factory/gitlab": "0.11.
|
|
52
|
-
"@cat-factory/integrations": "0.
|
|
53
|
-
"@cat-factory/kernel": "0.
|
|
54
|
-
"@cat-factory/observability-langfuse": "0.7.
|
|
55
|
-
"@cat-factory/observability-otel": "0.2.
|
|
56
|
-
"@cat-factory/orchestration": "0.
|
|
57
|
-
"@cat-factory/prompt-fragments": "0.14.
|
|
58
|
-
"@cat-factory/provider-cloudflare": "0.7.
|
|
59
|
-
"@cat-factory/server": "0.
|
|
60
|
-
"@cat-factory/spend": "0.12.
|
|
45
|
+
"@cat-factory/agents": "0.69.0",
|
|
46
|
+
"@cat-factory/caching": "0.10.33",
|
|
47
|
+
"@cat-factory/consensus": "0.11.29",
|
|
48
|
+
"@cat-factory/contracts": "0.160.0",
|
|
49
|
+
"@cat-factory/eks": "0.1.128",
|
|
50
|
+
"@cat-factory/gates": "0.7.20",
|
|
51
|
+
"@cat-factory/gitlab": "0.11.20",
|
|
52
|
+
"@cat-factory/integrations": "0.92.0",
|
|
53
|
+
"@cat-factory/kernel": "0.154.0",
|
|
54
|
+
"@cat-factory/observability-langfuse": "0.7.251",
|
|
55
|
+
"@cat-factory/observability-otel": "0.2.34",
|
|
56
|
+
"@cat-factory/orchestration": "0.135.1",
|
|
57
|
+
"@cat-factory/prompt-fragments": "0.14.7",
|
|
58
|
+
"@cat-factory/provider-cloudflare": "0.7.279",
|
|
59
|
+
"@cat-factory/server": "0.144.1",
|
|
60
|
+
"@cat-factory/spend": "0.12.77"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@cloudflare/vitest-pool-workers": "^0.18.6",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"typescript": "7.0.2",
|
|
66
66
|
"vitest": "^4.1.10",
|
|
67
67
|
"wrangler": "^4.112.0",
|
|
68
|
-
"@cat-factory/conformance": "0.11.
|
|
68
|
+
"@cat-factory/conformance": "0.11.60"
|
|
69
69
|
},
|
|
70
70
|
"scripts": {
|
|
71
71
|
"build": "tsc -b tsconfig.build.json",
|