@inflexa-ai/harness 0.16.0 → 0.18.0

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 (295) hide show
  1. package/dist/agents/conversation-agent.d.ts +3 -0
  2. package/dist/agents/conversation-agent.js +5 -2
  3. package/dist/agents/report-builder.d.ts +2 -0
  4. package/dist/agents/report-builder.js +2 -0
  5. package/dist/agents/sandbox/shared.d.ts +3 -0
  6. package/dist/agents/sandbox/shared.js +5 -0
  7. package/dist/agents/sandbox/types.d.ts +1 -1
  8. package/dist/app/chat-turn.d.ts +2 -0
  9. package/dist/app/chat-turn.js +11 -2
  10. package/dist/app/spawn-report-session.d.ts +85 -0
  11. package/dist/app/spawn-report-session.js +83 -0
  12. package/dist/app/synthesize-run.d.ts +3 -0
  13. package/dist/app/synthesize-run.js +2 -1
  14. package/dist/citations/__fixtures__/resolver.d.ts +3 -0
  15. package/dist/citations/__fixtures__/resolver.js +9 -0
  16. package/dist/citations/aggregate.d.ts +3 -0
  17. package/dist/citations/aggregate.js +44 -0
  18. package/dist/citations/clients/arxiv.d.ts +6 -0
  19. package/dist/citations/clients/arxiv.js +34 -0
  20. package/dist/citations/clients/common.d.ts +11 -0
  21. package/dist/citations/clients/common.js +43 -0
  22. package/dist/citations/clients/crossref.d.ts +8 -0
  23. package/dist/citations/clients/crossref.js +98 -0
  24. package/dist/citations/clients/doi-registry.d.ts +3 -0
  25. package/dist/citations/clients/doi-registry.js +95 -0
  26. package/dist/citations/clients/pubmed.d.ts +6 -0
  27. package/dist/citations/clients/pubmed.js +83 -0
  28. package/dist/citations/clients/semantic-scholar.d.ts +6 -0
  29. package/dist/citations/clients/semantic-scholar.js +60 -0
  30. package/dist/citations/compare.d.ts +9 -0
  31. package/dist/citations/compare.js +72 -0
  32. package/dist/citations/match.d.ts +11 -0
  33. package/dist/citations/match.js +173 -0
  34. package/dist/citations/normalize.d.ts +31 -0
  35. package/dist/citations/normalize.js +187 -0
  36. package/dist/citations/plan.d.ts +2 -0
  37. package/dist/citations/plan.js +59 -0
  38. package/dist/citations/resolve.d.ts +28 -0
  39. package/dist/citations/resolve.js +238 -0
  40. package/dist/citations/types.d.ts +583 -0
  41. package/dist/citations/types.js +129 -0
  42. package/dist/contracts/chat-events.d.ts +9 -0
  43. package/dist/contracts/index.d.ts +6 -2
  44. package/dist/contracts/index.js +3 -1
  45. package/dist/contracts/organ-system.d.ts +49 -0
  46. package/dist/contracts/organ-system.js +67 -0
  47. package/dist/contracts/report-blocks.d.ts +564 -0
  48. package/dist/contracts/report-blocks.js +117 -0
  49. package/dist/contracts/report-reference.d.ts +459 -0
  50. package/dist/contracts/report-reference.js +256 -0
  51. package/dist/contracts/schemas/chat-events.d.ts +2 -0
  52. package/dist/contracts/schemas/chat-events.js +2 -0
  53. package/dist/contracts/schemas/chat-parts.d.ts +8 -8
  54. package/dist/contracts/severity.d.ts +15 -0
  55. package/dist/contracts/severity.js +10 -0
  56. package/dist/contracts/target-dossier.d.ts +8673 -12970
  57. package/dist/contracts/target-dossier.js +534 -591
  58. package/dist/data/safety-panel-schema.d.ts +18 -5
  59. package/dist/data/safety-panel-schema.js +4 -4
  60. package/dist/execution/artifact-metadata.js +1 -0
  61. package/dist/execution/report-runner.js +1 -3
  62. package/dist/execution/run-synthesis.d.ts +3 -0
  63. package/dist/execution/run-synthesis.js +3 -0
  64. package/dist/index.d.ts +12 -1
  65. package/dist/index.js +22 -0
  66. package/dist/lib/async-utils.d.ts +16 -4
  67. package/dist/lib/async-utils.js +20 -15
  68. package/dist/lib/cache.d.ts +8 -0
  69. package/dist/lib/cache.js +35 -0
  70. package/dist/lib/host-concurrency.js +1 -0
  71. package/dist/lib/rate-limit.d.ts +35 -0
  72. package/dist/lib/rate-limit.js +121 -0
  73. package/dist/literature/sources/arxiv.d.ts +22 -0
  74. package/dist/literature/sources/arxiv.js +103 -0
  75. package/dist/literature/sources/http.d.ts +28 -0
  76. package/dist/literature/sources/http.js +97 -0
  77. package/dist/literature/sources/pubmed.d.ts +68 -0
  78. package/dist/literature/sources/pubmed.js +266 -0
  79. package/dist/literature/sources/semantic-scholar.d.ts +24 -0
  80. package/dist/literature/sources/semantic-scholar.js +71 -0
  81. package/dist/loop/__fixtures__/scripted-provider.js +23 -2
  82. package/dist/loop/run-agent.js +58 -10
  83. package/dist/loop/tool-detail.d.ts +40 -0
  84. package/dist/loop/tool-detail.js +35 -3
  85. package/dist/loop/types.d.ts +13 -0
  86. package/dist/memory/thread-history.d.ts +10 -0
  87. package/dist/memory/thread-history.js +12 -1
  88. package/dist/memory/thread-store.d.ts +142 -25
  89. package/dist/memory/thread-store.js +228 -40
  90. package/dist/prompts/literature-reviewer.d.ts +1 -1
  91. package/dist/prompts/literature-reviewer.js +2 -0
  92. package/dist/prompts/target-assessment/briefs/executive-recommendation.d.ts +1 -1
  93. package/dist/prompts/target-assessment/briefs/executive-recommendation.js +5 -5
  94. package/dist/prompts/target-assessment/briefs/liability-bullets.d.ts +1 -1
  95. package/dist/prompts/target-assessment/briefs/liability-bullets.js +1 -1
  96. package/dist/prompts/target-assessment/briefs/target-organ-liabilities.d.ts +1 -1
  97. package/dist/prompts/target-assessment/briefs/target-organ-liabilities.js +11 -3
  98. package/dist/prompts/target-assessment/investigation/adversarial-critique.d.ts +1 -0
  99. package/dist/prompts/target-assessment/investigation/adversarial-critique.js +67 -0
  100. package/dist/prompts/target-assessment/investigation/claim-reverification.d.ts +1 -0
  101. package/dist/prompts/target-assessment/investigation/claim-reverification.js +49 -0
  102. package/dist/prompts/target-assessment/investigation/index.d.ts +3 -0
  103. package/dist/prompts/target-assessment/investigation/index.js +3 -0
  104. package/dist/prompts/target-assessment/investigation/mechanism-proposal.d.ts +1 -0
  105. package/dist/prompts/target-assessment/investigation/mechanism-proposal.js +49 -0
  106. package/dist/prompts/target-assessment/tox-voice/index.d.ts +1 -1
  107. package/dist/prompts/target-assessment/tox-voice/vocabulary.d.ts +8 -5
  108. package/dist/prompts/target-assessment/tox-voice/vocabulary.js +9 -20
  109. package/dist/providers/__fixtures__/session.d.ts +5 -4
  110. package/dist/providers/__fixtures__/session.js +4 -4
  111. package/dist/report-model/block-walk.d.ts +56 -0
  112. package/dist/report-model/block-walk.js +89 -0
  113. package/dist/report-model/draft-finish.d.ts +60 -0
  114. package/dist/report-model/draft-finish.js +56 -0
  115. package/dist/report-model/draft-operations.d.ts +125 -0
  116. package/dist/report-model/draft-operations.js +341 -0
  117. package/dist/report-model/draft-read.d.ts +59 -0
  118. package/dist/report-model/draft-read.js +109 -0
  119. package/dist/report-model/draft.d.ts +51 -0
  120. package/dist/report-model/draft.js +32 -0
  121. package/dist/report-model/fixture-resolver.d.ts +8 -0
  122. package/dist/report-model/fixture-resolver.js +252 -0
  123. package/dist/report-model/mint-snapshot.d.ts +30 -0
  124. package/dist/report-model/mint-snapshot.js +40 -0
  125. package/dist/report-model/reference-resolver.d.ts +113 -0
  126. package/dist/report-model/reference-resolver.js +60 -0
  127. package/dist/report-model/structural-validation.d.ts +22 -0
  128. package/dist/report-model/structural-validation.js +68 -0
  129. package/dist/report-model/validate.d.ts +40 -0
  130. package/dist/report-model/validate.js +80 -0
  131. package/dist/report-render/chart.d.ts +33 -0
  132. package/dist/report-render/chart.js +538 -0
  133. package/dist/report-render/page.d.ts +127 -0
  134. package/dist/report-render/page.js +307 -0
  135. package/dist/report-render/references.d.ts +32 -0
  136. package/dist/report-render/references.js +44 -0
  137. package/dist/report-render/render.d.ts +25 -0
  138. package/dist/report-render/render.js +125 -0
  139. package/dist/report-render/script-json.d.ts +13 -0
  140. package/dist/report-render/script-json.js +15 -0
  141. package/dist/report-render/types.d.ts +39 -0
  142. package/dist/report-render/types.js +10 -0
  143. package/dist/report-render/views/chart-view.d.ts +11 -0
  144. package/dist/report-render/views/chart-view.js +23 -0
  145. package/dist/report-render/views/page-view.d.ts +20 -0
  146. package/dist/report-render/views/page-view.js +49 -0
  147. package/dist/report-render/views/prose.d.ts +28 -0
  148. package/dist/report-render/views/prose.js +75 -0
  149. package/dist/report-render/views/references-view.d.ts +20 -0
  150. package/dist/report-render/views/references-view.js +64 -0
  151. package/dist/report-render/views/values.d.ts +42 -0
  152. package/dist/report-render/views/values.js +43 -0
  153. package/dist/runtime/assemble.d.ts +50 -4
  154. package/dist/runtime/assemble.js +47 -3
  155. package/dist/runtime/boot.d.ts +3 -3
  156. package/dist/runtime/boot.js +22 -5
  157. package/dist/runtime/dbos.d.ts +4 -4
  158. package/dist/state/artifacts.d.ts +16 -0
  159. package/dist/state/artifacts.js +18 -0
  160. package/dist/state/init.js +77 -1
  161. package/dist/state/purge-analysis.js +1 -0
  162. package/dist/state/report-versions.d.ts +132 -0
  163. package/dist/state/report-versions.js +194 -0
  164. package/dist/state/schema.d.ts +2 -2
  165. package/dist/tasks/data-profile.js +1 -0
  166. package/dist/tools/bio/chembl.js +1 -0
  167. package/dist/tools/bio/comptox.js +1 -0
  168. package/dist/tools/bio/drug-gene-interactions.js +1 -0
  169. package/dist/tools/bio/gene-disease-evidence.js +1 -0
  170. package/dist/tools/bio/gene-preclinical-profile.d.ts +1 -1
  171. package/dist/tools/bio/gene-preclinical-profile.js +1 -0
  172. package/dist/tools/bio/keys.d.ts +4 -2
  173. package/dist/tools/bio/keys.js +3 -2
  174. package/dist/tools/bio/lookup-annotation.js +1 -0
  175. package/dist/tools/bio/opentargets.d.ts +3 -3
  176. package/dist/tools/bio/opentargets.js +4 -3
  177. package/dist/tools/bio/pubchem.js +1 -0
  178. package/dist/tools/bio/pubmed.js +4 -4
  179. package/dist/tools/bio/search-clinical-trials.js +1 -0
  180. package/dist/tools/bio/search-faers.js +1 -0
  181. package/dist/tools/bio/search-geo-datasets.js +1 -0
  182. package/dist/tools/bio/search-interactions.js +1 -0
  183. package/dist/tools/bio/target-safety.d.ts +4 -6
  184. package/dist/tools/bio/target-safety.js +7 -6
  185. package/dist/tools/define-tool.d.ts +19 -12
  186. package/dist/tools/define-tool.js +4 -2
  187. package/dist/tools/display/show-user.js +1 -0
  188. package/dist/tools/iterate-report.js +2 -0
  189. package/dist/tools/lib/chembl-client.d.ts +2 -0
  190. package/dist/tools/lib/chembl-client.js +1 -0
  191. package/dist/tools/lib/monarch-client.d.ts +42 -0
  192. package/dist/tools/lib/monarch-client.js +100 -0
  193. package/dist/tools/lib/ncbi-utils.d.ts +3 -58
  194. package/dist/tools/lib/ncbi-utils.js +2 -286
  195. package/dist/tools/lib/pubmed-client.d.ts +5 -12
  196. package/dist/tools/lib/pubmed-client.js +20 -79
  197. package/dist/tools/report/build-report.js +1 -0
  198. package/dist/tools/report/mint-preview-url.js +1 -0
  199. package/dist/tools/report/preview-snapshot.js +1 -0
  200. package/dist/tools/report/submit-report.js +1 -0
  201. package/dist/tools/report/version-fs.js +4 -0
  202. package/dist/tools/report-authoring/authoring-tools.d.ts +134 -0
  203. package/dist/tools/report-authoring/authoring-tools.js +352 -0
  204. package/dist/tools/research/context7-docs.js +2 -0
  205. package/dist/tools/research/generate-analogy-report.js +3 -2
  206. package/dist/tools/research/generate-plan.js +3 -0
  207. package/dist/tools/research/index.d.ts +1 -0
  208. package/dist/tools/research/index.js +1 -0
  209. package/dist/tools/research/inspect-data-profile.js +4 -0
  210. package/dist/tools/research/inspect-run.d.ts +1 -1
  211. package/dist/tools/research/literature-reviewer.d.ts +3 -0
  212. package/dist/tools/research/literature-reviewer.js +3 -0
  213. package/dist/tools/research/resolve-citation.d.ts +3 -0
  214. package/dist/tools/research/resolve-citation.js +15 -0
  215. package/dist/tools/research/search-arxiv.d.ts +3 -19
  216. package/dist/tools/research/search-arxiv.js +10 -105
  217. package/dist/tools/research/search-github-repos.js +1 -0
  218. package/dist/tools/research/search-semantic-scholar.d.ts +8 -33
  219. package/dist/tools/research/search-semantic-scholar.js +30 -88
  220. package/dist/tools/sandbox/list-available-packages.js +23 -0
  221. package/dist/tools/sandbox/list-available-refs.js +37 -2
  222. package/dist/tools/sandbox/report-blocker.js +1 -0
  223. package/dist/tools/sandbox/skills.js +2 -0
  224. package/dist/tools/workspace/file-stat.js +1 -0
  225. package/dist/tools/workspace/show-file.js +2 -0
  226. package/dist/tools/workspace/show-plan.js +1 -0
  227. package/dist/workflows/execute-analysis.d.ts +8 -1
  228. package/dist/workflows/execute-analysis.js +6 -5
  229. package/dist/workflows/execute-target-assessment.d.ts +13 -2
  230. package/dist/workflows/execute-target-assessment.js +78 -16
  231. package/dist/workflows/sandbox-step.d.ts +5 -0
  232. package/dist/workflows/sandbox-step.js +1 -0
  233. package/dist/workflows/target-assessment/assemblers/index.d.ts +1 -1
  234. package/dist/workflows/target-assessment/assemblers/index.js +1 -1
  235. package/dist/workflows/target-assessment/assemblers/literature.d.ts +9 -27
  236. package/dist/workflows/target-assessment/assemblers/literature.js +32 -48
  237. package/dist/workflows/target-assessment/assemblers/orchestrator.d.ts +17 -9
  238. package/dist/workflows/target-assessment/assemblers/orchestrator.js +195 -85
  239. package/dist/workflows/target-assessment/assemblers/safety.d.ts +70 -48
  240. package/dist/workflows/target-assessment/assemblers/safety.js +125 -42
  241. package/dist/workflows/target-assessment/collectors/index.d.ts +5 -2
  242. package/dist/workflows/target-assessment/collectors/index.js +48 -5
  243. package/dist/workflows/target-assessment/coverage.d.ts +43 -27
  244. package/dist/workflows/target-assessment/coverage.js +33 -29
  245. package/dist/workflows/target-assessment/fanout/index.js +1 -0
  246. package/dist/workflows/target-assessment/investigation/index.d.ts +97 -0
  247. package/dist/workflows/target-assessment/investigation/index.js +419 -0
  248. package/dist/workflows/target-assessment/lib/approval-precedents.d.ts +26 -5
  249. package/dist/workflows/target-assessment/lib/approval-precedents.js +95 -29
  250. package/dist/workflows/target-assessment/lib/citation-validator.js +1 -1
  251. package/dist/workflows/target-assessment/lib/clinical-consequence-annotator.d.ts +2 -2
  252. package/dist/workflows/target-assessment/lib/clinical-evidence-attribution.d.ts +2 -3
  253. package/dist/workflows/target-assessment/lib/clinical-evidence-attribution.js +0 -4
  254. package/dist/workflows/target-assessment/lib/compute-derived.d.ts +6 -5
  255. package/dist/workflows/target-assessment/lib/compute-derived.js +14 -5
  256. package/dist/workflows/target-assessment/lib/family-complex-supplement.d.ts +5 -6
  257. package/dist/workflows/target-assessment/lib/family-complex-supplement.js +2 -3
  258. package/dist/workflows/target-assessment/lib/fda-label-safety.d.ts +72 -0
  259. package/dist/workflows/target-assessment/lib/fda-label-safety.js +166 -0
  260. package/dist/workflows/target-assessment/lib/heterodimer-filter.d.ts +0 -9
  261. package/dist/workflows/target-assessment/lib/heterodimer-filter.js +0 -10
  262. package/dist/workflows/target-assessment/lib/hpo-organ-map.d.ts +34 -0
  263. package/dist/workflows/target-assessment/lib/hpo-organ-map.js +63 -0
  264. package/dist/workflows/target-assessment/lib/impc-organ-map.d.ts +19 -0
  265. package/dist/workflows/target-assessment/lib/impc-organ-map.js +39 -0
  266. package/dist/workflows/target-assessment/lib/meddra-organ-map.d.ts +24 -14
  267. package/dist/workflows/target-assessment/lib/meddra-organ-map.js +59 -47
  268. package/dist/workflows/target-assessment/lib/recommendation-sanitizer.js +1 -1
  269. package/dist/workflows/target-assessment/lib/regulatory-actions.d.ts +2 -3
  270. package/dist/workflows/target-assessment/lib/regulatory-actions.js +33 -4
  271. package/dist/workflows/target-assessment/lib/safety-corroboration.d.ts +44 -0
  272. package/dist/workflows/target-assessment/lib/safety-corroboration.js +273 -0
  273. package/dist/workflows/target-assessment/lib/target-identity-filter.d.ts +5 -7
  274. package/dist/workflows/target-assessment/lib/target-identity-filter.js +5 -7
  275. package/dist/workflows/target-assessment/metrics.d.ts +1 -6
  276. package/dist/workflows/target-assessment/metrics.js +1 -13
  277. package/dist/workflows/target-assessment/phase4-assemble.d.ts +2149 -809
  278. package/dist/workflows/target-assessment/phase4-assemble.js +19 -19
  279. package/dist/workflows/target-assessment/phase5-persist.d.ts +20 -21
  280. package/dist/workflows/target-assessment/phase5-persist.js +56 -173
  281. package/dist/workflows/target-assessment/schemas.d.ts +48 -3
  282. package/dist/workflows/target-assessment/schemas.js +19 -0
  283. package/dist/workflows/target-assessment/steps/fanout/polypharm-for-one-modulator-step.d.ts +1 -0
  284. package/dist/workflows/target-assessment/steps/fanout/polypharm-for-one-modulator-step.js +2 -0
  285. package/dist/workflows/target-assessment/steps/phase2-aggregate.d.ts +27 -63
  286. package/dist/workflows/target-assessment/steps/phase2-aggregate.js +0 -4
  287. package/dist/workflows/target-assessment/steps/phase3-aggregate.d.ts +28 -155
  288. package/dist/workflows/target-assessment/steps/phase3-aggregate.js +0 -6
  289. package/dist/workflows/target-assessment/steps/synthesis/diagnostics.d.ts +0 -6
  290. package/dist/workflows/target-assessment/steps/synthesis/diagnostics.js +0 -18
  291. package/dist/workflows/target-assessment/sub-workflows/per-modulator-polypharm.d.ts +1 -0
  292. package/dist/workflows/target-assessment/synthesis/index.d.ts +52 -5
  293. package/dist/workflows/target-assessment/synthesis/index.js +4 -1
  294. package/dist/workflows/target-assessment/synthesis-probes.d.ts +3 -3
  295. package/package.json +4 -1
@@ -0,0 +1,129 @@
1
+ import { z } from "zod";
2
+ export const CitationKindSchema = z.enum(["doi", "pmid", "arxiv", "free_text", "auto"]);
3
+ export const CitationInputSchema = z.object({
4
+ citation: z.string().trim().min(1).max(5_000),
5
+ kind: CitationKindSchema.optional(),
6
+ title: z.string().trim().min(1).max(2_000).optional(),
7
+ authors: z.array(z.string().trim().min(1).max(500)).max(500).optional(),
8
+ year: z.number().int().min(1000).max(3000).optional(),
9
+ venue: z.string().trim().min(1).max(1_000).optional(),
10
+ volume: z.string().trim().min(1).max(100).optional(),
11
+ firstPage: z.string().trim().min(1).max(100).optional(),
12
+ });
13
+ export const CitationSourceSchema = z.enum(["doi_registry", "crossref", "pubmed", "arxiv", "semantic_scholar"]);
14
+ export const CitationSourceStatusSchema = z.enum(["ok", "no_data", "unavailable", "not_applicable"]);
15
+ export const CitationVerdictSchema = z.enum(["verified", "metadata_mismatch", "not_found", "unverifiable", "inconclusive"]);
16
+ export const CitationCoverageSchema = z.enum(["complete", "partial", "none"]);
17
+ export const ComparisonStatusSchema = z.enum(["match", "mismatch", "not_compared"]);
18
+ export const CitationFieldSchema = z.enum(["title", "authors", "year", "venue", "volume", "firstPage"]);
19
+ export const UnsupportedWorkKindSchema = z.enum(["personal_communication", "unpublished", "unregistered_in_press"]);
20
+ export const CitationIdentifiersSchema = z.object({
21
+ doi: z.string().optional(),
22
+ pmid: z.string().optional(),
23
+ arxiv: z.string().optional(),
24
+ corpusId: z.string().optional(),
25
+ });
26
+ export const NormalizedCitationMetadataSchema = z.object({
27
+ title: z.string().optional(),
28
+ authors: z.array(z.string()).optional(),
29
+ year: z.number().int().optional(),
30
+ venue: z.string().optional(),
31
+ volume: z.string().optional(),
32
+ firstPage: z.string().optional(),
33
+ });
34
+ export const NormalizedCitationSchema = z.object({
35
+ citation: z.string(),
36
+ query: z.string(),
37
+ kind: z.enum(["doi", "pmid", "arxiv", "free_text"]),
38
+ identifiers: CitationIdentifiersSchema,
39
+ supplied: NormalizedCitationMetadataSchema,
40
+ unsupportedWorkKind: UnsupportedWorkKindSchema.optional(),
41
+ });
42
+ export const CitationRecordSchema = z.object({
43
+ source: CitationSourceSchema,
44
+ sourceRecordId: z.string(),
45
+ identifiers: CitationIdentifiersSchema,
46
+ title: z.string().optional(),
47
+ authors: z.array(z.string()).optional(),
48
+ year: z.number().int().optional(),
49
+ venue: z.string().optional(),
50
+ volume: z.string().optional(),
51
+ firstPage: z.string().optional(),
52
+ registrationAgency: z.string().optional(),
53
+ url: z.string().optional(),
54
+ });
55
+ export const IdentifierEvidenceSchema = z.object({
56
+ type: z.enum(["doi", "pmid", "arxiv"]),
57
+ identifier: z.string(),
58
+ exists: z.boolean(),
59
+ registrationAgency: z.string().optional(),
60
+ metadataAvailable: z.boolean(),
61
+ });
62
+ export const CitationSourceOutcomeSchema = z.object({
63
+ source: CitationSourceSchema,
64
+ operation: z.string(),
65
+ status: CitationSourceStatusSchema,
66
+ requestCount: z.number().int().nonnegative(),
67
+ records: z.array(CitationRecordSchema),
68
+ detail: z.string().optional(),
69
+ identifierEvidence: IdentifierEvidenceSchema.optional(),
70
+ });
71
+ export const CitationFieldComparisonSchema = z.object({
72
+ field: CitationFieldSchema,
73
+ status: ComparisonStatusSchema,
74
+ supplied: z.union([z.string(), z.number(), z.array(z.string())]),
75
+ sourceValues: z.array(z.object({
76
+ source: CitationSourceSchema,
77
+ value: z.union([z.string(), z.number(), z.array(z.string())]),
78
+ })),
79
+ ruleVersion: z.string(),
80
+ });
81
+ export const CitationConflictSchema = z.object({
82
+ field: CitationFieldSchema,
83
+ values: z.array(z.object({
84
+ source: CitationSourceSchema,
85
+ value: z.union([z.string(), z.number(), z.array(z.string())]),
86
+ })),
87
+ });
88
+ export const CitationClusterRelationSchema = z.object({
89
+ clusterId: z.string(),
90
+ kind: z.enum(["preprint_of", "published_as", "related_version"]),
91
+ });
92
+ export const CitationCandidateClusterSchema = z.object({
93
+ id: z.string(),
94
+ score: z.number().min(0).max(1),
95
+ records: z.array(CitationRecordSchema).min(1),
96
+ relations: z.array(CitationClusterRelationSchema),
97
+ });
98
+ export const CitationResolutionResultSchema = z.object({
99
+ input: CitationInputSchema,
100
+ normalized: NormalizedCitationSchema,
101
+ sourceOutcomes: z.array(CitationSourceOutcomeSchema),
102
+ candidates: z.array(CitationCandidateClusterSchema),
103
+ selectedClusterId: z.string().optional(),
104
+ comparisons: z.array(CitationFieldComparisonSchema),
105
+ conflicts: z.array(CitationConflictSchema),
106
+ verdict: CitationVerdictSchema,
107
+ coverage: CitationCoverageSchema,
108
+ });
109
+ export const CitationSourceOperationSchema = z.enum([
110
+ "doi_exact",
111
+ "crossref_doi_if_owned",
112
+ "crossref_bibliographic",
113
+ "pubmed_exact",
114
+ "pubmed_doi",
115
+ "pubmed_structured",
116
+ "pubmed_title",
117
+ "arxiv_exact",
118
+ "arxiv_bibliographic",
119
+ "semantic_scholar_identifier",
120
+ "semantic_scholar_bibliographic",
121
+ "none",
122
+ ]);
123
+ export const CitationSourcePlanItemSchema = z.object({
124
+ source: CitationSourceSchema,
125
+ applicable: z.boolean(),
126
+ operation: CitationSourceOperationSchema,
127
+ candidateGeneration: z.boolean(),
128
+ reason: z.string(),
129
+ });
@@ -84,6 +84,15 @@ export interface ToolFinishedEvent {
84
84
  outcome: ToolOutcome;
85
85
  /** The same detail the matching `tool-started` carried. */
86
86
  detail?: ToolCallDetail;
87
+ /**
88
+ * The time in milliseconds around this call's own dispatch. Absent — never
89
+ * zero — when the harness took no measurement.
90
+ *
91
+ * A host must read it as `event.durationMs ?? (its own bracket)`. The bracket
92
+ * of a host spans the whole round, because the loop emits every start before
93
+ * it dispatches anything. Thus the fallback is correct only for one call.
94
+ */
95
+ durationMs?: number;
87
96
  source: EventSource;
88
97
  }
89
98
  /**
@@ -1,3 +1,7 @@
1
+ export { ORGAN_SYSTEMS, OrganSystemSchema, ORGAN_SYSTEM_LABELS, organSystemLabel } from "./organ-system.js";
2
+ export type { OrganSystem } from "./organ-system.js";
3
+ export { SEVERITIES, SeveritySchema } from "./severity.js";
4
+ export type { Severity } from "./severity.js";
1
5
  export type { PlanStep, PresentationContent, PresentationPart, PlanPart, RunCardPart, FileReferenceEntry, FileReferencePart, AskPart, RunStartedPart, StepStatus, DagStepState, DagStatePart, StepPhase, StepActivityPart, FileTreeEntry, StepFileTreePart, StepOutputFile, StepOutputPart, StepSummaryPart, StepUsagePart, StepBlockedPart, SynthesizedFinding, BiologicalTheme, RunSynthesisPart, SynthesisPhase, SynthesisProgressPart, RunCompletedFinding, RunCompletedPart, RunFailedPart, PreviewPart, DataPreviewFailedPart, CortexChatPart, } from "./chat-parts.js";
2
6
  export type { EventSource, TextDeltaEvent, ToolStartedEvent, ToolFinishedEvent, FinishEvent, ChatErrorEvent, CortexChatEvent } from "./chat-events.js";
3
7
  export type { TokenUsageRollup } from "./usage.js";
@@ -7,8 +11,8 @@ export { PART_REGISTRY, isTransient, isReconciling, isSidebarPart } from "./part
7
11
  export type { CortexChatPartType, PartDescriptor, PartEmitter, PartConsumer } from "./part-registry.js";
8
12
  export { AnalogyCoverageSchema, AnalogyReportSchema, AnalogyReportErrorSchema, AnalogicalReasonerOutputSchema } from "./analogy-report.js";
9
13
  export type { AnalogyCoverage, AnalogyReport, AnalogyReportError, AnalogicalReasonerOutput } from "./analogy-report.js";
10
- export { CoverageSchema, EntitySchema, SummarySchema, LiabilitySummarySchema, TractabilitySchema, IndicationsSchema, DrugInteractionsSchema, ClinicalDevelopmentSchema, SafetyProfileSchema, OffTissueRiskSchema, EvidenceConflictsSchema, EvidenceTimelineSchema, TranslationalChainSchema, AdditionalEvidenceSchema, DiscoveryTrialsSchema, DossierSchema, DossierSchemaV3Legacy, DossierV4Schema, DossierV5Schema, DossierV5BodySchema, ClinicalTrialAttributionV5Schema, ClinicalDevelopmentV5Schema, RegulatoryActionRowV5Schema, QualityGateStatusSchema, QualityGatesSchema, LiabilitySummaryV4Schema, ClinicalDevelopmentV4Schema, SafetyProfileV4Schema, OrganRiskRowV4Schema, ReferenceBiologyV4Shape, isDossier, dossierJsonSchema, SECTION_BLURBS, TargetAssessmentPhaseSchema, TargetAssessmentProgressEventSchema, } from "./target-dossier.js";
11
- export type { Coverage, Entity, Summary, LiabilitySummary, TractabilitySection, EvidenceItem, Dossier, DossierV4, DossierV5, DossierV5Body, ClinicalTrialAttributionV5, ClinicalTrialRowV5, FailedTrialRowV5, TrialOutcomeRowV5, RegulatoryActionRowV5, QualityGateStatus, QualityGates, SectionBlurbKey, TargetAssessmentPhase, TargetAssessmentProgressEvent, } from "./target-dossier.js";
14
+ export { CoverageSchema, RowCoverageSchema, EntitySchema, ClaimSupportSchema, ClaimEvidenceSchema, LiabilityBulletSchema, LiabilitySummarySchema, TractabilitySchema, IndicationsSchema, DrugInteractionsSchema, ClinicalTrialAttributionSchema, ClinicalDevelopmentSchema, OrganRiskRowSchema, OffTargetRowSchema, OffTargetPanelSchema, RegulatoryActionRowSchema, SafetyFlagSchema, SafetyProfileSchema, OffTissueRowSchema, OffTissueRiskSchema, ReferenceBiologyShape, EvidenceConflictsSchema, EvidenceTimelineSchema, TranslationalChainSchema, AdditionalEvidenceSchema, DiscoveryTrialsSchema, QualityGateStatusSchema, QualityGatesSchema, DerivedSchema, DossierSchema, DossierBodySchema, isDossier, dossierJsonSchema, SECTION_BLURBS, TargetAssessmentPhaseSchema, TargetAssessmentProgressEventSchema, } from "./target-dossier.js";
15
+ export type { Coverage, RowCoverage, Entity, EvidenceItem, ClaimSupport, ClaimEvidence, LiabilityBullet, LiabilitySummary, TractabilitySection, ClinicalTrialAttribution, ClinicalTrialRow, ClinicalDevelopment, FailedTrialRow, TrialOutcomeRow, OrganRiskRow, OffTargetRow, RegulatoryActionRow, SafetyFlag, SafetyProfile, OffTissueRow, QualityGateStatus, QualityGates, Derived, Dossier, DossierBody, SectionBlurbKey, TargetAssessmentPhase, TargetAssessmentProgressEvent, } from "./target-dossier.js";
12
16
  export { TargetAssessmentStatusSchema, TargetAssessmentErrorSchema, TargetAssessmentListRowSchema, TargetAssessmentRowSchema, } from "./target-assessment-row.js";
13
17
  export type { TargetAssessmentStatus, TargetAssessmentError, TargetAssessmentListRow, TargetAssessmentRow } from "./target-assessment-row.js";
14
18
  export { buildPreviewUrl, previewResourceId } from "./content-url.js";
@@ -1,6 +1,8 @@
1
+ export { ORGAN_SYSTEMS, OrganSystemSchema, ORGAN_SYSTEM_LABELS, organSystemLabel } from "./organ-system.js";
2
+ export { SEVERITIES, SeveritySchema } from "./severity.js";
1
3
  export { DATA_PROFILE_RUN_LITERAL } from "./data-profile.js";
2
4
  export { PART_REGISTRY, isTransient, isReconciling, isSidebarPart } from "./part-registry.js";
3
5
  export { AnalogyCoverageSchema, AnalogyReportSchema, AnalogyReportErrorSchema, AnalogicalReasonerOutputSchema } from "./analogy-report.js";
4
- export { CoverageSchema, EntitySchema, SummarySchema, LiabilitySummarySchema, TractabilitySchema, IndicationsSchema, DrugInteractionsSchema, ClinicalDevelopmentSchema, SafetyProfileSchema, OffTissueRiskSchema, EvidenceConflictsSchema, EvidenceTimelineSchema, TranslationalChainSchema, AdditionalEvidenceSchema, DiscoveryTrialsSchema, DossierSchema, DossierSchemaV3Legacy, DossierV4Schema, DossierV5Schema, DossierV5BodySchema, ClinicalTrialAttributionV5Schema, ClinicalDevelopmentV5Schema, RegulatoryActionRowV5Schema, QualityGateStatusSchema, QualityGatesSchema, LiabilitySummaryV4Schema, ClinicalDevelopmentV4Schema, SafetyProfileV4Schema, OrganRiskRowV4Schema, ReferenceBiologyV4Shape, isDossier, dossierJsonSchema, SECTION_BLURBS, TargetAssessmentPhaseSchema, TargetAssessmentProgressEventSchema, } from "./target-dossier.js";
6
+ export { CoverageSchema, RowCoverageSchema, EntitySchema, ClaimSupportSchema, ClaimEvidenceSchema, LiabilityBulletSchema, LiabilitySummarySchema, TractabilitySchema, IndicationsSchema, DrugInteractionsSchema, ClinicalTrialAttributionSchema, ClinicalDevelopmentSchema, OrganRiskRowSchema, OffTargetRowSchema, OffTargetPanelSchema, RegulatoryActionRowSchema, SafetyFlagSchema, SafetyProfileSchema, OffTissueRowSchema, OffTissueRiskSchema, ReferenceBiologyShape, EvidenceConflictsSchema, EvidenceTimelineSchema, TranslationalChainSchema, AdditionalEvidenceSchema, DiscoveryTrialsSchema, QualityGateStatusSchema, QualityGatesSchema, DerivedSchema, DossierSchema, DossierBodySchema, isDossier, dossierJsonSchema, SECTION_BLURBS, TargetAssessmentPhaseSchema, TargetAssessmentProgressEventSchema, } from "./target-dossier.js";
5
7
  export { TargetAssessmentStatusSchema, TargetAssessmentErrorSchema, TargetAssessmentListRowSchema, TargetAssessmentRowSchema, } from "./target-assessment-row.js";
6
8
  export { buildPreviewUrl, previewResourceId } from "./content-url.js";
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The canonical organ-system vocabulary.
3
+ *
4
+ * This is the ONLY organ vocabulary in the package. Per-organ evidence is
5
+ * joined by equality on these tokens, so a second enumeration — even a
6
+ * "temporary" or deprecated one — reintroduces the string matching this
7
+ * exists to remove. Producers resolve external and model-supplied organ
8
+ * names onto these tokens at their own boundary.
9
+ *
10
+ * Membership is anatomical, with one deliberate exception: `oncology` is a
11
+ * therapeutic area rather than an organ system, so grouping by it does not
12
+ * denote a site. It is retained because malignancy signals — MedDRA neoplasm
13
+ * SOC terms, and regulatory findings matched on malignancy keywords — have
14
+ * no other channel to arrive on, and dropping the member would discard them.
15
+ * Known debt: the honest fix is a separate non-organ signal channel.
16
+ */
17
+ import { z } from "zod";
18
+ export declare const ORGAN_SYSTEMS: readonly ["cardiac", "vascular", "hepatic", "renal", "cns", "pns", "gi", "pancreas", "endocrine_thyroid", "metabolic", "hematologic", "immune", "respiratory", "reproductive", "musculoskeletal", "dermatologic", "ocular", "oncology"];
19
+ export declare const OrganSystemSchema: z.ZodEnum<{
20
+ hematologic: "hematologic";
21
+ metabolic: "metabolic";
22
+ immune: "immune";
23
+ hepatic: "hepatic";
24
+ musculoskeletal: "musculoskeletal";
25
+ cns: "cns";
26
+ renal: "renal";
27
+ reproductive: "reproductive";
28
+ respiratory: "respiratory";
29
+ cardiac: "cardiac";
30
+ vascular: "vascular";
31
+ pns: "pns";
32
+ gi: "gi";
33
+ pancreas: "pancreas";
34
+ endocrine_thyroid: "endocrine_thyroid";
35
+ dermatologic: "dermatologic";
36
+ ocular: "ocular";
37
+ oncology: "oncology";
38
+ }>;
39
+ export type OrganSystem = (typeof ORGAN_SYSTEMS)[number];
40
+ /**
41
+ * Reader-facing prose for each canonical token.
42
+ *
43
+ * Narrative surfaces (agent voice, rendered dossiers) read these; structured
44
+ * fields always carry the token. Keeping the prose a projection of the token
45
+ * — rather than its own list — is what stops the two drifting into the
46
+ * separate vocabularies this module replaces.
47
+ */
48
+ export declare const ORGAN_SYSTEM_LABELS: Record<OrganSystem, string>;
49
+ export declare const organSystemLabel: (organ: OrganSystem) => string;
@@ -0,0 +1,67 @@
1
+ /**
2
+ * The canonical organ-system vocabulary.
3
+ *
4
+ * This is the ONLY organ vocabulary in the package. Per-organ evidence is
5
+ * joined by equality on these tokens, so a second enumeration — even a
6
+ * "temporary" or deprecated one — reintroduces the string matching this
7
+ * exists to remove. Producers resolve external and model-supplied organ
8
+ * names onto these tokens at their own boundary.
9
+ *
10
+ * Membership is anatomical, with one deliberate exception: `oncology` is a
11
+ * therapeutic area rather than an organ system, so grouping by it does not
12
+ * denote a site. It is retained because malignancy signals — MedDRA neoplasm
13
+ * SOC terms, and regulatory findings matched on malignancy keywords — have
14
+ * no other channel to arrive on, and dropping the member would discard them.
15
+ * Known debt: the honest fix is a separate non-organ signal channel.
16
+ */
17
+ import { z } from "zod";
18
+ export const ORGAN_SYSTEMS = [
19
+ "cardiac",
20
+ "vascular",
21
+ "hepatic",
22
+ "renal",
23
+ "cns",
24
+ "pns",
25
+ "gi",
26
+ "pancreas",
27
+ "endocrine_thyroid",
28
+ "metabolic",
29
+ "hematologic",
30
+ "immune",
31
+ "respiratory",
32
+ "reproductive",
33
+ "musculoskeletal",
34
+ "dermatologic",
35
+ "ocular",
36
+ "oncology",
37
+ ];
38
+ export const OrganSystemSchema = z.enum(ORGAN_SYSTEMS);
39
+ /**
40
+ * Reader-facing prose for each canonical token.
41
+ *
42
+ * Narrative surfaces (agent voice, rendered dossiers) read these; structured
43
+ * fields always carry the token. Keeping the prose a projection of the token
44
+ * — rather than its own list — is what stops the two drifting into the
45
+ * separate vocabularies this module replaces.
46
+ */
47
+ export const ORGAN_SYSTEM_LABELS = {
48
+ cardiac: "cardiac",
49
+ vascular: "vascular",
50
+ hepatic: "hepatobiliary",
51
+ renal: "renal",
52
+ cns: "central nervous system",
53
+ pns: "peripheral nervous system",
54
+ gi: "gastrointestinal",
55
+ pancreas: "pancreatic",
56
+ endocrine_thyroid: "endocrine (thyroid)",
57
+ metabolic: "metabolic",
58
+ hematologic: "haematologic",
59
+ immune: "immunologic",
60
+ respiratory: "respiratory",
61
+ reproductive: "reproductive",
62
+ musculoskeletal: "musculoskeletal",
63
+ dermatologic: "dermatologic",
64
+ ocular: "ocular",
65
+ oncology: "oncology",
66
+ };
67
+ export const organSystemLabel = (organ) => ORGAN_SYSTEM_LABELS[organ];