@dsh-enhanced/plugin-control-plane 0.1.65 → 0.1.67
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 +123 -7
- 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 +13 -0
- package/lib/creation-capability-execution.d.ts.map +1 -0
- package/lib/creation-capability-execution.js +112 -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 +65 -1
- package/lib/creation-capability-runtime.d.ts.map +1 -1
- package/lib/creation-capability-runtime.js +178 -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 +15 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -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/revision-capability-journal.d.ts +103 -0
- package/lib/revision-capability-journal.d.ts.map +1 -0
- package/lib/revision-capability-journal.js +872 -0
- package/lib/revision-capability-journal.js.map +1 -0
- package/lib/revision-capability-runtime.d.ts +74 -0
- package/lib/revision-capability-runtime.d.ts.map +1 -0
- package/lib/revision-capability-runtime.js +562 -0
- package/lib/revision-capability-runtime.js.map +1 -0
- package/lib/revision-capability-types.d.ts +289 -0
- package/lib/revision-capability-types.d.ts.map +1 -0
- package/lib/revision-capability-types.js +2 -0
- package/lib/revision-capability-types.js.map +1 -0
- 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 +107 -6
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +643 -47
- 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 +33 -1
- package/lib/source-jobs.d.ts.map +1 -1
- package/lib/source-jobs.js +141 -29
- package/lib/source-jobs.js.map +1 -1
- package/lib/source-workspace.d.ts.map +1 -1
- package/lib/source-workspace.js +0 -1
- package/lib/source-workspace.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 +22 -2
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +477 -177
- 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
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { encode, freeze, handoffPrimitives, hash } from './creation-capability-handoff-common.js';
|
|
2
|
+
const PROTOCOL = 'dsh-empty-creation-adoption-handoff/v1';
|
|
3
|
+
const AUDIT = 'creation_empty_authority_handoff';
|
|
4
|
+
const AUDIT_SQL = `CREATE TABLE ${AUDIT} (singleton INTEGER PRIMARY KEY CHECK(singleton=1), proof_json TEXT NOT NULL, proof_digest TEXT NOT NULL CHECK(length(proof_digest)=64)) STRICT`;
|
|
5
|
+
const NO_UPDATE = `CREATE TRIGGER creation_empty_handoff_no_update BEFORE UPDATE ON ${AUDIT} BEGIN SELECT RAISE(ABORT,'immutable empty authority handoff'); END`;
|
|
6
|
+
const NO_DELETE = `CREATE TRIGGER creation_empty_handoff_no_delete BEFORE DELETE ON ${AUDIT} BEGIN SELECT RAISE(ABORT,'immutable empty authority handoff'); END`;
|
|
7
|
+
function fail(message) { throw new Error(`empty adoption authority handoff: ${message}`); }
|
|
8
|
+
const common = handoffPrimitives(fail);
|
|
9
|
+
const { identity, bytes, identities, textRows, authority, empty, openExisting, exact } = common;
|
|
10
|
+
const AUDIT_SCHEMA = { table: AUDIT, statements: [AUDIT_SQL, NO_UPDATE, NO_DELETE] };
|
|
11
|
+
const schema = (db, audited) => common.schema(db, AUDIT_SCHEMA, audited);
|
|
12
|
+
function planBody(plan) { const { digest: _digest, ...body } = plan; return body; }
|
|
13
|
+
function validatePlan(plan) {
|
|
14
|
+
exact(plan, ['protocol', 'transactionId', 'hostAnchor', 'physicalPath', 'oldIdentity', 'nextIdentity', 'snapshot', 'createdAt', 'expiresAt', 'digest']);
|
|
15
|
+
for (const identity of [plan.oldIdentity, plan.nextIdentity])
|
|
16
|
+
exact(identity, ['logicalPath', 'config', 'authorityDigest', 'publicKey', 'keyFingerprint']);
|
|
17
|
+
if (plan.physicalPath === plan.oldIdentity.logicalPath)
|
|
18
|
+
fail('staged copy must be separate from logical source');
|
|
19
|
+
exact(plan.snapshot, ['identity', 'bytes', 'digest']);
|
|
20
|
+
exact(plan.snapshot.identity, ['dev', 'ino', 'uid', 'gid', 'mode', 'nlink']);
|
|
21
|
+
if (!plan || plan.protocol !== PROTOCOL || plan.digest !== hash(planBody(plan))
|
|
22
|
+
|| !/^[a-f0-9]{64}$/u.test(plan.hostAnchor) || !/^[A-Za-z0-9][A-Za-z0-9._:-]{0,199}$/u.test(plan.transactionId)
|
|
23
|
+
|| !Number.isSafeInteger(plan.createdAt) || !Number.isSafeInteger(plan.expiresAt)
|
|
24
|
+
|| plan.createdAt < 1 || plan.expiresAt <= plan.createdAt || plan.expiresAt - plan.createdAt > 300_000
|
|
25
|
+
|| plan.expiresAt > Math.min(plan.oldIdentity.config.expiresAt, plan.nextIdentity.config.expiresAt, plan.oldIdentity.config.runner.expiresAt, plan.nextIdentity.config.runner.expiresAt))
|
|
26
|
+
fail('invalid plan');
|
|
27
|
+
const actual = identities(plan.oldIdentity.logicalPath, plan.oldIdentity.config, plan.nextIdentity.config);
|
|
28
|
+
if (encode(actual) !== encode({ oldIdentity: plan.oldIdentity, nextIdentity: plan.nextIdentity }))
|
|
29
|
+
fail('public identity changed');
|
|
30
|
+
}
|
|
31
|
+
export function planEmptyAdoptionHandoff(scope) {
|
|
32
|
+
const pair = identities(scope.logicalPath, scope.oldConfig, scope.nextConfig);
|
|
33
|
+
const body = { protocol: PROTOCOL, transactionId: scope.transactionId, hostAnchor: scope.hostAnchor,
|
|
34
|
+
physicalPath: scope.physicalPath, ...pair, snapshot: bytes(scope.physicalPath, 64 * 1024 * 1024), createdAt: scope.now, expiresAt: scope.expiresAt };
|
|
35
|
+
const plan = { ...body, digest: hash(body) };
|
|
36
|
+
validatePlan(plan);
|
|
37
|
+
if (scope.now >= Math.min(scope.oldConfig.expiresAt, scope.nextConfig.expiresAt, scope.oldConfig.runner.expiresAt, scope.nextConfig.runner.expiresAt) || scope.expiresAt > Math.min(scope.oldConfig.expiresAt, scope.nextConfig.expiresAt, scope.oldConfig.runner.expiresAt, scope.nextConfig.runner.expiresAt))
|
|
38
|
+
fail('expired grant or plan');
|
|
39
|
+
openExisting(scope.physicalPath, db => {
|
|
40
|
+
db.exec('BEGIN');
|
|
41
|
+
try {
|
|
42
|
+
schema(db, false);
|
|
43
|
+
authority(db, pair.oldIdentity);
|
|
44
|
+
empty(db);
|
|
45
|
+
if (encode(bytes(scope.physicalPath, 64 * 1024 * 1024)) !== encode(plan.snapshot))
|
|
46
|
+
fail('plan snapshot drift');
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
db.exec('ROLLBACK');
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
return freeze(plan);
|
|
53
|
+
}
|
|
54
|
+
function storedProof(db, plan) {
|
|
55
|
+
schema(db, true);
|
|
56
|
+
const rows = textRows(db, AUDIT, ['proof_json', 'proof_digest']);
|
|
57
|
+
if (rows.length !== 1 || typeof rows[0].proof_json !== 'string')
|
|
58
|
+
fail('missing immutable proof');
|
|
59
|
+
const proof = JSON.parse(rows[0].proof_json);
|
|
60
|
+
exact(proof, ['protocol', 'plan', 'fileIdentity', 'emptyBusiness', 'digest']);
|
|
61
|
+
exact(proof.fileIdentity, ['dev', 'ino', 'uid', 'gid', 'mode', 'nlink']);
|
|
62
|
+
exact(proof.emptyBusiness, ['adoptions', 'calls', 'sourceArchives']);
|
|
63
|
+
if (encode(proof) !== rows[0].proof_json)
|
|
64
|
+
fail('noncanonical proof JSON');
|
|
65
|
+
const { digest: _digest, ...body } = proof;
|
|
66
|
+
if (proof.protocol !== PROTOCOL || proof.digest !== hash(body) || proof.digest !== rows[0].proof_digest
|
|
67
|
+
|| encode(proof.plan) !== encode(plan) || encode(proof.fileIdentity) !== encode(plan.snapshot.identity)
|
|
68
|
+
|| encode(proof.emptyBusiness) !== encode({ adoptions: 0, calls: 0, sourceArchives: 0 }))
|
|
69
|
+
fail('proof mismatch');
|
|
70
|
+
authority(db, plan.nextIdentity);
|
|
71
|
+
return proof;
|
|
72
|
+
}
|
|
73
|
+
export function applyEmptyAdoptionHandoff(plan, input) {
|
|
74
|
+
validatePlan(plan);
|
|
75
|
+
if (plan.digest !== input.expectedPlanDigest || plan.hostAnchor !== input.expectedHostAnchor)
|
|
76
|
+
fail('external plan anchor mismatch');
|
|
77
|
+
const now = input.now;
|
|
78
|
+
if (!Number.isSafeInteger(now) || now < plan.createdAt)
|
|
79
|
+
fail('invalid apply time');
|
|
80
|
+
return openExisting(plan.physicalPath, db => {
|
|
81
|
+
db.exec('PRAGMA synchronous=FULL; BEGIN IMMEDIATE');
|
|
82
|
+
try {
|
|
83
|
+
if (db.prepare('SELECT name FROM sqlite_master WHERE name=?').get(AUDIT)) {
|
|
84
|
+
const proof = storedProof(db, plan);
|
|
85
|
+
empty(db); // stopped empty acknowledgement only, never a new handoff
|
|
86
|
+
if (encode(identity(plan.physicalPath)) !== encode(proof.fileIdentity))
|
|
87
|
+
fail('retry file identity mismatch');
|
|
88
|
+
db.exec('ROLLBACK');
|
|
89
|
+
return freeze(proof);
|
|
90
|
+
}
|
|
91
|
+
if (!Number.isSafeInteger(now) || now < plan.createdAt || now > plan.expiresAt)
|
|
92
|
+
fail('stale plan');
|
|
93
|
+
schema(db, false);
|
|
94
|
+
authority(db, plan.oldIdentity);
|
|
95
|
+
empty(db);
|
|
96
|
+
if (encode(bytes(plan.physicalPath, 64 * 1024 * 1024)) !== encode(plan.snapshot))
|
|
97
|
+
fail('apply snapshot drift');
|
|
98
|
+
const result = db.prepare('UPDATE authority SET authority_digest=?,config_json=? WHERE authority_id=? AND authority_digest=? AND key_id=? AND public_key=? AND config_json=?')
|
|
99
|
+
.run(plan.nextIdentity.authorityDigest, encode(plan.nextIdentity.config), plan.oldIdentity.config.authorityId, plan.oldIdentity.authorityDigest, plan.oldIdentity.config.keyId, plan.oldIdentity.publicKey, encode(plan.oldIdentity.config));
|
|
100
|
+
if (result.changes !== 1)
|
|
101
|
+
fail('authority compare-and-swap failed');
|
|
102
|
+
if (encode(identity(plan.physicalPath)) !== encode(plan.snapshot.identity))
|
|
103
|
+
fail('apply file identity drift');
|
|
104
|
+
const body = { protocol: PROTOCOL, plan: structuredClone(plan), fileIdentity: identity(plan.physicalPath),
|
|
105
|
+
emptyBusiness: { adoptions: 0, calls: 0, sourceArchives: 0 } };
|
|
106
|
+
const proof = { ...body, digest: hash(body) };
|
|
107
|
+
db.exec(`${AUDIT_SQL};${NO_UPDATE};${NO_DELETE};`);
|
|
108
|
+
db.prepare(`INSERT INTO ${AUDIT} VALUES (1,?,?)`).run(encode(proof), proof.digest);
|
|
109
|
+
schema(db, true);
|
|
110
|
+
authority(db, plan.nextIdentity);
|
|
111
|
+
empty(db);
|
|
112
|
+
if (encode(identity(plan.physicalPath)) !== encode(plan.snapshot.identity))
|
|
113
|
+
fail('commit file identity drift');
|
|
114
|
+
db.exec('COMMIT');
|
|
115
|
+
return freeze(proof);
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
try {
|
|
119
|
+
db.exec('ROLLBACK');
|
|
120
|
+
}
|
|
121
|
+
catch { }
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
}, true);
|
|
125
|
+
}
|
|
126
|
+
/** Stopped-stage / post-cutover BEFORE START acceptance only: prove current emptiness again.
|
|
127
|
+
* Do not call this after ordinary Host work begins. Later legitimate business is governed by
|
|
128
|
+
* the normal constructor; a general historical proof reader is outside this empty-only API.
|
|
129
|
+
* Rename on the same inode is allowed; copying needs a separate authorized contract. */
|
|
130
|
+
export function verifyEmptyAdoptionHandoff(input) {
|
|
131
|
+
validatePlan(input.plan);
|
|
132
|
+
return openExisting(input.physicalPath, db => {
|
|
133
|
+
db.exec('BEGIN');
|
|
134
|
+
try {
|
|
135
|
+
const proof = storedProof(db, input.plan);
|
|
136
|
+
empty(db);
|
|
137
|
+
if (proof.digest !== input.expectedProofDigest || !/^[a-f0-9]{64}$/u.test(input.expectedProofDigest)
|
|
138
|
+
|| encode(identity(input.physicalPath)) !== encode(proof.fileIdentity))
|
|
139
|
+
fail('external anchor or file identity mismatch');
|
|
140
|
+
return freeze(proof);
|
|
141
|
+
}
|
|
142
|
+
finally {
|
|
143
|
+
db.exec('ROLLBACK');
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=creation-capability-empty-handoff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"creation-capability-empty-handoff.js","sourceRoot":"","sources":["../src/creation-capability-empty-handoff.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type PluginCreationVerificationCertificate, type PluginRevisionVerificationCertificate } from '@dsh-enhanced/assistant-growth-contract';
|
|
2
|
+
import type { CreationCapabilityConfig } from './creation-capability-types.js';
|
|
3
|
+
export declare function validateLinuxCreationCapabilityRunner(value: unknown): void;
|
|
4
|
+
/** Exact protocol/backend identity; build provenance is separately read below. */
|
|
5
|
+
export declare function creationCapabilityExecutionMatches(certificate: PluginCreationVerificationCertificate, runner: CreationCapabilityConfig['runner']): boolean;
|
|
6
|
+
/** Exact protocol/backend identity of an independently verified revision artifact. */
|
|
7
|
+
export declare function revisionCapabilityExecutionMatches(certificate: PluginCreationVerificationCertificate | PluginRevisionVerificationCertificate, runner: CreationCapabilityConfig['runner']): boolean;
|
|
8
|
+
/** Read-only proof that a revision artifact still matches its fixed execution boundary. */
|
|
9
|
+
export declare function verifyRevisionCapabilityExecution(certificate: PluginRevisionVerificationCertificate, runner: CreationCapabilityConfig['runner'], signal: AbortSignal): Promise<void>;
|
|
10
|
+
/** Read-only proof for adoption, restore and each invocation. It cannot rebuild
|
|
11
|
+
* the original source or acquire/refund any execution or adoption grant. */
|
|
12
|
+
export declare function verifyCreationCapabilityExecution(certificate: PluginCreationVerificationCertificate, runner: CreationCapabilityConfig['runner'], signal: AbortSignal): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=creation-capability-execution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"creation-capability-execution.d.ts","sourceRoot":"","sources":["../src/creation-capability-execution.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,qCAAqC,EACtE,KAAK,qCAAqC,EAAE,MAAM,yCAAyC,CAAA;AAC7F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAS9E,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAS1E;AAED,kFAAkF;AAClF,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,qCAAqC,EACnG,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAarD;AAED,sFAAsF;AACtF,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,qCAAqC,GAAG,qCAAqC,EAC3I,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAQrD;AAED,2FAA2F;AAC3F,wBAAsB,iCAAiC,CAAC,WAAW,EAAE,qCAAqC,EACxG,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBhF;AAED;4EAC4E;AAC5E,wBAAsB,iCAAiC,CAAC,WAAW,EAAE,qCAAqC,EACxG,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBhF"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import { nativeMacRuntimeDigest } from '@dsh-enhanced/assistant-isolation';
|
|
3
|
+
import { canonicalGrowthJson } from '@dsh-enhanced/assistant-growth-contract';
|
|
4
|
+
// Verifier is optional for a plain Control Plane deployment. Only explicit
|
|
5
|
+
// Linux adoption loads these synchronous, resource-free validation modules.
|
|
6
|
+
// The supported Node baseline can require ESM without top-level await.
|
|
7
|
+
const requireVerifier = createRequire(import.meta.url);
|
|
8
|
+
const linuxRuntimeModule = () => requireVerifier('@dsh-enhanced/assistant-verifier/linux-behavior-runtime');
|
|
9
|
+
export function validateLinuxCreationCapabilityRunner(value) {
|
|
10
|
+
if (!value || typeof value !== 'object' || Object.getOwnPropertyDescriptor(value, 'backend')?.value !== 'linux-native') {
|
|
11
|
+
throw new Error('created capability requires explicit Linux runner configuration');
|
|
12
|
+
}
|
|
13
|
+
const { validateCreationBehaviorDeploymentConfig } = requireVerifier('@dsh-enhanced/assistant-verifier/plugin-behavior-config');
|
|
14
|
+
const checked = validateCreationBehaviorDeploymentConfig(value);
|
|
15
|
+
if (!('backend' in checked) || checked.backend !== 'linux-native')
|
|
16
|
+
throw new Error('created capability Linux runner changed');
|
|
17
|
+
linuxRuntimeModule().validateLinuxPluginBehaviorRuntime(checked.runtime);
|
|
18
|
+
}
|
|
19
|
+
/** Exact protocol/backend identity; build provenance is separately read below. */
|
|
20
|
+
export function creationCapabilityExecutionMatches(certificate, runner) {
|
|
21
|
+
try {
|
|
22
|
+
if (certificate.protocol === 'assistant-growth/creation-verification/v1')
|
|
23
|
+
return !('backend' in runner);
|
|
24
|
+
if (certificate.protocol === 'assistant-growth/creation-verification/v2') {
|
|
25
|
+
return 'backend' in runner && runner.backend === 'macos-seatbelt'
|
|
26
|
+
&& certificate.execution?.boundary === 'macos-seatbelt-single-process-v1'
|
|
27
|
+
&& certificate.execution.runtimeDigest === nativeMacRuntimeDigest(runner.runtime);
|
|
28
|
+
}
|
|
29
|
+
return certificate.protocol === 'assistant-growth/creation-verification/v3'
|
|
30
|
+
&& 'backend' in runner && runner.backend === 'linux-native'
|
|
31
|
+
&& certificate.execution?.boundary === 'linux-native-process-seccomp-v1'
|
|
32
|
+
&& certificate.execution.runtimeDigest === linuxRuntimeModule().linuxPluginBehaviorRuntimeDigest(runner.runtime);
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/** Exact protocol/backend identity of an independently verified revision artifact. */
|
|
39
|
+
export function revisionCapabilityExecutionMatches(certificate, runner) {
|
|
40
|
+
try {
|
|
41
|
+
if (certificate.protocol === 'assistant-growth/revision-verification/v1')
|
|
42
|
+
return !('backend' in runner);
|
|
43
|
+
return certificate.protocol === 'assistant-growth/revision-verification/v2'
|
|
44
|
+
&& 'backend' in runner && runner.backend === 'linux-native'
|
|
45
|
+
&& certificate.execution?.boundary === 'linux-native-process-seccomp-v1'
|
|
46
|
+
&& certificate.execution.runtimeDigest === linuxRuntimeModule().linuxPluginBehaviorRuntimeDigest(runner.runtime);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** Read-only proof that a revision artifact still matches its fixed execution boundary. */
|
|
53
|
+
export async function verifyRevisionCapabilityExecution(certificate, runner, signal) {
|
|
54
|
+
signal.throwIfAborted();
|
|
55
|
+
if (!revisionCapabilityExecutionMatches(certificate, runner))
|
|
56
|
+
throw new Error('revision capability verification runtime changed');
|
|
57
|
+
if (!('backend' in runner) || runner.backend !== 'linux-native')
|
|
58
|
+
return;
|
|
59
|
+
const snapshot = canonicalGrowthJson({ certificate, runner });
|
|
60
|
+
const pinnedCertificate = structuredClone(certificate), pinnedRunner = structuredClone(runner);
|
|
61
|
+
if (canonicalGrowthJson({ certificate: pinnedCertificate, runner: pinnedRunner }) !== snapshot)
|
|
62
|
+
throw new Error('revision capability Linux inputs changed during snapshot');
|
|
63
|
+
if (pinnedCertificate.execution?.boundary !== 'linux-native-process-seccomp-v1')
|
|
64
|
+
throw new Error('revision capability Linux provenance unavailable');
|
|
65
|
+
const remaining = pinnedRunner.expiresAt - Date.now();
|
|
66
|
+
if (remaining <= 0)
|
|
67
|
+
throw new Error('revision capability Linux runner expired');
|
|
68
|
+
const bounded = AbortSignal.any([signal, AbortSignal.timeout(Math.max(1, Math.min(120_000, remaining)))]);
|
|
69
|
+
const { verifyLinuxPluginBehaviorAdoptionRuntime } = await import('@dsh-enhanced/assistant-verifier/linux-behavior-runtime');
|
|
70
|
+
bounded.throwIfAborted();
|
|
71
|
+
await verifyLinuxPluginBehaviorAdoptionRuntime({ runtime: pinnedRunner.runtime,
|
|
72
|
+
buildRuntimeDigest: pinnedCertificate.execution.buildRuntimeDigest,
|
|
73
|
+
preparationDigest: pinnedCertificate.execution.observerPreparationDigest, signal: bounded });
|
|
74
|
+
bounded.throwIfAborted();
|
|
75
|
+
if (Date.now() >= pinnedRunner.expiresAt || canonicalGrowthJson({ certificate, runner }) !== snapshot
|
|
76
|
+
|| !revisionCapabilityExecutionMatches(certificate, runner)) {
|
|
77
|
+
throw new Error('revision capability Linux runtime authority changed');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/** Read-only proof for adoption, restore and each invocation. It cannot rebuild
|
|
81
|
+
* the original source or acquire/refund any execution or adoption grant. */
|
|
82
|
+
export async function verifyCreationCapabilityExecution(certificate, runner, signal) {
|
|
83
|
+
signal.throwIfAborted();
|
|
84
|
+
if (!creationCapabilityExecutionMatches(certificate, runner))
|
|
85
|
+
throw new Error('created capability verification runtime changed');
|
|
86
|
+
if (!('backend' in runner) || runner.backend !== 'linux-native')
|
|
87
|
+
return;
|
|
88
|
+
// Keep both the complete signed input and deployment authority stable across
|
|
89
|
+
// import/file/hash awaits. Clone without sorting keys: runtime digests retain
|
|
90
|
+
// the descriptor's validated JSON property order.
|
|
91
|
+
const snapshot = canonicalGrowthJson({ certificate, runner });
|
|
92
|
+
const pinnedCertificate = structuredClone(certificate), pinnedRunner = structuredClone(runner);
|
|
93
|
+
if (canonicalGrowthJson({ certificate: pinnedCertificate, runner: pinnedRunner }) !== snapshot)
|
|
94
|
+
throw new Error('created capability Linux inputs changed during snapshot');
|
|
95
|
+
if (pinnedCertificate.execution?.boundary !== 'linux-native-process-seccomp-v1')
|
|
96
|
+
throw new Error('created capability Linux provenance unavailable');
|
|
97
|
+
const remaining = pinnedRunner.expiresAt - Date.now();
|
|
98
|
+
if (remaining <= 0)
|
|
99
|
+
throw new Error('created capability Linux runner expired');
|
|
100
|
+
const bounded = AbortSignal.any([signal, AbortSignal.timeout(Math.max(1, Math.min(120_000, remaining)))]);
|
|
101
|
+
const { verifyLinuxPluginBehaviorAdoptionRuntime } = await import('@dsh-enhanced/assistant-verifier/linux-behavior-runtime');
|
|
102
|
+
bounded.throwIfAborted();
|
|
103
|
+
await verifyLinuxPluginBehaviorAdoptionRuntime({ runtime: pinnedRunner.runtime,
|
|
104
|
+
buildRuntimeDigest: pinnedCertificate.execution.buildRuntimeDigest,
|
|
105
|
+
preparationDigest: pinnedCertificate.execution.observerPreparationDigest, signal: bounded });
|
|
106
|
+
bounded.throwIfAborted();
|
|
107
|
+
if (Date.now() >= pinnedRunner.expiresAt || canonicalGrowthJson({ certificate, runner }) !== snapshot
|
|
108
|
+
|| !creationCapabilityExecutionMatches(certificate, runner)) {
|
|
109
|
+
throw new Error('created capability Linux runtime authority changed');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=creation-capability-execution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"creation-capability-execution.js","sourceRoot":"","sources":["../src/creation-capability-execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AssistantDeliveryService } from '@dsh-enhanced/assistant-delivery';
|
|
2
2
|
import type { AssistantEvaluationService, EvaluationCanonicalLearningEvidenceTuple } from '@dsh-enhanced/assistant-evaluation';
|
|
3
|
-
import type { CreationCapabilityCallEvidence, CreationCapabilityOwner, CreationCapabilityRecord, CreationCapabilityTaskAssociation } from './creation-capability-types.js';
|
|
3
|
+
import type { CreationCapabilityAvailabilityAttribution, CreationCapabilityCallEvidence, CreationCapabilityOrdinaryUseReport, CreationCapabilityOrdinaryUseTrend, CreationCapabilityOwner, CreationCapabilityRecord, CreationCapabilityTaskAssociation } from './creation-capability-types.js';
|
|
4
4
|
type Evaluation = Pick<AssistantEvaluationService, 'canonicalHostScope' | 'getTrustedForegroundLearningProjection' | 'withTrustedCanonicalTaskWriterFence'>;
|
|
5
5
|
type Delivery = Pick<AssistantDeliveryService, 'inspectOwnerForegroundLearningTask' | 'inspectOwnerForegroundTaskSource'>;
|
|
6
6
|
export interface CreationCapabilityFeedbackInput {
|
|
@@ -17,7 +17,64 @@ export interface CreationCapabilityFeedbackInput {
|
|
|
17
17
|
};
|
|
18
18
|
now?: number;
|
|
19
19
|
}
|
|
20
|
+
/** Below this many samples a measure is marked insufficient; latency percentiles are withheld, quality counts stay exact. */
|
|
21
|
+
export declare const DEFAULT_MINIMUM_SAMPLES = 5;
|
|
20
22
|
/** No cache: every result is checked against the current canonical writer and owner route. */
|
|
21
23
|
export declare function inspectCreationCapabilityTaskAssociations(input: CreationCapabilityFeedbackInput): readonly CreationCapabilityTaskAssociation[];
|
|
24
|
+
/**
|
|
25
|
+
* Descriptive, non-causal counts over the same fenced current associations: one latest-revision quality sample per
|
|
26
|
+
* Inbox, strata by frozen task model only. Undefined only for a missing receipt, a failed fence or a throw.
|
|
27
|
+
*/
|
|
28
|
+
export declare function inspectCreationCapabilityOrdinaryUseReport(input: CreationCapabilityFeedbackInput & {
|
|
29
|
+
minimumSamples?: number;
|
|
30
|
+
}): CreationCapabilityOrdinaryUseReport | undefined;
|
|
31
|
+
type AttributionEvaluation = Evaluation & Pick<AssistantEvaluationService, 'listTrustedTaskLearningProjections' | 'withTrustedCanonicalScopeWriterFence'>;
|
|
32
|
+
export interface CreationCapabilityAttributionInput extends CreationCapabilityFeedbackInput {
|
|
33
|
+
evaluation: AttributionEvaluation;
|
|
34
|
+
/** Adoption times of every other journal record with a receipt; only counted as a concurrent-change flag. */
|
|
35
|
+
otherAdoptedAt?: readonly number[];
|
|
36
|
+
minimumSamples?: number;
|
|
37
|
+
/** Equal arm length; defaults to and is clamped by the elapsed signed use window. */
|
|
38
|
+
windowMs?: number;
|
|
39
|
+
/** Fail closed above this many current canonical heads in the owner scope. */
|
|
40
|
+
maxScannedHeads?: number;
|
|
41
|
+
}
|
|
42
|
+
export declare const DEFAULT_MAX_SCANNED_HEADS = 5000;
|
|
43
|
+
/**
|
|
44
|
+
* Intention-to-treat before/after attribution of one adoption: every certified current owner foreground task (one
|
|
45
|
+
* latest-revision head per Inbox; corrections replace, withdrawals retract) in equal windows around adoption, by
|
|
46
|
+
* frozen task model. Read once, then reread under an unchanged Evaluation scope watermark. Undefined for a missing
|
|
47
|
+
* receipt, an oversized scope, a changed source, scope or fence, or a throw. Observational, never causal.
|
|
48
|
+
*/
|
|
49
|
+
export declare function inspectCreationCapabilityAvailabilityAttribution(input: CreationCapabilityAttributionInput): CreationCapabilityAvailabilityAttribution | undefined;
|
|
50
|
+
export declare const TREND_DEFAULT_WINDOW_MS: number;
|
|
51
|
+
export declare const TREND_WINDOW_MS_BOUNDS: {
|
|
52
|
+
readonly min: number;
|
|
53
|
+
readonly max: number;
|
|
54
|
+
};
|
|
55
|
+
export declare const TREND_DEFAULT_PRE_WINDOWS = 4;
|
|
56
|
+
export declare const TREND_DEFAULT_MAX_POST_WINDOWS = 12;
|
|
57
|
+
export declare const TREND_WINDOW_COUNT_MAX = 52;
|
|
58
|
+
export declare const TREND_DEFAULT_PARALLEL_TREND_THRESHOLD = 0.2;
|
|
59
|
+
/** Fixed, machine-readable statement of what the estimate assumes; it is never a causal claim. */
|
|
60
|
+
export declare const TREND_ASSUMPTIONS: readonly string[];
|
|
61
|
+
export interface CreationCapabilityTrendInput extends CreationCapabilityAttributionInput {
|
|
62
|
+
/** Window length, default 7 days, bounded to [1 hour, 90 days]. */
|
|
63
|
+
windowMs?: number;
|
|
64
|
+
/** Windows before adoption, default 4, bounded to [2, 52]. */
|
|
65
|
+
preWindows?: number;
|
|
66
|
+
/** Cap on windows after adoption, default 12, bounded to [1, 52]; later tasks are outside every window. */
|
|
67
|
+
maxPostWindows?: number;
|
|
68
|
+
/** Absolute pre-adoption gap drift above which the parallel-trend assumption is flagged, in (0, 1]. */
|
|
69
|
+
parallelTrendThreshold?: number;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Longitudinal ordinary-use series of one adoption in fixed windows around adoption, by frozen task model, with a
|
|
73
|
+
* same-scope session-cohort control and a pooled difference-in-differences estimate. Every certified current owner
|
|
74
|
+
* foreground task counts once by its latest revision (corrections replace, withdrawals retract). Read once, then
|
|
75
|
+
* reread under an unchanged Evaluation scope watermark. Undefined for a missing receipt, an oversized scope, a changed
|
|
76
|
+
* source, scope or fence, or a throw. Pure read; observational, never causal.
|
|
77
|
+
*/
|
|
78
|
+
export declare function inspectCreationCapabilityOrdinaryUseTrend(input: CreationCapabilityTrendInput): CreationCapabilityOrdinaryUseTrend | undefined;
|
|
22
79
|
export {};
|
|
23
80
|
//# sourceMappingURL=creation-capability-feedback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creation-capability-feedback.d.ts","sourceRoot":"","sources":["../src/creation-capability-feedback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAA+B,MAAM,kCAAkC,CAAA;AAC7G,OAAO,KAAK,EAAE,0BAA0B,EAAE,wCAAwC,
|
|
1
|
+
{"version":3,"file":"creation-capability-feedback.d.ts","sourceRoot":"","sources":["../src/creation-capability-feedback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAA+B,MAAM,kCAAkC,CAAA;AAC7G,OAAO,KAAK,EAAE,0BAA0B,EAAE,wCAAwC,EAC1C,MAAM,oCAAoC,CAAA;AAElF,OAAO,KAAK,EACV,yCAAyC,EAAE,8BAA8B,EACrC,mCAAmC,EACjC,kCAAkC,EAAE,uBAAuB,EAAE,wBAAwB,EAC3H,iCAAiC,EAEF,MAAM,gCAAgC,CAAA;AAEvE,KAAK,UAAU,GAAG,IAAI,CAAC,0BAA0B,EAAE,oBAAoB,GAAG,wCAAwC,GAC9G,qCAAqC,CAAC,CAAA;AAC1C,KAAK,QAAQ,GAAG,IAAI,CAAC,wBAAwB,EAAE,oCAAoC,GAAG,kCAAkC,CAAC,CAAA;AAEzH,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,wBAAwB,CAAA;IAChC,KAAK,EAAE,SAAS,8BAA8B,EAAE,CAAA;IAChD,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,uBAAuB,CAAA;IAC9B,UAAU,EAAE,UAAU,CAAA;IACtB,QAAQ,EAAE,QAAQ,CAAA;IAClB,oHAAoH;IACpH,iBAAiB,IAAI;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,wCAAwC,CAAA;KAAE,CAAA;IACrG,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,6HAA6H;AAC7H,eAAO,MAAM,uBAAuB,IAAI,CAAA;AA4KxC,8FAA8F;AAC9F,wBAAgB,yCAAyC,CAAC,KAAK,EAAE,+BAA+B,GAAG,SAAS,iCAAiC,EAAE,CAM9I;AA6BD;;;GAGG;AACH,wBAAgB,0CAA0C,CAAC,KAAK,EAAE,+BAA+B,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/H,mCAAmC,GAAG,SAAS,CA0B9C;AAED,KAAK,qBAAqB,GAAG,UAAU,GAAG,IAAI,CAAC,0BAA0B,EAAE,oCAAoC,GAC3G,sCAAsC,CAAC,CAAA;AAE3C,MAAM,WAAW,kCAAmC,SAAQ,+BAA+B;IACzF,UAAU,EAAE,qBAAqB,CAAA;IACjC,6GAA6G;IAC7G,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,yBAAyB,OAAQ,CAAA;AAmD9C;;;;;GAKG;AACH,wBAAgB,gDAAgD,CAAC,KAAK,EAAE,kCAAkC,GAC1G,yCAAyC,GAAG,SAAS,CAqGpD;AAED,eAAO,MAAM,uBAAuB,QAA0B,CAAA;AAC9D,eAAO,MAAM,sBAAsB;;;CAAkE,CAAA;AACrG,eAAO,MAAM,yBAAyB,IAAI,CAAA;AAC1C,eAAO,MAAM,8BAA8B,KAAK,CAAA;AAChD,eAAO,MAAM,sBAAsB,KAAK,CAAA;AACxC,eAAO,MAAM,sCAAsC,MAAM,CAAA;AAEzD,kGAAkG;AAClG,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAO7C,CAAA;AAEF,MAAM,WAAW,4BAA6B,SAAQ,kCAAkC;IACtF,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2GAA2G;IAC3G,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,uGAAuG;IACvG,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC;AAuDD;;;;;;GAMG;AACH,wBAAgB,yCAAyC,CAAC,KAAK,EAAE,4BAA4B,GAC7F,kCAAkC,GAAG,SAAS,CA4H7C"}
|