@dsh-enhanced/assistant-verifier 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.
Files changed (69) hide show
  1. package/README.md +78 -9
  2. package/lib/creation-review-store.d.ts +80 -1
  3. package/lib/creation-review-store.d.ts.map +1 -1
  4. package/lib/creation-review-store.js +520 -11
  5. package/lib/creation-review-store.js.map +1 -1
  6. package/lib/creation-review.d.ts +182 -46
  7. package/lib/creation-review.d.ts.map +1 -1
  8. package/lib/creation-review.js +283 -32
  9. package/lib/creation-review.js.map +1 -1
  10. package/lib/drivers.d.ts +20 -5
  11. package/lib/drivers.d.ts.map +1 -1
  12. package/lib/drivers.js +50 -4
  13. package/lib/drivers.js.map +1 -1
  14. package/lib/index.d.ts +2 -2
  15. package/lib/index.d.ts.map +1 -1
  16. package/lib/index.js +1 -1
  17. package/lib/index.js.map +1 -1
  18. package/lib/linux-behavior-assets.d.ts +17 -0
  19. package/lib/linux-behavior-assets.d.ts.map +1 -0
  20. package/lib/linux-behavior-assets.js +73 -0
  21. package/lib/linux-behavior-assets.js.map +1 -0
  22. package/lib/linux-behavior-runner.d.ts +10 -0
  23. package/lib/linux-behavior-runner.d.ts.map +1 -0
  24. package/lib/linux-behavior-runner.js +69 -0
  25. package/lib/linux-behavior-runner.js.map +1 -0
  26. package/lib/linux-behavior-runtime.d.ts +67 -0
  27. package/lib/linux-behavior-runtime.d.ts.map +1 -0
  28. package/lib/linux-behavior-runtime.js +500 -0
  29. package/lib/linux-behavior-runtime.js.map +1 -0
  30. package/lib/memory-review-native.d.ts +13 -1
  31. package/lib/memory-review-native.d.ts.map +1 -1
  32. package/lib/memory-review-native.js +11 -2
  33. package/lib/memory-review-native.js.map +1 -1
  34. package/lib/memory-review.d.ts +2 -0
  35. package/lib/memory-review.d.ts.map +1 -1
  36. package/lib/memory-review.js +110 -7
  37. package/lib/memory-review.js.map +1 -1
  38. package/lib/plugin-behavior-config.d.ts +10 -2
  39. package/lib/plugin-behavior-config.d.ts.map +1 -1
  40. package/lib/plugin-behavior-config.js +75 -6
  41. package/lib/plugin-behavior-config.js.map +1 -1
  42. package/lib/plugin-behavior-runner.d.ts +6 -4
  43. package/lib/plugin-behavior-runner.d.ts.map +1 -1
  44. package/lib/plugin-behavior-runner.js +41 -14
  45. package/lib/plugin-behavior-runner.js.map +1 -1
  46. package/lib/review-authority-lineage.d.ts +109 -0
  47. package/lib/review-authority-lineage.d.ts.map +1 -0
  48. package/lib/review-authority-lineage.js +135 -0
  49. package/lib/review-authority-lineage.js.map +1 -0
  50. package/lib/review-maintenance.d.ts +20 -0
  51. package/lib/review-maintenance.d.ts.map +1 -0
  52. package/lib/review-maintenance.js +19 -0
  53. package/lib/review-maintenance.js.map +1 -0
  54. package/lib/revision-regression-review.d.ts +4 -1
  55. package/lib/revision-regression-review.d.ts.map +1 -1
  56. package/lib/revision-regression-review.js +59 -7
  57. package/lib/revision-regression-review.js.map +1 -1
  58. package/lib/revision-review.d.ts +7 -0
  59. package/lib/revision-review.d.ts.map +1 -1
  60. package/lib/revision-review.js +48 -4
  61. package/lib/revision-review.js.map +1 -1
  62. package/lib/service.d.ts +2 -0
  63. package/lib/service.d.ts.map +1 -1
  64. package/lib/service.js +11 -2
  65. package/lib/service.js.map +1 -1
  66. package/lib/version.d.ts +1 -1
  67. package/lib/version.js +1 -1
  68. package/package.json +27 -14
  69. package/runtime/plugin-observer-launcher.c +246 -0
@@ -1,7 +1,10 @@
1
1
  import { createHash } from 'node:crypto';
2
2
  import { IsolatedVerifierRunner, NativeMacVerifierRunner } from '@dsh-enhanced/assistant-isolation';
3
- import { behaviorNativeRuntimeDigest, NATIVE_BEHAVIOR_BOUNDARY, validatePluginBehaviorRunnerConfig } from './plugin-behavior-config.js';
4
- export { NATIVE_BEHAVIOR_BOUNDARY, validatePluginBehaviorRunnerConfig, validatePluginBehaviorDeploymentConfig } from './plugin-behavior-config.js';
3
+ import { behaviorNativeRuntimeDigest, NATIVE_BEHAVIOR_BOUNDARY, LINUX_BEHAVIOR_BOUNDARY, validatePluginBehaviorRunnerConfig } from './plugin-behavior-config.js';
4
+ export { NATIVE_BEHAVIOR_BOUNDARY, LINUX_BEHAVIOR_BOUNDARY, validatePluginBehaviorRunnerConfig, validatePluginBehaviorDeploymentConfig } from './plugin-behavior-config.js';
5
+ export { LINUX_BEHAVIOR_COMMAND, validateLinuxPluginBehaviorRuntime, verifyLinuxPluginBehaviorRuntime, linuxPluginBehaviorRuntimeDigest, prepareLinuxPluginBehaviorRuntime, readLinuxPluginBehaviorRuntime } from './linux-behavior-runtime.js';
6
+ import { linuxPluginBehaviorRuntimeDigest } from './linux-behavior-runtime.js';
7
+ import { LinuxBehaviorRunner } from './linux-behavior-runner.js';
5
8
  import { nativeBehaviorFiles } from './native-behavior-artifact.js';
6
9
  import { NATIVE_BEHAVIOR_SOURCE } from './native-behavior-worker.js';
7
10
  const MAX_PACK_BYTES = 512 * 1024;
@@ -98,10 +101,20 @@ function validObservation(value, operation, sha256) {
98
101
  return false;
99
102
  return true;
100
103
  }
104
+ function validLinuxFrame(value, operation, expected) {
105
+ const fields = ['schemaVersion', 'boundary', 'status', 'artifactSha256', 'quiescent', 'environment', 'schemaDigest',
106
+ operation.kind === 'discover' ? 'schemas' : 'calls'];
107
+ const environment = value.environment;
108
+ return Object.keys(value).length === fields.length && fields.every(key => Object.hasOwn(value, key))
109
+ && Object.keys(environment).length === 4
110
+ && Object.entries(expected).every(([key, version]) => environment[key] === version)
111
+ && (operation.kind === 'discover' || value.calls.every(call => !Array.isArray(call) && Object.keys(call).length === 3));
112
+ }
101
113
  /** Host-only behavior observation. The candidate and worker receive no oracle or promotion authority. */
102
114
  export class PluginBehaviorRunner {
103
115
  #runner;
104
116
  #native;
117
+ #linux;
105
118
  #runtimeDigest;
106
119
  #authorityDigest;
107
120
  #environment;
@@ -110,7 +123,14 @@ export class PluginBehaviorRunner {
110
123
  const config = validatePluginBehaviorRunnerConfig(input);
111
124
  this.#authorityDigest = config.authorityDigest;
112
125
  this.#native = 'backend' in config && config.backend === 'macos-seatbelt';
113
- if (this.#native) {
126
+ this.#linux = 'backend' in config && config.backend === 'linux-native';
127
+ if ('backend' in config && config.backend === 'linux-native') {
128
+ const versions = config.runtime.runtime.versions;
129
+ this.#runtimeDigest = linuxPluginBehaviorRuntimeDigest(config.runtime);
130
+ this.#environment = { node: versions.node, cordis: versions.cordis, tools: versions.tools, systemPrompt: versions.systemPrompt };
131
+ this.#runner = new LinuxBehaviorRunner(config);
132
+ }
133
+ else if (this.#native) {
114
134
  const native = config;
115
135
  this.#runtimeDigest = behaviorNativeRuntimeDigest(native.runtime);
116
136
  this.#environment = { node: native.runtime.versions.node, cordis: native.runtime.versions.cordis,
@@ -127,9 +147,13 @@ export class PluginBehaviorRunner {
127
147
  const unknown = (reason, quiescent = false, jobId) => ({ status: 'unknown', quiescent, artifactSha256, reason, ...(jobId ? { jobId } : {}) });
128
148
  if (!Buffer.isBuffer(input.artifact) || input.artifact.length < 1 || input.artifact.length > MAX_PACK_BYTES)
129
149
  return unknown('plugin-artifact-out-of-bound', true);
150
+ let operation;
130
151
  try {
131
- if (!validOperation(input.operation))
152
+ const serialized = canonicalJson(input.operation);
153
+ const snapshot = serialized === undefined ? undefined : JSON.parse(serialized);
154
+ if (!validOperation(snapshot))
132
155
  return unknown('plugin-operation-invalid', true);
156
+ operation = snapshot;
133
157
  }
134
158
  catch {
135
159
  return unknown('plugin-operation-invalid', true);
@@ -146,11 +170,11 @@ export class PluginBehaviorRunner {
146
170
  // Stable per frozen request: the durable runner must see identical bytes for a replay key.
147
171
  // This is only frame correlation. Single-process candidate output is untrusted.
148
172
  const nonce = this.#native ? createHash('sha256').update(JSON.stringify({ authorityDigest: this.#authorityDigest,
149
- key: input.key, artifactSha256, operation: input.operation })).digest('hex') : undefined;
173
+ key: input.key, artifactSha256, operation })).digest('hex') : undefined;
150
174
  const request = this.#native
151
175
  ? { schemaVersion: 1, nonce, artifactSha256, entry: staged.entry,
152
- modulesPath: this.#modulesPath, operation: input.operation }
153
- : { schemaVersion: 1, sha256: artifactSha256, sizeBytes: input.artifact.length, operation: input.operation };
176
+ modulesPath: this.#modulesPath, operation }
177
+ : { schemaVersion: 1, sha256: artifactSha256, sizeBytes: input.artifact.length, operation };
154
178
  const stdin = canonicalJson(request);
155
179
  if (stdin === undefined || Buffer.byteLength(stdin) > MAX_OPERATION_BYTES)
156
180
  return unknown('plugin-operation-out-of-bound', true);
@@ -175,7 +199,7 @@ export class PluginBehaviorRunner {
175
199
  return unknown('plugin-worker-output-invalid', true, isolated.jobId);
176
200
  const frame = value;
177
201
  const header = frame.wireVersion === 1 && frame.nonce === nonce && frame.artifactSha256 === artifactSha256
178
- && frame.operationDigest === createHash('sha256').update(JSON.stringify(input.operation)).digest('hex');
202
+ && frame.operationDigest === createHash('sha256').update(JSON.stringify(operation)).digest('hex');
179
203
  if (!header)
180
204
  return unknown('plugin-worker-output-invalid', true, isolated.jobId);
181
205
  if (frame.status === 'unknown' && typeof frame.reason === 'string' && frame.reason.length > 0
@@ -184,7 +208,7 @@ export class PluginBehaviorRunner {
184
208
  if (frame.status !== 'result' || !SHA256.test(frame.schemaDigest)
185
209
  || Object.keys(frame).length !== 7)
186
210
  return unknown('plugin-worker-observation-invalid', true, isolated.jobId);
187
- if (input.operation.kind === 'discover') {
211
+ if (operation.kind === 'discover') {
188
212
  if (!Array.isArray(frame.schemas) || frame.schemas.length < 1 || frame.schemas.length > 64
189
213
  || frame.calls !== undefined || createHash('sha256').update(JSON.stringify(frame.schemas)).digest('hex') !== frame.schemaDigest)
190
214
  return unknown('plugin-worker-observation-invalid', true, isolated.jobId);
@@ -197,8 +221,8 @@ export class PluginBehaviorRunner {
197
221
  }
198
222
  }
199
223
  else {
200
- const calls = input.operation.calls;
201
- if (frame.schemaDigest !== input.operation.schemaDigest || !Array.isArray(frame.calls)
224
+ const calls = operation.calls;
225
+ if (frame.schemaDigest !== operation.schemaDigest || !Array.isArray(frame.calls)
202
226
  || frame.calls.length !== calls.length || frame.schemas !== undefined
203
227
  || frame.calls.some((call, index) => !call || typeof call !== 'object'
204
228
  || call.id !== calls[index].id
@@ -209,7 +233,7 @@ export class PluginBehaviorRunner {
209
233
  return { status: 'observed', quiescent: true, artifactSha256, jobId: isolated.jobId,
210
234
  boundary: NATIVE_BEHAVIOR_BOUNDARY, runtimeDigest: this.#runtimeDigest, environment: this.#environment,
211
235
  schemaDigest: frame.schemaDigest,
212
- ...(input.operation.kind === 'discover' ? { schemas: frame.schemas }
236
+ ...(operation.kind === 'discover' ? { schemas: frame.schemas }
213
237
  : { calls: frame.calls }) };
214
238
  }
215
239
  if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
@@ -219,12 +243,15 @@ export class PluginBehaviorRunner {
219
243
  && Object.keys(record).length === 4)
220
244
  return unknown(record.reason, true, isolated.jobId);
221
245
  }
222
- if (!validObservation(value, input.operation, artifactSha256))
246
+ if (!validObservation(value, operation, artifactSha256))
223
247
  return unknown('plugin-worker-observation-invalid', true, isolated.jobId);
224
248
  const observation = value;
249
+ if (this.#linux && !validLinuxFrame(observation, operation, this.#environment))
250
+ return unknown('plugin-worker-observation-invalid', true, isolated.jobId);
225
251
  return { status: 'observed', quiescent: true, artifactSha256, jobId: isolated.jobId,
252
+ ...(this.#linux ? { boundary: LINUX_BEHAVIOR_BOUNDARY, runtimeDigest: this.#runtimeDigest } : {}),
226
253
  environment: observation.environment, schemaDigest: observation.schemaDigest,
227
- ...(input.operation.kind === 'discover' ? { schemas: observation.schemas } : { calls: observation.calls }) };
254
+ ...(operation.kind === 'discover' ? { schemas: observation.schemas } : { calls: observation.calls }) };
228
255
  }
229
256
  catch {
230
257
  return unknown('plugin-worker-output-invalid', true, isolated.jobId);
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-behavior-runner.js","sourceRoot":"","sources":["../src/plugin-behavior-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-behavior-runner.js","sourceRoot":"","sources":["../src/plugin-behavior-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ import { type CreationAcceptanceAuthorityRef, type RevisionAcceptanceAuthorityRef, type RevisionRegressionAcceptanceAuthorityRef } from '@dsh-enhanced/assistant-growth-contract';
2
+ export declare const lineageHash: (value: unknown) => string;
3
+ export declare function lineageFail(message: string): never;
4
+ export interface ReviewPublicIdentity {
5
+ authority: CreationAcceptanceAuthorityRef | RevisionAcceptanceAuthorityRef | RevisionRegressionAcceptanceAuthorityRef;
6
+ publicKey: string;
7
+ keyFingerprint: string;
8
+ owner: {
9
+ authorityId: string;
10
+ authorityHash: string;
11
+ principalId: string;
12
+ principalRecordId: string;
13
+ principalVersion: number;
14
+ workspace: string;
15
+ agentPreset: string;
16
+ };
17
+ maximum: number;
18
+ runner: {
19
+ logicalStateRoot: string;
20
+ maxRuns: number;
21
+ maxTotalDurationMs: number;
22
+ maxDurationMs: number;
23
+ maxOutputBytes: number;
24
+ expiresAt: number;
25
+ };
26
+ budget: {
27
+ maxDurationMs: number;
28
+ maxCases: number;
29
+ receiptTtlMs: number;
30
+ } | {
31
+ policy: string;
32
+ maxInputBytes: number;
33
+ maxOutputTokens: number;
34
+ maxDurationMs: number;
35
+ maxCases: number;
36
+ receiptTtlMs: number;
37
+ };
38
+ }
39
+ export interface ConfigurationEvidence {
40
+ configurationDigest: string;
41
+ sourceDigest: string;
42
+ verificationDigest: string;
43
+ }
44
+ export interface LineageScope {
45
+ transactionId: string;
46
+ installationId: string;
47
+ profileId: string;
48
+ lane: 'creation-reviews' | 'revision-reviews' | 'revision-regressions';
49
+ logicalDatabaseScope: string;
50
+ oldIdentity: ReviewPublicIdentity;
51
+ newIdentity: ReviewPublicIdentity;
52
+ configurationEvidence: {
53
+ old: ConfigurationEvidence;
54
+ current: ConfigurationEvidence;
55
+ };
56
+ previousHeadDigest: string | null;
57
+ }
58
+ export interface RowSeal {
59
+ planId: string;
60
+ rowDigest: string;
61
+ certificateDigest: string;
62
+ }
63
+ export interface FileIdentity {
64
+ dev: number;
65
+ ino: number;
66
+ }
67
+ export interface TrustedHistoryRequest {
68
+ headDigest: string;
69
+ currentIdentity: ReviewPublicIdentity;
70
+ currentFileIdentity: FileIdentity;
71
+ installationId: string;
72
+ profileId: string;
73
+ lane: LineageScope['lane'];
74
+ logicalDatabaseScope: string;
75
+ planId: string;
76
+ now: number;
77
+ }
78
+ export declare function validateIdentity(identity: ReviewPublicIdentity): void;
79
+ /** Structural view of a compiled review-lane config; kept here so creation-review.ts can project without a cycle. */
80
+ export interface CompiledReviewLane {
81
+ authority: ReviewPublicIdentity['authority'];
82
+ publicKey: string;
83
+ config: {
84
+ owner: ReviewPublicIdentity['owner'];
85
+ maxVerifications: number;
86
+ maxDurationMs: number;
87
+ maxCases: number;
88
+ receiptTtlMs: number;
89
+ policy?: string;
90
+ maxInputBytes?: number;
91
+ maxOutputTokens?: number;
92
+ runner: {
93
+ stateRoot: string;
94
+ maxRuns: number;
95
+ maxTotalDurationMs: number;
96
+ maxDurationMs: number;
97
+ maxOutputBytes: number;
98
+ expiresAt: number;
99
+ };
100
+ };
101
+ }
102
+ /** The public, backend-neutral identity a review lane's grant hands off between authorities. */
103
+ export declare function projectReviewPublicIdentity(lane: LineageScope['lane'], compiled: CompiledReviewLane): ReviewPublicIdentity;
104
+ export declare function stableIdentity(identity: ReviewPublicIdentity): unknown;
105
+ export declare function validateLane(identity: ReviewPublicIdentity, lane: LineageScope['lane']): void;
106
+ export declare function validateScope(scope: LineageScope): void;
107
+ export declare function validateRequest(request: TrustedHistoryRequest): void;
108
+ export declare function same(value: unknown, other: unknown): boolean;
109
+ //# sourceMappingURL=review-authority-lineage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-authority-lineage.d.ts","sourceRoot":"","sources":["../src/review-authority-lineage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ import { createHash, createPublicKey } from 'node:crypto';
2
+ import { isAbsolute, resolve } from 'node:path';
3
+ import { canonicalGrowthJson, validateCreationAcceptanceAuthorityRef, validateRevisionAcceptanceAuthorityRef, validateRevisionRegressionAcceptanceAuthorityRef } from '@dsh-enhanced/assistant-growth-contract';
4
+ export const lineageHash = (value) => createHash('sha256').update(canonicalGrowthJson(value)).digest('hex');
5
+ const SHA = /^[a-f0-9]{64}$/u, ID = /^[A-Za-z0-9][A-Za-z0-9._:/-]{0,199}$/u;
6
+ export function lineageFail(message) { throw new Error(`review lineage: ${message}`); }
7
+ function exact(value, keys) {
8
+ if (!value || typeof value !== 'object' || Object.getPrototypeOf(value) !== Object.prototype
9
+ || Reflect.ownKeys(value).sort().join(',') !== keys.sort().join(',')
10
+ || Object.values(Object.getOwnPropertyDescriptors(value)).some(d => !d.enumerable || !('value' in d)))
11
+ lineageFail('invalid structure');
12
+ }
13
+ function integer(value, min, max) {
14
+ if (!Number.isSafeInteger(value) || Number(value) < min || Number(value) > max)
15
+ lineageFail('invalid limit');
16
+ }
17
+ export function validateIdentity(identity) {
18
+ exact(identity, ['authority', 'publicKey', 'keyFingerprint', 'owner', 'maximum', 'budget', 'runner']);
19
+ if (identity.authority.protocol === 'assistant-growth/creation-acceptance-authority/v1')
20
+ validateCreationAcceptanceAuthorityRef(identity.authority);
21
+ else if (identity.authority.protocol === 'assistant-growth/revision-acceptance-authority/v1')
22
+ validateRevisionAcceptanceAuthorityRef(identity.authority);
23
+ else
24
+ validateRevisionRegressionAcceptanceAuthorityRef(identity.authority);
25
+ if (typeof identity.publicKey !== 'string' || identity.publicKey.length > 8192 || !identity.publicKey.startsWith('-----BEGIN PUBLIC KEY-----\n'))
26
+ lineageFail('public key required');
27
+ const key = createPublicKey(identity.publicKey);
28
+ if (key.asymmetricKeyType !== 'ed25519' || key.export({ format: 'pem', type: 'spki' }).toString() !== identity.publicKey
29
+ || createHash('sha256').update(key.export({ format: 'der', type: 'spki' })).digest('hex') !== identity.keyFingerprint)
30
+ lineageFail('public key mismatch');
31
+ exact(identity.owner, ['authorityId', 'authorityHash', 'principalId', 'principalRecordId', 'principalVersion', 'workspace', 'agentPreset']);
32
+ for (const k of ['authorityId', 'principalId', 'principalRecordId', 'agentPreset'])
33
+ if (typeof identity.owner[k] !== 'string' || !ID.test(identity.owner[k]))
34
+ lineageFail('owner id');
35
+ if (typeof identity.owner.authorityHash !== 'string' || !SHA.test(identity.owner.authorityHash) || typeof identity.owner.workspace !== 'string' || !isAbsolute(identity.owner.workspace)
36
+ || resolve(identity.owner.workspace) !== identity.owner.workspace || identity.owner.workspace.includes('\0'))
37
+ lineageFail('owner binding');
38
+ integer(identity.owner.principalVersion, 1, Number.MAX_SAFE_INTEGER);
39
+ integer(identity.maximum, 1, 1000);
40
+ const noModel = identity.authority.protocol === 'assistant-growth/revision-regression-acceptance-authority/v1';
41
+ exact(identity.budget, noModel ? ['maxDurationMs', 'maxCases', 'receiptTtlMs'] : ['policy', 'maxInputBytes', 'maxOutputTokens', 'maxDurationMs', 'maxCases', 'receiptTtlMs']);
42
+ const b = identity.budget;
43
+ if (!noModel) {
44
+ if (!('policy' in b) || typeof b.policy !== 'string' || !b.policy.trim() || b.policy.includes('\0') || !b.policy.isWellFormed() || Buffer.byteLength(b.policy) > 8192)
45
+ lineageFail('policy');
46
+ integer(b.maxInputBytes, 4096, 262144);
47
+ integer(b.maxOutputTokens, 2, 32768);
48
+ }
49
+ integer(b.maxDurationMs, 1000, 1800000);
50
+ integer(b.maxCases, 2, 8);
51
+ integer(b.receiptTtlMs, 1000, 86400000);
52
+ exact(identity.runner, ['logicalStateRoot', 'maxRuns', 'maxTotalDurationMs', 'maxDurationMs', 'maxOutputBytes', 'expiresAt']);
53
+ const r = identity.runner;
54
+ if (typeof r.logicalStateRoot !== 'string' || !isAbsolute(r.logicalStateRoot) || resolve(r.logicalStateRoot) !== r.logicalStateRoot || r.logicalStateRoot.includes('\0') || r.logicalStateRoot === '/')
55
+ lineageFail('runner logical root');
56
+ integer(r.maxRuns, 1, 10000);
57
+ integer(r.maxTotalDurationMs, 1, 86400000);
58
+ integer(r.maxDurationMs, 1, 300000);
59
+ integer(r.maxOutputBytes, 65536, 262144);
60
+ integer(r.expiresAt, 1, 8640000000000000);
61
+ if (r.maxDurationMs > r.maxTotalDurationMs || r.expiresAt < identity.authority.expiresAt
62
+ || r.maxRuns < identity.maximum * (noModel ? 2 + 2 * b.maxCases : 1 + b.maxCases))
63
+ lineageFail('runner cannot cover review');
64
+ }
65
+ /** The public, backend-neutral identity a review lane's grant hands off between authorities. */
66
+ export function projectReviewPublicIdentity(lane, compiled) {
67
+ const c = compiled.config, runner = c.runner;
68
+ const key = createPublicKey(compiled.publicKey);
69
+ const identity = {
70
+ authority: { ...compiled.authority },
71
+ publicKey: compiled.publicKey,
72
+ keyFingerprint: createHash('sha256').update(key.export({ format: 'der', type: 'spki' })).digest('hex'),
73
+ owner: { ...c.owner },
74
+ maximum: c.maxVerifications,
75
+ // Only backend-neutral runner bounds; backend-specific fields stay inside authorityDigest.
76
+ runner: { logicalStateRoot: runner.stateRoot, maxRuns: runner.maxRuns, maxTotalDurationMs: runner.maxTotalDurationMs,
77
+ maxDurationMs: runner.maxDurationMs, maxOutputBytes: runner.maxOutputBytes, expiresAt: runner.expiresAt },
78
+ budget: lane === 'revision-regressions'
79
+ ? { maxDurationMs: c.maxDurationMs, maxCases: c.maxCases, receiptTtlMs: c.receiptTtlMs }
80
+ : { policy: c.policy, maxInputBytes: c.maxInputBytes,
81
+ maxOutputTokens: c.maxOutputTokens, maxDurationMs: c.maxDurationMs,
82
+ maxCases: c.maxCases, receiptTtlMs: c.receiptTtlMs },
83
+ };
84
+ validateIdentity(identity);
85
+ validateLane(identity, lane);
86
+ return identity;
87
+ }
88
+ export function stableIdentity(identity) {
89
+ const { authorityDigest: _, ...authority } = identity.authority;
90
+ return { ...identity, authority };
91
+ }
92
+ export function validateLane(identity, lane) {
93
+ const protocol = lane === 'creation-reviews' ? 'assistant-growth/creation-acceptance-authority/v1'
94
+ : lane === 'revision-reviews' ? 'assistant-growth/revision-acceptance-authority/v1' : 'assistant-growth/revision-regression-acceptance-authority/v1';
95
+ if (identity.authority.protocol !== protocol)
96
+ lineageFail('authority lane mismatch');
97
+ }
98
+ export function validateScope(scope) {
99
+ exact(scope, ['transactionId', 'installationId', 'profileId', 'lane', 'logicalDatabaseScope', 'oldIdentity', 'newIdentity', 'configurationEvidence', 'previousHeadDigest']);
100
+ for (const value of [scope.transactionId, scope.installationId, scope.profileId, scope.logicalDatabaseScope])
101
+ if (typeof value !== 'string' || !ID.test(value))
102
+ lineageFail('scope');
103
+ if (!['creation-reviews', 'revision-reviews', 'revision-regressions'].includes(scope.lane)
104
+ || scope.previousHeadDigest !== null && (typeof scope.previousHeadDigest !== 'string' || !SHA.test(scope.previousHeadDigest)))
105
+ lineageFail('scope');
106
+ validateIdentity(scope.oldIdentity);
107
+ validateIdentity(scope.newIdentity);
108
+ validateLane(scope.oldIdentity, scope.lane);
109
+ validateLane(scope.newIdentity, scope.lane);
110
+ if (canonicalGrowthJson(stableIdentity(scope.oldIdentity)) !== canonicalGrowthJson(stableIdentity(scope.newIdentity))
111
+ || scope.oldIdentity.authority.authorityDigest === scope.newIdentity.authority.authorityDigest)
112
+ lineageFail('stable identity changed');
113
+ exact(scope.configurationEvidence, ['old', 'current']);
114
+ for (const evidence of [scope.configurationEvidence.old, scope.configurationEvidence.current]) {
115
+ exact(evidence, ['configurationDigest', 'sourceDigest', 'verificationDigest']);
116
+ if (Object.values(evidence).some(v => typeof v !== 'string' || !SHA.test(v)))
117
+ lineageFail('configuration evidence');
118
+ }
119
+ }
120
+ export function validateRequest(request) {
121
+ exact(request, ['headDigest', 'currentIdentity', 'currentFileIdentity', 'installationId', 'profileId', 'lane', 'logicalDatabaseScope', 'planId', 'now']);
122
+ if (typeof request.headDigest !== 'string' || !SHA.test(request.headDigest) || [request.installationId, request.profileId, request.logicalDatabaseScope, request.planId].some(v => typeof v !== 'string' || !ID.test(v))
123
+ || !['creation-reviews', 'revision-reviews', 'revision-regressions'].includes(request.lane))
124
+ lineageFail('trusted head required');
125
+ validateIdentity(request.currentIdentity);
126
+ validateLane(request.currentIdentity, request.lane);
127
+ exact(request.currentFileIdentity, ['dev', 'ino']);
128
+ integer(request.currentFileIdentity.dev, 0, Number.MAX_SAFE_INTEGER);
129
+ integer(request.currentFileIdentity.ino, 1, Number.MAX_SAFE_INTEGER);
130
+ integer(request.now, 1, 8640000000000000);
131
+ if (request.currentIdentity.authority.expiresAt <= request.now)
132
+ lineageFail('current authority expired');
133
+ }
134
+ export function same(value, other) { return canonicalGrowthJson(value) === canonicalGrowthJson(other); }
135
+ //# sourceMappingURL=review-authority-lineage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-authority-lineage.js","sourceRoot":"","sources":["../src/review-authority-lineage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /** Offline review-lane maintenance surface for installers (package subpath `./review-maintenance`).
2
+ * Kept apart from the plugin entry so creation-review → store → lineage imports stay acyclic and the
3
+ * service entry does not export store internals. */
4
+ import { type CreationReviewConfig } from './creation-review.js';
5
+ import { type RevisionReviewConfig } from './revision-review.js';
6
+ import { type RevisionRegressionReviewConfig } from './revision-regression-review.js';
7
+ import { type LineageScope, type ReviewPublicIdentity } from './review-authority-lineage.js';
8
+ export { CreationReviewStore } from './creation-review-store.js';
9
+ export type { ReviewLineagePlan, ReviewLineageProof } from './creation-review-store.js';
10
+ export { lineageHash } from './review-authority-lineage.js';
11
+ export type { ConfigurationEvidence, LineageScope, ReviewPublicIdentity } from './review-authority-lineage.js';
12
+ export type ReviewLaneConfig = CreationReviewConfig | RevisionReviewConfig | RevisionRegressionReviewConfig;
13
+ /** The public, backend-neutral identity a review lane's grant hands off between authorities.
14
+ * Compiling reads the lane's private signing key (to derive the public key), so `config.keyPath`
15
+ * must point at the key the caller intends to bind, e.g. inside a stopped staged Home. */
16
+ export declare function reviewPublicIdentity(lane: 'creation-reviews', config: CreationReviewConfig): ReviewPublicIdentity;
17
+ export declare function reviewPublicIdentity(lane: 'revision-reviews', config: RevisionReviewConfig): ReviewPublicIdentity;
18
+ export declare function reviewPublicIdentity(lane: 'revision-regressions', config: RevisionRegressionReviewConfig): ReviewPublicIdentity;
19
+ export declare function reviewPublicIdentity(lane: LineageScope['lane'], config: ReviewLaneConfig): ReviewPublicIdentity;
20
+ //# sourceMappingURL=review-maintenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-maintenance.d.ts","sourceRoot":"","sources":["../src/review-maintenance.ts"],"names":[],"mappings":"AAAA;;oDAEoD;AACpD,OAAO,EAA+B,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC7F,OAAO,EAA+B,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC7F,OAAO,EAAyC,KAAK,8BAA8B,EAAE,MAAM,iCAAiC,CAAA;AAC5H,OAAO,EAA+B,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAEzH,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAE9G,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,8BAA8B,CAAA;AAE3G;;0FAE0F;AAC1F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAAA;AAClH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAAA;AAClH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,8BAA8B,GAAG,oBAAoB,CAAA;AAChI,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,GAAG,oBAAoB,CAAA"}
@@ -0,0 +1,19 @@
1
+ /** Offline review-lane maintenance surface for installers (package subpath `./review-maintenance`).
2
+ * Kept apart from the plugin entry so creation-review → store → lineage imports stay acyclic and the
3
+ * service entry does not export store internals. */
4
+ import { compileCreationReviewConfig } from './creation-review.js';
5
+ import { compileRevisionReviewConfig } from './revision-review.js';
6
+ import { compileRevisionRegressionReviewConfig } from './revision-regression-review.js';
7
+ import { projectReviewPublicIdentity } from './review-authority-lineage.js';
8
+ export { CreationReviewStore } from './creation-review-store.js';
9
+ export { lineageHash } from './review-authority-lineage.js';
10
+ export function reviewPublicIdentity(lane, config) {
11
+ const compiled = lane === 'creation-reviews' ? compileCreationReviewConfig(config)
12
+ : lane === 'revision-reviews' ? compileRevisionReviewConfig(config)
13
+ : lane === 'revision-regressions' ? compileRevisionRegressionReviewConfig(config)
14
+ : undefined;
15
+ if (!compiled)
16
+ throw new Error('review public identity: unknown lane');
17
+ return projectReviewPublicIdentity(lane, compiled);
18
+ }
19
+ //# sourceMappingURL=review-maintenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-maintenance.js","sourceRoot":"","sources":["../src/review-maintenance.ts"],"names":[],"mappings":"AAAA;;oDAEoD;AACpD,OAAO,EAAE,2BAA2B,EAA6B,MAAM,sBAAsB,CAAA;AAC7F,OAAO,EAAE,2BAA2B,EAA6B,MAAM,sBAAsB,CAAA;AAC7F,OAAO,EAAE,qCAAqC,EAAuC,MAAM,iCAAiC,CAAA;AAC5H,OAAO,EAAE,2BAA2B,EAAgD,MAAM,+BAA+B,CAAA;AAEzH,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAY3D,MAAM,UAAU,oBAAoB,CAAC,IAA0B,EAAE,MAAwB;IACvF,MAAM,QAAQ,GAAG,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,2BAA2B,CAAC,MAA8B,CAAC;QACxG,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,2BAA2B,CAAC,MAA8B,CAAC;YACzF,CAAC,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC,CAAC,qCAAqC,CAAC,MAAwC,CAAC;gBACjH,CAAC,CAAC,SAAS,CAAA;IACjB,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IACtE,OAAO,2BAA2B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;AACpD,CAAC"}
@@ -22,7 +22,10 @@ type RetainedCases = Readonly<{
22
22
  cases: Record<string, unknown>;
23
23
  }>;
24
24
  type ReadParentCases = (certificate: PluginCreationVerificationCertificate) => RetainedCases | undefined;
25
- /** Independent paired Docker regression; this runtime has no LLM service and cannot switch a tool. */
25
+ /** Independent paired regression on the retained parent and the candidate.
26
+ * Docker keeps the v1 protocol; linux-native requires a creation v3 parent and
27
+ * a revision v2 candidate and signs the shared observer identity as v2. This
28
+ * runtime has no LLM service and cannot switch a tool. */
26
29
  export declare class RevisionRegressionReviewRuntime {
27
30
  #private;
28
31
  private readonly ctx;
@@ -1 +1 @@
1
- {"version":3,"file":"revision-regression-review.d.ts","sourceRoot":"","sources":["../src/revision-regression-review.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAKL,KAAK,qCAAqC,EAC1C,KAAK,+BAA+B,EAAE,KAAK,8BAA8B,EAEzE,KAAK,wCAAwC,EAAE,MAAM,yCAAyC,CAAA;AAEhG,OAAO,EAC0C,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAQxG,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,eAAe,GAAG,iBAAiB,CAAC,CAAA;AACvH,MAAM,WAAW,2CAA2C;IAC1D,SAAS,EAAE,wCAAwC,CAAA;IACnD,SAAS,EAAE,MAAM,CAAA;IACjB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,SAAS,EAAE,OAAO,CAAA;CACnB;AAcD,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,8BAA8B,GAAG,8BAA8B,CAO5H;AAED,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,8BAA8B,GAAG;IAC5F,MAAM,EAAE,8BAA8B,CAAC;IAAC,SAAS,EAAE,wCAAwC,CAAC;IAC5F,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC,cAAc,aAAa,EAAE,gBAAgB,CAAC,CAAA;CACzF,CAYA;AAkBD,KAAK,aAAa,GAAG,QAAQ,CAAC;IAAE,WAAW,EAAE,qCAAqC,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACrG,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CAAA;AACtD,KAAK,eAAe,GAAG,CAAC,WAAW,EAAE,qCAAqC,KAAK,aAAa,GAAG,SAAS,CAAA;AAgCxG,sGAAsG;AACtG,qBAAa,+BAA+B;;IAS9B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBADL,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,8BAA8B,EAAE,YAAY,EAAE,MAAM,EACnF,eAAe,EAAE,eAAe;IAenD,OAAO,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC,CAAA;KAAE,GAAG,2CAA2C,GAAG,SAAS;IAQ3H,GAAG,CAAC,OAAO,EAAE,+BAA+B,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAoL9G,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAUvB"}
1
+ {"version":3,"file":"revision-regression-review.d.ts","sourceRoot":"","sources":["../src/revision-regression-review.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAKL,KAAK,qCAAqC,EACG,KAAK,+BAA+B,EACjF,KAAK,8BAA8B,EACS,KAAK,wCAAwC,EAAE,MAAM,yCAAyC,CAAA;AAE5I,OAAO,EAC0C,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAUxG,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,eAAe,GAAG,iBAAiB,CAAC,CAAA;AACvH,MAAM,WAAW,2CAA2C;IAC1D,SAAS,EAAE,wCAAwC,CAAA;IACnD,SAAS,EAAE,MAAM,CAAA;IACjB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,SAAS,EAAE,OAAO,CAAA;CACnB;AAkBD,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,8BAA8B,GAAG,8BAA8B,CAS5H;AAED,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,8BAA8B,GAAG;IAC5F,MAAM,EAAE,8BAA8B,CAAC;IAAC,SAAS,EAAE,wCAAwC,CAAC;IAC5F,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC,cAAc,aAAa,EAAE,gBAAgB,CAAC,CAAA;CACzF,CAYA;AAkBD,KAAK,aAAa,GAAG,QAAQ,CAAC;IAAE,WAAW,EAAE,qCAAqC,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACrG,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CAAA;AACtD,KAAK,eAAe,GAAG,CAAC,WAAW,EAAE,qCAAqC,KAAK,aAAa,GAAG,SAAS,CAAA;AAgCxG;;;0DAG0D;AAC1D,qBAAa,+BAA+B;;IAS9B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBADL,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,8BAA8B,EAAE,YAAY,EAAE,MAAM,EACnF,eAAe,EAAE,eAAe;IAenD,OAAO,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC,CAAA;KAAE,GAAG,2CAA2C,GAAG,SAAS;IAQ3H,GAAG,CAAC,OAAO,EAAE,+BAA+B,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,8BAA8B,CAAC;IA4N9G,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAUvB"}