@tiangong-ai/cli 0.0.60 → 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 (239) hide show
  1. package/AGENTS.md +17 -6
  2. package/README.md +577 -55
  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 +341 -28
  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/acquisition-routes.d.ts +1 -1
  72. package/dist/research/workspace/acquisition-routes.js +2 -11
  73. package/dist/research/workspace/acquisition-routes.js.map +1 -1
  74. package/dist/research/workspace/artifact-read-audit.d.ts +16 -0
  75. package/dist/research/workspace/artifact-read-audit.js +176 -0
  76. package/dist/research/workspace/artifact-read-audit.js.map +1 -0
  77. package/dist/research/workspace/artifact-trace.d.ts +12 -0
  78. package/dist/research/workspace/artifact-trace.js +109 -0
  79. package/dist/research/workspace/artifact-trace.js.map +1 -0
  80. package/dist/research/workspace/artifact-view-mcp.d.ts +75 -0
  81. package/dist/research/workspace/artifact-view-mcp.js +214 -0
  82. package/dist/research/workspace/artifact-view-mcp.js.map +1 -0
  83. package/dist/research/workspace/artifact-views.d.ts +100 -0
  84. package/dist/research/workspace/artifact-views.js +395 -0
  85. package/dist/research/workspace/artifact-views.js.map +1 -0
  86. package/dist/research/workspace/audit-bundle.d.ts +4 -0
  87. package/dist/research/workspace/audit-bundle.js +130 -11
  88. package/dist/research/workspace/audit-bundle.js.map +1 -1
  89. package/dist/research/workspace/broker.js +25 -4
  90. package/dist/research/workspace/broker.js.map +1 -1
  91. package/dist/research/workspace/constants.d.ts +1 -0
  92. package/dist/research/workspace/constants.js +1 -0
  93. package/dist/research/workspace/constants.js.map +1 -1
  94. package/dist/research/workspace/content-evidence.d.ts +1 -0
  95. package/dist/research/workspace/content-evidence.js +1 -1
  96. package/dist/research/workspace/content-evidence.js.map +1 -1
  97. package/dist/research/workspace/credentials.js +2 -1
  98. package/dist/research/workspace/credentials.js.map +1 -1
  99. package/dist/research/workspace/data-evidence-adapter.d.ts +71 -0
  100. package/dist/research/workspace/data-evidence-adapter.js +269 -59
  101. package/dist/research/workspace/data-evidence-adapter.js.map +1 -1
  102. package/dist/research/workspace/data-evidence-view.d.ts +58 -0
  103. package/dist/research/workspace/data-evidence-view.js +411 -0
  104. package/dist/research/workspace/data-evidence-view.js.map +1 -0
  105. package/dist/research/workspace/evidence-ledger.js +32 -29
  106. package/dist/research/workspace/evidence-ledger.js.map +1 -1
  107. package/dist/research/workspace/evidence.d.ts +28 -0
  108. package/dist/research/workspace/evidence.js +48 -0
  109. package/dist/research/workspace/evidence.js.map +1 -1
  110. package/dist/research/workspace/executor.d.ts +32 -2
  111. package/dist/research/workspace/executor.js +286 -42
  112. package/dist/research/workspace/executor.js.map +1 -1
  113. package/dist/research/workspace/investigation-attempt.d.ts +159 -0
  114. package/dist/research/workspace/investigation-attempt.js +619 -0
  115. package/dist/research/workspace/investigation-attempt.js.map +1 -0
  116. package/dist/research/workspace/investigation-audit.d.ts +20 -0
  117. package/dist/research/workspace/investigation-audit.js +306 -0
  118. package/dist/research/workspace/investigation-audit.js.map +1 -0
  119. package/dist/research/workspace/investigation-candidate.d.ts +84 -0
  120. package/dist/research/workspace/investigation-candidate.js +156 -0
  121. package/dist/research/workspace/investigation-candidate.js.map +1 -0
  122. package/dist/research/workspace/investigation-certification.d.ts +39 -0
  123. package/dist/research/workspace/investigation-certification.js +152 -0
  124. package/dist/research/workspace/investigation-certification.js.map +1 -0
  125. package/dist/research/workspace/investigation-close.d.ts +47 -0
  126. package/dist/research/workspace/investigation-close.js +153 -0
  127. package/dist/research/workspace/investigation-close.js.map +1 -0
  128. package/dist/research/workspace/investigation-lineage.d.ts +8 -0
  129. package/dist/research/workspace/investigation-lineage.js +10 -0
  130. package/dist/research/workspace/investigation-lineage.js.map +1 -0
  131. package/dist/research/workspace/investigation-observer.d.ts +22 -0
  132. package/dist/research/workspace/investigation-observer.js +122 -0
  133. package/dist/research/workspace/investigation-observer.js.map +1 -0
  134. package/dist/research/workspace/investigation-promotion.d.ts +129 -0
  135. package/dist/research/workspace/investigation-promotion.js +316 -0
  136. package/dist/research/workspace/investigation-promotion.js.map +1 -0
  137. package/dist/research/workspace/investigation-requirements.d.ts +5 -0
  138. package/dist/research/workspace/investigation-requirements.js +32 -0
  139. package/dist/research/workspace/investigation-requirements.js.map +1 -0
  140. package/dist/research/workspace/investigation-resources.d.ts +12 -0
  141. package/dist/research/workspace/investigation-resources.js +78 -0
  142. package/dist/research/workspace/investigation-resources.js.map +1 -0
  143. package/dist/research/workspace/investigation-source-export.d.ts +6 -0
  144. package/dist/research/workspace/investigation-source-export.js +68 -0
  145. package/dist/research/workspace/investigation-source-export.js.map +1 -0
  146. package/dist/research/workspace/investigation-store.d.ts +9 -0
  147. package/dist/research/workspace/investigation-store.js +55 -0
  148. package/dist/research/workspace/investigation-store.js.map +1 -0
  149. package/dist/research/workspace/investigation.d.ts +424 -0
  150. package/dist/research/workspace/investigation.js +716 -0
  151. package/dist/research/workspace/investigation.js.map +1 -0
  152. package/dist/research/workspace/native-process-supervisor.d.ts +1 -0
  153. package/dist/research/workspace/native-process-supervisor.js +97 -0
  154. package/dist/research/workspace/native-process-supervisor.js.map +1 -0
  155. package/dist/research/workspace/native-run.d.ts +150 -0
  156. package/dist/research/workspace/native-run.js +879 -0
  157. package/dist/research/workspace/native-run.js.map +1 -0
  158. package/dist/research/workspace/preflight.d.ts +11 -2
  159. package/dist/research/workspace/preflight.js +28 -20
  160. package/dist/research/workspace/preflight.js.map +1 -1
  161. package/dist/research/workspace/project-authority.js +2 -0
  162. package/dist/research/workspace/project-authority.js.map +1 -1
  163. package/dist/research/workspace/project-budget.d.ts +41 -0
  164. package/dist/research/workspace/project-budget.js +265 -0
  165. package/dist/research/workspace/project-budget.js.map +1 -0
  166. package/dist/research/workspace/project-mutations.d.ts +1 -1
  167. package/dist/research/workspace/project-mutations.js +29 -3
  168. package/dist/research/workspace/project-mutations.js.map +1 -1
  169. package/dist/research/workspace/projects.d.ts +66 -0
  170. package/dist/research/workspace/projects.js +182 -3
  171. package/dist/research/workspace/projects.js.map +1 -1
  172. package/dist/research/workspace/provider-budget.d.ts +3 -0
  173. package/dist/research/workspace/provider-budget.js +45 -0
  174. package/dist/research/workspace/provider-budget.js.map +1 -0
  175. package/dist/research/workspace/provider-state.d.ts +1 -0
  176. package/dist/research/workspace/provider-state.js +20 -0
  177. package/dist/research/workspace/provider-state.js.map +1 -0
  178. package/dist/research/workspace/publication-lineage.d.ts +34 -0
  179. package/dist/research/workspace/publication-lineage.js +165 -0
  180. package/dist/research/workspace/publication-lineage.js.map +1 -0
  181. package/dist/research/workspace/publication-workflow.d.ts +24 -0
  182. package/dist/research/workspace/publication-workflow.js +118 -14
  183. package/dist/research/workspace/publication-workflow.js.map +1 -1
  184. package/dist/research/workspace/request-provenance.d.ts +67 -0
  185. package/dist/research/workspace/request-provenance.js +115 -0
  186. package/dist/research/workspace/request-provenance.js.map +1 -0
  187. package/dist/research/workspace/review-executor.d.ts +6 -1
  188. package/dist/research/workspace/review-executor.js +39 -14
  189. package/dist/research/workspace/review-executor.js.map +1 -1
  190. package/dist/research/workspace/runtime.d.ts +64 -1
  191. package/dist/research/workspace/runtime.js +359 -112
  192. package/dist/research/workspace/runtime.js.map +1 -1
  193. package/dist/research/workspace/sanitization.js +1 -1
  194. package/dist/research/workspace/sanitization.js.map +1 -1
  195. package/dist/research/workspace/schema-compatibility.d.ts +5 -0
  196. package/dist/research/workspace/schema-compatibility.js +55 -0
  197. package/dist/research/workspace/schema-compatibility.js.map +1 -0
  198. package/dist/research/workspace/scientific-amendment.d.ts +103 -0
  199. package/dist/research/workspace/scientific-amendment.js +537 -0
  200. package/dist/research/workspace/scientific-amendment.js.map +1 -0
  201. package/dist/research/workspace/scientific-design.js +8 -17
  202. package/dist/research/workspace/scientific-design.js.map +1 -1
  203. package/dist/research/workspace/scientific-fulfillment-audit.d.ts +21 -0
  204. package/dist/research/workspace/scientific-fulfillment-audit.js +217 -0
  205. package/dist/research/workspace/scientific-fulfillment-audit.js.map +1 -0
  206. package/dist/research/workspace/scientific-fulfillment.d.ts +130 -0
  207. package/dist/research/workspace/scientific-fulfillment.js +553 -0
  208. package/dist/research/workspace/scientific-fulfillment.js.map +1 -0
  209. package/dist/research/workspace/scientific-review-execution.js +236 -75
  210. package/dist/research/workspace/scientific-review-execution.js.map +1 -1
  211. package/dist/research/workspace/scientific-review.d.ts +6 -1
  212. package/dist/research/workspace/scientific-review.js +228 -52
  213. package/dist/research/workspace/scientific-review.js.map +1 -1
  214. package/dist/research/workspace/setup-catalog.js +3 -3
  215. package/dist/research/workspace/setup-release.d.ts +22 -0
  216. package/dist/research/workspace/setup-release.js +426 -0
  217. package/dist/research/workspace/setup-release.js.map +1 -0
  218. package/dist/research/workspace/setup-runtime-integrity.d.ts +2 -0
  219. package/dist/research/workspace/setup-runtime-integrity.js +31 -0
  220. package/dist/research/workspace/setup-runtime-integrity.js.map +1 -0
  221. package/dist/research/workspace/setup-upgrade.d.ts +17 -0
  222. package/dist/research/workspace/setup-upgrade.js +784 -0
  223. package/dist/research/workspace/setup-upgrade.js.map +1 -0
  224. package/dist/research/workspace/setup.d.ts +31 -39
  225. package/dist/research/workspace/setup.js +220 -17
  226. package/dist/research/workspace/setup.js.map +1 -1
  227. package/dist/research/workspace/task-acceptance.d.ts +17 -2
  228. package/dist/research/workspace/task-acceptance.js +106 -10
  229. package/dist/research/workspace/task-acceptance.js.map +1 -1
  230. package/dist/research/workspace/task-audit.d.ts +5 -1
  231. package/dist/research/workspace/task-audit.js +70 -5
  232. package/dist/research/workspace/task-audit.js.map +1 -1
  233. package/dist/research/workspace/task-contract.d.ts +4 -1
  234. package/dist/research/workspace/task-contract.js +26 -5
  235. package/dist/research/workspace/task-contract.js.map +1 -1
  236. package/dist/research/workspace/types.d.ts +50 -3
  237. package/dist/research/workspace/workspace.js +34 -4
  238. package/dist/research/workspace/workspace.js.map +1 -1
  239. package/package.json +2 -1
@@ -1,3 +1,5 @@
1
+ import { reserveProviderOperation, settleProviderOperation } from "./provider-budget.js";
2
+ import { assertProjectAuthority, projectAuthorityIndex } from "./project-authority.js";
1
3
  import { randomUUID } from "node:crypto";
2
4
  import { mkdtemp, readFile, rm } from "node:fs/promises";
3
5
  import { tmpdir } from "node:os";
@@ -8,19 +10,23 @@ import { validateDataPublicContract } from "../../data/schemas.js";
8
10
  import { CliError } from "../../errors.js";
9
11
  import { loadCapabilityDeclarations, verifyCapabilities } from "./capabilities.js";
10
12
  import { loadCapabilityCredentialMapForIds, researchDataCredentialId, researchDataCredentialIds, } from "./credentials.js";
11
- import { persistDataEvidence, } from "./evidence.js";
13
+ import { loadProjectEvidenceReceipts, persistDataEvidence, } from "./evidence.js";
12
14
  import { registerDataResultCandidate } from "./evidence-ledger.js";
13
- import { appendJournalEvent, readJournal } from "./journal.js";
15
+ import { appendJournalEvent, readVerifiedJournal } from "./journal.js";
14
16
  import { loadProject } from "./projects.js";
15
17
  import { canonicalJson, sha256Bytes, sha256Text, workspacePaths } from "./storage.js";
16
18
  import { loadWorkspaceConfig } from "./workspace.js";
19
+ import { boundedResearchDataContext, buildResearchDataCommunication, inferResearchDataResultShape, } from "./data-evidence-view.js";
17
20
  const DATA_CONTEXT_BYTES_PER_TOKEN = 4;
21
+ const DATA_AGENT_OUTPUT_ENVELOPE_BYTES = 64 * 1024;
18
22
  export function researchDataCapabilityId(capabilityId, operationId) {
19
23
  return `data:${capabilityId}:${operationId}`;
20
24
  }
21
25
  export function projectResearchDataCapabilities(registry = builtInDataRegistry) {
22
26
  const dataCatalog = registry.catalog();
23
- const capabilities = dataCatalog.capabilities.flatMap((capability) => projectCapability(registry, capability));
27
+ const capabilities = dataCatalog.capabilities
28
+ .filter((capability) => capability.availability.status === "available")
29
+ .flatMap((capability) => projectCapability(registry, capability));
24
30
  const stable = {
25
31
  schemaVersion: 1,
26
32
  kind: "tiangong-research-data-capabilities",
@@ -39,6 +45,8 @@ export async function executeResearchDataCapability(input) {
39
45
  const request = input.request;
40
46
  const registry = input.registry ?? builtInDataRegistry;
41
47
  const project = await loadProject(input.root, input.projectId);
48
+ const authorityJournal = await readVerifiedJournal(workspacePaths(input.root).journal);
49
+ assertProjectAuthority(project, projectAuthorityIndex(authorityJournal));
42
50
  const discover = project.packages.find((workPackage) => workPackage.stage === "discover");
43
51
  if (discover?.status !== "running" || discover.executor !== "producer") {
44
52
  throw researchDataError("Research data execution is allowed only during an active native discover stage.", "RESEARCH_NATIVE_STAGE_REQUIRED");
@@ -57,13 +65,17 @@ export async function executeResearchDataCapability(input) {
57
65
  throw researchDataError("The requested data capability operation is not registered.", "RESEARCH_DATA_CAPABILITY_INVALID");
58
66
  }
59
67
  const config = await loadWorkspaceConfig(input.root);
60
- const journal = await readJournal(workspacePaths(input.root).journal);
68
+ const agentOutputBudget = {
69
+ maxBytes: config.budget.maxBrokerContextTokens * DATA_CONTEXT_BYTES_PER_TOKEN +
70
+ DATA_AGENT_OUTPUT_ENVELOPE_BYTES,
71
+ };
72
+ const journal = authorityJournal;
61
73
  const startedCalls = journal.filter((event) => event.scope === input.projectId &&
62
74
  (event.type === "capability.fetch.requested" || event.type === "data.capability.requested")).length;
63
75
  if (startedCalls >= config.budget.maxBrokerCalls) {
64
76
  throw researchDataError(`Research evidence call ceiling reached: ${startedCalls}/${config.budget.maxBrokerCalls}.`, "RESEARCH_DATA_CALL_LIMIT_EXCEEDED");
65
77
  }
66
- const effectiveRequest = boundedRequest(request, operation.manifest.limits, config.budget);
78
+ const effectiveRequest = structuredClone(request);
67
79
  validateDataPublicContract("runRequest", effectiveRequest);
68
80
  const researchCapabilityId = researchDataCapabilityId(request.capabilityId, request.operationId);
69
81
  const attemptId = randomUUID();
@@ -76,6 +88,8 @@ export async function executeResearchDataCapability(input) {
76
88
  manifestDigest: connector.manifest.manifestDigest,
77
89
  requestEnvelopeSha256: sha256Text(canonicalJson(effectiveRequest)),
78
90
  });
91
+ let providerReservation = null;
92
+ let admissionFailure;
79
93
  const artifactDirectory = operation.manifest.artifactOutput
80
94
  ? await mkdtemp(join(tmpdir(), "tiangong-research-data-artifacts-"))
81
95
  : undefined;
@@ -97,10 +111,21 @@ export async function executeResearchDataCapability(input) {
97
111
  const coreResult = await executeDataRun(effectiveRequest, {
98
112
  registry,
99
113
  environment,
114
+ beforeExecute: async () => {
115
+ try {
116
+ providerReservation = await reserveProviderOperation(input.root, project, config, researchCapabilityId, attemptId);
117
+ }
118
+ catch (error) {
119
+ admissionFailure = error;
120
+ throw error;
121
+ }
122
+ },
100
123
  ...(input.fetchImpl === undefined ? {} : { fetchImpl: input.fetchImpl }),
101
124
  ...(input.clock === undefined ? {} : { clock: input.clock }),
102
125
  ...(artifactDirectory === undefined ? {} : { artifactOutputDirectory: artifactDirectory }),
103
126
  });
127
+ if (admissionFailure)
128
+ throw admissionFailure;
104
129
  if (coreResult.status === "blocked") {
105
130
  await appendJournalEvent(workspacePaths(input.root).journal, "data.capability.failed", input.projectId, {
106
131
  attemptId,
@@ -113,17 +138,29 @@ export async function executeResearchDataCapability(input) {
113
138
  evidenceReceipt: null,
114
139
  candidate: null,
115
140
  boundedContext: null,
141
+ communication: null,
116
142
  dataBudget: budget(config.budget.maxBrokerCalls, startedCalls + 1),
143
+ agentOutputBudget,
117
144
  };
118
145
  }
119
146
  const serialized = Buffer.from(`${canonicalJson(coreResult)}\n`, "utf8");
120
- if (serialized.byteLength > config.budget.maxBytesPerPackage) {
121
- throw researchDataError("The validated data result exceeds the Research evidence object byte ceiling.", "RESEARCH_DATA_RESULT_TOO_LARGE");
122
- }
123
- const context = boundedResultContext(coreResult, config.budget.maxBrokerContextTokens * DATA_CONTEXT_BYTES_PER_TOKEN);
124
147
  const artifacts = artifactDirectory
125
148
  ? await loadDataEvidenceArtifacts(artifactDirectory, coreResult.data)
126
149
  : [];
150
+ assertEvidencePackageBudget(serialized, artifacts, config.budget);
151
+ const maxContextBytes = config.budget.maxBrokerContextTokens * DATA_CONTEXT_BYTES_PER_TOKEN;
152
+ let context;
153
+ try {
154
+ context = boundedResearchDataContext(coreResult, maxContextBytes, config.budget.maxBrokerItems);
155
+ }
156
+ catch {
157
+ throw researchDataError("Data evidence metadata exceeds the Research bounded-context ceiling.", "RESEARCH_DATA_CONTEXT_TOO_LARGE");
158
+ }
159
+ const evidenceSha256 = sha256Bytes(serialized);
160
+ const communication = buildResearchDataCommunication(coreResult, context, {
161
+ maxBytes: maxContextBytes,
162
+ maxItems: config.budget.maxBrokerItems,
163
+ }, (offset) => encodeDataEvidenceCursor(evidenceSha256, context.collection, offset));
127
164
  const receipt = await persistDataEvidence(input.root, {
128
165
  attemptId,
129
166
  projectId: input.projectId,
@@ -134,11 +171,11 @@ export async function executeResearchDataCapability(input) {
134
171
  sourceSha256: coreResult.receipt.aggregateResponseDigest ??
135
172
  coreResult.receipt.normalizedDataDigest ??
136
173
  coreResult.receipt.receiptDigest,
137
- contextItems: coreResult.summary.recordCount,
174
+ contextItems: context.itemCount,
138
175
  contextOffset: 0,
139
- contextTotalItems: coreResult.summary.recordCount,
140
- contextNextOffset: null,
141
- contextTruncated: context.truncated,
176
+ contextTotalItems: context.totalItems,
177
+ contextNextOffset: context.nextOffset,
178
+ contextTruncated: context.projected,
142
179
  redactions: 0,
143
180
  retrievedAt: coreResult.receipt.generatedAt,
144
181
  cacheHit: false,
@@ -153,6 +190,10 @@ export async function executeResearchDataCapability(input) {
153
190
  inputSchemaDigest: coreResult.contract.inputSchema.digest,
154
191
  outputSchemaDigest: coreResult.contract.outputSchema.digest,
155
192
  resultStatus: coreResult.status,
193
+ coverage: communication.requestCoverage,
194
+ providerCoverage: communication.providerCoverage,
195
+ limitCoverage: communication.limitCoverage,
196
+ contextView: communication.contextView,
156
197
  },
157
198
  }, serialized, context.bytes, artifacts);
158
199
  const discovery = connector.discovery;
@@ -162,7 +203,7 @@ export async function executeResearchDataCapability(input) {
162
203
  projectId: input.projectId,
163
204
  receipt,
164
205
  title: `${discovery.source.name}: ${operationDiscovery.summary}`,
165
- excerpt: `${discovery.summary} Returned ${coreResult.summary.recordCount} record(s) with ${coreResult.summary.completeness} completeness.`,
206
+ excerpt: candidateExcerpt(discovery.summary, communication),
166
207
  });
167
208
  await appendJournalEvent(workspacePaths(input.root).journal, "data.capability.completed", input.projectId, {
168
209
  attemptId,
@@ -173,6 +214,10 @@ export async function executeResearchDataCapability(input) {
173
214
  candidateId: candidate.id,
174
215
  status: coreResult.status,
175
216
  recordCount: coreResult.summary.recordCount,
217
+ coverageStatus: communication.requestCoverage.status,
218
+ coverageTruncated: communication.requestCoverage.truncated,
219
+ contextStatus: communication.contextView.status,
220
+ contextItems: communication.contextView.itemCount,
176
221
  artifactCount: receipt.data?.artifacts.length ?? 0,
177
222
  });
178
223
  return {
@@ -182,9 +227,11 @@ export async function executeResearchDataCapability(input) {
182
227
  boundedContext: {
183
228
  encoding: "utf8",
184
229
  text: Buffer.from(context.bytes).toString("utf8"),
185
- truncated: context.truncated,
230
+ truncated: context.projected,
186
231
  },
232
+ communication,
187
233
  dataBudget: budget(config.budget.maxBrokerCalls, startedCalls + 1),
234
+ agentOutputBudget,
188
235
  };
189
236
  }
190
237
  catch (error) {
@@ -196,9 +243,132 @@ export async function executeResearchDataCapability(input) {
196
243
  throw error;
197
244
  }
198
245
  finally {
199
- if (artifactDirectory)
200
- await rm(artifactDirectory, { recursive: true, force: true });
246
+ // Persist returned evidence before the accounting write, so a ledger I/O
247
+ // failure cannot discard already-fetched material. Always clean staging.
248
+ try {
249
+ await settleProviderOperation(input.root, input.projectId, providerReservation);
250
+ }
251
+ finally {
252
+ if (artifactDirectory)
253
+ await rm(artifactDirectory, { recursive: true, force: true });
254
+ }
255
+ }
256
+ }
257
+ export async function readResearchDataEvidence(input) {
258
+ const project = await loadProject(input.root, input.projectId);
259
+ const discover = project.packages.find((workPackage) => workPackage.stage === "discover");
260
+ if (discover?.status !== "running" || discover.executor !== "producer") {
261
+ throw researchDataError("Research data evidence can be read only during an active native discover stage.", "RESEARCH_NATIVE_STAGE_REQUIRED");
262
+ }
263
+ const receipts = await loadProjectEvidenceReceipts(input.root, input.projectId);
264
+ const receipt = receipts.find((candidate) => candidate.attemptId === input.receiptId);
265
+ if (!receipt || receipt.evidenceKind !== "data") {
266
+ throw researchDataError("The requested Research data evidence receipt does not exist.", "RESEARCH_DATA_EVIDENCE_NOT_FOUND", 2);
267
+ }
268
+ const decodedCursor = decodeDataEvidenceCursor(input.cursor, receipt.sha256);
269
+ const serialized = await readFile(join(workspacePaths(input.root).control, receipt.locator));
270
+ let parsed;
271
+ try {
272
+ parsed = JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(serialized));
273
+ validateDataPublicContract("runResult", parsed);
201
274
  }
275
+ catch {
276
+ throw researchDataError("The persisted Research data evidence object is not a valid core result.", "RESEARCH_EVIDENCE_STORE_INVALID");
277
+ }
278
+ const coreResult = parsed;
279
+ const config = await loadWorkspaceConfig(input.root);
280
+ const maxContextBytes = config.budget.maxBrokerContextTokens * DATA_CONTEXT_BYTES_PER_TOKEN;
281
+ const context = boundedResearchDataContext(coreResult, maxContextBytes, config.budget.maxBrokerItems, decodedCursor.offset);
282
+ if (decodedCursor.collection !== context.collection ||
283
+ decodedCursor.offset < 0 ||
284
+ decodedCursor.offset >= context.totalItems) {
285
+ throw researchDataError("The Research data evidence cursor is outside the persisted collection.", "RESEARCH_DATA_EVIDENCE_CURSOR_INVALID", 2);
286
+ }
287
+ const communication = buildResearchDataCommunication(coreResult, context, {
288
+ maxBytes: maxContextBytes,
289
+ maxItems: config.budget.maxBrokerItems,
290
+ }, (nextOffset) => encodeDataEvidenceCursor(receipt.sha256, context.collection, nextOffset));
291
+ await appendJournalEvent(workspacePaths(input.root).journal, "data.evidence.viewed", input.projectId, {
292
+ receiptId: receipt.attemptId,
293
+ evidenceSha256: receipt.sha256,
294
+ offset: context.offset,
295
+ itemCount: context.itemCount,
296
+ totalItems: context.totalItems,
297
+ collection: context.collection,
298
+ remainingItems: context.remainingItems,
299
+ });
300
+ return {
301
+ schemaVersion: 1,
302
+ kind: "tiangong-research-data-evidence-view",
303
+ projectId: input.projectId,
304
+ receiptId: receipt.attemptId,
305
+ evidenceSha256: receipt.sha256,
306
+ boundedContext: {
307
+ encoding: "utf8",
308
+ text: Buffer.from(context.bytes).toString("utf8"),
309
+ truncated: context.remainingItems > 0,
310
+ },
311
+ communication,
312
+ agentOutputBudget: {
313
+ maxBytes: maxContextBytes + DATA_AGENT_OUTPUT_ENVELOPE_BYTES,
314
+ },
315
+ };
316
+ }
317
+ export function projectResearchDataExecutionResult(result) {
318
+ const communication = result.communication;
319
+ const evidenceReceipt = result.evidenceReceipt;
320
+ const value = {
321
+ schemaVersion: 1,
322
+ kind: "tiangong-research-data-execution",
323
+ status: result.coreResult.status,
324
+ contract: structuredClone(result.coreResult.contract),
325
+ summary: structuredClone(result.coreResult.summary),
326
+ warnings: [...result.coreResult.warnings],
327
+ errors: structuredClone(result.coreResult.errors),
328
+ receipt: {
329
+ coreReceiptDigest: result.coreResult.receipt.receiptDigest,
330
+ requestDigest: result.coreResult.receipt.requestDigest,
331
+ normalizedDataDigest: result.coreResult.receipt.normalizedDataDigest,
332
+ generatedAt: result.coreResult.receipt.generatedAt,
333
+ },
334
+ evidence: evidenceReceipt && result.candidate
335
+ ? {
336
+ receiptId: evidenceReceipt.attemptId,
337
+ evidenceSha256: evidenceReceipt.sha256,
338
+ locator: evidenceReceipt.locator,
339
+ coreReceiptDigest: result.coreResult.receipt.receiptDigest,
340
+ candidateId: result.candidate.id,
341
+ }
342
+ : null,
343
+ coverage: communication ? coverageWithoutContext(communication) : null,
344
+ contextView: communication && result.boundedContext
345
+ ? {
346
+ ...structuredClone(communication.contextView),
347
+ content: parseBoundedContextContent(result.boundedContext.text),
348
+ }
349
+ : null,
350
+ dataBudget: structuredClone(result.dataBudget),
351
+ outputBudget: structuredClone(result.agentOutputBudget),
352
+ };
353
+ assertAgentOutputBudget(value, value.outputBudget.maxBytes);
354
+ return value;
355
+ }
356
+ export function projectResearchDataEvidenceViewResult(result) {
357
+ const value = {
358
+ schemaVersion: 1,
359
+ kind: "tiangong-research-data-evidence-view",
360
+ projectId: result.projectId,
361
+ receiptId: result.receiptId,
362
+ evidenceSha256: result.evidenceSha256,
363
+ contextView: {
364
+ ...structuredClone(result.communication.contextView),
365
+ content: parseBoundedContextContent(result.boundedContext.text),
366
+ },
367
+ coverage: coverageWithoutContext(result.communication),
368
+ outputBudget: structuredClone(result.agentOutputBudget),
369
+ };
370
+ assertAgentOutputBudget(value, value.outputBudget.maxBytes);
371
+ return value;
202
372
  }
203
373
  function projectCapability(registry, capability) {
204
374
  const registered = registry.registered(capability.capabilityId);
@@ -218,6 +388,7 @@ function projectCapability(registry, capability) {
218
388
  inputSchemaDigest: operation.inputSchemaDigest,
219
389
  outputSchemaDigest: operation.outputSchemaDigest,
220
390
  artifactOutput: Boolean(registered.operations.get(operation.operationId)?.manifest.artifactOutput),
391
+ resultShape: inferResearchDataResultShape(registered.operations.get(operation.operationId).definition.outputSchema, Boolean(registered.operations.get(operation.operationId)?.manifest.artifactOutput)),
221
392
  credentials: registered.manifest.credentials.map((credential) => ({
222
393
  id: researchDataCredentialId(capability.capabilityId, credential.credentialId),
223
394
  credentialId: credential.credentialId,
@@ -226,48 +397,6 @@ function projectCapability(registry, capability) {
226
397
  })),
227
398
  }));
228
399
  }
229
- function boundedRequest(request, operationLimits, budgetValue) {
230
- const currentResponseBytes = request.limits?.maxResponseBytes ?? operationLimits.maxResponseBytes;
231
- const currentRecords = request.limits?.maxRecords ?? operationLimits.maxRecords;
232
- const maxResponseBytes = Math.min(currentResponseBytes, budgetValue.maxBrokerResponseBytes);
233
- const maxRecords = Math.min(currentRecords, budgetValue.maxBrokerItems);
234
- const changed = maxResponseBytes !== operationLimits.maxResponseBytes ||
235
- maxRecords !== operationLimits.maxRecords ||
236
- request.limits !== undefined;
237
- if (!changed)
238
- return structuredClone(request);
239
- const limits = {
240
- ...(request.limits ?? {}),
241
- maxResponseBytes,
242
- maxRecords,
243
- };
244
- return { ...structuredClone(request), limits };
245
- }
246
- function boundedResultContext(result, maxBytes) {
247
- const full = Buffer.from(`${canonicalJson(result)}\n`, "utf8");
248
- if (full.byteLength <= maxBytes)
249
- return { bytes: full, truncated: false };
250
- const projection = {
251
- schemaVersion: result.schemaVersion,
252
- status: result.status,
253
- requestId: result.requestId,
254
- contract: result.contract,
255
- summary: result.summary,
256
- warnings: result.warnings,
257
- errors: result.errors,
258
- receipt: result.receipt,
259
- data: {
260
- omittedFromBoundedContext: true,
261
- normalizedDataDigest: result.receipt.normalizedDataDigest,
262
- fullEvidenceLocatorAvailableInReceipt: true,
263
- },
264
- };
265
- const bytes = Buffer.from(`${canonicalJson(projection)}\n`, "utf8");
266
- if (bytes.byteLength > maxBytes) {
267
- throw researchDataError("Data evidence metadata exceeds the Research bounded-context ceiling.", "RESEARCH_DATA_CONTEXT_TOO_LARGE");
268
- }
269
- return { bytes, truncated: true };
270
- }
271
400
  async function loadDataEvidenceArtifacts(directory, data) {
272
401
  const records = collectArtifactRecords(data);
273
402
  return Promise.all(records.map(async (record) => {
@@ -278,6 +407,87 @@ async function loadDataEvidenceArtifacts(directory, data) {
278
407
  return { ...record, bytes };
279
408
  }));
280
409
  }
410
+ function assertEvidencePackageBudget(resultBytes, artifacts, limits) {
411
+ // Artifact-producing connectors may bind one machine-readable manifest in
412
+ // addition to the bounded source files.
413
+ if (artifacts.length > limits.maxFilesPerPackage + 1) {
414
+ throw researchDataError(`The validated data result has ${artifacts.length} artifacts; the Research evidence package allows ${limits.maxFilesPerPackage} source files plus one manifest.`, "RESEARCH_DATA_RESULT_TOO_LARGE");
415
+ }
416
+ const totalBytes = artifacts.reduce((total, artifact) => total + artifact.bytes.byteLength, resultBytes.byteLength);
417
+ if (totalBytes > limits.maxBytesPerPackage) {
418
+ throw researchDataError(`The validated data result and artifacts require ${totalBytes} bytes; the Research evidence package allows ${limits.maxBytesPerPackage}.`, "RESEARCH_DATA_RESULT_TOO_LARGE");
419
+ }
420
+ }
421
+ function candidateExcerpt(sourceSummary, communication) {
422
+ const coverage = communication.requestCoverage;
423
+ const stopReason = coverage.stopReason ? ` (stop reason: ${coverage.stopReason})` : "";
424
+ const coverageText = coverage.status === "complete"
425
+ ? "Request coverage is complete."
426
+ : coverage.status === "bounded"
427
+ ? `Request coverage is bounded${stopReason}; the persisted evidence contains every returned record.`
428
+ : `Request coverage is partial${stopReason}; inspect missing ranges and validation issues.`;
429
+ const context = communication.contextView;
430
+ const limitText = communication.limitCoverage.status === "bounded"
431
+ ? ` Explicit limits were also reached: ${communication.limitCoverage.limitsHit.join(", ")}.`
432
+ : "";
433
+ const contextText = context.status === "full"
434
+ ? "The Agent context contains the full result."
435
+ : context.nextCursor
436
+ ? `The Agent context is a ${context.strategy} view of ${context.itemCount}/${context.totalItems} returned items from ${context.collection ?? "the result"}; ${context.remainingItems} remain in evidence. Continue reading with the returned cursor before claiming full item-level review, or disclose the presented fraction as a limitation.`
437
+ : `The Agent context is a ${context.strategy} view of ${context.itemCount}/${context.totalItems} returned items from ${context.collection ?? "the result"}; ${context.remainingItems} remain in evidence, but no further item view fits the configured context ceiling. Use a narrower request or disclose this limitation.`;
438
+ return `${sourceSummary} Returned ${coverage.recordCount} record(s). ${coverageText}${limitText} ${contextText}`;
439
+ }
440
+ function encodeDataEvidenceCursor(evidenceSha256, collection, offset) {
441
+ const core = { schemaVersion: 1, evidenceSha256, collection, offset };
442
+ return Buffer.from(canonicalJson({ ...core, bindingSha256: sha256Text(canonicalJson(core)) }), "utf8").toString("base64url");
443
+ }
444
+ function decodeDataEvidenceCursor(cursor, evidenceSha256) {
445
+ try {
446
+ if (!/^[A-Za-z0-9_-]{16,2048}$/.test(cursor))
447
+ throw new Error("invalid cursor encoding");
448
+ const value = JSON.parse(Buffer.from(cursor, "base64url").toString("utf8"));
449
+ const core = {
450
+ schemaVersion: value.schemaVersion,
451
+ evidenceSha256: value.evidenceSha256,
452
+ collection: value.collection,
453
+ offset: value.offset,
454
+ };
455
+ if (value.schemaVersion !== 1 ||
456
+ value.evidenceSha256 !== evidenceSha256 ||
457
+ (value.collection !== null && typeof value.collection !== "string") ||
458
+ !Number.isInteger(value.offset) ||
459
+ Number(value.offset) < 0 ||
460
+ value.bindingSha256 !== sha256Text(canonicalJson(core))) {
461
+ throw new Error("invalid cursor binding");
462
+ }
463
+ return { collection: value.collection, offset: Number(value.offset) };
464
+ }
465
+ catch {
466
+ throw researchDataError("The Research data evidence cursor is invalid or belongs to another evidence object.", "RESEARCH_DATA_EVIDENCE_CURSOR_INVALID", 2);
467
+ }
468
+ }
469
+ function coverageWithoutContext(communication) {
470
+ return {
471
+ validation: structuredClone(communication.validation),
472
+ providerCoverage: structuredClone(communication.providerCoverage),
473
+ limitCoverage: structuredClone(communication.limitCoverage),
474
+ requestCoverage: structuredClone(communication.requestCoverage),
475
+ };
476
+ }
477
+ function parseBoundedContextContent(text) {
478
+ const parsed = JSON.parse(text);
479
+ const data = parsed.data;
480
+ if (data && typeof data === "object" && !Array.isArray(data) && "value" in data) {
481
+ return data.value;
482
+ }
483
+ return data ?? null;
484
+ }
485
+ function assertAgentOutputBudget(value, maxBytes) {
486
+ const bytes = Buffer.byteLength(`${canonicalJson(value)}\n`, "utf8");
487
+ if (bytes > maxBytes) {
488
+ throw researchDataError(`The Agent-facing data result requires ${bytes} bytes; the output budget allows ${maxBytes}.`, "RESEARCH_DATA_CONTEXT_TOO_LARGE");
489
+ }
490
+ }
281
491
  function collectArtifactRecords(value) {
282
492
  const records = new Map();
283
493
  const visit = (candidate) => {
@@ -1 +1 @@
1
- {"version":3,"file":"data-evidence-adapter.js","sourceRoot":"","sources":["../../../src/research/workspace/data-evidence-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-evidence-adapter.js","sourceRoot":"","sources":["../../../src/research/workspace/data-evidence-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import type { DataMissingRange, DataRunResult } from "../../data/contracts.js";
2
+ export type ResearchDataResultShape = "artifact" | "record-list" | "structured" | "timeseries";
3
+ export type ResearchDataContextStrategy = "artifact-manifest" | "full" | "metadata-only" | "record-groups" | "record-prefix" | "structured-prefix" | "timeseries-chunks";
4
+ export interface ResearchDataCoverage {
5
+ status: "bounded" | "complete" | "partial";
6
+ truncated: boolean;
7
+ stopReason: string | null;
8
+ recordCount: number;
9
+ missing: DataMissingRange[];
10
+ }
11
+ export interface ResearchDataProviderCoverage {
12
+ status: "complete" | "partial";
13
+ missing: DataMissingRange[];
14
+ }
15
+ export interface ResearchDataLimitCoverage {
16
+ status: "bounded" | "within-requested-limits";
17
+ limitsHit: string[];
18
+ }
19
+ export interface ResearchDataContextView {
20
+ status: "full" | "metadata-only" | "projected";
21
+ strategy: ResearchDataContextStrategy;
22
+ collection: string | null;
23
+ itemCount: number;
24
+ totalItems: number;
25
+ offset: number;
26
+ remainingItems: number;
27
+ nextCursor: string | null;
28
+ maxItems: number;
29
+ maxBytes: number;
30
+ }
31
+ export interface ResearchDataCommunication {
32
+ validation: {
33
+ status: "issues" | "valid";
34
+ issueCodes: string[];
35
+ };
36
+ providerCoverage: ResearchDataProviderCoverage;
37
+ limitCoverage: ResearchDataLimitCoverage;
38
+ requestCoverage: ResearchDataCoverage;
39
+ contextView: ResearchDataContextView;
40
+ }
41
+ export interface BoundedResearchDataContext {
42
+ bytes: Uint8Array;
43
+ projected: boolean;
44
+ itemCount: number;
45
+ totalItems: number;
46
+ offset: number;
47
+ remainingItems: number;
48
+ nextOffset: number | null;
49
+ strategy: ResearchDataContextStrategy;
50
+ collection: string | null;
51
+ status: ResearchDataContextView["status"];
52
+ }
53
+ export declare function inferResearchDataResultShape(outputSchema: Record<string, unknown>, artifactOutput: boolean): ResearchDataResultShape;
54
+ export declare function boundedResearchDataContext(result: DataRunResult, maxBytes: number, maxItems: number, offset?: number): BoundedResearchDataContext;
55
+ export declare function buildResearchDataCommunication(result: DataRunResult, context: BoundedResearchDataContext, limits: {
56
+ maxBytes: number;
57
+ maxItems: number;
58
+ }, cursorForOffset?: (offset: number) => string): ResearchDataCommunication;