@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
@@ -2,6 +2,7 @@ import type { DataRegistry } from "../../data/catalog.js";
2
2
  import type { DataRunResult } from "../../data/contracts.js";
3
3
  import { type BrokerEvidenceReceipt } from "./evidence.js";
4
4
  import { type EvidenceCandidate } from "./evidence-ledger.js";
5
+ import { type ResearchDataCommunication, type ResearchDataContextView, type ResearchDataResultShape } from "./data-evidence-view.js";
5
6
  export interface ResearchDataCapability {
6
7
  id: string;
7
8
  capabilityId: string;
@@ -18,6 +19,7 @@ export interface ResearchDataCapability {
18
19
  inputSchemaDigest: string;
19
20
  outputSchemaDigest: string;
20
21
  artifactOutput: boolean;
22
+ resultShape: ResearchDataResultShape;
21
23
  credentials: Array<{
22
24
  id: string;
23
25
  credentialId: string;
@@ -41,11 +43,43 @@ export interface ResearchDataExecutionResult {
41
43
  text: string;
42
44
  truncated: boolean;
43
45
  } | null;
46
+ communication: ResearchDataCommunication | null;
44
47
  dataBudget: {
45
48
  maxCalls: number;
46
49
  startedCalls: number;
47
50
  remainingCalls: number;
48
51
  };
52
+ agentOutputBudget: {
53
+ maxBytes: number;
54
+ };
55
+ }
56
+ export interface PublicResearchDataExecutionResult {
57
+ schemaVersion: 1;
58
+ kind: "tiangong-research-data-execution";
59
+ status: DataRunResult["status"];
60
+ contract: DataRunResult["contract"];
61
+ summary: DataRunResult["summary"];
62
+ warnings: string[];
63
+ errors: DataRunResult["errors"];
64
+ receipt: {
65
+ coreReceiptDigest: string;
66
+ requestDigest: string;
67
+ normalizedDataDigest: string | null;
68
+ generatedAt: string;
69
+ };
70
+ evidence: {
71
+ receiptId: string;
72
+ evidenceSha256: string;
73
+ locator: string;
74
+ coreReceiptDigest: string;
75
+ candidateId: string;
76
+ } | null;
77
+ coverage: Omit<ResearchDataCommunication, "contextView"> | null;
78
+ contextView: (ResearchDataContextView & {
79
+ content: unknown;
80
+ }) | null;
81
+ dataBudget: ResearchDataExecutionResult["dataBudget"];
82
+ outputBudget: ResearchDataExecutionResult["agentOutputBudget"];
49
83
  }
50
84
  export interface ExecuteResearchDataCapabilityInput {
51
85
  root: string;
@@ -55,6 +89,43 @@ export interface ExecuteResearchDataCapabilityInput {
55
89
  fetchImpl?: typeof fetch;
56
90
  clock?: () => Date;
57
91
  }
92
+ export interface ReadResearchDataEvidenceInput {
93
+ root: string;
94
+ projectId: string;
95
+ receiptId: string;
96
+ cursor: string;
97
+ }
98
+ export interface ResearchDataEvidenceViewResult {
99
+ schemaVersion: 1;
100
+ kind: "tiangong-research-data-evidence-view";
101
+ projectId: string;
102
+ receiptId: string;
103
+ evidenceSha256: string;
104
+ boundedContext: {
105
+ encoding: "utf8";
106
+ text: string;
107
+ truncated: boolean;
108
+ };
109
+ communication: ResearchDataCommunication;
110
+ agentOutputBudget: {
111
+ maxBytes: number;
112
+ };
113
+ }
114
+ export interface PublicResearchDataEvidenceViewResult {
115
+ schemaVersion: 1;
116
+ kind: "tiangong-research-data-evidence-view";
117
+ projectId: string;
118
+ receiptId: string;
119
+ evidenceSha256: string;
120
+ contextView: ResearchDataContextView & {
121
+ content: unknown;
122
+ };
123
+ coverage: Omit<ResearchDataCommunication, "contextView">;
124
+ outputBudget: ResearchDataEvidenceViewResult["agentOutputBudget"];
125
+ }
58
126
  export declare function researchDataCapabilityId(capabilityId: string, operationId: string): string;
59
127
  export declare function projectResearchDataCapabilities(registry?: DataRegistry): ResearchDataCapabilityCatalog;
60
128
  export declare function executeResearchDataCapability(input: ExecuteResearchDataCapabilityInput): Promise<ResearchDataExecutionResult>;
129
+ export declare function readResearchDataEvidence(input: ReadResearchDataEvidenceInput): Promise<ResearchDataEvidenceViewResult>;
130
+ export declare function projectResearchDataExecutionResult(result: ResearchDataExecutionResult): PublicResearchDataExecutionResult;
131
+ export declare function projectResearchDataEvidenceViewResult(result: ResearchDataEvidenceViewResult): PublicResearchDataEvidenceViewResult;
@@ -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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"}