@cat-factory/server 0.295.0 → 0.296.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.
Files changed (45) hide show
  1. package/dist/agents/toolServers.d.ts.map +1 -1
  2. package/dist/agents/toolServers.js +15 -1
  3. package/dist/agents/toolServers.js.map +1 -1
  4. package/dist/app.d.ts.map +1 -1
  5. package/dist/app.js +10 -0
  6. package/dist/app.js.map +1 -1
  7. package/dist/index.d.ts +1 -0
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/modules/agentKinds/AgentKindsController.d.ts +46 -0
  12. package/dist/modules/agentKinds/AgentKindsController.d.ts.map +1 -0
  13. package/dist/modules/agentKinds/AgentKindsController.js +56 -0
  14. package/dist/modules/agentKinds/AgentKindsController.js.map +1 -0
  15. package/dist/modules/persistence/PersistenceController.d.ts.map +1 -1
  16. package/dist/modules/persistence/PersistenceController.js +6 -161
  17. package/dist/modules/persistence/PersistenceController.js.map +1 -1
  18. package/dist/modules/persistence/dispatchScope.d.ts +16 -0
  19. package/dist/modules/persistence/dispatchScope.d.ts.map +1 -0
  20. package/dist/modules/persistence/dispatchScope.js +307 -0
  21. package/dist/modules/persistence/dispatchScope.js.map +1 -0
  22. package/dist/persistence/agentKinds.d.ts +43 -0
  23. package/dist/persistence/agentKinds.d.ts.map +1 -0
  24. package/dist/persistence/agentKinds.js +99 -0
  25. package/dist/persistence/agentKinds.js.map +1 -0
  26. package/dist/persistence/rpc-allowlist-libraries.d.ts +4 -0
  27. package/dist/persistence/rpc-allowlist-libraries.d.ts.map +1 -0
  28. package/dist/persistence/rpc-allowlist-libraries.js +209 -0
  29. package/dist/persistence/rpc-allowlist-libraries.js.map +1 -0
  30. package/dist/persistence/rpc-allowlist-vcs.d.ts +24 -0
  31. package/dist/persistence/rpc-allowlist-vcs.d.ts.map +1 -0
  32. package/dist/persistence/rpc-allowlist-vcs.js +119 -0
  33. package/dist/persistence/rpc-allowlist-vcs.js.map +1 -0
  34. package/dist/persistence/rpc-allowlist.d.ts.map +1 -1
  35. package/dist/persistence/rpc-allowlist.js +66 -249
  36. package/dist/persistence/rpc-allowlist.js.map +1 -1
  37. package/dist/persistence/rpc-scope.logic.d.ts +46 -0
  38. package/dist/persistence/rpc-scope.logic.d.ts.map +1 -1
  39. package/dist/persistence/rpc-scope.logic.js +109 -0
  40. package/dist/persistence/rpc-scope.logic.js.map +1 -1
  41. package/dist/persistence/rpc.d.ts +111 -0
  42. package/dist/persistence/rpc.d.ts.map +1 -1
  43. package/dist/persistence/rpc.js +42 -44
  44. package/dist/persistence/rpc.js.map +1 -1
  45. package/package.json +6 -6
@@ -1,4 +1,50 @@
1
1
  import type { DispatchOptions, DispatchResult, LibrarySourceEntity } from './rpc';
2
+ /**
3
+ * The `workspaceList` kind: every named workspace must resolve to an in-scope account. The reads
4
+ * taking one answer with a SUBSET of the list, so binding the INPUT bounds the output: an
5
+ * out-of-scope candidate fails closed rather than being quietly filtered, which would turn the read
6
+ * into a probe for which boards link a repo. An empty list is a no-op read.
7
+ *
8
+ * ONE batched read resolves the whole list: a point read per id is the N+1 this layer bans, and
9
+ * the list a caller sends is unbounded by anything but its own request.
10
+ */
11
+ export declare function checkWorkspaceListScope(ids: unknown, opts: DispatchOptions, inScope: (accountId: string | null | undefined) => boolean, denied: DispatchResult): Promise<DispatchResult | undefined>;
12
+ /**
13
+ * The `installationList` kind: the connect page's batched annotation read, "which of the ids the
14
+ * provider just offered are already bound here".
15
+ *
16
+ * An id WITH a binding must be in scope; an id with NO binding is admitted, because refusing it
17
+ * would make the read unusable for its only purpose and it discloses nothing the caller did not
18
+ * send. An unreadable table still fails closed, as does a missing resolver.
19
+ *
20
+ * The whole list resolves in one batched read: the ids come straight off a provider's installation
21
+ * list, so a point read per id is an N+1 sized by someone else's org.
22
+ */
23
+ export declare function checkInstallationListScope(ids: unknown, opts: DispatchOptions, inScope: (accountId: string | null | undefined) => boolean, denied: DispatchResult): Promise<DispatchResult | undefined>;
24
+ /**
25
+ * The `serviceInsert` record write (`registerServiceForFrame`). Bind the DECLARED `accountId` (the
26
+ * row lands there and is later listed from it) AND the `frameBlockId` the service claims.
27
+ *
28
+ * The frame-block half is what stops a service being planted on another org's frame: `resolveRepoTarget`
29
+ * walks frame block → service on every dispatch, and `getByFrameBlock` resolves by frame block id alone,
30
+ * so a foreign row could redirect that org's runs at a repo the caller controls. It is a THREE-state
31
+ * lookup rather than a nullable read because the ordinary case is an absent block: the service row is
32
+ * written BEFORE its frame block exists, so `absent` is the create this rule must admit, while
33
+ * `unreadable` must not be spent as that admission (the same reason `ownerFieldUpsert` gives). Block ids
34
+ * are server-minted, so admitting an unknown one grants nothing: a caller cannot name the id another
35
+ * tenant will later be given.
36
+ */
37
+ export declare function checkServiceInsertScope(record: unknown, opts: DispatchOptions, inScope: (accountId: string | null | undefined) => boolean, denied: DispatchResult): Promise<DispatchResult | undefined>;
38
+ /**
39
+ * The `serviceUpdate` pair (`serviceRepository.update(id, patch)`). Bind the STORED service's owning
40
+ * account, and the account a patch would re-home the service INTO.
41
+ *
42
+ * `ServicePatch` may carry an `accountId`, and a service's account decides which org's catalog offers
43
+ * it for mounting, so an unbound patch would let a caller push an attacker-authored frame into another
44
+ * org's mountable set. An explicit null is refused rather than admitted: an account-less service is the
45
+ * legacy/unscoped row, which no scoped token may create.
46
+ */
47
+ export declare function checkServiceUpdateScope(serviceId: unknown, patch: unknown, opts: DispatchOptions, inScope: (accountId: string | null | undefined) => boolean, denied: DispatchResult): Promise<DispatchResult | undefined>;
2
48
  /**
3
49
  * Token-scope checks for the record/owner-pair {@link ScopeRule} kinds, split out of `rpc.ts` so the
4
50
  * dispatch module stays under its size budget. Pure code motion — each function keeps the exact
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-scope.logic.d.ts","sourceRoot":"","sources":["../../src/persistence/rpc-scope.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAEjF;;;;;GAKG;AAEH;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,OAAO,EAC1D,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAmBrC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,OAAO,EAC1D,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAarC;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,OAAO,EAC1D,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAUrC;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,OAAO,EAC1D,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAOrC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,OAAO,EAC1D,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAqCrC"}
1
+ {"version":3,"file":"rpc-scope.logic.d.ts","sourceRoot":"","sources":["../../src/persistence/rpc-scope.logic.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,112 @@
1
+ /**
2
+ * The `workspaceList` kind: every named workspace must resolve to an in-scope account. The reads
3
+ * taking one answer with a SUBSET of the list, so binding the INPUT bounds the output: an
4
+ * out-of-scope candidate fails closed rather than being quietly filtered, which would turn the read
5
+ * into a probe for which boards link a repo. An empty list is a no-op read.
6
+ *
7
+ * ONE batched read resolves the whole list: a point read per id is the N+1 this layer bans, and
8
+ * the list a caller sends is unbounded by anything but its own request.
9
+ */
10
+ export async function checkWorkspaceListScope(ids, opts, inScope, denied) {
11
+ if (!Array.isArray(ids) || ids.some((id) => typeof id !== 'string'))
12
+ return denied;
13
+ if (ids.length === 0)
14
+ return undefined;
15
+ const accounts = await opts.resolveAccountIds(ids);
16
+ // A board absent from the map does not exist, which `inScope(undefined)` refuses.
17
+ return ids.every((id) => inScope(accounts.get(id))) ? undefined : denied;
18
+ }
19
+ /**
20
+ * The `installationList` kind: the connect page's batched annotation read, "which of the ids the
21
+ * provider just offered are already bound here".
22
+ *
23
+ * An id WITH a binding must be in scope; an id with NO binding is admitted, because refusing it
24
+ * would make the read unusable for its only purpose and it discloses nothing the caller did not
25
+ * send. An unreadable table still fails closed, as does a missing resolver.
26
+ *
27
+ * The whole list resolves in one batched read: the ids come straight off a provider's installation
28
+ * list, so a point read per id is an N+1 sized by someone else's org.
29
+ */
30
+ export async function checkInstallationListScope(ids, opts, inScope, denied) {
31
+ if (!Array.isArray(ids) || ids.some((id) => typeof id !== 'number'))
32
+ return denied;
33
+ if (ids.length === 0)
34
+ return undefined;
35
+ if (!opts.resolveInstallationOwners)
36
+ return denied;
37
+ const owners = await opts.resolveInstallationOwners(ids);
38
+ return ids.every((id) => {
39
+ // An id the batch did not answer for at all is treated as `unreadable`, not as the `absent`
40
+ // that would admit it: only the resolver may report an id as unbound.
41
+ const owner = owners.get(id) ?? { status: 'unreadable' };
42
+ if (owner.status === 'absent')
43
+ return true;
44
+ return owner.status === 'found' && inScope(owner.accountId);
45
+ })
46
+ ? undefined
47
+ : denied;
48
+ }
49
+ /**
50
+ * The `serviceInsert` record write (`registerServiceForFrame`). Bind the DECLARED `accountId` (the
51
+ * row lands there and is later listed from it) AND the `frameBlockId` the service claims.
52
+ *
53
+ * The frame-block half is what stops a service being planted on another org's frame: `resolveRepoTarget`
54
+ * walks frame block → service on every dispatch, and `getByFrameBlock` resolves by frame block id alone,
55
+ * so a foreign row could redirect that org's runs at a repo the caller controls. It is a THREE-state
56
+ * lookup rather than a nullable read because the ordinary case is an absent block: the service row is
57
+ * written BEFORE its frame block exists, so `absent` is the create this rule must admit, while
58
+ * `unreadable` must not be spent as that admission (the same reason `ownerFieldUpsert` gives). Block ids
59
+ * are server-minted, so admitting an unknown one grants nothing: a caller cannot name the id another
60
+ * tenant will later be given.
61
+ */
62
+ export async function checkServiceInsertScope(record, opts, inScope, denied) {
63
+ if (!record || typeof record !== 'object')
64
+ return denied;
65
+ const { accountId, frameBlockId } = record;
66
+ if (typeof accountId !== 'string' || !inScope(accountId))
67
+ return denied;
68
+ if (typeof frameBlockId !== 'string' || !opts.resolveFrameBlockOwner)
69
+ return denied;
70
+ const frame = await opts.resolveFrameBlockOwner(frameBlockId);
71
+ switch (frame.status) {
72
+ case 'found':
73
+ // An existing frame must belong to the SAME account the service declares. Equality, not
74
+ // merely in-scope: a token spanning several accounts would otherwise be able to cross them.
75
+ return frame.accountId === accountId ? undefined : denied;
76
+ case 'absent':
77
+ // The frame block has not been written yet — the ordinary creation order.
78
+ return undefined;
79
+ case 'unreadable':
80
+ return denied;
81
+ default: {
82
+ const _exhaustive = frame;
83
+ void _exhaustive;
84
+ return denied;
85
+ }
86
+ }
87
+ }
88
+ /**
89
+ * The `serviceUpdate` pair (`serviceRepository.update(id, patch)`). Bind the STORED service's owning
90
+ * account, and the account a patch would re-home the service INTO.
91
+ *
92
+ * `ServicePatch` may carry an `accountId`, and a service's account decides which org's catalog offers
93
+ * it for mounting, so an unbound patch would let a caller push an attacker-authored frame into another
94
+ * org's mountable set. An explicit null is refused rather than admitted: an account-less service is the
95
+ * legacy/unscoped row, which no scoped token may create.
96
+ */
97
+ export async function checkServiceUpdateScope(serviceId, patch, opts, inScope, denied) {
98
+ if (typeof serviceId !== 'string' || !opts.resolveServiceAccountIds)
99
+ return denied;
100
+ const stored = await opts.resolveServiceAccountIds([serviceId]);
101
+ if (!inScope(stored.get(serviceId)))
102
+ return denied;
103
+ if (!patch || typeof patch !== 'object')
104
+ return denied;
105
+ if (!Object.hasOwn(patch, 'accountId'))
106
+ return undefined;
107
+ const { accountId } = patch;
108
+ return typeof accountId === 'string' && inScope(accountId) ? undefined : denied;
109
+ }
1
110
  /**
2
111
  * Token-scope checks for the record/owner-pair {@link ScopeRule} kinds, split out of `rpc.ts` so the
3
112
  * dispatch module stays under its size budget. Pure code motion — each function keeps the exact
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-scope.logic.js","sourceRoot":"","sources":["../../src/persistence/rpc-scope.logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc-scope.logic.js","sourceRoot":"","sources":["../../src/persistence/rpc-scope.logic.ts"],"names":[],"mappings":"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"}
@@ -160,6 +160,46 @@ export declare function statusForPersistenceError(code: PersistenceErrorCode): n
160
160
  * columns, so binding only the declared owner would let a token scoped to one
161
161
  * tenant repoint another tenant's source at a repo it controls, whose Markdown
162
162
  * bodies the victim's next sync folds into their prompts as guidance.
163
+ * - `workspaceList` — `args[arg]` is `string[]` of workspaceIds; EVERY one must resolve to an
164
+ * in-scope account, so a missing or out-of-scope board fails closed. The
165
+ * workspace-keyed sibling of `blockList`/`serviceList`, and what a read whose
166
+ * ANSWER is a subset of a candidate list needs (`linkedWorkspaces`): binding
167
+ * the candidates is what stops a node learning about boards it cannot address
168
+ * by passing them in. Empty input is allowed (it returns empty).
169
+ * - `installation` — `args[arg]` is a VCS installation id (a `github_installations` row's
170
+ * `installationId`, a NUMBER) with no workspace/account arg; resolve that
171
+ * row's owning account server-side. A PAT connection stores no `accountId`,
172
+ * so the resolver falls back to the connector workspace's account: the
173
+ * binding is "whoever owns the board that connected it" either way. A missing
174
+ * row, an unreadable table, or no resolver fails closed (404).
175
+ * - `installationList`
176
+ * — `args[arg]` is `number[]` of installation ids (the connect page's batched
177
+ * annotation read); EVERY id must resolve to an in-scope account. Unlike the
178
+ * other list kinds an id with NO row is admitted: the caller is asking which
179
+ * of the ids GitHub offered are already bound, and refusing an unbound one
180
+ * would make the read unusable for its only purpose. Nothing is disclosed by
181
+ * that: a row absent from the answer is the same value the caller sent in.
182
+ * - `serviceInsert` — `args[arg]` is a `Service` record (`registerServiceForFrame`'s insert, run on
183
+ * EVERY top-level frame creation). Binds the DECLARED `accountId` and the
184
+ * `frameBlockId`: an EXISTING frame block must resolve to the same in-scope
185
+ * account, and one that does not exist yet is the ordinary case (the service
186
+ * row is written BEFORE its frame block, so an absent block is a create and
187
+ * passes on the declared account alone; block ids are server-minted, so a
188
+ * caller cannot reserve one another tenant will later be given).
189
+ *
190
+ * The equality is the point. `getByFrameBlock` resolves by frame block id
191
+ * ALONE — the unique index is `(account_id, frame_block_id)`, so two accounts
192
+ * may hold a service for one frame id and the walk answers with an arbitrary
193
+ * one — and `resolveRepoTarget` walks it on every dispatch. Binding only the
194
+ * declared account would let a caller plant a service on another org's frame
195
+ * block and redirect that org's runs at a repo it controls.
196
+ * - `serviceUpdate` — `args[arg]` is a serviceId and `args[patchArg]` a `ServicePatch`. Binds the
197
+ * STORED service's owning account (like `service`) AND, when the patch
198
+ * declares an `accountId`, the account it would move the service INTO: a patch
199
+ * that re-homes a service into an account the caller cannot reach would put an
200
+ * attacker-authored frame in that org's mountable catalog. A patch clearing the
201
+ * account (an explicit null) is refused rather than admitted — a service with
202
+ * no account is the legacy/unscoped row, which no scoped token may create.
163
203
  * - `usageRecord` — `args[arg]` is a `TokenUsageRecord` (the spend ledger's `record`). Binds on
164
204
  * the row's `workspaceId` FIELD like `workspaceField`, AND ADDITIONALLY pins
165
205
  * the two DENORMALIZED rollup keys the account- and user-tier budget reads
@@ -202,6 +242,9 @@ export type ScopeRule = {
202
242
  } | {
203
243
  kind: 'blockList';
204
244
  arg: number;
245
+ } | {
246
+ kind: 'workspaceList';
247
+ arg: number;
205
248
  } | {
206
249
  kind: 'serviceList';
207
250
  arg: number;
@@ -211,6 +254,19 @@ export type ScopeRule = {
211
254
  } | {
212
255
  kind: 'serviceMount';
213
256
  arg: number;
257
+ } | {
258
+ kind: 'serviceInsert';
259
+ arg: number;
260
+ } | {
261
+ kind: 'serviceUpdate';
262
+ arg: number;
263
+ patchArg: number;
264
+ } | {
265
+ kind: 'installation';
266
+ arg: number;
267
+ } | {
268
+ kind: 'installationList';
269
+ arg: number;
214
270
  } | {
215
271
  kind: 'skillSource';
216
272
  arg: number;
@@ -273,6 +329,28 @@ export type LibrarySourceOwnerLookup = {
273
329
  | {
274
330
  status: 'unreadable';
275
331
  };
332
+ /**
333
+ * What a single-row OWNER lookup answered, in the same three states and for the same reason
334
+ * {@link LibrarySourceOwnerLookup} gives: a rule that reads "no such row" as an ADMISSION (the
335
+ * create half of an id-keyed write) may never spend a table it could not read as that admission.
336
+ *
337
+ * `accountId` is nullable inside `found` because a row can legitimately exist with no account (a
338
+ * PAT installation binds a board, not an org; a legacy service predates accounts). That is not a
339
+ * third state: it fails the scope check like any other unresolvable account, and it must not be
340
+ * mistaken for `absent`, which is the only value an id-keyed create may be granted on.
341
+ */
342
+ export type EntityOwnerLookup = {
343
+ status: 'found';
344
+ accountId: string | null | undefined;
345
+ }
346
+ /** No such row: for an id-keyed write this is a CREATE. */
347
+ | {
348
+ status: 'absent';
349
+ }
350
+ /** This deployment cannot read that table at all, so nothing may be concluded. */
351
+ | {
352
+ status: 'unreadable';
353
+ };
276
354
  export interface MethodSpec {
277
355
  scope: ScopeRule;
278
356
  /** The argument index whose `rev` the server mutates in place and must echo back. */
@@ -298,6 +376,15 @@ export interface DispatchOptions {
298
376
  };
299
377
  /** Resolve a workspace's owning account id (the mothership's `WorkspaceRepository.accountOf`). */
300
378
  resolveAccountId(workspaceId: string): Promise<string | null | undefined>;
379
+ /**
380
+ * The batched form (`WorkspaceRepository.accountIdsOf`), keyed by workspace id: one query for a
381
+ * whole list rather than a point read per id. A board that does not exist is ABSENT from the
382
+ * map, which fails the scope check exactly like the `undefined` {@link resolveAccountId} answers
383
+ * for the same board. Required by the `workspaceList` kind and by every resolver that maps a set
384
+ * of boards to their accounts; a deployment whose registry lacks the method answers an empty map,
385
+ * so the call fails closed.
386
+ */
387
+ resolveAccountIds(workspaceIds: string[]): Promise<Map<string, string | null | undefined>>;
301
388
  /**
302
389
  * Resolve a block's owning account id (block → home workspace → account). Required for the
303
390
  * `block` scope kind; a call hitting that kind with no resolver fails closed (404).
@@ -332,6 +419,30 @@ export interface DispatchOptions {
332
419
  * such row" stays distinguishable from "that table is not readable here".
333
420
  */
334
421
  resolveLibrarySourceOwner?(entity: LibrarySourceEntity, sourceId: string): Promise<LibrarySourceOwnerLookup>;
422
+ /**
423
+ * Resolve a VCS installation row's owning account (`github_installations`), as a three-state
424
+ * lookup: an App binding answers its own `accountId`, a per-workspace PAT binding (which stores
425
+ * none) answers its connector workspace's account, and a row this deployment cannot read answers
426
+ * `unreadable` rather than an `absent` a caller could be entitled to read as an admission.
427
+ * Required for the `installation` kind; a call hitting it with no resolver fails closed (404),
428
+ * like the other entity resolvers.
429
+ */
430
+ resolveInstallationOwner?(installationId: number): Promise<EntityOwnerLookup>;
431
+ /**
432
+ * The batched form, keyed by installation id: `listByInstallationIds` plus ONE account read for
433
+ * the PAT bindings that store none, rather than a point read per id. Required for the
434
+ * `installationList` kind (the connect page annotates a whole provider list at once); a call
435
+ * hitting it with no resolver fails closed (404).
436
+ */
437
+ resolveInstallationOwners?(installationIds: number[]): Promise<Map<number, EntityOwnerLookup>>;
438
+ /**
439
+ * Resolve a FRAME BLOCK's owning account (block → home workspace → account), as a three-state
440
+ * lookup. Distinct from {@link resolveBlockAccountId} precisely because of the third state: the
441
+ * `serviceInsert` rule admits an absent frame block (the service row is written before its block)
442
+ * and must refuse an unreadable one, and a nullable answer cannot tell those apart. Required for
443
+ * the `serviceInsert` kind; a call hitting it with no resolver fails closed (404).
444
+ */
445
+ resolveFrameBlockOwner?(frameBlockId: string): Promise<EntityOwnerLookup>;
335
446
  /**
336
447
  * Resolve the member userIds of an account (the mothership's `MembershipRepository.listByAccount`,
337
448
  * mapped to `userId`s). Required for the `user`/`userList` scope kinds: a requested user is in
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/persistence/rpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/persistence/rpc.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { DataIntegrityError, DomainError, dataIntegrityFaultOf, isDataIntegrityError, isDataIntegrityFault, } from '@cat-factory/kernel';
2
2
  import { REMOTE_PERSISTENCE_METHODS } from './rpc-allowlist.js';
3
- import { checkLibrarySourceScope, checkOwnerFieldUpsertScope, checkOwnerPairScope, checkServiceMountScope, checkUsageRecordScope, } from './rpc-scope.logic.js';
3
+ import { checkInstallationListScope, checkLibrarySourceScope, checkOwnerFieldUpsertScope, checkOwnerPairScope, checkServiceInsertScope, checkServiceMountScope, checkServiceUpdateScope, checkUsageRecordScope, checkWorkspaceListScope, } from './rpc-scope.logic.js';
4
4
  // The `Record<PersistenceErrorCode, …>` type keeps this exhaustive — a new error code fails `tsc`
5
5
  // until it is mapped, exactly like the previous `switch` did.
6
6
  const ERROR_STATUS = {
@@ -277,6 +277,10 @@ async function checkEntityListCallScope(rule, args, opts, helpers) {
277
277
  }
278
278
  break;
279
279
  }
280
+ case 'workspaceList':
281
+ return checkWorkspaceListScope(args[rule.arg], opts, inScope, denied);
282
+ case 'installationList':
283
+ return checkInstallationListScope(args[rule.arg], opts, inScope, denied);
280
284
  default: {
281
285
  // Fail closed: a list kind with no case here must never reach the method unscoped. The
282
286
  // `never` binding makes adding a list kind without a case a compile error.
@@ -300,6 +304,19 @@ async function checkEntityListCallScope(rule, args, opts, helpers) {
300
304
  async function checkEntityIdCallScope(rule, args, opts, inScope) {
301
305
  const denied = fail('not_found', 'Not found');
302
306
  const id = args[rule.arg];
307
+ // An installation id is a NUMBER (GitHub's own id, or the synthetic one a PAT connection derives
308
+ // from its workspace); every other entity here is an opaque string id.
309
+ if (rule.kind === 'installation') {
310
+ if (typeof id !== 'number' || !opts.resolveInstallationOwner)
311
+ return denied;
312
+ const owner = await opts.resolveInstallationOwner(id);
313
+ // `absent` fails closed here, unlike in `installationList`: a point read/write names ONE row,
314
+ // so an id with no row is a caller addressing something it cannot bind, not a question about
315
+ // its own list.
316
+ if (owner.status !== 'found' || !inScope(owner.accountId))
317
+ return denied;
318
+ return undefined;
319
+ }
303
320
  if (typeof id !== 'string')
304
321
  return denied;
305
322
  switch (rule.kind) {
@@ -406,13 +423,16 @@ async function checkEntityCallScope(rule, args, opts, helpers) {
406
423
  }
407
424
  case 'userList':
408
425
  case 'blockList':
426
+ case 'workspaceList':
409
427
  case 'serviceList':
428
+ case 'installationList':
410
429
  // The batched list-scope kinds (each id must resolve in scope) are split out to keep this
411
430
  // function under the complexity ceiling; same contract (404 `denied` / `undefined`).
412
431
  return checkEntityListCallScope(rule, args, opts, helpers);
413
432
  case 'block':
414
433
  case 'service':
415
434
  case 'skillSource':
435
+ case 'installation':
416
436
  // The single-ENTITY-ID kinds (an opaque id bound through a server-side account resolver) are
417
437
  // split out to keep this function under the complexity ceiling; same contract.
418
438
  return checkEntityIdCallScope(rule, args, opts, inScope);
@@ -420,57 +440,35 @@ async function checkEntityCallScope(rule, args, opts, helpers) {
420
440
  // Binds the record's DECLARED account and the STORED row's account together; see the rule's
421
441
  // entry on `ScopeRule` for why the declared half alone is not enough.
422
442
  return checkAccountFieldUpsertScope(rule, args, opts, inScope);
423
- case 'serviceMount': {
424
- const denialForMount = await checkServiceMountScope(args[rule.arg], opts, inScope, denied);
425
- if (denialForMount)
426
- return denialForMount;
427
- break;
428
- }
429
- case 'usageRecord': {
430
- const denialForUsage = await checkUsageRecordScope(args[rule.arg], opts, inScope, denied);
431
- if (denialForUsage)
432
- return denialForUsage;
433
- break;
434
- }
435
- case 'owner': {
436
- // A tenant-library row keyed by an (ownerKind, ownerId) PAIR. Resolve the owning account
437
- // server-side and reject anything outside the token scope (404, no existence leak):
438
- // - 'workspace' → the ownerId is a workspaceId; resolve its owning account (like `workspace`).
439
- // - 'account' → the ownerId IS an accountId (like `account`).
440
- // Any other kind, a non-string ownerId, or an unresolvable/out-of-scope owner fails closed.
441
- const denialForOwner = await checkOwnerPairScope(args[rule.kindArg], args[rule.idArg], opts, inScope, denied);
442
- if (denialForOwner)
443
- return denialForOwner;
444
- break;
445
- }
443
+ case 'serviceMount':
444
+ return checkServiceMountScope(args[rule.arg], opts, inScope, denied);
445
+ case 'usageRecord':
446
+ return checkUsageRecordScope(args[rule.arg], opts, inScope, denied);
447
+ case 'serviceInsert':
448
+ // Binds the record's declared account AND the frame block it claims; see the rule's entry on
449
+ // `ScopeRule` for why an absent block is the ordinary create and a foreign one is a hijack.
450
+ return checkServiceInsertScope(args[rule.arg], opts, inScope, denied);
451
+ case 'serviceUpdate':
452
+ // Binds the STORED service's account AND the account a patch would re-home it into.
453
+ return checkServiceUpdateScope(args[rule.arg], args[rule.patchArg], opts, inScope, denied);
454
+ case 'owner':
455
+ // A tenant-library row keyed by an (ownerKind, ownerId) PAIR, positionally.
456
+ return checkOwnerPairScope(args[rule.kindArg], args[rule.idArg], opts, inScope, denied);
446
457
  case 'ownerField': {
447
- // The record-based library `upsert(record)` whose (ownerKind, ownerId) are FIELDS of the
448
- // record, not positional args. Bind on those fields exactly like `owner` — a non-object arg,
449
- // a missing/non-string field, or an unresolvable/out-of-scope owner is refused as 404, so the
450
- // row can only ever be persisted under the caller's own in-scope owner.
458
+ // The same pair as FIELDS of a record `upsert(record)`, so the row can only ever be
459
+ // persisted under the caller's own in-scope owner.
451
460
  const record = args[rule.arg];
452
461
  const isObj = record && typeof record === 'object';
453
- const denialForOwnerField = await checkOwnerPairScope(isObj ? record.ownerKind : undefined, isObj ? record.ownerId : undefined, opts, inScope, denied);
454
- if (denialForOwnerField)
455
- return denialForOwnerField;
456
- break;
462
+ return checkOwnerPairScope(isObj ? record.ownerKind : undefined, isObj ? record.ownerId : undefined, opts, inScope, denied);
457
463
  }
458
- case 'librarySource': {
464
+ case 'librarySource':
459
465
  // A repo-sourced library's sync method carries only a source id; resolve that source's owning
460
466
  // tier PAIR server-side and bind it like `owner` (the owner-pair analogue of `skillSource`).
461
- const denialForSource = await checkLibrarySourceScope(rule.entity, args[rule.arg], opts, inScope, denied);
462
- if (denialForSource)
463
- return denialForSource;
464
- break;
465
- }
466
- case 'ownerFieldUpsert': {
467
+ return checkLibrarySourceScope(rule.entity, args[rule.arg], opts, inScope, denied);
468
+ case 'ownerFieldUpsert':
467
469
  // Binds the record's DECLARED owner and the STORED row's owner together; see the rule's entry
468
470
  // on `ScopeRule` for why the declared half alone is not enough.
469
- const denialForUpsert = await checkOwnerFieldUpsertScope(rule.entity, args[rule.arg], opts, inScope, denied);
470
- if (denialForUpsert)
471
- return denialForUpsert;
472
- break;
473
- }
471
+ return checkOwnerFieldUpsertScope(rule.entity, args[rule.arg], opts, inScope, denied);
474
472
  default: {
475
473
  // Fail closed: a `ScopeRule` kind with no case in EITHER switch must NEVER reach the method
476
474
  // unscoped. The `never` binding makes adding a kind without a case a compile error.
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/persistence/rpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/persistence/rpc.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/server",
3
- "version": "0.295.0",
3
+ "version": "0.296.0",
4
4
  "description": "Runtime-neutral HTTP layer for the Agent Architecture Board: the Hono controllers, middleware (auth/authz/CORS/error), request helpers and the gateway seams shared by every deployment facade (Cloudflare Worker, Node service).",
5
5
  "repository": {
6
6
  "type": "git",
@@ -31,13 +31,13 @@
31
31
  "jose": "^6.2.8",
32
32
  "pino": "^10.3.1",
33
33
  "valibot": "^1.4.2",
34
- "@cat-factory/agents": "0.136.0",
34
+ "@cat-factory/agents": "0.137.0",
35
35
  "@cat-factory/contracts": "0.320.0",
36
- "@cat-factory/integrations": "0.165.4",
37
- "@cat-factory/kernel": "0.310.0",
36
+ "@cat-factory/integrations": "0.165.5",
38
37
  "@cat-factory/mcp-server": "0.42.0",
39
- "@cat-factory/orchestration": "0.279.0",
40
- "@cat-factory/spend": "0.16.2"
38
+ "@cat-factory/kernel": "0.311.0",
39
+ "@cat-factory/orchestration": "0.280.0",
40
+ "@cat-factory/spend": "0.16.3"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^26.2.0",