@tiangong-ai/cli 0.0.61 → 0.0.62

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 (210) hide show
  1. package/AGENTS.md +17 -6
  2. package/README.md +414 -33
  3. package/dist/data/builtins.js +33 -5
  4. package/dist/data/builtins.js.map +1 -1
  5. package/dist/data/catalog.js +46 -0
  6. package/dist/data/catalog.js.map +1 -1
  7. package/dist/data/commands.js +15 -1
  8. package/dist/data/commands.js.map +1 -1
  9. package/dist/data/connectors/airnow-hourly-observations.js +60 -10
  10. package/dist/data/connectors/airnow-hourly-observations.js.map +1 -1
  11. package/dist/data/connectors/epa-eis-records.js +16 -2
  12. package/dist/data/connectors/epa-eis-records.js.map +1 -1
  13. package/dist/data/connectors/gdelt-doc-search.js +54 -18
  14. package/dist/data/connectors/gdelt-doc-search.js.map +1 -1
  15. package/dist/data/connectors/gdelt-file-feeds.js +20 -11
  16. package/dist/data/connectors/gdelt-file-feeds.js.map +1 -1
  17. package/dist/data/connectors/gdelt-web-ngrams.d.ts +2 -0
  18. package/dist/data/connectors/gdelt-web-ngrams.js +350 -0
  19. package/dist/data/connectors/gdelt-web-ngrams.js.map +1 -0
  20. package/dist/data/connectors/gdelt-web-ngrams.schemas.d.ts +188 -0
  21. package/dist/data/connectors/gdelt-web-ngrams.schemas.js +138 -0
  22. package/dist/data/connectors/gdelt-web-ngrams.schemas.js.map +1 -0
  23. package/dist/data/connectors/nasa-firms-fire.js +4 -0
  24. package/dist/data/connectors/nasa-firms-fire.js.map +1 -1
  25. package/dist/data/connectors/open-meteo-air-quality.js +27 -22
  26. package/dist/data/connectors/open-meteo-air-quality.js.map +1 -1
  27. package/dist/data/connectors/open-meteo-air-quality.schemas.d.ts +4 -1
  28. package/dist/data/connectors/open-meteo-air-quality.schemas.js +21 -1
  29. package/dist/data/connectors/open-meteo-air-quality.schemas.js.map +1 -1
  30. package/dist/data/connectors/open-meteo-flood.js +28 -23
  31. package/dist/data/connectors/open-meteo-flood.js.map +1 -1
  32. package/dist/data/connectors/open-meteo-flood.schemas.d.ts +4 -1
  33. package/dist/data/connectors/open-meteo-flood.schemas.js +21 -1
  34. package/dist/data/connectors/open-meteo-flood.schemas.js.map +1 -1
  35. package/dist/data/connectors/open-meteo-historical-weather.js +26 -21
  36. package/dist/data/connectors/open-meteo-historical-weather.js.map +1 -1
  37. package/dist/data/connectors/open-meteo-historical-weather.schemas.d.ts +4 -1
  38. package/dist/data/connectors/open-meteo-historical-weather.schemas.js +21 -1
  39. package/dist/data/connectors/open-meteo-historical-weather.schemas.js.map +1 -1
  40. package/dist/data/connectors/openaq-air-quality.js +50 -12
  41. package/dist/data/connectors/openaq-air-quality.js.map +1 -1
  42. package/dist/data/connectors/openaq-air-quality.schemas.d.ts +0 -4
  43. package/dist/data/connectors/openaq-air-quality.schemas.js +2 -2
  44. package/dist/data/connectors/openaq-air-quality.schemas.js.map +1 -1
  45. package/dist/data/connectors/youtube-public-content.js +76 -6
  46. package/dist/data/connectors/youtube-public-content.js.map +1 -1
  47. package/dist/data/connectors/youtube-public-content.schemas.d.ts +63 -3
  48. package/dist/data/connectors/youtube-public-content.schemas.js +56 -2
  49. package/dist/data/connectors/youtube-public-content.schemas.js.map +1 -1
  50. package/dist/data/contracts.d.ts +22 -1
  51. package/dist/data/runtime/bounded-http.d.ts +2 -0
  52. package/dist/data/runtime/bounded-http.js +221 -59
  53. package/dist/data/runtime/bounded-http.js.map +1 -1
  54. package/dist/data/runtime/execute.d.ts +2 -0
  55. package/dist/data/runtime/execute.js +82 -60
  56. package/dist/data/runtime/execute.js.map +1 -1
  57. package/dist/data/runtime/http-timing.d.ts +15 -0
  58. package/dist/data/runtime/http-timing.js +59 -0
  59. package/dist/data/runtime/http-timing.js.map +1 -0
  60. package/dist/data/runtime/http-transport.d.ts +1 -0
  61. package/dist/data/runtime/http-transport.js +27 -0
  62. package/dist/data/runtime/http-transport.js.map +1 -0
  63. package/dist/data/schemas/catalog.v1.json +46 -0
  64. package/dist/data/schemas/discovery.v1.json +12 -0
  65. package/dist/data/schemas/error.v1.json +1 -0
  66. package/dist/data/schemas/manifest.v1.json +19 -1
  67. package/dist/research/orchestration.js +233 -10
  68. package/dist/research/orchestration.js.map +1 -1
  69. package/dist/research/setup-command.js +37 -6
  70. package/dist/research/setup-command.js.map +1 -1
  71. package/dist/research/workspace/audit-bundle.js +28 -8
  72. package/dist/research/workspace/audit-bundle.js.map +1 -1
  73. package/dist/research/workspace/broker.js +25 -4
  74. package/dist/research/workspace/broker.js.map +1 -1
  75. package/dist/research/workspace/constants.d.ts +1 -0
  76. package/dist/research/workspace/constants.js +1 -0
  77. package/dist/research/workspace/constants.js.map +1 -1
  78. package/dist/research/workspace/content-evidence.d.ts +1 -0
  79. package/dist/research/workspace/content-evidence.js +1 -1
  80. package/dist/research/workspace/content-evidence.js.map +1 -1
  81. package/dist/research/workspace/credentials.js +2 -1
  82. package/dist/research/workspace/credentials.js.map +1 -1
  83. package/dist/research/workspace/data-evidence-adapter.d.ts +71 -0
  84. package/dist/research/workspace/data-evidence-adapter.js +269 -59
  85. package/dist/research/workspace/data-evidence-adapter.js.map +1 -1
  86. package/dist/research/workspace/data-evidence-view.d.ts +58 -0
  87. package/dist/research/workspace/data-evidence-view.js +411 -0
  88. package/dist/research/workspace/data-evidence-view.js.map +1 -0
  89. package/dist/research/workspace/evidence-ledger.js +32 -29
  90. package/dist/research/workspace/evidence-ledger.js.map +1 -1
  91. package/dist/research/workspace/evidence.d.ts +28 -0
  92. package/dist/research/workspace/evidence.js +48 -0
  93. package/dist/research/workspace/evidence.js.map +1 -1
  94. package/dist/research/workspace/executor.d.ts +27 -1
  95. package/dist/research/workspace/executor.js +180 -20
  96. package/dist/research/workspace/executor.js.map +1 -1
  97. package/dist/research/workspace/investigation-attempt.d.ts +159 -0
  98. package/dist/research/workspace/investigation-attempt.js +619 -0
  99. package/dist/research/workspace/investigation-attempt.js.map +1 -0
  100. package/dist/research/workspace/investigation-audit.d.ts +20 -0
  101. package/dist/research/workspace/investigation-audit.js +306 -0
  102. package/dist/research/workspace/investigation-audit.js.map +1 -0
  103. package/dist/research/workspace/investigation-candidate.d.ts +84 -0
  104. package/dist/research/workspace/investigation-candidate.js +156 -0
  105. package/dist/research/workspace/investigation-candidate.js.map +1 -0
  106. package/dist/research/workspace/investigation-certification.d.ts +39 -0
  107. package/dist/research/workspace/investigation-certification.js +152 -0
  108. package/dist/research/workspace/investigation-certification.js.map +1 -0
  109. package/dist/research/workspace/investigation-close.d.ts +47 -0
  110. package/dist/research/workspace/investigation-close.js +153 -0
  111. package/dist/research/workspace/investigation-close.js.map +1 -0
  112. package/dist/research/workspace/investigation-lineage.d.ts +8 -0
  113. package/dist/research/workspace/investigation-lineage.js +10 -0
  114. package/dist/research/workspace/investigation-lineage.js.map +1 -0
  115. package/dist/research/workspace/investigation-observer.d.ts +22 -0
  116. package/dist/research/workspace/investigation-observer.js +122 -0
  117. package/dist/research/workspace/investigation-observer.js.map +1 -0
  118. package/dist/research/workspace/investigation-promotion.d.ts +129 -0
  119. package/dist/research/workspace/investigation-promotion.js +316 -0
  120. package/dist/research/workspace/investigation-promotion.js.map +1 -0
  121. package/dist/research/workspace/investigation-requirements.d.ts +5 -0
  122. package/dist/research/workspace/investigation-requirements.js +32 -0
  123. package/dist/research/workspace/investigation-requirements.js.map +1 -0
  124. package/dist/research/workspace/investigation-resources.d.ts +12 -0
  125. package/dist/research/workspace/investigation-resources.js +78 -0
  126. package/dist/research/workspace/investigation-resources.js.map +1 -0
  127. package/dist/research/workspace/investigation-source-export.d.ts +6 -0
  128. package/dist/research/workspace/investigation-source-export.js +68 -0
  129. package/dist/research/workspace/investigation-source-export.js.map +1 -0
  130. package/dist/research/workspace/investigation-store.d.ts +9 -0
  131. package/dist/research/workspace/investigation-store.js +55 -0
  132. package/dist/research/workspace/investigation-store.js.map +1 -0
  133. package/dist/research/workspace/investigation.d.ts +424 -0
  134. package/dist/research/workspace/investigation.js +716 -0
  135. package/dist/research/workspace/investigation.js.map +1 -0
  136. package/dist/research/workspace/native-process-supervisor.d.ts +1 -0
  137. package/dist/research/workspace/native-process-supervisor.js +97 -0
  138. package/dist/research/workspace/native-process-supervisor.js.map +1 -0
  139. package/dist/research/workspace/native-run.d.ts +79 -6
  140. package/dist/research/workspace/native-run.js +293 -51
  141. package/dist/research/workspace/native-run.js.map +1 -1
  142. package/dist/research/workspace/preflight.d.ts +3 -0
  143. package/dist/research/workspace/preflight.js +11 -6
  144. package/dist/research/workspace/preflight.js.map +1 -1
  145. package/dist/research/workspace/project-authority.js +2 -0
  146. package/dist/research/workspace/project-authority.js.map +1 -1
  147. package/dist/research/workspace/project-budget.d.ts +41 -0
  148. package/dist/research/workspace/project-budget.js +265 -0
  149. package/dist/research/workspace/project-budget.js.map +1 -0
  150. package/dist/research/workspace/project-mutations.d.ts +1 -1
  151. package/dist/research/workspace/project-mutations.js +27 -3
  152. package/dist/research/workspace/project-mutations.js.map +1 -1
  153. package/dist/research/workspace/projects.d.ts +66 -0
  154. package/dist/research/workspace/projects.js +181 -3
  155. package/dist/research/workspace/projects.js.map +1 -1
  156. package/dist/research/workspace/provider-budget.d.ts +3 -0
  157. package/dist/research/workspace/provider-budget.js +45 -0
  158. package/dist/research/workspace/provider-budget.js.map +1 -0
  159. package/dist/research/workspace/provider-state.d.ts +1 -0
  160. package/dist/research/workspace/provider-state.js +20 -0
  161. package/dist/research/workspace/provider-state.js.map +1 -0
  162. package/dist/research/workspace/publication-lineage.d.ts +34 -0
  163. package/dist/research/workspace/publication-lineage.js +165 -0
  164. package/dist/research/workspace/publication-lineage.js.map +1 -0
  165. package/dist/research/workspace/publication-workflow.d.ts +24 -0
  166. package/dist/research/workspace/publication-workflow.js +118 -14
  167. package/dist/research/workspace/publication-workflow.js.map +1 -1
  168. package/dist/research/workspace/review-executor.d.ts +6 -1
  169. package/dist/research/workspace/review-executor.js +17 -3
  170. package/dist/research/workspace/review-executor.js.map +1 -1
  171. package/dist/research/workspace/runtime.d.ts +12 -1
  172. package/dist/research/workspace/runtime.js +143 -19
  173. package/dist/research/workspace/runtime.js.map +1 -1
  174. package/dist/research/workspace/scientific-amendment.d.ts +103 -0
  175. package/dist/research/workspace/scientific-amendment.js +537 -0
  176. package/dist/research/workspace/scientific-amendment.js.map +1 -0
  177. package/dist/research/workspace/scientific-fulfillment-audit.d.ts +20 -2
  178. package/dist/research/workspace/scientific-fulfillment-audit.js +87 -7
  179. package/dist/research/workspace/scientific-fulfillment-audit.js.map +1 -1
  180. package/dist/research/workspace/scientific-fulfillment.d.ts +10 -1
  181. package/dist/research/workspace/scientific-fulfillment.js +20 -6
  182. package/dist/research/workspace/scientific-fulfillment.js.map +1 -1
  183. package/dist/research/workspace/scientific-review-execution.js +162 -22
  184. package/dist/research/workspace/scientific-review-execution.js.map +1 -1
  185. package/dist/research/workspace/scientific-review.d.ts +2 -1
  186. package/dist/research/workspace/scientific-review.js +33 -2
  187. package/dist/research/workspace/scientific-review.js.map +1 -1
  188. package/dist/research/workspace/setup-catalog.js +3 -3
  189. package/dist/research/workspace/setup-release.d.ts +22 -0
  190. package/dist/research/workspace/setup-release.js +426 -0
  191. package/dist/research/workspace/setup-release.js.map +1 -0
  192. package/dist/research/workspace/setup-runtime-integrity.d.ts +2 -0
  193. package/dist/research/workspace/setup-runtime-integrity.js +31 -0
  194. package/dist/research/workspace/setup-runtime-integrity.js.map +1 -0
  195. package/dist/research/workspace/setup-upgrade.d.ts +17 -0
  196. package/dist/research/workspace/setup-upgrade.js +784 -0
  197. package/dist/research/workspace/setup-upgrade.js.map +1 -0
  198. package/dist/research/workspace/setup.d.ts +31 -39
  199. package/dist/research/workspace/setup.js +220 -17
  200. package/dist/research/workspace/setup.js.map +1 -1
  201. package/dist/research/workspace/task-acceptance.d.ts +8 -1
  202. package/dist/research/workspace/task-acceptance.js +37 -5
  203. package/dist/research/workspace/task-acceptance.js.map +1 -1
  204. package/dist/research/workspace/task-audit.d.ts +5 -1
  205. package/dist/research/workspace/task-audit.js +33 -18
  206. package/dist/research/workspace/task-audit.js.map +1 -1
  207. package/dist/research/workspace/types.d.ts +44 -0
  208. package/dist/research/workspace/workspace.js +34 -4
  209. package/dist/research/workspace/workspace.js.map +1 -1
  210. package/package.json +2 -1
@@ -1,13 +1,14 @@
1
+ import { assertProjectRoutePriced, remainingProjectCostUsd, reserveProjectCost, settleProjectCost, } from "./project-budget.js";
1
2
  import { createHash, randomUUID } from "node:crypto";
2
3
  import { constants } from "node:fs";
3
- import { copyFile, lstat, mkdtemp, open, rm } from "node:fs/promises";
4
+ import { copyFile, lstat, mkdir, mkdtemp, open, rm } from "node:fs/promises";
4
5
  import { dirname, join } from "node:path";
5
6
  import { CliError } from "../../errors.js";
6
7
  import { artifactPromptContext, artifactReadInstructions, persistArtifactReads, persistArtifactViewIndex, writeArtifactViewIndex, } from "./artifact-views.js";
7
8
  import { verifyCapabilities } from "./capabilities.js";
8
9
  import { appendJournalEvent, readVerifiedJournal } from "./journal.js";
9
10
  import { assertProjectAuthority, projectAuthorityIndex } from "./project-authority.js";
10
- import { calculateAgentCallTokenReservation, RESEARCH_ESTIMATED_BYTES_PER_TOKEN, RESEARCH_PACKET_READ_MAX_TURNS, RESEARCH_EXPECTED_ARTIFACT_READ_TOKENS, researchStructuredOutputMaxTurns, reservedAgentPackageCost, } from "./preflight.js";
11
+ import { calculateAgentCallTokenReservation, RESEARCH_ESTIMATED_BYTES_PER_TOKEN, RESEARCH_PACKET_READ_MAX_TURNS, RESEARCH_EXPECTED_ARTIFACT_READ_TOKENS, reservedAgentPackageCost, } from "./preflight.js";
11
12
  import { loadProject, saveProject } from "./projects.js";
12
13
  import { assertResearchPolicyBinding } from "./research-policy.js";
13
14
  import { createReviewExecutor } from "./review-executor.js";
@@ -91,6 +92,7 @@ export async function executeScientificReview(input, executor) {
91
92
  let callStartedAt = null;
92
93
  let usageSettled = false;
93
94
  let failureDiagnostic = null;
95
+ let returnedResult = null;
94
96
  try {
95
97
  await copyPacketInputs(input.root, capsuleProject, packet, project.publicationPolicy);
96
98
  await writeJsonAtomic(join(capsuleProject, "inputs/scientific-review-packet.json"), packet);
@@ -98,21 +100,38 @@ export async function executeScientificReview(input, executor) {
98
100
  const persistedViews = await persistArtifactViewIndex(join(paths.projects, project.id), capsuleProject, artifactViews);
99
101
  const prompt = await scientificReviewPrompt(capsuleProject, packet, config, project.publicationPolicy, artifactViews);
100
102
  const schema = scientificReviewSchema(input.role);
101
- const maxTurns = RESEARCH_PACKET_READ_MAX_TURNS;
102
- const reservation = calculateAgentCallTokenReservation({
103
- route: config.reviewer,
104
- primaryPayloadTokens: Math.ceil(Buffer.byteLength(prompt + JSON.stringify(schema)) / RESEARCH_ESTIMATED_BYTES_PER_TOKEN),
105
- repairPayloadTokens: 0,
106
- maxTurns: researchStructuredOutputMaxTurns(config.reviewer),
107
- maxOutputTokens: config.budget.maxOutputTokens,
108
- maxToolContextTokens: RESEARCH_EXPECTED_ARTIFACT_READ_TOKENS,
109
- maxRepairTokens: 0,
110
- reserveRepair: false,
111
- }).totalTokens;
112
- const reservedCostUsd = reservedAgentPackageCost(config.reviewer, reservation, config);
113
- const availableCostUsd = Math.max(0, config.budget.maxCostUsd - project.usage.costUsd);
103
+ assertProjectRoutePriced(project, config.reviewer);
104
+ const availableCostUsd = remainingProjectCostUsd(project, config);
105
+ const availableTokens = Math.min(config.budget.earlyScientificReviewMaxTokens, config.budget.maxTokens - project.usage.tokens);
106
+ const primaryPayloadTokens = Math.ceil(Buffer.byteLength(prompt + JSON.stringify(schema)) / RESEARCH_ESTIMATED_BYTES_PER_TOKEN);
107
+ let maxTurns = 0, reservation = 0, reservedCostUsd = 0;
108
+ for (let turns = RESEARCH_PACKET_READ_MAX_TURNS; turns >= 1; turns--) {
109
+ const estimate = calculateAgentCallTokenReservation({
110
+ route: config.reviewer,
111
+ primaryPayloadTokens,
112
+ repairPayloadTokens: 0,
113
+ maxTurns: turns,
114
+ maxOutputTokens: config.budget.maxOutputTokens,
115
+ maxToolContextTokens: RESEARCH_EXPECTED_ARTIFACT_READ_TOKENS,
116
+ maxRepairTokens: 0,
117
+ reserveRepair: false,
118
+ }).totalTokens;
119
+ const cost = reservedAgentPackageCost(config.reviewer, estimate, config);
120
+ if (estimate <= availableTokens && cost <= availableCostUsd) {
121
+ maxTurns = turns;
122
+ reservation = estimate;
123
+ reservedCostUsd = cost;
124
+ break;
125
+ }
126
+ }
127
+ // Read-context cost remains an estimate. Reserve the same owner-approved
128
+ // finite envelope sent to the client, rather than imposing that estimate
129
+ // as an exact invoice ceiling. Actual returned usage replaces it.
130
+ const estimatedCostUsd = reservedCostUsd;
131
+ reservedCostUsd = availableCostUsd;
114
132
  const timeoutSeconds = Math.min(config.budget.earlyScientificReviewMaxWallSeconds, config.budget.maxWallSeconds - project.usage.wallSeconds);
115
- if (reservation > config.budget.earlyScientificReviewMaxTokens ||
133
+ if (maxTurns === 0 ||
134
+ reservation > config.budget.earlyScientificReviewMaxTokens ||
116
135
  reservation > config.budget.maxTokens - project.usage.tokens ||
117
136
  reservedCostUsd > availableCostUsd ||
118
137
  timeoutSeconds <= 0) {
@@ -121,6 +140,12 @@ export async function executeScientificReview(input, executor) {
121
140
  // Reserve before spawning. An interrupted call remains conservatively charged;
122
141
  // a returned result replaces that reservation with measured usage.
123
142
  const priorUsage = { ...project.usage };
143
+ reserveProjectCost(project, config, {
144
+ id: `scientific:${runId}`,
145
+ kind: "review",
146
+ reference: packet.packetSha256,
147
+ maxCostUsd: reservedCostUsd,
148
+ });
124
149
  project.usage.tokens += reservation;
125
150
  project.usage.inputTokens += reservation;
126
151
  project.usage.costUsd += reservedCostUsd;
@@ -134,7 +159,9 @@ export async function executeScientificReview(input, executor) {
134
159
  runId,
135
160
  attempt: attempts + 1,
136
161
  reservedTokens: reservation,
162
+ admittedMaxTurns: maxTurns,
137
163
  reservedCostUsd,
164
+ estimatedCostUsd,
138
165
  reservedWallSeconds: timeoutSeconds,
139
166
  transport: config.reviewerExecution.transport,
140
167
  });
@@ -142,7 +169,7 @@ export async function executeScientificReview(input, executor) {
142
169
  const execute = executor ??
143
170
  createReviewExecutor({ root: input.root, execution: config.reviewerExecution }).execute;
144
171
  callStartedAt = process.hrtime.bigint();
145
- const result = await execute({
172
+ const result = (returnedResult = await execute({
146
173
  route: config.reviewer,
147
174
  prompt,
148
175
  outputSchema: schema,
@@ -155,13 +182,13 @@ export async function executeScientificReview(input, executor) {
155
182
  maxTurns,
156
183
  maxOutputTokens: config.budget.maxOutputTokens,
157
184
  maxToolContextTokens: RESEARCH_EXPECTED_ARTIFACT_READ_TOKENS,
158
- maxCostUsd: availableCostUsd,
185
+ maxCostUsd: reservedCostUsd,
159
186
  expectedRuntime,
160
187
  toolPolicy: "packet-read",
161
188
  artifactViews: { index: artifactViews, packetSha256: packet.packetSha256 },
162
189
  brokerUrl: null,
163
190
  environment: input.environment,
164
- });
191
+ }));
165
192
  if (result.artifactReads?.length) {
166
193
  await persistArtifactReads(join(paths.projects, project.id), capsuleProject, artifactViews, packet.packetSha256, result.artifactReads);
167
194
  await appendJournalEvent(paths.journal, "review.artifacts.read", project.id, sanitizeResearchValue({
@@ -188,6 +215,7 @@ export async function executeScientificReview(input, executor) {
188
215
  project.usage.outputTokens = priorUsage.outputTokens + usage.outputTokens;
189
216
  project.usage.costUsd = priorUsage.costUsd + usage.costUsd;
190
217
  project.usage.wallSeconds = priorUsage.wallSeconds + usage.wallSeconds;
218
+ settleProjectCost(project, `scientific:${runId}`, usage.costUsd, usageKnown ? "reported-usage" : "allocated-upper-bound");
191
219
  await saveProject(input.root, project);
192
220
  usageSettled = true;
193
221
  if (result.exitCode !== 0) {
@@ -286,6 +314,33 @@ export async function executeScientificReview(input, executor) {
286
314
  await saveProject(input.root, project);
287
315
  }
288
316
  if (started) {
317
+ // Capture only the failure path: successful execution already has its
318
+ // immutable output/receipt and must not pay for duplicate persistence.
319
+ if (returnedResult) {
320
+ let retention;
321
+ try {
322
+ retention = {
323
+ executionRecord: await retainFailedExecution({
324
+ root: input.root,
325
+ projectId: project.id,
326
+ packet,
327
+ runId,
328
+ result: returnedResult,
329
+ failureCode: error instanceof CliError
330
+ ? error.code
331
+ : "RESEARCH_SCIENTIFIC_REVIEW_EXECUTION_FAILED",
332
+ config,
333
+ environment: input.environment,
334
+ }),
335
+ };
336
+ }
337
+ catch {
338
+ // Disk/namespace failure must not masquerade as a retained result
339
+ // or hide the original budget/runtime rejection.
340
+ retention = { outputRetention: "storage-unavailable" };
341
+ }
342
+ failureDiagnostic = { ...failureDiagnostic, ...retention };
343
+ }
289
344
  await appendJournalEvent(paths.journal, "scientific-review.execution.failed", project.id, {
290
345
  role: input.role,
291
346
  packetSha256: packet.packetSha256,
@@ -296,9 +351,19 @@ export async function executeScientificReview(input, executor) {
296
351
  capsuleDisposition: "retained-failed-execution",
297
352
  });
298
353
  }
299
- if (error instanceof CliError)
300
- throw error;
301
- throw executionError("RESEARCH_SCIENTIFIC_REVIEW_EXECUTION_FAILED", "The isolated reviewer failed. Its packet and failed execution remain available for explicit recovery.");
354
+ if (error instanceof CliError) {
355
+ if (!failureDiagnostic)
356
+ throw error;
357
+ throw new CliError(error.message, {
358
+ code: error.code,
359
+ exitCode: error.exitCode,
360
+ details: {
361
+ ...(isObject(error.details) ? error.details : {}),
362
+ ...failureDiagnostic,
363
+ },
364
+ });
365
+ }
366
+ throw executionError("RESEARCH_SCIENTIFIC_REVIEW_EXECUTION_FAILED", "The isolated reviewer failed. Its packet and failed execution remain available for explicit recovery.", failureDiagnostic ?? undefined);
302
367
  }
303
368
  finally {
304
369
  if ((completedCall || !started) &&
@@ -328,6 +393,81 @@ export async function executeScientificReview(input, executor) {
328
393
  replayed: prepared.replayed,
329
394
  };
330
395
  }
396
+ async function retainFailedExecution(input) {
397
+ const { result } = input;
398
+ const secrets = configuredResearchSecrets(input.environment);
399
+ const bytes = Buffer.byteLength(result.stdout);
400
+ let disposition = "retained-json";
401
+ if (bytes > Math.min(MAX_EXECUTION_RECEIPT_BYTES, input.config.budget.maxOutputTokens * 16)) {
402
+ disposition = "omitted-oversized";
403
+ }
404
+ else if (sanitizeResearchText(result.stdout, secrets) !== result.stdout) {
405
+ disposition = "omitted-unsafe";
406
+ }
407
+ else {
408
+ try {
409
+ const parsed = JSON.parse(result.stdout);
410
+ if (canonicalJson(sanitizeResearchValue(parsed, secrets)) !== canonicalJson(parsed)) {
411
+ disposition = "omitted-unsafe";
412
+ }
413
+ }
414
+ catch {
415
+ // Only inspectable JSON can pass the structured sensitive-field check.
416
+ // Malformed output keeps its digest/size, not unchecked raw text.
417
+ disposition = "omitted-invalid-json";
418
+ }
419
+ }
420
+ let reportedUsage = null;
421
+ try {
422
+ reportedUsage = checkedUsage(result);
423
+ }
424
+ catch {
425
+ // Invalid reported usage is not zero usage or a settled invoice.
426
+ }
427
+ const reportedBinding = sanitizeResearchValue({
428
+ model: result.model,
429
+ runtime: result.runtime ?? null,
430
+ isolation: result.isolation ?? null,
431
+ reviewAttestation: result.reviewAttestation ?? null,
432
+ }, secrets);
433
+ const bindingBytes = canonicalJson(reportedBinding);
434
+ const record = {
435
+ schemaVersion: 1,
436
+ kind: "tiangong-scientific-review-failed-execution",
437
+ acceptance: "not-submitted",
438
+ projectId: input.projectId,
439
+ role: input.packet.role,
440
+ packetSha256: input.packet.packetSha256,
441
+ reviewerSessionSha256: input.packet.reviewer.sessionSha256,
442
+ runId: input.runId,
443
+ failureCode: input.failureCode,
444
+ exitCode: Number.isSafeInteger(result.exitCode) ? result.exitCode : null,
445
+ reportedUsage,
446
+ // Reported identities remain unverified observations, never acceptance proof.
447
+ reportedBinding: Buffer.byteLength(bindingBytes) <= 64 * 1024 ? reportedBinding : null,
448
+ reportedBindingSha256: sha256Text(bindingBytes),
449
+ output: {
450
+ disposition,
451
+ bytes,
452
+ sha256: sha256Text(result.stdout),
453
+ stdout: disposition === "retained-json" ? result.stdout : null,
454
+ },
455
+ stderrSha256: sha256Text(result.stderr),
456
+ };
457
+ const sha256 = sha256Text(JSON.stringify(record, null, 2) + "\n");
458
+ const locator = `projects/${input.projectId}/scientific/failed-executions/${sha256}.json`;
459
+ const path = resolveContained(workspacePaths(input.root).control, locator);
460
+ const parent = await lstat(dirname(dirname(path)));
461
+ if (!parent.isDirectory() || parent.isSymbolicLink())
462
+ throw new Error("Unsafe capture parent");
463
+ await mkdir(dirname(path), { recursive: true, mode: 0o700 });
464
+ const directory = await lstat(dirname(path));
465
+ if (!directory.isDirectory() || directory.isSymbolicLink()) {
466
+ throw new Error("Unsafe capture directory");
467
+ }
468
+ await writeJsonAtomic(path, record, 0o444);
469
+ return { locator, sha256 };
470
+ }
331
471
  async function readReceipt(root, locator, digest, expected) {
332
472
  if (typeof digest !== "string" ||
333
473
  !/^[a-f0-9]{64}$/.test(digest) ||
@@ -1 +1 @@
1
- {"version":3,"file":"scientific-review-execution.js","sourceRoot":"","sources":["../../../src/research/workspace/scientific-review-execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scientific-review-execution.js","sourceRoot":"","sources":["../../../src/research/workspace/scientific-review-execution.ts"],"names":[],"mappings":"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"}
@@ -112,7 +112,7 @@ interface ScientificReviewStageInput {
112
112
  path: string;
113
113
  sha256: string;
114
114
  bytes: number;
115
- purpose: "construct-canary" | "inherited-gap" | "model-implementation" | "model-environment-lock" | "scientific-fulfillment" | "effective-scientific-design" | "original-request-source" | "native-calculation" | "acquired-evidence" | "stage-output";
115
+ purpose: "construct-canary" | "inherited-gap" | "model-implementation" | "model-environment-lock" | "scientific-fulfillment" | "scientific-amendment" | "effective-scientific-design" | "original-request-source" | "native-calculation" | "acquired-evidence" | "stage-output";
116
116
  ownerId: string;
117
117
  sourceLocator: string;
118
118
  hashBasis: "raw-file-bytes";
@@ -132,6 +132,7 @@ export interface ScientificReviewPacket {
132
132
  headSha256: string | null;
133
133
  effectiveSha256: string;
134
134
  };
135
+ amendmentSha256?: string | null;
135
136
  };
136
137
  policy: {
137
138
  resolvedPolicySha256: string;
@@ -2,6 +2,7 @@ import { Ajv2020 } from "ajv/dist/2020.js";
2
2
  import { constants } from "node:fs";
3
3
  import { chmod, copyFile, lstat, mkdir, readFile } from "node:fs/promises";
4
4
  import { isAbsolute, join, relative, resolve, sep } from "node:path";
5
+ import { scientificAmendmentLocator } from "./scientific-amendment.js";
5
6
  import { CliError } from "../../errors.js";
6
7
  import { taskContext } from "./task-contract.js";
7
8
  import { nativeRunArtifactRecords } from "./native-run.js";
@@ -314,7 +315,29 @@ export async function prepareScientificReview(input) {
314
315
  }
315
316
  if (input.role !== "research-design")
316
317
  stageInputs.push(...(await modelObjectInputs(input.root, project.id, design)));
317
- if (fulfillment.records.length) {
318
+ const amendmentInputs = new Set();
319
+ for (const record of fulfillment.amendments) {
320
+ for (const locator of [
321
+ scientificAmendmentLocator(project.id, record.recordSha256),
322
+ record.amendmentAuthorization.sourceLocator,
323
+ record.design.objectLocator,
324
+ ]) {
325
+ if (amendmentInputs.has(locator))
326
+ continue;
327
+ amendmentInputs.add(locator);
328
+ stageInputs.push({
329
+ ...(await fileRecord(resolveContained(paths.control, locator), locator)),
330
+ purpose: "scientific-amendment",
331
+ ownerId: project.id,
332
+ sourceLocator: locator,
333
+ hashBasis: "raw-file-bytes",
334
+ mediaType: locator.endsWith(".txt") ? "text/plain" : "application/json",
335
+ objectKind: null,
336
+ registrationRecordSha256: null,
337
+ });
338
+ }
339
+ }
340
+ if (fulfillment.records.length || fulfillment.amendments.length) {
318
341
  for (const record of fulfillment.records) {
319
342
  const locator = scientificFulfillmentLocator(project.id, record.recordSha256);
320
343
  stageInputs.push({
@@ -366,6 +389,7 @@ export async function prepareScientificReview(input) {
366
389
  design: {
367
390
  sha256: project.scientificDesign.designSha256,
368
391
  objectLocator: project.scientificDesign.objectLocator,
392
+ amendmentSha256: project.scientificDesign.amendmentSha256 ?? null,
369
393
  fulfillment: {
370
394
  headSha256: fulfillment.headSha256,
371
395
  effectiveSha256: fulfillment.effectiveSha256,
@@ -404,7 +428,7 @@ export async function prepareScientificReview(input) {
404
428
  },
405
429
  instructions: [
406
430
  ...reviewInstructions(input.role),
407
- "Scientific fulfillment files supply only previously declared pending object slots. The base design and policy dispositions remain immutable. Discharging an object-filing blocker does not establish calibration, justification or scientific correctness: independently assess the actual code, locks and source-bound values under every original policy rule.",
431
+ "Scientific fulfillment files supply only previously declared pending object slots. Original design bytes remain immutable. Owner-authorized lifecycle/binding amendments, when present, are staged with their exact changes, new design version and supplied authorization source. Review the current effective design; supplied confirmation does not authenticate human identity or establish scientific satisfaction. Discharging an object-filing blocker does not establish calibration, justification or scientific correctness: independently assess the actual code, locks and source-bound values under every original policy rule.",
408
432
  ],
409
433
  };
410
434
  const packetSha256 = sha256Text(canonicalJson(packetCore));
@@ -1270,6 +1294,8 @@ async function loadBoundPacket(root, project, role, packetSha256) {
1270
1294
  }
1271
1295
  await assertBoundPolicyObject(root, project, value.policy);
1272
1296
  const fulfillment = await loadScientificFulfillmentView(root, project, role);
1297
+ if ((value.design.amendmentSha256 ?? null) !== (project.scientificDesign?.amendmentSha256 ?? null))
1298
+ throw scientificGateError("Scientific review has a stale amendment generation.", role);
1273
1299
  if (value.design.fulfillment) {
1274
1300
  if (value.design.fulfillment.effectiveSha256 !== fulfillment.effectiveSha256 ||
1275
1301
  (value.design.fulfillment.headSha256 !== null &&
@@ -1445,6 +1471,10 @@ function isScientificReviewPacket(value, projectId, role, finalPublicationReview
1445
1471
  isObject(value.design) &&
1446
1472
  typeof value.design.sha256 === "string" &&
1447
1473
  typeof value.design.objectLocator === "string" &&
1474
+ (value.design.amendmentSha256 === undefined ||
1475
+ value.design.amendmentSha256 === null ||
1476
+ (typeof value.design.amendmentSha256 === "string" &&
1477
+ new RegExp(SHA256_PATTERN).test(value.design.amendmentSha256))) &&
1448
1478
  (value.design.fulfillment === undefined ||
1449
1479
  (isObject(value.design.fulfillment) &&
1450
1480
  (value.design.fulfillment.headSha256 === null ||
@@ -1478,6 +1508,7 @@ function isScientificReviewPacket(value, projectId, role, finalPublicationReview
1478
1508
  "model-implementation",
1479
1509
  "model-environment-lock",
1480
1510
  "scientific-fulfillment",
1511
+ "scientific-amendment",
1481
1512
  "effective-scientific-design",
1482
1513
  "original-request-source",
1483
1514
  "native-calculation",