@cat-factory/worker 0.74.2 → 0.75.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/D1SharedStackRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1SharedStackRepository.js +6 -4
- package/dist/infrastructure/repositories/D1SharedStackRepository.js.map +1 -1
- package/migrations/0042_shared_stacks_prerequisites.sql +11 -0
- package/package.json +17 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1SharedStackRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1SharedStackRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"D1SharedStackRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1SharedStackRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,WAAW,EACX,qBAAqB,EAEtB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AA+D3D;;;;;;GAMG;AACH,qBAAa,uBAAwB,YAAW,qBAAqB;IACnE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAMtE;IAEK,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAMtD;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CnE;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3D;CACF"}
|
|
@@ -30,6 +30,7 @@ function rowToStack(row) {
|
|
|
30
30
|
envFiles: parseJsonArray(row.env_files),
|
|
31
31
|
managedNetworks: parseJsonArray(row.managed_networks),
|
|
32
32
|
setupSteps: parseJsonArray(row.setup_steps),
|
|
33
|
+
prerequisites: parseJsonArray(row.prerequisites),
|
|
33
34
|
healthGate: parseHealthGate(row.health_gate),
|
|
34
35
|
allowHostCommands: row.allow_host_commands === 1,
|
|
35
36
|
status: row.status,
|
|
@@ -68,9 +69,9 @@ export class D1SharedStackRepository {
|
|
|
68
69
|
await this.db
|
|
69
70
|
.prepare(`INSERT INTO shared_stacks
|
|
70
71
|
(workspace_id, id, name, clone_url, git_ref, compose_files, compose_profiles,
|
|
71
|
-
env_files, managed_networks, setup_steps,
|
|
72
|
-
status, last_error, created_at, updated_at)
|
|
73
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
72
|
+
env_files, managed_networks, setup_steps, prerequisites, health_gate,
|
|
73
|
+
allow_host_commands, status, last_error, created_at, updated_at)
|
|
74
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
74
75
|
ON CONFLICT (workspace_id, id) DO UPDATE SET
|
|
75
76
|
name = excluded.name,
|
|
76
77
|
clone_url = excluded.clone_url,
|
|
@@ -80,12 +81,13 @@ export class D1SharedStackRepository {
|
|
|
80
81
|
env_files = excluded.env_files,
|
|
81
82
|
managed_networks = excluded.managed_networks,
|
|
82
83
|
setup_steps = excluded.setup_steps,
|
|
84
|
+
prerequisites = excluded.prerequisites,
|
|
83
85
|
health_gate = excluded.health_gate,
|
|
84
86
|
allow_host_commands = excluded.allow_host_commands,
|
|
85
87
|
status = excluded.status,
|
|
86
88
|
last_error = excluded.last_error,
|
|
87
89
|
updated_at = excluded.updated_at`)
|
|
88
|
-
.bind(workspaceId, stack.id, stack.name, stack.cloneUrl, stack.gitRef, JSON.stringify(stack.composeFiles), JSON.stringify(stack.composeProfiles), JSON.stringify(stack.envFiles), JSON.stringify(stack.managedNetworks), JSON.stringify(stack.setupSteps), stack.healthGate ? JSON.stringify(stack.healthGate) : null, stack.allowHostCommands ? 1 : 0, stack.status, stack.lastError, stack.createdAt, stack.updatedAt)
|
|
90
|
+
.bind(workspaceId, stack.id, stack.name, stack.cloneUrl, stack.gitRef, JSON.stringify(stack.composeFiles), JSON.stringify(stack.composeProfiles), JSON.stringify(stack.envFiles), JSON.stringify(stack.managedNetworks), JSON.stringify(stack.setupSteps), JSON.stringify(stack.prerequisites), stack.healthGate ? JSON.stringify(stack.healthGate) : null, stack.allowHostCommands ? 1 : 0, stack.status, stack.lastError, stack.createdAt, stack.updatedAt)
|
|
89
91
|
.run();
|
|
90
92
|
}
|
|
91
93
|
async remove(workspaceId, id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1SharedStackRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1SharedStackRepository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"D1SharedStackRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1SharedStackRepository.ts"],"names":[],"mappings":"AA+BA,SAAS,cAAc,CAAI,IAAY;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAAc,CAAC,CAAC,CAAC,EAAE,CAAA;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAmB;IAC1C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/B,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,MAA2B,CAAC,CAAC,CAAC,IAAI,CAAA;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAmB;IACrC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,YAAY,EAAE,cAAc,CAAS,GAAG,CAAC,aAAa,CAAC;QACvD,eAAe,EAAE,cAAc,CAAS,GAAG,CAAC,gBAAgB,CAAC;QAC7D,QAAQ,EAAE,cAAc,CAAgB,GAAG,CAAC,SAAS,CAAC;QACtD,eAAe,EAAE,cAAc,CAAS,GAAG,CAAC,gBAAgB,CAAC;QAC7D,UAAU,EAAE,cAAc,CAAa,GAAG,CAAC,WAAW,CAAC;QACvD,aAAa,EAAE,cAAc,CAAe,GAAG,CAAC,aAAa,CAAC;QAC9D,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;QAC5C,iBAAiB,EAAE,GAAG,CAAC,mBAAmB,KAAK,CAAC;QAChD,MAAM,EAAE,GAAG,CAAC,MAA2B;QACvC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,uBAAuB;IACjB,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAsB;QACpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,WAAmB,EAAE,EAAU;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;aACtB,OAAO,CAAC,+DAA+D,CAAC;aACxE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;aACrB,KAAK,EAAkB,CAAA;QAC1B,OAAO,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,WAAmB;QAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;aAC9B,OAAO,CAAC,4EAA4E,CAAC;aACrF,IAAI,CAAC,WAAW,CAAC;aACjB,GAAG,EAAkB,CAAA;QACxB,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,KAAkB;QAClD,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN;;;;;;;;;;;;;;;;;;;4CAmBoC,CACrC;aACA,IAAI,CACH,WAAW,EACX,KAAK,CAAC,EAAE,EACR,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,MAAM,EACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,EAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,EACrC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAC9B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,EACrC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAChC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EACnC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAC1D,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC/B,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CAChB;aACA,GAAG,EAAE,CAAA;IACV,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,EAAU;QAC1C,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CAAC,6DAA6D,CAAC;aACtE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;aACrB,GAAG,EAAE,CAAA;IACV,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
-- Shared-stack preflight prerequisites (stack-recipes-and-shared-stacks initiative — see
|
|
2
|
+
-- docs/initiatives/stack-recipes-and-shared-stacks.md, slice 6 follow-up).
|
|
3
|
+
--
|
|
4
|
+
-- A shared stack now declares its own machine-prerequisite checks (mkcert CA / hosts entries /
|
|
5
|
+
-- ECR login — the acme-shared-services M-rows), re-run at the START of every bring-up so a stale
|
|
6
|
+
-- ECR token or a missing hosts entry fails fast with copy-paste remediation instead of a mystery
|
|
7
|
+
-- deep inside a 40-image pull. Same `PreflightRef[]` vocabulary a consumer recipe declares,
|
|
8
|
+
-- stored as text JSON (mirroring the existing recipe-shaped JSON columns on this table). The
|
|
9
|
+
-- probes are runtime-bound to the local facade's host Docker daemon, but the declaration is
|
|
10
|
+
-- fully symmetric across D1 ⇄ Drizzle (asserted by the cross-runtime conformance suite).
|
|
11
|
+
ALTER TABLE shared_stacks ADD COLUMN prerequisites TEXT NOT NULL DEFAULT '[]';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/worker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.75.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,21 +42,21 @@
|
|
|
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.40.
|
|
46
|
-
"@cat-factory/
|
|
47
|
-
"@cat-factory/
|
|
48
|
-
"@cat-factory/
|
|
49
|
-
"@cat-factory/
|
|
50
|
-
"@cat-factory/
|
|
51
|
-
"@cat-factory/gitlab": "0.7.
|
|
52
|
-
"@cat-factory/
|
|
53
|
-
"@cat-factory/
|
|
54
|
-
"@cat-factory/
|
|
55
|
-
"@cat-factory/
|
|
56
|
-
"@cat-factory/
|
|
57
|
-
"@cat-factory/provider-cloudflare": "0.7.
|
|
58
|
-
"@cat-factory/spend": "0.11.
|
|
59
|
-
"@cat-factory/server": "0.94.
|
|
45
|
+
"@cat-factory/agents": "0.40.6",
|
|
46
|
+
"@cat-factory/consensus": "0.9.20",
|
|
47
|
+
"@cat-factory/contracts": "0.111.0",
|
|
48
|
+
"@cat-factory/eks": "0.1.19",
|
|
49
|
+
"@cat-factory/gates": "0.4.17",
|
|
50
|
+
"@cat-factory/caching": "0.4.21",
|
|
51
|
+
"@cat-factory/gitlab": "0.7.20",
|
|
52
|
+
"@cat-factory/kernel": "0.101.2",
|
|
53
|
+
"@cat-factory/observability-langfuse": "0.7.152",
|
|
54
|
+
"@cat-factory/prompt-fragments": "0.10.19",
|
|
55
|
+
"@cat-factory/integrations": "0.74.0",
|
|
56
|
+
"@cat-factory/orchestration": "0.84.0",
|
|
57
|
+
"@cat-factory/provider-cloudflare": "0.7.161",
|
|
58
|
+
"@cat-factory/spend": "0.11.3",
|
|
59
|
+
"@cat-factory/server": "0.94.3"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@cloudflare/vitest-pool-workers": "^0.18.0",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"typescript": "7.0.1-rc",
|
|
65
65
|
"vitest": "^4.1.9",
|
|
66
66
|
"wrangler": "^4.107.0",
|
|
67
|
-
"@cat-factory/conformance": "0.10.
|
|
67
|
+
"@cat-factory/conformance": "0.10.41"
|
|
68
68
|
},
|
|
69
69
|
"scripts": {
|
|
70
70
|
"build": "tsc -b tsconfig.build.json",
|