@tiangong-ai/cli 0.0.42 → 0.0.44

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 (57) hide show
  1. package/AGENTS.md +3 -2
  2. package/README.md +87 -24
  3. package/dist/research/orchestration.js +318 -14
  4. package/dist/research/orchestration.js.map +1 -1
  5. package/dist/research/setup-command.js +13 -1
  6. package/dist/research/setup-command.js.map +1 -1
  7. package/dist/research/workspace/acquisition.d.ts +7 -0
  8. package/dist/research/workspace/acquisition.js +37 -10
  9. package/dist/research/workspace/acquisition.js.map +1 -1
  10. package/dist/research/workspace/audit-bundle.d.ts +18 -0
  11. package/dist/research/workspace/audit-bundle.js +100 -3
  12. package/dist/research/workspace/audit-bundle.js.map +1 -1
  13. package/dist/research/workspace/content-evidence.d.ts +98 -0
  14. package/dist/research/workspace/content-evidence.js +715 -0
  15. package/dist/research/workspace/content-evidence.js.map +1 -0
  16. package/dist/research/workspace/evidence-ledger.d.ts +1 -1
  17. package/dist/research/workspace/evidence-ledger.js +2 -0
  18. package/dist/research/workspace/evidence-ledger.js.map +1 -1
  19. package/dist/research/workspace/executor.d.ts +9 -0
  20. package/dist/research/workspace/executor.js +161 -4
  21. package/dist/research/workspace/executor.js.map +1 -1
  22. package/dist/research/workspace/inference.d.ts +69 -0
  23. package/dist/research/workspace/inference.js +360 -0
  24. package/dist/research/workspace/inference.js.map +1 -0
  25. package/dist/research/workspace/native-activity.js +14 -5
  26. package/dist/research/workspace/native-activity.js.map +1 -1
  27. package/dist/research/workspace/preflight.d.ts +2 -0
  28. package/dist/research/workspace/preflight.js +6 -2
  29. package/dist/research/workspace/preflight.js.map +1 -1
  30. package/dist/research/workspace/projects.js +17 -1
  31. package/dist/research/workspace/projects.js.map +1 -1
  32. package/dist/research/workspace/publication-workflow.d.ts +26 -0
  33. package/dist/research/workspace/publication-workflow.js +314 -3
  34. package/dist/research/workspace/publication-workflow.js.map +1 -1
  35. package/dist/research/workspace/review-executor.d.ts +50 -0
  36. package/dist/research/workspace/review-executor.js +854 -0
  37. package/dist/research/workspace/review-executor.js.map +1 -0
  38. package/dist/research/workspace/runtime.js +194 -45
  39. package/dist/research/workspace/runtime.js.map +1 -1
  40. package/dist/research/workspace/schemas.js +83 -4
  41. package/dist/research/workspace/schemas.js.map +1 -1
  42. package/dist/research/workspace/scientific-review.js +57 -0
  43. package/dist/research/workspace/scientific-review.js.map +1 -1
  44. package/dist/research/workspace/setup-catalog.js +22 -2
  45. package/dist/research/workspace/setup-catalog.js.map +1 -1
  46. package/dist/research/workspace/setup-declarative.d.ts +4 -0
  47. package/dist/research/workspace/setup-declarative.js +16 -1
  48. package/dist/research/workspace/setup-declarative.js.map +1 -1
  49. package/dist/research/workspace/setup-wizard.js +46 -3
  50. package/dist/research/workspace/setup-wizard.js.map +1 -1
  51. package/dist/research/workspace/setup.d.ts +3 -1
  52. package/dist/research/workspace/setup.js +77 -19
  53. package/dist/research/workspace/setup.js.map +1 -1
  54. package/dist/research/workspace/types.d.ts +43 -1
  55. package/dist/research/workspace/workspace.js +62 -5
  56. package/dist/research/workspace/workspace.js.map +1 -1
  57. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-executor.js","sourceRoot":"","sources":["../../../src/research/workspace/review-executor.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { basename, dirname, isAbsolute, join, relative, resolve } from "node:pat
4
4
  import { CliError } from "../../errors.js";
5
5
  import { loadCapabilityDeclarations, stageLockedCapabilities, verifyCapabilities, } from "./capabilities.js";
6
6
  import { startCapabilityBroker } from "./broker.js";
7
- import { commitAcquisitionAssessments, freezeEvidenceSnapshot, loadCurrentEvidenceSnapshot, loadImmutableEvidenceSnapshotChain, materializeAcquisitionAudit, parseMaterializedAcquisitionAudit, } from "./acquisition.js";
7
+ import { commitAcquisitionAssessments, freezeEvidenceSnapshot, loadCurrentEvidenceSnapshot, loadInferenceReadyEvidenceSnapshot, loadImmutableEvidenceSnapshotChain, materializeAcquisitionAudit, parseMaterializedAcquisitionAudit, } from "./acquisition.js";
8
8
  import { stageEvidenceArtifacts } from "./artifacts.js";
9
9
  import { commitDiscoveryDecisions, materializeDiscoveryEvidence } from "./discovery.js";
10
10
  import { inspectDiscoveryProgress } from "./discovery-status.js";
@@ -13,8 +13,10 @@ import { parseEvidenceExhaustionHandoff, validateEvidenceExhaustionHandoff, } fr
13
13
  import { loadProjectEvidenceReceipts, stageProjectEvidence } from "./evidence.js";
14
14
  import { appendEvidenceLedgerEvent, evidenceLedgerPath, listEvidenceCandidates, registerProjectInputCandidates, } from "./evidence-ledger.js";
15
15
  import { executeAgent } from "./executor.js";
16
+ import { createReviewExecutor } from "./review-executor.js";
16
17
  import { requiredDiscoveryCapabilityIds } from "./external-skills.js";
17
18
  import { renderInputLineContext } from "./input-plan.js";
19
+ import { freezeClaimEvidenceGraph, freezeInferenceSnapshot, loadCurrentInferenceSnapshot, } from "./inference.js";
18
20
  import { appendJournalEvent, readJournal, verifyJournal } from "./journal.js";
19
21
  import { nativeActivityRecordSchema } from "./native-activity.js";
20
22
  import { calculateAgentCallTokenReservation, RESEARCH_BROKER_MAX_TURNS, RESEARCH_ESTIMATED_BYTES_PER_TOKEN, RESEARCH_MAX_REPAIR_SOURCE_BYTES, RESEARCH_REPAIR_MAX_TURNS, researchStructuredOutputMaxTurns, reservedAgentPackageCost, } from "./preflight.js";
@@ -160,14 +162,14 @@ export const researchHandoffRecordSchema = {
160
162
  },
161
163
  ],
162
164
  };
163
- export async function runResearchWorkspace(root, options, packageExecutor = executeAgent) {
164
- return runResearchWorkspaceInternal(root, options, packageExecutor, false);
165
+ export async function runResearchWorkspace(root, options, packageExecutor) {
166
+ return runResearchWorkspaceInternal(root, options, packageExecutor ?? executeAgent, false, packageExecutor === undefined);
165
167
  }
166
168
  /** @internal Test-only seam for exercising deterministic package admission with fake agents. */
167
169
  export async function runResearchWorkspaceWithInjectedProducerForTesting(root, options, packageExecutor) {
168
- return runResearchWorkspaceInternal(root, options, packageExecutor, true);
170
+ return runResearchWorkspaceInternal(root, options, packageExecutor, true, false);
169
171
  }
170
- async function runResearchWorkspaceInternal(root, options, packageExecutor, allowInjectedProducerForTesting) {
172
+ async function runResearchWorkspaceInternal(root, options, packageExecutor, allowInjectedProducerForTesting, useConfiguredReviewerExecutor) {
171
173
  validateRunOptions(options);
172
174
  const requestId = randomUUID();
173
175
  if (options.dryRun)
@@ -176,6 +178,9 @@ async function runResearchWorkspaceInternal(root, options, packageExecutor, allo
176
178
  await verifyJournal(workspacePaths(root).journal);
177
179
  const config = await loadWorkspaceConfig(root);
178
180
  assertExecutionConfiguration(config);
181
+ const reviewerPackageExecutor = useConfiguredReviewerExecutor
182
+ ? createReviewExecutor({ root, execution: config.reviewerExecution }).execute
183
+ : null;
179
184
  for (const project of await projectsForRun(root, options.projectId)) {
180
185
  await assertProjectPublicationPolicy(root, project);
181
186
  }
@@ -223,7 +228,7 @@ async function runResearchWorkspaceInternal(root, options, packageExecutor, allo
223
228
  if (!selected.length)
224
229
  break;
225
230
  cycles += 1;
226
- const results = await Promise.all(selected.map(({ project, workPackage }) => executeWorkPackage(root, project.id, workPackage.id, config, options, requestId, packageExecutor, doctorAttestation)));
231
+ const results = await Promise.all(selected.map(({ project, workPackage }) => executeWorkPackage(root, project.id, workPackage.id, config, options, requestId, packageExecutor, reviewerPackageExecutor, doctorAttestation)));
227
232
  executed.push(...results);
228
233
  }
229
234
  const result = await summarizeRun(root, requestId, cycles, executed, options.maxCycles, options.projectId);
@@ -234,6 +239,22 @@ async function runResearchWorkspaceInternal(root, options, packageExecutor, allo
234
239
  return result;
235
240
  });
236
241
  }
242
+ function capsuleDispositionForHost(hostAgent) {
243
+ return hostAgent === "workbuddy" || hostAgent === "codebuddy"
244
+ ? "retained-outer-sandbox"
245
+ : "deleted";
246
+ }
247
+ function nativeCapsuleDisposition(session) {
248
+ return capsuleDispositionForHost(session.packet.hostAgent);
249
+ }
250
+ async function releaseNativeStageSession(root, projectId, session) {
251
+ const disposition = nativeCapsuleDisposition(session);
252
+ await rm(nativeStageSessionPath(root, projectId), { force: true });
253
+ if (disposition === "deleted") {
254
+ await rm(session.capsuleRoot, { recursive: true, force: true });
255
+ }
256
+ return disposition;
257
+ }
237
258
  export async function inspectNativeResearchStage(root, project) {
238
259
  const path = nativeStageSessionPath(root, project.id);
239
260
  if (!(await pathExists(path))) {
@@ -314,7 +335,11 @@ export async function prepareNativeResearchStage(input) {
314
335
  await registerProjectInputCandidates(input.root, project.id, project.inputs);
315
336
  }
316
337
  if (input.stage === "analyze" || input.stage === "synthesize") {
317
- await loadCurrentEvidenceSnapshot(input.root, project.id);
338
+ await loadInferenceReadyEvidenceSnapshot(input.root, project.id);
339
+ if (input.stage === "analyze")
340
+ await freezeInferenceSnapshot(input.root, project.id);
341
+ else
342
+ await loadCurrentInferenceSnapshot(input.root, project.id);
318
343
  }
319
344
  if (config.mode === "production-research" &&
320
345
  config.budget.maxCostUsd > config.budget.confirmationCostUsd &&
@@ -753,7 +778,7 @@ export async function submitNativeResearchStage(input) {
753
778
  details: { state: project.handoff.state, reasonCode: project.handoff.reasonCode },
754
779
  });
755
780
  }
756
- await assertNoUnresolvedNativeChallenge(input.root, project.id);
781
+ await assertNoUnresolvedNativeChallenge(input.root, project.id, session.packet.stage, raw);
757
782
  const workPackage = packageById(project, session.packet.packageId);
758
783
  if (workPackage.status !== "running" || workPackage.executor !== "producer") {
759
784
  throw new CliError("The bound native producer package is no longer running.", {
@@ -795,6 +820,11 @@ export async function submitNativeResearchStage(input) {
795
820
  await freezeEvidenceSnapshot(input.root, project);
796
821
  outputs.push(await fileRecord(join(projectRoot(input.root, project.id), "outputs", "evidence-snapshot.json"), "outputs/evidence-snapshot.json"));
797
822
  }
823
+ if (workPackage.stage === "analyze") {
824
+ const analysis = JSON.parse(await readFile(join(projectRoot(input.root, project.id), "outputs", "analysis.json"), "utf8"));
825
+ await freezeClaimEvidenceGraph(input.root, project.id, analysis);
826
+ outputs.push(await fileRecord(join(projectRoot(input.root, project.id), "outputs", "claim-evidence-graph.json"), "outputs/claim-evidence-graph.json"));
827
+ }
798
828
  await commitStageEvidenceBindings(input.root, project, workPackage);
799
829
  applyUsage(project, result);
800
830
  workPackage.status = "complete";
@@ -828,6 +858,7 @@ export async function submitNativeResearchStage(input) {
828
858
  accountingMode: "reserved-native-host",
829
859
  });
830
860
  const usage = { ...usageSlice(result), accountingMode: "reserved-native-host" };
861
+ const capsuleDisposition = nativeCapsuleDisposition(session);
831
862
  await appendJournalEvent(workspacePaths(input.root).journal, "native.stage.completed", project.id, {
832
863
  sessionId: session.packet.sessionId,
833
864
  packetSha256: session.packet.packetSha256,
@@ -836,9 +867,10 @@ export async function submitNativeResearchStage(input) {
836
867
  stage: workPackage.stage,
837
868
  outputs,
838
869
  usage,
870
+ capsuleDisposition,
871
+ retainedCapsuleId: capsuleDisposition === "retained-outer-sandbox" ? basename(session.capsuleRoot) : null,
839
872
  });
840
- await rm(nativeStageSessionPath(input.root, project.id), { force: true });
841
- await rm(session.capsuleRoot, { recursive: true, force: true });
873
+ await releaseNativeStageSession(input.root, project.id, session);
842
874
  return {
843
875
  projectId: project.id,
844
876
  packageId: workPackage.id,
@@ -858,7 +890,7 @@ export async function submitNativeResearchStage(input) {
858
890
  }
859
891
  });
860
892
  }
861
- async function assertNoUnresolvedNativeChallenge(root, projectId) {
893
+ async function assertNoUnresolvedNativeChallenge(root, projectId, stage, rawOutput) {
862
894
  const events = await readJournal(evidenceLedgerPath(root, projectId));
863
895
  const lastChallengeIndex = events.findLastIndex((event) => event.type === "activity.recorded" &&
864
896
  event.payload.status === "blocked" &&
@@ -867,6 +899,11 @@ async function assertNoUnresolvedNativeChallenge(root, projectId) {
867
899
  return;
868
900
  const lastResolutionIndex = events.findLastIndex((event) => event.type === "handoff.resolved");
869
901
  if (lastResolutionIndex < lastChallengeIndex) {
902
+ if (stage === "acquire") {
903
+ const output = parseStructuredStageOutput("acquire", rawOutput).value;
904
+ if (Array.isArray(output.gaps) && output.gaps.length > 0)
905
+ return;
906
+ }
870
907
  throw new CliError("A login, MFA, CAPTCHA, paywall, security, or authorization challenge requires a durable user handoff before stage submission.", {
871
908
  code: "RESEARCH_PROJECT_HANDOFF_REQUIRED",
872
909
  exitCode: 3,
@@ -904,9 +941,12 @@ export async function abortNativeResearchStage(input) {
904
941
  projectId: project.id,
905
942
  packageId: workPackage.id,
906
943
  stage: workPackage.stage,
944
+ capsuleDisposition: nativeCapsuleDisposition(session),
945
+ retainedCapsuleId: nativeCapsuleDisposition(session) === "retained-outer-sandbox"
946
+ ? basename(session.capsuleRoot)
947
+ : null,
907
948
  });
908
- await rm(nativeStageSessionPath(input.root, project.id), { force: true });
909
- await rm(session.capsuleRoot, { recursive: true, force: true });
949
+ await releaseNativeStageSession(input.root, project.id, session);
910
950
  return {
911
951
  projectId: project.id,
912
952
  packageId: workPackage.id,
@@ -988,12 +1028,15 @@ export async function requestResearchHandoff(input) {
988
1028
  requestedAt,
989
1029
  interruptedSessionId: session?.packet.sessionId ?? null,
990
1030
  interruptedPackageId: session?.packet.packageId ?? null,
1031
+ capsuleDisposition: session ? nativeCapsuleDisposition(session) : null,
1032
+ retainedCapsuleId: session && nativeCapsuleDisposition(session) === "retained-outer-sandbox"
1033
+ ? basename(session.capsuleRoot)
1034
+ : null,
991
1035
  };
992
1036
  await appendEvidenceLedgerEvent(input.root, project.id, "handoff.requested", eventPayload);
993
1037
  await appendJournalEvent(workspacePaths(input.root).journal, "project.handoff.requested", project.id, { projectId: project.id, ...eventPayload });
994
1038
  if (session) {
995
- await rm(activePath, { force: true });
996
- await rm(session.capsuleRoot, { recursive: true, force: true });
1039
+ await releaseNativeStageSession(input.root, project.id, session);
997
1040
  }
998
1041
  return {
999
1042
  projectId: project.id,
@@ -1115,7 +1158,7 @@ function parseHandoffRequest(value) {
1115
1158
  accessRequests,
1116
1159
  };
1117
1160
  }
1118
- async function executeWorkPackage(root, projectId, packageId, config, options, requestId, packageExecutor, doctorAttestation) {
1161
+ async function executeWorkPackage(root, projectId, packageId, config, options, requestId, packageExecutor, reviewerPackageExecutor, doctorAttestation) {
1119
1162
  const project = await loadProject(root, projectId);
1120
1163
  const workPackage = packageById(project, packageId);
1121
1164
  await assertScientificGateForStage(root, project, workPackage.stage);
@@ -1141,6 +1184,8 @@ async function executeWorkPackage(root, projectId, packageId, config, options, r
1141
1184
  const runId = randomUUID();
1142
1185
  const startedAt = new Date().toISOString();
1143
1186
  let capsuleRoot;
1187
+ let capsuleDisposition = null;
1188
+ let retainedCapsuleId = null;
1144
1189
  let broker;
1145
1190
  let accountedResult;
1146
1191
  let promotedOutputs = [];
@@ -1154,7 +1199,11 @@ async function executeWorkPackage(root, projectId, packageId, config, options, r
1154
1199
  }
1155
1200
  else {
1156
1201
  if (["analyze", "synthesize", "review"].includes(workPackage.stage)) {
1157
- await loadCurrentEvidenceSnapshot(root, project.id);
1202
+ await loadInferenceReadyEvidenceSnapshot(root, project.id);
1203
+ if (workPackage.stage === "analyze")
1204
+ await freezeInferenceSnapshot(root, project.id);
1205
+ else
1206
+ await loadCurrentInferenceSnapshot(root, project.id);
1158
1207
  }
1159
1208
  const discovery = workPackage.stage === "discover"
1160
1209
  ? await inspectDiscoveryProgress(root, project, config)
@@ -1163,6 +1212,9 @@ async function executeWorkPackage(root, projectId, packageId, config, options, r
1163
1212
  const reservation = reservePackageBudget(project, workPackage, config, discovery?.plan.reservedDiscoverTokens);
1164
1213
  const capsule = await createCapsule(root, project, workPackage, runId, config);
1165
1214
  capsuleRoot = capsule.capsuleRoot;
1215
+ capsuleDisposition = capsuleDispositionForHost(config.producer.agent);
1216
+ retainedCapsuleId =
1217
+ capsuleDisposition === "retained-outer-sandbox" ? basename(capsuleRoot) : null;
1166
1218
  if (capsule.reviewPacketRecord) {
1167
1219
  await appendJournalEvent(workspacePaths(root).journal, "review.packet.persisted", projectId, {
1168
1220
  requestId,
@@ -1174,6 +1226,9 @@ async function executeWorkPackage(root, projectId, packageId, config, options, r
1174
1226
  }
1175
1227
  const stageContextContent = await stageContextForPackage(capsule.projectRoot, project, workPackage, config);
1176
1228
  const route = workPackage.executor === "reviewer" ? config.reviewer : config.producer;
1229
+ const selectedPackageExecutor = workPackage.executor === "reviewer" && reviewerPackageExecutor
1230
+ ? reviewerPackageExecutor
1231
+ : packageExecutor;
1177
1232
  executor = route.agent;
1178
1233
  broker =
1179
1234
  workPackage.stage === "discover"
@@ -1203,7 +1258,7 @@ async function executeWorkPackage(root, projectId, packageId, config, options, r
1203
1258
  expectedRuntime: runtimeForRoute(doctorAttestation, route),
1204
1259
  });
1205
1260
  assertPreCallTokenReservation(project, workPackage, config, primaryRequest, 0, true);
1206
- result = await withHeartbeat(packageExecutor(primaryRequest), options, requestId, project, workPackage, config);
1261
+ result = await withHeartbeat(selectedPackageExecutor(primaryRequest), options, requestId, project, workPackage, config);
1207
1262
  accountedResult = result;
1208
1263
  assertExecutorSucceeded(result);
1209
1264
  assertActualPackageBudget(project, workPackage, config, result, stageOutputTokens);
@@ -1237,7 +1292,7 @@ async function executeWorkPackage(root, projectId, packageId, config, options, r
1237
1292
  expectedRuntime: runtimeForRoute(doctorAttestation, route),
1238
1293
  });
1239
1294
  assertPreCallTokenReservation(project, workPackage, config, repairRequest, result.tokens, false);
1240
- const repair = await withHeartbeat(packageExecutor(repairRequest), options, requestId, project, workPackage, config);
1295
+ const repair = await withHeartbeat(selectedPackageExecutor(repairRequest), options, requestId, project, workPackage, config);
1241
1296
  accountedResult = combineExecutionResults(result, repair);
1242
1297
  assertExecutorSucceeded(repair);
1243
1298
  assertActualPackageBudget(project, workPackage, config, accountedResult, stageOutputTokens + config.budget.maxRepairTokens);
@@ -1256,6 +1311,11 @@ async function executeWorkPackage(root, projectId, packageId, config, options, r
1256
1311
  await freezeEvidenceSnapshot(root, project);
1257
1312
  promotedOutputs.push(await fileRecord(join(projectRoot(root, project.id), "outputs", "evidence-snapshot.json"), "outputs/evidence-snapshot.json"));
1258
1313
  }
1314
+ if (workPackage.stage === "analyze") {
1315
+ const analysis = JSON.parse(await readFile(join(projectRoot(root, project.id), "outputs", "analysis.json"), "utf8"));
1316
+ await freezeClaimEvidenceGraph(root, project.id, analysis);
1317
+ promotedOutputs.push(await fileRecord(join(projectRoot(root, project.id), "outputs", "claim-evidence-graph.json"), "outputs/claim-evidence-graph.json"));
1318
+ }
1259
1319
  await commitStageEvidenceBindings(root, project, workPackage);
1260
1320
  }
1261
1321
  const completedAt = new Date().toISOString();
@@ -1288,6 +1348,8 @@ async function executeWorkPackage(root, projectId, packageId, config, options, r
1288
1348
  failureKind: null,
1289
1349
  failureDetails: null,
1290
1350
  runtime: accountedResult.runtime,
1351
+ isolation: accountedResult.isolation,
1352
+ reviewAttestation: accountedResult.reviewAttestation,
1291
1353
  telemetry: accountedResult.telemetry,
1292
1354
  });
1293
1355
  const usage = usageSlice(accountedResult);
@@ -1300,6 +1362,9 @@ async function executeWorkPackage(root, projectId, packageId, config, options, r
1300
1362
  outputs: promotedOutputs,
1301
1363
  usage,
1302
1364
  runtime: accountedResult.runtime,
1365
+ reviewerExecution: accountedResult.reviewAttestation ?? accountedResult.isolation ?? null,
1366
+ capsuleDisposition,
1367
+ retainedCapsuleId,
1303
1368
  });
1304
1369
  emitProgress(options, progressEvent("package.completed", requestId, projectId, packageId, remainingBudget(project, config), { outputs: promotedOutputs, usage }));
1305
1370
  return { projectId, packageId, status: "complete" };
@@ -1348,6 +1413,8 @@ async function executeWorkPackage(root, projectId, packageId, config, options, r
1348
1413
  failureKind: classification.kind,
1349
1414
  failureDetails,
1350
1415
  runtime: accountedResult.runtime,
1416
+ isolation: accountedResult.isolation,
1417
+ reviewAttestation: accountedResult.reviewAttestation,
1351
1418
  telemetry: accountedResult.telemetry,
1352
1419
  });
1353
1420
  }
@@ -1365,6 +1432,8 @@ async function executeWorkPackage(root, projectId, packageId, config, options, r
1365
1432
  details: failureDetails,
1366
1433
  outputs: promotedOutputs,
1367
1434
  usage,
1435
+ capsuleDisposition,
1436
+ retainedCapsuleId,
1368
1437
  });
1369
1438
  emitProgress(options, progressEvent("package.failed", requestId, projectId, packageId, remainingBudget(failedProject, config), {
1370
1439
  retryable,
@@ -1379,8 +1448,9 @@ async function executeWorkPackage(root, projectId, packageId, config, options, r
1379
1448
  finally {
1380
1449
  if (broker)
1381
1450
  await broker.stop();
1382
- if (capsuleRoot)
1451
+ if (capsuleRoot && capsuleDisposition !== "retained-outer-sandbox") {
1383
1452
  await rm(capsuleRoot, { recursive: true, force: true });
1453
+ }
1384
1454
  }
1385
1455
  }
1386
1456
  async function stagePublicationPolicy(root, project, capsuleProject) {
@@ -1611,7 +1681,10 @@ async function writeReviewPacket(root, capsuleProject, project, inputManifest, e
1611
1681
  "outputs/evidence.json",
1612
1682
  "outputs/acquisition.json",
1613
1683
  "outputs/evidence-snapshot.json",
1684
+ "outputs/content-snapshot.json",
1685
+ "outputs/inference-snapshot.json",
1614
1686
  "outputs/analysis.json",
1687
+ "outputs/claim-evidence-graph.json",
1615
1688
  "outputs/report.md",
1616
1689
  ];
1617
1690
  const evidenceFiles = new Map();
@@ -1657,7 +1730,9 @@ async function writeReviewPacket(root, capsuleProject, project, inputManifest, e
1657
1730
  evidenceFiles: [...evidenceFiles.values()].sort((left, right) => left.path.localeCompare(right.path)),
1658
1731
  environment,
1659
1732
  environmentFile: await fileRecord(join(capsuleProject, "inputs", "runtime-fingerprint.json"), "inputs/runtime-fingerprint.json"),
1660
- artifacts: await Promise.all(artifactPaths.map((logicalPath) => fileRecord(resolveContained(capsuleProject, logicalPath), logicalPath))),
1733
+ artifacts: (await Promise.all(artifactPaths.map(async (logicalPath) => (await pathExists(resolveContained(capsuleProject, logicalPath)))
1734
+ ? fileRecord(resolveContained(capsuleProject, logicalPath), logicalPath)
1735
+ : null))).filter((record) => record !== null),
1661
1736
  };
1662
1737
  const packetSha256 = sha256Text(canonicalJson(packet));
1663
1738
  const completePacket = {
@@ -2251,7 +2326,7 @@ async function validateOutputShape(root, project, workPackage, path, reviewPacke
2251
2326
  }
2252
2327
  const { value } = parseStructuredStageOutput(workPackage.stage, content, reviewPacketSha256);
2253
2328
  if (workPackage.stage === "analyze") {
2254
- await validateFindings(path, value.findings);
2329
+ await validateAnalysis(path, value);
2255
2330
  }
2256
2331
  if (workPackage.stage === "review") {
2257
2332
  if (value.decision !== "pass") {
@@ -2322,30 +2397,88 @@ async function validateEvidenceSources(root, project, sources) {
2322
2397
  sourceIds.add(id);
2323
2398
  }
2324
2399
  }
2325
- async function validateFindings(path, findings) {
2326
- const evidencePath = join(dirname(path), "evidence-snapshot.json");
2327
- const evidence = JSON.parse(await readFile(evidencePath, "utf8"));
2328
- if (!isObject(evidence) || !Array.isArray(evidence.sources)) {
2329
- throw deterministicError("Analysis requires a frozen evidence-snapshot.json.");
2400
+ async function validateAnalysis(path, value) {
2401
+ const inferencePath = join(dirname(path), "inference-snapshot.json");
2402
+ const inference = JSON.parse(await readFile(inferencePath, "utf8"));
2403
+ if (!isObject(inference) ||
2404
+ typeof inference.snapshotSha256 !== "string" ||
2405
+ !Array.isArray(inference.sources) ||
2406
+ !Array.isArray(inference.atoms) ||
2407
+ !Array.isArray(inference.claims) ||
2408
+ !Array.isArray(inference.artifactSha256s) ||
2409
+ !Array.isArray(inference.implementationArtifactSha256s) ||
2410
+ !Array.isArray(inference.environmentLockSha256s)) {
2411
+ throw deterministicError("Analysis requires a frozen inference-snapshot.json.");
2330
2412
  }
2331
- const sourceIds = new Set(evidence.sources
2413
+ if (value.inferenceSnapshotSha256 !== inference.snapshotSha256) {
2414
+ throw new StructuredOutputError("Analysis does not bind the current inference snapshot.");
2415
+ }
2416
+ const sourceIds = new Set(inference.sources
2332
2417
  .filter((source) => isObject(source))
2333
2418
  .map((source) => source.id)
2334
2419
  .filter((id) => typeof id === "string"));
2420
+ const atomSources = new Map(inference.atoms.flatMap((atom) => isObject(atom) && typeof atom.atomId === "string" && typeof atom.sourceId === "string"
2421
+ ? [[atom.atomId, atom.sourceId]]
2422
+ : []));
2423
+ const claimIds = new Set(inference.claims.flatMap((claim) => isObject(claim) && typeof claim.id === "string" ? [claim.id] : []));
2424
+ const allowedInputSha256s = new Set(inference.artifactSha256s.filter((sha256) => typeof sha256 === "string"));
2425
+ const allowedImplementationSha256s = new Set(inference.implementationArtifactSha256s.filter((sha256) => typeof sha256 === "string"));
2426
+ const allowedEnvironmentSha256s = new Set(inference.environmentLockSha256s.filter((sha256) => typeof sha256 === "string"));
2427
+ const run = value.analysisRun;
2428
+ if (!isObject(run))
2429
+ throw new StructuredOutputError("Analysis run binding is invalid.");
2430
+ const implementationSha256s = run.implementationSha256s;
2431
+ const environmentSha256s = run.environmentSha256s;
2432
+ const inputArtifactSha256s = run.inputArtifactSha256s;
2433
+ if (implementationSha256s.some((sha256) => !allowedImplementationSha256s.has(sha256)) ||
2434
+ environmentSha256s.some((sha256) => !allowedEnvironmentSha256s.has(sha256)) ||
2435
+ inputArtifactSha256s.some((sha256) => !allowedInputSha256s.has(sha256))) {
2436
+ throw new StructuredOutputError("Analysis run refers to an artifact outside the inference snapshot.");
2437
+ }
2438
+ if (run.mode === "qualitative") {
2439
+ if (run.status !== "not-applicable" ||
2440
+ run.command !== null ||
2441
+ run.randomSeed !== null ||
2442
+ implementationSha256s.length > 0 ||
2443
+ environmentSha256s.length > 0) {
2444
+ throw new StructuredOutputError("Qualitative analysis run metadata is inconsistent.");
2445
+ }
2446
+ }
2447
+ else if (run.status !== "reproduced" ||
2448
+ typeof run.command !== "string" ||
2449
+ run.command.trim().length < 1 ||
2450
+ typeof run.randomSeed !== "string" ||
2451
+ run.randomSeed.trim().length < 1 ||
2452
+ implementationSha256s.length < 1 ||
2453
+ environmentSha256s.length < 1) {
2454
+ throw new StructuredOutputError("Computational analysis requires exact reproduced run metadata.");
2455
+ }
2456
+ const findings = value.findings;
2335
2457
  const findingIds = new Set();
2336
2458
  for (const finding of findings) {
2459
+ const findingEvidence = isObject(finding) && Array.isArray(finding.evidence) ? finding.evidence : [];
2337
2460
  if (!isObject(finding) ||
2338
2461
  typeof finding.id !== "string" ||
2339
2462
  findingIds.has(finding.id) ||
2340
2463
  !Array.isArray(finding.evidence) ||
2341
- finding.evidence.some((id) => typeof id !== "string" || !sourceIds.has(id))) {
2464
+ finding.evidence.some((id) => typeof id !== "string" || !sourceIds.has(id)) ||
2465
+ !Array.isArray(finding.evidenceAtomIds) ||
2466
+ finding.evidenceAtomIds.some((atomId) => typeof atomId !== "string" ||
2467
+ !atomSources.has(atomId) ||
2468
+ !findingEvidence.includes(atomSources.get(atomId))) ||
2469
+ !Array.isArray(finding.claimIds) ||
2470
+ finding.claimIds.some((claimId) => typeof claimId !== "string" || !claimIds.has(claimId))) {
2342
2471
  throw new StructuredOutputError("analyze output contains an invalid or untraceable finding.", {
2343
2472
  validation: [
2344
- "finding IDs must be unique and evidence IDs must reference admitted sources",
2473
+ "finding IDs must be unique; source, atom, and design-claim IDs must bind the inference snapshot",
2345
2474
  ],
2346
2475
  admittedEvidenceIds: [...sourceIds].sort(),
2347
2476
  });
2348
2477
  }
2478
+ if (inference.scientificReview !== null &&
2479
+ (finding.evidenceAtomIds.length < 1 || finding.claimIds.length < 1)) {
2480
+ throw new StructuredOutputError("Top-journal findings require at least one evidence atom and design claim.");
2481
+ }
2349
2482
  findingIds.add(finding.id);
2350
2483
  }
2351
2484
  }
@@ -2723,13 +2856,19 @@ async function commitStageEvidenceBindings(root, project, workPackage) {
2723
2856
  if (!isObject(finding) ||
2724
2857
  typeof finding.id !== "string" ||
2725
2858
  !Array.isArray(finding.evidence) ||
2726
- finding.evidence.some((sourceId) => typeof sourceId !== "string")) {
2859
+ finding.evidence.some((sourceId) => typeof sourceId !== "string") ||
2860
+ !Array.isArray(finding.evidenceAtomIds) ||
2861
+ finding.evidenceAtomIds.some((atomId) => typeof atomId !== "string") ||
2862
+ !Array.isArray(finding.claimIds) ||
2863
+ finding.claimIds.some((claimId) => typeof claimId !== "string")) {
2727
2864
  throw deterministicError("Analysis contains an invalid claim binding.");
2728
2865
  }
2729
2866
  const binding = {
2730
2867
  claimId: finding.id,
2731
2868
  snapshotId: snapshot.snapshotId,
2732
2869
  sourceIds: [...finding.evidence].sort(),
2870
+ atomIds: [...finding.evidenceAtomIds].sort(),
2871
+ designClaimIds: [...finding.claimIds].sort(),
2733
2872
  claimSha256: sha256Text(canonicalJson(finding)),
2734
2873
  };
2735
2874
  const bindingSha256 = sha256Text(canonicalJson(binding));
@@ -2814,6 +2953,16 @@ async function outputRecords(root, project, logicalPaths) {
2814
2953
  return Promise.all(logicalPaths.map((logicalPath) => fileRecord(resolveContained(projectRoot(root, project.id), logicalPath), logicalPath)));
2815
2954
  }
2816
2955
  async function stageContextForPackage(capsuleProject, project, workPackage, config) {
2956
+ let analyzeFallbackContext = [];
2957
+ if (workPackage.stage === "analyze") {
2958
+ const inference = JSON.parse(await readFile(resolveContained(capsuleProject, "outputs/inference-snapshot.json"), "utf8"));
2959
+ if (isObject(inference) &&
2960
+ Array.isArray(inference.atoms) &&
2961
+ inference.atoms.length === 0 &&
2962
+ (await pathExists(resolveContained(capsuleProject, "inputs/evidence-artifact-context.txt")))) {
2963
+ analyzeFallbackContext = ["inputs/evidence-artifact-context.txt"];
2964
+ }
2965
+ }
2817
2966
  const logicalPaths = workPackage.stage === "discover" && project.lineage.kind === "addendum"
2818
2967
  ? ["outputs/base-evidence-snapshot.json"]
2819
2968
  : workPackage.stage === "acquire"
@@ -2822,25 +2971,19 @@ async function stageContextForPackage(capsuleProject, project, workPackage, conf
2822
2971
  ...(project.lineage.kind === "addendum" ? ["outputs/base-evidence-snapshot.json"] : []),
2823
2972
  ]
2824
2973
  : workPackage.stage === "analyze"
2825
- ? [
2826
- "outputs/evidence-snapshot.json",
2827
- ...((await pathExists(resolveContained(capsuleProject, "inputs/evidence-artifact-context.txt")))
2828
- ? ["inputs/evidence-artifact-context.txt"]
2829
- : []),
2830
- ]
2974
+ ? ["outputs/inference-snapshot.json", ...analyzeFallbackContext]
2831
2975
  : workPackage.stage === "synthesize"
2832
2976
  ? [
2833
- "outputs/evidence-snapshot.json",
2977
+ "outputs/inference-snapshot.json",
2834
2978
  "outputs/analysis.json",
2835
- ...((await pathExists(resolveContained(capsuleProject, "inputs/evidence-artifact-context.txt")))
2836
- ? ["inputs/evidence-artifact-context.txt"]
2837
- : []),
2979
+ "outputs/claim-evidence-graph.json",
2838
2980
  ]
2839
2981
  : workPackage.stage === "review"
2840
2982
  ? [
2841
2983
  "inputs/review-evidence-context.txt",
2842
- "outputs/evidence-snapshot.json",
2984
+ "outputs/inference-snapshot.json",
2843
2985
  "outputs/analysis.json",
2986
+ "outputs/claim-evidence-graph.json",
2844
2987
  "outputs/report.md",
2845
2988
  ]
2846
2989
  : [];
@@ -2879,8 +3022,8 @@ function packagePrompt(project, workPackage, inputs, stagedSkills, capabilityDoc
2879
3022
  const stageInstructions = {
2880
3023
  discover: "Assess candidates incrementally through the packet's recordAssessment command; do not accumulate a source-sized final response. The control plane has already assigned every immutable input and broker result a candidateId and retains its title, URL, DOI, dates, receipt, locator, JSON Pointer, hashes, and retrieval metadata. Reference candidateId; never repeat or invent those deterministic fields. Give each admitted candidate a concise sourceId plus source type, relevance, quality, applicability, coverage dimensions, and limitations. Record meaningful explicit rejections; omitted candidates remain unassessed for later gap filling. Native Web or Browser discoveries are supplemental candidates only and cannot be admitted until an immutable broker receipt is attached to the same canonical URL or DOI. After broad search, strict assessment, and focused gap filling, return only the small closeout object with one judgment for every reviewed dimension plus limitations and remaining gaps. The CLI mechanically joins the latest recorded assessments to provenance, derives counts/date range/coverage, and rejects unknown or unformalized candidates.",
2881
3024
  acquire: "Audit every provisionally admitted source exactly once. For each source, bind its ledger candidateId, list only artifactIds returned by the exact artifact registration command, and choose accepted, limited, or rejected with a concise rationale and explicit limitations. A broker receipt is an immutable discovery record but is not full text. Use an empty artifactIds array only when intentionally retaining a source as metadata/abstract evidence or when the source is an already registered local input. Put unresolved blocking acquisition or coverage deficiencies in gaps; put honest non-blocking scope constraints in limitations. Do not invent file paths, hashes, URLs, artifact IDs, or successful downloads.",
2882
- analyze: "Use only the complete embedded frozen evidence snapshot below and return the schema-defined analysis object. Every finding must cite source IDs present in that snapshot and state uncertainty and applicability. When the snapshot has a parent, use its mechanical delta to focus re-analysis on added, changed, and removed evidence while still returning one complete current analysis.",
2883
- synthesize: "Use only the complete embedded admitted evidence and findings below. Return the schema-defined object whose reportMarkdown separates supported conclusions, uncertainty, limitations, and next actions. Use real Markdown line breaks encoded exactly once for JSON; never place literal /n or double-escaped \\n markers in reportMarkdown. When the admitted publication-date range is narrower than the requested range, state the exact admitted range and missing interval prominently in the opening summary.",
3025
+ analyze: "Use only the complete embedded inference snapshot below and return analysis schema v2. Bind the exact inference snapshot hash and one reproducible analysisRun. Every finding must cite admitted source IDs and exact evidenceAtomIds; a top-journal finding must also bind design claimIds. State uncertainty and applicability. Never promote a source-level citation when no exact atom supports the statement.",
3026
+ synthesize: "Use only the complete embedded inference snapshot, analysis, and Claim–Evidence Graph below. Return the schema-defined object whose reportMarkdown separates supported conclusions, uncertainty, limitations, and next actions. Every material statement must remain within a graph-bound finding. Use real Markdown line breaks encoded exactly once for JSON; never place literal /n or double-escaped \\n markers in reportMarkdown.",
2884
3027
  review: `Independently inspect the complete embedded artifacts and globally bounded evidence excerpts. The CLI has already verified every bound full evidence object's size and SHA-256 and persistently stored the complete review packet; its hash is schema-bound even though the packet metadata is not duplicated in model context. Do not claim to have read beyond the embedded excerpts. Return the schema-defined review bound to packetSha256 ${reviewPacketSha256 ?? "unavailable"}. Use pass only when every material claim is traceable within the admitted evidence and clearly scoped to its limitations.`,
2885
3028
  close: "No agent action is allowed for mechanical closure.",
2886
3029
  };
@@ -3176,6 +3319,8 @@ function combineExecutionResults(primary, repair) {
3176
3319
  wallSeconds: primary.wallSeconds + repair.wallSeconds,
3177
3320
  model: repair.model ?? primary.model,
3178
3321
  runtime: repair.runtime ?? primary.runtime,
3322
+ isolation: repair.isolation ?? primary.isolation,
3323
+ reviewAttestation: repair.reviewAttestation ?? primary.reviewAttestation,
3179
3324
  telemetry: mergeTelemetry(primary.telemetry, repair.telemetry),
3180
3325
  };
3181
3326
  }
@@ -3454,9 +3599,13 @@ async function nativeStageBinding(root, project, workPackage) {
3454
3599
  const paths = workspacePaths(root);
3455
3600
  const outputRoot = join(projectRoot(root, project.id), "outputs");
3456
3601
  const outputs = [];
3602
+ const stageOwnedOutputs = new Set(workPackage.expectedOutputs);
3457
3603
  if (await pathExists(outputRoot)) {
3458
3604
  for (const path of await regularTreeFiles(outputRoot)) {
3459
- outputs.push(await fileRecord(path, relative(projectRoot(root, project.id), path).replaceAll("\\", "/")));
3605
+ const logicalPath = relative(projectRoot(root, project.id), path).replaceAll("\\", "/");
3606
+ if (stageOwnedOutputs.has(logicalPath))
3607
+ continue;
3608
+ outputs.push(await fileRecord(path, logicalPath));
3460
3609
  }
3461
3610
  }
3462
3611
  return sha256Text(canonicalJson({