@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,12 +1,14 @@
1
+ import { assertProjectRoutePriced, remainingProjectCostUsd, reserveProjectCost, settleProjectCost, } from "./project-budget.js";
1
2
  import { createHash, randomUUID } from "node:crypto";
2
3
  import { constants } from "node:fs";
3
- import { copyFile, lstat, mkdtemp, open, readFile, rm } from "node:fs/promises";
4
+ import { copyFile, lstat, mkdir, mkdtemp, open, rm } from "node:fs/promises";
4
5
  import { dirname, join } from "node:path";
5
6
  import { CliError } from "../../errors.js";
7
+ import { artifactPromptContext, artifactReadInstructions, persistArtifactReads, persistArtifactViewIndex, writeArtifactViewIndex, } from "./artifact-views.js";
6
8
  import { verifyCapabilities } from "./capabilities.js";
7
9
  import { appendJournalEvent, readVerifiedJournal } from "./journal.js";
8
10
  import { assertProjectAuthority, projectAuthorityIndex } from "./project-authority.js";
9
- import { calculateAgentCallTokenReservation, RESEARCH_ESTIMATED_BYTES_PER_TOKEN, researchStructuredOutputMaxTurns, reservedAgentPackageCost, } from "./preflight.js";
11
+ import { calculateAgentCallTokenReservation, RESEARCH_ESTIMATED_BYTES_PER_TOKEN, RESEARCH_PACKET_READ_MAX_TURNS, RESEARCH_EXPECTED_ARTIFACT_READ_TOKENS, reservedAgentPackageCost, } from "./preflight.js";
10
12
  import { loadProject, saveProject } from "./projects.js";
11
13
  import { assertResearchPolicyBinding } from "./research-policy.js";
12
14
  import { createReviewExecutor } from "./review-executor.js";
@@ -73,7 +75,7 @@ export async function executeScientificReview(input, executor) {
73
75
  }
74
76
  const attempts = events.filter((event) => event.type === "scientific-review.execution.started").length;
75
77
  if (attempts > 0 && !input.retry) {
76
- throw executionError("RESEARCH_SCIENTIFIC_REVIEW_RETRY_REQUIRED", "The previous execution did not complete. Inspect its receipt, correct the cause, then explicitly use --retry.");
78
+ throw executionError("RESEARCH_SCIENTIFIC_REVIEW_RETRY_REQUIRED", "The previous execution did not complete. Inspect its recorded failure diagnostic, correct the cause, then explicitly use --retry.");
77
79
  }
78
80
  if (attempts >= config.budget.maxAttemptsPerPackage) {
79
81
  throw executionError("RESEARCH_SCIENTIFIC_REVIEW_ATTEMPTS_EXHAUSTED", "The bounded scientific reviewer attempts are exhausted; do not retry automatically.");
@@ -89,32 +91,61 @@ export async function executeScientificReview(input, executor) {
89
91
  let usageBeforeReservation = null;
90
92
  let callStartedAt = null;
91
93
  let usageSettled = false;
94
+ let failureDiagnostic = null;
95
+ let returnedResult = null;
92
96
  try {
93
97
  await copyPacketInputs(input.root, capsuleProject, packet, project.publicationPolicy);
94
- const prompt = await scientificReviewPrompt(capsuleProject, packet, config, project.publicationPolicy);
98
+ await writeJsonAtomic(join(capsuleProject, "inputs/scientific-review-packet.json"), packet);
99
+ const artifactViews = await writeArtifactViewIndex(capsuleProject, project.id);
100
+ const persistedViews = await persistArtifactViewIndex(join(paths.projects, project.id), capsuleProject, artifactViews);
101
+ const prompt = await scientificReviewPrompt(capsuleProject, packet, config, project.publicationPolicy, artifactViews);
95
102
  const schema = scientificReviewSchema(input.role);
96
- const maxTurns = researchStructuredOutputMaxTurns(config.reviewer);
97
- const reservation = calculateAgentCallTokenReservation({
98
- route: config.reviewer,
99
- primaryPayloadTokens: Math.ceil(Buffer.byteLength(prompt + JSON.stringify(schema)) / RESEARCH_ESTIMATED_BYTES_PER_TOKEN),
100
- repairPayloadTokens: 0,
101
- maxTurns,
102
- maxOutputTokens: config.budget.maxOutputTokens,
103
- maxToolContextTokens: 0,
104
- maxRepairTokens: 0,
105
- reserveRepair: false,
106
- }).totalTokens;
107
- const reservedCostUsd = reservedAgentPackageCost(config.reviewer, reservation, config);
103
+ assertProjectRoutePriced(project, config.reviewer);
104
+ const availableCostUsd = remainingProjectCostUsd(project, config);
105
+ const availableTokens = Math.min(config.budget.earlyScientificReviewMaxTokens, config.budget.maxTokens - project.usage.tokens);
106
+ const primaryPayloadTokens = Math.ceil(Buffer.byteLength(prompt + JSON.stringify(schema)) / RESEARCH_ESTIMATED_BYTES_PER_TOKEN);
107
+ let maxTurns = 0, reservation = 0, reservedCostUsd = 0;
108
+ for (let turns = RESEARCH_PACKET_READ_MAX_TURNS; turns >= 1; turns--) {
109
+ const estimate = calculateAgentCallTokenReservation({
110
+ route: config.reviewer,
111
+ primaryPayloadTokens,
112
+ repairPayloadTokens: 0,
113
+ maxTurns: turns,
114
+ maxOutputTokens: config.budget.maxOutputTokens,
115
+ maxToolContextTokens: RESEARCH_EXPECTED_ARTIFACT_READ_TOKENS,
116
+ maxRepairTokens: 0,
117
+ reserveRepair: false,
118
+ }).totalTokens;
119
+ const cost = reservedAgentPackageCost(config.reviewer, estimate, config);
120
+ if (estimate <= availableTokens && cost <= availableCostUsd) {
121
+ maxTurns = turns;
122
+ reservation = estimate;
123
+ reservedCostUsd = cost;
124
+ break;
125
+ }
126
+ }
127
+ // Read-context cost remains an estimate. Reserve the same owner-approved
128
+ // finite envelope sent to the client, rather than imposing that estimate
129
+ // as an exact invoice ceiling. Actual returned usage replaces it.
130
+ const estimatedCostUsd = reservedCostUsd;
131
+ reservedCostUsd = availableCostUsd;
108
132
  const timeoutSeconds = Math.min(config.budget.earlyScientificReviewMaxWallSeconds, config.budget.maxWallSeconds - project.usage.wallSeconds);
109
- if (reservation > config.budget.earlyScientificReviewMaxTokens ||
133
+ if (maxTurns === 0 ||
134
+ reservation > config.budget.earlyScientificReviewMaxTokens ||
110
135
  reservation > config.budget.maxTokens - project.usage.tokens ||
111
- reservedCostUsd > config.budget.maxCostUsd - project.usage.costUsd ||
136
+ reservedCostUsd > availableCostUsd ||
112
137
  timeoutSeconds <= 0) {
113
138
  throw executionError("RESEARCH_BUDGET_EXCEEDED", "The independent review reservation does not fit the reviewed token, cost, or time limits.");
114
139
  }
115
140
  // Reserve before spawning. An interrupted call remains conservatively charged;
116
141
  // a returned result replaces that reservation with measured usage.
117
142
  const priorUsage = { ...project.usage };
143
+ reserveProjectCost(project, config, {
144
+ id: `scientific:${runId}`,
145
+ kind: "review",
146
+ reference: packet.packetSha256,
147
+ maxCostUsd: reservedCostUsd,
148
+ });
118
149
  project.usage.tokens += reservation;
119
150
  project.usage.inputTokens += reservation;
120
151
  project.usage.costUsd += reservedCostUsd;
@@ -124,10 +155,13 @@ export async function executeScientificReview(input, executor) {
124
155
  await appendJournalEvent(paths.journal, "scientific-review.execution.started", project.id, {
125
156
  role: input.role,
126
157
  packetSha256: packet.packetSha256,
158
+ artifactViewIndexSha256: artifactViews.sha256,
127
159
  runId,
128
160
  attempt: attempts + 1,
129
161
  reservedTokens: reservation,
162
+ admittedMaxTurns: maxTurns,
130
163
  reservedCostUsd,
164
+ estimatedCostUsd,
131
165
  reservedWallSeconds: timeoutSeconds,
132
166
  transport: config.reviewerExecution.transport,
133
167
  });
@@ -135,7 +169,7 @@ export async function executeScientificReview(input, executor) {
135
169
  const execute = executor ??
136
170
  createReviewExecutor({ root: input.root, execution: config.reviewerExecution }).execute;
137
171
  callStartedAt = process.hrtime.bigint();
138
- const result = await execute({
172
+ const result = (returnedResult = await execute({
139
173
  route: config.reviewer,
140
174
  prompt,
141
175
  outputSchema: schema,
@@ -147,13 +181,24 @@ export async function executeScientificReview(input, executor) {
147
181
  timeoutSeconds,
148
182
  maxTurns,
149
183
  maxOutputTokens: config.budget.maxOutputTokens,
150
- maxToolContextTokens: 0,
184
+ maxToolContextTokens: RESEARCH_EXPECTED_ARTIFACT_READ_TOKENS,
151
185
  maxCostUsd: reservedCostUsd,
152
186
  expectedRuntime,
153
- toolPolicy: "none",
187
+ toolPolicy: "packet-read",
188
+ artifactViews: { index: artifactViews, packetSha256: packet.packetSha256 },
154
189
  brokerUrl: null,
155
190
  environment: input.environment,
156
- });
191
+ }));
192
+ if (result.artifactReads?.length) {
193
+ await persistArtifactReads(join(paths.projects, project.id), capsuleProject, artifactViews, packet.packetSha256, result.artifactReads);
194
+ await appendJournalEvent(paths.journal, "review.artifacts.read", project.id, sanitizeResearchValue({
195
+ requestId: runId,
196
+ role: input.role,
197
+ packetSha256: packet.packetSha256,
198
+ indexSha256: artifactViews.sha256,
199
+ receipts: result.artifactReads.map((receipt) => receipt.receiptSha256),
200
+ }, configuredResearchSecrets(input.environment)));
201
+ }
157
202
  const reportedUsage = checkedUsage(result);
158
203
  const usageKnown = reportedUsage.tokens > 0;
159
204
  const usage = usageKnown
@@ -170,22 +215,25 @@ export async function executeScientificReview(input, executor) {
170
215
  project.usage.outputTokens = priorUsage.outputTokens + usage.outputTokens;
171
216
  project.usage.costUsd = priorUsage.costUsd + usage.costUsd;
172
217
  project.usage.wallSeconds = priorUsage.wallSeconds + usage.wallSeconds;
218
+ settleProjectCost(project, `scientific:${runId}`, usage.costUsd, usageKnown ? "reported-usage" : "allocated-upper-bound");
173
219
  await saveProject(input.root, project);
174
220
  usageSettled = true;
175
221
  if (result.exitCode !== 0) {
176
- throw executionError("RESEARCH_SCIENTIFIC_REVIEW_EXECUTION_FAILED", "The isolated reviewer failed. No scientific review was submitted.");
222
+ failureDiagnostic = reviewerFailureDiagnostic(result, input, capsuleRoot);
223
+ throw executionError("RESEARCH_SCIENTIFIC_REVIEW_EXECUTION_FAILED", "The isolated reviewer failed. No scientific review was submitted.", failureDiagnostic);
177
224
  }
178
- if (usage.tokens > reservation ||
225
+ if (usage.tokens >
226
+ Math.min(config.budget.earlyScientificReviewMaxTokens, config.budget.maxTokens - priorUsage.tokens) ||
179
227
  usage.outputTokens > config.budget.maxOutputTokens ||
180
- (config.reviewer.pricing && usage.costUsd > reservedCostUsd) ||
228
+ usage.costUsd > availableCostUsd ||
181
229
  usage.wallSeconds > timeoutSeconds) {
182
- throw executionError("RESEARCH_BUDGET_EXCEEDED", "The reviewer exceeded its reserved execution limit. No review was submitted.");
230
+ throw executionError("RESEARCH_BUDGET_EXCEEDED", "The reviewer exceeded an approved finite execution limit. No review was submitted.");
183
231
  }
184
232
  if (!result.runtime ||
185
233
  result.runtime.agent !== config.reviewer.agent ||
186
234
  (config.reviewer.model !== null && result.model !== config.reviewer.model) ||
187
- result.isolation?.toolPolicy !== "none" ||
188
- result.isolation.networkPolicy !== "reviewer-provider-only" ||
235
+ result.isolation?.toolPolicy !== "packet-read" ||
236
+ result.isolation.networkPolicy !== "reviewer-provider-and-local-artifacts" ||
189
237
  (config.reviewerExecution.transport === "sandbox-bridge" && !result.reviewAttestation)) {
190
238
  throw executionError("RESEARCH_SCIENTIFIC_REVIEW_EXECUTION_BINDING_INVALID", "The reviewer result does not contain the expected model, runtime, and isolation proof.");
191
239
  }
@@ -233,6 +281,8 @@ export async function executeScientificReview(input, executor) {
233
281
  runtime: result.runtime,
234
282
  isolation: result.isolation,
235
283
  reviewAttestation: result.reviewAttestation ?? null,
284
+ artifactViews: persistedViews,
285
+ artifactReads: result.artifactReads ?? [],
236
286
  stdoutSha256: sha256Text(result.stdout),
237
287
  stderrSha256: sha256Text(result.stderr),
238
288
  }, secrets);
@@ -264,18 +314,56 @@ export async function executeScientificReview(input, executor) {
264
314
  await saveProject(input.root, project);
265
315
  }
266
316
  if (started) {
317
+ // Capture only the failure path: successful execution already has its
318
+ // immutable output/receipt and must not pay for duplicate persistence.
319
+ if (returnedResult) {
320
+ let retention;
321
+ try {
322
+ retention = {
323
+ executionRecord: await retainFailedExecution({
324
+ root: input.root,
325
+ projectId: project.id,
326
+ packet,
327
+ runId,
328
+ result: returnedResult,
329
+ failureCode: error instanceof CliError
330
+ ? error.code
331
+ : "RESEARCH_SCIENTIFIC_REVIEW_EXECUTION_FAILED",
332
+ config,
333
+ environment: input.environment,
334
+ }),
335
+ };
336
+ }
337
+ catch {
338
+ // Disk/namespace failure must not masquerade as a retained result
339
+ // or hide the original budget/runtime rejection.
340
+ retention = { outputRetention: "storage-unavailable" };
341
+ }
342
+ failureDiagnostic = { ...failureDiagnostic, ...retention };
343
+ }
267
344
  await appendJournalEvent(paths.journal, "scientific-review.execution.failed", project.id, {
268
345
  role: input.role,
269
346
  packetSha256: packet.packetSha256,
270
347
  runId,
271
348
  attempt: attempts + 1,
272
349
  code: error instanceof CliError ? error.code : "RESEARCH_SCIENTIFIC_REVIEW_EXECUTION_FAILED",
350
+ ...(failureDiagnostic ?? {}),
273
351
  capsuleDisposition: "retained-failed-execution",
274
352
  });
275
353
  }
276
- if (error instanceof CliError)
277
- throw error;
278
- throw executionError("RESEARCH_SCIENTIFIC_REVIEW_EXECUTION_FAILED", "The isolated reviewer failed. Its packet and failed execution remain available for explicit recovery.");
354
+ if (error instanceof CliError) {
355
+ if (!failureDiagnostic)
356
+ throw error;
357
+ throw new CliError(error.message, {
358
+ code: error.code,
359
+ exitCode: error.exitCode,
360
+ details: {
361
+ ...(isObject(error.details) ? error.details : {}),
362
+ ...failureDiagnostic,
363
+ },
364
+ });
365
+ }
366
+ throw executionError("RESEARCH_SCIENTIFIC_REVIEW_EXECUTION_FAILED", "The isolated reviewer failed. Its packet and failed execution remain available for explicit recovery.", failureDiagnostic ?? undefined);
279
367
  }
280
368
  finally {
281
369
  if ((completedCall || !started) &&
@@ -305,6 +393,81 @@ export async function executeScientificReview(input, executor) {
305
393
  replayed: prepared.replayed,
306
394
  };
307
395
  }
396
+ async function retainFailedExecution(input) {
397
+ const { result } = input;
398
+ const secrets = configuredResearchSecrets(input.environment);
399
+ const bytes = Buffer.byteLength(result.stdout);
400
+ let disposition = "retained-json";
401
+ if (bytes > Math.min(MAX_EXECUTION_RECEIPT_BYTES, input.config.budget.maxOutputTokens * 16)) {
402
+ disposition = "omitted-oversized";
403
+ }
404
+ else if (sanitizeResearchText(result.stdout, secrets) !== result.stdout) {
405
+ disposition = "omitted-unsafe";
406
+ }
407
+ else {
408
+ try {
409
+ const parsed = JSON.parse(result.stdout);
410
+ if (canonicalJson(sanitizeResearchValue(parsed, secrets)) !== canonicalJson(parsed)) {
411
+ disposition = "omitted-unsafe";
412
+ }
413
+ }
414
+ catch {
415
+ // Only inspectable JSON can pass the structured sensitive-field check.
416
+ // Malformed output keeps its digest/size, not unchecked raw text.
417
+ disposition = "omitted-invalid-json";
418
+ }
419
+ }
420
+ let reportedUsage = null;
421
+ try {
422
+ reportedUsage = checkedUsage(result);
423
+ }
424
+ catch {
425
+ // Invalid reported usage is not zero usage or a settled invoice.
426
+ }
427
+ const reportedBinding = sanitizeResearchValue({
428
+ model: result.model,
429
+ runtime: result.runtime ?? null,
430
+ isolation: result.isolation ?? null,
431
+ reviewAttestation: result.reviewAttestation ?? null,
432
+ }, secrets);
433
+ const bindingBytes = canonicalJson(reportedBinding);
434
+ const record = {
435
+ schemaVersion: 1,
436
+ kind: "tiangong-scientific-review-failed-execution",
437
+ acceptance: "not-submitted",
438
+ projectId: input.projectId,
439
+ role: input.packet.role,
440
+ packetSha256: input.packet.packetSha256,
441
+ reviewerSessionSha256: input.packet.reviewer.sessionSha256,
442
+ runId: input.runId,
443
+ failureCode: input.failureCode,
444
+ exitCode: Number.isSafeInteger(result.exitCode) ? result.exitCode : null,
445
+ reportedUsage,
446
+ // Reported identities remain unverified observations, never acceptance proof.
447
+ reportedBinding: Buffer.byteLength(bindingBytes) <= 64 * 1024 ? reportedBinding : null,
448
+ reportedBindingSha256: sha256Text(bindingBytes),
449
+ output: {
450
+ disposition,
451
+ bytes,
452
+ sha256: sha256Text(result.stdout),
453
+ stdout: disposition === "retained-json" ? result.stdout : null,
454
+ },
455
+ stderrSha256: sha256Text(result.stderr),
456
+ };
457
+ const sha256 = sha256Text(JSON.stringify(record, null, 2) + "\n");
458
+ const locator = `projects/${input.projectId}/scientific/failed-executions/${sha256}.json`;
459
+ const path = resolveContained(workspacePaths(input.root).control, locator);
460
+ const parent = await lstat(dirname(dirname(path)));
461
+ if (!parent.isDirectory() || parent.isSymbolicLink())
462
+ throw new Error("Unsafe capture parent");
463
+ await mkdir(dirname(path), { recursive: true, mode: 0o700 });
464
+ const directory = await lstat(dirname(path));
465
+ if (!directory.isDirectory() || directory.isSymbolicLink()) {
466
+ throw new Error("Unsafe capture directory");
467
+ }
468
+ await writeJsonAtomic(path, record, 0o444);
469
+ return { locator, sha256 };
470
+ }
308
471
  async function readReceipt(root, locator, digest, expected) {
309
472
  if (typeof digest !== "string" ||
310
473
  !/^[a-f0-9]{64}$/.test(digest) ||
@@ -372,51 +535,25 @@ function checkedUsage(result) {
372
535
  }
373
536
  return usage;
374
537
  }
375
- async function scientificReviewPrompt(controlRoot, packet, config, policy) {
538
+ async function scientificReviewPrompt(controlRoot, packet, config, policy, index) {
376
539
  const mandatory = [
377
- "Review the exact prepared scientific packet independently. Tools are disabled. Read only embedded content; complete files are bound for audit but are not evidence that you read omitted bytes.",
540
+ "Review the exact prepared scientific packet independently using only its packet-bound artifact tools. Read the design, assessment and approved Policy documents, then inspect relevant implementations, inputs, failed checks and counterevidence. Complete files are available, not assumed read.",
378
541
  "Return the supplied JSON schema with the exact packetSha256 and reviewerSessionSha256. A mechanical canPass=false cannot be upgraded by prose; return stop, handoff, or revise as appropriate.",
379
- JSON.stringify(packet),
542
+ `packetSha256=${packet.packetSha256}; reviewerSessionSha256=${packet.reviewer.sessionSha256}; role=${packet.role}`,
543
+ artifactReadInstructions(index),
380
544
  ];
381
- for (const locator of [
382
- packet.design.objectLocator,
383
- packet.assessment.objectLocator,
384
- packet.policy.objectLocator,
385
- ...new Set(policy.documents.map((document) => document.objectLocator)),
386
- ]) {
387
- const path = resolveContained(controlRoot, locator);
388
- mandatory.push("### " + locator + "\n" + (await readFile(path, "utf8")));
389
- }
390
- const maxBytes = config.budget.maxInputContextTokens * RESEARCH_ESTIMATED_BYTES_PER_TOKEN;
391
- const required = mandatory.join("\n\n");
392
- if (Buffer.byteLength(required) > maxBytes) {
393
- throw executionError("RESEARCH_INPUT_CONTEXT_BUDGET_EXCEEDED", "Required scientific review design, policy, and assessment exceed the input context limit; revise the bounded assessment before execution.");
394
- }
395
- let remaining = maxBytes - Buffer.byteLength(required);
396
- const context = [required];
397
- for (const [index, record] of packet.stageInputs.entries()) {
398
- const allowance = Math.max(0, Math.floor(remaining / (packet.stageInputs.length - index)) - 256);
399
- if (!allowance)
400
- continue;
401
- const path = resolveContained(controlRoot, record.path);
402
- const handle = await open(path, "r");
403
- let text;
404
- try {
405
- const buffer = Buffer.alloc(Math.min(record.bytes, allowance));
406
- const read = await handle.read(buffer, 0, buffer.length, 0);
407
- text = buffer.subarray(0, read.bytesRead).toString("utf8");
408
- }
409
- finally {
410
- await handle.close();
411
- }
412
- const section = "### " + record.path + " (bounded excerpt; " + record.bytes + " total file bytes)\n" + text;
413
- const size = Buffer.byteLength(section);
414
- if (size <= remaining) {
415
- context.push(section);
416
- remaining -= size;
417
- }
418
- }
419
- return context.join("\n\n");
545
+ const locators = [
546
+ ...new Set([
547
+ "inputs/scientific-review-packet.json",
548
+ packet.design.objectLocator,
549
+ packet.assessment.objectLocator,
550
+ packet.policy.objectLocator,
551
+ ...policy.documents.map((document) => document.objectLocator),
552
+ ...packet.stageInputs.map((record) => record.path),
553
+ ]),
554
+ ];
555
+ mandatory.push(await artifactPromptContext(controlRoot, index, locators, Math.min(8_000, config.budget.maxInputContextTokens) * RESEARCH_ESTIMATED_BYTES_PER_TOKEN));
556
+ return mandatory.join("\n\n");
420
557
  }
421
558
  async function copyPacketInputs(root, capsuleProject, packet, policy) {
422
559
  const paths = workspacePaths(root);
@@ -441,7 +578,31 @@ async function copyPacketInputs(root, capsuleProject, packet, policy) {
441
578
  }
442
579
  await writeJsonAtomic(join(capsuleProject, "packet.json"), packet);
443
580
  }
444
- function executionError(code, message) {
445
- return new CliError(message, { code, exitCode: 3 });
581
+ function reviewerFailureDiagnostic(result, input, capsuleRoot) {
582
+ const secrets = configuredResearchSecrets(input.environment);
583
+ let diagnostic = sanitizeResearchText([result.telemetry?.providerErrors.join("; "), result.stderr.trim()]
584
+ .filter(Boolean)
585
+ .join("\n") ||
586
+ "Reviewer exited without a textual diagnostic; inspect the configured runtime before retrying.", secrets);
587
+ for (const path of [
588
+ capsuleRoot,
589
+ input.root,
590
+ input.environment.HOME,
591
+ input.environment.CLAUDE_CONFIG_DIR,
592
+ input.environment.CODEX_HOME,
593
+ ]) {
594
+ if (path)
595
+ diagnostic = diagnostic.replaceAll(path, "[private-path]");
596
+ }
597
+ return sanitizeResearchValue({
598
+ exitCode: result.exitCode,
599
+ diagnostic: diagnostic.slice(0, 2048),
600
+ stdoutSha256: sha256Text(result.stdout),
601
+ stderrSha256: sha256Text(result.stderr),
602
+ minimumAction: "Correct the reported runtime or provider failure, then explicitly use --retry. No review was submitted.",
603
+ }, secrets);
604
+ }
605
+ function executionError(code, message, details) {
606
+ return new CliError(message, { code, exitCode: 3, ...(details ? { details } : {}) });
446
607
  }
447
608
  //# sourceMappingURL=scientific-review-execution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scientific-review-execution.js","sourceRoot":"","sources":["../../../src/research/workspace/scientific-review-execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scientific-review-execution.js","sourceRoot":"","sources":["../../../src/research/workspace/scientific-review-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EAGvB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAY,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EACL,kCAAkC,EAClC,kCAAkC,EAClC,8BAA8B,EAC9B,sCAAsC,EAEtC,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,aAAa,EACb,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC;AAQtB,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGjG,MAAM,2BAA2B,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAOC,EACD,QAA2B;IAE3B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,cAAc,CAClB,uDAAuD,EACvD,qFAAqF,CACtF,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,2BAA2B,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,eAAe,CAAC,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,YAAY,EAAE,YAAY,CAAC;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAC3B,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS;YAC/B,KAAK,CAAC,OAAO,CAAC,YAAY,KAAK,UAAU;YACzC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CACpC,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAC/B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,uCAAuC,CAClE,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,MAAM,WAAW,CAC/B,KAAK,CAAC,IAAI,EACV,SAAS,CAAC,OAAO,CAAC,cAAc,EAChC,SAAS,CAAC,OAAO,CAAC,aAAa,EAC/B;gBACE,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,YAAY,EAAE,UAAU;gBACxB,qBAAqB,EAAE,YAAY,EAAE,qBAAqB;aAC3D,CACF,CAAC;YACF,OAAO;gBACL,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC;gBAChC,OAAO;gBACP,aAAa,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;gBACtD,QAAQ,EAAE,IAAI;aACf,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,4BAA4B,CAC5D,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,IAAI,CACX,CAAC;QACF,sBAAsB,CAAC,OAAO,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrD,IACE,OAAO,CAAC,OAAO,CAAC,YAAY;YAC5B,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;YAClD,OAAO,CAAC,OAAO,CAAC,KAAK,KAAK,kBAAkB,EAC5C,CAAC;YACD,MAAM,cAAc,CAClB,oCAAoC,EACpC,uEAAuE,CACxE,CAAC;QACJ,CAAC;QACD,IACE,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,KAAK;YAC/C,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAClE,CAAC;YACD,MAAM,cAAc,CAClB,uCAAuC,EACvC,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,YAAY,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACvC,MAAM,cAAc,CAClB,2BAA2B,EAC3B,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QACD,IAAI,eAAyD,CAAC;QAC9D,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxD,MAAM,cAAc,CAClB,sCAAsC,EACtC,+EAA+E,CAChF,CAAC;YACJ,CAAC;YACD,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAChD,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,KAAK,CACrF,CAAC;YACF,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,cAAc,CAClB,yBAAyB,EACzB,qEAAqE,CACtE,CAAC;YACJ,CAAC;YACD,MAAM,2BAA2B,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAkB,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAC5B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,qCAAqC,CAChE,CAAC,MAAM,CAAC;QACT,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,cAAc,CAClB,2CAA2C,EAC3C,mIAAmI,CACpI,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACpD,MAAM,cAAc,CAClB,+CAA+C,EAC/C,qFAAqF,CACtF,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;QACjE,MAAM,eAAe,CAAC,aAAa,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;QAClE,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACpD,MAAM,eAAe,CAAC,cAAc,CAAC,CAAC;QACtC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,sBAAsB,GAAgC,IAAI,CAAC;QAC/D,IAAI,aAAa,GAAkB,IAAI,CAAC;QACxC,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,iBAAiB,GAAmC,IAAI,CAAC;QAC7D,IAAI,cAAc,GAA2B,IAAI,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,iBAAkB,CAAC,CAAC;YACvF,MAAM,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,sCAAsC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC5F,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YAC/E,MAAM,cAAc,GAAG,MAAM,wBAAwB,CACnD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,EAChC,cAAc,EACd,aAAa,CACd,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,sBAAsB,CACzC,cAAc,EACd,MAAM,EACN,MAAM,EACN,OAAO,CAAC,iBAAkB,EAC1B,aAAa,CACd,CAAC;YACF,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClD,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAC9B,MAAM,CAAC,MAAM,CAAC,8BAA8B,EAC5C,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAC/C,CAAC;YACF,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CACpC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,kCAAkC,CACxF,CAAC;YACF,IAAI,QAAQ,GAAG,CAAC,EACd,WAAW,GAAG,CAAC,EACf,eAAe,GAAG,CAAC,CAAC;YACtB,KAAK,IAAI,KAAK,GAAG,8BAA8B,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gBACrE,MAAM,QAAQ,GAAG,kCAAkC,CAAC;oBAClD,KAAK,EAAE,MAAM,CAAC,QAAQ;oBACtB,oBAAoB;oBACpB,mBAAmB,EAAE,CAAC;oBACtB,QAAQ,EAAE,KAAK;oBACf,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe;oBAC9C,oBAAoB,EAAE,sCAAsC;oBAC5D,eAAe,EAAE,CAAC;oBAClB,aAAa,EAAE,KAAK;iBACrB,CAAC,CAAC,WAAW,CAAC;gBACf,MAAM,IAAI,GAAG,wBAAwB,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACzE,IAAI,QAAQ,IAAI,eAAe,IAAI,IAAI,IAAI,gBAAgB,EAAE,CAAC;oBAC5D,QAAQ,GAAG,KAAK,CAAC;oBACjB,WAAW,GAAG,QAAQ,CAAC;oBACvB,eAAe,GAAG,IAAI,CAAC;oBACvB,MAAM;gBACR,CAAC;YACH,CAAC;YACD,yEAAyE;YACzE,yEAAyE;YACzE,kEAAkE;YAClE,MAAM,gBAAgB,GAAG,eAAe,CAAC;YACzC,eAAe,GAAG,gBAAgB,CAAC;YACnC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC7B,MAAM,CAAC,MAAM,CAAC,mCAAmC,EACjD,MAAM,CAAC,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CACzD,CAAC;YACF,IACE,QAAQ,KAAK,CAAC;gBACd,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,8BAA8B;gBAC1D,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM;gBAC5D,eAAe,GAAG,gBAAgB;gBAClC,cAAc,IAAI,CAAC,EACnB,CAAC;gBACD,MAAM,cAAc,CAClB,0BAA0B,EAC1B,2FAA2F,CAC5F,CAAC;YACJ,CAAC;YACD,+EAA+E;YAC/E,mEAAmE;YACnE,MAAM,UAAU,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YACxC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE;gBAClC,EAAE,EAAE,cAAc,KAAK,EAAE;gBACzB,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,MAAM,CAAC,YAAY;gBAC9B,UAAU,EAAE,eAAe;aAC5B,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,WAAW,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,eAAe,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,cAAc,CAAC;YAC5C,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvC,sBAAsB,GAAG,UAAU,CAAC;YACpC,MAAM,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,qCAAqC,EAAE,OAAO,CAAC,EAAE,EAAE;gBACzF,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,uBAAuB,EAAE,aAAa,CAAC,MAAM;gBAC7C,KAAK;gBACL,OAAO,EAAE,QAAQ,GAAG,CAAC;gBACrB,cAAc,EAAE,WAAW;gBAC3B,gBAAgB,EAAE,QAAQ;gBAC1B,eAAe;gBACf,gBAAgB;gBAChB,mBAAmB,EAAE,cAAc;gBACnC,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,SAAS;aAC9C,CAAC,CAAC;YACH,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,OAAO,GACX,QAAQ;gBACR,oBAAoB,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC;YAC1F,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,CAAC,cAAc,GAAG,MAAM,OAAO,CAAC;gBAC7C,KAAK,EAAE,MAAM,CAAC,QAAQ;gBACtB,MAAM;gBACN,YAAY,EAAE,MAAM;gBACpB,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,SAAS;gBAClB,WAAW;gBACX,WAAW,EAAE,cAAc;gBAC3B,aAAa,EAAE,KAAK,CAAC,IAAI;gBACzB,cAAc;gBACd,QAAQ;gBACR,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe;gBAC9C,oBAAoB,EAAE,sCAAsC;gBAC5D,UAAU,EAAE,eAAe;gBAC3B,eAAe;gBACf,UAAU,EAAE,aAAa;gBACzB,aAAa,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE;gBAC1E,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,CAAC,CAAC,CAAC;YACJ,IAAI,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;gBACjC,MAAM,oBAAoB,CACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,EAChC,cAAc,EACd,aAAa,EACb,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,aAAa,CACrB,CAAC;gBACF,MAAM,kBAAkB,CACtB,KAAK,CAAC,OAAO,EACb,uBAAuB,EACvB,OAAO,CAAC,EAAE,EACV,qBAAqB,CACnB;oBACE,SAAS,EAAE,KAAK;oBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,WAAW,EAAE,aAAa,CAAC,MAAM;oBACjC,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;iBACvE,EACD,yBAAyB,CAAC,KAAK,CAAC,WAAW,CAAC,CAClB,CAC7B,CAAC;YACJ,CAAC;YACD,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,UAAU;gBACtB,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC;oBACE,GAAG,aAAa;oBAChB,MAAM,EAAE,WAAW;oBACnB,WAAW,EAAE,WAAW;oBACxB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC;iBAC1D,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;YACzF,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YAC1E,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YACvE,iBAAiB,CACf,OAAO,EACP,cAAc,KAAK,EAAE,EACrB,KAAK,CAAC,OAAO,EACb,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAuB,CACxD,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvC,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,iBAAiB,GAAG,yBAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC1E,MAAM,cAAc,CAClB,6CAA6C,EAC7C,mEAAmE,EACnE,iBAAiB,CAClB,CAAC;YACJ,CAAC;YACD,IACE,KAAK,CAAC,MAAM;gBACV,IAAI,CAAC,GAAG,CACN,MAAM,CAAC,MAAM,CAAC,8BAA8B,EAC5C,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,MAAM,CAC5C;gBACH,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe;gBAClD,KAAK,CAAC,OAAO,GAAG,gBAAgB;gBAChC,KAAK,CAAC,WAAW,GAAG,cAAc,EAClC,CAAC;gBACD,MAAM,cAAc,CAClB,0BAA0B,EAC1B,oFAAoF,CACrF,CAAC;YACJ,CAAC;YACD,IACE,CAAC,MAAM,CAAC,OAAO;gBACf,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,KAAK;gBAC9C,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC1E,MAAM,CAAC,SAAS,EAAE,UAAU,KAAK,aAAa;gBAC9C,MAAM,CAAC,SAAS,CAAC,aAAa,KAAK,uCAAuC;gBAC1E,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,KAAK,gBAAgB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EACtF,CAAC;gBACD,MAAM,cAAc,CAClB,sDAAsD,EACtD,wFAAwF,CACzF,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC7D,IACE,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM;gBAC9D,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,GAAG,EAAE,EACrE,CAAC;gBACD,MAAM,cAAc,CAClB,0CAA0C,EAC1C,oEAAoE,CACrE,CAAC;YACJ,CAAC;YACD,IAAI,MAAe,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,cAAc,CAClB,oCAAoC,EACpC,yEAAyE,CAC1E,CAAC;YACJ,CAAC;YACD,IAAI,aAAa,CAAC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpF,MAAM,cAAc,CAClB,0CAA0C,EAC1C,kDAAkD,CACnD,CAAC;YACJ,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YACpD,MAAM,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxE,IACE,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY;gBAC3C,MAAM,CAAC,qBAAqB,KAAK,MAAM,CAAC,QAAQ,CAAC,aAAa,EAC9D,CAAC;gBACD,MAAM,cAAc,CAClB,4CAA4C,EAC5C,gFAAgF,CACjF,CAAC;YACJ,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC3D,MAAM,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,aAAa,GACjB,WAAW,GAAG,OAAO,CAAC,EAAE,GAAG,gCAAgC,GAAG,YAAY,GAAG,OAAO,CAAC;YACvF,MAAM,eAAe,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YACrF,MAAM,IAAI,GAAG,qBAAqB,CAChC;gBACE,aAAa,EAAE,CAAC;gBAChB,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,qBAAqB,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa;gBACpD,KAAK;gBACL,OAAO,EAAE,QAAQ,GAAG,CAAC;gBACrB,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,SAAS;gBAC7C,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;gBACpC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,aAAa;gBACb,YAAY;gBACZ,KAAK;gBACL,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,wBAAwB;gBAClE,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,IAAI;gBACnD,aAAa,EAAE,cAAc;gBAC7B,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;gBACzC,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;gBACvC,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;aACxC,EACD,OAAO,CACmB,CAAC;YAC7B,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACvE,MAAM,cAAc,GAClB,WAAW,GAAG,OAAO,CAAC,EAAE,GAAG,iCAAiC,GAAG,aAAa,GAAG,OAAO,CAAC;YACzF,MAAM,eAAe,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACpF,MAAM,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,uCAAuC,EAAE,OAAO,CAAC,EAAE,EAAE;gBAC3F,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,KAAK;gBACL,cAAc;gBACd,aAAa;gBACb,YAAY;aACb,CAAC,CAAC;YACH,aAAa,GAAG,IAAI,CAAC;YACrB,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC9F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,sBAAsB,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC5C,uEAAuE;gBACvE,+EAA+E;gBAC/E,MAAM,OAAO,GACX,aAAa,KAAK,IAAI;oBACpB,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,GAAG,aAAa,CAAC;gBACtE,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,sBAAsB,CAAC,WAAW,GAAG,OAAO,CAAC;gBACzE,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;oBAC3B,OAAO,CAAC,KAAK,GAAG,EAAE,GAAG,sBAAsB,EAAE,CAAC;gBAChD,CAAC;gBACD,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,sEAAsE;gBACtE,uEAAuE;gBACvE,IAAI,cAAc,EAAE,CAAC;oBACnB,IAAI,SAAkC,CAAC;oBACvC,IAAI,CAAC;wBACH,SAAS,GAAG;4BACV,eAAe,EAAE,MAAM,qBAAqB,CAAC;gCAC3C,IAAI,EAAE,KAAK,CAAC,IAAI;gCAChB,SAAS,EAAE,OAAO,CAAC,EAAE;gCACrB,MAAM;gCACN,KAAK;gCACL,MAAM,EAAE,cAAc;gCACtB,WAAW,EACT,KAAK,YAAY,QAAQ;oCACvB,CAAC,CAAC,KAAK,CAAC,IAAI;oCACZ,CAAC,CAAC,6CAA6C;gCACnD,MAAM;gCACN,WAAW,EAAE,KAAK,CAAC,WAAW;6BAC/B,CAAC;yBACH,CAAC;oBACJ,CAAC;oBAAC,MAAM,CAAC;wBACP,kEAAkE;wBAClE,iDAAiD;wBACjD,SAAS,GAAG,EAAE,eAAe,EAAE,qBAAqB,EAAE,CAAC;oBACzD,CAAC;oBACD,iBAAiB,GAAG,EAAE,GAAG,iBAAiB,EAAE,GAAG,SAAS,EAAE,CAAC;gBAC7D,CAAC;gBACD,MAAM,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,oCAAoC,EAAE,OAAO,CAAC,EAAE,EAAE;oBACxF,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,KAAK;oBACL,OAAO,EAAE,QAAQ,GAAG,CAAC;oBACrB,IAAI,EACF,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,6CAA6C;oBACxF,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;oBAC5B,kBAAkB,EAAE,2BAA2B;iBAChD,CAAC,CAAC;YACL,CAAC;YACD,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC,iBAAiB;oBAAE,MAAM,KAAK,CAAC;gBACpC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE;oBAChC,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,OAAO,EAAE;wBACP,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;wBACjD,GAAG,iBAAiB;qBACrB;iBACF,CAAC,CAAC;YACL,CAAC;YACD,MAAM,cAAc,CAClB,6CAA6C,EAC7C,uGAAuG,EACvG,iBAAiB,IAAI,SAAS,CAC/B,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IACE,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC;gBAC3B,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC9E,CAAC;gBACD,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;IACrD,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;IACnD,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC1E,MAAM,cAAc,CAClB,sDAAsD,EACtD,sDAAsD,CACvD,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACvF,IAAI,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;QACpD,MAAM,cAAc,CAClB,sDAAsD,EACtD,oDAAoD,CACrD,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC;QAC9C,GAAG,KAAK;QACR,UAAU;QACV,gBAAgB,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE;KACxE,CAAC,CAAC;IACH,OAAO;QACL,GAAG,UAAU;QACb,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,KASpC;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,WAAW,GAAG,eAAe,CAAC;IAClC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,2BAA2B,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC,EAAE,CAAC;QAC5F,WAAW,GAAG,mBAAmB,CAAC;IACpC,CAAC;SAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QAC1E,WAAW,GAAG,gBAAgB,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,aAAa,CAAC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpF,WAAW,GAAG,gBAAgB,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;YACvE,kEAAkE;YAClE,WAAW,GAAG,sBAAsB,CAAC;QACvC,CAAC;IACH,CAAC;IACD,IAAI,aAAa,GAA2C,IAAI,CAAC;IACjE,IAAI,CAAC;QACH,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;IACnE,CAAC;IACD,MAAM,eAAe,GAAG,qBAAqB,CAC3C;QACE,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;QAC/B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;QACnC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,IAAI;KACpD,EACD,OAAO,CACR,CAAC;IACF,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG;QACb,aAAa,EAAE,CAAC;QAChB,IAAI,EAAE,6CAA6C;QACnD,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;QACvB,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;QACvC,qBAAqB,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa;QAC1D,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;QACxE,aAAa;QACb,8EAA8E;QAC9E,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI;QACtF,qBAAqB,EAAE,UAAU,CAAC,YAAY,CAAC;QAC/C,MAAM,EAAE;YACN,WAAW;YACX,KAAK;YACL,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;YACjC,MAAM,EAAE,WAAW,KAAK,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;SAC/D;QACD,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;KACxC,CAAC;IACF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,YAAY,KAAK,CAAC,SAAS,iCAAiC,MAAM,OAAO,CAAC;IAC1F,MAAM,IAAI,GAAG,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,cAAc,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC/F,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,IAAY,EACZ,OAAgB,EAChB,MAAe,EACf,QAKC;IAED,IACE,OAAO,MAAM,KAAK,QAAQ;QAC1B,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9B,OAAO,KAAK,YAAY,QAAQ,CAAC,SAAS,kCAAkC,MAAM,OAAO,EACzF,CAAC;QACD,MAAM,cAAc,CAClB,sDAAsD,EACtD,uDAAuD,CACxD,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,2BAA2B,EAAE,CAAC;QACxF,MAAM,cAAc,CAClB,sDAAsD,EACtD,wDAAwD,CACzD,CAAC;IACJ,CAAC;IACD,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,2BAA2B;gBAClF,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAC7C,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,OAAO,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;gBACjF,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC;oBAAE,MAAM;gBAClC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC;YAC7B,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACzC,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM;gBACvF,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,cAAc,CAClB,sDAAsD,EACtD,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,KAAK,CAAC,aAAa,KAAK,CAAC;QACzB,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;QACtC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;QAC5B,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY;QAC5C,KAAK,CAAC,qBAAqB,KAAK,QAAQ,CAAC,qBAAqB;QAC9D,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;QACtC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QAC1C,KAAK,CAAC,aAAa;YACjB,YAAY,QAAQ,CAAC,SAAS,iCAAiC,KAAK,CAAC,YAAY,OAAO,EAC1F,CAAC;QACD,MAAM,cAAc,CAClB,sDAAsD,EACtD,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,MAAuB;IAC3C,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC;IACF,IACE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QAC1E,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,YAAY,EACjF,CAAC;QACD,MAAM,cAAc,CAClB,sDAAsD,EACtD,qCAAqC,CACtC,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,WAAmB,EACnB,MAA8B,EAC9B,MAAuB,EACvB,MAA6B,EAC7B,KAAmB;IAEnB,MAAM,SAAS,GAAG;QAChB,oSAAoS;QACpS,gMAAgM;QAChM,gBAAgB,MAAM,CAAC,YAAY,2BAA2B,MAAM,CAAC,QAAQ,CAAC,aAAa,UAAU,MAAM,CAAC,IAAI,EAAE;QAClH,wBAAwB,CAAC,KAAK,CAAC;KAChC,CAAC;IACF,MAAM,QAAQ,GAAG;QACf,GAAG,IAAI,GAAG,CAAC;YACT,sCAAsC;YACtC,MAAM,CAAC,MAAM,CAAC,aAAa;YAC3B,MAAM,CAAC,UAAU,CAAC,aAAa;YAC/B,MAAM,CAAC,MAAM,CAAC,aAAa;YAC3B,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC7D,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;SACnD,CAAC;KACH,CAAC;IACF,SAAS,CAAC,IAAI,CACZ,MAAM,qBAAqB,CACzB,WAAW,EACX,KAAK,EACL,QAAQ,EACR,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,kCAAkC,CAC1F,CACF,CAAC;IACF,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,IAAY,EACZ,cAAsB,EACtB,MAA8B,EAC9B,MAA6B;IAE7B,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACtE,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9F,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC7C,MAAM,cAAc,CAClB,4CAA4C,EAC5C,0CAA0C,CAC3C,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACvC,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YAC1C,MAAM,cAAc,CAClB,4CAA4C,EAC5C,gEAAgE,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,yBAAyB,CAChC,MAAuB,EACvB,KAAuD,EACvD,WAAmB;IAEnB,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC7D,IAAI,UAAU,GAAG,oBAAoB,CACnC,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SAChE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC;QACX,+FAA+F,EACjG,OAAO,CACR,CAAC;IACF,KAAK,MAAM,IAAI,IAAI;QACjB,WAAW;QACX,KAAK,CAAC,IAAI;QACV,KAAK,CAAC,WAAW,CAAC,IAAI;QACtB,KAAK,CAAC,WAAW,CAAC,iBAAiB;QACnC,KAAK,CAAC,WAAW,CAAC,UAAU;KAC7B,EAAE,CAAC;QACF,IAAI,IAAI;YAAE,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,qBAAqB,CAC1B;QACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;QACrC,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;QACvC,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;QACvC,aAAa,EACX,yGAAyG;KAC5G,EACD,OAAO,CACmB,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,OAAe,EAAE,OAAiC;IACtF,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACvF,CAAC"}
@@ -112,7 +112,7 @@ interface ScientificReviewStageInput {
112
112
  path: string;
113
113
  sha256: string;
114
114
  bytes: number;
115
- purpose: "construct-canary" | "inherited-gap" | "model-implementation" | "model-environment-lock" | "stage-output";
115
+ purpose: "construct-canary" | "inherited-gap" | "model-implementation" | "model-environment-lock" | "scientific-fulfillment" | "scientific-amendment" | "effective-scientific-design" | "original-request-source" | "native-calculation" | "acquired-evidence" | "stage-output";
116
116
  ownerId: string;
117
117
  sourceLocator: string;
118
118
  hashBasis: "raw-file-bytes";
@@ -128,6 +128,11 @@ export interface ScientificReviewPacket {
128
128
  design: {
129
129
  sha256: string;
130
130
  objectLocator: string;
131
+ fulfillment?: {
132
+ headSha256: string | null;
133
+ effectiveSha256: string;
134
+ };
135
+ amendmentSha256?: string | null;
131
136
  };
132
137
  policy: {
133
138
  resolvedPolicySha256: string;