Commit History
3 days ago
-
feat(trials): show the date ClinicalTrials.gov processed the data, and our changes
avoigt1121 +1: Claude Opus 5.5ClinicalTrials.gov's terms ask a redistributor to show the date ClinicalTrials.gov processed the data and to state any changes. No ToolUniverse 1.5.6 tool returns that date, so trials_for_genes now makes one direct call, ctgov_data_timestamp (GET clinicaltrials.gov/api/v2/version, dataTimestamp), once per answer — the ADR-0001 exception the project lead approved 2026-11-12 (option A). It goes through ToolClient like a tool: 24 h cache, the clinicaltrials rate bucket, the deadline, a pinned schema, cassette replay. Same declared host, no arguments. Every trials payload with an answer now carries source_terms, a ctgov_data_processed_on on each row, and ends its narrative with "Data from ClinicalTrials.gov, processed by ClinicalTrials.gov on <date>." plus the statement of what this Space changes. An unreadable date is said, with the reason; the studies stay. q5_trials_cd40 re-recorded (studies unchanged; adds the /version call). ADR-0001 and the security addendum record the exception. C…e93b289
25 days ago
-
feat: the five knowledge endpoints, gradio_ui and frozen descriptor (s2)
avoigt1121 +1: Claude Opus 5.5- src/endpoints/: drugs_for_targets, trials_for_genes, annotate_genes, pathways_for_genes, targets_for_disease on the s1 core. Inputs validated before any call; every row and nested block (ChEMBL mechanisms, UniProt protein, HGNC mapping, disease resolution) stamped; deterministic "According to <source> (queried <date>)" narratives; unresolved inputs and structured source errors instead of guesses. - Loaded tool set narrowed 12 -> 8 once real responses were seen (HGNC gives Ensembl + UniProt ids; one batched UniProt search; Reactome's mapping is already lowest-level). The other 4 stay approved, unloaded. - 8 pinned output schemas, written from the recorded responses. - scripts/record_fixtures.py: the only live step. 11 cassettes recorded 2026-10-20 through ToolUniverse 1.5.6 (123 calls): the Phase 0 lookups Q1-Q9 plus the C1 SORD2P case and two edge cases. All Phase 0 expectations replay. - gradio_ui.py: machine gate first in every handler (x-orchestrator-token), ty…3ed6b66