@cat-factory/worker 0.81.2 → 0.81.3

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.
@@ -8,6 +8,7 @@ export declare class D1WorkspaceMountRepository implements WorkspaceMountReposit
8
8
  });
9
9
  listByWorkspace(workspaceId: string): Promise<WorkspaceMount[]>;
10
10
  listByService(serviceId: string): Promise<WorkspaceMount[]>;
11
+ listByServiceIds(serviceIds: string[]): Promise<WorkspaceMount[]>;
11
12
  listWorkspaceIdsMountingBlock(originWorkspaceId: string, blockId: string): Promise<string[]>;
12
13
  countByServiceIds(serviceIds: string[]): Promise<Record<string, number>>;
13
14
  get(workspaceId: string, serviceId: string): Promise<WorkspaceMount | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"D1WorkspaceMountRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceMountRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAuB3D,4FAA4F;AAC5F,qBAAa,0BAA2B,YAAW,wBAAwB;IACzE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAMpE;IAEK,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAMhE;IAEK,6BAA6B,CACjC,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;IAEK,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgB7E;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAMhF;IAEK,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBjD;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9F;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlE;IAEK,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAU1D;CACF"}
1
+ {"version":3,"file":"D1WorkspaceMountRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceMountRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAuB3D,4FAA4F;AAC5F,qBAAa,0BAA2B,YAAW,wBAAwB;IACzE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAMpE;IAEK,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAMhE;IAEK,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAetE;IAEK,6BAA6B,CACjC,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;IAEK,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgB7E;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAMhF;IAEK,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBjD;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9F;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlE;IAEK,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAU1D;CACF"}
@@ -28,6 +28,22 @@ export class D1WorkspaceMountRepository {
28
28
  .all();
29
29
  return (results ?? []).map(rowToMount);
30
30
  }
31
+ async listByServiceIds(serviceIds) {
32
+ if (serviceIds.length === 0)
33
+ return [];
34
+ const mounts = [];
35
+ // Chunk the IN list to stay under D1's bound-parameter limit.
36
+ for (const chunk of chunkForIn(serviceIds)) {
37
+ const placeholders = chunk.map(() => '?').join(', ');
38
+ const { results } = await this.db
39
+ .prepare(`SELECT * FROM workspace_services WHERE service_id IN (${placeholders}) ORDER BY created_at`)
40
+ .bind(...chunk)
41
+ .all();
42
+ for (const row of results ?? [])
43
+ mounts.push(rowToMount(row));
44
+ }
45
+ return mounts;
46
+ }
31
47
  async listWorkspaceIdsMountingBlock(originWorkspaceId, blockId) {
32
48
  // One join: the service owning the block → the workspaces that mount it. A block with no
33
49
  // service makes the subquery NULL, which matches no rows (`service_id = NULL`) → empty.
@@ -1 +1 @@
1
- {"version":3,"file":"D1WorkspaceMountRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceMountRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"D1WorkspaceMountRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceMountRepository.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { WorkspaceRepository, WorkspaceVisibility } from '@cat-factory/kernel';
1
+ import type { ServiceRehome, WorkspaceRepository, WorkspaceVisibility } from '@cat-factory/kernel';
2
2
  import type { Workspace } from '@cat-factory/contracts';
3
3
  import type { D1Database } from '@cloudflare/workers-types';
4
4
  export declare class D1WorkspaceRepository implements WorkspaceRepository {
@@ -13,6 +13,6 @@ export declare class D1WorkspaceRepository implements WorkspaceRepository {
13
13
  create(workspace: Workspace, ownerUserId: string | null, accountId: string | null): Promise<void>;
14
14
  rename(id: string, name: string): Promise<void>;
15
15
  setDescription(id: string, description: string | null): Promise<void>;
16
- delete(id: string): Promise<void>;
16
+ delete(id: string, rehome?: ServiceRehome[]): Promise<void>;
17
17
  }
18
18
  //# sourceMappingURL=D1WorkspaceRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"D1WorkspaceRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAG3D,qBAAa,qBAAsB,YAAW,mBAAmB;IAC/D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAsBlE;IAEK,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAM/C;IAEK,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAO5D;IAEK,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAO9D;IAEK,MAAM,CACV,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC,IAAI,CAAC,CAcf;IAEK,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpD;IAEK,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1E;IAEK,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAStC;CACF"}
1
+ {"version":3,"file":"D1WorkspaceRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAClG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAG3D,qBAAa,qBAAsB,YAAW,mBAAmB;IAC/D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAsBlE;IAEK,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAM/C;IAEK,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAO5D;IAEK,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAO9D;IAEK,MAAM,CACV,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC,IAAI,CAAC,CAcf;IAEK,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpD;IAEK,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1E;IAEK,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,aAAa,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDpE;CACF"}
@@ -63,9 +63,44 @@ export class D1WorkspaceRepository {
63
63
  .bind(description, id)
64
64
  .run();
65
65
  }
66
- async delete(id) {
67
- // Cascade explicitly: D1 does not enforce foreign keys by default.
66
+ async delete(id, rehome = []) {
67
+ // Cascade explicitly: D1 does not enforce foreign keys by default. The service/mount rows
68
+ // MUST be reclaimed BEFORE the blocks they reference are dropped (their subqueries read
69
+ // `blocks`). A deleted board that leaves its account-owned services behind is not a cosmetic
70
+ // leak: `services` is account-scoped and looked up by (installation_id, repo_github_id), so a
71
+ // dangling service (its frame block gone) keeps the SAME repo from being re-added on any other
72
+ // board in the account — the exact "already linked / already exists" failure a board delete
73
+ // used to cause. Mirror any change in the Node facade's DrizzleWorkspaceRepository.delete.
74
+ //
75
+ // Re-home FIRST (before the cascade reads `blocks`): move each shared service's blocks + run
76
+ // history to a surviving mounting board by re-stamping their `workspace_id`. Blocks are found
77
+ // by `service_id` (not workspace), so after the move the service's frame no longer lives in
78
+ // THIS workspace — the cascade below then skips it (its frame is not in this board's blocks),
79
+ // leaving the service, its subtree and every OTHER board's mount intact.
80
+ const rehomeStatements = rehome.flatMap(({ serviceId, toWorkspaceId }) => [
81
+ this.db
82
+ .prepare(`UPDATE agent_runs SET workspace_id = ? WHERE block_id IN
83
+ (SELECT id FROM blocks WHERE service_id = ?)`)
84
+ .bind(toWorkspaceId, serviceId),
85
+ this.db
86
+ .prepare('UPDATE blocks SET workspace_id = ? WHERE service_id = ?')
87
+ .bind(toWorkspaceId, serviceId),
88
+ ]);
68
89
  await this.db.batch([
90
+ ...rehomeStatements,
91
+ // Every board's mount of a service this workspace HOMES (its frame block lives here).
92
+ this.db
93
+ .prepare(`DELETE FROM workspace_services WHERE service_id IN
94
+ (SELECT id FROM services WHERE frame_block_id IN
95
+ (SELECT id FROM blocks WHERE workspace_id = ?))`)
96
+ .bind(id),
97
+ // This workspace's OWN mounts of services homed elsewhere (shared services it mounted).
98
+ this.db.prepare('DELETE FROM workspace_services WHERE workspace_id = ?').bind(id),
99
+ // The account-owned services this workspace homes — the repo↔frame link that must be freed.
100
+ this.db
101
+ .prepare('DELETE FROM services WHERE frame_block_id IN (SELECT id FROM blocks WHERE workspace_id = ?)')
102
+ .bind(id),
103
+ this.db.prepare('DELETE FROM environments WHERE workspace_id = ?').bind(id),
69
104
  // agent_runs holds both execution and bootstrap runs (migration 0019).
70
105
  this.db.prepare('DELETE FROM agent_runs WHERE workspace_id = ?').bind(id),
71
106
  this.db.prepare('DELETE FROM blocks WHERE workspace_id = ?').bind(id),
@@ -1 +1 @@
1
- {"version":3,"file":"D1WorkspaceRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"D1WorkspaceRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ -- Archive marker for a service frame. An archived service (`archived = 1`) is hidden from the
2
+ -- board projection along with its whole subtree, but every row is preserved so it can be
3
+ -- restored at any time with no expiry. This is the non-destructive alternative to deleting a
4
+ -- service that still has unfinished tasks. Mirrored on Node by the `archived` column on the
5
+ -- Drizzle `blocks` table.
6
+ ALTER TABLE blocks ADD COLUMN archived INTEGER;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/worker",
3
- "version": "0.81.2",
3
+ "version": "0.81.3",
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.52.4",
46
- "@cat-factory/caching": "0.6.23",
47
- "@cat-factory/consensus": "0.10.23",
48
- "@cat-factory/contracts": "0.123.0",
49
- "@cat-factory/eks": "0.1.46",
50
- "@cat-factory/gates": "0.5.8",
51
- "@cat-factory/gitlab": "0.7.46",
52
- "@cat-factory/integrations": "0.80.1",
53
- "@cat-factory/kernel": "0.117.1",
54
- "@cat-factory/observability-langfuse": "0.7.178",
55
- "@cat-factory/orchestration": "0.102.5",
56
- "@cat-factory/prompt-fragments": "0.13.7",
57
- "@cat-factory/provider-cloudflare": "0.7.194",
58
- "@cat-factory/server": "0.107.1",
59
- "@cat-factory/spend": "0.12.4"
45
+ "@cat-factory/agents": "0.52.5",
46
+ "@cat-factory/caching": "0.6.24",
47
+ "@cat-factory/consensus": "0.10.24",
48
+ "@cat-factory/contracts": "0.123.1",
49
+ "@cat-factory/eks": "0.1.47",
50
+ "@cat-factory/gates": "0.5.9",
51
+ "@cat-factory/gitlab": "0.7.47",
52
+ "@cat-factory/integrations": "0.80.2",
53
+ "@cat-factory/kernel": "0.117.2",
54
+ "@cat-factory/observability-langfuse": "0.7.179",
55
+ "@cat-factory/orchestration": "0.102.6",
56
+ "@cat-factory/prompt-fragments": "0.13.8",
57
+ "@cat-factory/provider-cloudflare": "0.7.195",
58
+ "@cat-factory/server": "0.107.2",
59
+ "@cat-factory/spend": "0.12.5"
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.80"
67
+ "@cat-factory/conformance": "0.10.81"
68
68
  },
69
69
  "scripts": {
70
70
  "build": "tsc -b tsconfig.build.json",