heor-agent-mcp 0.1.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.
- package/LICENSE +21 -0
- package/README.md +152 -0
- package/dist/audit/builder.d.ts +8 -0
- package/dist/audit/builder.d.ts.map +1 -0
- package/dist/audit/builder.js +37 -0
- package/dist/audit/builder.js.map +1 -0
- package/dist/audit/types.d.ts +30 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/audit/types.js +2 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/formatters/docx.d.ts +5 -0
- package/dist/formatters/docx.d.ts.map +1 -0
- package/dist/formatters/docx.js +207 -0
- package/dist/formatters/docx.js.map +1 -0
- package/dist/formatters/json.d.ts +4 -0
- package/dist/formatters/json.d.ts.map +1 -0
- package/dist/formatters/json.js +4 -0
- package/dist/formatters/json.js.map +1 -0
- package/dist/formatters/markdown.d.ts +5 -0
- package/dist/formatters/markdown.d.ts.map +1 -0
- package/dist/formatters/markdown.js +50 -0
- package/dist/formatters/markdown.js.map +1 -0
- package/dist/knowledge/index.d.ts +8 -0
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +8 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/knowledge/paths.d.ts +9 -0
- package/dist/knowledge/paths.d.ts.map +1 -0
- package/dist/knowledge/paths.js +35 -0
- package/dist/knowledge/paths.js.map +1 -0
- package/dist/knowledge/projectStore.d.ts +37 -0
- package/dist/knowledge/projectStore.d.ts.map +1 -0
- package/dist/knowledge/projectStore.js +112 -0
- package/dist/knowledge/projectStore.js.map +1 -0
- package/dist/knowledge/rawStore.d.ts +18 -0
- package/dist/knowledge/rawStore.d.ts.map +1 -0
- package/dist/knowledge/rawStore.js +103 -0
- package/dist/knowledge/rawStore.js.map +1 -0
- package/dist/knowledge/search.d.ts +19 -0
- package/dist/knowledge/search.d.ts.map +1 -0
- package/dist/knowledge/search.js +105 -0
- package/dist/knowledge/search.js.map +1 -0
- package/dist/knowledge/types.d.ts +6 -0
- package/dist/knowledge/types.d.ts.map +1 -0
- package/dist/knowledge/types.js +2 -0
- package/dist/knowledge/types.js.map +1 -0
- package/dist/knowledge/wikiStore.d.ts +18 -0
- package/dist/knowledge/wikiStore.d.ts.map +1 -0
- package/dist/knowledge/wikiStore.js +77 -0
- package/dist/knowledge/wikiStore.js.map +1 -0
- package/dist/knowledge/yaml.d.ts +17 -0
- package/dist/knowledge/yaml.d.ts.map +1 -0
- package/dist/knowledge/yaml.js +131 -0
- package/dist/knowledge/yaml.js.map +1 -0
- package/dist/models/distributions.d.ts +28 -0
- package/dist/models/distributions.d.ts.map +1 -0
- package/dist/models/distributions.js +99 -0
- package/dist/models/distributions.js.map +1 -0
- package/dist/models/index.d.ts +11 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +7 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/markov.d.ts +42 -0
- package/dist/models/markov.d.ts.map +1 -0
- package/dist/models/markov.js +82 -0
- package/dist/models/markov.js.map +1 -0
- package/dist/models/modelUtils.d.ts +29 -0
- package/dist/models/modelUtils.d.ts.map +1 -0
- package/dist/models/modelUtils.js +139 -0
- package/dist/models/modelUtils.js.map +1 -0
- package/dist/models/owsa.d.ts +31 -0
- package/dist/models/owsa.d.ts.map +1 -0
- package/dist/models/owsa.js +103 -0
- package/dist/models/owsa.js.map +1 -0
- package/dist/models/partsa.d.ts +40 -0
- package/dist/models/partsa.d.ts.map +1 -0
- package/dist/models/partsa.js +65 -0
- package/dist/models/partsa.js.map +1 -0
- package/dist/models/psa.d.ts +33 -0
- package/dist/models/psa.d.ts.map +1 -0
- package/dist/models/psa.js +118 -0
- package/dist/models/psa.js.map +1 -0
- package/dist/providers/direct/aifa.d.ts +3 -0
- package/dist/providers/direct/aifa.d.ts.map +1 -0
- package/dist/providers/direct/aifa.js +30 -0
- package/dist/providers/direct/aifa.js.map +1 -0
- package/dist/providers/direct/allOfUs.d.ts +3 -0
- package/dist/providers/direct/allOfUs.d.ts.map +1 -0
- package/dist/providers/direct/allOfUs.js +37 -0
- package/dist/providers/direct/allOfUs.js.map +1 -0
- package/dist/providers/direct/anvisa.d.ts +3 -0
- package/dist/providers/direct/anvisa.d.ts.map +1 -0
- package/dist/providers/direct/anvisa.js +25 -0
- package/dist/providers/direct/anvisa.js.map +1 -0
- package/dist/providers/direct/biorxiv.d.ts +3 -0
- package/dist/providers/direct/biorxiv.d.ts.map +1 -0
- package/dist/providers/direct/biorxiv.js +33 -0
- package/dist/providers/direct/biorxiv.js.map +1 -0
- package/dist/providers/direct/bnf.d.ts +3 -0
- package/dist/providers/direct/bnf.d.ts.map +1 -0
- package/dist/providers/direct/bnf.js +30 -0
- package/dist/providers/direct/bnf.js.map +1 -0
- package/dist/providers/direct/cadthReviews.d.ts +3 -0
- package/dist/providers/direct/cadthReviews.d.ts.map +1 -0
- package/dist/providers/direct/cadthReviews.js +30 -0
- package/dist/providers/direct/cadthReviews.js.map +1 -0
- package/dist/providers/direct/chembl.d.ts +3 -0
- package/dist/providers/direct/chembl.d.ts.map +1 -0
- package/dist/providers/direct/chembl.js +24 -0
- package/dist/providers/direct/chembl.js.map +1 -0
- package/dist/providers/direct/citeline.d.ts +3 -0
- package/dist/providers/direct/citeline.d.ts.map +1 -0
- package/dist/providers/direct/citeline.js +50 -0
- package/dist/providers/direct/citeline.js.map +1 -0
- package/dist/providers/direct/clinicalTrials.d.ts +3 -0
- package/dist/providers/direct/clinicalTrials.d.ts.map +1 -0
- package/dist/providers/direct/clinicalTrials.js +29 -0
- package/dist/providers/direct/clinicalTrials.js.map +1 -0
- package/dist/providers/direct/cmsNadac.d.ts +3 -0
- package/dist/providers/direct/cmsNadac.d.ts.map +1 -0
- package/dist/providers/direct/cmsNadac.js +52 -0
- package/dist/providers/direct/cmsNadac.js.map +1 -0
- package/dist/providers/direct/cochrane.d.ts +3 -0
- package/dist/providers/direct/cochrane.d.ts.map +1 -0
- package/dist/providers/direct/cochrane.js +46 -0
- package/dist/providers/direct/cochrane.js.map +1 -0
- package/dist/providers/direct/conitec.d.ts +3 -0
- package/dist/providers/direct/conitec.d.ts.map +1 -0
- package/dist/providers/direct/conitec.js +25 -0
- package/dist/providers/direct/conitec.js.map +1 -0
- package/dist/providers/direct/cortellis.d.ts +3 -0
- package/dist/providers/direct/cortellis.d.ts.map +1 -0
- package/dist/providers/direct/cortellis.js +52 -0
- package/dist/providers/direct/cortellis.js.map +1 -0
- package/dist/providers/direct/datasus.d.ts +3 -0
- package/dist/providers/direct/datasus.d.ts.map +1 -0
- package/dist/providers/direct/datasus.js +30 -0
- package/dist/providers/direct/datasus.js.map +1 -0
- package/dist/providers/direct/embase.d.ts +3 -0
- package/dist/providers/direct/embase.d.ts.map +1 -0
- package/dist/providers/direct/embase.js +54 -0
- package/dist/providers/direct/embase.js.map +1 -0
- package/dist/providers/direct/fonasa.d.ts +3 -0
- package/dist/providers/direct/fonasa.d.ts.map +1 -0
- package/dist/providers/direct/fonasa.js +25 -0
- package/dist/providers/direct/fonasa.js.map +1 -0
- package/dist/providers/direct/gbaDecisions.d.ts +3 -0
- package/dist/providers/direct/gbaDecisions.d.ts.map +1 -0
- package/dist/providers/direct/gbaDecisions.js +30 -0
- package/dist/providers/direct/gbaDecisions.js.map +1 -0
- package/dist/providers/direct/googleScholar.d.ts +3 -0
- package/dist/providers/direct/googleScholar.d.ts.map +1 -0
- package/dist/providers/direct/googleScholar.js +39 -0
- package/dist/providers/direct/googleScholar.js.map +1 -0
- package/dist/providers/direct/hasTc.d.ts +3 -0
- package/dist/providers/direct/hasTc.d.ts.map +1 -0
- package/dist/providers/direct/hasTc.js +30 -0
- package/dist/providers/direct/hasTc.js.map +1 -0
- package/dist/providers/direct/hitap.d.ts +3 -0
- package/dist/providers/direct/hitap.d.ts.map +1 -0
- package/dist/providers/direct/hitap.js +30 -0
- package/dist/providers/direct/hitap.js.map +1 -0
- package/dist/providers/direct/icerReports.d.ts +3 -0
- package/dist/providers/direct/icerReports.d.ts.map +1 -0
- package/dist/providers/direct/icerReports.js +30 -0
- package/dist/providers/direct/icerReports.js.map +1 -0
- package/dist/providers/direct/iets.d.ts +3 -0
- package/dist/providers/direct/iets.d.ts.map +1 -0
- package/dist/providers/direct/iets.js +25 -0
- package/dist/providers/direct/iets.js.map +1 -0
- package/dist/providers/direct/ihmeGbd.d.ts +3 -0
- package/dist/providers/direct/ihmeGbd.d.ts.map +1 -0
- package/dist/providers/direct/ihmeGbd.js +74 -0
- package/dist/providers/direct/ihmeGbd.js.map +1 -0
- package/dist/providers/direct/index.d.ts +7 -0
- package/dist/providers/direct/index.d.ts.map +1 -0
- package/dist/providers/direct/index.js +186 -0
- package/dist/providers/direct/index.js.map +1 -0
- package/dist/providers/direct/inesss.d.ts +3 -0
- package/dist/providers/direct/inesss.d.ts.map +1 -0
- package/dist/providers/direct/inesss.js +30 -0
- package/dist/providers/direct/inesss.js.map +1 -0
- package/dist/providers/direct/iqwig.d.ts +3 -0
- package/dist/providers/direct/iqwig.d.ts.map +1 -0
- package/dist/providers/direct/iqwig.js +30 -0
- package/dist/providers/direct/iqwig.js.map +1 -0
- package/dist/providers/direct/ispor.d.ts +3 -0
- package/dist/providers/direct/ispor.d.ts.map +1 -0
- package/dist/providers/direct/ispor.js +35 -0
- package/dist/providers/direct/ispor.js.map +1 -0
- package/dist/providers/direct/nhsCosts.d.ts +3 -0
- package/dist/providers/direct/nhsCosts.d.ts.map +1 -0
- package/dist/providers/direct/nhsCosts.js +32 -0
- package/dist/providers/direct/nhsCosts.js.map +1 -0
- package/dist/providers/direct/niceTa.d.ts +3 -0
- package/dist/providers/direct/niceTa.d.ts.map +1 -0
- package/dist/providers/direct/niceTa.js +30 -0
- package/dist/providers/direct/niceTa.js.map +1 -0
- package/dist/providers/direct/oecd.d.ts +3 -0
- package/dist/providers/direct/oecd.d.ts.map +1 -0
- package/dist/providers/direct/oecd.js +102 -0
- package/dist/providers/direct/oecd.js.map +1 -0
- package/dist/providers/direct/orangeBook.d.ts +3 -0
- package/dist/providers/direct/orangeBook.d.ts.map +1 -0
- package/dist/providers/direct/orangeBook.js +48 -0
- package/dist/providers/direct/orangeBook.js.map +1 -0
- package/dist/providers/direct/paho.d.ts +3 -0
- package/dist/providers/direct/paho.d.ts.map +1 -0
- package/dist/providers/direct/paho.js +30 -0
- package/dist/providers/direct/paho.js.map +1 -0
- package/dist/providers/direct/pbacPsd.d.ts +3 -0
- package/dist/providers/direct/pbacPsd.d.ts.map +1 -0
- package/dist/providers/direct/pbacPsd.js +30 -0
- package/dist/providers/direct/pbacPsd.js.map +1 -0
- package/dist/providers/direct/pbsSchedule.d.ts +3 -0
- package/dist/providers/direct/pbsSchedule.d.ts.map +1 -0
- package/dist/providers/direct/pbsSchedule.js +37 -0
- package/dist/providers/direct/pbsSchedule.js.map +1 -0
- package/dist/providers/direct/pharmapendium.d.ts +3 -0
- package/dist/providers/direct/pharmapendium.d.ts.map +1 -0
- package/dist/providers/direct/pharmapendium.js +39 -0
- package/dist/providers/direct/pharmapendium.js.map +1 -0
- package/dist/providers/direct/proxyClient.d.ts +15 -0
- package/dist/providers/direct/proxyClient.d.ts.map +1 -0
- package/dist/providers/direct/proxyClient.js +76 -0
- package/dist/providers/direct/proxyClient.js.map +1 -0
- package/dist/providers/direct/pssru.d.ts +3 -0
- package/dist/providers/direct/pssru.d.ts.map +1 -0
- package/dist/providers/direct/pssru.js +33 -0
- package/dist/providers/direct/pssru.js.map +1 -0
- package/dist/providers/direct/pubmed.d.ts +3 -0
- package/dist/providers/direct/pubmed.d.ts.map +1 -0
- package/dist/providers/direct/pubmed.js +73 -0
- package/dist/providers/direct/pubmed.js.map +1 -0
- package/dist/providers/direct/purpleBook.d.ts +3 -0
- package/dist/providers/direct/purpleBook.d.ts.map +1 -0
- package/dist/providers/direct/purpleBook.js +52 -0
- package/dist/providers/direct/purpleBook.js.map +1 -0
- package/dist/providers/direct/tlv.d.ts +3 -0
- package/dist/providers/direct/tlv.d.ts.map +1 -0
- package/dist/providers/direct/tlv.js +30 -0
- package/dist/providers/direct/tlv.js.map +1 -0
- package/dist/providers/direct/whoGho.d.ts +3 -0
- package/dist/providers/direct/whoGho.d.ts.map +1 -0
- package/dist/providers/direct/whoGho.js +51 -0
- package/dist/providers/direct/whoGho.js.map +1 -0
- package/dist/providers/direct/worldBank.d.ts +3 -0
- package/dist/providers/direct/worldBank.d.ts.map +1 -0
- package/dist/providers/direct/worldBank.js +54 -0
- package/dist/providers/direct/worldBank.js.map +1 -0
- package/dist/providers/factory.d.ts +3 -0
- package/dist/providers/factory.d.ts.map +1 -0
- package/dist/providers/factory.js +8 -0
- package/dist/providers/factory.js.map +1 -0
- package/dist/providers/hosted/index.d.ts +9 -0
- package/dist/providers/hosted/index.d.ts.map +1 -0
- package/dist/providers/hosted/index.js +16 -0
- package/dist/providers/hosted/index.js.map +1 -0
- package/dist/providers/types.d.ts +176 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +2 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +80 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/costEffectivenessModel.d.ts +98 -0
- package/dist/tools/costEffectivenessModel.d.ts.map +1 -0
- package/dist/tools/costEffectivenessModel.js +404 -0
- package/dist/tools/costEffectivenessModel.js.map +1 -0
- package/dist/tools/htaDossierPrep.d.ts +69 -0
- package/dist/tools/htaDossierPrep.d.ts.map +1 -0
- package/dist/tools/htaDossierPrep.js +399 -0
- package/dist/tools/htaDossierPrep.js.map +1 -0
- package/dist/tools/knowledgeRead.d.ts +21 -0
- package/dist/tools/knowledgeRead.d.ts.map +1 -0
- package/dist/tools/knowledgeRead.js +38 -0
- package/dist/tools/knowledgeRead.js.map +1 -0
- package/dist/tools/knowledgeSearch.d.ts +37 -0
- package/dist/tools/knowledgeSearch.d.ts.map +1 -0
- package/dist/tools/knowledgeSearch.js +51 -0
- package/dist/tools/knowledgeSearch.js.map +1 -0
- package/dist/tools/knowledgeWrite.d.ts +25 -0
- package/dist/tools/knowledgeWrite.d.ts.map +1 -0
- package/dist/tools/knowledgeWrite.js +40 -0
- package/dist/tools/knowledgeWrite.js.map +1 -0
- package/dist/tools/literatureSearch.d.ts +42 -0
- package/dist/tools/literatureSearch.d.ts.map +1 -0
- package/dist/tools/literatureSearch.js +142 -0
- package/dist/tools/literatureSearch.js.map +1 -0
- package/dist/tools/metabolicProfile.d.ts +19 -0
- package/dist/tools/metabolicProfile.d.ts.map +1 -0
- package/dist/tools/metabolicProfile.js +150 -0
- package/dist/tools/metabolicProfile.js.map +1 -0
- package/dist/tools/projectCreate.d.ts +37 -0
- package/dist/tools/projectCreate.d.ts.map +1 -0
- package/dist/tools/projectCreate.js +61 -0
- package/dist/tools/projectCreate.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const DossierSchema = z.object({
|
|
3
|
+
hta_body: z.enum(["nice", "ema", "fda", "iqwig", "has", "jca"]),
|
|
4
|
+
submission_type: z.enum([
|
|
5
|
+
"sta",
|
|
6
|
+
"mta",
|
|
7
|
+
"early_access",
|
|
8
|
+
"initial",
|
|
9
|
+
"renewal",
|
|
10
|
+
"variation",
|
|
11
|
+
]),
|
|
12
|
+
drug_name: z.string().min(1),
|
|
13
|
+
indication: z.string().min(1),
|
|
14
|
+
evidence_summary: z.union([z.string(), z.array(z.any())]).optional(),
|
|
15
|
+
model_results: z.any().optional(),
|
|
16
|
+
picos: z
|
|
17
|
+
.array(z.object({
|
|
18
|
+
id: z.string(),
|
|
19
|
+
population: z.string(),
|
|
20
|
+
comparator: z.string(),
|
|
21
|
+
outcomes: z.array(z.string()),
|
|
22
|
+
}))
|
|
23
|
+
.optional(),
|
|
24
|
+
output_format: z.enum(["text", "json", "docx"]).optional(),
|
|
25
|
+
project: z.string().optional(),
|
|
26
|
+
});
|
|
27
|
+
import { createAuditRecord, addAssumption, addWarning, setMethodology, } from "../audit/builder.js";
|
|
28
|
+
import { auditToMarkdown } from "../formatters/markdown.js";
|
|
29
|
+
import { contentToDocx } from "../formatters/docx.js";
|
|
30
|
+
import { saveDossier } from "../knowledge/index.js";
|
|
31
|
+
const NICE_STA_SECTIONS = [
|
|
32
|
+
"Population",
|
|
33
|
+
"Intervention",
|
|
34
|
+
"Comparators",
|
|
35
|
+
"Outcomes (PICO)",
|
|
36
|
+
"Clinical Evidence Summary",
|
|
37
|
+
"Economic Evidence Summary",
|
|
38
|
+
"Unmet Need",
|
|
39
|
+
"Place in Therapy",
|
|
40
|
+
];
|
|
41
|
+
const EMA_SECTIONS = [
|
|
42
|
+
"Product Description",
|
|
43
|
+
"Clinical Pharmacology",
|
|
44
|
+
"Efficacy Data",
|
|
45
|
+
"Safety Data",
|
|
46
|
+
"Risk-Benefit Assessment",
|
|
47
|
+
];
|
|
48
|
+
const FDA_SECTIONS = [
|
|
49
|
+
"Indication",
|
|
50
|
+
"Clinical Studies",
|
|
51
|
+
"Adverse Reactions",
|
|
52
|
+
"Dosage and Administration",
|
|
53
|
+
"Clinical Pharmacology",
|
|
54
|
+
];
|
|
55
|
+
const JCA_SECTIONS = [
|
|
56
|
+
"Scope Confirmation",
|
|
57
|
+
"Population and Disease Context",
|
|
58
|
+
"Intervention",
|
|
59
|
+
"Comparators",
|
|
60
|
+
"Outcomes",
|
|
61
|
+
"Comparative Clinical Effectiveness",
|
|
62
|
+
"Indirect Treatment Comparison",
|
|
63
|
+
"Comparative Safety",
|
|
64
|
+
"Evidence Certainty (GRADE)",
|
|
65
|
+
"Evidence Gaps and Uncertainty",
|
|
66
|
+
];
|
|
67
|
+
const SECTIONS_BY_BODY = {
|
|
68
|
+
nice: NICE_STA_SECTIONS,
|
|
69
|
+
ema: EMA_SECTIONS,
|
|
70
|
+
fda: FDA_SECTIONS,
|
|
71
|
+
iqwig: NICE_STA_SECTIONS,
|
|
72
|
+
has: NICE_STA_SECTIONS,
|
|
73
|
+
jca: JCA_SECTIONS,
|
|
74
|
+
};
|
|
75
|
+
const METHODOLOGY_BY_BODY = {
|
|
76
|
+
nice: "NICE STA guidance v3.0 (2022)",
|
|
77
|
+
ema: "EMA Common Technical Document format",
|
|
78
|
+
fda: "FDA Prescribing Information format",
|
|
79
|
+
iqwig: "IQWiG Methods v6.1",
|
|
80
|
+
has: "HAS transparency committee dossier format",
|
|
81
|
+
jca: "EUHTA Regulation (EU) 2021/2282 — Joint Clinical Assessment",
|
|
82
|
+
};
|
|
83
|
+
function buildSection(name, drugName, indication, evidenceSummary) {
|
|
84
|
+
const evidence = typeof evidenceSummary === "string"
|
|
85
|
+
? evidenceSummary
|
|
86
|
+
: Array.isArray(evidenceSummary) && evidenceSummary.length > 0
|
|
87
|
+
? evidenceSummary
|
|
88
|
+
.map((r) => `- ${r.title} (${r.source}, ${r.date})`)
|
|
89
|
+
.join("\n")
|
|
90
|
+
: null;
|
|
91
|
+
switch (name) {
|
|
92
|
+
case "Population":
|
|
93
|
+
return {
|
|
94
|
+
content: `Adult patients with ${indication} requiring pharmacological treatment.`,
|
|
95
|
+
status: "complete",
|
|
96
|
+
};
|
|
97
|
+
case "Intervention":
|
|
98
|
+
return {
|
|
99
|
+
content: `${drugName} as described in the Summary of Product Characteristics (SmPC).`,
|
|
100
|
+
status: "complete",
|
|
101
|
+
};
|
|
102
|
+
case "Comparators":
|
|
103
|
+
return {
|
|
104
|
+
content: `⚠️ Comparators not specified — provide current standard of care and relevant licensed alternatives for ${indication}.`,
|
|
105
|
+
status: "missing",
|
|
106
|
+
};
|
|
107
|
+
case "Outcomes (PICO)":
|
|
108
|
+
return {
|
|
109
|
+
content: `Primary: HbA1c reduction, mortality. Secondary: QoL (EQ-5D), hospitalisation, adverse events.\n⚠️ Confirm outcome selection with clinical advisor.`,
|
|
110
|
+
status: "partial",
|
|
111
|
+
};
|
|
112
|
+
case "Clinical Evidence Summary":
|
|
113
|
+
return evidence
|
|
114
|
+
? { content: evidence, status: "complete" }
|
|
115
|
+
: {
|
|
116
|
+
content: `⚠️ Clinical evidence not provided. Pipe output from literature_search to populate this section.`,
|
|
117
|
+
status: "missing",
|
|
118
|
+
};
|
|
119
|
+
case "Economic Evidence Summary":
|
|
120
|
+
return {
|
|
121
|
+
content: `⚠️ Economic model results not provided. Run cost_effectiveness_model and pipe results here.`,
|
|
122
|
+
status: "missing",
|
|
123
|
+
};
|
|
124
|
+
default:
|
|
125
|
+
return {
|
|
126
|
+
content: `⚠️ ${name} — populate with submission-specific content.`,
|
|
127
|
+
status: "missing",
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function buildJCASection(name, drugName, indication, pico, evidenceSummary) {
|
|
132
|
+
const evidence = typeof evidenceSummary === "string"
|
|
133
|
+
? evidenceSummary
|
|
134
|
+
: Array.isArray(evidenceSummary) && evidenceSummary.length > 0
|
|
135
|
+
? evidenceSummary
|
|
136
|
+
.map((r) => `- ${r.title} (${r.source}, ${r.date})`)
|
|
137
|
+
.join("\n")
|
|
138
|
+
: null;
|
|
139
|
+
switch (name) {
|
|
140
|
+
case "Scope Confirmation":
|
|
141
|
+
return {
|
|
142
|
+
content: `**PICO ${pico.id}** — Scope as confirmed by HTA Coordination Group.\n` +
|
|
143
|
+
`Population: ${pico.population}\nIntervention: ${drugName}\nComparator: ${pico.comparator}\n` +
|
|
144
|
+
`Outcomes: ${pico.outcomes.join(", ")}`,
|
|
145
|
+
status: "complete",
|
|
146
|
+
};
|
|
147
|
+
case "Population and Disease Context":
|
|
148
|
+
return {
|
|
149
|
+
content: `${pico.population} with ${indication}.\n` +
|
|
150
|
+
`⚠️ Provide epidemiology, disease burden, and unmet need across relevant EU member states.`,
|
|
151
|
+
status: "partial",
|
|
152
|
+
};
|
|
153
|
+
case "Intervention":
|
|
154
|
+
return {
|
|
155
|
+
content: `${drugName} as per EMA-approved Summary of Product Characteristics (SmPC).\n` +
|
|
156
|
+
`⚠️ Reference the exact label wording — scope is tied to the approved indication.`,
|
|
157
|
+
status: "complete",
|
|
158
|
+
};
|
|
159
|
+
case "Comparators":
|
|
160
|
+
return {
|
|
161
|
+
content: `**Primary comparator:** ${pico.comparator}\n` +
|
|
162
|
+
`⚠️ Verify comparator relevance across all 27 EU member states. Include all nationally relevant alternatives identified during scoping.`,
|
|
163
|
+
status: "partial",
|
|
164
|
+
};
|
|
165
|
+
case "Outcomes":
|
|
166
|
+
return {
|
|
167
|
+
content: pico.outcomes.length > 0
|
|
168
|
+
? `Assessed outcomes:\n${pico.outcomes.map((o) => `- ${o}`).join("\n")}`
|
|
169
|
+
: `⚠️ No outcomes specified for this PICO. Provide primary and secondary endpoints as per scoping decision.`,
|
|
170
|
+
status: pico.outcomes.length > 0 ? "complete" : "missing",
|
|
171
|
+
};
|
|
172
|
+
case "Comparative Clinical Effectiveness":
|
|
173
|
+
return evidence
|
|
174
|
+
? {
|
|
175
|
+
content: `Relative effects of ${drugName} vs ${pico.comparator}:\n${evidence}\n` +
|
|
176
|
+
`⚠️ Express results as relative risk (RR), hazard ratio (HR), or mean difference (MD) with 95% CI.`,
|
|
177
|
+
status: "partial",
|
|
178
|
+
}
|
|
179
|
+
: {
|
|
180
|
+
content: `⚠️ No clinical evidence provided. Pipe output from literature_search to populate relative effects for ${pico.comparator}.`,
|
|
181
|
+
status: "missing",
|
|
182
|
+
};
|
|
183
|
+
case "Indirect Treatment Comparison":
|
|
184
|
+
return {
|
|
185
|
+
content: `**ITC Feasibility Assessment:**\n` +
|
|
186
|
+
`⚠️ Assess whether a connected evidence network exists between ${drugName} and ${pico.comparator}.\n` +
|
|
187
|
+
`- If direct head-to-head evidence exists: state this and provide summary.\n` +
|
|
188
|
+
`- If only indirect evidence: specify method (MAIC, STC, or NMA) and justify selection.\n` +
|
|
189
|
+
`- JCA strongly prefers anchored indirect comparisons. Unanchored MAIC requires explicit justification.\n` +
|
|
190
|
+
`- Note any heterogeneity in effect modifiers across included studies.`,
|
|
191
|
+
status: "missing",
|
|
192
|
+
};
|
|
193
|
+
case "Comparative Safety":
|
|
194
|
+
return {
|
|
195
|
+
content: `Comparative safety of ${drugName} vs ${pico.comparator}:\n` +
|
|
196
|
+
`⚠️ Provide: serious adverse events (SAEs), treatment discontinuations, adverse events of special interest (AESIs).\n` +
|
|
197
|
+
`Express as relative risk with 95% CI where possible.`,
|
|
198
|
+
status: "missing",
|
|
199
|
+
};
|
|
200
|
+
case "Evidence Certainty (GRADE)":
|
|
201
|
+
return {
|
|
202
|
+
content: `GRADE certainty assessment for ${pico.id}:\n` +
|
|
203
|
+
`| Outcome | Certainty | Rationale |\n` +
|
|
204
|
+
`|---|---|---|\n` +
|
|
205
|
+
pico.outcomes
|
|
206
|
+
.map((o) => `| ${o} | ⚠️ TBC | Assess risk of bias, inconsistency, indirectness, imprecision |`)
|
|
207
|
+
.join("\n") +
|
|
208
|
+
`\n\n⚠️ Complete GRADE table with clinical advisor.`,
|
|
209
|
+
status: "missing",
|
|
210
|
+
};
|
|
211
|
+
case "Evidence Gaps and Uncertainty":
|
|
212
|
+
return {
|
|
213
|
+
content: `Known evidence gaps for PICO ${pico.id}:\n` +
|
|
214
|
+
`- ⚠️ List data limitations (immature survival data, missing subgroups, short follow-up)\n` +
|
|
215
|
+
`- ⚠️ Flag patient populations not represented in trials\n` +
|
|
216
|
+
`- ⚠️ Note impact of evidence gaps on certainty of results\n` +
|
|
217
|
+
`This section will be referenced by national HTA bodies conducting cost-effectiveness analyses.`,
|
|
218
|
+
status: "missing",
|
|
219
|
+
};
|
|
220
|
+
default:
|
|
221
|
+
return {
|
|
222
|
+
content: `⚠️ ${name} — populate with JCA submission-specific content for PICO ${pico.id}.`,
|
|
223
|
+
status: "missing",
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
async function handleJCADossier(params, audit) {
|
|
228
|
+
// Default single PICO if none provided
|
|
229
|
+
const picos = params.picos && params.picos.length > 0
|
|
230
|
+
? params.picos
|
|
231
|
+
: [
|
|
232
|
+
{
|
|
233
|
+
id: "PICO-1",
|
|
234
|
+
population: `Adults with ${params.indication}`,
|
|
235
|
+
comparator: "Current standard of care",
|
|
236
|
+
outcomes: [
|
|
237
|
+
"Overall survival",
|
|
238
|
+
"Progression-free survival",
|
|
239
|
+
"Quality of life (EQ-5D)",
|
|
240
|
+
"Adverse events",
|
|
241
|
+
],
|
|
242
|
+
},
|
|
243
|
+
];
|
|
244
|
+
audit = addAssumption(audit, `EUHTA Regulation (EU) 2021/2282 — Joint Clinical Assessment`);
|
|
245
|
+
audit = addAssumption(audit, `${picos.length} PICO(s) assessed`);
|
|
246
|
+
audit = addAssumption(audit, `JCA covers comparative clinical effectiveness and safety only. National cost-effectiveness assessment remains at member state level.`);
|
|
247
|
+
if (picos.length === 1 && (!params.picos || params.picos.length === 0)) {
|
|
248
|
+
audit = addWarning(audit, `No PICOs provided — generated default PICO. Provide picos[] array for accurate JCA structure reflecting actual scoping decisions.`);
|
|
249
|
+
}
|
|
250
|
+
if (picos.length > 10) {
|
|
251
|
+
audit = addWarning(audit, `${picos.length} PICOs — complex submission. Ensure each PICO has dedicated evidence package.`);
|
|
252
|
+
}
|
|
253
|
+
const lines = [];
|
|
254
|
+
lines.push(`## EU Joint Clinical Assessment (JCA) Dossier Draft`);
|
|
255
|
+
lines.push(`**Drug:** ${params.drug_name} | **Indication:** ${params.indication}`);
|
|
256
|
+
lines.push(`**Regulation:** EUHTA (EU) 2021/2282 | **PICOs:** ${picos.length}`);
|
|
257
|
+
lines.push(`**Submission type:** ${params.submission_type.toUpperCase()}`);
|
|
258
|
+
lines.push(`\n> ⚠️ JCA covers comparative clinical effectiveness and safety **only**. Economic evaluation (cost-effectiveness) remains at national level.\n`);
|
|
259
|
+
const allGaps = [];
|
|
260
|
+
for (const pico of picos) {
|
|
261
|
+
lines.push(`---\n## ${pico.id}: ${pico.population} vs ${pico.comparator}`);
|
|
262
|
+
for (const sectionName of JCA_SECTIONS) {
|
|
263
|
+
const { content, status } = buildJCASection(sectionName, params.drug_name, params.indication, pico, params.evidence_summary);
|
|
264
|
+
lines.push(`### ${sectionName}`);
|
|
265
|
+
lines.push(content);
|
|
266
|
+
lines.push("");
|
|
267
|
+
if (status === "missing") {
|
|
268
|
+
const gap = `[${pico.id}] ${sectionName}`;
|
|
269
|
+
allGaps.push(gap);
|
|
270
|
+
audit = addWarning(audit, `Section "${sectionName}" (${pico.id}) requires additional input`);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
if (allGaps.length > 0) {
|
|
275
|
+
lines.push(`---\n## Gap Analysis (${allGaps.length} sections require input)`);
|
|
276
|
+
allGaps.forEach((g) => lines.push(`- ⚠️ ${g}`));
|
|
277
|
+
lines.push("");
|
|
278
|
+
}
|
|
279
|
+
lines.push(auditToMarkdown(audit));
|
|
280
|
+
const outputFormat = params.output_format ?? "text";
|
|
281
|
+
const jcaTextContent = lines.join("\n");
|
|
282
|
+
if (params.project) {
|
|
283
|
+
try {
|
|
284
|
+
await saveDossier(params.project, params.hta_body, params.submission_type, { drug_name: params.drug_name, indication: params.indication }, jcaTextContent);
|
|
285
|
+
}
|
|
286
|
+
catch { }
|
|
287
|
+
}
|
|
288
|
+
if (outputFormat === "docx") {
|
|
289
|
+
const base64 = await contentToDocx(`JCA ${params.submission_type.toUpperCase()} Dossier`, jcaTextContent, audit);
|
|
290
|
+
return {
|
|
291
|
+
content: `[DOCX Report Generated]\n\nBase64-encoded DOCX (${Math.round(base64.length / 1024)}KB):\n${base64}`,
|
|
292
|
+
audit,
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
return { content: jcaTextContent, audit };
|
|
296
|
+
}
|
|
297
|
+
export async function handleHtaDossierPrep(rawParams) {
|
|
298
|
+
const params = DossierSchema.parse(rawParams);
|
|
299
|
+
const outputFormat = params.output_format ?? "text";
|
|
300
|
+
let audit = createAuditRecord("hta_dossier_prep", params, outputFormat);
|
|
301
|
+
const methodology = METHODOLOGY_BY_BODY[params.hta_body] ?? "Unknown HTA body";
|
|
302
|
+
audit = setMethodology(audit, methodology);
|
|
303
|
+
audit = addAssumption(audit, `Template: ${methodology}`);
|
|
304
|
+
audit = addAssumption(audit, `Submission type: ${params.submission_type.toUpperCase()}`);
|
|
305
|
+
// JCA: generate per-PICO sections
|
|
306
|
+
if (params.hta_body === "jca") {
|
|
307
|
+
return handleJCADossier(params, audit);
|
|
308
|
+
}
|
|
309
|
+
const sections = SECTIONS_BY_BODY[params.hta_body] ?? NICE_STA_SECTIONS;
|
|
310
|
+
const lines = [];
|
|
311
|
+
lines.push(`## ${params.hta_body.toUpperCase()} ${params.submission_type.toUpperCase()} Dossier Draft`);
|
|
312
|
+
lines.push(`**Drug:** ${params.drug_name} | **Indication:** ${params.indication}`);
|
|
313
|
+
lines.push(`**Template:** ${methodology}\n`);
|
|
314
|
+
const gaps = [];
|
|
315
|
+
for (const sectionName of sections) {
|
|
316
|
+
const { content, status } = buildSection(sectionName, params.drug_name, params.indication, params.evidence_summary);
|
|
317
|
+
lines.push(`### ${sectionName}`);
|
|
318
|
+
lines.push(content);
|
|
319
|
+
lines.push("");
|
|
320
|
+
if (status === "missing") {
|
|
321
|
+
gaps.push(sectionName);
|
|
322
|
+
audit = addWarning(audit, `Section "${sectionName}" requires additional input`);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
if (gaps.length > 0) {
|
|
326
|
+
lines.push(`---`);
|
|
327
|
+
lines.push(`## Gap Analysis`);
|
|
328
|
+
lines.push(`The following ${gaps.length} section(s) require additional information:`);
|
|
329
|
+
gaps.forEach((g) => lines.push(`- ⚠️ ${g}`));
|
|
330
|
+
lines.push("");
|
|
331
|
+
}
|
|
332
|
+
lines.push(auditToMarkdown(audit));
|
|
333
|
+
const dossierTextContent = lines.join("\n");
|
|
334
|
+
if (params.project) {
|
|
335
|
+
try {
|
|
336
|
+
await saveDossier(params.project, params.hta_body, params.submission_type, { drug_name: params.drug_name, indication: params.indication }, dossierTextContent);
|
|
337
|
+
}
|
|
338
|
+
catch { }
|
|
339
|
+
}
|
|
340
|
+
if (outputFormat === "docx") {
|
|
341
|
+
const base64 = await contentToDocx(`${params.hta_body.toUpperCase()} ${params.submission_type.toUpperCase()} Dossier`, dossierTextContent, audit);
|
|
342
|
+
return {
|
|
343
|
+
content: `[DOCX Report Generated]\n\nBase64-encoded DOCX (${Math.round(base64.length / 1024)}KB):\n${base64}`,
|
|
344
|
+
audit,
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
return { content: dossierTextContent, audit };
|
|
348
|
+
}
|
|
349
|
+
export const htaDossierPrepToolSchema = {
|
|
350
|
+
name: "hta_dossier_prep",
|
|
351
|
+
description: "Structure evidence into HTA body-specific submission format (NICE STA, EMA, FDA, IQWiG, HAS, EU JCA). Produces draft sections with gap analysis. Accepts output from literature_search and cost_effectiveness_model.",
|
|
352
|
+
inputSchema: {
|
|
353
|
+
type: "object",
|
|
354
|
+
properties: {
|
|
355
|
+
hta_body: {
|
|
356
|
+
type: "string",
|
|
357
|
+
enum: ["nice", "ema", "fda", "iqwig", "has", "jca"],
|
|
358
|
+
description: "HTA body. Use 'jca' for EU Joint Clinical Assessment (EUHTA Reg. 2021/2282).",
|
|
359
|
+
},
|
|
360
|
+
submission_type: {
|
|
361
|
+
type: "string",
|
|
362
|
+
enum: ["sta", "mta", "early_access", "initial", "renewal", "variation"],
|
|
363
|
+
description: "Submission type. Use 'initial'/'renewal'/'variation' for JCA.",
|
|
364
|
+
},
|
|
365
|
+
drug_name: { type: "string" },
|
|
366
|
+
indication: { type: "string" },
|
|
367
|
+
evidence_summary: {
|
|
368
|
+
description: "Text summary or JSON array from literature_search output",
|
|
369
|
+
},
|
|
370
|
+
model_results: {
|
|
371
|
+
description: "JSON output from cost_effectiveness_model",
|
|
372
|
+
},
|
|
373
|
+
picos: {
|
|
374
|
+
type: "array",
|
|
375
|
+
description: "JCA: list of PICOs from the scoping decision. If omitted, a default PICO is generated.",
|
|
376
|
+
items: {
|
|
377
|
+
type: "object",
|
|
378
|
+
properties: {
|
|
379
|
+
id: {
|
|
380
|
+
type: "string",
|
|
381
|
+
description: "PICO identifier, e.g. 'PICO-1'",
|
|
382
|
+
},
|
|
383
|
+
population: { type: "string" },
|
|
384
|
+
comparator: { type: "string" },
|
|
385
|
+
outcomes: { type: "array", items: { type: "string" } },
|
|
386
|
+
},
|
|
387
|
+
required: ["id", "population", "comparator", "outcomes"],
|
|
388
|
+
},
|
|
389
|
+
},
|
|
390
|
+
output_format: { type: "string", enum: ["text", "json", "docx"] },
|
|
391
|
+
project: {
|
|
392
|
+
type: "string",
|
|
393
|
+
description: "Project ID for knowledge base persistence. When set, dossier draft is saved to ~/.heor-agent/projects/{project}/raw/dossiers/",
|
|
394
|
+
},
|
|
395
|
+
},
|
|
396
|
+
required: ["hta_body", "submission_type", "drug_name", "indication"],
|
|
397
|
+
},
|
|
398
|
+
};
|
|
399
|
+
//# sourceMappingURL=htaDossierPrep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"htaDossierPrep.js","sourceRoot":"","sources":["../../src/tools/htaDossierPrep.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ToolResult } from "../providers/types.js";
|
|
2
|
+
export declare function handleKnowledgeRead(rawParams: unknown): Promise<ToolResult>;
|
|
3
|
+
export declare const knowledgeReadToolSchema: {
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
inputSchema: {
|
|
7
|
+
type: string;
|
|
8
|
+
properties: {
|
|
9
|
+
project: {
|
|
10
|
+
type: string;
|
|
11
|
+
description: string;
|
|
12
|
+
};
|
|
13
|
+
path: {
|
|
14
|
+
type: string;
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
required: string[];
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=knowledgeRead.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledgeRead.d.ts","sourceRoot":"","sources":["../../src/tools/knowledgeRead.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAQxD,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAiBjF;AAED,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;CAWnC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { readKnowledgeFile } from "../knowledge/wikiStore.js";
|
|
3
|
+
import { createAuditRecord } from "../audit/builder.js";
|
|
4
|
+
const KnowledgeReadSchema = z.object({
|
|
5
|
+
project: z.string().min(1),
|
|
6
|
+
path: z.string().min(1),
|
|
7
|
+
});
|
|
8
|
+
export async function handleKnowledgeRead(rawParams) {
|
|
9
|
+
const params = KnowledgeReadSchema.parse(rawParams);
|
|
10
|
+
const audit = createAuditRecord("knowledge_read", params, "text");
|
|
11
|
+
try {
|
|
12
|
+
const content = await readKnowledgeFile(params.project, params.path);
|
|
13
|
+
return {
|
|
14
|
+
content: `## ${params.path}\n\n${content}`,
|
|
15
|
+
audit,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
20
|
+
return {
|
|
21
|
+
content: `Error reading ${params.path}: ${msg}`,
|
|
22
|
+
audit,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export const knowledgeReadToolSchema = {
|
|
27
|
+
name: "knowledge_read",
|
|
28
|
+
description: "Read a file from a project's raw/ or wiki/ tree. Path is relative to project root. Only raw/ and wiki/ subtrees accessible.",
|
|
29
|
+
inputSchema: {
|
|
30
|
+
type: "object",
|
|
31
|
+
properties: {
|
|
32
|
+
project: { type: "string", description: "Project ID" },
|
|
33
|
+
path: { type: "string", description: "Relative path (e.g. 'wiki/trials/sustain-6.md' or 'raw/literature/pubmed_12345.md')" },
|
|
34
|
+
},
|
|
35
|
+
required: ["project", "path"],
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=knowledgeRead.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledgeRead.js","sourceRoot":"","sources":["../../src/tools/knowledgeRead.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,SAAkB;IAC1D,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,MAA4C,EAAE,MAAM,CAAC,CAAC;IAExG,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACrE,OAAO;YACL,OAAO,EAAE,MAAM,MAAM,CAAC,IAAI,OAAO,OAAO,EAAE;YAC1C,KAAK;SACN,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO;YACL,OAAO,EAAE,iBAAiB,MAAM,CAAC,IAAI,KAAK,GAAG,EAAE;YAC/C,KAAK;SACN,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,6HAA6H;IAC1I,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;YACtD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qFAAqF,EAAE;SAC7H;QACD,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;KAC9B;CACF,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ToolResult } from "../providers/types.js";
|
|
2
|
+
export declare function handleKnowledgeSearch(rawParams: unknown): Promise<ToolResult>;
|
|
3
|
+
export declare const knowledgeSearchToolSchema: {
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
inputSchema: {
|
|
7
|
+
type: string;
|
|
8
|
+
properties: {
|
|
9
|
+
project: {
|
|
10
|
+
type: string;
|
|
11
|
+
description: string;
|
|
12
|
+
};
|
|
13
|
+
query: {
|
|
14
|
+
type: string;
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
17
|
+
paths: {
|
|
18
|
+
type: string;
|
|
19
|
+
items: {
|
|
20
|
+
type: string;
|
|
21
|
+
enum: string[];
|
|
22
|
+
};
|
|
23
|
+
description: string;
|
|
24
|
+
};
|
|
25
|
+
max_results: {
|
|
26
|
+
type: string;
|
|
27
|
+
description: string;
|
|
28
|
+
};
|
|
29
|
+
case_sensitive: {
|
|
30
|
+
type: string;
|
|
31
|
+
description: string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
required: string[];
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=knowledgeSearch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledgeSearch.d.ts","sourceRoot":"","sources":["../../src/tools/knowledgeSearch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAWxD,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CA0BnF;AAED,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAcrC,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { searchProject } from "../knowledge/search.js";
|
|
3
|
+
import { createAuditRecord } from "../audit/builder.js";
|
|
4
|
+
const KnowledgeSearchSchema = z.object({
|
|
5
|
+
project: z.string().min(1),
|
|
6
|
+
query: z.string().min(1),
|
|
7
|
+
paths: z.array(z.enum(["raw", "wiki"])).optional(),
|
|
8
|
+
max_results: z.number().int().min(1).max(100).optional(),
|
|
9
|
+
case_sensitive: z.boolean().optional(),
|
|
10
|
+
});
|
|
11
|
+
export async function handleKnowledgeSearch(rawParams) {
|
|
12
|
+
const params = KnowledgeSearchSchema.parse(rawParams);
|
|
13
|
+
const audit = createAuditRecord("knowledge_search", params, "text");
|
|
14
|
+
const matches = await searchProject(params.project, params.query, {
|
|
15
|
+
paths: params.paths,
|
|
16
|
+
max_results: params.max_results,
|
|
17
|
+
case_sensitive: params.case_sensitive,
|
|
18
|
+
});
|
|
19
|
+
const lines = [];
|
|
20
|
+
lines.push(`## Knowledge Search: "${params.query}"`);
|
|
21
|
+
lines.push(`Project: ${params.project} | Matches: ${matches.length}\n`);
|
|
22
|
+
if (matches.length === 0) {
|
|
23
|
+
lines.push("No matches found. Try broader search terms or check that the project has been populated (run literature_search with `project` param first).");
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
for (const m of matches) {
|
|
27
|
+
lines.push(`### ${m.file}${m.title ? ` — ${m.title}` : ""}`);
|
|
28
|
+
if (m.source)
|
|
29
|
+
lines.push(`*Source: ${m.source}*`);
|
|
30
|
+
lines.push(`Line ${m.line_number}: \`${m.snippet}\``);
|
|
31
|
+
lines.push("");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return { content: lines.join("\n"), audit };
|
|
35
|
+
}
|
|
36
|
+
export const knowledgeSearchToolSchema = {
|
|
37
|
+
name: "knowledge_search",
|
|
38
|
+
description: "Search a project's knowledge base (raw/ and wiki/) for text matches. Returns file paths with line numbers and snippets. Use this to find previously-retrieved literature, model runs, and compiled wiki content without re-querying external APIs.",
|
|
39
|
+
inputSchema: {
|
|
40
|
+
type: "object",
|
|
41
|
+
properties: {
|
|
42
|
+
project: { type: "string", description: "Project ID (must exist)" },
|
|
43
|
+
query: { type: "string", description: "Search query — multi-term searches match ANY term (OR)" },
|
|
44
|
+
paths: { type: "array", items: { type: "string", enum: ["raw", "wiki"] }, description: "Which subtrees to search. Default: both." },
|
|
45
|
+
max_results: { type: "number", description: "Max matches to return (default 20, max 100)" },
|
|
46
|
+
case_sensitive: { type: "boolean", description: "Case-sensitive search (default false)" },
|
|
47
|
+
},
|
|
48
|
+
required: ["project", "query"],
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=knowledgeSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledgeSearch.js","sourceRoot":"","sources":["../../src/tools/knowledgeSearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ToolResult } from "../providers/types.js";
|
|
2
|
+
export declare function handleKnowledgeWrite(rawParams: unknown): Promise<ToolResult>;
|
|
3
|
+
export declare const knowledgeWriteToolSchema: {
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
inputSchema: {
|
|
7
|
+
type: string;
|
|
8
|
+
properties: {
|
|
9
|
+
project: {
|
|
10
|
+
type: string;
|
|
11
|
+
description: string;
|
|
12
|
+
};
|
|
13
|
+
path: {
|
|
14
|
+
type: string;
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
17
|
+
content: {
|
|
18
|
+
type: string;
|
|
19
|
+
description: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
required: string[];
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=knowledgeWrite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledgeWrite.d.ts","sourceRoot":"","sources":["../../src/tools/knowledgeWrite.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AASxD,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAiBlF;AAED,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;CAYpC,CAAC"}
|