@ccdd/project 6.0.2 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +17 -3
  2. package/dist/src/broker/admission.d.ts +1 -1
  3. package/dist/src/broker/changes.d.ts +3 -0
  4. package/dist/src/broker/changes.js +6 -2
  5. package/dist/src/broker/changes.js.map +1 -1
  6. package/dist/src/broker/coalescing.js +2 -2
  7. package/dist/src/broker/coalescing.js.map +1 -1
  8. package/dist/src/broker/config.js +17 -4
  9. package/dist/src/broker/config.js.map +1 -1
  10. package/dist/src/broker/index.d.ts +17 -1
  11. package/dist/src/broker/index.js +96 -17
  12. package/dist/src/broker/index.js.map +1 -1
  13. package/dist/src/broker/ownership.d.ts +1 -0
  14. package/dist/src/broker/ownership.js +9 -1
  15. package/dist/src/broker/ownership.js.map +1 -1
  16. package/dist/src/broker/readiness.js +2 -1
  17. package/dist/src/broker/readiness.js.map +1 -1
  18. package/dist/src/broker/storage.d.ts +6 -0
  19. package/dist/src/broker/storage.js +1 -0
  20. package/dist/src/broker/storage.js.map +1 -1
  21. package/dist/src/contracts.d.ts +3 -0
  22. package/dist/src/definitions.d.ts +7 -0
  23. package/dist/src/diagnostic-scope.d.ts +5 -0
  24. package/dist/src/diagnostic-scope.js +4 -0
  25. package/dist/src/diagnostic-scope.js.map +1 -0
  26. package/dist/src/execution-scope.d.ts +7 -0
  27. package/dist/src/execution-scope.js +3 -0
  28. package/dist/src/execution-scope.js.map +1 -0
  29. package/dist/src/executors/launch-host.d.ts +1 -0
  30. package/dist/src/executors/launch-host.js +33 -0
  31. package/dist/src/executors/launch-host.js.map +1 -0
  32. package/dist/src/executors/pi.js +3 -3
  33. package/dist/src/executors/pi.js.map +1 -1
  34. package/dist/src/executors/process.js +22 -3
  35. package/dist/src/executors/process.js.map +1 -1
  36. package/dist/src/monitor/store.js +1 -1
  37. package/dist/src/monitor/store.js.map +1 -1
  38. package/dist/src/offline-guard.d.ts +1 -0
  39. package/dist/src/offline-guard.js +27 -0
  40. package/dist/src/offline-guard.js.map +1 -0
  41. package/dist/src/project/cli.js +36 -15
  42. package/dist/src/project/cli.js.map +1 -1
  43. package/dist/src/project/identity.d.ts +7 -1
  44. package/dist/src/project/identity.js +27 -13
  45. package/dist/src/project/identity.js.map +1 -1
  46. package/dist/src/project/index.d.ts +4 -0
  47. package/dist/src/project/index.js +7 -4
  48. package/dist/src/project/index.js.map +1 -1
  49. package/dist/src/project/load-check-worker.d.ts +1 -0
  50. package/dist/src/project/load-check-worker.js +12 -0
  51. package/dist/src/project/load-check-worker.js.map +1 -0
  52. package/dist/src/project/load-check.d.ts +83 -0
  53. package/dist/src/project/load-check.js +225 -0
  54. package/dist/src/project/load-check.js.map +1 -0
  55. package/dist/src/project/query.js +8 -2
  56. package/dist/src/project/query.js.map +1 -1
  57. package/dist/src/project/store.js +4 -1
  58. package/dist/src/project/store.js.map +1 -1
  59. package/dist/src/project/types.d.ts +7 -0
  60. package/dist/src/provenance.d.ts +24 -0
  61. package/dist/src/provenance.js +83 -0
  62. package/dist/src/provenance.js.map +1 -0
  63. package/dist/src/resources.d.ts +49 -0
  64. package/dist/src/resources.js +306 -0
  65. package/dist/src/resources.js.map +1 -0
  66. package/dist/src/response-schema.js +1 -1
  67. package/dist/src/response-schema.js.map +1 -1
  68. package/dist/src/result-view.d.ts +5 -0
  69. package/dist/src/result-view.js +5 -5
  70. package/dist/src/result-view.js.map +1 -1
  71. package/dist/src/tools/contracts.d.ts +2 -0
  72. package/dist/src/tools/environment.js +30 -8
  73. package/dist/src/tools/environment.js.map +1 -1
  74. package/dist/src/tools/runner.js +10 -3
  75. package/dist/src/tools/runner.js.map +1 -1
  76. package/dist/src/worker-client.d.ts +1 -0
  77. package/dist/src/worker-client.js +6 -3
  78. package/dist/src/worker-client.js.map +1 -1
  79. package/dist/src/worker.js +4 -1
  80. package/dist/src/worker.js.map +1 -1
  81. package/package.json +8 -4
@@ -0,0 +1,225 @@
1
+ import { mkdtemp, mkdir, writeFile, readFile } from 'node:fs/promises';
2
+ import { join, resolve } from 'node:path';
3
+ import { tmpdir } from 'node:os';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { randomUUID } from 'node:crypto';
6
+ import { monitorEventLoopDelay, performance } from 'node:perf_hooks';
7
+ import { fork } from 'node:child_process';
8
+ import { createBroker } from '../broker/index.js';
9
+ import { createReviewTools, describeReviewTools } from '../tools/runner.js';
10
+ import { diagnosticScope } from '../diagnostic-scope.js';
11
+ import { readWorkspaceConfig } from '../broker/config.js';
12
+ import { prepareReviewRequests } from '../requester/index.js';
13
+ import { includedCritics } from './query.js';
14
+ import { validateFinalResult } from '../response-schema.js';
15
+ import { validateArguments } from '../tools/schema.js';
16
+ function distribution(values) {
17
+ const sorted = values.slice().sort((a, b) => a - b);
18
+ return { count: sorted.length, p50: sorted[Math.max(0, Math.ceil(sorted.length * .5) - 1)] ?? 0, p90: sorted[Math.max(0, Math.ceil(sorted.length * .9) - 1)] ?? 0, max: sorted.at(-1) ?? 0 };
19
+ }
20
+ function scenarioSteps(project, criticId) { return project?.scenario.critics?.[criticId] ?? project?.scenario.steps ?? [{ operation: 'observe', args: {} }]; }
21
+ function validateSteps(steps) {
22
+ if (!Array.isArray(steps) || !steps.length || steps.length > 64)
23
+ throw new Error('A load-check scenario requires 1–64 steps.');
24
+ steps.forEach((step, index) => {
25
+ if (!step || typeof step !== 'object' || Object.keys(step).some(key => !['operation', 'tool', 'args', 'argsFrom'].includes(key)))
26
+ throw new Error('Invalid load-check scenario step.');
27
+ if (Number(typeof step.operation === 'string') + Number(typeof step.tool === 'string') !== 1)
28
+ throw new Error('A scenario step selects exactly one operation or tool.');
29
+ if (step.args !== undefined && step.argsFrom !== undefined)
30
+ throw new Error('A scenario step cannot combine args and argsFrom.');
31
+ if (step.argsFrom !== undefined) {
32
+ const ref = step.argsFrom;
33
+ if (!ref || typeof ref !== 'object' || Object.keys(ref).some(key => !['step', 'pointer'].includes(key)) || !Number.isSafeInteger(ref.step) || ref.step < 0 || ref.step >= index || typeof ref.pointer !== 'string' || ref.pointer.length > 1000 || !/^(?:\/(?:[^~]|~[01])*)*$/.test(ref.pointer))
34
+ throw new Error('argsFrom must reference an earlier step with a valid JSON Pointer.');
35
+ }
36
+ });
37
+ }
38
+ function priorArguments(step, results) {
39
+ if (!step.argsFrom)
40
+ return step.args ?? {};
41
+ let value = results[step.argsFrom.step];
42
+ for (const part of step.argsFrom.pointer.split('/').slice(1).map(part => part.replaceAll('~1', '/').replaceAll('~0', '~'))) {
43
+ if (!value || typeof value !== 'object' || !Object.hasOwn(value, part))
44
+ throw new Error(`Missing previous result at step ${step.argsFrom.step} pointer ${step.argsFrom.pointer}.`);
45
+ value = value[part];
46
+ }
47
+ return value;
48
+ }
49
+ /** Real projects remain unchanged; only diagnostic state/output and generated fixtures are isolated. */
50
+ export async function loadCheck({ concurrency = 60, requests = concurrency, processes = 1, outputDir, signal, project, resourceMode = 'isolated' } = {}) {
51
+ for (const [name, value] of Object.entries({ concurrency, requests, processes }))
52
+ if (!Number.isSafeInteger(value) || value < 1 || value > (name === 'processes' ? 16 : 1000))
53
+ throw new Error(`${name} is outside the supported positive integer range.`);
54
+ if (!['isolated', 'shared'].includes(resourceMode))
55
+ throw new Error('resourceMode must be isolated or shared.');
56
+ if (project) {
57
+ validateSteps(project.scenario?.steps);
58
+ for (const steps of Object.values(project.scenario.critics ?? {}))
59
+ validateSteps(steps);
60
+ project = structuredClone({ ...project, repoPath: resolve(project.repoPath) });
61
+ }
62
+ signal?.throwIfAborted();
63
+ const base = resolve(outputDir ?? tmpdir());
64
+ await mkdir(base, { recursive: true });
65
+ const root = await mkdtemp(join(base, 'ccdd-load-check-'));
66
+ const config = join(root, 'config');
67
+ await mkdir(config);
68
+ if (resourceMode === 'isolated')
69
+ await writeFile(join(config, 'resources.json'), JSON.stringify({ defaultProviderCapacity: concurrency }));
70
+ const started = performance.now();
71
+ const workers = await Promise.all(Array.from({ length: processes }, async (_, index) => {
72
+ const workerRoot = processes === 1 ? root : join(root, `process-${index}`);
73
+ await mkdir(workerRoot, { recursive: true });
74
+ const temporaryRoot = join(workerRoot, 'tmp');
75
+ await mkdir(temporaryRoot, { mode: 0o700 });
76
+ return new Promise((resolveResult, reject) => {
77
+ const child = fork(fileURLToPath(new URL('./load-check-worker.js', import.meta.url)), [JSON.stringify({ root: workerRoot, concurrency, requests, project })], {
78
+ execArgv: ['--import', fileURLToPath(new URL('../offline-guard.js', import.meta.url))], stdio: ['ignore', 'ignore', 'pipe', 'ipc'],
79
+ env: { PATH: process.env.PATH, HOME: process.env.HOME, NODE_NO_WARNINGS: '1', TMPDIR: temporaryRoot, TMP: temporaryRoot, TEMP: temporaryRoot, CCDD_OFFLINE_GUARD_LOG: join(workerRoot, 'guard.jsonl'),
80
+ ...(resourceMode === 'isolated' ? { CCDD_STATE_HOME: join(root, 'machine'), CCDD_CONFIG_HOME: config } : Object.fromEntries(['CCDD_STATE_HOME', 'CCDD_CONFIG_HOME', 'XDG_CONFIG_HOME'].flatMap(key => process.env[key] ? [[key, process.env[key]]] : []))) },
81
+ });
82
+ let result, stderr = '';
83
+ child.stderr?.on('data', data => { stderr = (stderr + data).slice(-4000); });
84
+ child.on('message', value => { result = value; });
85
+ const abort = () => child.kill('SIGTERM');
86
+ signal?.addEventListener('abort', abort, { once: true });
87
+ child.on('error', error => { signal?.removeEventListener('abort', abort); reject(error); });
88
+ child.on('exit', code => { signal?.removeEventListener('abort', abort); if (signal?.aborted)
89
+ reject(signal.reason);
90
+ else if (code || !result)
91
+ reject(new Error(`Offline load check failed: ${stderr}`));
92
+ else
93
+ resolveResult(result); });
94
+ if (signal?.aborted)
95
+ abort();
96
+ });
97
+ }));
98
+ if (processes === 1)
99
+ return { ...workers[0], resourceMode, processes };
100
+ const elapsedMs = performance.now() - started, completed = workers.reduce((sum, worker) => sum + worker.completed, 0);
101
+ const report = { diagnosticOnly: true, resourceMode, processes, requestedConcurrency: concurrency, completed, elapsedMs, throughputPerSecond: completed / (elapsedMs / 1000),
102
+ status: workers.every(worker => worker.status === 'GREEN') ? 'GREEN' : 'ERROR', workers, output: join(root, 'report.json') };
103
+ await writeFile(report.output, JSON.stringify(report, null, 2) + '\n');
104
+ return report;
105
+ }
106
+ export async function runDiagnostic({ root, concurrency, requests, project }) {
107
+ if (Reflect.get(globalThis, Symbol.for('ccdd.offline-guard')) !== true)
108
+ throw new Error('Offline diagnostics require the process guard.');
109
+ let networkBlocked = false, providerBlocked = false;
110
+ try {
111
+ await fetch('https://example.invalid');
112
+ }
113
+ catch {
114
+ networkBlocked = true;
115
+ }
116
+ try {
117
+ await import('@earendil-works/pi-ai');
118
+ }
119
+ catch {
120
+ providerBlocked = true;
121
+ }
122
+ if (!networkBlocked || !providerBlocked)
123
+ throw new Error('Offline driver guard self-check failed.');
124
+ const guard = fileURLToPath(new URL('../offline-guard.js', import.meta.url));
125
+ return diagnosticScope.run({ guard }, async () => {
126
+ const repoPath = project?.repoPath ?? join(root, 'fixture'), stateDir = join(root, 'diagnostic-state');
127
+ if (!project) {
128
+ await mkdir(repoPath);
129
+ const name = `diagnostic-${randomUUID()}`, profile = { kind: 'agent', provider: '$offline', model: 'synthetic', reasoning: 'none' };
130
+ await writeFile(join(repoPath, 'ccdd.json'), JSON.stringify({ name, views: { agentTools: { observe: { metadata: { description: 'Read a synthetic diagnostic fixture.', inputSchema: { type: 'object', properties: {}, additionalProperties: false }, resultKinds: ['text'], observation: 'content' }, script: { command: 'node', args: ['tool.mjs'] } } } }, critics: Array.from({ length: requests }, (_, i) => ({ id: `load-${i}`, title: 'Offline diagnostic only', profile, payload: { instruction: 'Synthetic load-check fixture; not review evidence.' } })) }));
131
+ await writeFile(join(repoPath, 'tool.mjs'), `if(Reflect.get(globalThis,Symbol.for('ccdd.offline-guard'))!==true)throw Error('missing child guard');for await(const chunk of process.stdin){};console.log(JSON.stringify({content:[{type:'text',text:'Guarded synthetic fixture'}],observation:{kind:'content'}}));`);
132
+ }
133
+ // Static validation precedes owner identities and all registered tool invocation.
134
+ const { config } = await readWorkspaceConfig(repoPath);
135
+ const ids = includedCritics({ config }, project?.selection ?? { kind: 'all' }, project?.recursive ?? false);
136
+ if (!ids.length)
137
+ throw new Error('Load-check selection has no Critics.');
138
+ for (const id of ids) {
139
+ const critic = config.critics.find(critic => critic.id === id);
140
+ if (critic.profile.kind !== 'agent')
141
+ throw new Error(`Load-check real-tool scenarios require Agent Critics: ${id}`);
142
+ const envelope = (await prepareReviewRequests({ repoPath, repoId: 'diagnostic', snapshotHash: '0'.repeat(64), criticId: id, preparedConfig: config }))[0];
143
+ validateFinalResult(project?.scenario.criticResults?.[id] ?? project?.scenario.syntheticResult ?? { verdict: 'GREEN' }, envelope);
144
+ const tools = describeReviewTools({ ...envelope, audience: 'agent' }), steps = scenarioSteps(project, id);
145
+ validateSteps(steps);
146
+ for (const step of steps) {
147
+ const name = step.tool ?? `${step.operation}_${critic.target}`, tool = tools.find(tool => tool.name === name);
148
+ if (!tool)
149
+ throw new Error(`Unknown registered scenario tool ${name} for ${id}.`);
150
+ if (!step.argsFrom)
151
+ validateArguments(tool.inputSchema, step.args ?? {});
152
+ }
153
+ }
154
+ let active = 0, maxActive = 0, completed = 0;
155
+ const latencies = [];
156
+ const broker = createBroker({ detail: 'full', repoPath, stateDir, executors: {
157
+ canExecute: () => ({ ok: true }), async execute(request, context) {
158
+ active++;
159
+ maxActive = Math.max(maxActive, active);
160
+ let registry;
161
+ try {
162
+ registry = await createReviewTools({ ...request, ...context, audience: 'agent' });
163
+ const results = [];
164
+ for (const step of scenarioSteps(project, request.criticId)) {
165
+ const name = step.tool ?? `${step.operation}_${request.target}`, args = priorArguments(step, results);
166
+ registry.validateArguments(name, args);
167
+ const started = performance.now();
168
+ const result = await registry.call(name, args);
169
+ latencies.push(performance.now() - started);
170
+ if (result.isError)
171
+ throw new Error(`Diagnostic tool failed: ${name}`);
172
+ results.push(result);
173
+ }
174
+ completed++;
175
+ return { ...(project?.scenario.criticResults?.[request.criticId] ?? project?.scenario.syntheticResult ?? { verdict: 'GREEN' }), toolCalls: registry.toolCalls };
176
+ }
177
+ finally {
178
+ await registry?.close();
179
+ active--;
180
+ }
181
+ },
182
+ } });
183
+ const loop = monitorEventLoopDelay({ resolution: 10 });
184
+ loop.enable();
185
+ const started = performance.now();
186
+ try {
187
+ const run = await broker.submitProject({ selection: project?.selection ?? { kind: 'all' }, recursive: project?.recursive, ignoreGates: project?.ignoreGates, force: true, maxExecutions: ids.length });
188
+ let cursor = 0, changeCount = 0;
189
+ const terminalChanges = new Map();
190
+ const drain = () => { for (;;) {
191
+ const page = broker.changes(run.id, { after: cursor, limit: 100 });
192
+ for (const change of page.changes) {
193
+ changeCount++;
194
+ terminalChanges.set(change.requestId, change.status);
195
+ }
196
+ cursor = page.cursor;
197
+ if (!page.hasMore)
198
+ break;
199
+ } };
200
+ const unsubscribe = broker.onChange(drain);
201
+ try {
202
+ drain();
203
+ await broker.run(run.id);
204
+ drain();
205
+ }
206
+ finally {
207
+ unsubscribe();
208
+ }
209
+ const final = broker.getRun(run.id);
210
+ const elapsedMs = performance.now() - started;
211
+ const proofs = (await readFile(join(root, 'guard.jsonl'), 'utf8')).trim().split('\n').filter(Boolean).map(line => JSON.parse(line));
212
+ const report = { diagnosticOnly: true, temporaryRoot: tmpdir(), realProject: !!project, changeCursor: cursor, changeCount, terminalChanges: Object.fromEntries(terminalChanges), requestedConcurrency: concurrency, requests: ids.length, completed, maxActive, toolLatencyMs: distribution(latencies), eventLoopMaxMs: loop.max / 1e6,
213
+ elapsedMs, throughputPerSecond: completed / (elapsedMs / 1000), status: final.status, errors: final.requests.filter(request => request.error).map(request => ({ criticId: request.criticId, error: request.error, code: request.errorCode })),
214
+ providerGuard: { driverNetworkBlocked: networkBlocked, driverProviderImportBlocked: providerBlocked, guardedToolCalls: latencies.length, guardedNodeProcesses: proofs.length, proofFile: join(root, 'guard.jsonl'), scope: 'Node module imports and standard network APIs in driver, identity and tool Node children; not an OS sandbox or arbitrary native executable network isolation' },
215
+ stateDir, runId: run.id, output: join(root, 'report.json') };
216
+ await writeFile(report.output, JSON.stringify(report, null, 2) + '\n');
217
+ return report;
218
+ }
219
+ finally {
220
+ loop.disable();
221
+ await broker.close();
222
+ }
223
+ });
224
+ }
225
+ //# sourceMappingURL=load-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-check.js","sourceRoot":"","sources":["../../../src/project/load-check.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,12 @@ import { createGraphDefinition } from '../broker/graph.js';
3
3
  import { dependencyClosure } from '../artifacts/scope.js';
4
4
  export function selectedCritics(snapshot, selection) {
5
5
  const config = snapshot.config;
6
+ if (selection.kind === 'critics' || selection.kind === 'artifacts') {
7
+ const ids = selection.kind === 'critics' ? selection.criticIds : selection.artifactIds;
8
+ if (!Array.isArray(ids) || !ids.length || ids.some(id => typeof id !== 'string'))
9
+ throw new Error('Multi-root selection requires a nonempty array of IDs.');
10
+ return [...new Set(ids.flatMap(id => selectedCritics(snapshot, selection.kind === 'critics' ? { kind: 'critic', criticId: id } : { kind: 'artifact', artifactId: id })))];
11
+ }
6
12
  if (selection.kind === 'all')
7
13
  return config.critics.map(c => c.id);
8
14
  if (selection.kind === 'critic') {
@@ -16,7 +22,7 @@ export function selectedCritics(snapshot, selection) {
16
22
  }
17
23
  export function requiredArtifacts(snapshot, selection) {
18
24
  selectedCritics(snapshot, selection);
19
- const roots = selection.kind === 'all' ? Object.keys(snapshot.config.artifacts) : selection.kind === 'artifact' ? [selection.artifactId] : [snapshot.config.critics.find(c => c.id === selection.criticId).target];
25
+ const roots = selection.kind === 'all' ? Object.keys(snapshot.config.artifacts) : selection.kind === 'artifact' ? [selection.artifactId] : selection.kind === 'artifacts' ? selection.artifactIds : selectedCritics(snapshot, selection).map(id => snapshot.config.critics.find(c => c.id === id).target);
20
26
  return dependencyClosure(snapshot.config.relations, roots);
21
27
  }
22
28
  export function includedCritics(snapshot, selection, recursive) {
@@ -84,7 +90,7 @@ export function queryProject(snapshot, history, options = {}) {
84
90
  return { id, title: definition.title, target: definition.target, deps: [...definition.deps], status, isStale: status !== 'PASS', needsReview: !evidence,
85
91
  canExecute: !evidence && !attempt, blockedBy: [], reason, input, result: evidence, requestId: attempt?.id ?? null };
86
92
  });
87
- if (!options.ignoreGates) {
93
+ if (!(options.ignoreGates ?? snapshot.config.reviewPolicy?.dependencyGates === 'ignore')) {
88
94
  const gates = criticGates(snapshot);
89
95
  const original = new Map(critics.map(c => [c.id, c.status]));
90
96
  const byId = new Map(critics.map(c => [c.id, c]));
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/project/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/project/query.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { diagnosticScope } from '../diagnostic-scope.js';
1
2
  import { records } from '../broker/storage.js';
2
3
  import { assertStateFormat } from '../state-format.js';
3
4
  import { semanticResult } from '../response-schema.js';
@@ -21,7 +22,7 @@ export function readEvidence(database, runId) {
21
22
  throw new Error('Stored result/status mismatch.');
22
23
  if (input.version !== 3 || !/^[a-f0-9]{64}$/.test(input.key))
23
24
  return [];
24
- return [{ requestId: header.id, runId: header.runId, criticId: header.criticId, input, completedAt: header.completedAt, verdict: result.verdict, result: semanticResult(result) }];
25
+ return [{ executionProvenance: header.executionProvenance ?? null, requestId: header.id, runId: header.runId, criticId: header.criticId, input, completedAt: header.completedAt, verdict: result.verdict, result: semanticResult(result) }];
25
26
  });
26
27
  }
27
28
  /** Existing databases only; no migrations, ownership reconciliation or write connection. */
@@ -34,6 +35,8 @@ export function withProjectStore(stateDir, read, empty) {
34
35
  try {
35
36
  database.exec('BEGIN');
36
37
  assertStateFormat(database);
38
+ if (!diagnosticScope.getStore() && database.prepare("SELECT value FROM metadata WHERE key='diagnostic-only'").get())
39
+ throw new Error('Offline diagnostic state cannot supply review evidence.');
37
40
  const result = read(database);
38
41
  database.exec('COMMIT');
39
42
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/project/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/project/store.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,12 @@ export type ProjectSelection = {
7
7
  } | {
8
8
  kind: 'critic';
9
9
  criticId: string;
10
+ } | {
11
+ kind: 'critics';
12
+ criticIds: string[];
13
+ } | {
14
+ kind: 'artifacts';
15
+ artifactIds: string[];
10
16
  };
11
17
  export interface ValidationInput {
12
18
  version: 3;
@@ -39,6 +45,7 @@ export interface ProjectSnapshot {
39
45
  workspaceIntegrity?: WorkspaceIntegrity;
40
46
  }
41
47
  export interface ValidationEvidence {
48
+ executionProvenance?: import('../provenance.js').ExecutionProvenance | null;
42
49
  requestId: string;
43
50
  runId: string;
44
51
  criticId: string;
@@ -0,0 +1,24 @@
1
+ import type { ReviewRequest } from './contracts.js';
2
+ export interface ExecutionProvenance {
3
+ attemptId: string;
4
+ capturedAt: string;
5
+ binding: 'declared-runtime-pin';
6
+ inputs: {
7
+ path: string;
8
+ structuralSha256: string;
9
+ }[];
10
+ files: {
11
+ path: string;
12
+ rawContentSha256: string;
13
+ executable: number;
14
+ }[];
15
+ }
16
+ /** Pin only declared runtime material, never the reviewed workspace. Equal captures share immutable content-addressed storage. */
17
+ export declare function captureExecution(request: ReviewRequest, attemptId: string, signal?: AbortSignal): Promise<{
18
+ root: string;
19
+ paths: string[];
20
+ provenance: ExecutionProvenance;
21
+ verify: () => Promise<void>;
22
+ } | null>;
23
+ /** Fixed command/argv paths inside a declaration bind to its captured runtime tree. */
24
+ export declare function pinnedArgument(argument: string, cwd: string, workspace: string, root: string, declarations: readonly string[]): string;
@@ -0,0 +1,83 @@
1
+ import { createHash, randomUUID } from 'node:crypto';
2
+ import { createReadStream } from 'node:fs';
3
+ import { cp, lstat, mkdir, readdir, realpath, rename, rm } from 'node:fs/promises';
4
+ import { dirname, join, relative, resolve, sep } from 'node:path';
5
+ import { hashExecutionInputs } from './tools/inputs.js';
6
+ import { scopedPath } from './tools/paths.js';
7
+ import { resourcePaths } from './resources.js';
8
+ async function files(root, paths, signal) {
9
+ const output = new Map();
10
+ const walk = async (name) => {
11
+ signal?.throwIfAborted();
12
+ const target = join(root, name), stat = await lstat(target);
13
+ if (stat.isDirectory()) {
14
+ for (const child of (await readdir(target)).sort())
15
+ await walk(`${name}/${child}`);
16
+ }
17
+ else if (stat.isFile()) {
18
+ const digest = createHash('sha256');
19
+ for await (const data of createReadStream(target, { signal }))
20
+ digest.update(data);
21
+ output.set(name, { path: name, rawContentSha256: digest.digest('hex'), executable: stat.mode & 0o111 });
22
+ }
23
+ // Internal symlinks are represented by the structural digest, not mislabeled as files.
24
+ };
25
+ for (const name of paths)
26
+ await walk(name);
27
+ return [...output.values()].sort((a, b) => a.path.localeCompare(b.path, 'en'));
28
+ }
29
+ const changed = () => Object.assign(new Error('Declared runtime changed while capturing or executing pinned bytes.'), { code: 'WORKSPACE_RUNTIME_CHANGED' });
30
+ /** Pin only declared runtime material, never the reviewed workspace. Equal captures share immutable content-addressed storage. */
31
+ export async function captureExecution(request, attemptId, signal) {
32
+ signal?.throwIfAborted();
33
+ const declared = request.configManifest.executionInputs ?? [];
34
+ const paths = declared.map(input => input.path).sort();
35
+ if (!paths.length)
36
+ return null;
37
+ const source = await realpath(request.worktreePath);
38
+ const expected = await hashExecutionInputs(source, paths, signal);
39
+ if (JSON.stringify(expected) !== JSON.stringify([...declared].sort((a, b) => a.path < b.path ? -1 : a.path > b.path ? 1 : 0).map(input => ({ path: input.path, hash: input.hash }))))
40
+ throw changed();
41
+ const key = createHash('sha256').update(JSON.stringify(expected)).digest('hex');
42
+ const directory = join(dirname(resourcePaths().database), 'runtime-content');
43
+ await mkdir(directory, { recursive: true, mode: 0o700 });
44
+ const root = join(directory, key), temporary = join(directory, `capture-${randomUUID()}`);
45
+ if (!(await lstat(root).catch(error => { if (error.code === 'ENOENT')
46
+ return null; throw error; }))) {
47
+ await mkdir(temporary, { mode: 0o700 });
48
+ try {
49
+ for (const name of paths.filter(name => !paths.some(parent => parent !== name && name.startsWith(`${parent}/`)))) {
50
+ const target = join(temporary, name);
51
+ await mkdir(dirname(target), { recursive: true });
52
+ await cp(await scopedPath(source, name), target, { recursive: true, dereference: false, verbatimSymlinks: true, preserveTimestamps: true });
53
+ }
54
+ if (JSON.stringify(await hashExecutionInputs(temporary, paths, signal)) !== JSON.stringify(expected))
55
+ throw changed();
56
+ try {
57
+ await rename(temporary, root);
58
+ }
59
+ catch (error) {
60
+ if (!['EEXIST', 'ENOTEMPTY'].includes(error.code ?? ''))
61
+ throw error;
62
+ }
63
+ }
64
+ finally {
65
+ await rm(temporary, { recursive: true, force: true });
66
+ }
67
+ }
68
+ const verify = async () => { if (JSON.stringify(await hashExecutionInputs(root, paths, signal)) !== JSON.stringify(expected))
69
+ throw changed(); };
70
+ await verify();
71
+ const rawFiles = await files(root, paths, signal);
72
+ await verify();
73
+ const provenance = { attemptId, capturedAt: new Date().toISOString(), binding: 'declared-runtime-pin', inputs: expected.map(input => ({ path: input.path, structuralSha256: input.hash })), files: rawFiles };
74
+ return { root, paths, provenance, verify };
75
+ }
76
+ /** Fixed command/argv paths inside a declaration bind to its captured runtime tree. */
77
+ export function pinnedArgument(argument, cwd, workspace, root, declarations) {
78
+ if (!argument || argument.startsWith('-'))
79
+ return argument;
80
+ const name = relative(workspace, resolve(cwd, argument)).split(sep).join('/');
81
+ return declarations.some(input => name === input || name.startsWith(`${input}/`)) ? join(root, name) : argument;
82
+ }
83
+ //# sourceMappingURL=provenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/provenance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { ExecutionProvenance } from './provenance.js';
2
+ import type { Admission, AdmissionRequest, AdmissionLease } from './broker/admission.js';
3
+ export interface ResourceConfiguration {
4
+ identityCapacity: number;
5
+ defaultProviderCapacity: number;
6
+ providers: Record<string, {
7
+ capacity: number;
8
+ models?: Record<string, number>;
9
+ }>;
10
+ }
11
+ export declare const resourceDefaults: ResourceConfiguration;
12
+ export declare function resourcePaths(): {
13
+ config: string;
14
+ database: string;
15
+ };
16
+ export declare function readResourceConfiguration(): ResourceConfiguration;
17
+ export declare function canonicalRepositoryId(repoPath: string): string;
18
+ export declare function rejectIdentityConcurrency(value: unknown): void;
19
+ export declare function validateIdentityWeight(weight?: number, config?: ResourceConfiguration): number;
20
+ export declare function validateMaxExecutions(value: number | undefined): void;
21
+ export interface ResourceLease extends AdmissionLease {
22
+ token: string;
23
+ started(provenance?: ExecutionProvenance | null): void;
24
+ terminal(): void;
25
+ trackChild(pid: number): () => void;
26
+ }
27
+ /** One machine database is authoritative. No repository store transaction encloses a wait. */
28
+ export declare function openResources(): {
29
+ registerSubmission(id: string, maxExecutions?: number): void;
30
+ budget(id: string): {
31
+ maxExecutions: import("node:sqlite").SQLOutputValue;
32
+ attempts: {
33
+ state: string;
34
+ token: string;
35
+ requestId: string;
36
+ executionProvenance: ExecutionProvenance | null;
37
+ }[];
38
+ } | null;
39
+ acquire: (request: AdmissionRequest & {
40
+ repo: string;
41
+ repoCap?: number;
42
+ identityWeight?: number;
43
+ }, { signal, waiting }: {
44
+ signal: AbortSignal;
45
+ waiting(reason: string): void;
46
+ }) => Promise<ResourceLease>;
47
+ admission(repo: string, repoCap?: number): Admission;
48
+ close(): void;
49
+ };