@dsh-enhanced/plugin-control-plane 0.1.64 → 0.1.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -5
- package/lib/attestation.d.ts.map +1 -1
- package/lib/attestation.js +33 -1
- package/lib/attestation.js.map +1 -1
- package/lib/creation-capability-empty-handoff.d.ts +57 -0
- package/lib/creation-capability-empty-handoff.d.ts.map +1 -0
- package/lib/creation-capability-empty-handoff.js +147 -0
- package/lib/creation-capability-empty-handoff.js.map +1 -0
- package/lib/creation-capability-execution.d.ts +9 -0
- package/lib/creation-capability-execution.d.ts.map +1 -0
- package/lib/creation-capability-execution.js +70 -0
- package/lib/creation-capability-execution.js.map +1 -0
- package/lib/creation-capability-feedback.d.ts +58 -1
- package/lib/creation-capability-feedback.d.ts.map +1 -1
- package/lib/creation-capability-feedback.js +532 -50
- package/lib/creation-capability-feedback.js.map +1 -1
- package/lib/creation-capability-handoff-common.d.ts +60 -0
- package/lib/creation-capability-handoff-common.d.ts.map +1 -0
- package/lib/creation-capability-handoff-common.js +195 -0
- package/lib/creation-capability-handoff-common.js.map +1 -0
- package/lib/creation-capability-journal.d.ts +19 -0
- package/lib/creation-capability-journal.d.ts.map +1 -1
- package/lib/creation-capability-journal.js +62 -21
- package/lib/creation-capability-journal.js.map +1 -1
- package/lib/creation-capability-runtime.d.ts +18 -0
- package/lib/creation-capability-runtime.d.ts.map +1 -1
- package/lib/creation-capability-runtime.js +76 -18
- package/lib/creation-capability-runtime.js.map +1 -1
- package/lib/creation-capability-sealed-audit.d.ts +19 -0
- package/lib/creation-capability-sealed-audit.d.ts.map +1 -0
- package/lib/creation-capability-sealed-audit.js +114 -0
- package/lib/creation-capability-sealed-audit.js.map +1 -0
- package/lib/creation-capability-sealed-handoff.d.ts +160 -0
- package/lib/creation-capability-sealed-handoff.d.ts.map +1 -0
- package/lib/creation-capability-sealed-handoff.js +695 -0
- package/lib/creation-capability-sealed-handoff.js.map +1 -0
- package/lib/creation-capability-trend-snapshot.d.ts +70 -0
- package/lib/creation-capability-trend-snapshot.d.ts.map +1 -0
- package/lib/creation-capability-trend-snapshot.js +117 -0
- package/lib/creation-capability-trend-snapshot.js.map +1 -0
- package/lib/creation-capability-types.d.ts +254 -4
- package/lib/creation-capability-types.d.ts.map +1 -1
- package/lib/in-process-reload.d.ts +191 -0
- package/lib/in-process-reload.d.ts.map +1 -0
- package/lib/in-process-reload.js +284 -0
- package/lib/in-process-reload.js.map +1 -0
- package/lib/index.d.ts +12 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +8 -2
- package/lib/index.js.map +1 -1
- package/lib/linux-source-build.d.ts +16 -0
- package/lib/linux-source-build.d.ts.map +1 -0
- package/lib/linux-source-build.js +268 -0
- package/lib/linux-source-build.js.map +1 -0
- package/lib/linux-source-preflight.d.ts +31 -0
- package/lib/linux-source-preflight.d.ts.map +1 -0
- package/lib/linux-source-preflight.js +101 -0
- package/lib/linux-source-preflight.js.map +1 -0
- package/lib/live-qualification-runtime.d.ts +6 -2
- package/lib/live-qualification-runtime.d.ts.map +1 -1
- package/lib/live-qualification-runtime.js +65 -11
- package/lib/live-qualification-runtime.js.map +1 -1
- package/lib/owner-task-gap-types.d.ts +23 -0
- package/lib/owner-task-gap-types.d.ts.map +1 -1
- package/lib/owner-task-gaps.d.ts +4 -0
- package/lib/owner-task-gaps.d.ts.map +1 -1
- package/lib/owner-task-gaps.js +35 -1
- package/lib/owner-task-gaps.js.map +1 -1
- package/lib/scanner-owner-runtime.d.ts +34 -0
- package/lib/scanner-owner-runtime.d.ts.map +1 -0
- package/lib/scanner-owner-runtime.js +99 -0
- package/lib/scanner-owner-runtime.js.map +1 -0
- package/lib/service.d.ts +82 -5
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +450 -45
- package/lib/service.js.map +1 -1
- package/lib/source-approval-authority.d.ts.map +1 -1
- package/lib/source-approval-authority.js +25 -7
- package/lib/source-approval-authority.js.map +1 -1
- package/lib/source-build-diagnostics.d.ts +31 -0
- package/lib/source-build-diagnostics.d.ts.map +1 -0
- package/lib/source-build-diagnostics.js +110 -0
- package/lib/source-build-diagnostics.js.map +1 -0
- package/lib/source-build.d.ts +25 -2
- package/lib/source-build.d.ts.map +1 -1
- package/lib/source-build.js +145 -26
- package/lib/source-build.js.map +1 -1
- package/lib/source-creation.d.ts +6 -2
- package/lib/source-creation.d.ts.map +1 -1
- package/lib/source-creation.js +11 -2
- package/lib/source-creation.js.map +1 -1
- package/lib/source-job-types.d.ts +3 -1
- package/lib/source-job-types.d.ts.map +1 -1
- package/lib/source-jobs.d.ts +28 -1
- package/lib/source-jobs.d.ts.map +1 -1
- package/lib/source-jobs.js +117 -26
- package/lib/source-jobs.js.map +1 -1
- package/lib/sqlite.d.ts +1 -1
- package/lib/sqlite.d.ts.map +1 -1
- package/lib/sqlite.js +36 -1
- package/lib/sqlite.js.map +1 -1
- package/lib/store.d.ts +21 -1
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +470 -174
- package/lib/store.js.map +1 -1
- package/lib/systemd-host-authority.d.ts.map +1 -1
- package/lib/systemd-host-authority.js +4 -0
- package/lib/systemd-host-authority.js.map +1 -1
- package/lib/task-observation-runtime.d.ts +6 -2
- package/lib/task-observation-runtime.d.ts.map +1 -1
- package/lib/task-observation-runtime.js +69 -11
- package/lib/task-observation-runtime.js.map +1 -1
- package/lib/types.d.ts +47 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/work-item-creation-contract.d.ts +17 -0
- package/lib/work-item-creation-contract.d.ts.map +1 -0
- package/lib/work-item-creation-contract.js +61 -0
- package/lib/work-item-creation-contract.js.map +1 -0
- package/package.json +10 -10
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
|
-
import { canonicalGrowthJson, SourceGrowthRunUnavailableError } from '@dsh-enhanced/assistant-growth-contract';
|
|
3
|
-
import {
|
|
2
|
+
import { anySourceGrowthRunDigest, canonicalGrowthJson, SourceGrowthRunUnavailableError, validateAnySourceGrowthRunBinding } from '@dsh-enhanced/assistant-growth-contract';
|
|
3
|
+
import { creationCapabilityExecutionMatches, verifyCreationCapabilityExecution } from './creation-capability-execution.js';
|
|
4
4
|
const sha = (value) => createHash('sha256').update(value).digest('hex');
|
|
5
5
|
const safeName = /^[a-z][a-z0-9_-]{0,95}$/u;
|
|
6
6
|
const safeProperty = /^[A-Za-z_][A-Za-z0-9_-]{0,63}$/u;
|
|
@@ -103,10 +103,7 @@ function observed(record, result) {
|
|
|
103
103
|
&& result.runtimeDigest === record.certificate.execution?.runtimeDigest);
|
|
104
104
|
}
|
|
105
105
|
function sameExecution(record, config) {
|
|
106
|
-
return record.certificate.
|
|
107
|
-
? !('backend' in config.runner)
|
|
108
|
-
: 'backend' in config.runner && config.runner.backend === 'macos-seatbelt'
|
|
109
|
-
&& record.certificate.execution?.runtimeDigest === nativeMacRuntimeDigest(config.runner.runtime);
|
|
106
|
+
return creationCapabilityExecutionMatches(record.certificate, config.runner);
|
|
110
107
|
}
|
|
111
108
|
/** The journal belongs to this controller and is closed after all Fiber effects. */
|
|
112
109
|
export class CreationCapabilityRuntime {
|
|
@@ -123,6 +120,7 @@ export class CreationCapabilityRuntime {
|
|
|
123
120
|
cancellations = new Map();
|
|
124
121
|
operations = new Set();
|
|
125
122
|
timers = new Map();
|
|
123
|
+
workItemPlans = new Set();
|
|
126
124
|
admission = false;
|
|
127
125
|
closed = false;
|
|
128
126
|
started = false;
|
|
@@ -143,6 +141,43 @@ export class CreationCapabilityRuntime {
|
|
|
143
141
|
this.serial = result.catch(() => { });
|
|
144
142
|
return result;
|
|
145
143
|
}
|
|
144
|
+
inspectWorkItemAdoptionReadiness() {
|
|
145
|
+
if (this.config.workItemFailures !== true || !this.started || this.closed || !this.admission
|
|
146
|
+
|| Date.now() >= this.config.expiresAt || Date.now() >= this.config.runner.expiresAt)
|
|
147
|
+
return undefined;
|
|
148
|
+
const remainingAdoptions = Math.max(0, this.config.maxAdoptions - this.journal.usage().adoptions);
|
|
149
|
+
return { protocol: 'assistant-growth/work-item-adoption-readiness/v1',
|
|
150
|
+
sourceProtocol: 'assistant-delivery/work-item-engineering-context/v1', runProtocol: 'assistant-growth/source-run/v2',
|
|
151
|
+
workItemFailures: true, authority: { authorityId: this.config.authorityId,
|
|
152
|
+
authorityDigest: this.journal.authorityDigest, expiresAt: this.config.expiresAt },
|
|
153
|
+
remainingAdoptions, available: remainingAdoptions > 0 };
|
|
154
|
+
}
|
|
155
|
+
sourceAuthority(record, sourceRun) {
|
|
156
|
+
if (sourceRun === undefined) {
|
|
157
|
+
if (this.workItemPlans.has(record.planId))
|
|
158
|
+
fail('work item source authority missing');
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
validateAnySourceGrowthRunBinding(sourceRun);
|
|
162
|
+
if (anySourceGrowthRunDigest(sourceRun) !== record.certificate.source.growthRunDigest)
|
|
163
|
+
fail('source run changed');
|
|
164
|
+
if (sourceRun.protocol !== 'assistant-growth/source-run/v2') {
|
|
165
|
+
if (this.workItemPlans.has(record.planId))
|
|
166
|
+
fail('work item source protocol changed');
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
const pin = sourceRun.authorities.adoption;
|
|
170
|
+
if (this.config.workItemFailures !== true || pin.authorityId !== this.config.authorityId
|
|
171
|
+
|| pin.authorityDigest !== this.journal.authorityDigest || pin.expiresAt !== this.config.expiresAt)
|
|
172
|
+
fail('work item adoption authority mismatch');
|
|
173
|
+
this.workItemPlans.add(record.planId);
|
|
174
|
+
}
|
|
175
|
+
withCurrent(record, callback) {
|
|
176
|
+
return this.ports.withCurrent(record, sourceRun => {
|
|
177
|
+
this.sourceAuthority(record, sourceRun);
|
|
178
|
+
return callback();
|
|
179
|
+
});
|
|
180
|
+
}
|
|
146
181
|
live(record) {
|
|
147
182
|
if (!sameExecution(record, this.config))
|
|
148
183
|
fail('verification runtime changed');
|
|
@@ -165,9 +200,11 @@ export class CreationCapabilityRuntime {
|
|
|
165
200
|
}
|
|
166
201
|
else
|
|
167
202
|
await this.ports.recheck(record.planId, signal);
|
|
203
|
+
await verifyCreationCapabilityExecution(record.certificate, this.config.runner, signal);
|
|
168
204
|
signal.throwIfAborted();
|
|
169
205
|
const current = retained ? this.ports.inspectRetained(record) : this.ports.inspect(record.planId);
|
|
170
|
-
this.
|
|
206
|
+
this.sourceAuthority(record, current.sourceRun);
|
|
207
|
+
this.withCurrent(record, () => {
|
|
171
208
|
if (!sameCertificate(current.certificate, record.certificate)
|
|
172
209
|
|| sha(current.artifact) !== record.certificate.plan.artifactSha256
|
|
173
210
|
|| current.artifact.length !== record.certificate.plan.artifactBytes)
|
|
@@ -212,10 +249,11 @@ export class CreationCapabilityRuntime {
|
|
|
212
249
|
eligible(planId) {
|
|
213
250
|
try {
|
|
214
251
|
if (!this.admission || this.closed || this.journal.inspect(planId)
|
|
215
|
-
|| this.journal.
|
|
252
|
+
|| this.journal.usage().adoptions >= this.config.maxAdoptions
|
|
216
253
|
|| Date.now() >= this.config.expiresAt || Date.now() >= this.config.runner.expiresAt)
|
|
217
254
|
return false;
|
|
218
255
|
const current = this.ports.inspect(planId);
|
|
256
|
+
this.sourceAuthority({ planId, certificate: current.certificate }, current.sourceRun);
|
|
219
257
|
return current.certificate.plan.id === planId && current.certificate.expiresAt > Date.now()
|
|
220
258
|
&& sameExecution({ planId, status: 'claimed', certificate: current.certificate, artifact: current.artifact }, this.config)
|
|
221
259
|
&& current.certificate.plan.name.startsWith(this.config.namePrefix)
|
|
@@ -248,14 +286,17 @@ export class CreationCapabilityRuntime {
|
|
|
248
286
|
|| sha(current.artifact) !== sha(pinned.artifact))
|
|
249
287
|
fail('source changed before claim');
|
|
250
288
|
const source = await this.ports.captureSource?.(planId, activeSignal);
|
|
289
|
+
await verifyCreationCapabilityExecution(current.certificate, this.config.runner, activeSignal);
|
|
251
290
|
activeSignal.throwIfAborted();
|
|
291
|
+
if (!this.eligible(planId))
|
|
292
|
+
fail('plan is no longer eligible');
|
|
252
293
|
const latestBeforeClaim = this.ports.inspect(planId);
|
|
253
294
|
if (!sameCertificate(current.certificate, latestBeforeClaim.certificate)
|
|
254
295
|
|| sha(current.artifact) !== sha(latestBeforeClaim.artifact))
|
|
255
296
|
fail('source changed during source capture');
|
|
256
297
|
const claimRecord = { planId, status: 'claimed',
|
|
257
298
|
certificate: current.certificate, artifact: current.artifact };
|
|
258
|
-
const claimed = this.
|
|
299
|
+
const claimed = this.withCurrent(claimRecord, () => this.journal.claim({
|
|
259
300
|
certificate: current.certificate, artifact: current.artifact, ...(source ? { source } : {})
|
|
260
301
|
}));
|
|
261
302
|
if (!claimed.created)
|
|
@@ -269,9 +310,14 @@ export class CreationCapabilityRuntime {
|
|
|
269
310
|
fail('discovery unknown or certificate mismatch');
|
|
270
311
|
const tools = this.makeTools(record, result.schemas);
|
|
271
312
|
await this.ports.recheck(planId, activeSignal);
|
|
313
|
+
await verifyCreationCapabilityExecution(record.certificate, this.config.runner, activeSignal);
|
|
272
314
|
activeSignal.throwIfAborted();
|
|
315
|
+
if (!this.admission || this.closed || Date.now() >= this.config.expiresAt
|
|
316
|
+
|| Date.now() >= this.config.runner.expiresAt || Date.now() >= record.certificate.expiresAt
|
|
317
|
+
|| !sameExecution(record, this.config))
|
|
318
|
+
fail('authority or verification expired before authorization');
|
|
273
319
|
const latest = this.ports.inspect(planId);
|
|
274
|
-
this.
|
|
320
|
+
this.withCurrent(record, () => {
|
|
275
321
|
if (!sameCertificate(latest.certificate, record.certificate)
|
|
276
322
|
|| sha(latest.artifact) !== record.certificate.plan.artifactSha256)
|
|
277
323
|
fail('source changed before authorization');
|
|
@@ -281,7 +327,7 @@ export class CreationCapabilityRuntime {
|
|
|
281
327
|
await this.checked(authorized, activeSignal, true);
|
|
282
328
|
await this.mount(authorized, activeSignal);
|
|
283
329
|
await this.checked(authorized, activeSignal, true);
|
|
284
|
-
this.
|
|
330
|
+
this.withCurrent(authorized, () => this.journal.activate(planId));
|
|
285
331
|
}
|
|
286
332
|
catch (error) {
|
|
287
333
|
try {
|
|
@@ -405,7 +451,7 @@ export class CreationCapabilityRuntime {
|
|
|
405
451
|
cancel();
|
|
406
452
|
try {
|
|
407
453
|
await this.checked(record, controller.signal);
|
|
408
|
-
const call = this.
|
|
454
|
+
const call = this.withCurrent(record, () => {
|
|
409
455
|
this.ports.assertCaller(record, exec);
|
|
410
456
|
controller.signal.throwIfAborted();
|
|
411
457
|
const foreground = this.ports.inspectCall?.(record, exec, tool.name, encoded);
|
|
@@ -421,7 +467,7 @@ export class CreationCapabilityRuntime {
|
|
|
421
467
|
fail('call already claimed or unknown');
|
|
422
468
|
}
|
|
423
469
|
try {
|
|
424
|
-
this.
|
|
470
|
+
this.withCurrent(record, () => {
|
|
425
471
|
this.ports.assertCaller(record, exec);
|
|
426
472
|
controller.signal.throwIfAborted();
|
|
427
473
|
});
|
|
@@ -444,7 +490,7 @@ export class CreationCapabilityRuntime {
|
|
|
444
490
|
const value = { value: JSON.parse(json(raw.value, this.config.runner.maxOutputBytes)), content };
|
|
445
491
|
json(value, this.config.runner.maxOutputBytes);
|
|
446
492
|
await this.checked(record, controller.signal);
|
|
447
|
-
this.
|
|
493
|
+
this.withCurrent(record, () => {
|
|
448
494
|
this.ports.assertCaller(record, exec);
|
|
449
495
|
controller.signal.throwIfAborted();
|
|
450
496
|
this.journal.settleCall({ planId, key, status: 'completed', result: value,
|
|
@@ -471,13 +517,17 @@ export class CreationCapabilityRuntime {
|
|
|
471
517
|
for (const record of this.journal.list()) {
|
|
472
518
|
if (record.status !== 'authorized' && record.status !== 'active')
|
|
473
519
|
continue;
|
|
520
|
+
if (this.closed)
|
|
521
|
+
return;
|
|
522
|
+
const controller = new AbortController();
|
|
523
|
+
this.operations.add(controller);
|
|
474
524
|
try {
|
|
475
|
-
await this.checked(record,
|
|
525
|
+
await this.checked(record, controller.signal);
|
|
476
526
|
if (!this.mounted.has(record.planId)) {
|
|
477
|
-
await this.mount(record);
|
|
478
|
-
await this.checked(record,
|
|
527
|
+
await this.mount(record, controller.signal);
|
|
528
|
+
await this.checked(record, controller.signal);
|
|
479
529
|
if (record.status === 'authorized')
|
|
480
|
-
this.
|
|
530
|
+
this.withCurrent(record, () => this.journal.activate(record.planId));
|
|
481
531
|
}
|
|
482
532
|
}
|
|
483
533
|
catch (error) {
|
|
@@ -497,6 +547,9 @@ export class CreationCapabilityRuntime {
|
|
|
497
547
|
if (!(error instanceof SourceGrowthRunUnavailableError))
|
|
498
548
|
this.journal.settle(record.planId, 'closed', 'authority-source-or-mount-invalid');
|
|
499
549
|
}
|
|
550
|
+
finally {
|
|
551
|
+
this.operations.delete(controller);
|
|
552
|
+
}
|
|
500
553
|
}
|
|
501
554
|
}
|
|
502
555
|
/** Owner-only bounded status; no certificate, source or artifact bytes escape. */
|
|
@@ -513,6 +566,11 @@ export class CreationCapabilityRuntime {
|
|
|
513
566
|
const record = this.journal.inspect(planId);
|
|
514
567
|
return record?.receipt ? { record, calls: this.inspectCallEvidence(planId) } : undefined;
|
|
515
568
|
}
|
|
569
|
+
/** Adoption times of every other receipt in this journal; a concurrent-change flag only, never evidence. */
|
|
570
|
+
inspectOtherAdoptionTimes(planId) {
|
|
571
|
+
return this.journal.list().flatMap(record => record.planId !== planId && record.receipt
|
|
572
|
+
? [record.receipt.adoptedAt] : []);
|
|
573
|
+
}
|
|
516
574
|
/** Historical data only; callers must check the current authenticated owner. */
|
|
517
575
|
inspectSourceEvidence(planId) {
|
|
518
576
|
const record = this.journal.inspect(planId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creation-capability-runtime.js","sourceRoot":"","sources":["../src/creation-capability-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"creation-capability-runtime.js","sourceRoot":"","sources":["../src/creation-capability-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { DatabaseSync } from 'node:sqlite';
|
|
2
|
+
export declare const SEALED_ADOPTION_HANDOFF_PROTOCOL: "dsh-sealed-creation-adoption-handoff/v1";
|
|
3
|
+
export declare const SEALED_ADOPTION_AUDIT = "creation_sealed_adoption_handoff";
|
|
4
|
+
export declare const SEALED_ADOPTION_AUDIT_STATEMENTS: readonly string[];
|
|
5
|
+
export declare const SEALED_PROOF_KEYS: readonly ["protocol", "plan", "fileIdentity", "archive", "liveBusiness", "inheritedUsage", "digest"];
|
|
6
|
+
/** Exact immutable audit objects and a canonical, self-digested singleton proof; undefined when absent. */
|
|
7
|
+
export declare function readSealedAdoptionAudit(db: DatabaseSync): {
|
|
8
|
+
proof: Record<string, unknown>;
|
|
9
|
+
json: string;
|
|
10
|
+
} | undefined;
|
|
11
|
+
/** Plan ids archived by the sealed handoff. A sealed id can never be claimed again under the next
|
|
12
|
+
* authority: an old tool returns only under a new plan id with a fresh linux-native certificate. */
|
|
13
|
+
export declare function sealedAdoptionPlanIds(db: DatabaseSync, authorityDigest: string): ReadonlySet<string>;
|
|
14
|
+
/** Usage a journal must keep counting after its history was sealed away. Never refunded. */
|
|
15
|
+
export declare function sealedAdoptionInheritedUsage(db: DatabaseSync, authorityDigest: string): {
|
|
16
|
+
adoptions: number;
|
|
17
|
+
calls: number;
|
|
18
|
+
} | undefined;
|
|
19
|
+
//# sourceMappingURL=creation-capability-sealed-audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"creation-capability-sealed-audit.d.ts","sourceRoot":"","sources":["../src/creation-capability-sealed-audit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI/C,eAAO,MAAM,gCAAgC,EAAG,yCAAkD,CAAA;AAClG,eAAO,MAAM,qBAAqB,qCAAqC,CAAA;AAIvE,eAAO,MAAM,gCAAgC,EAAE,SAAS,MAAM,EAAsC,CAAA;AAGpG,eAAO,MAAM,iBAAiB,sGAAiG,CAAA;AAqB/H,2GAA2G;AAC3G,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAmBtH;AAED;oGACoG;AACpG,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAYpG;AAED,4FAA4F;AAC5F,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAmBxI"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { canonicalGrowthJson } from '@dsh-enhanced/assistant-growth-contract';
|
|
3
|
+
// Kept free of journal imports: CreationCapabilityJournal reads this audit to count inherited usage.
|
|
4
|
+
export const SEALED_ADOPTION_HANDOFF_PROTOCOL = 'dsh-sealed-creation-adoption-handoff/v1';
|
|
5
|
+
export const SEALED_ADOPTION_AUDIT = 'creation_sealed_adoption_handoff';
|
|
6
|
+
const AUDIT_SQL = `CREATE TABLE ${SEALED_ADOPTION_AUDIT} (singleton INTEGER PRIMARY KEY CHECK(singleton=1), proof_json TEXT NOT NULL, proof_digest TEXT NOT NULL CHECK(length(proof_digest)=64)) STRICT`;
|
|
7
|
+
const NO_UPDATE = `CREATE TRIGGER creation_sealed_handoff_no_update BEFORE UPDATE ON ${SEALED_ADOPTION_AUDIT} BEGIN SELECT RAISE(ABORT,'immutable sealed adoption handoff'); END`;
|
|
8
|
+
const NO_DELETE = `CREATE TRIGGER creation_sealed_handoff_no_delete BEFORE DELETE ON ${SEALED_ADOPTION_AUDIT} BEGIN SELECT RAISE(ABORT,'immutable sealed adoption handoff'); END`;
|
|
9
|
+
export const SEALED_ADOPTION_AUDIT_STATEMENTS = [AUDIT_SQL, NO_UPDATE, NO_DELETE];
|
|
10
|
+
const OBJECTS = [['table', SEALED_ADOPTION_AUDIT, AUDIT_SQL], ['trigger', 'creation_sealed_handoff_no_delete', NO_DELETE],
|
|
11
|
+
['trigger', 'creation_sealed_handoff_no_update', NO_UPDATE]];
|
|
12
|
+
export const SEALED_PROOF_KEYS = ['protocol', 'plan', 'fileIdentity', 'archive', 'liveBusiness', 'inheritedUsage', 'digest'];
|
|
13
|
+
function fail(message) { throw new Error(`sealed adoption audit: ${message}`); }
|
|
14
|
+
const sha = (value) => createHash('sha256').update(value).digest('hex');
|
|
15
|
+
function text(raw) {
|
|
16
|
+
if (!(raw instanceof Uint8Array))
|
|
17
|
+
fail('non-text bytes');
|
|
18
|
+
let decoded;
|
|
19
|
+
try {
|
|
20
|
+
decoded = new TextDecoder('utf-8', { fatal: true }).decode(raw);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
fail('invalid UTF-8 text');
|
|
24
|
+
}
|
|
25
|
+
if (decoded.includes('\0') || !Buffer.from(decoded, 'utf8').equals(raw))
|
|
26
|
+
fail('noncanonical text bytes');
|
|
27
|
+
return decoded;
|
|
28
|
+
}
|
|
29
|
+
function record(value, keys) {
|
|
30
|
+
if (!value || typeof value !== 'object' || Array.isArray(value) || Object.getPrototypeOf(value) !== Object.prototype
|
|
31
|
+
|| Object.keys(value).sort().join('\0') !== [...keys].sort().join('\0'))
|
|
32
|
+
fail('unexpected fields');
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
35
|
+
function count(value) {
|
|
36
|
+
if (!Number.isSafeInteger(value) || Number(value) < 0 || Number(value) > 1024)
|
|
37
|
+
fail('invalid inherited usage');
|
|
38
|
+
return Number(value);
|
|
39
|
+
}
|
|
40
|
+
/** Exact immutable audit objects and a canonical, self-digested singleton proof; undefined when absent. */
|
|
41
|
+
export function readSealedAdoptionAudit(db) {
|
|
42
|
+
const names = [SEALED_ADOPTION_AUDIT, ...OBJECTS.map(([, name]) => name)];
|
|
43
|
+
const objects = db.prepare(`SELECT CAST(type AS BLOB) AS type, CAST(name AS BLOB) AS name, CAST(sql AS BLOB) AS sql
|
|
44
|
+
FROM sqlite_schema WHERE tbl_name=? OR name IN (${names.map(() => '?').join(',')}) ORDER BY type, name`).all(SEALED_ADOPTION_AUDIT, ...names);
|
|
45
|
+
if (objects.length === 0)
|
|
46
|
+
return undefined;
|
|
47
|
+
if (objects.length !== OBJECTS.length || objects.some((row, index) => text(row.type) !== OBJECTS[index][0]
|
|
48
|
+
|| text(row.name) !== OBJECTS[index][1] || text(row.sql) !== OBJECTS[index][2]))
|
|
49
|
+
fail('unexpected audit schema');
|
|
50
|
+
const rows = db.prepare(`SELECT singleton, typeof(singleton) AS kind, CAST(proof_json AS BLOB) AS proof_json,
|
|
51
|
+
CAST(proof_digest AS BLOB) AS proof_digest FROM ${SEALED_ADOPTION_AUDIT}`).all();
|
|
52
|
+
if (rows.length !== 1 || rows[0].kind !== 'integer' || rows[0].singleton !== 1)
|
|
53
|
+
fail('missing immutable proof');
|
|
54
|
+
const json = text(rows[0].proof_json), column = text(rows[0].proof_digest);
|
|
55
|
+
let parsed;
|
|
56
|
+
try {
|
|
57
|
+
parsed = JSON.parse(json);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
fail('invalid proof JSON');
|
|
61
|
+
}
|
|
62
|
+
const proof = record(parsed, SEALED_PROOF_KEYS);
|
|
63
|
+
if (canonicalGrowthJson(proof) !== json)
|
|
64
|
+
fail('noncanonical proof JSON');
|
|
65
|
+
const { digest, ...body } = proof;
|
|
66
|
+
if (proof.protocol !== SEALED_ADOPTION_HANDOFF_PROTOCOL || typeof digest !== 'string'
|
|
67
|
+
|| digest !== sha(canonicalGrowthJson(body)) || digest !== column)
|
|
68
|
+
fail('proof digest mismatch');
|
|
69
|
+
return { proof, json };
|
|
70
|
+
}
|
|
71
|
+
/** Plan ids archived by the sealed handoff. A sealed id can never be claimed again under the next
|
|
72
|
+
* authority: an old tool returns only under a new plan id with a fresh linux-native certificate. */
|
|
73
|
+
export function sealedAdoptionPlanIds(db, authorityDigest) {
|
|
74
|
+
if (sealedAdoptionInheritedUsage(db, authorityDigest) === undefined)
|
|
75
|
+
return new Set();
|
|
76
|
+
const plan = readSealedAdoptionAudit(db).proof.plan;
|
|
77
|
+
const rows = plan.history?.rows;
|
|
78
|
+
if (!Array.isArray(rows))
|
|
79
|
+
fail('invalid sealed history rows');
|
|
80
|
+
const ids = new Set();
|
|
81
|
+
for (const row of rows) {
|
|
82
|
+
const planId = row?.planId;
|
|
83
|
+
if (typeof planId !== 'string' || planId.length === 0 || ids.has(planId))
|
|
84
|
+
fail('invalid sealed history rows');
|
|
85
|
+
ids.add(planId);
|
|
86
|
+
}
|
|
87
|
+
return ids;
|
|
88
|
+
}
|
|
89
|
+
/** Usage a journal must keep counting after its history was sealed away. Never refunded. */
|
|
90
|
+
export function sealedAdoptionInheritedUsage(db, authorityDigest) {
|
|
91
|
+
const audit = readSealedAdoptionAudit(db);
|
|
92
|
+
if (!audit)
|
|
93
|
+
return undefined;
|
|
94
|
+
const { proof } = audit;
|
|
95
|
+
const plan = proof.plan;
|
|
96
|
+
if (!plan || typeof plan !== 'object' || Array.isArray(plan))
|
|
97
|
+
fail('invalid plan');
|
|
98
|
+
const { digest, ...planBody } = plan;
|
|
99
|
+
const next = plan.nextIdentity;
|
|
100
|
+
const history = plan.history;
|
|
101
|
+
if (plan.protocol !== SEALED_ADOPTION_HANDOFF_PROTOCOL || typeof digest !== 'string' || digest !== sha(canonicalGrowthJson(planBody))
|
|
102
|
+
|| !next || typeof next !== 'object' || next.authorityDigest !== authorityDigest)
|
|
103
|
+
fail('proof authority mismatch');
|
|
104
|
+
const usage = record(proof.inheritedUsage, ['adoptions', 'calls']);
|
|
105
|
+
const result = { adoptions: count(usage.adoptions), calls: count(usage.calls) };
|
|
106
|
+
const planned = record(plan.inheritedUsage, ['adoptions', 'calls']);
|
|
107
|
+
const live = record(proof.liveBusiness, ['adoptions', 'calls', 'sourceArchives']);
|
|
108
|
+
if (planned.adoptions !== result.adoptions || planned.calls !== result.calls
|
|
109
|
+
|| history?.counts?.adoptions !== result.adoptions || history.counts.calls !== result.calls
|
|
110
|
+
|| live.adoptions !== 0 || live.calls !== 0 || live.sourceArchives !== 0)
|
|
111
|
+
fail('inherited usage mismatch');
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=creation-capability-sealed-audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"creation-capability-sealed-audit.js","sourceRoot":"","sources":["../src/creation-capability-sealed-audit.ts"],"names":[],"mappings":"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"}
|