@cat-factory/worker 0.88.1 → 0.90.0
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.
- package/dist/infrastructure/repositories/D1PlatformMetricsRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1PlatformMetricsRepository.js +25 -8
- package/dist/infrastructure/repositories/D1PlatformMetricsRepository.js.map +1 -1
- package/dist/infrastructure/repositories/D1PublicApiKeyRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1PublicApiKeyRepository.js +4 -3
- package/dist/infrastructure/repositories/D1PublicApiKeyRepository.js.map +1 -1
- package/migrations/0053_public_api_key_scopes.sql +9 -0
- package/package.json +18 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1PlatformMetricsRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1PlatformMetricsRepository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAW3D,qBAAa,2BAA4B,YAAW,yBAAyB;IAC3E,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAe7F;IAEK,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAkBlC;IAEK,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAejC;IAEK,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgB1E;IAEK,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"D1PlatformMetricsRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1PlatformMetricsRepository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAW3D,qBAAa,2BAA4B,YAAW,yBAAyB;IAC3E,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAe7F;IAEK,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAkBlC;IAEK,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAejC;IAEK,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgB1E;IAEK,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,qBAAqB,CAAC,CA6ChC;CACF"}
|
|
@@ -75,22 +75,39 @@ export class D1PlatformMetricsRepository {
|
|
|
75
75
|
return counts;
|
|
76
76
|
}
|
|
77
77
|
async durationStatsSince(accountId, sinceEpochMs) {
|
|
78
|
+
// avg/min/max AND the p50/p90/p99 percentiles over ONE scan of the same terminal-run set.
|
|
79
|
+
// SQLite has no percentile aggregate, so the inner query tags each duration with its
|
|
80
|
+
// cumulative fraction (`row_number() / count()`, ORDER BY duration) and the outer query
|
|
81
|
+
// takes the smallest duration whose fraction crosses each threshold — the discrete
|
|
82
|
+
// nearest-rank percentile, matching Postgres `percentile_disc` (conformance pins parity).
|
|
78
83
|
const row = await this.db
|
|
79
84
|
.prepare(`SELECT COUNT(*) AS count,
|
|
80
|
-
AVG(
|
|
81
|
-
MIN(
|
|
82
|
-
MAX(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
85
|
+
AVG(d) AS avg_ms,
|
|
86
|
+
MIN(d) AS min_ms,
|
|
87
|
+
MAX(d) AS max_ms,
|
|
88
|
+
MIN(CASE WHEN cume >= 0.5 THEN d END) AS p50_ms,
|
|
89
|
+
MIN(CASE WHEN cume >= 0.9 THEN d END) AS p90_ms,
|
|
90
|
+
MIN(CASE WHEN cume >= 0.99 THEN d END) AS p99_ms
|
|
91
|
+
FROM (
|
|
92
|
+
SELECT (updated_at - created_at) AS d,
|
|
93
|
+
CAST(ROW_NUMBER() OVER (ORDER BY (updated_at - created_at)) AS REAL)
|
|
94
|
+
/ COUNT(*) OVER () AS cume
|
|
95
|
+
FROM agent_runs
|
|
96
|
+
WHERE workspace_id IN (${ACCOUNT_WORKSPACES}) AND created_at >= ?
|
|
97
|
+
AND status IN ('done', 'failed')
|
|
98
|
+
)`)
|
|
86
99
|
.bind(accountId, sinceEpochMs)
|
|
87
100
|
.first();
|
|
88
101
|
const count = Number(row?.count ?? 0);
|
|
102
|
+
const at = (v) => (count > 0 && v != null ? Number(v) : null);
|
|
89
103
|
return {
|
|
90
104
|
count,
|
|
91
105
|
avgMs: count > 0 && row?.avg_ms != null ? Math.round(Number(row.avg_ms)) : null,
|
|
92
|
-
minMs:
|
|
93
|
-
maxMs:
|
|
106
|
+
minMs: at(row?.min_ms),
|
|
107
|
+
maxMs: at(row?.max_ms),
|
|
108
|
+
p50Ms: at(row?.p50_ms),
|
|
109
|
+
p90Ms: at(row?.p90_ms),
|
|
110
|
+
p99Ms: at(row?.p99_ms),
|
|
94
111
|
};
|
|
95
112
|
}
|
|
96
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1PlatformMetricsRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1PlatformMetricsRepository.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"D1PlatformMetricsRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1PlatformMetricsRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1PublicApiKeyRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1PublicApiKeyRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"D1PublicApiKeyRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1PublicApiKeyRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAErF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AA4B3D,uEAAuE;AACvE,qBAAa,wBAAyB,YAAW,sBAAsB;IACrE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,GAAG,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBnD;IAEK,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAM5D;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAUxE;IAEK,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpD;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOvE;CACF"}
|
|
@@ -4,6 +4,7 @@ function rowToRecord(row) {
|
|
|
4
4
|
accountId: row.account_id,
|
|
5
5
|
workspaceId: row.workspace_id,
|
|
6
6
|
label: row.label,
|
|
7
|
+
scope: row.scope,
|
|
7
8
|
secretHash: row.secret_hash,
|
|
8
9
|
createdAt: row.created_at,
|
|
9
10
|
lastUsedAt: row.last_used_at,
|
|
@@ -19,9 +20,9 @@ export class D1PublicApiKeyRepository {
|
|
|
19
20
|
async add(record) {
|
|
20
21
|
await this.db
|
|
21
22
|
.prepare(`INSERT INTO public_api_keys
|
|
22
|
-
(id, account_id, workspace_id, label, secret_hash, created_at, last_used_at, revoked_at)
|
|
23
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
24
|
-
.bind(record.id, record.accountId, record.workspaceId, record.label, record.secretHash, record.createdAt, record.lastUsedAt, record.revokedAt)
|
|
23
|
+
(id, account_id, workspace_id, label, scope, secret_hash, created_at, last_used_at, revoked_at)
|
|
24
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
25
|
+
.bind(record.id, record.accountId, record.workspaceId, record.label, record.scope, record.secretHash, record.createdAt, record.lastUsedAt, record.revokedAt)
|
|
25
26
|
.run();
|
|
26
27
|
}
|
|
27
28
|
async getById(id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1PublicApiKeyRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1PublicApiKeyRepository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"D1PublicApiKeyRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1PublicApiKeyRepository.ts"],"names":[],"mappings":"AAgBA,SAAS,WAAW,CAAC,GAAoB;IACvC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK,EAAE,GAAG,CAAC,KAAuB;QAClC,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,UAAU,EAAE,GAAG,CAAC,YAAY;QAC5B,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAA;AACH,CAAC;AAED,uEAAuE;AACvE,MAAM,OAAO,wBAAwB;IAClB,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAsB;QACpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAA0B;QAClC,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN;;4CAEoC,CACrC;aACA,IAAI,CACH,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,SAAS,CACjB;aACA,GAAG,EAAE,CAAA;IACV,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;aACtB,OAAO,CAAC,4CAA4C,CAAC;aACrD,IAAI,CAAC,EAAE,CAAC;aACR,KAAK,EAAmB,CAAA;QAC3B,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAmB;QACvC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;aAC9B,OAAO,CACN;;mCAE2B,CAC5B;aACA,IAAI,CAAC,WAAW,CAAC;aACjB,GAAG,EAAmB,CAAA;QACzB,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,EAAU;QACnC,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CAAC,0DAA0D,CAAC;aACnE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;aACZ,GAAG,EAAE,CAAA;IACV,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,EAAU,EAAE,EAAU;QACtD,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN,oGAAoG,CACrG;aACA,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC;aACzB,GAAG,EAAE,CAAA;IACV,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
-- Per-key permission scopes for the inbound public-API keys (initiative: public API expansion,
|
|
2
|
+
-- item #13). A key now carries a `scope` on the `/api/v1` surface — an inclusive ladder
|
|
3
|
+
-- (read ⊂ write ⊂ admin) the controller gates each endpoint on: reads need `read`, non-destructive
|
|
4
|
+
-- mutations need `write`, and destructive / merge-adjacent operations (e.g. DELETE a task) need
|
|
5
|
+
-- `admin`. Existing keys backfill to `write` — they keep every capability the surface shipped
|
|
6
|
+
-- before scopes existed (all of it read/write-level) but do NOT auto-gain the new destructive
|
|
7
|
+
-- power, which must be minted explicitly. Mirrored on Node by the `scope` column on the Drizzle
|
|
8
|
+
-- `public_api_keys` table.
|
|
9
|
+
ALTER TABLE public_api_keys ADD COLUMN scope TEXT NOT NULL DEFAULT 'write';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/worker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.90.0",
|
|
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.62.
|
|
46
|
-
"@cat-factory/consensus": "0.10.
|
|
47
|
-
"@cat-factory/contracts": "0.
|
|
48
|
-
"@cat-factory/eks": "0.1.
|
|
49
|
-
"@cat-factory/
|
|
50
|
-
"@cat-factory/
|
|
51
|
-
"@cat-factory/
|
|
52
|
-
"@cat-factory/kernel": "0.
|
|
53
|
-
"@cat-factory/
|
|
54
|
-
"@cat-factory/observability-otel": "0.1.
|
|
55
|
-
"@cat-factory/
|
|
56
|
-
"@cat-factory/orchestration": "0.
|
|
57
|
-
"@cat-factory/
|
|
58
|
-
"@cat-factory/
|
|
59
|
-
"@cat-factory/
|
|
60
|
-
"@cat-factory/
|
|
45
|
+
"@cat-factory/agents": "0.62.3",
|
|
46
|
+
"@cat-factory/consensus": "0.10.64",
|
|
47
|
+
"@cat-factory/contracts": "0.143.0",
|
|
48
|
+
"@cat-factory/eks": "0.1.91",
|
|
49
|
+
"@cat-factory/gates": "0.5.48",
|
|
50
|
+
"@cat-factory/caching": "0.10.0",
|
|
51
|
+
"@cat-factory/gitlab": "0.10.10",
|
|
52
|
+
"@cat-factory/kernel": "0.136.0",
|
|
53
|
+
"@cat-factory/observability-langfuse": "0.7.218",
|
|
54
|
+
"@cat-factory/observability-otel": "0.1.12",
|
|
55
|
+
"@cat-factory/prompt-fragments": "0.13.32",
|
|
56
|
+
"@cat-factory/orchestration": "0.119.0",
|
|
57
|
+
"@cat-factory/integrations": "0.85.0",
|
|
58
|
+
"@cat-factory/server": "0.130.0",
|
|
59
|
+
"@cat-factory/provider-cloudflare": "0.7.235",
|
|
60
|
+
"@cat-factory/spend": "0.12.44"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@cloudflare/vitest-pool-workers": "^0.18.0",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"typescript": "7.0.2",
|
|
66
66
|
"vitest": "^4.1.10",
|
|
67
67
|
"wrangler": "^4.110.0",
|
|
68
|
-
"@cat-factory/conformance": "0.11.
|
|
68
|
+
"@cat-factory/conformance": "0.11.7"
|
|
69
69
|
},
|
|
70
70
|
"scripts": {
|
|
71
71
|
"build": "tsc -b tsconfig.build.json",
|