@substrat-run/kernel 0.146.0 → 0.148.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 (76) hide show
  1. package/dist/audit-outcome.d.ts +1 -1
  2. package/dist/audit-outcome.d.ts.map +1 -1
  3. package/dist/audit-outcome.js +4 -2
  4. package/dist/audit-outcome.js.map +1 -1
  5. package/dist/export-break.d.ts +137 -0
  6. package/dist/export-break.d.ts.map +1 -0
  7. package/dist/export-break.js +219 -0
  8. package/dist/export-break.js.map +1 -0
  9. package/dist/index.d.ts +17 -8
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +11 -5
  12. package/dist/index.js.map +1 -1
  13. package/dist/install-receipts.d.ts +116 -0
  14. package/dist/install-receipts.d.ts.map +1 -0
  15. package/dist/install-receipts.js +162 -0
  16. package/dist/install-receipts.js.map +1 -0
  17. package/dist/invocation-line.d.ts +63 -0
  18. package/dist/invocation-line.d.ts.map +1 -1
  19. package/dist/invocation-line.js +44 -0
  20. package/dist/invocation-line.js.map +1 -1
  21. package/dist/map-bounded.d.ts +8 -0
  22. package/dist/map-bounded.d.ts.map +1 -0
  23. package/dist/map-bounded.js +16 -0
  24. package/dist/map-bounded.js.map +1 -0
  25. package/dist/meters.d.ts +5 -0
  26. package/dist/meters.d.ts.map +1 -1
  27. package/dist/meters.js +0 -0
  28. package/dist/meters.js.map +1 -1
  29. package/dist/peer.js +1 -1
  30. package/dist/platform-sweep.d.ts +52 -363
  31. package/dist/platform-sweep.d.ts.map +1 -1
  32. package/dist/platform-sweep.js +49 -564
  33. package/dist/platform-sweep.js.map +1 -1
  34. package/dist/schedule-state.d.ts +91 -0
  35. package/dist/schedule-state.d.ts.map +1 -0
  36. package/dist/schedule-state.js +118 -0
  37. package/dist/schedule-state.js.map +1 -0
  38. package/dist/scope-copy-ledger.d.ts +29 -0
  39. package/dist/scope-copy-ledger.d.ts.map +1 -1
  40. package/dist/scope-copy-ledger.js +23 -0
  41. package/dist/scope-copy-ledger.js.map +1 -1
  42. package/dist/scope-copy.d.ts.map +1 -1
  43. package/dist/scope-copy.js +3 -2
  44. package/dist/scope-copy.js.map +1 -1
  45. package/dist/scope-host.d.ts +199 -14
  46. package/dist/scope-host.d.ts.map +1 -1
  47. package/dist/scope-host.js.map +1 -1
  48. package/dist/scope-identity.d.ts +68 -0
  49. package/dist/scope-identity.d.ts.map +1 -0
  50. package/dist/scope-identity.js +75 -0
  51. package/dist/scope-identity.js.map +1 -0
  52. package/dist/scope-store.d.ts +139 -0
  53. package/dist/scope-store.d.ts.map +1 -0
  54. package/dist/scope-store.js +237 -0
  55. package/dist/scope-store.js.map +1 -0
  56. package/dist/spine-restore.js +1 -1
  57. package/dist/sql-limits.d.ts.map +1 -1
  58. package/dist/sql-limits.js +10 -1
  59. package/dist/sql-limits.js.map +1 -1
  60. package/dist/storage-gauge.d.ts +21 -2
  61. package/dist/storage-gauge.d.ts.map +1 -1
  62. package/dist/storage-gauge.js +73 -6
  63. package/dist/storage-gauge.js.map +1 -1
  64. package/dist/store-kind-releases.d.ts +137 -0
  65. package/dist/store-kind-releases.d.ts.map +1 -0
  66. package/dist/store-kind-releases.js +252 -0
  67. package/dist/store-kind-releases.js.map +1 -0
  68. package/dist/upload-link.d.ts +89 -0
  69. package/dist/upload-link.d.ts.map +1 -0
  70. package/dist/upload-link.js +277 -0
  71. package/dist/upload-link.js.map +1 -0
  72. package/dist/vertical-scope-stores.d.ts +43 -0
  73. package/dist/vertical-scope-stores.d.ts.map +1 -0
  74. package/dist/vertical-scope-stores.js +195 -0
  75. package/dist/vertical-scope-stores.js.map +1 -0
  76. package/package.json +2 -2
@@ -38,7 +38,7 @@ import type { OpsFailureInput } from './scope-host.js';
38
38
  * capability revoke is written the same way around the revoke in the scope's store
39
39
  * (`auditedCapabilityRevoke`), which on the shared control plane is another deployment's.
40
40
  */
41
- export declare const AUDITED_CHANGE_ACTIONS: readonly ["transferOwner", "manageScopeMember", "setPeerBinding", "revokeFromSystem", "restoreToSystem", "revokeFromPeer", "restoreToPeer", "moveImportCursor", "revokeCapability"];
41
+ export declare const AUDITED_CHANGE_ACTIONS: readonly ["bindConnectionScope", "transferOwner", "manageScopeMember", "setPeerBinding", "revokeFromSystem", "restoreToSystem", "revokeFromPeer", "restoreToPeer", "moveImportCursor", "revokeCapability"];
42
42
  export type AuditedChangeAction = (typeof AUDITED_CHANGE_ACTIONS)[number];
43
43
  /** The structured line an outcome row that could not be written leaves, keyed so a log search finds every one. */
44
44
  export declare const UNRECORDED_OUTCOME_LOG = "audit-outcome-unrecorded";
@@ -1 +1 @@
1
- {"version":3,"file":"audit-outcome.d.ts","sourceRoot":"","sources":["../src/audit-outcome.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-outcome.d.ts","sourceRoot":"","sources":["../src/audit-outcome.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@
27
27
  * settle's grace window, so a live request cannot normally be overtaken this way. The rule is
28
28
  * stated for the case where one is.
29
29
  */
30
- import { AUDIT_ERROR_MAX, auditOperationId, memberChangeAudit, ownerTransferAudit, peerBindingAudit, provesNothingChanged, substratError } from '@substrat-run/contracts';
30
+ import { AUDIT_ERROR_MAX, auditOperationId, connectionBindingAudit, memberChangeAudit, ownerTransferAudit, peerBindingAudit, provesNothingChanged, substratError } from '@substrat-run/contracts';
31
31
  import { SWITCH_ACTIONS } from './system-switch-record.js';
32
32
  import { ulid } from './ulid.js';
33
33
  /**
@@ -40,6 +40,7 @@ import { ulid } from './ulid.js';
40
40
  * (`auditedCapabilityRevoke`), which on the shared control plane is another deployment's.
41
41
  */
42
42
  export const AUDITED_CHANGE_ACTIONS = [
43
+ 'bindConnectionScope',
43
44
  'transferOwner',
44
45
  'manageScopeMember',
45
46
  'setPeerBinding',
@@ -252,7 +253,8 @@ function auditedUnknownOf(row, after, error) {
252
253
  const entry = { ...after, tenantId: row.tenant_id, scopeId: row.scope_id, phase: 'unknown', error };
253
254
  const { tenantId: _t, scopeId: _s, ...parsed } = row.action === 'transferOwner' ? ownerTransferAudit.parse(entry)
254
255
  : row.action === 'manageScopeMember' ? memberChangeAudit.parse(entry)
255
- : peerBindingAudit.parse(entry);
256
+ : row.action === 'bindConnectionScope' ? connectionBindingAudit.parse(entry)
257
+ : peerBindingAudit.parse(entry);
256
258
  return parsed;
257
259
  }
258
260
  const REAL_OUTCOMES = new Set(['applied', 'refused', 'failed']);
@@ -1 +1 @@
1
- {"version":3,"file":"audit-outcome.js","sourceRoot":"","sources":["../src/audit-outcome.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-outcome.js","sourceRoot":"","sources":["../src/audit-outcome.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
1
+ import type { ExportBreak, ManifestExports, ManifestImports, PlatformActorId, Scope, TenantId } from '@substrat-run/contracts';
2
+ import type { HostAdmin } from './scope-host.js';
3
+ import { type ServingPointer } from './scope-identity.js';
4
+ /**
5
+ * The export-break gate (#1705 PR 3, #1756): whom a promote, a bind or a route change breaks,
6
+ * judged by each adapter's promote and bind doors, and the refusals they answer with.
7
+ * Split out of `platform-sweep.ts` (#1978).
8
+ */
9
+ /**
10
+ * What each scope's RUNNING version imports, from the registry (#1705): one `listVerticals` when
11
+ * a scope is on a serving script, then one `readImports` per distinct running version, at most
12
+ * `concurrency` in flight. A failure on one version never stops the others: a read that throws is
13
+ * reported as `threw` beside the fact, since a caller may treat "the registry could not be asked"
14
+ * differently from "the manifest does not parse". A scope bound to no version gets no fact. The narrowing and the promote gate
15
+ * both ask it, so the two cannot come to disagree about which code a scope runs.
16
+ */
17
+ export declare function runningImportsOf(admin: Pick<HostAdmin, 'listVerticals'>, actor: PlatformActorId, scopes: readonly Scope[], readImports: (verticalSlug: string, versionId: string) => Promise<ManifestImports>, concurrency: number): Promise<{
18
+ scope: Scope;
19
+ key: string;
20
+ versionId: string | null;
21
+ fact: ManifestImports | undefined;
22
+ threw?: string;
23
+ }[]>;
24
+ /**
25
+ * Who a promote breaks (#1705 PR 3): the installed consumers whose RUNNING code imports an
26
+ * exported (type, schemaVersion) that the outgoing version promised and the incoming one drops
27
+ * or exports at another version. The promote gate refuses on a non-empty answer unless it is
28
+ * acknowledged (`exportBreak`), and the refusal lists them.
29
+ *
30
+ * - **What changed** is outgoing versus incoming, from the two versions' registries. An outgoing
31
+ * version whose registry states no exports (a first promote, or a push by a CLI older than
32
+ * 0.34.0) promised nothing the registry can name, so nothing is judged broken. Nothing it
33
+ * exported at run time could be listed either, which is what the permission-digest gate
34
+ * beside this one is for.
35
+ * - **Who is a consumer** is the edge's own rule: a primary, active scope of ANOTHER vertical, in
36
+ * a tenant where the producer is installed (any primary, active install, so two installs still
37
+ * count), whose running version (`runningVersionOf`) declares the import. That over-approximates
38
+ * on purpose, for a listed vertical's tenants still pinned to an older producer version: a
39
+ * refusal that names one tenant too many costs an acknowledgement, and one that names too few
40
+ * costs a silent stall.
41
+ * - **A consumer version whose manifest does not parse** is not judged. It cannot be said to
42
+ * break, and refusing every promote over a manifest nobody can parse would make the gate one
43
+ * nobody can pass. A read that THREW is different: the registry could not be asked, so whom the
44
+ * promote breaks is unknown, and this throws. The gate then refuses rather than failing open.
45
+ * A failed directory read throws the same way.
46
+ *
47
+ * Cost: nothing at all unless an export changed. Then one fleet `listScopes`, one
48
+ * `listVerticals` when a scope is on a serving script, and one `readImports` per distinct
49
+ * running consumer version, at most `concurrency` in flight.
50
+ */
51
+ export declare function exportBreaksOf(input: {
52
+ admin: Pick<HostAdmin, 'listScopes' | 'listVerticals'>;
53
+ actor: PlatformActorId;
54
+ producer: string;
55
+ outgoing: ManifestExports;
56
+ incoming: ManifestExports;
57
+ readImports: (verticalSlug: string, versionId: string) => Promise<ManifestImports>;
58
+ concurrency?: number;
59
+ /**
60
+ * #1756: judge ONE tenant's consumers only — a bind moves one install, and an edge never
61
+ * crosses a tenant, so no other tenant's app can be broken by it. The tenant is taken to run
62
+ * the producer (the scope being bound is that install), whatever its status.
63
+ */
64
+ tenantId?: TenantId;
65
+ /** What is being judged, for the wording of a refusal to judge it. Default `'promotion'`. */
66
+ act?: 'promotion' | 'bind';
67
+ }): Promise<ExportBreak[]>;
68
+ /** Whether a throw is the promote gate's export-break refusal (`exportBreakRefusal`). */
69
+ export declare function isExportBreakRefusal(err: unknown): err is Error;
70
+ /**
71
+ * The refusal a promote gets for a non-empty `exportBreaksOf` (#1705 PR 3). Counts only: the
72
+ * adapters do not know who is promoting, and a builder must not learn from an error which other
73
+ * tenants import its events. The route that knows the caller lists what they may see.
74
+ */
75
+ export declare function exportBreakRefusal(breaks: readonly ExportBreak[]): string;
76
+ /** How `bindExportBreakRefusal` begins: what lets the bind route recognise it (#1756). */
77
+ export declare const BIND_EXPORT_BREAK_REFUSAL = "this bind drops or re-versions";
78
+ /** Whether a throw is the bind gate's export-break refusal (`bindExportBreakRefusal`). */
79
+ export declare function isBindExportBreakRefusal(err: unknown): err is Error;
80
+ /**
81
+ * The refusal a bind gets for a non-empty `bindExportBreaksOf` (#1756). Every break is in the
82
+ * bound scope's own tenant, which the caller addressed, so it names no one else — but it stays in
83
+ * counts, as the promote refusal does, and the route that knows the caller adds the listing.
84
+ */
85
+ export declare function bindExportBreakRefusal(breaks: readonly ExportBreak[]): string;
86
+ /**
87
+ * What a bind or a route change moves `scope` between (#1756, #2178): the version it runs before
88
+ * and the one it runs after (`runningVersionOf` on both of its inputs), or null when the move
89
+ * changes nothing it runs — a re-point that stays on the serving script — or it ran nothing before
90
+ * (a first bind). `servingRef` omitted: the route is unchanged.
91
+ */
92
+ export declare function scopeMoveOf(scope: Pick<Scope, 'verticalVersionId' | 'servingRef'>, incomingVersionId: string, servingRef: string | null | undefined, serving: ServingPointer | null): {
93
+ before: string;
94
+ after: string;
95
+ } | null;
96
+ /**
97
+ * Whom moving `scope` breaks (#1756): the promote gate's question (`exportBreaksOf`), asked of
98
+ * ONE install in its own tenant, since an edge never crosses one.
99
+ *
100
+ * A scope's exports leave from the code it RUNS, and `runningVersionOf` names that code from two
101
+ * inputs: the version pointer and the serving ref. So a move is either or both of them changing —
102
+ * a bind (`next.versionId`), or a route onto or off a serving script (`next.servingRef`, which is
103
+ * how an adopt moves a scope before its pointer ever does). Both are judged by the same rule, on
104
+ * the running version before against the running version after, the rule the consumers are judged
105
+ * on too:
106
+ *
107
+ * - **Re-pointing a scope that stays on its vertical's serving script** changes nothing it runs,
108
+ * so it is never refused. The change reached it when the serving script was replaced — at a
109
+ * promote, which judged every tenant then. A route ONTO the serving script is not that case:
110
+ * the scope goes from its own version to whatever is served, and that is judged.
111
+ * - **A fork or a preview** is never an edge's producer (`resolveVerticalInstanceFrom` takes the
112
+ * primary install only), so nothing it runs can break an edge.
113
+ * - **A scope still provisioning** has never been active, so no edge has ever delivered from it.
114
+ * - **A first bind** runs nothing before it, so it promised nothing.
115
+ * - **A lineage crossing** (the version belongs to another vertical than the scope's, or the route
116
+ * goes onto a script that is not this vertical's serving script) is not judged here, and nothing
117
+ * else judges it either: every consumer importing `from` the old slug
118
+ * loses its producer, and `rebind-vertical`'s acknowledgements are about migrations, not about
119
+ * that. A known gap, older than this gate.
120
+ */
121
+ export declare function bindExportBreaksOf(input: {
122
+ admin: Pick<HostAdmin, 'listScopes' | 'listVerticals'>;
123
+ actor: PlatformActorId;
124
+ scope: Pick<Scope, 'tenantId' | 'forkedFrom' | 'kind' | 'status' | 'vertical' | 'verticalVersionId' | 'servingRef'>;
125
+ /** The version the scope is bound to after the move (its vertical's slug beside it). */
126
+ incoming: {
127
+ id: string;
128
+ verticalSlug: string;
129
+ };
130
+ /** The serving ref it routes by after the move. Omitted: unchanged. */
131
+ servingRef?: string | null;
132
+ /** The serving pointer of the scope's vertical, or null when nothing is served in place. */
133
+ serving: ServingPointer | null;
134
+ readExports: (versionId: string) => Promise<ManifestExports>;
135
+ readImports: (verticalSlug: string, versionId: string) => Promise<ManifestImports>;
136
+ }): Promise<ExportBreak[]>;
137
+ //# sourceMappingURL=export-break.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-break.d.ts","sourceRoot":"","sources":["../src/export-break.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,219 @@
1
+ import { errorCodeOf, substratError } from '@substrat-run/contracts';
2
+ import { mapBounded, message } from './map-bounded.js';
3
+ import { isPrimaryScope, runningVersionOf, servingPointersFor } from './scope-identity.js';
4
+ /**
5
+ * The export-break gate (#1705 PR 3, #1756): whom a promote, a bind or a route change breaks,
6
+ * judged by each adapter's promote and bind doors, and the refusals they answer with.
7
+ * Split out of `platform-sweep.ts` (#1978).
8
+ */
9
+ /**
10
+ * What each scope's RUNNING version imports, from the registry (#1705): one `listVerticals` when
11
+ * a scope is on a serving script, then one `readImports` per distinct running version, at most
12
+ * `concurrency` in flight. A failure on one version never stops the others: a read that throws is
13
+ * reported as `threw` beside the fact, since a caller may treat "the registry could not be asked"
14
+ * differently from "the manifest does not parse". A scope bound to no version gets no fact. The narrowing and the promote gate
15
+ * both ask it, so the two cannot come to disagree about which code a scope runs.
16
+ */
17
+ export async function runningImportsOf(admin, actor, scopes, readImports, concurrency) {
18
+ const serving = await servingPointersFor(admin, actor, scopes);
19
+ const versions = new Map();
20
+ const keyed = [];
21
+ for (const s of scopes) {
22
+ if (!s.vertical)
23
+ continue;
24
+ const versionId = runningVersionOf(s, serving.get(s.vertical));
25
+ const key = `${s.vertical}@${versionId ?? '(no version)'}`;
26
+ if (versionId && !versions.has(key))
27
+ versions.set(key, { slug: s.vertical, versionId });
28
+ keyed.push({ scope: s, key, versionId });
29
+ }
30
+ const facts = new Map();
31
+ const threw = new Map();
32
+ await mapBounded([...versions], concurrency, async ([key, v]) => {
33
+ try {
34
+ facts.set(key, await readImports(v.slug, v.versionId));
35
+ }
36
+ catch (err) {
37
+ facts.set(key, { kind: 'unreadable', reason: message(err) });
38
+ threw.set(key, message(err));
39
+ }
40
+ });
41
+ return keyed.map((k) => ({ ...k, fact: facts.get(k.key), ...(threw.has(k.key) ? { threw: threw.get(k.key) } : {}) }));
42
+ }
43
+ /**
44
+ * Who a promote breaks (#1705 PR 3): the installed consumers whose RUNNING code imports an
45
+ * exported (type, schemaVersion) that the outgoing version promised and the incoming one drops
46
+ * or exports at another version. The promote gate refuses on a non-empty answer unless it is
47
+ * acknowledged (`exportBreak`), and the refusal lists them.
48
+ *
49
+ * - **What changed** is outgoing versus incoming, from the two versions' registries. An outgoing
50
+ * version whose registry states no exports (a first promote, or a push by a CLI older than
51
+ * 0.34.0) promised nothing the registry can name, so nothing is judged broken. Nothing it
52
+ * exported at run time could be listed either, which is what the permission-digest gate
53
+ * beside this one is for.
54
+ * - **Who is a consumer** is the edge's own rule: a primary, active scope of ANOTHER vertical, in
55
+ * a tenant where the producer is installed (any primary, active install, so two installs still
56
+ * count), whose running version (`runningVersionOf`) declares the import. That over-approximates
57
+ * on purpose, for a listed vertical's tenants still pinned to an older producer version: a
58
+ * refusal that names one tenant too many costs an acknowledgement, and one that names too few
59
+ * costs a silent stall.
60
+ * - **A consumer version whose manifest does not parse** is not judged. It cannot be said to
61
+ * break, and refusing every promote over a manifest nobody can parse would make the gate one
62
+ * nobody can pass. A read that THREW is different: the registry could not be asked, so whom the
63
+ * promote breaks is unknown, and this throws. The gate then refuses rather than failing open.
64
+ * A failed directory read throws the same way.
65
+ *
66
+ * Cost: nothing at all unless an export changed. Then one fleet `listScopes`, one
67
+ * `listVerticals` when a scope is on a serving script, and one `readImports` per distinct
68
+ * running consumer version, at most `concurrency` in flight.
69
+ */
70
+ export async function exportBreaksOf(input) {
71
+ const act = input.act ?? 'promotion';
72
+ // An outgoing manifest that does not parse promised SOMETHING nobody can read. Judging it as
73
+ // "promised nothing" would pass every break unacknowledged, so it refuses, as a thrown read does.
74
+ if (input.outgoing.kind === 'unreadable') {
75
+ throw substratError('unavailable', `cannot say whom this ${act} breaks: the outgoing version's exports could not be read (${input.outgoing.reason})`);
76
+ }
77
+ if (input.outgoing.kind !== 'exports')
78
+ return [];
79
+ const incoming = new Map(input.incoming.kind === 'exports' ? input.incoming.rows.map((r) => [r.type, r.schemaVersion]) : []);
80
+ const changed = new Map();
81
+ for (const r of input.outgoing.rows) {
82
+ const now = incoming.get(r.type) ?? null;
83
+ if (now !== r.schemaVersion)
84
+ changed.set(r.type, { schemaVersion: r.schemaVersion, incoming: now });
85
+ }
86
+ if (changed.size === 0)
87
+ return [];
88
+ const scopes = (await input.admin.listScopes(input.actor, { status: 'active', tenantId: input.tenantId })).filter((s) => isPrimaryScope(s) && s.vertical !== null);
89
+ // Narrowed to one tenant, every scope read is already in a tenant that runs the producer.
90
+ const installedIn = input.tenantId === undefined
91
+ ? new Set(scopes.filter((s) => s.vertical === input.producer).map((s) => s.tenantId))
92
+ : null;
93
+ const consumers = scopes.filter((s) => s.vertical !== input.producer && (installedIn?.has(s.tenantId) ?? true));
94
+ if (consumers.length === 0)
95
+ return [];
96
+ const out = [];
97
+ for (const { scope, key, versionId, fact, threw } of await runningImportsOf(input.admin, input.actor, consumers, input.readImports, input.concurrency ?? 8)) {
98
+ if (threw !== undefined) {
99
+ throw substratError('unavailable', `cannot say whom this ${act} breaks: the registry could not be asked what ${key} imports (${threw}) — retry`);
100
+ }
101
+ if (fact?.kind !== 'imports')
102
+ continue;
103
+ for (const row of fact.rows) {
104
+ const hit = row.from === input.producer ? changed.get(row.type) : undefined;
105
+ if (!hit || hit.schemaVersion !== row.schemaVersion)
106
+ continue;
107
+ out.push({
108
+ tenantId: scope.tenantId,
109
+ scopeId: scope.id,
110
+ vertical: scope.vertical,
111
+ version: versionId,
112
+ type: row.type,
113
+ schemaVersion: row.schemaVersion,
114
+ incoming: hit.incoming,
115
+ });
116
+ }
117
+ }
118
+ return out.sort((a, b) => a.tenantId.localeCompare(b.tenantId) || a.scopeId.localeCompare(b.scopeId) || a.type.localeCompare(b.type));
119
+ }
120
+ /** How `exportBreakRefusal` begins: what lets the promote route recognise it and add the listing. */
121
+ const EXPORT_BREAK_REFUSAL = 'promotion drops or re-versions';
122
+ /** Whether a throw is the promote gate's export-break refusal (`exportBreakRefusal`). */
123
+ export function isExportBreakRefusal(err) {
124
+ return errorCodeOf(err) === 'precondition_failed' && err instanceof Error && err.message.startsWith(EXPORT_BREAK_REFUSAL);
125
+ }
126
+ /**
127
+ * The refusal a promote gets for a non-empty `exportBreaksOf` (#1705 PR 3). Counts only: the
128
+ * adapters do not know who is promoting, and a builder must not learn from an error which other
129
+ * tenants import its events. The route that knows the caller lists what they may see.
130
+ */
131
+ export function exportBreakRefusal(breaks) {
132
+ const types = new Set(breaks.map((b) => b.type)).size;
133
+ const apps = new Set(breaks.map((b) => b.scopeId)).size;
134
+ const tenants = new Set(breaks.map((b) => b.tenantId)).size;
135
+ return (`${EXPORT_BREAK_REFUSAL} ${types} exported event type(s) that ${apps} installed app(s) in ` +
136
+ `${tenants} tenant(s) import — their edges would stop delivering it. Acknowledge it explicitly ` +
137
+ `(exportBreak) to promote, or keep the export and bump its consumers first`);
138
+ }
139
+ /** How `bindExportBreakRefusal` begins: what lets the bind route recognise it (#1756). */
140
+ export const BIND_EXPORT_BREAK_REFUSAL = 'this bind drops or re-versions';
141
+ /** Whether a throw is the bind gate's export-break refusal (`bindExportBreakRefusal`). */
142
+ export function isBindExportBreakRefusal(err) {
143
+ return errorCodeOf(err) === 'precondition_failed' && err instanceof Error && err.message.startsWith(BIND_EXPORT_BREAK_REFUSAL);
144
+ }
145
+ /**
146
+ * The refusal a bind gets for a non-empty `bindExportBreaksOf` (#1756). Every break is in the
147
+ * bound scope's own tenant, which the caller addressed, so it names no one else — but it stays in
148
+ * counts, as the promote refusal does, and the route that knows the caller adds the listing.
149
+ */
150
+ export function bindExportBreakRefusal(breaks) {
151
+ const types = new Set(breaks.map((b) => b.type)).size;
152
+ const apps = new Set(breaks.map((b) => b.scopeId)).size;
153
+ return (`${BIND_EXPORT_BREAK_REFUSAL} ${types} exported event type(s) that ${apps} installed app(s) in ` +
154
+ `this tenant import — their edges would stop delivering it. Acknowledge it explicitly ` +
155
+ `(exportBreak) to bind, or bind a version that keeps the export`);
156
+ }
157
+ /**
158
+ * What a bind or a route change moves `scope` between (#1756, #2178): the version it runs before
159
+ * and the one it runs after (`runningVersionOf` on both of its inputs), or null when the move
160
+ * changes nothing it runs — a re-point that stays on the serving script — or it ran nothing before
161
+ * (a first bind). `servingRef` omitted: the route is unchanged.
162
+ */
163
+ export function scopeMoveOf(scope, incomingVersionId, servingRef, serving) {
164
+ const before = runningVersionOf(scope, serving);
165
+ const after = runningVersionOf({ verticalVersionId: incomingVersionId, servingRef: servingRef === undefined ? scope.servingRef : servingRef }, serving);
166
+ return before === null || after === null || before === after ? null : { before, after };
167
+ }
168
+ /**
169
+ * Whom moving `scope` breaks (#1756): the promote gate's question (`exportBreaksOf`), asked of
170
+ * ONE install in its own tenant, since an edge never crosses one.
171
+ *
172
+ * A scope's exports leave from the code it RUNS, and `runningVersionOf` names that code from two
173
+ * inputs: the version pointer and the serving ref. So a move is either or both of them changing —
174
+ * a bind (`next.versionId`), or a route onto or off a serving script (`next.servingRef`, which is
175
+ * how an adopt moves a scope before its pointer ever does). Both are judged by the same rule, on
176
+ * the running version before against the running version after, the rule the consumers are judged
177
+ * on too:
178
+ *
179
+ * - **Re-pointing a scope that stays on its vertical's serving script** changes nothing it runs,
180
+ * so it is never refused. The change reached it when the serving script was replaced — at a
181
+ * promote, which judged every tenant then. A route ONTO the serving script is not that case:
182
+ * the scope goes from its own version to whatever is served, and that is judged.
183
+ * - **A fork or a preview** is never an edge's producer (`resolveVerticalInstanceFrom` takes the
184
+ * primary install only), so nothing it runs can break an edge.
185
+ * - **A scope still provisioning** has never been active, so no edge has ever delivered from it.
186
+ * - **A first bind** runs nothing before it, so it promised nothing.
187
+ * - **A lineage crossing** (the version belongs to another vertical than the scope's, or the route
188
+ * goes onto a script that is not this vertical's serving script) is not judged here, and nothing
189
+ * else judges it either: every consumer importing `from` the old slug
190
+ * loses its producer, and `rebind-vertical`'s acknowledgements are about migrations, not about
191
+ * that. A known gap, older than this gate.
192
+ */
193
+ export async function bindExportBreaksOf(input) {
194
+ const { scope } = input;
195
+ if (!isPrimaryScope(scope) || scope.status === 'provisioning')
196
+ return [];
197
+ if (scope.vertical === null || scope.vertical !== input.incoming.verticalSlug)
198
+ return [];
199
+ // A route onto a script that is not this vertical's serving script is a lineage crossing (or a
200
+ // ref this host cannot name), and what the scope runs there is not this vertical's code at all:
201
+ // the same known gap as above, never a phantom move judged against the wrong vertical.
202
+ if (typeof input.servingRef === 'string' && input.servingRef !== input.serving?.ref)
203
+ return [];
204
+ const move = scopeMoveOf(scope, input.incoming.id, input.servingRef, input.serving);
205
+ if (move === null)
206
+ return [];
207
+ const [outgoing, incoming] = await Promise.all([input.readExports(move.before), input.readExports(move.after)]);
208
+ return exportBreaksOf({
209
+ admin: input.admin,
210
+ actor: input.actor,
211
+ producer: scope.vertical,
212
+ outgoing,
213
+ incoming,
214
+ readImports: input.readImports,
215
+ tenantId: scope.tenantId,
216
+ act: 'bind',
217
+ });
218
+ }
219
+ //# sourceMappingURL=export-break.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-break.js","sourceRoot":"","sources":["../src/export-break.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,13 @@
1
- export type { AccessLogFilter, AttachmentSearchOptions, AttachmentUploadInput, AuditLogFilter, BlobStoreProvisionInput, BlobStoreRecord, ConsumerHandler, ImportHandler, ExecutorDeadLetter, ExecutorDrainReport, ExecutorHandler, ExecutorOutcome, ExecutorRetryPolicy, ExecutorScope, MembershipChange, MembershipChangeResult, ConnectorConnection, ScopedConnectorConnection, ConnectorContext, ConnectorHandler, ConnectorOptions, ConnectorRequestInit, ConnectorResponse, Clock, FetchLike, GuardPredicate, HostAdmin, MigrateScopeOutcome, ReconcileOutcome, MigrationFrontier, ModuleRegistration, ConsumersOf, EventContract, EventPayloadOf, EventTypeOf, TypedConsumerHandler, TypedConsumers, OpenedAttachment, OperationContext, PageParams, OperationHandler, AppliedMigration, OpsFailureFilter, OpsFailureInput, KeptCopyResolution, ScopeScriptCopy, ScopeCopyRole, ScopeCopyMoveConfirmation, IssueFilter, TelemetryPruneReport, SweepRunFilter, SweepRunInput, ProvisionScopeInput, RoleFilter, FreshnessRegistration, FreshnessReport, LiveChange, LiveFrame, LiveNudge, LiveReadSurface, LiveUpgradeRequest, OperationEntitlement, ScheduleRegistration, ScheduleRunReport, ScopeAttachments, ScopedSql, ScopeFilter, ScopeHost, ScopeStub, ScopeStubOptions, InvokeOptions, EmittedEvent, EmittedReport, SqlMigration, SqlValue, TenantBlobStore, TenantRelationalStore, TenantStoreProvisionInput, TenantStoreRecord, } from './scope-host.js';
1
+ export type { AccessLogFilter, AttachmentSearchOptions, AttachmentUploadInput, UploadLinkRedeemInput, AuditLogFilter, BlobStoreProvisionInput, BlobStoreRecord, ConsumerHandler, ImportHandler, ExecutorDeadLetter, ExecutorDrainReport, ExecutorHandler, ExecutorOutcome, ExecutorRetryPolicy, ExecutorScope, MembershipChange, MembershipChangeResult, ConnectorConnection, ScopedConnectorConnection, ConnectorContext, ConnectorHandler, ConnectorOptions, ConnectorRequestInit, ConnectorResponse, Clock, FetchLike, GuardPredicate, HostAdmin, MigrateScopeOutcome, ReconcileOutcome, MigrationFrontier, ModuleRegistration, ConsumersOf, EventContract, EventPayloadOf, EventTypeOf, TypedConsumerHandler, TypedConsumers, OpenedAttachment, OperationContext, PageParams, OperationHandler, AppliedMigration, OpsFailureFilter, OpsFailureInput, KeptCopyResolution, ScopeScriptCopy, ScopeCopyRole, ScopeCopyMoveConfirmation, IssueFilter, TelemetryPruneReport, SweepRunFilter, SweepRunInput, ProvisionScopeInput, RoleFilter, FreshnessRegistration, FreshnessReport, LiveChange, LiveFrame, LiveNudge, LiveReadSurface, LiveUpgradeRequest, OperationEntitlement, ScheduleRegistration, ScheduleRunReport, ScopeAttachments, ScopedSql, ScopeFilter, ScopeHost, ScopeStub, ScopeStubOptions, InvokeOptions, EmittedEvent, EmittedReport, SqlMigration, SqlValue, TenantBlobStore, TenantRelationalStore, TenantStoreProvisionInput, TenantStoreRecord, } from './scope-host.js';
2
2
  export { GRANT_CHILDREN_INDEX_DDL } from './grant-scoped-read.js';
3
+ export { callReservedStoreOperation, callScopeStore, observeStoreCall, replayStoreErasures, scopeStoreLifecycleOf, scopeStoreRunnersOf, type ReservedStoreResult, type ScopeStoreAddress, type ScopeStoreHostOptions, type ScopeStoreLifecycle, type ScopeStoreRunner, type ScopeStoreStubOptions, type StoreCallReport, type StoreErasureReplay, type StoreStub, } from './scope-store.js';
3
4
  export type { GrantedEntitiesPage, GrantedEntityIdsMayRepeatPage } from './grant-scoped-read.js';
4
5
  export type { ConnectionUseOutcome, ConnectionUseTiming, ConnectorCallErrorType, ConnectorCallRecord, ConnectorCallRecorder, CountingConnectorCallRecorder, } from './connector-calls.js';
5
6
  export { connectorCallRecord, noopConnectorCallRecorder, recordConnectorCall, settleConnectionUse, } from './connector-calls.js';
6
7
  export { requestEmail, settlePlatformRequestIn } from './email-intent.js';
7
8
  export type { OutcomeEventStamp, PlatformRequestSettle } from './email-intent.js';
8
9
  export type { MailAddress, MailSender, MailSendResult, OutboundMail, OutboundMailAttachment, } from './mail-sender.js';
9
- export { COPY_CLAIM_SQL, COPY_RESTORE_FENCE_LAPSED, copyRestoreFence, copyRestoreFenceLapsed, type CopyRestoreFence, BACKFILL_MOVE_ID, COPY_BACKFILL_SCOPE_SQL, COPY_BACKFILL_SQL, COPY_BACKFILL_SUPERSEDE_SQL, copyBackfillParams, copyBackfillRefusal, type ScopeCopyBackfillResult, type CopyBackfillScopeRow, type ErasureEpochStamp, COPY_EXPIRED_SQL, COPY_MOVE_CONFIRM_SQL, COPY_MOVE_LIVE_PREDICATE, SCOPE_SCRIPT_COPY_COLUMNS, copyMoveConfirmParams, copyMoveLiveParams, scopeScriptCopyOf, type ScopeScriptCopyRow, } from './scope-copy-ledger.js';
10
+ export { COPY_CLAIM_SQL, COPY_RESTORE_FENCE_LAPSED, copyRestoreFence, copyRestoreFenceLapsed, type CopyRestoreFence, BACKFILL_MOVE_ID, COPY_BACKFILL_SCOPE_SQL, COPY_BACKFILL_SQL, COPY_BACKFILL_SUPERSEDE_SQL, copyBackfillParams, copyBackfillRefusal, type ScopeCopyBackfillResult, type CopyBackfillScopeRow, type ErasureEpochStamp, SUBJECT_ERASURE_CLAIM_SQL, subjectErasureClaimParams, type SubjectErasureFence, COPY_EXPIRED_SQL, COPY_MOVE_CONFIRM_SQL, COPY_MOVE_LIVE_PREDICATE, SCOPE_SCRIPT_COPY_COLUMNS, copyMoveConfirmParams, copyMoveLiveParams, scopeScriptCopyOf, type ScopeScriptCopyRow, } from './scope-copy-ledger.js';
10
11
  export { SCOPE_COPY_LEASE_MS, assertRedrainWindow, attachmentBlobKey, attachmentSha256, consumersFor, entitlementDenial, requiredEntitlementFor, backoffAt, globalFetch, executorOutcomeOf, parseValidationRecords, resolveRetryPolicy, OPS_FAILURE_RETENTION_DAYS, SWEEP_RUN_RETENTION_DAYS, SWEEP_RUNS_INTENT_INDEX, sweepRunsIntentHasKind, ISSUE_RETENTION_DAYS, telemetryRetentionStatements, assertRowLimit, assertRowOffset, EMITTED_REPORT_CAP, isUpgradeRequest, isVouchedWithin, vouchedWithin, type VouchedWithin, checkedWithin, isCheckedWithin, type CheckedWithin, } from './scope-host.js';
11
12
  export { assertBoundOperations, operationsFor, undeclaredOperations, type BoundOperations, type HandlerMap, } from './module-operations.js';
12
13
  export { isSecretBoxConfigured, SecretBoxUnconfiguredError, unconfiguredSecretBox, webCryptoSecretBox, } from './secret-box.js';
@@ -24,6 +25,8 @@ export { actorOf, asPrincipal, unknownRoleError } from './permission-checker.js'
24
25
  export type { Holdings, PermissionChecker } from './permission-checker.js';
25
26
  export { ancestorsWithin, createTupleEvaluator, grantedEntitiesForContext, memberAddedAudit, orgChangeBound, reachesWithin, tenantCoverage, } from './permission-eval.js';
26
27
  export type { PermissionTupleReader, TenantDirectoryReader, PermissionTupleRow, ScopeTupleReader, } from './permission-eval.js';
28
+ export { UPLOAD_LINK_DDL, UPLOAD_LINK_GONE, UPLOAD_LINK_TOO_LARGE, UPLOAD_LINK_TYPE_REFUSED, UPLOAD_LINK_WRONG_TARGET, createAttachmentVerbs, inspectUploadLink, redeemUploadLinkInTransaction, uploadContentTypeAllowed, } from './upload-link.js';
29
+ export type { AttachmentVerbDeps, AttachmentVerbs, UploadLinkInspection, UploadTarget, } from './upload-link.js';
27
30
  export { CAPABILITY_DDL, CAPABILITY_EXCHANGE_OPERATION, CAPABILITY_SESSION_PRUNE_BATCH, WITHHELD_SECRET, assertNoSecret, capabilityAttachmentWriteRefused, capabilityByIdQuery, capabilityTokenHash, checkBecomeInput, createCapabilityVerbs, exchangeCapability, guardSecrets, mintBecomeCapability, mintCapabilitySecret, readCapabilityPage, plausibleSessionToken, plausibleCapabilitySecret, redactSecrets, redactSecretText, resolveCapabilitySession, revokeCapabilityAsPlatform, CAPABILITY_BECOME_MINT_OPERATION, becomeMintCheck, readBecomeLinkStates, assertBecomeLinkStateIds, mintBecomeCapabilityAsPrincipal, revokeBecomeCapabilityAsPrincipal, allowedFor, } from './capability.js';
28
31
  export type { CapabilityGrantView, CapabilityRow, CapabilityVerbDeps, CapabilityVerbs, } from './capability.js';
29
32
  export { createEntityEdgeVerbs } from './entity-edges.js';
@@ -88,6 +91,8 @@ export { ADMIN_LOG_INDEX_DDL, ADMIN_LOG_INDEXES_SQL } from './admin-log-ddl.js';
88
91
  export { AUDITED_CHANGE_ACTIONS, SETTLE_INTENT_SQL, SETTLE_OUTCOME_SQL, settleOutcomeParamsOf, operationKeyOf, auditedOperationsSql, effectiveOutcomes, isSupersededOutcome, readAuditedOperations, unknownOutcomeOf, UNRECORDED_OUTCOME_LOG, recordAuditOutcome, auditedCapabilityRevoke, auditWarningOf, } from './audit-outcome.js';
89
92
  export type { AuditLogError, AuditedChangeAction, AuditedOperationRef, AuditedOperationRow, AuditedOperationSqlRow, AuditedPhase, EffectiveOutcome, OperationKey, SettleIntentRow, UnknownOutcome, } from './audit-outcome.js';
90
93
  export { VERSION_MIGRATIONS_DDL, splitManifestMigrations, splitVersionMigrationsBatch, versionMigrationsOf, versionsAwaitSplit, writeVersionMigrations, } from './version-migrations.js';
94
+ export { VERTICAL_SCOPE_STORES_DDL, forgetVerticalScopeStores, indexVersionScopeStores, kindDeclarationsOf, verticalScopeStoresOf, type VerticalScopeStore, } from './vertical-scope-stores.js';
95
+ export { STORE_KIND_RELEASES_DDL, beginStoreKindRolloutIn, finishStoreKindRolloutIn, holdStoreKindIn, recordStoreKindReleaseIn, releaseStoreKindHoldIn, storeKindReleaseIn, storeKindStateIn, type StoreKindHoldMode, type StoreKindReleaseRecord, type StoreKindRolloutAction, type StoreKindRolloutRecord, type StoreKindRolloutState, type StoreKindState, } from './store-kind-releases.js';
91
96
  export type { SplitManifest } from './version-migrations.js';
92
97
  export { admitPeer, collectPeers, peerGrantsStatus, peerSeats, peerSubjectRef, resolveVerticalInstanceFrom, switchPeer, } from './peer.js';
93
98
  export { PEER_BINDINGS_DDL, isPeerInstanceOf, peerCallerAt, peerVerticalSpellings, resolvePeerInstanceFrom, samePeerVertical } from './peer.js';
@@ -108,17 +113,21 @@ export type { OutboxEnvelopeRow, OutboxDrainRow, UndrainedEvents, UndrainedRead,
108
113
  export { IDEMPOTENCY_DDL, assertIdempotencyKey, idempotencyLookupQuery, idempotencyPruneStatement, idempotencyRecordStatement, idempotencyOptedOutMessage, replayFor, type IdempotencyRow, type IdempotentReplay, } from './idempotency.js';
109
114
  export { JOB_RUN_DDL, JOB_RUN_PATCH_SQL, JOB_RUN_CLAIM_SQL, JOB_RUN_RENEW_SQL, JOB_RUN_BEGIN_SQL, JOB_RUN_MISS_SQL, JOB_RUN_MISS_SETTLE_SQL, admissionMissOutcome, JOB_STEP_RECORD_SQL, JOB_LEASE_MS, JOB_LEASE_MIN_MS, JOB_ADMISSION_MISS_MAX, JOB_LEASE_TOO_SHORT_NOTE, admissionBackoffMs, JOB_LEASE_EXPIRED_NOTE, assertLeaseMs, jobRunListLimit, SYSTEM_DOOR_WAIT, JOB_DEFER_MS, JOB_RUN_DUE_AT, jobRunOf, runDueJobRuns, runJobPass, startJobRun, } from './job-run.js';
110
115
  export type { JobDueKey, JobDriveReport, JobHandler, JobPassContext, JobPassOutcome, JobPassResult, JobRun, JobRegistration, JobRunClaim, JobRunFilter, JobRunKey, JobRunPatch, JobRunRow, JobRunStatus, JobRunStore, JobStepRow, StartJobRunInput, } from './job-run.js';
111
- export { runPlatformSweep, startPlatformSweeper, SCHEDULE_STATE_DDL, SCHEDULE_STATE_REBUILD, scheduleStateHasKind, } from './platform-sweep.js';
112
- export type { AccessLogSink, EventSink, EventDrainReport, EventDrainSkipped, PlatformRequestUnsettleable, AccessLogSweepReport, ConnectorSweeper, MigrationSweepReport, PlatformSweepOptions, PlatformSweepReport, PlatformSweeperHandle, ScheduleSweepReport, ScheduleStateKind, StartPlatformSweeperOptions, StorageGaugeSweepOptions, StorageGaugeSweepReport, } from './platform-sweep.js';
113
- export { StorageReadUnsupported } from './platform-sweep.js';
114
- export { isPrimaryScope, isPrimaryScopeRow, INERT_SCOPE_REASON, runningVersionOf, PROVISION_RECONCILE_BATCH, CROSS_VERTICAL_CONSUMERS_PER_PASS, runCrossVerticalFrom, registryImportCandidates, crossVerticalHealth, exportBreaksOf, exportBreakRefusal, isExportBreakRefusal, bindExportBreaksOf, scopeMoveOf, PROVISIONED_VERSIONS_SQL, installsReconciledOf, installsReconciledNote, installReconciled, boundEverOf, boundShapesColumn, boundShapesOfColumn, provisionedVersionsParams, strandJudgmentsOf, bindExportBreakRefusal, BIND_EXPORT_BREAK_REFUSAL, isBindExportBreakRefusal, } from './platform-sweep.js';
115
- export type { CandidatesHint, CrossVerticalEdge, CrossVerticalOptions, CrossVerticalReach, CrossVerticalReport, ProvisionReconcileReport, ServingPointer, InstallsReconciled, StrandJudgment, } from './platform-sweep.js';
116
+ export { runPlatformSweep, startPlatformSweeper, StorageReadUnsupported, PROVISION_RECONCILE_BATCH, CROSS_VERTICAL_CONSUMERS_PER_PASS, runCrossVerticalFrom, registryImportCandidates, crossVerticalHealth, } from './platform-sweep.js';
117
+ export { SCHEDULE_STATE_DDL, SCHEDULE_STATE_REBUILD, scheduleStateHasKind } from './schedule-state.js';
118
+ export type { ScheduleSweepReport, ScheduleStateKind } from './schedule-state.js';
119
+ export type { AccessLogSink, EventSink, EventDrainReport, EventDrainSkipped, PlatformRequestUnsettleable, AccessLogSweepReport, ConnectorSweeper, MigrationSweepReport, PlatformSweepOptions, PlatformSweepReport, PlatformSweeperHandle, StartPlatformSweeperOptions, StorageGaugeSweepOptions, StorageGaugeSweepReport, CandidatesHint, CrossVerticalEdge, CrossVerticalOptions, CrossVerticalReach, CrossVerticalReport, ProvisionReconcileReport, } from './platform-sweep.js';
120
+ export { isPrimaryScope, isPrimaryScopeRow, INERT_SCOPE_REASON, runningVersionOf } from './scope-identity.js';
121
+ export type { ServingPointer } from './scope-identity.js';
122
+ export { exportBreaksOf, exportBreakRefusal, isExportBreakRefusal, bindExportBreaksOf, scopeMoveOf, bindExportBreakRefusal, BIND_EXPORT_BREAK_REFUSAL, isBindExportBreakRefusal, } from './export-break.js';
123
+ export { PROVISIONED_VERSIONS_SQL, installsReconciledOf, installsReconciledNote, installReconciled, boundEverOf, boundShapesColumn, boundShapesOfColumn, provisionedVersionsParams, strandJudgmentsOf, } from './install-receipts.js';
124
+ export type { InstallsReconciled, StrandJudgment } from './install-receipts.js';
116
125
  export { migrationProgress, } from './migration-progress.js';
117
126
  export type { ScopeMigrationState } from './migration-progress.js';
118
127
  export { foldMeterReading } from './meters.js';
119
128
  export { MODEL_USAGE_RETENTION_DAYS, foldModelUsage, type ModelUsageFilter, type ModelUsageInput, type ModelUsageWindow, } from './model-usage.js';
120
129
  export type { MeterEntitlementInput, MeterInput, MeterScopeInput, MeterTenantInput, } from './meters.js';
121
- export { SCOPE_STORAGE_DDL, forgetScopeStorage, listScopeStorageAttemptRows, listScopeStorageRows, pruneScopeStorageRows, recordScopeStorageRows, type ScopeStorageAttempt, type ScopeStorageFilter, type ScopeStorageReadingInput, } from './storage-gauge.js';
130
+ export { SCOPE_STORAGE_DDL, forgetScopeStorage, listScopeStorageAttemptRows, listScopeStorageRows, listScopeStoreStorageRows, pruneScopeStorageRows, recordScopeStorageRows, type ScopeStorageAttempt, type ScopeStorageFilter, type ScopeStorageReadingInput, } from './storage-gauge.js';
122
131
  export { moduleLog, consoleLogSink, } from './module-log.js';
123
132
  export type { ModuleLog, ModuleLogLine, ModuleLogLevel, ModuleLogFields, ModuleLogFieldValue, ModuleLogSink, ModuleLogContext, } from './module-log.js';
124
133
  export { asyncInvocationId, asyncLinePass, consoleInvocationLineSink, ASYNC_LINES_PER_PASS, } from './async-invocation-log.js';