@substrat-run/kernel 0.116.0 → 0.117.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 (60) hide show
  1. package/dist/capability.d.ts +220 -0
  2. package/dist/capability.d.ts.map +1 -0
  3. package/dist/capability.js +537 -0
  4. package/dist/capability.js.map +1 -0
  5. package/dist/check-key.d.ts +30 -0
  6. package/dist/check-key.d.ts.map +1 -0
  7. package/dist/check-key.js +37 -0
  8. package/dist/check-key.js.map +1 -0
  9. package/dist/denial-query.d.ts +32 -1
  10. package/dist/denial-query.d.ts.map +1 -1
  11. package/dist/denial-query.js +66 -28
  12. package/dist/denial-query.js.map +1 -1
  13. package/dist/index.d.ts +19 -4
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +14 -3
  16. package/dist/index.js.map +1 -1
  17. package/dist/outbox-event.d.ts +131 -0
  18. package/dist/outbox-event.d.ts.map +1 -0
  19. package/dist/outbox-event.js +185 -0
  20. package/dist/outbox-event.js.map +1 -0
  21. package/dist/permission-checker.d.ts +8 -1
  22. package/dist/permission-checker.d.ts.map +1 -1
  23. package/dist/permission-checker.js +18 -0
  24. package/dist/permission-checker.js.map +1 -1
  25. package/dist/permission-eval.d.ts +8 -0
  26. package/dist/permission-eval.d.ts.map +1 -1
  27. package/dist/permission-eval.js +164 -91
  28. package/dist/permission-eval.js.map +1 -1
  29. package/dist/platform-request-query.d.ts +58 -1
  30. package/dist/platform-request-query.d.ts.map +1 -1
  31. package/dist/platform-request-query.js +61 -1
  32. package/dist/platform-request-query.js.map +1 -1
  33. package/dist/platform-sweep.d.ts +123 -8
  34. package/dist/platform-sweep.d.ts.map +1 -1
  35. package/dist/platform-sweep.js +158 -34
  36. package/dist/platform-sweep.js.map +1 -1
  37. package/dist/row-decode.d.ts +107 -0
  38. package/dist/row-decode.d.ts.map +1 -0
  39. package/dist/row-decode.js +93 -0
  40. package/dist/row-decode.js.map +1 -0
  41. package/dist/scope-host.d.ts +211 -9
  42. package/dist/scope-host.d.ts.map +1 -1
  43. package/dist/scope-host.js +33 -0
  44. package/dist/scope-host.js.map +1 -1
  45. package/dist/scope-tuple-seat.d.ts +72 -0
  46. package/dist/scope-tuple-seat.d.ts.map +1 -0
  47. package/dist/scope-tuple-seat.js +93 -0
  48. package/dist/scope-tuple-seat.js.map +1 -0
  49. package/dist/subject-redaction.d.ts +160 -0
  50. package/dist/subject-redaction.d.ts.map +1 -0
  51. package/dist/subject-redaction.js +210 -0
  52. package/dist/subject-redaction.js.map +1 -0
  53. package/dist/system-switch.d.ts +108 -0
  54. package/dist/system-switch.d.ts.map +1 -0
  55. package/dist/system-switch.js +145 -0
  56. package/dist/system-switch.js.map +1 -0
  57. package/dist/timeline.d.ts.map +1 -1
  58. package/dist/timeline.js +109 -57
  59. package/dist/timeline.js.map +1 -1
  60. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"platform-sweep.js","sourceRoot":"","sources":["../src/platform-sweep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-sweep.js","sourceRoot":"","sources":["../src/platform-sweep.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ import { type Actor, type PermissionKey } from '@substrat-run/contracts';
2
+ /**
3
+ * The tolerant decode of one spine row, field by field (#1588, #1636).
4
+ *
5
+ * Every spine read that returns a LIST used to decode its rows strictly, so one row
6
+ * whose JSON would not parse threw out of the map and took every healthy neighbour
7
+ * with it — the intent journal (#1588), an entity's history and its cause walks, the
8
+ * denial log and its summary (#1636). The reads hit worst were the ones that exist to
9
+ * explain a failure, switched off by exactly the row that failed.
10
+ *
11
+ * So each field is decoded against its OWN contract field, and a row says what did not
12
+ * decode rather than taking the list down:
13
+ *
14
+ * - a JSON column that does not decode comes back EMPTY — the caller names the empty
15
+ * value, which must be one the field's schema accepts (`null`, or a self-naming marker
16
+ * such as {@link UNDECODED_ACTOR} for a field that cannot be null). Never the raw text:
17
+ * a raw payload would read as a string payload that was never sent.
18
+ * - a nullable scalar that breaks its schema comes back `null`.
19
+ * - a REQUIRED scalar has no honest empty value, so a row that breaks one cannot be the
20
+ * contract shape without lying. It is collected, and `finish` throws naming every
21
+ * column the row broke — the strict decode this replaced, kept for exactly the part it
22
+ * cannot honestly relax.
23
+ *
24
+ * **Every value a decoder built on this returns satisfies the published schema**, which
25
+ * is #1634's review finding carried forward: a field is only ever replaced by a value its
26
+ * own schema accepts, so a caller can trust the type it was handed. What did not decode
27
+ * is named, by column, in `decodeError` — ABSENT on a row the kernel wrote, so a healthy
28
+ * list reads exactly as it did before.
29
+ *
30
+ * The message never quotes the stored text. `JSON.parse`'s own message does, and for a
31
+ * payload that is the event's content: copied into a dead letter or a sweep log it would
32
+ * be personal data somewhere an erasure does not reach. The one exception is `marked`, for
33
+ * a short identifier whose stored value IS the evidence (a denial's permission key): that
34
+ * one is quoted, capped, on purpose.
35
+ */
36
+ type FieldParse<T> = {
37
+ success: true;
38
+ data: T;
39
+ } | {
40
+ success: false;
41
+ error: {
42
+ issues: ReadonlyArray<{
43
+ message: string;
44
+ path: ReadonlyArray<PropertyKey>;
45
+ }>;
46
+ };
47
+ };
48
+ /** The one method a decoder needs from a contract field — any Zod schema has it. */
49
+ export interface Field<T> {
50
+ safeParse(value: unknown): FieldParse<T>;
51
+ }
52
+ /**
53
+ * What an actor reads as when the stored one did not decode. An actor is required and has
54
+ * no empty value, so this is a marker that names itself rather than a plausible actor: a
55
+ * guessed principal would be the one thing worse than admitting nobody can tell.
56
+ */
57
+ export declare const UNDECODED_ACTOR: Actor;
58
+ /**
59
+ * What a denial's `permission` reads as when the stored key is not a permission key (#1636).
60
+ *
61
+ * Unlike the other required scalars, this one is reachable from LIVE module code rather than
62
+ * only from a dump: nothing validates a checked key at runtime, so a module that casts a
63
+ * malformed key into `ctx.check` is refused, and the refusal is recorded with that key. The
64
+ * denial log is exactly where someone goes to find out why — so the row must not take the
65
+ * list with it, and the bad key is the evidence: `marked` carries it, verbatim, in
66
+ * `decodeError`, beside this self-naming marker.
67
+ */
68
+ export declare const UNDECODED_PERMISSION: PermissionKey;
69
+ /** `column: message`, for the first issue a field's schema raised. */
70
+ export declare function issueOf(column: string, error: Extract<FieldParse<unknown>, {
71
+ success: false;
72
+ }>['error']): string;
73
+ /** The message a JSON column that does not parse is recorded with — never the text itself. */
74
+ export declare const NOT_JSON = "not valid JSON";
75
+ export interface RowDecoder {
76
+ /** A required scalar. A failure is held until `finish`, which throws — the value never escapes. */
77
+ required<T>(column: string, field: Field<T>, stored: unknown): T;
78
+ /** A nullable scalar: `null`, named in `decodeError`, when it breaks its schema. */
79
+ nullable<T>(column: string, field: Field<T | null>, stored: unknown): T | null;
80
+ /**
81
+ * A required scalar with a self-naming `marker` to stand in for it — for the column whose
82
+ * stored value is the EVIDENCE (a denial's permission key), so the row is returned rather
83
+ * than thrown, and the value is quoted in `decodeError` rather than lost. `marker` must be
84
+ * a value `field` accepts. Only for a short identifier, never for content: it is quoted.
85
+ */
86
+ marked<T>(column: string, field: Field<T>, stored: unknown, marker: T): T;
87
+ /** A JSON column: `empty`, named in `decodeError`, when it does not parse or breaks its schema. */
88
+ json<T>(column: string, field: Field<T>, stored: string | null, empty: T): T;
89
+ /** Every column that did not decode, required or not — for a caller whose logic reads one. */
90
+ readonly failed: ReadonlySet<string>;
91
+ /**
92
+ * The row, with `decodeError` naming every column that did not decode — or absent when
93
+ * all did. Throws, naming every column, when a required scalar broke.
94
+ */
95
+ finish<R extends object>(decoded: R): R & {
96
+ decodeError?: string;
97
+ };
98
+ }
99
+ /**
100
+ * One row's decoder. `subject` names the row in a throw (`platform request row "01J…"`),
101
+ * `contract` the shape it could not be read as. Every field is decoded before `finish`
102
+ * reads the lists, so a message names every column that failed — not whichever one
103
+ * happened to be reached first.
104
+ */
105
+ export declare function rowDecoder(subject: string, contract: string): RowDecoder;
106
+ export {};
107
+ //# sourceMappingURL=row-decode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-decode.d.ts","sourceRoot":"","sources":["../src/row-decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,KAAK,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE/F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,KAAK,UAAU,CAAC,CAAC,IACb;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,CAAA;CAAE,CAAC;AAEhH,oFAAoF;AACpF,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;CAC1C;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,KAA8C,CAAC;AAE7E;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAA6D,CAAC;AAKjG,sEAAsE;AACtE,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC,OAAO,CAAC,GAC/D,MAAM,CAIR;AAED,8FAA8F;AAC9F,eAAO,MAAM,QAAQ,mBAAmB,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,mGAAmG;IACnG,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC;IACjE,oFAAoF;IACpF,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC;IAC/E;;;;;OAKG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1E,mGAAmG;IACnG,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7E,8FAA8F;IAC9F,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC;;;OAGG;IACH,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAwDxE"}
@@ -0,0 +1,93 @@
1
+ import { actor, permissionKey } from '@substrat-run/contracts';
2
+ /**
3
+ * What an actor reads as when the stored one did not decode. An actor is required and has
4
+ * no empty value, so this is a marker that names itself rather than a plausible actor: a
5
+ * guessed principal would be the one thing worse than admitting nobody can tell.
6
+ */
7
+ export const UNDECODED_ACTOR = actor.parse({ system: 'undecodable' });
8
+ /**
9
+ * What a denial's `permission` reads as when the stored key is not a permission key (#1636).
10
+ *
11
+ * Unlike the other required scalars, this one is reachable from LIVE module code rather than
12
+ * only from a dump: nothing validates a checked key at runtime, so a module that casts a
13
+ * malformed key into `ctx.check` is refused, and the refusal is recorded with that key. The
14
+ * denial log is exactly where someone goes to find out why — so the row must not take the
15
+ * list with it, and the bad key is the evidence: `marked` carries it, verbatim, in
16
+ * `decodeError`, beside this self-naming marker.
17
+ */
18
+ export const UNDECODED_PERMISSION = permissionKey.parse('undecodable:permission');
19
+ /** How much of a stored scalar a `marked` field quotes back — a key, not a payload. */
20
+ const QUOTED_MAX = 200;
21
+ /** `column: message`, for the first issue a field's schema raised. */
22
+ export function issueOf(column, error) {
23
+ const issue = error.issues[0];
24
+ const at = issue && issue.path.length ? `.${issue.path.map(String).join('.')}` : '';
25
+ return `${column}${at}: ${issue?.message ?? 'does not match the contract'}`;
26
+ }
27
+ /** The message a JSON column that does not parse is recorded with — never the text itself. */
28
+ export const NOT_JSON = 'not valid JSON';
29
+ /**
30
+ * One row's decoder. `subject` names the row in a throw (`platform request row "01J…"`),
31
+ * `contract` the shape it could not be read as. Every field is decoded before `finish`
32
+ * reads the lists, so a message names every column that failed — not whichever one
33
+ * happened to be reached first.
34
+ */
35
+ export function rowDecoder(subject, contract) {
36
+ const undecoded = [];
37
+ const unreadable = [];
38
+ const failed = new Set();
39
+ return {
40
+ failed,
41
+ required(column, field, stored) {
42
+ const r = field.safeParse(stored);
43
+ if (r.success)
44
+ return r.data;
45
+ unreadable.push(issueOf(column, r.error));
46
+ failed.add(column);
47
+ return undefined;
48
+ },
49
+ nullable(column, field, stored) {
50
+ const r = field.safeParse(stored);
51
+ if (r.success)
52
+ return r.data;
53
+ undecoded.push(issueOf(column, r.error));
54
+ failed.add(column);
55
+ return null;
56
+ },
57
+ marked(column, field, stored, marker) {
58
+ const r = field.safeParse(stored);
59
+ if (r.success)
60
+ return r.data;
61
+ const quoted = JSON.stringify(stored) ?? String(stored);
62
+ undecoded.push(`${issueOf(column, r.error)} (stored ${quoted.length > QUOTED_MAX ? `${quoted.slice(0, QUOTED_MAX)}…` : quoted})`);
63
+ failed.add(column);
64
+ return marker;
65
+ },
66
+ json(column, field, stored, empty) {
67
+ let value = null;
68
+ if (stored !== null) {
69
+ try {
70
+ value = JSON.parse(stored);
71
+ }
72
+ catch {
73
+ undecoded.push(`${column}: ${NOT_JSON}`);
74
+ failed.add(column);
75
+ return empty;
76
+ }
77
+ }
78
+ const r = field.safeParse(value);
79
+ if (r.success)
80
+ return r.data;
81
+ undecoded.push(issueOf(column, r.error));
82
+ failed.add(column);
83
+ return empty;
84
+ },
85
+ finish(decoded) {
86
+ if (unreadable.length) {
87
+ throw new Error(`${subject} cannot be read as a ${contract} — ${[...unreadable, ...undecoded].join('; ')}`);
88
+ }
89
+ return undecoded.length ? { ...decoded, decodeError: undecoded.join('; ') } : decoded;
90
+ },
91
+ };
92
+ }
93
+ //# sourceMappingURL=row-decode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-decode.js","sourceRoot":"","sources":["../src/row-decode.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- import type { AdminAction, ListPage, Connection, ConnectionFilter, ConnectionId, ConnectionGrant, ConnectionGrantRecord, ConnectionSecret, CreateConnectionInput, OpenConnection, ProjectedConnectionGrant, ProjectedConnectionKey, AccessLogEntry, DelegatedReadRecord, BindHostnameInput, AdminLogEntry, OpsFailureEntry, SweepRunEntry, SweepRunKind, SweepRunOutcome, ModelUsageEntry, ModelUsageSummary, CapabilityGrant, CreateTenantInput, Decision, Instant, DomainEvent, DomainEventInput, PlatformRequestInput, PlatformRequestId, PlatformRequest, PlatformRequestFilter, PlatformRequestStatus, PlatformRequestFailure, EntitlementGrant, EntitlementGrantInput, EntitlementView, MeterReading, EntityRef, IdentityLink, IdentityPool, Jurisdiction, ModuleId, ModuleManifest, ScheduleSpec, SystemGrant, CreateOrgInput, Node, Org, OrgId, OrgMembership, PermissionKey, PlatformActorId, ChannelName, ChannelHistoryEntry, DnsRecord, HostnameBinding, HostnameStatus, PromotionAcknowledgement, PublishVersionInput, RegisterVerticalInput, VerticalServingState, RouteTarget, DirectoryDump, IdentityMembership, PrincipalId, ResolvedIdentity, RoleAssignment, RoleDefinition, QueryScopeInput, ReadScopeTableInput, Scope, ScopeDump, SubjectShredReceipt, ScopeQueryResult, ScopeId, ScopeStatus, ScopeTable, DenialFilter, DenialSummary, PermissionDenial, Coverage, BeginImpersonationInput, ImpersonationFilter, ImpersonationSession, ImpersonationSessionId, ScopeTablePage, StorageShape, Tenant, TenantId, TenantRole, TenantStoreHandle, AttachmentRecord, BlobStoreHandle, Visibility, Vertical, VerticalChannel, VerticalVersion, TenantStatus, Page, CountedPage, FreshnessSpec, DrainedEvent, EntityHistoryInput, EventFacetInput, EventCauseInput, EventEffectsInput, EffectsTree, InvocationEventsInput, InvocationEvents, DeadLettersInput, DeadLetter, CauseChain, EventFacetResult, HistoryEntry, ErrorCode, PlatformRequestFailureOrigin, IssueEntry, IssueStatus, IssueStatusInput } from '@substrat-run/contracts';
1
+ import type { AdminAction, BecomeCapabilityInput, CapabilityExchange, CapabilityId, MintedCapability, ListPage, Connection, ConnectionFilter, ConnectionId, ConnectionGrant, ConnectionGrantRecord, ConnectionSecret, CreateConnectionInput, OpenConnection, ProjectedConnectionGrant, ProjectedConnectionKey, AccessLogEntry, DelegatedReadRecord, BindHostnameInput, AdminLogEntry, OpsFailureEntry, SweepRunEntry, SweepRunKind, SweepRunOutcome, ModelUsageEntry, ModelUsageSummary, CapabilityGrant, CreateTenantInput, Decision, Instant, DomainEvent, DomainEventInput, PlatformRequestInput, PlatformRequestId, PlatformRequest, PlatformRequestFilter, PlatformRequestStatus, PlatformRequestFailure, EntitlementGrant, EntitlementGrantInput, EntitlementView, MeterReading, EntityRef, IdentityLink, IdentityPool, Jurisdiction, ModuleId, ModuleManifest, ScheduleSpec, SystemGrant, SystemSwitch, SystemSwitchResult, CreateOrgInput, Node, Org, OrgId, OrgMembership, PermissionKey, PlatformActorId, ChannelName, ChannelHistoryEntry, DnsRecord, HostnameBinding, HostnameStatus, PromotionAcknowledgement, PublishVersionInput, RegisterVerticalInput, VerticalServingState, RouteTarget, DirectoryDump, IdentityMembership, PrincipalId, ResolvedIdentity, RoleAssignment, RoleDefinition, QueryScopeInput, ReadScopeTableInput, Scope, ScopeDump, SubjectShredReceipt, ScopeQueryResult, ScopeId, ScopeStatus, ScopeTable, DenialFilter, DenialSummary, PermissionDenial, Coverage, BeginImpersonationInput, ImpersonationFilter, ImpersonationSession, ImpersonationSessionId, ScopeTablePage, StorageShape, Tenant, TenantId, TenantRole, TenantStoreHandle, AttachmentRecord, BlobStoreHandle, Visibility, Vertical, VerticalChannel, VerticalVersion, TenantStatus, Page, CountedPage, FreshnessSpec, EntityHistoryInput, EventFacetInput, EventCauseInput, EventEffectsInput, EffectsTree, InvocationEventsInput, InvocationEvents, DeadLettersInput, DeadLetter, CauseChain, EventFacetResult, HistoryEntry, ErrorCode, PlatformRequestFailureOrigin, IssueEntry, IssueStatus, IssueStatusInput } from '@substrat-run/contracts';
2
+ import type { CapabilityVerbs } from './capability.js';
2
3
  import type { ModelUsageFilter, ModelUsageInput, ModelUsageWindow } from './model-usage.js';
3
4
  import type { SealedSecret } from './secret-box.js';
4
5
  import type { SearchHit, SearchOptions } from './search-index.js';
5
6
  import type { EntityVersion } from './entity-version.js';
7
+ import type { UndrainedEvents } from './outbox-event.js';
6
8
  import type { JobDriveReport, JobHandler, JobRun, JobRunFilter, StartJobRunInput } from './job-run.js';
7
9
  /**
8
10
  * What a caller asks a paged read for (#811).
@@ -153,7 +155,11 @@ export interface OperationContext {
153
155
  * one to an untrusted caller does its own `assertAllowed` first.
154
156
  */
155
157
  versionOf(entity: EntityRef): EntityVersion | null;
156
- /** Node-level check; pass `entity` for per-entity checks (portal access, §4.2 rule 3). */
158
+ /**
159
+ * Node-level check; pass `entity` for per-entity checks (portal access, §4.2 rule 3).
160
+ * A `permission` that is not a key (a cast past the brand) throws `internal` rather
161
+ * than returning a denial, and records none (#1642, `assertPermissionKey`).
162
+ */
157
163
  check(permission: PermissionKey, entity?: EntityRef): Promise<Decision>;
158
164
  /**
159
165
  * Find entities of one type by what a person typed (#827) — the read a picker
@@ -327,6 +333,41 @@ export interface OperationContext {
327
333
  * permission problem.
328
334
  */
329
335
  canAssign(roleKey: string): Promise<Coverage>;
336
+ /**
337
+ * Capabilities (#1672) — authority carried by a SECRET rather than held by a principal:
338
+ * "anyone with this link may read this folder until Friday".
339
+ *
340
+ * `mint` narrows authority the CALLER holds onto one entity (and what lies beneath it
341
+ * through declared parent edges), specific keys, an optional operation allowlist, an
342
+ * optional expiry and use limit, and returns the secret once. Whoever later exchanges
343
+ * that secret (`ScopeHost.exchangeCapability`) acts as `{ capability: <id> }` — resolved
344
+ * by the checker against the capability's own row, stamped on every event it emits,
345
+ * refused into the denial log like any other actor.
346
+ *
347
+ * Non-escalating on EVERY use, not only at mint: each key is re-checked here on the
348
+ * entity with this operation's own check (`ctx.grant`'s predicate), and the checker
349
+ * re-checks the minter every time the capability acts — so revoking the minter's access
350
+ * ends what their links can do. Only a principal may mint or revoke; a capability,
351
+ * connection or schedule cannot delegate.
352
+ *
353
+ * ```ts
354
+ * assertAllowed(await ctx.check('folder:share', folderRef));
355
+ * const { secret } = await ctx.capabilities.mint({
356
+ * entity: folderRef,
357
+ * permissions: ['folder:read'],
358
+ * expiresAt: input.expiresAt,
359
+ * });
360
+ * return { link: `${origin}/#share=${secret}` }; // a FRAGMENT: never sent to a server
361
+ * ```
362
+ *
363
+ * The kernel stores only the secret's hash, and an idempotency recording withholds the
364
+ * secret. Beyond that, a TRIPWIRE: while this invocation runs, `ctx.emit`,
365
+ * `ctx.requestPlatform` and `ctx.sql` refuse any record that carries the secret verbatim,
366
+ * which catches a module persisting it by accident. It is not a boundary against a module
367
+ * that means to leak it (`assertNoSecret` says why). Transactional with the operation,
368
+ * like `ctx.grant`.
369
+ */
370
+ readonly capabilities: CapabilityVerbs;
330
371
  /**
331
372
  * Run `fn` as a SUB-TRANSACTION of this operation (#770,
332
373
  * docs/architecture/sub-transactions.md) — the boundary that makes catching an
@@ -633,11 +674,23 @@ export interface FreshnessReport {
633
674
  * What `runDueSchedules` did for one scope in one pass (#383). A schedule inside its
634
675
  * cadence window is `skipped`; a due one is `fired` (its operation ran) or `failed`
635
676
  * (the operation threw — recorded, never allowed to stop the others).
677
+ *
678
+ * A module switched off on the scope (#1666, `revokeFromSystem`) reports every schedule
679
+ * `skipped` with `switchedOff: true`, due or not: nothing ran, and that was decided, so
680
+ * it is neither a failure nor an absence. `skipped` rather than a new outcome because
681
+ * the durable sweep record parses outcomes on the platform side, and a vertical newer
682
+ * than its control plane must not emit a value that refuses the whole batch.
636
683
  */
637
684
  export interface ScheduleRunReport {
638
685
  fired: number;
639
686
  skipped: number;
640
687
  failed: number;
688
+ /**
689
+ * The module is switched off on this scope (#1666) — every `skipped` above is that,
690
+ * not a cadence window. Optional and absent otherwise, so a stored or pre-widening
691
+ * report stays valid.
692
+ */
693
+ switchedOff?: true;
641
694
  /** Per-schedule failures on this scope: the operation name and the error. */
642
695
  errors: {
643
696
  operation: string;
@@ -1233,10 +1286,75 @@ export interface HostAdmin {
1233
1286
  * reason: one grant mechanism, tuples tombstoned on revoke (K-21), visible to the
1234
1287
  * permission diff. It is what makes `ctx.check` resolve for a schedule — the gate
1235
1288
  * stays `ctx.check`, not a bypass. Projected at scope provisioning from the
1236
- * module's declared `schedules[].permissions`; a per-tenant "scheduling off" is a
1237
- * revoke of this grant, nothing more.
1289
+ * module's declared `schedules[].permissions`.
1290
+ *
1291
+ * **Refused while the module's schedule kill switch is off on that scope** (#1666),
1292
+ * with `conflict`: restore is the lever; a grant is not. A grant that went through would
1293
+ * hand the module's system authority back to a job run or a `getSystemScope` invoke
1294
+ * while its schedules stayed off. Only `restoreToSystem` turns the switch back on.
1295
+ * (A TENANT-level grant — `node.scopeId` null — is not checked: the switch lives in each
1296
+ * scope's storage and the directory cannot see it. Nothing in the platform writes one.)
1238
1297
  */
1239
1298
  grantToSystem(actor: PlatformActorId, grant: SystemGrant): Promise<void>;
1299
+ /**
1300
+ * The schedule kill switch (#1666): turn ONE module's scheduled work off on ONE scope.
1301
+ *
1302
+ * Module-wide on the scope, by design — see `systemSwitch` for why a per-permission or
1303
+ * per-schedule switch is either inexpressible or noisy. It tombstones every live
1304
+ * `system:<module>` grant the scope holds (K-21) and makes the scope's OFF marker live
1305
+ * (`system-switch.ts`). While it is off:
1306
+ *
1307
+ * - `runDueSchedules` fires nothing for the module and reports each schedule `skipped`
1308
+ * with `switchedOff: true` — never `failed`, so a switched-off scope makes no noise,
1309
+ * and its cadence clock is untouched, so a due schedule fires on the first pass after
1310
+ * `restoreToSystem`;
1311
+ * - anything acting with the module's system authority is denied by its own
1312
+ * `ctx.check` — a resumable job run (#1577) fails its step, a `getSystemScope` invoke
1313
+ * is refused;
1314
+ * - and nothing can hand that authority back: `grantToSystem` refuses, and a reconcile
1315
+ * seats no `system:` grant for the module, not even one a newer version declares.
1316
+ * `restoreToSystem` is the only way back.
1317
+ *
1318
+ * **Audited first, on every attempt**: an intent row (with the `reason`) before anything
1319
+ * moves, then an outcome row (`applied`, `refused`, or `failed`), paired by the
1320
+ * `operationId` the call answers with. A repeat — including the retry after a crash
1321
+ * between the move and its outcome row — answers `changed: false` and is audited all the
1322
+ * same. The scope's storage and the admin log are separate stores, so the pair is not
1323
+ * atomic: this order fails toward "an intent with no outcome", never toward "a switch
1324
+ * that moved with no row".
1325
+ *
1326
+ * Throws `not_found` when the scope holds no `system:<module>` grant at all — a typo in
1327
+ * an emergency must not answer "done". On a host that delegates to the deployment
1328
+ * serving the scope, the write happens THERE and the audit rows HERE.
1329
+ */
1330
+ revokeFromSystem(actor: PlatformActorId, input: SystemSwitch): Promise<SystemSwitchResult>;
1331
+ /**
1332
+ * The inverse of `revokeFromSystem` (#1666), and the ONLY way to turn a switched-off
1333
+ * module's schedules back on: tombstones the OFF marker and restores exactly the grants
1334
+ * the OFF took — a grant revoked independently before the switch was pulled stays
1335
+ * revoked, so ON never widens the system principal. Same shape, same `reason`, same
1336
+ * audit-first rows, same idempotence and `not_found`.
1337
+ */
1338
+ restoreToSystem(actor: PlatformActorId, input: SystemSwitch): Promise<SystemSwitchResult>;
1339
+ /**
1340
+ * Mint a `become` capability on a scope (#1672): whoever exchanges its secret yields
1341
+ * `input.principal` rather than a session — the shape an owner claim link and a member
1342
+ * invite are, so both can move onto this primitive later. The secret is returned once;
1343
+ * the scope keeps its hash. Expiry and a use limit are required.
1344
+ *
1345
+ * Platform-only in this first cut, deliberately: `become` is impersonation by another
1346
+ * name, and the bound on who may mint one from module code is designed with the claim
1347
+ * and invite migrations. Audited in the admin log (never the secret, never its hash).
1348
+ * Refuses an unknown or inactive scope, as `getScope` does.
1349
+ */
1350
+ mintCapability(actor: PlatformActorId, tenantId: TenantId, scopeId: ScopeId, input: BecomeCapabilityInput): Promise<MintedCapability>;
1351
+ /**
1352
+ * Revoke any capability on a scope (#1672) — the operator's lever for a leaked link, and
1353
+ * how a re-minted claim link retires the last one. Takes effect on the next check, for
1354
+ * every session it handed out. Idempotent; `not_found` for a capability the scope does
1355
+ * not hold. Audited in the admin log.
1356
+ */
1357
+ revokeCapability(actor: PlatformActorId, tenantId: TenantId, scopeId: ScopeId, capabilityId: CapabilityId): Promise<void>;
1240
1358
  grantToOrg(actor: PlatformActorId, orgId: OrgId, permission: PermissionKey, node: Node, entity?: EntityRef): Promise<void>;
1241
1359
  addMember(actor: PlatformActorId, tenantId: TenantId, principal: PrincipalId, orgId: OrgId): Promise<void>;
1242
1360
  /**
@@ -1490,6 +1608,15 @@ export interface HostAdmin {
1490
1608
  takenAt: string;
1491
1609
  pending: string[];
1492
1610
  }[]>;
1611
+ /**
1612
+ * The size in bytes of a CO-LOCATED scope's database (#1524): `SqlStorage.databaseSize`
1613
+ * on a Durable Object, `page_count × page_size` on SQLite. It covers the scope database
1614
+ * only. Attachment blobs, per-tenant D1 stores and the lake are elsewhere and are not
1615
+ * counted. It wakes the scope, so the one caller is an on-demand storage reading, never
1616
+ * a sweep. For a dispatch vertical the route reads it through the vertical's
1617
+ * `/internal/database-size` instead, and this is the co-located fallback. Access-logged.
1618
+ */
1619
+ scopeDatabaseSize(actor: PlatformActorId, tenantId: TenantId, scopeId: ScopeId): Promise<number>;
1493
1620
  /**
1494
1621
  * #286's backout: PITR-rewind a scope to a pre-migration bookmark — schema AND
1495
1622
  * data, discarding every write since. Audited (destructive by design). The scope
@@ -1665,8 +1792,14 @@ export interface HostAdmin {
1665
1792
  * repeat is harmless — the lake is keyed by event id and every consumer in this
1666
1793
  * platform is already required-idempotent. At-least-once is the only one of the
1667
1794
  * two that cannot silently lose exact history, which is the point of the tier.
1795
+ *
1796
+ * A row that does not decode is SKIPPED (#1636): never returned, so no sink receives an
1797
+ * event built from stand-ins, and never stamped, so the stamp stays exact. The read steps
1798
+ * past it so the rows behind it still ship, and says what it stepped over in the answer's
1799
+ * optional `skipped` — absent on a clean read, so every caller that reads an array reads
1800
+ * the one it always did. See `readUndrainedOutbox` for the bound, and for the cost.
1668
1801
  */
1669
- readUndrainedEvents(actor: PlatformActorId, tenantId: TenantId, scopeId: ScopeId, limit?: number): Promise<DrainedEvent[]>;
1802
+ readUndrainedEvents(actor: PlatformActorId, tenantId: TenantId, scopeId: ScopeId, limit?: number): Promise<UndrainedEvents>;
1670
1803
  /**
1671
1804
  * Stamp `drained_at` on events the sink accepted (#1334). Idempotent: marking a
1672
1805
  * row already marked changes nothing, so a retry after a partial ship is safe.
@@ -2651,6 +2784,36 @@ export declare const OPS_FAILURE_RETENTION_DAYS = 90;
2651
2784
  * for the same reason: the table stays bounded even where no scheduled pass runs.
2652
2785
  */
2653
2786
  export declare const SWEEP_RUN_RETENTION_DAYS = 14;
2787
+ /**
2788
+ * The drained batch's dedupe key on the directory's `_substrat_sweep_runs` (#1232), as
2789
+ * both adapters build it: `recordSweepRun` is an `INSERT OR IGNORE` against this index,
2790
+ * which is what makes a replayed drain write nothing twice.
2791
+ *
2792
+ * `kind` is in it since #1572, and that is the fix rather than a tidy-up. Every entry of
2793
+ * one drained batch shares its `request_id`, and `unit` is built from two namespaces that
2794
+ * nothing keeps apart — `<scopeId>:<operation>` for a schedule, `<scopeId>:<eventType>`
2795
+ * for a freshness verdict — while `scheduleSpec.operation` is `z.string().min(1)`. A
2796
+ * schedule named exactly like an event type its scope expects freshness on collided on
2797
+ * `(request_id, unit)`, and the ignore-on-conflict write discarded the second row with no
2798
+ * error anywhere. Both rows are signals by their absence (a stopped evaluator, a missed
2799
+ * run), so losing one read as the very thing it was meant to rule out. It is #1288's
2800
+ * collision, in the record table beside the state table.
2801
+ *
2802
+ * Shared rather than spelled in each adapter because a directory that predates it
2803
+ * re-creates it (`ensureSweepRunsIntentKind`, in both), and `lint:spine-ddl` sees only
2804
+ * the created copy. One definition keeps the re-created shape and the created shape the
2805
+ * same shape; the gate then holds each adapter's DDL to including it.
2806
+ */
2807
+ export declare const SWEEP_RUNS_INTENT_INDEX = "CREATE UNIQUE INDEX IF NOT EXISTS _substrat_sweep_runs_intent ON _substrat_sweep_runs (request_id, kind, unit);";
2808
+ /**
2809
+ * Whether a directory's `_substrat_sweep_runs_intent` already has `kind` among its
2810
+ * columns, read off the index's `sql` in `sqlite_master` — which DO SQLite serves and
2811
+ * `PRAGMA` does not, so both adapters detect by one strategy. `false` means the index
2812
+ * must be DROPPED and created again: `CREATE … IF NOT EXISTS` matches on the name alone,
2813
+ * so on every existing directory the old `(request_id, unit)` index would otherwise
2814
+ * stand for good, while a fresh one — and any test that starts from one — gets the new.
2815
+ */
2816
+ export declare function sweepRunsIntentHasKind(indexSql: string): boolean;
2654
2817
  /**
2655
2818
  * How long an issue row outlives its last occurrence (#1233). Deliberately longer
2656
2819
  * than the 90-day evidence beneath it: an issue is the compressed memory of a
@@ -2691,10 +2854,12 @@ export interface SweepRunInput {
2691
2854
  at?: string | null;
2692
2855
  /**
2693
2856
  * The platform-intent id a drained batch arrived under — the dedupe key. The
2694
- * adapters enforce UNIQUE (requestId, unit) with an ignore-on-conflict write,
2695
- * so a replayed drain (a settle that failed in transport, a partial batch
2696
- * re-run) writes nothing twice. Unset (the direct sweep path) dedupes nothing:
2697
- * NULLs are distinct under the unique index, exactly as intended.
2857
+ * adapters enforce UNIQUE (requestId, kind, unit) with an ignore-on-conflict
2858
+ * write (`SWEEP_RUNS_INTENT_INDEX`), so a replayed drain (a settle that failed in
2859
+ * transport, a partial batch re-run) writes nothing twice — while a schedule and
2860
+ * a freshness entry of one batch that derive the same unit are two rows (#1572).
2861
+ * Unset (the direct sweep path) dedupes nothing: NULLs are distinct under the
2862
+ * unique index, exactly as intended.
2698
2863
  */
2699
2864
  requestId?: string | null;
2700
2865
  }
@@ -3062,6 +3227,43 @@ export interface ScopeHost {
3062
3227
  * so the type holds, but it is **not a person**.
3063
3228
  */
3064
3229
  getSystemScope(moduleId: ModuleId, tenantId: TenantId, scopeId: ScopeId): Promise<ScopeStub>;
3230
+ /**
3231
+ * Trade a capability's SECRET for what it grants (#1672) — one counted use.
3232
+ *
3233
+ * `act`: a session token to present to `getCapabilityScope`, valid until the earlier of
3234
+ * `CAPABILITY_SESSION_TTL_MS` and the capability's own expiry. The harness sets it as an
3235
+ * HttpOnly cookie, so the secret itself is presented exactly once and never lives in
3236
+ * browser history or a `Referer` (`@substrat-run/vertical-host`'s
3237
+ * `mountCapabilityExchange`). `become`: the principal the holder becomes, for the
3238
+ * harness's identity directory to bind.
3239
+ *
3240
+ * `null` for an unknown, expired, revoked or used-up secret — one answer, so a probe
3241
+ * learns nothing. The use is atomic: a single-use secret exchanged twice at once admits
3242
+ * one. The exchange is on the spine as `capability.exercised`, actor `{ capability }`.
3243
+ * Same fail-closed (tenant, scope) and lifecycle gate as `getScope`.
3244
+ *
3245
+ * `options.mode` names the only kind the caller can handle; a secret of the other kind
3246
+ * answers `null` WITHOUT taking a use — so a claim link pasted into a share-link route is
3247
+ * refused rather than spent.
3248
+ */
3249
+ exchangeCapability(tenantId: TenantId, scopeId: ScopeId, secret: string, options?: {
3250
+ mode?: 'act' | 'become';
3251
+ }): Promise<CapabilityExchange | null>;
3252
+ /**
3253
+ * A scope stub whose authority is a CAPABILITY (#1672) — the fifth door, beside the
3254
+ * principal, connection, system and impersonation ones, and a door rather than a flag for
3255
+ * the reason each of those is: what differs is the authority.
3256
+ *
3257
+ * The session is re-resolved on EVERY invoke, inside the operation's transaction: a
3258
+ * revoked or expired capability, or an expired session, is refused `unauthenticated`
3259
+ * before the handler runs, and an operation outside the capability's allowlist is
3260
+ * refused `forbidden`. Neither is a K-35 denial — no key was checked. Inside, the
3261
+ * operation is ordinary: `ctx.check` resolves the capability's grant (its entity subtree,
3262
+ * its keys, its minter's authority now), refusals ARE recorded with actor
3263
+ * `{ capability }`, and so is every event it emits. `ctx.principal` carries the
3264
+ * capability id so the type holds; it is **not a person**.
3265
+ */
3266
+ getCapabilityScope(sessionToken: string, tenantId: TenantId, scopeId: ScopeId, options?: ScopeStubOptions): Promise<ScopeStub>;
3065
3267
  /**
3066
3268
  * The recurring-work declarations of every module registered on this host (#383)
3067
3269
  * — each module's id, the vertical it belongs to, and its `schedules`. Sync like