@tiangong-ai/cli 0.0.61 → 0.0.63

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 (216) hide show
  1. package/AGENTS.md +17 -6
  2. package/CONTRIBUTING.md +5 -5
  3. package/README.md +417 -36
  4. package/dist/cli.js +2 -2
  5. package/dist/data/builtins.js +33 -5
  6. package/dist/data/builtins.js.map +1 -1
  7. package/dist/data/catalog.js +46 -0
  8. package/dist/data/catalog.js.map +1 -1
  9. package/dist/data/commands.js +15 -1
  10. package/dist/data/commands.js.map +1 -1
  11. package/dist/data/connectors/airnow-hourly-observations.js +60 -10
  12. package/dist/data/connectors/airnow-hourly-observations.js.map +1 -1
  13. package/dist/data/connectors/epa-eis-records.js +16 -2
  14. package/dist/data/connectors/epa-eis-records.js.map +1 -1
  15. package/dist/data/connectors/gdelt-doc-search.js +54 -18
  16. package/dist/data/connectors/gdelt-doc-search.js.map +1 -1
  17. package/dist/data/connectors/gdelt-file-feeds.js +20 -11
  18. package/dist/data/connectors/gdelt-file-feeds.js.map +1 -1
  19. package/dist/data/connectors/gdelt-web-ngrams.d.ts +2 -0
  20. package/dist/data/connectors/gdelt-web-ngrams.js +350 -0
  21. package/dist/data/connectors/gdelt-web-ngrams.js.map +1 -0
  22. package/dist/data/connectors/gdelt-web-ngrams.schemas.d.ts +188 -0
  23. package/dist/data/connectors/gdelt-web-ngrams.schemas.js +138 -0
  24. package/dist/data/connectors/gdelt-web-ngrams.schemas.js.map +1 -0
  25. package/dist/data/connectors/nasa-firms-fire.js +4 -0
  26. package/dist/data/connectors/nasa-firms-fire.js.map +1 -1
  27. package/dist/data/connectors/open-meteo-air-quality.js +27 -22
  28. package/dist/data/connectors/open-meteo-air-quality.js.map +1 -1
  29. package/dist/data/connectors/open-meteo-air-quality.schemas.d.ts +4 -1
  30. package/dist/data/connectors/open-meteo-air-quality.schemas.js +21 -1
  31. package/dist/data/connectors/open-meteo-air-quality.schemas.js.map +1 -1
  32. package/dist/data/connectors/open-meteo-flood.js +28 -23
  33. package/dist/data/connectors/open-meteo-flood.js.map +1 -1
  34. package/dist/data/connectors/open-meteo-flood.schemas.d.ts +4 -1
  35. package/dist/data/connectors/open-meteo-flood.schemas.js +21 -1
  36. package/dist/data/connectors/open-meteo-flood.schemas.js.map +1 -1
  37. package/dist/data/connectors/open-meteo-historical-weather.js +26 -21
  38. package/dist/data/connectors/open-meteo-historical-weather.js.map +1 -1
  39. package/dist/data/connectors/open-meteo-historical-weather.schemas.d.ts +4 -1
  40. package/dist/data/connectors/open-meteo-historical-weather.schemas.js +21 -1
  41. package/dist/data/connectors/open-meteo-historical-weather.schemas.js.map +1 -1
  42. package/dist/data/connectors/openaq-air-quality.js +50 -12
  43. package/dist/data/connectors/openaq-air-quality.js.map +1 -1
  44. package/dist/data/connectors/openaq-air-quality.schemas.d.ts +0 -4
  45. package/dist/data/connectors/openaq-air-quality.schemas.js +2 -2
  46. package/dist/data/connectors/openaq-air-quality.schemas.js.map +1 -1
  47. package/dist/data/connectors/youtube-public-content.js +76 -6
  48. package/dist/data/connectors/youtube-public-content.js.map +1 -1
  49. package/dist/data/connectors/youtube-public-content.schemas.d.ts +63 -3
  50. package/dist/data/connectors/youtube-public-content.schemas.js +56 -2
  51. package/dist/data/connectors/youtube-public-content.schemas.js.map +1 -1
  52. package/dist/data/contracts.d.ts +22 -1
  53. package/dist/data/runtime/bounded-http.d.ts +2 -0
  54. package/dist/data/runtime/bounded-http.js +221 -59
  55. package/dist/data/runtime/bounded-http.js.map +1 -1
  56. package/dist/data/runtime/execute.d.ts +2 -0
  57. package/dist/data/runtime/execute.js +82 -60
  58. package/dist/data/runtime/execute.js.map +1 -1
  59. package/dist/data/runtime/http-timing.d.ts +15 -0
  60. package/dist/data/runtime/http-timing.js +59 -0
  61. package/dist/data/runtime/http-timing.js.map +1 -0
  62. package/dist/data/runtime/http-transport.d.ts +1 -0
  63. package/dist/data/runtime/http-transport.js +27 -0
  64. package/dist/data/runtime/http-transport.js.map +1 -0
  65. package/dist/data/schemas/catalog.v1.json +46 -0
  66. package/dist/data/schemas/discovery.v1.json +12 -0
  67. package/dist/data/schemas/error.v1.json +1 -0
  68. package/dist/data/schemas/manifest.v1.json +19 -1
  69. package/dist/research/orchestration.js +233 -10
  70. package/dist/research/orchestration.js.map +1 -1
  71. package/dist/research/setup-command.js +37 -6
  72. package/dist/research/setup-command.js.map +1 -1
  73. package/dist/research/workspace/audit-bundle.js +28 -8
  74. package/dist/research/workspace/audit-bundle.js.map +1 -1
  75. package/dist/research/workspace/broker.js +25 -4
  76. package/dist/research/workspace/broker.js.map +1 -1
  77. package/dist/research/workspace/constants.d.ts +1 -0
  78. package/dist/research/workspace/constants.js +1 -0
  79. package/dist/research/workspace/constants.js.map +1 -1
  80. package/dist/research/workspace/content-evidence.d.ts +1 -0
  81. package/dist/research/workspace/content-evidence.js +1 -1
  82. package/dist/research/workspace/content-evidence.js.map +1 -1
  83. package/dist/research/workspace/credentials.js +2 -1
  84. package/dist/research/workspace/credentials.js.map +1 -1
  85. package/dist/research/workspace/data-evidence-adapter.d.ts +71 -0
  86. package/dist/research/workspace/data-evidence-adapter.js +269 -59
  87. package/dist/research/workspace/data-evidence-adapter.js.map +1 -1
  88. package/dist/research/workspace/data-evidence-view.d.ts +58 -0
  89. package/dist/research/workspace/data-evidence-view.js +411 -0
  90. package/dist/research/workspace/data-evidence-view.js.map +1 -0
  91. package/dist/research/workspace/evidence-ledger.js +32 -29
  92. package/dist/research/workspace/evidence-ledger.js.map +1 -1
  93. package/dist/research/workspace/evidence.d.ts +28 -0
  94. package/dist/research/workspace/evidence.js +48 -0
  95. package/dist/research/workspace/evidence.js.map +1 -1
  96. package/dist/research/workspace/executor.d.ts +27 -1
  97. package/dist/research/workspace/executor.js +180 -20
  98. package/dist/research/workspace/executor.js.map +1 -1
  99. package/dist/research/workspace/external-skills.d.ts +1 -0
  100. package/dist/research/workspace/external-skills.js +4 -2
  101. package/dist/research/workspace/external-skills.js.map +1 -1
  102. package/dist/research/workspace/investigation-attempt.d.ts +159 -0
  103. package/dist/research/workspace/investigation-attempt.js +619 -0
  104. package/dist/research/workspace/investigation-attempt.js.map +1 -0
  105. package/dist/research/workspace/investigation-audit.d.ts +20 -0
  106. package/dist/research/workspace/investigation-audit.js +306 -0
  107. package/dist/research/workspace/investigation-audit.js.map +1 -0
  108. package/dist/research/workspace/investigation-candidate.d.ts +84 -0
  109. package/dist/research/workspace/investigation-candidate.js +156 -0
  110. package/dist/research/workspace/investigation-candidate.js.map +1 -0
  111. package/dist/research/workspace/investigation-certification.d.ts +39 -0
  112. package/dist/research/workspace/investigation-certification.js +152 -0
  113. package/dist/research/workspace/investigation-certification.js.map +1 -0
  114. package/dist/research/workspace/investigation-close.d.ts +47 -0
  115. package/dist/research/workspace/investigation-close.js +153 -0
  116. package/dist/research/workspace/investigation-close.js.map +1 -0
  117. package/dist/research/workspace/investigation-lineage.d.ts +8 -0
  118. package/dist/research/workspace/investigation-lineage.js +10 -0
  119. package/dist/research/workspace/investigation-lineage.js.map +1 -0
  120. package/dist/research/workspace/investigation-observer.d.ts +22 -0
  121. package/dist/research/workspace/investigation-observer.js +122 -0
  122. package/dist/research/workspace/investigation-observer.js.map +1 -0
  123. package/dist/research/workspace/investigation-promotion.d.ts +129 -0
  124. package/dist/research/workspace/investigation-promotion.js +316 -0
  125. package/dist/research/workspace/investigation-promotion.js.map +1 -0
  126. package/dist/research/workspace/investigation-requirements.d.ts +5 -0
  127. package/dist/research/workspace/investigation-requirements.js +32 -0
  128. package/dist/research/workspace/investigation-requirements.js.map +1 -0
  129. package/dist/research/workspace/investigation-resources.d.ts +12 -0
  130. package/dist/research/workspace/investigation-resources.js +78 -0
  131. package/dist/research/workspace/investigation-resources.js.map +1 -0
  132. package/dist/research/workspace/investigation-source-export.d.ts +6 -0
  133. package/dist/research/workspace/investigation-source-export.js +68 -0
  134. package/dist/research/workspace/investigation-source-export.js.map +1 -0
  135. package/dist/research/workspace/investigation-store.d.ts +9 -0
  136. package/dist/research/workspace/investigation-store.js +55 -0
  137. package/dist/research/workspace/investigation-store.js.map +1 -0
  138. package/dist/research/workspace/investigation.d.ts +424 -0
  139. package/dist/research/workspace/investigation.js +716 -0
  140. package/dist/research/workspace/investigation.js.map +1 -0
  141. package/dist/research/workspace/native-process-supervisor.d.ts +1 -0
  142. package/dist/research/workspace/native-process-supervisor.js +97 -0
  143. package/dist/research/workspace/native-process-supervisor.js.map +1 -0
  144. package/dist/research/workspace/native-run.d.ts +79 -6
  145. package/dist/research/workspace/native-run.js +293 -51
  146. package/dist/research/workspace/native-run.js.map +1 -1
  147. package/dist/research/workspace/preflight.d.ts +3 -0
  148. package/dist/research/workspace/preflight.js +11 -6
  149. package/dist/research/workspace/preflight.js.map +1 -1
  150. package/dist/research/workspace/project-authority.js +2 -0
  151. package/dist/research/workspace/project-authority.js.map +1 -1
  152. package/dist/research/workspace/project-budget.d.ts +41 -0
  153. package/dist/research/workspace/project-budget.js +265 -0
  154. package/dist/research/workspace/project-budget.js.map +1 -0
  155. package/dist/research/workspace/project-mutations.d.ts +1 -1
  156. package/dist/research/workspace/project-mutations.js +27 -3
  157. package/dist/research/workspace/project-mutations.js.map +1 -1
  158. package/dist/research/workspace/projects.d.ts +66 -0
  159. package/dist/research/workspace/projects.js +181 -3
  160. package/dist/research/workspace/projects.js.map +1 -1
  161. package/dist/research/workspace/provider-budget.d.ts +3 -0
  162. package/dist/research/workspace/provider-budget.js +45 -0
  163. package/dist/research/workspace/provider-budget.js.map +1 -0
  164. package/dist/research/workspace/provider-state.d.ts +1 -0
  165. package/dist/research/workspace/provider-state.js +20 -0
  166. package/dist/research/workspace/provider-state.js.map +1 -0
  167. package/dist/research/workspace/publication-lineage.d.ts +34 -0
  168. package/dist/research/workspace/publication-lineage.js +165 -0
  169. package/dist/research/workspace/publication-lineage.js.map +1 -0
  170. package/dist/research/workspace/publication-workflow.d.ts +24 -0
  171. package/dist/research/workspace/publication-workflow.js +118 -14
  172. package/dist/research/workspace/publication-workflow.js.map +1 -1
  173. package/dist/research/workspace/review-executor.d.ts +6 -1
  174. package/dist/research/workspace/review-executor.js +17 -3
  175. package/dist/research/workspace/review-executor.js.map +1 -1
  176. package/dist/research/workspace/runtime.d.ts +12 -1
  177. package/dist/research/workspace/runtime.js +143 -19
  178. package/dist/research/workspace/runtime.js.map +1 -1
  179. package/dist/research/workspace/scientific-amendment.d.ts +103 -0
  180. package/dist/research/workspace/scientific-amendment.js +537 -0
  181. package/dist/research/workspace/scientific-amendment.js.map +1 -0
  182. package/dist/research/workspace/scientific-fulfillment-audit.d.ts +20 -2
  183. package/dist/research/workspace/scientific-fulfillment-audit.js +87 -7
  184. package/dist/research/workspace/scientific-fulfillment-audit.js.map +1 -1
  185. package/dist/research/workspace/scientific-fulfillment.d.ts +10 -1
  186. package/dist/research/workspace/scientific-fulfillment.js +20 -6
  187. package/dist/research/workspace/scientific-fulfillment.js.map +1 -1
  188. package/dist/research/workspace/scientific-review-execution.js +162 -22
  189. package/dist/research/workspace/scientific-review-execution.js.map +1 -1
  190. package/dist/research/workspace/scientific-review.d.ts +2 -1
  191. package/dist/research/workspace/scientific-review.js +33 -2
  192. package/dist/research/workspace/scientific-review.js.map +1 -1
  193. package/dist/research/workspace/setup-catalog.js +13 -13
  194. package/dist/research/workspace/setup-catalog.js.map +1 -1
  195. package/dist/research/workspace/setup-release.d.ts +22 -0
  196. package/dist/research/workspace/setup-release.js +426 -0
  197. package/dist/research/workspace/setup-release.js.map +1 -0
  198. package/dist/research/workspace/setup-runtime-integrity.d.ts +2 -0
  199. package/dist/research/workspace/setup-runtime-integrity.js +31 -0
  200. package/dist/research/workspace/setup-runtime-integrity.js.map +1 -0
  201. package/dist/research/workspace/setup-upgrade.d.ts +17 -0
  202. package/dist/research/workspace/setup-upgrade.js +784 -0
  203. package/dist/research/workspace/setup-upgrade.js.map +1 -0
  204. package/dist/research/workspace/setup.d.ts +31 -39
  205. package/dist/research/workspace/setup.js +228 -19
  206. package/dist/research/workspace/setup.js.map +1 -1
  207. package/dist/research/workspace/task-acceptance.d.ts +8 -1
  208. package/dist/research/workspace/task-acceptance.js +37 -5
  209. package/dist/research/workspace/task-acceptance.js.map +1 -1
  210. package/dist/research/workspace/task-audit.d.ts +5 -1
  211. package/dist/research/workspace/task-audit.js +33 -18
  212. package/dist/research/workspace/task-audit.js.map +1 -1
  213. package/dist/research/workspace/types.d.ts +44 -0
  214. package/dist/research/workspace/workspace.js +34 -4
  215. package/dist/research/workspace/workspace.js.map +1 -1
  216. package/package.json +5 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"investigation-attempt.js","sourceRoot":"","sources":["../../../src/research/workspace/investigation-attempt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type ScientificAuditHistory } from "./scientific-fulfillment-audit.js";
2
+ import type { NativeRunRecord } from "./native-run.js";
3
+ import type { JournalEvent, OutputRecord } from "./types.js";
4
+ export type InvestigationProofEvent = Pick<JournalEvent, "scope" | "type" | "payload" | "sequence" | "timestamp"> & {
5
+ sourcePayloadSha256: string;
6
+ sourcePreviousHash: string;
7
+ sourceEventHash: string;
8
+ };
9
+ export interface InvestigationAuditSummary {
10
+ definitions: number;
11
+ attempts: number;
12
+ candidates: number;
13
+ promotions: number;
14
+ certifications: number;
15
+ closures?: number;
16
+ }
17
+ export declare function loadInvestigationAudit(bundle: string, projectId: string, files: OutputRecord[], proofs: InvestigationProofEvent[], scientificHistory?: ScientificAuditHistory): Promise<{
18
+ verifyRun: (run: NativeRunRecord, started: InvestigationProofEvent) => Promise<void>;
19
+ report: () => InvestigationAuditSummary;
20
+ } | null>;
@@ -0,0 +1,306 @@
1
+ import { scientificAuditViewBefore, } from "./scientific-fulfillment-audit.js";
2
+ import { applyScientificFulfillmentRecord } from "./scientific-fulfillment.js";
3
+ import { loadInvestigationClosure } from "./investigation-close.js";
4
+ import { relevantInvestigationEvents } from "./investigation-lineage.js";
5
+ import { readFile } from "node:fs/promises";
6
+ import { CliError } from "../../errors.js";
7
+ import { loadInvestigation } from "./investigation.js";
8
+ import { investigationAttemptHistory, parseInvestigationDiagnostic, } from "./investigation-attempt.js";
9
+ import { loadInvestigationCandidates, } from "./investigation-candidate.js";
10
+ import { loadInvestigationPromotion, } from "./investigation-promotion.js";
11
+ import { assertInvestigationBlob } from "./investigation-store.js";
12
+ import { canonicalJson, resolveContained, sha256Text } from "./storage.js";
13
+ import { validateTaskObject } from "./task-contract.js";
14
+ const HASH = /^[a-f0-9]{64}$/;
15
+ function invalid(message) {
16
+ return new CliError(message, { code: "RESEARCH_AUDIT_BUNDLE_INVALID", exitCode: 3 });
17
+ }
18
+ export async function loadInvestigationAudit(bundle, projectId, files, proofs, scientificHistory) {
19
+ if (!proofs.some((e) => e.scope === projectId &&
20
+ (e.type.startsWith("investigation.") ||
21
+ (e.type === "project.task.run.started" && e.payload.investigationPromotionSha256))))
22
+ return null;
23
+ const indexed = new Map(files.map((f) => [f.path, f]));
24
+ const decoded = new Map();
25
+ const prefix = (id) => {
26
+ if (!/^[a-z0-9][a-z0-9-]{2,63}$/.test(id))
27
+ throw invalid("Investigation audit project address is invalid.");
28
+ return id === projectId ? "project" : `investigation-sources/${id}`;
29
+ };
30
+ const store = {
31
+ readTask: async (id, group, hash, field) => {
32
+ if (!/^investigation(?:s|-starts|-attempts|-candidates|-promotions|-closures)$/.test(group) ||
33
+ !HASH.test(hash))
34
+ throw invalid("Investigation audit object address is invalid.");
35
+ const path = `${prefix(id)}/task/${group}/${hash}.json`, expected = indexed.get(path);
36
+ if (!expected || expected.bytes > 16 * 1024 * 1024)
37
+ throw invalid("Investigation audit is missing a referenced immutable record.");
38
+ if (!decoded.has(path)) {
39
+ const text = await readFile(resolveContained(bundle, path), "utf8");
40
+ if (Buffer.byteLength(text) !== expected.bytes || sha256Text(text) !== expected.sha256)
41
+ throw invalid("Investigation audit record bytes changed.");
42
+ decoded.set(path, JSON.parse(text));
43
+ }
44
+ return validateTaskObject(decoded.get(path), hash, field);
45
+ },
46
+ verifyBlob: async (id, object) => {
47
+ assertInvestigationBlob(object);
48
+ const entry = indexed.get(`${prefix(id)}/${object.path}`);
49
+ if (!entry || entry.sha256 !== object.sha256 || entry.bytes !== object.bytes)
50
+ throw invalid("Investigation audit is missing exact program, input, approval or result bytes.");
51
+ },
52
+ readBlob: async (id, object, maxBytes) => {
53
+ await store.verifyBlob(id, object);
54
+ if (object.bytes > maxBytes)
55
+ throw invalid("Investigation audit diagnostic exceeds its bounded read.");
56
+ return readFile(resolveContained(bundle, `${prefix(id)}/${object.path}`));
57
+ },
58
+ };
59
+ const allEvents = proofs.map((p) => ({
60
+ schemaVersion: 1,
61
+ sequence: p.sequence,
62
+ timestamp: p.timestamp,
63
+ type: p.type,
64
+ scope: p.scope,
65
+ payload: p.payload,
66
+ previousHash: p.sourcePreviousHash,
67
+ hash: p.sourceEventHash,
68
+ }));
69
+ const preloadedPromotions = new Map();
70
+ for (const event of allEvents) {
71
+ if (event.scope !== projectId || event.type !== "investigation.promotion.approved")
72
+ continue;
73
+ const promotion = await loadInvestigationPromotion(bundle, projectId, String(event.payload.recordSha256), allEvents, store);
74
+ preloadedPromotions.set(promotion.recordSha256, promotion);
75
+ }
76
+ const sources = [...preloadedPromotions.values()].map((p) => ({
77
+ projectId: p.plan.sourceProjectId,
78
+ investigationId: p.plan.investigationId,
79
+ }));
80
+ const selectedProofs = relevantInvestigationEvents(projectId, proofs, sources);
81
+ const relevant = selectedProofs.filter((e) => e.type.startsWith("investigation.") || e.type.startsWith("project.task.run."));
82
+ for (const proof of relevant) {
83
+ if (!Number.isSafeInteger(proof.sequence) ||
84
+ proof.sequence < 1 ||
85
+ proof.sourcePayloadSha256 !== sha256Text(canonicalJson(proof.payload)) ||
86
+ !HASH.test(proof.sourceEventHash) ||
87
+ !HASH.test(proof.sourcePreviousHash))
88
+ throw invalid("Investigation journal proof is malformed or changed.");
89
+ const unsigned = {
90
+ schemaVersion: 1,
91
+ sequence: proof.sequence,
92
+ timestamp: proof.timestamp,
93
+ type: proof.type,
94
+ scope: proof.scope,
95
+ payload: proof.payload,
96
+ previousHash: proof.sourcePreviousHash,
97
+ };
98
+ if (sha256Text(canonicalJson(unsigned)) !== proof.sourceEventHash)
99
+ throw invalid("Investigation journal proof no longer matches its source event.");
100
+ }
101
+ const events = selectedProofs.map((p) => ({
102
+ schemaVersion: 1,
103
+ sequence: p.sequence,
104
+ timestamp: p.timestamp,
105
+ type: p.type,
106
+ scope: p.scope,
107
+ payload: p.payload,
108
+ previousHash: p.sourcePreviousHash,
109
+ hash: p.sourceEventHash,
110
+ }));
111
+ const definitions = new Map();
112
+ const candidates = new Map();
113
+ let attemptCount = 0;
114
+ let closureCount = 0;
115
+ for (const event of events) {
116
+ if (event.type !== "investigation.approved")
117
+ continue;
118
+ const definition = await loadInvestigation(bundle, event.scope, String(event.payload.investigationId), events, store);
119
+ if (definitions.has(definition.recordSha256))
120
+ throw invalid("Investigation audit contains duplicate approval authority.");
121
+ definitions.set(definition.recordSha256, definition);
122
+ const history = await investigationAttemptHistory(bundle, event.scope, definition, events, store);
123
+ attemptCount += history.length;
124
+ if (await loadInvestigationClosure(bundle, event.scope, definition, history, events, store))
125
+ closureCount++;
126
+ for (const attempt of history)
127
+ for (const input of attempt.start.inputs)
128
+ await store.verifyBlob(event.scope, input);
129
+ for (const candidate of await loadInvestigationCandidates(bundle, event.scope, definition, events, history, store))
130
+ candidates.set(candidate.recordSha256, candidate);
131
+ }
132
+ const promotions = new Map();
133
+ for (const event of events) {
134
+ if (event.type !== "investigation.promotion.approved")
135
+ continue;
136
+ const promotion = preloadedPromotions.get(String(event.payload.recordSha256));
137
+ if (!promotion)
138
+ throw invalid("Investigation promotion has no selected project authority.");
139
+ if (!scientificHistory ||
140
+ scientificHistory.project.id !== promotion.projectId ||
141
+ scientificHistory.project.scientificDesign?.designSha256 !== promotion.plan.designSha256 ||
142
+ scientificHistory.project.publicationPolicy?.resolvedPolicySha256 !==
143
+ promotion.plan.policySha256)
144
+ throw invalid("Promotion has no verified target scientific history.");
145
+ const beforePromotion = scientificAuditViewBefore(scientificHistory, event.sequence);
146
+ if (sha256Text(canonicalJson(beforePromotion)) !== promotion.plan.beforeEffectiveDesignSha256)
147
+ throw invalid("Promotion does not bind its actual pre-approval scientific view.");
148
+ applyScientificFulfillmentRecord(beforePromotion, promotion.plan.fulfillment);
149
+ if (sha256Text(canonicalJson(beforePromotion)) !== promotion.plan.expectedEffectiveDesignSha256)
150
+ throw invalid("Promotion invents a different projected scientific fulfillment.");
151
+ const plan = promotion.plan, definition = definitions.get(plan.definitionSha256), candidate = candidates.get(plan.candidateSha256);
152
+ const selected = events.find((e) => e.type === "investigation.candidate.selected" &&
153
+ e.scope === plan.sourceProjectId &&
154
+ e.payload.recordSha256 === plan.candidateSha256);
155
+ if (!definition ||
156
+ !candidate ||
157
+ definition.projectId !== plan.sourceProjectId ||
158
+ definition.investigationId !== plan.investigationId ||
159
+ candidate.definitionSha256 !== definition.recordSha256 ||
160
+ candidate.recipeSha256 !== plan.recipeSha256 ||
161
+ canonicalJson(candidate.recipe) !== canonicalJson(plan.recipe) ||
162
+ !selected ||
163
+ selected.sequence >= event.sequence ||
164
+ promotions.has(promotion.recordSha256))
165
+ throw invalid("Investigation promotion does not bind its exact previously selected candidate and definition.");
166
+ if (plan.certification.maxRuns !== 1 ||
167
+ !Number.isSafeInteger(plan.certification.maxRunSeconds) ||
168
+ plan.certification.maxRunSeconds < 1 ||
169
+ !Number.isFinite(plan.certification.maxCostUsd) ||
170
+ plan.certification.maxCostUsd < 0 ||
171
+ !Number.isSafeInteger(plan.certification.maxOutputBytes) ||
172
+ plan.certification.maxOutputBytes < 1 ||
173
+ plan.certification.maxOutputBytes !== candidate.recipe.maxOutputBytes)
174
+ throw invalid("Investigation promotion has no finite one-run certification envelope.");
175
+ promotions.set(promotion.recordSha256, promotion);
176
+ }
177
+ const usedPromotions = new Set();
178
+ for (const event of events) {
179
+ if (event.type !== "project.task.run.started" || !event.payload.investigationPromotionSha256)
180
+ continue;
181
+ const hash = String(event.payload.investigationPromotionSha256), promotion = promotions.get(hash);
182
+ const approved = events.find((e) => e.type === "investigation.promotion.approved" &&
183
+ e.scope === event.scope &&
184
+ e.payload.recordSha256 === hash);
185
+ if (!promotion ||
186
+ promotion.projectId !== event.scope ||
187
+ !approved ||
188
+ approved.sequence >= event.sequence ||
189
+ usedPromotions.has(hash) ||
190
+ event.payload.requirementId !== promotion.plan.requirementId ||
191
+ event.payload.requirementSha256 !== promotion.plan.requirementSha256 ||
192
+ typeof event.payload.certificationReservedWallSeconds !== "number" ||
193
+ event.payload.certificationReservedWallSeconds < 1 ||
194
+ event.payload.certificationReservedWallSeconds > promotion.plan.certification.maxRunSeconds)
195
+ throw invalid("Certification start exceeds or precedes its exact promotion authority.");
196
+ usedPromotions.add(hash);
197
+ }
198
+ let certifications = 0;
199
+ return {
200
+ verifyRun: async (run, started) => {
201
+ const cert = run.investigationCertification;
202
+ if (started.payload.investigationPromotionSha256 !== cert?.promotionSha256)
203
+ throw invalid("Native run lost or changed its promoted certification purpose.");
204
+ if (!cert)
205
+ return;
206
+ const promotion = promotions.get(cert.promotionSha256), candidate = promotion ? candidates.get(promotion.plan.candidateSha256) : undefined;
207
+ if (!promotion ||
208
+ !candidate ||
209
+ promotion.projectId !== run.projectId ||
210
+ cert.candidateSha256 !== candidate.recordSha256 ||
211
+ cert.recipeSha256 !== candidate.recipeSha256)
212
+ throw invalid("Certification references an absent or foreign promoted candidate.");
213
+ if (!scientificHistory)
214
+ throw invalid("Certification has no verified scientific history.");
215
+ const atStart = scientificAuditViewBefore(scientificHistory, started.sequence);
216
+ const frozen = atStart.identity.modelStructures.find((model) => model.id === promotion.plan.modelId);
217
+ if (cert.effectiveDesignSha256 !== sha256Text(canonicalJson(atStart)) ||
218
+ run.designSha256 !== promotion.plan.designSha256 ||
219
+ run.policySha256 !== promotion.plan.policySha256 ||
220
+ !frozen ||
221
+ frozen.implementationStatus !== "executable-frozen" ||
222
+ frozen.implementationArtifactSha256 !== candidate.recipe.script.sha256 ||
223
+ frozen.implementationEntrypoint !==
224
+ (candidate.recipe.runtime.kind === "node" ? "program.mjs" : "program.py") ||
225
+ frozen.environmentLockStatus !== "exact-frozen" ||
226
+ frozen.environmentLockSha256 !== candidate.recipe.environmentLock.sha256)
227
+ throw invalid("Certification did not start from its exact frozen scientific execution view.");
228
+ const recipe = candidate.recipe;
229
+ if (run.requirementId !== promotion.plan.requirementId ||
230
+ run.requirementSha256 !== promotion.plan.requirementSha256 ||
231
+ run.script.sha256 !== recipe.script.sha256 ||
232
+ run.environmentLock.sha256 !== recipe.environmentLock.sha256 ||
233
+ run.runtime.binarySha256 !== recipe.runtime.binarySha256 ||
234
+ run.runtime.kind !== recipe.runtime.kind ||
235
+ canonicalJson(run.arguments) !== canonicalJson(recipe.arguments) ||
236
+ canonicalJson(run.inputs.map((i) => ({ id: i.id, artifactId: i.artifactId, sha256: i.sha256 }))) !==
237
+ canonicalJson(recipe.inputs.map((i) => ({ id: i.id, artifactId: i.artifactId, sha256: i.sha256 }))) ||
238
+ canonicalJson(run.expectedOutputIds) !== canonicalJson(recipe.outputs.map((o) => o.id)) ||
239
+ cert.actualCostUsd !== null ||
240
+ cert.maxOutputBytes !== promotion.plan.certification.maxOutputBytes ||
241
+ !Number.isSafeInteger(cert.observedOutputBytes) ||
242
+ cert.observedOutputBytes < 0 ||
243
+ typeof cert.outputLimitExceeded !== "boolean" ||
244
+ cert.observedOutputBytes !== run.process.observedOutputBytes ||
245
+ cert.outputLimitExceeded !== run.process.outputLimitExceeded ||
246
+ (!cert.outputLimitExceeded && cert.observedOutputBytes > cert.maxOutputBytes) ||
247
+ cert.accountedCostUpperBoundUsd !== promotion.plan.certification.maxCostUsd ||
248
+ !HASH.test(cert.effectiveDesignSha256) ||
249
+ !["passed", "failed"].includes(cert.status))
250
+ throw invalid("Certification differs from its exact promoted execution recipe.");
251
+ const output = run.outputs.find((o) => o.id === recipe.diagnosticOutputId && o.mediaType === "application/json");
252
+ let diagnostic = null;
253
+ if (output && output.bytes <= 65536) {
254
+ try {
255
+ diagnostic = parseInvestigationDiagnostic(JSON.parse((await store.readBlob(run.projectId, output, 65536)).toString("utf8")));
256
+ }
257
+ catch {
258
+ /* Invalid diagnostic cannot certify execution. */
259
+ }
260
+ }
261
+ const missing = diagnostic?.solverReached
262
+ ? [
263
+ ...recipe.telemetry.requiredMetrics
264
+ .filter((id) => !Object.hasOwn(diagnostic.metrics, id))
265
+ .map((id) => `metrics.${id}`),
266
+ ...recipe.telemetry.requiredStatuses
267
+ .filter((id) => !Object.hasOwn(diagnostic.statuses, id))
268
+ .map((id) => `statuses.${id}`),
269
+ ].sort()
270
+ : [];
271
+ const expectedStatus = run.status === "succeeded" &&
272
+ !cert.outputLimitExceeded &&
273
+ diagnostic?.solverReached &&
274
+ diagnostic.feasible &&
275
+ !missing.length
276
+ ? "passed"
277
+ : "failed";
278
+ if (canonicalJson(cert.diagnostic) !== canonicalJson(diagnostic) ||
279
+ canonicalJson(cert.missingTelemetry) !== canonicalJson(missing) ||
280
+ cert.status !== expectedStatus ||
281
+ !cert.isolation ||
282
+ !cert.runtimeProbeIsolation ||
283
+ !HASH.test(cert.isolation.policySha256) ||
284
+ !HASH.test(cert.runtimeProbeIsolation.policySha256) ||
285
+ !["sandbox-exec", "bubblewrap"].includes(cert.isolation.provider) ||
286
+ cert.isolation.provider !== cert.runtimeProbeIsolation.provider)
287
+ throw invalid("Certification diagnostic or isolation evidence is inconsistent.");
288
+ if (cert.status === "passed" &&
289
+ (run.runtime.version !== recipe.runtime.version ||
290
+ cert.runtimeProbe.exitCode !== 0 ||
291
+ cert.runtimeProbe.timedOut ||
292
+ cert.runtimeProbe.cancelled))
293
+ throw invalid("Passed certification has no successful exact runtime probe.");
294
+ certifications++;
295
+ },
296
+ report: () => ({
297
+ definitions: definitions.size,
298
+ attempts: attemptCount,
299
+ candidates: candidates.size,
300
+ promotions: promotions.size,
301
+ certifications,
302
+ ...(closureCount ? { closures: closureCount } : {}),
303
+ }),
304
+ };
305
+ }
306
+ //# sourceMappingURL=investigation-audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"investigation-audit.js","sourceRoot":"","sources":["../../../src/research/workspace/investigation-audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import { type InvestigationReadStore } from "./investigation-store.js";
2
+ import { type InvestigationDefinition } from "./investigation.js";
3
+ import { investigationAttemptHistory } from "./investigation-attempt.js";
4
+ import type { JournalEvent } from "./types.js";
5
+ interface SelectionInput {
6
+ schemaVersion: 1;
7
+ selectionId: string;
8
+ investigationId: string;
9
+ attemptId: string;
10
+ reason: string;
11
+ }
12
+ export declare function investigationCandidateInputSchema(): {
13
+ type: string;
14
+ additionalProperties: boolean;
15
+ required: string[];
16
+ properties: {
17
+ schemaVersion: {
18
+ const: number;
19
+ };
20
+ selectionId: {
21
+ type: string;
22
+ pattern: string;
23
+ };
24
+ investigationId: {
25
+ type: string;
26
+ pattern: string;
27
+ };
28
+ attemptId: {
29
+ type: string;
30
+ pattern: string;
31
+ };
32
+ reason: {
33
+ type: string;
34
+ minLength: number;
35
+ maxLength: number;
36
+ };
37
+ };
38
+ };
39
+ type AttemptHistory = Awaited<ReturnType<typeof investigationAttemptHistory>>;
40
+ declare function recipeFor(definition: InvestigationDefinition, attempt: AttemptHistory[number]): {
41
+ programId: string;
42
+ runtime: {
43
+ kind: "node" | "python";
44
+ version: string;
45
+ binarySha256: string;
46
+ platform: string;
47
+ architecture: string;
48
+ };
49
+ script: import("./types.js").OutputRecord;
50
+ environmentLock: import("./types.js").OutputRecord;
51
+ inputs: (import("./types.js").OutputRecord & {
52
+ id: string;
53
+ artifactId: string;
54
+ })[];
55
+ configuration: Record<string, string | number>;
56
+ arguments: string[];
57
+ outputs: {
58
+ id: string;
59
+ fileName: string;
60
+ mediaType: string;
61
+ }[];
62
+ diagnosticOutputId: string;
63
+ telemetry: {
64
+ requiredMetrics: string[];
65
+ requiredStatuses: string[];
66
+ };
67
+ maxOutputBytes: number;
68
+ };
69
+ export interface InvestigationCandidate extends SelectionInput {
70
+ kind: "tiangong-investigation-candidate";
71
+ projectId: string;
72
+ definitionSha256: string;
73
+ attemptSha256: string;
74
+ parentCandidateSha256: string | null;
75
+ requestSha256: string;
76
+ recipe: ReturnType<typeof recipeFor>;
77
+ recipeSha256: string;
78
+ purpose: "diagnostic-candidate-only";
79
+ selectedAt: string;
80
+ recordSha256: string;
81
+ }
82
+ export declare function loadInvestigationCandidates(root: string, projectId: string, definition: InvestigationDefinition, events: JournalEvent[], attempts: AttemptHistory, store?: InvestigationReadStore): Promise<InvestigationCandidate[]>;
83
+ export declare function selectInvestigationCandidate(root: string, projectId: string, value: unknown): Promise<InvestigationCandidate>;
84
+ export {};