@orion-agents/orion-code 0.1.3 → 0.1.4
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/README.md +24 -3
- package/README.zh-CN.md +34 -4
- package/dist/framework/tool.d.ts +3 -0
- package/dist/framework/tool.d.ts.map +1 -1
- package/dist/framework/tool.js.map +1 -1
- package/dist/memory/embeddings.d.ts.map +1 -1
- package/dist/memory/embeddings.js +3 -2
- package/dist/memory/embeddings.js.map +1 -1
- package/dist/memory/semantic-search.d.ts.map +1 -1
- package/dist/memory/semantic-search.js +2 -1
- package/dist/memory/semantic-search.js.map +1 -1
- package/dist/memory/vector-store.d.ts.map +1 -1
- package/dist/memory/vector-store.js +7 -3
- package/dist/memory/vector-store.js.map +1 -1
- package/dist/migration/migrate.d.ts.map +1 -1
- package/dist/migration/migrate.js +7 -11
- package/dist/migration/migrate.js.map +1 -1
- package/dist/runtime/agent-runtime-protocol.d.ts +4 -1
- package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-protocol.js +6 -0
- package/dist/runtime/agent-runtime-protocol.js.map +1 -1
- package/dist/runtime/chat-controller.d.ts.map +1 -1
- package/dist/runtime/chat-controller.js +52 -2
- package/dist/runtime/chat-controller.js.map +1 -1
- package/dist/runtime/model-coordinator.d.ts.map +1 -1
- package/dist/runtime/model-coordinator.js.map +1 -1
- package/dist/runtime/subagents/child-executor-guard.d.ts.map +1 -1
- package/dist/runtime/subagents/child-executor-guard.js +4 -0
- package/dist/runtime/subagents/child-executor-guard.js.map +1 -1
- package/dist/runtime/subagents/index.d.ts +10 -3
- package/dist/runtime/subagents/index.d.ts.map +1 -1
- package/dist/runtime/subagents/index.js +24 -1
- package/dist/runtime/subagents/index.js.map +1 -1
- package/dist/runtime/subagents/provider-gate.d.ts.map +1 -1
- package/dist/runtime/subagents/provider-gate.js +0 -1
- package/dist/runtime/subagents/provider-gate.js.map +1 -1
- package/dist/runtime/subagents/research-artifact.d.ts +94 -0
- package/dist/runtime/subagents/research-artifact.d.ts.map +1 -0
- package/dist/runtime/subagents/research-artifact.js +164 -0
- package/dist/runtime/subagents/research-artifact.js.map +1 -0
- package/dist/runtime/subagents/research-citation.d.ts +66 -0
- package/dist/runtime/subagents/research-citation.d.ts.map +1 -0
- package/dist/runtime/subagents/research-citation.js +185 -0
- package/dist/runtime/subagents/research-citation.js.map +1 -0
- package/dist/runtime/subagents/research-contract.d.ts +69 -0
- package/dist/runtime/subagents/research-contract.d.ts.map +1 -0
- package/dist/runtime/subagents/research-contract.js +232 -0
- package/dist/runtime/subagents/research-contract.js.map +1 -0
- package/dist/runtime/subagents/research-quality.d.ts +47 -0
- package/dist/runtime/subagents/research-quality.d.ts.map +1 -0
- package/dist/runtime/subagents/research-quality.js +125 -0
- package/dist/runtime/subagents/research-quality.js.map +1 -0
- package/dist/runtime/subagents/research-renderer.d.ts +79 -0
- package/dist/runtime/subagents/research-renderer.d.ts.map +1 -0
- package/dist/runtime/subagents/research-renderer.js +154 -0
- package/dist/runtime/subagents/research-renderer.js.map +1 -0
- package/dist/runtime/subagents/research-types.d.ts +105 -0
- package/dist/runtime/subagents/research-types.d.ts.map +1 -0
- package/dist/runtime/subagents/research-types.js +16 -0
- package/dist/runtime/subagents/research-types.js.map +1 -0
- package/dist/runtime/subagents/runtime-integration.d.ts +1 -1
- package/dist/runtime/subagents/runtime-integration.d.ts.map +1 -1
- package/dist/runtime/subagents/runtime-integration.js.map +1 -1
- package/dist/runtime/subagents/supervisor.d.ts +1 -1
- package/dist/runtime/subagents/supervisor.d.ts.map +1 -1
- package/dist/runtime/subagents/supervisor.js +1 -1
- package/dist/runtime/subagents/supervisor.js.map +1 -1
- package/dist/runtime/subagents/web-research-adapter.d.ts +83 -0
- package/dist/runtime/subagents/web-research-adapter.d.ts.map +1 -0
- package/dist/runtime/subagents/web-research-adapter.js +262 -0
- package/dist/runtime/subagents/web-research-adapter.js.map +1 -0
- package/dist/runtime/ui-events.d.ts +4 -0
- package/dist/runtime/ui-events.d.ts.map +1 -1
- package/dist/runtime/ui-events.js.map +1 -1
- package/dist/services/auth/auth.d.ts.map +1 -1
- package/dist/services/auth/auth.js +17 -4
- package/dist/services/auth/auth.js.map +1 -1
- package/dist/services/concurrent-sessions.d.ts.map +1 -1
- package/dist/services/concurrent-sessions.js +33 -17
- package/dist/services/concurrent-sessions.js.map +1 -1
- package/dist/services/config-dir.d.ts.map +1 -1
- package/dist/services/config-dir.js +19 -5
- package/dist/services/config-dir.js.map +1 -1
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js.map +1 -1
- package/dist/services/goal-storage.d.ts.map +1 -1
- package/dist/services/goal-storage.js +22 -8
- package/dist/services/goal-storage.js.map +1 -1
- package/dist/services/llm.d.ts +17 -0
- package/dist/services/llm.d.ts.map +1 -1
- package/dist/services/llm.js +88 -31
- package/dist/services/llm.js.map +1 -1
- package/dist/services/provider-resilience/coordinator.d.ts +1 -1
- package/dist/services/provider-resilience/coordinator.d.ts.map +1 -1
- package/dist/services/provider-resilience/coordinator.js +4 -4
- package/dist/services/provider-resilience/coordinator.js.map +1 -1
- package/dist/services/provider-resilience/error-classifier.js +20 -8
- package/dist/services/provider-resilience/error-classifier.js.map +1 -1
- package/dist/services/provider-resilience/stream-recovery.d.ts +1 -1
- package/dist/services/provider-resilience/stream-recovery.d.ts.map +1 -1
- package/dist/services/provider-resilience/stream-recovery.js +1 -1
- package/dist/services/provider-resilience/stream-recovery.js.map +1 -1
- package/dist/services/session-storage.d.ts.map +1 -1
- package/dist/services/session-storage.js +45 -14
- package/dist/services/session-storage.js.map +1 -1
- package/dist/services/storage-maintenance.d.ts.map +1 -1
- package/dist/services/storage-maintenance.js +44 -9
- package/dist/services/storage-maintenance.js.map +1 -1
- package/dist/services/task-manager.d.ts +3 -3
- package/dist/services/task-manager.d.ts.map +1 -1
- package/dist/services/web-search-adapters.d.ts.map +1 -1
- package/dist/services/web-search-adapters.js +48 -18
- package/dist/services/web-search-adapters.js.map +1 -1
- package/dist/services/web-search-mcp.d.ts.map +1 -1
- package/dist/services/web-search-mcp.js +27 -11
- package/dist/services/web-search-mcp.js.map +1 -1
- package/dist/services/yaml-config.d.ts.map +1 -1
- package/dist/services/yaml-config.js +2 -1
- package/dist/services/yaml-config.js.map +1 -1
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +3 -2
- package/dist/skills/loader.js.map +1 -1
- package/dist/terminal-ui/launch.d.ts.map +1 -1
- package/dist/terminal-ui/launch.js +5 -0
- package/dist/terminal-ui/launch.js.map +1 -1
- package/dist/terminal-ui/raw-editor.js.map +1 -1
- package/dist/tools/bash_security.d.ts +50 -18
- package/dist/tools/bash_security.d.ts.map +1 -1
- package/dist/tools/bash_security.js +394 -61
- package/dist/tools/bash_security.js.map +1 -1
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +31 -18
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp.d.ts +8 -2
- package/dist/tools/mcp.d.ts.map +1 -1
- package/dist/tools/mcp.js +44 -23
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tui-core/frame.js.map +1 -1
- package/dist/tui-ui/layout.js.map +1 -1
- package/dist/tui-ui/runner.js.map +1 -1
- package/dist/utils/debug-log.d.ts +52 -0
- package/dist/utils/debug-log.d.ts.map +1 -0
- package/dist/utils/debug-log.js +91 -0
- package/dist/utils/debug-log.js.map +1 -0
- package/dist/utils/errors.d.ts +25 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +47 -0
- package/dist/utils/errors.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Research quality, cost, and recovery hardening (v0.1.4, P1-R6).
|
|
4
|
+
*
|
|
5
|
+
* - Source ranking is EXPLAINABLE ONLY: it returns an ordering plus a list of
|
|
6
|
+
* human-readable reasons (freshness / provider / scope match / dedup). It is
|
|
7
|
+
* never a verdict on truth - a higher rank does not mean a source is correct.
|
|
8
|
+
* - Cost diagnostics summarize model/tool/time/source usage for `npm run cost`
|
|
9
|
+
* reconciliation.
|
|
10
|
+
* - Recovery hints turn a structured failure reason into an actionable suggestion,
|
|
11
|
+
* without ever suggesting a generic MCP or a write path.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.rankSources = rankSources;
|
|
15
|
+
exports.researchCostSummary = researchCostSummary;
|
|
16
|
+
exports.recoveryHint = recoveryHint;
|
|
17
|
+
function daysSince(iso, now) {
|
|
18
|
+
const t = new Date(iso).getTime();
|
|
19
|
+
if (Number.isNaN(t))
|
|
20
|
+
return 999;
|
|
21
|
+
return Math.max(0, Math.floor((now.getTime() - t) / 86400000));
|
|
22
|
+
}
|
|
23
|
+
function hostOf(url) {
|
|
24
|
+
if (!url)
|
|
25
|
+
return null;
|
|
26
|
+
try {
|
|
27
|
+
const h = new URL(url).hostname.toLowerCase();
|
|
28
|
+
return h.startsWith('[') && h.endsWith(']') ? h.slice(1, -1) : h;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function matchesDomain(host, domains = []) {
|
|
35
|
+
if (!host || domains.length === 0)
|
|
36
|
+
return false;
|
|
37
|
+
return domains.some(d => host === d.toLowerCase() || host.endsWith('.' + d.toLowerCase()));
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Rank sources by explainable signals. Stale revisions are demoted. The returned
|
|
41
|
+
* `reasons` explain every contribution; the score is advisory, not truth.
|
|
42
|
+
*/
|
|
43
|
+
function rankSources(sources, opts = {}) {
|
|
44
|
+
const now = opts.now ?? new Date();
|
|
45
|
+
const ranked = sources.map(src => {
|
|
46
|
+
const reasons = [];
|
|
47
|
+
let score = 0;
|
|
48
|
+
const age = daysSince(src.retrievedAt, now);
|
|
49
|
+
score += Math.max(0, 30 - age); // fresher is better, capped
|
|
50
|
+
if (age <= 7)
|
|
51
|
+
reasons.push(`fresh (retrieved ${age}d ago)`);
|
|
52
|
+
else
|
|
53
|
+
reasons.push(`older (retrieved ${age}d ago)`);
|
|
54
|
+
if (src.status === 'stale') {
|
|
55
|
+
score -= 50;
|
|
56
|
+
reasons.push('stale revision (demoted)');
|
|
57
|
+
}
|
|
58
|
+
else if (src.status === 'blocked' || src.status === 'failed') {
|
|
59
|
+
score -= 40;
|
|
60
|
+
reasons.push(`unavailable (${src.status})`);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
reasons.push('available');
|
|
64
|
+
}
|
|
65
|
+
const idx = opts.preferredProviders?.indexOf(src.provider) ?? -1;
|
|
66
|
+
if (idx >= 0) {
|
|
67
|
+
score += 10 - idx;
|
|
68
|
+
reasons.push(`preferred provider (${src.provider})`);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
reasons.push(`provider ${src.provider}`);
|
|
72
|
+
}
|
|
73
|
+
const host = hostOf(src.canonicalUrl);
|
|
74
|
+
if (matchesDomain(host, opts.scope?.domains)) {
|
|
75
|
+
score += 15;
|
|
76
|
+
reasons.push('matches scope domain');
|
|
77
|
+
}
|
|
78
|
+
return { sourceId: src.id, score, reasons };
|
|
79
|
+
});
|
|
80
|
+
ranked.sort((a, b) => b.score - a.score || a.sourceId.localeCompare(b.sourceId));
|
|
81
|
+
return ranked.map((r, i) => ({ ...r, rank: i + 1 }));
|
|
82
|
+
}
|
|
83
|
+
/** Summarize research cost from the packet usage + source counts. */
|
|
84
|
+
function researchCostSummary(packet, opts = {}) {
|
|
85
|
+
const notes = [];
|
|
86
|
+
const retrieved = packet.sources.filter(s => s.status === 'retrieved').length;
|
|
87
|
+
if (packet.sources.length > packet.request.maxSources) {
|
|
88
|
+
notes.push(`source count exceeded request budget (${packet.sources.length} > ${packet.request.maxSources})`);
|
|
89
|
+
}
|
|
90
|
+
if (opts.fetchedBytes !== undefined && packet.request.maxFetchBytes > 0 && opts.fetchedBytes > packet.request.maxFetchBytes) {
|
|
91
|
+
notes.push(`fetched bytes exceeded budget (${opts.fetchedBytes} > ${packet.request.maxFetchBytes})`);
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
modelRequests: packet.usage.modelRequests,
|
|
95
|
+
toolCalls: packet.usage.toolCalls,
|
|
96
|
+
durationMs: packet.usage.durationMs,
|
|
97
|
+
sourceCount: packet.sources.length,
|
|
98
|
+
retrievedCount: retrieved,
|
|
99
|
+
notes,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Turn a structured failure reason into an actionable recovery hint. Never
|
|
104
|
+
* suggests a generic MCP or a write/exec path.
|
|
105
|
+
*/
|
|
106
|
+
function recoveryHint(reason) {
|
|
107
|
+
const r = (reason ?? '').toLowerCase();
|
|
108
|
+
if (r.includes('ssrf') || r.includes('blocked') || r.includes('internal')) {
|
|
109
|
+
return 'Blocked by security policy (SSRF/internal host). Use an allowlisted public URL.';
|
|
110
|
+
}
|
|
111
|
+
if (r.includes('dns')) {
|
|
112
|
+
return 'DNS resolution failed. Check network/allowlist; the guard runs on every redirect hop.';
|
|
113
|
+
}
|
|
114
|
+
if (r.includes('timeout') || r.includes('timed') || r.includes('too many redirect')) {
|
|
115
|
+
return 'Request timed out or redirected too often. Increase maxDurationMs or reduce sources.';
|
|
116
|
+
}
|
|
117
|
+
if (r.includes('too large') || r.includes('content-length') || r.includes('bytes')) {
|
|
118
|
+
return 'Response exceeded size budget. Increase maxFetchBytes or fetch a narrower excerpt.';
|
|
119
|
+
}
|
|
120
|
+
if (r.includes('provider') || r.includes('websearch') || r.includes('unavailable')) {
|
|
121
|
+
return 'Search provider unavailable. Configure an allowlisted provider (WebSearch/WebFetch only; no generic MCP).';
|
|
122
|
+
}
|
|
123
|
+
return 'Review the failure reason and retry within the request budget (sources/ bytes/ duration).';
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=research-quality.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research-quality.js","sourceRoot":"","sources":["../../../src/runtime/subagents/research-quality.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AA2CH,kCAwCC;AAYD,kDAoBC;AAMD,oCAkBC;AAhID,SAAS,SAAS,CAAC,GAAW,EAAE,GAAS;IACvC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAClC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IAChC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,QAAU,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,MAAM,CAAC,GAAY;IAC1B,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC9C,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAmB,EAAE,UAAoB,EAAE;IAChE,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC7F,CAAC;AASD;;;GAGG;AACH,SAAgB,WAAW,CAAC,OAAyB,EAAE,OAAoB,EAAE;IAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC5C,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,4BAA4B;QAC5D,IAAI,GAAG,IAAI,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,CAAC;;YACvD,OAAO,CAAC,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,CAAC;QAEnD,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC3B,KAAK,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/D,KAAK,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,KAAK,IAAI,EAAE,GAAG,GAAG,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACtC,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YAC7C,KAAK,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAWD,qEAAqE;AACrE,SAAgB,mBAAmB,CACjC,MAAsB,EACtB,OAAkC,EAAE;IAEpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;IAC9E,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,yCAAyC,MAAM,CAAC,OAAO,CAAC,MAAM,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;IAC/G,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC5H,KAAK,CAAC,IAAI,CAAC,kCAAkC,IAAI,CAAC,YAAY,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;IACvG,CAAC;IACD,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa;QACzC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;QACjC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;QACnC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;QAClC,cAAc,EAAE,SAAS;QACzB,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,MAA0B;IACrD,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1E,OAAO,iFAAiF,CAAC;IAC3F,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,uFAAuF,CAAC;IACjG,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACpF,OAAO,sFAAsF,CAAC;IAChG,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACnF,OAAO,oFAAoF,CAAC;IAC9F,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACnF,OAAO,2GAA2G,CAAC;IACrH,CAAC;IACD,OAAO,2FAA2F,CAAC;AACrG,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Research view-model + renderer parity (v0.1.4, P1-R4).
|
|
3
|
+
*
|
|
4
|
+
* A single `ResearchView` is computed once from a packet + citation resolution.
|
|
5
|
+
* Every presentation surface (TUI, terminal-ui, Print, JSON) projects THAT view,
|
|
6
|
+
* so the event order / status / conclusion are guaranteed consistent across
|
|
7
|
+
* renderers. The TUI shows the human-priority fields (stage, source counts,
|
|
8
|
+
* failures, citations, risks); terminal-ui keeps the technical diagnostics
|
|
9
|
+
* (provider, content hash, per-source status); Print/JSON emit the stable schema
|
|
10
|
+
* rather than concatenated claim text.
|
|
11
|
+
*
|
|
12
|
+
* Also emits a `ResearchLifecycleEvent` stream that the unified agent runtime can
|
|
13
|
+
* forward to TUI / terminal-ui / Print / JSON without each surface re-deriving it.
|
|
14
|
+
*/
|
|
15
|
+
import type { ResearchMode, ResearchPacket, Verification } from './research-types';
|
|
16
|
+
import type { CitationResolution } from './research-citation';
|
|
17
|
+
export type ResearchStage = 'completed' | 'partial' | 'failed';
|
|
18
|
+
export interface ResearchView {
|
|
19
|
+
schemaVersion: number;
|
|
20
|
+
packetId: string;
|
|
21
|
+
objective: string;
|
|
22
|
+
mode: ResearchMode;
|
|
23
|
+
stage: ResearchStage;
|
|
24
|
+
sourceCount: number;
|
|
25
|
+
retrievedCount: number;
|
|
26
|
+
partialCount: number;
|
|
27
|
+
failedCount: number;
|
|
28
|
+
blockedCount: number;
|
|
29
|
+
staleCount: number;
|
|
30
|
+
citationCount: number;
|
|
31
|
+
conflictCount: number;
|
|
32
|
+
evidenceCandidateCount: number;
|
|
33
|
+
riskCount: number;
|
|
34
|
+
auditStatus: 'met' | 'partial' | 'unmet';
|
|
35
|
+
conclusion: string;
|
|
36
|
+
claims: Array<{
|
|
37
|
+
id: string;
|
|
38
|
+
verification: Verification;
|
|
39
|
+
bindingStatus: string;
|
|
40
|
+
}>;
|
|
41
|
+
sources: Array<{
|
|
42
|
+
id: string;
|
|
43
|
+
kind: string;
|
|
44
|
+
provider: string;
|
|
45
|
+
status: string;
|
|
46
|
+
canonicalUrl?: string;
|
|
47
|
+
contentHash?: string;
|
|
48
|
+
}>;
|
|
49
|
+
}
|
|
50
|
+
export type ResearchRenderMode = 'tui' | 'terminal' | 'print' | 'json';
|
|
51
|
+
/** Compute the canonical view once; all renderers project this. */
|
|
52
|
+
export declare function buildResearchView(packet: ResearchPacket, resolution: CitationResolution): ResearchView;
|
|
53
|
+
/** Render the same view in the requested mode. All modes share one conclusion. */
|
|
54
|
+
export declare function renderResearch(view: ResearchView, mode: ResearchRenderMode): string;
|
|
55
|
+
/** Lifecycle events the unified agent runtime can forward to any surface. */
|
|
56
|
+
export type ResearchLifecycleEvent = {
|
|
57
|
+
type: 'research_started';
|
|
58
|
+
packetId: string;
|
|
59
|
+
objective: string;
|
|
60
|
+
mode: ResearchMode;
|
|
61
|
+
} | {
|
|
62
|
+
type: 'research_source';
|
|
63
|
+
packetId: string;
|
|
64
|
+
sourceId: string;
|
|
65
|
+
status: string;
|
|
66
|
+
provider: string;
|
|
67
|
+
} | {
|
|
68
|
+
type: 'research_conflict';
|
|
69
|
+
packetId: string;
|
|
70
|
+
claimId: string;
|
|
71
|
+
} | {
|
|
72
|
+
type: 'research_completed';
|
|
73
|
+
packetId: string;
|
|
74
|
+
stage: ResearchStage;
|
|
75
|
+
auditStatus: string;
|
|
76
|
+
conclusion: string;
|
|
77
|
+
};
|
|
78
|
+
export declare function toLifecycleEvents(view: ResearchView, resolution?: CitationResolution): ResearchLifecycleEvent[];
|
|
79
|
+
//# sourceMappingURL=research-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research-renderer.d.ts","sourceRoot":"","sources":["../../../src/runtime/subagents/research-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,YAAY,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjF,OAAO,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AAEvE,mEAAmE;AACnE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,GAAG,YAAY,CAiDtG;AAmBD,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAWnF;AA2CD,6EAA6E;AAC7E,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GACrF;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACjG;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,kBAAkB,GAAG,sBAAsB,EAAE,CAoB/G"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Research view-model + renderer parity (v0.1.4, P1-R4).
|
|
4
|
+
*
|
|
5
|
+
* A single `ResearchView` is computed once from a packet + citation resolution.
|
|
6
|
+
* Every presentation surface (TUI, terminal-ui, Print, JSON) projects THAT view,
|
|
7
|
+
* so the event order / status / conclusion are guaranteed consistent across
|
|
8
|
+
* renderers. The TUI shows the human-priority fields (stage, source counts,
|
|
9
|
+
* failures, citations, risks); terminal-ui keeps the technical diagnostics
|
|
10
|
+
* (provider, content hash, per-source status); Print/JSON emit the stable schema
|
|
11
|
+
* rather than concatenated claim text.
|
|
12
|
+
*
|
|
13
|
+
* Also emits a `ResearchLifecycleEvent` stream that the unified agent runtime can
|
|
14
|
+
* forward to TUI / terminal-ui / Print / JSON without each surface re-deriving it.
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.buildResearchView = buildResearchView;
|
|
18
|
+
exports.renderResearch = renderResearch;
|
|
19
|
+
exports.toLifecycleEvents = toLifecycleEvents;
|
|
20
|
+
/** Compute the canonical view once; all renderers project this. */
|
|
21
|
+
function buildResearchView(packet, resolution) {
|
|
22
|
+
const sources = packet.sources;
|
|
23
|
+
const retrieved = sources.filter(s => s.status === 'retrieved').length;
|
|
24
|
+
const partial = sources.filter(s => s.status === 'partial').length;
|
|
25
|
+
const failed = sources.filter(s => s.status === 'failed').length;
|
|
26
|
+
const blocked = sources.filter(s => s.status === 'blocked').length;
|
|
27
|
+
const stale = sources.filter(s => s.status === 'stale').length;
|
|
28
|
+
const stage = resolution.audit.status === 'met'
|
|
29
|
+
? 'completed'
|
|
30
|
+
: packet.risks.length > 0 || failed + blocked > 0
|
|
31
|
+
? 'partial'
|
|
32
|
+
: 'completed';
|
|
33
|
+
const conclusion = buildConclusion(packet, resolution, { retrieved, failed, blocked });
|
|
34
|
+
return {
|
|
35
|
+
schemaVersion: packet.schemaVersion,
|
|
36
|
+
packetId: packet.packetId,
|
|
37
|
+
objective: packet.request.objective,
|
|
38
|
+
mode: packet.request.mode,
|
|
39
|
+
stage,
|
|
40
|
+
sourceCount: sources.length,
|
|
41
|
+
retrievedCount: retrieved,
|
|
42
|
+
partialCount: partial,
|
|
43
|
+
failedCount: failed,
|
|
44
|
+
blockedCount: blocked,
|
|
45
|
+
staleCount: stale,
|
|
46
|
+
citationCount: resolution.bindings.filter(b => b.status === 'bound').length,
|
|
47
|
+
conflictCount: resolution.conflicts.length,
|
|
48
|
+
evidenceCandidateCount: resolution.evidenceCandidates.length,
|
|
49
|
+
riskCount: packet.risks.length,
|
|
50
|
+
auditStatus: resolution.audit.status,
|
|
51
|
+
conclusion,
|
|
52
|
+
claims: packet.claims.map(c => ({
|
|
53
|
+
id: c.id,
|
|
54
|
+
verification: c.verification,
|
|
55
|
+
bindingStatus: resolution.bindings.find(b => b.claimId === c.id)?.status ?? 'dangling',
|
|
56
|
+
})),
|
|
57
|
+
sources: sources.map(s => ({
|
|
58
|
+
id: s.id,
|
|
59
|
+
kind: s.kind,
|
|
60
|
+
provider: s.provider,
|
|
61
|
+
status: s.status,
|
|
62
|
+
...(s.canonicalUrl ? { canonicalUrl: s.canonicalUrl } : {}),
|
|
63
|
+
...(s.contentHash ? { contentHash: s.contentHash } : {}),
|
|
64
|
+
})),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function buildConclusion(packet, resolution, counts) {
|
|
68
|
+
const unverified = resolution.audit.unverifiedClaimIds.length;
|
|
69
|
+
if (resolution.audit.status === 'met') {
|
|
70
|
+
return `Research complete: ${resolution.evidenceCandidates.length} evidence candidate(s) from ${counts.retrieved} verified source(s).`;
|
|
71
|
+
}
|
|
72
|
+
const parts = [];
|
|
73
|
+
parts.push(`Research ${resolution.audit.status}: ${resolution.evidenceCandidates.length} evidence candidate(s)`);
|
|
74
|
+
if (counts.failed + counts.blocked > 0)
|
|
75
|
+
parts.push(`${counts.failed + counts.blocked} source(s) failed/blocked`);
|
|
76
|
+
if (resolution.conflicts.length > 0)
|
|
77
|
+
parts.push(`${resolution.conflicts.length} conflict(s)`);
|
|
78
|
+
if (unverified > 0)
|
|
79
|
+
parts.push(`${unverified} claim(s) without independent verification`);
|
|
80
|
+
return parts.join('; ') + '.';
|
|
81
|
+
}
|
|
82
|
+
/** Render the same view in the requested mode. All modes share one conclusion. */
|
|
83
|
+
function renderResearch(view, mode) {
|
|
84
|
+
switch (mode) {
|
|
85
|
+
case 'json':
|
|
86
|
+
return JSON.stringify(view);
|
|
87
|
+
case 'print':
|
|
88
|
+
return renderPrint(view);
|
|
89
|
+
case 'terminal':
|
|
90
|
+
return renderTerminal(view);
|
|
91
|
+
case 'tui':
|
|
92
|
+
return renderTui(view);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function renderTui(view) {
|
|
96
|
+
// Human-priority: stage, source counts, failures, citations, risks.
|
|
97
|
+
return [
|
|
98
|
+
`Research ${view.stage.toUpperCase()} (${view.mode})`,
|
|
99
|
+
`Sources: ${view.retrievedCount} retrieved / ${view.failedCount} failed / ${view.blockedCount} blocked / ${view.staleCount} stale`,
|
|
100
|
+
`Citations: ${view.citationCount} bound, ${view.conflictCount} conflict(s)`,
|
|
101
|
+
`Evidence candidates: ${view.evidenceCandidateCount}`,
|
|
102
|
+
`Risks: ${view.riskCount}`,
|
|
103
|
+
`Conclusion: ${view.conclusion}`,
|
|
104
|
+
].join('\n');
|
|
105
|
+
}
|
|
106
|
+
function renderTerminal(view) {
|
|
107
|
+
// Technical diagnostics: provider + content hash per source + audit.
|
|
108
|
+
const srcLines = view.sources
|
|
109
|
+
.map(s => ` - ${s.id} [${s.status}] provider=${s.provider} kind=${s.kind}${s.contentHash ? ` hash=${s.contentHash.slice(0, 12)}` : ''}`)
|
|
110
|
+
.join('\n');
|
|
111
|
+
return [
|
|
112
|
+
`RESEARCH ${view.packetId} stage=${view.stage} audit=${view.auditStatus}`,
|
|
113
|
+
`objective: ${view.objective}`,
|
|
114
|
+
`sources (${view.sourceCount}):`,
|
|
115
|
+
srcLines,
|
|
116
|
+
`bindings: ${view.citationCount} bound, ${view.conflictCount} conflict(s)`,
|
|
117
|
+
`conclusion: ${view.conclusion}`,
|
|
118
|
+
].join('\n');
|
|
119
|
+
}
|
|
120
|
+
function renderPrint(view) {
|
|
121
|
+
// Stable schema text (not raw concatenated claim text).
|
|
122
|
+
const claims = view.claims.map(c => ` - ${c.id}: ${c.verification} (${c.bindingStatus})`).join('\n');
|
|
123
|
+
return [
|
|
124
|
+
`# Research: ${view.objective}`,
|
|
125
|
+
`Status: ${view.stage} | Audit: ${view.auditStatus}`,
|
|
126
|
+
`Sources: ${view.sourceCount} (retrieved ${view.retrievedCount}, failed ${view.failedCount}, blocked ${view.blockedCount}, stale ${view.staleCount})`,
|
|
127
|
+
`Citations: ${view.citationCount} bound, ${view.conflictCount} conflict(s), ${view.evidenceCandidateCount} evidence candidate(s)`,
|
|
128
|
+
`Claims:`,
|
|
129
|
+
claims,
|
|
130
|
+
`Conclusion: ${view.conclusion}`,
|
|
131
|
+
].join('\n');
|
|
132
|
+
}
|
|
133
|
+
function toLifecycleEvents(view, resolution) {
|
|
134
|
+
const events = [
|
|
135
|
+
{ type: 'research_started', packetId: view.packetId, objective: view.objective, mode: view.mode },
|
|
136
|
+
];
|
|
137
|
+
for (const s of view.sources) {
|
|
138
|
+
events.push({ type: 'research_source', packetId: view.packetId, sourceId: s.id, status: s.status, provider: s.provider });
|
|
139
|
+
}
|
|
140
|
+
if (resolution) {
|
|
141
|
+
for (const c of resolution.conflicts) {
|
|
142
|
+
events.push({ type: 'research_conflict', packetId: view.packetId, claimId: c.claimId });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
events.push({
|
|
146
|
+
type: 'research_completed',
|
|
147
|
+
packetId: view.packetId,
|
|
148
|
+
stage: view.stage,
|
|
149
|
+
auditStatus: view.auditStatus,
|
|
150
|
+
conclusion: view.conclusion,
|
|
151
|
+
});
|
|
152
|
+
return events;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=research-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research-renderer.js","sourceRoot":"","sources":["../../../src/runtime/subagents/research-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Research-to-Evidence schema (v0.1.4).
|
|
3
|
+
*
|
|
4
|
+
* These types describe a safe, traceable, recoverable research loop that turns
|
|
5
|
+
* a read-only `research` subagent result into a `ResearchPacket` whose claims
|
|
6
|
+
* are bound to verifiable sources.
|
|
7
|
+
*
|
|
8
|
+
* Every packet is versioned. Unknown schema versions fail closed; unknown
|
|
9
|
+
* fields are ignored but the schema must match. The schema is renderer- and
|
|
10
|
+
* protocol-agnostic so TUI / terminal-ui / Print-JSON all consume one shape.
|
|
11
|
+
*/
|
|
12
|
+
export declare const RESEARCH_SCHEMA_VERSION: 1;
|
|
13
|
+
export type ResearchMode = 'local' | 'web' | 'mixed';
|
|
14
|
+
export type SourceKind = 'file' | 'search_result' | 'web_page' | 'provider_document';
|
|
15
|
+
export type SourceStatus = 'retrieved' | 'partial' | 'failed' | 'blocked' | 'stale';
|
|
16
|
+
export type EvidenceKind = 'file' | 'external' | 'inference';
|
|
17
|
+
/**
|
|
18
|
+
* Verification is the boundary between fact and inference.
|
|
19
|
+
* - `observed` : traceable to a source that was actually retrieved.
|
|
20
|
+
* - `partially_observed` : partially traceable (e.g. excerpt but not full content).
|
|
21
|
+
* - `unverified` : claim exists but no independent source backs it.
|
|
22
|
+
* - `contradicted` : at least one source disputes the claim.
|
|
23
|
+
*/
|
|
24
|
+
export type Verification = 'observed' | 'partially_observed' | 'unverified' | 'contradicted';
|
|
25
|
+
export type Confidence = 'high' | 'medium' | 'low';
|
|
26
|
+
export interface ResearchScope {
|
|
27
|
+
/** Canonical project root the research is scoped to. */
|
|
28
|
+
projectRoot: string;
|
|
29
|
+
/** In-project paths the child is allowed to read. */
|
|
30
|
+
paths?: string[];
|
|
31
|
+
/** Allowed external domains (web/mixed only). */
|
|
32
|
+
domains?: string[];
|
|
33
|
+
freshness?: 'any' | 'recent' | 'as_of';
|
|
34
|
+
asOf?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface ResearchRequest {
|
|
37
|
+
schemaVersion: number;
|
|
38
|
+
objective: string;
|
|
39
|
+
scope: ResearchScope;
|
|
40
|
+
mode: ResearchMode;
|
|
41
|
+
/** Upper bound on number of sources collected. */
|
|
42
|
+
maxSources: number;
|
|
43
|
+
/** Upper bound on bytes fetched from external sources (0 for local-only). */
|
|
44
|
+
maxFetchBytes: number;
|
|
45
|
+
/** Hard wall-clock budget for the whole research packet. */
|
|
46
|
+
maxDurationMs: number;
|
|
47
|
+
expectedOutput?: string;
|
|
48
|
+
/** Optional binding to a Goal objective revision. */
|
|
49
|
+
goalBinding?: {
|
|
50
|
+
goalId: string;
|
|
51
|
+
objectiveRevision: number;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
export interface ResearchSource {
|
|
55
|
+
id: string;
|
|
56
|
+
kind: SourceKind;
|
|
57
|
+
/** Canonical, normalized URL for web/provider sources. */
|
|
58
|
+
canonicalUrl?: string;
|
|
59
|
+
/** User-visible URL with secret-bearing query params removed. */
|
|
60
|
+
displayUrl?: string;
|
|
61
|
+
/** Project-relative path for file sources (never an absolute user path). */
|
|
62
|
+
projectPath?: string;
|
|
63
|
+
title?: string;
|
|
64
|
+
excerpt?: string;
|
|
65
|
+
provider: string;
|
|
66
|
+
retrievedAt: string;
|
|
67
|
+
/**
|
|
68
|
+
* Hash over the canonical source content. Proves what was read, NOT that the
|
|
69
|
+
* content is true. Used for drift detection, not authenticity.
|
|
70
|
+
*/
|
|
71
|
+
contentHash?: string;
|
|
72
|
+
status: SourceStatus;
|
|
73
|
+
failureReason?: string;
|
|
74
|
+
/** Human-readable descriptions of redactions applied (e.g. "api_key"). */
|
|
75
|
+
redactions?: string[];
|
|
76
|
+
}
|
|
77
|
+
export interface ResearchClaim {
|
|
78
|
+
id: string;
|
|
79
|
+
text: string;
|
|
80
|
+
/** Bindings into `ResearchPacket.sources`. Must be non-empty for observed claims. */
|
|
81
|
+
sourceIds: string[];
|
|
82
|
+
evidenceKind: EvidenceKind;
|
|
83
|
+
verification: Verification;
|
|
84
|
+
confidence?: Confidence;
|
|
85
|
+
/** Ids of claims/sources this claim contradicts. */
|
|
86
|
+
conflicts?: string[];
|
|
87
|
+
}
|
|
88
|
+
export interface ResearchPacket {
|
|
89
|
+
schemaVersion: number;
|
|
90
|
+
packetId: string;
|
|
91
|
+
projectPath: string;
|
|
92
|
+
sessionId: string;
|
|
93
|
+
goalId?: string;
|
|
94
|
+
objectiveRevision?: number;
|
|
95
|
+
request: ResearchRequest;
|
|
96
|
+
summary: string;
|
|
97
|
+
claims: ResearchClaim[];
|
|
98
|
+
sources: ResearchSource[];
|
|
99
|
+
/** Questions the research could not answer. */
|
|
100
|
+
gaps: string[];
|
|
101
|
+
risks: string[];
|
|
102
|
+
usage: import('./types').SubtaskUsage;
|
|
103
|
+
createdAt: string;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=research-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research-types.d.ts","sourceRoot":"","sources":["../../../src/runtime/subagents/research-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Research-to-Evidence schema (v0.1.4).
|
|
4
|
+
*
|
|
5
|
+
* These types describe a safe, traceable, recoverable research loop that turns
|
|
6
|
+
* a read-only `research` subagent result into a `ResearchPacket` whose claims
|
|
7
|
+
* are bound to verifiable sources.
|
|
8
|
+
*
|
|
9
|
+
* Every packet is versioned. Unknown schema versions fail closed; unknown
|
|
10
|
+
* fields are ignored but the schema must match. The schema is renderer- and
|
|
11
|
+
* protocol-agnostic so TUI / terminal-ui / Print-JSON all consume one shape.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.RESEARCH_SCHEMA_VERSION = void 0;
|
|
15
|
+
exports.RESEARCH_SCHEMA_VERSION = 1;
|
|
16
|
+
//# sourceMappingURL=research-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research-types.js","sourceRoot":"","sources":["../../../src/runtime/subagents/research-types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEU,QAAA,uBAAuB,GAAG,CAAU,CAAC"}
|
|
@@ -31,7 +31,7 @@ export interface SubagentTurnInputs {
|
|
|
31
31
|
/** Lifecycle event sink (runtime event + trace). */
|
|
32
32
|
onSubtaskEvent?: (event: RuntimeSubtaskEvent) => void;
|
|
33
33
|
/** Called once per finished task with its structured result, for artifact persistence. */
|
|
34
|
-
onSubtaskResult?: (result: import('./types').SubtaskResult, batchId: string) => void;
|
|
34
|
+
onSubtaskResult?: (result: import('./types').SubtaskResult, batchId: string, objective?: string) => void;
|
|
35
35
|
/**
|
|
36
36
|
* R6: live permission state from the root runtime. Returns true when a
|
|
37
37
|
* permission request is awaiting user decision. When provided, the policy
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-integration.d.ts","sourceRoot":"","sources":["../../../src/runtime/subagents/runtime-integration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,sBAAsB,CAAC;AAIvE,OAAO,EAAE,eAAe,EAA+B,MAAM,cAAc,CAAC;AAI5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACxF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAiBhE,MAAM,WAAW,kBAAkB;IACjC,gEAAgE;IAChE,MAAM,EAAE,cAAc,CAAC;IACvB,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,iFAAiF;IACjF,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,eAAe,CAAC,CAAC;IACjF,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yDAAyD;IACzD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,oDAAoD;IACpD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACtD,0FAA0F;IAC1F,eAAe,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"runtime-integration.d.ts","sourceRoot":"","sources":["../../../src/runtime/subagents/runtime-integration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,sBAAsB,CAAC;AAIvE,OAAO,EAAE,eAAe,EAA+B,MAAM,cAAc,CAAC;AAI5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACxF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAiBhE,MAAM,WAAW,kBAAkB;IACjC,gEAAgE;IAChE,MAAM,EAAE,cAAc,CAAC;IACvB,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,iFAAiF;IACjF,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,eAAe,CAAC,CAAC;IACjF,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yDAAyD;IACzD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,oDAAoD;IACpD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACtD,0FAA0F;IAC1F,eAAe,CAAC,EAAE,CAChB,MAAM,EAAE,OAAO,SAAS,EAAE,aAAa,EACvC,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,KACf,IAAI,CAAC;IACV;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC;IACrC;;;;OAIG;IACH,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,SAAS,EAAE,YAAY,EACpC,KAAK,EAAE,OAAO,SAAS,EAAE,YAAY,EACrC,UAAU,CAAC,EAAE,MAAM,KAChB,IAAI,CAAC;IACV,qEAAqE;IACrE,UAAU,CAAC,EAAE,6BAA6B,CAAC;IAC3C,2EAA2E;IAC3E,qBAAqB,CAAC,EAAE,wBAAwB,CAAC;CAClD;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,GAAG,IAAI,CA8GjG;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,kBAAkB,GAAG,aAAa,GAAG,IAAI,CAG1F;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,yEAAyE;IACzE,iBAAiB,EAAE,MAAM,YAAY,CAAC;IACtC,wDAAwD;IACxD,eAAe,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,kBAAkB,GACzB,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,eAAe,CAAC,CAOnE;AAED,0EAA0E;AAC1E,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-integration.js","sourceRoot":"","sources":["../../../src/runtime/subagents/runtime-integration.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;
|
|
1
|
+
{"version":3,"file":"runtime-integration.js","sourceRoot":"","sources":["../../../src/runtime/subagents/runtime-integration.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,7 +60,7 @@ export interface SubagentSupervisorDeps {
|
|
|
60
60
|
/** Lifecycle event sink (runtime event + trace). */
|
|
61
61
|
onEvent?: (event: RuntimeSubtaskEvent) => void;
|
|
62
62
|
/** Called once per task with its final SubtaskResult (for artifact persistence). */
|
|
63
|
-
onSubtaskResult?: (result: SubtaskResult, batchId: string) => void;
|
|
63
|
+
onSubtaskResult?: (result: SubtaskResult, batchId: string, objective?: string) => void;
|
|
64
64
|
}
|
|
65
65
|
export interface RunBatchOutcome {
|
|
66
66
|
result: SubtaskBatchResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../../src/runtime/subagents/supervisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAA6C,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAElB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EAEvB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,cAAc,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,oBAAoB,CAAC;IAC7B,YAAY,EAAE,oBAAoB,CAAC;IACnC,yEAAyE;IACzE,YAAY,EAAE,iBAAiB,CAAC;IAChC,sEAAsE;IACtE,OAAO,EAAE,YAAY,CAAC;IACtB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC;IACrC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,SAAS,EAAE,YAAY,EACpC,KAAK,EAAE,OAAO,SAAS,EAAE,YAAY,EACrC,UAAU,CAAC,EAAE,MAAM,KAChB,IAAI,CAAC;IACV,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAChC,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC/C,oFAAoF;IACpF,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../../src/runtime/subagents/supervisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAA6C,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAElB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EAEvB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,cAAc,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,oBAAoB,CAAC;IAC7B,YAAY,EAAE,oBAAoB,CAAC;IACnC,yEAAyE;IACzE,YAAY,EAAE,iBAAiB,CAAC;IAChC,sEAAsE;IACtE,OAAO,EAAE,YAAY,CAAC;IACtB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC;IACrC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,SAAS,EAAE,YAAY,EACpC,KAAK,EAAE,OAAO,SAAS,EAAE,YAAY,EACrC,UAAU,CAAC,EAAE,MAAM,KAChB,IAAI,CAAC;IACV,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAChC,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC/C,oFAAoF;IACpF,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACxF;AAeD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,eAAe,CAAC,CA+G1B"}
|
|
@@ -251,7 +251,7 @@ function finalizeTask(deps, batchId, taskId, task, result) {
|
|
|
251
251
|
}
|
|
252
252
|
// Persist the structured result for trace/resume durability - isolated.
|
|
253
253
|
try {
|
|
254
|
-
deps.onSubtaskResult?.(result, batchId);
|
|
254
|
+
deps.onSubtaskResult?.(result, batchId, task.objective);
|
|
255
255
|
}
|
|
256
256
|
catch {
|
|
257
257
|
// An artifact/trace sink throwing cannot reject the batch.
|