@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.
- package/AGENTS.md +3 -2
- package/README.md +87 -24
- package/dist/research/orchestration.js +318 -14
- package/dist/research/orchestration.js.map +1 -1
- package/dist/research/setup-command.js +13 -1
- package/dist/research/setup-command.js.map +1 -1
- package/dist/research/workspace/acquisition.d.ts +7 -0
- package/dist/research/workspace/acquisition.js +37 -10
- package/dist/research/workspace/acquisition.js.map +1 -1
- package/dist/research/workspace/audit-bundle.d.ts +18 -0
- package/dist/research/workspace/audit-bundle.js +100 -3
- package/dist/research/workspace/audit-bundle.js.map +1 -1
- package/dist/research/workspace/content-evidence.d.ts +98 -0
- package/dist/research/workspace/content-evidence.js +715 -0
- package/dist/research/workspace/content-evidence.js.map +1 -0
- package/dist/research/workspace/evidence-ledger.d.ts +1 -1
- package/dist/research/workspace/evidence-ledger.js +2 -0
- package/dist/research/workspace/evidence-ledger.js.map +1 -1
- package/dist/research/workspace/executor.d.ts +9 -0
- package/dist/research/workspace/executor.js +161 -4
- package/dist/research/workspace/executor.js.map +1 -1
- package/dist/research/workspace/inference.d.ts +69 -0
- package/dist/research/workspace/inference.js +360 -0
- package/dist/research/workspace/inference.js.map +1 -0
- package/dist/research/workspace/native-activity.js +14 -5
- package/dist/research/workspace/native-activity.js.map +1 -1
- package/dist/research/workspace/preflight.d.ts +2 -0
- package/dist/research/workspace/preflight.js +6 -2
- package/dist/research/workspace/preflight.js.map +1 -1
- package/dist/research/workspace/projects.js +17 -1
- package/dist/research/workspace/projects.js.map +1 -1
- package/dist/research/workspace/publication-workflow.d.ts +26 -0
- package/dist/research/workspace/publication-workflow.js +314 -3
- package/dist/research/workspace/publication-workflow.js.map +1 -1
- package/dist/research/workspace/review-executor.d.ts +50 -0
- package/dist/research/workspace/review-executor.js +854 -0
- package/dist/research/workspace/review-executor.js.map +1 -0
- package/dist/research/workspace/runtime.js +194 -45
- package/dist/research/workspace/runtime.js.map +1 -1
- package/dist/research/workspace/schemas.js +83 -4
- package/dist/research/workspace/schemas.js.map +1 -1
- package/dist/research/workspace/scientific-review.js +57 -0
- package/dist/research/workspace/scientific-review.js.map +1 -1
- package/dist/research/workspace/setup-catalog.js +22 -2
- package/dist/research/workspace/setup-catalog.js.map +1 -1
- package/dist/research/workspace/setup-declarative.d.ts +4 -0
- package/dist/research/workspace/setup-declarative.js +16 -1
- package/dist/research/workspace/setup-declarative.js.map +1 -1
- package/dist/research/workspace/setup-wizard.js +46 -3
- package/dist/research/workspace/setup-wizard.js.map +1 -1
- package/dist/research/workspace/setup.d.ts +3 -1
- package/dist/research/workspace/setup.js +77 -19
- package/dist/research/workspace/setup.js.map +1 -1
- package/dist/research/workspace/types.d.ts +43 -1
- package/dist/research/workspace/workspace.js +62 -5
- package/dist/research/workspace/workspace.js.map +1 -1
- 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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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) =>
|
|
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
|
|
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
|
|
2326
|
-
const
|
|
2327
|
-
const
|
|
2328
|
-
if (!isObject(
|
|
2329
|
-
|
|
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
|
-
|
|
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
|
|
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/
|
|
2977
|
+
"outputs/inference-snapshot.json",
|
|
2834
2978
|
"outputs/analysis.json",
|
|
2835
|
-
|
|
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/
|
|
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
|
|
2883
|
-
synthesize: "Use only the complete embedded
|
|
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
|
-
|
|
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({
|