fodda-mcp 1.32.1 → 1.38.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/README.md +4 -9
- package/dist/a2aHandler.d.ts +33 -3
- package/dist/a2aHandler.d.ts.map +1 -1
- package/dist/a2aHandler.js +189 -36
- package/dist/a2aHandler.js.map +1 -1
- package/dist/agentFacts.d.ts +21 -0
- package/dist/agentFacts.d.ts.map +1 -0
- package/dist/agentFacts.js +72 -0
- package/dist/agentFacts.js.map +1 -0
- package/dist/agents/fodda-researcher/index.d.ts +6 -0
- package/dist/agents/fodda-researcher/index.d.ts.map +1 -1
- package/dist/agents/fodda-researcher/index.js +18 -0
- package/dist/agents/fodda-researcher/index.js.map +1 -1
- package/dist/agents/fodda-researcher/skills.d.ts +1 -1
- package/dist/agents/fodda-researcher/skills.d.ts.map +1 -1
- package/dist/agents/fodda-researcher/skills.js +8 -3
- package/dist/agents/fodda-researcher/skills.js.map +1 -1
- package/dist/brandTemplate.d.ts.map +1 -1
- package/dist/brandTemplate.js +65 -4
- package/dist/brandTemplate.js.map +1 -1
- package/dist/catalogCache.d.ts +3 -13
- package/dist/catalogCache.d.ts.map +1 -1
- package/dist/catalogCache.js +238 -59
- package/dist/catalogCache.js.map +1 -1
- package/dist/debug_tools.d.ts +2 -0
- package/dist/debug_tools.d.ts.map +1 -0
- package/dist/debug_tools.js +19 -0
- package/dist/debug_tools.js.map +1 -0
- package/dist/deepResearch.d.ts +43 -0
- package/dist/deepResearch.d.ts.map +1 -0
- package/dist/deepResearch.js +498 -0
- package/dist/deepResearch.js.map +1 -0
- package/dist/errorHandling.d.ts +1 -1
- package/dist/errorHandling.d.ts.map +1 -1
- package/dist/errorHandling.js +24 -4
- package/dist/errorHandling.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +449 -36
- package/dist/index.js.map +1 -1
- package/dist/inspect_list_graphs.d.ts +2 -0
- package/dist/inspect_list_graphs.d.ts.map +1 -0
- package/dist/inspect_list_graphs.js +25 -0
- package/dist/inspect_list_graphs.js.map +1 -0
- package/dist/jobs/jlens_quarterly_sweep.d.ts +62 -0
- package/dist/jobs/jlens_quarterly_sweep.d.ts.map +1 -0
- package/dist/jobs/jlens_quarterly_sweep.js +160 -0
- package/dist/jobs/jlens_quarterly_sweep.js.map +1 -0
- package/dist/linkedinEngine.d.ts +150 -0
- package/dist/linkedinEngine.d.ts.map +1 -0
- package/dist/linkedinEngine.js +696 -0
- package/dist/linkedinEngine.js.map +1 -0
- package/dist/pricingCache.d.ts +6 -8
- package/dist/pricingCache.d.ts.map +1 -1
- package/dist/pricingCache.js +55 -11
- package/dist/pricingCache.js.map +1 -1
- package/dist/queryCache.d.ts +2 -0
- package/dist/queryCache.d.ts.map +1 -1
- package/dist/queryCache.js +11 -2
- package/dist/queryCache.js.map +1 -1
- package/dist/resources.d.ts +27 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +126 -0
- package/dist/resources.js.map +1 -0
- package/dist/scratch_test.d.ts.map +1 -0
- package/dist/services/notifications.d.ts +49 -0
- package/dist/services/notifications.d.ts.map +1 -0
- package/dist/services/notifications.js +206 -0
- package/dist/services/notifications.js.map +1 -0
- package/dist/sessionTracker.js +1 -1
- package/dist/sessionTracker.js.map +1 -1
- package/dist/systemPrompt.d.ts +3 -3
- package/dist/systemPrompt.d.ts.map +1 -1
- package/dist/systemPrompt.js +44 -54
- package/dist/systemPrompt.js.map +1 -1
- package/dist/telemetry.d.ts +43 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +101 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/test_analyst.js +2 -2
- package/dist/test_analyst.js.map +1 -1
- package/dist/test_brand_intelligence_endpoint.d.ts +2 -0
- package/dist/test_brand_intelligence_endpoint.d.ts.map +1 -0
- package/dist/test_brand_intelligence_endpoint.js +20 -0
- package/dist/test_brand_intelligence_endpoint.js.map +1 -0
- package/dist/test_coverage_r2.d.ts +2 -0
- package/dist/test_coverage_r2.d.ts.map +1 -0
- package/dist/test_coverage_scratch.d.ts +2 -0
- package/dist/test_coverage_scratch.d.ts.map +1 -0
- package/dist/test_list_graphs_topics.d.ts +2 -0
- package/dist/test_list_graphs_topics.d.ts.map +1 -0
- package/dist/test_list_graphs_topics.js +26 -0
- package/dist/test_list_graphs_topics.js.map +1 -0
- package/dist/test_live_endpoint_runner.d.ts +2 -0
- package/dist/test_live_endpoint_runner.d.ts.map +1 -0
- package/dist/test_live_endpoint_runner.js +65 -0
- package/dist/test_live_endpoint_runner.js.map +1 -0
- package/dist/test_local_list_graphs.d.ts +2 -0
- package/dist/test_local_list_graphs.d.ts.map +1 -0
- package/dist/test_local_list_graphs.js +53 -0
- package/dist/test_local_list_graphs.js.map +1 -0
- package/dist/test_nike_cmo_alias.d.ts +2 -0
- package/dist/test_nike_cmo_alias.d.ts.map +1 -0
- package/dist/test_nike_cmo_alias.js +76 -0
- package/dist/test_nike_cmo_alias.js.map +1 -0
- package/dist/test_token_resolution.d.ts +2 -0
- package/dist/test_token_resolution.d.ts.map +1 -0
- package/dist/test_token_resolution.js +82 -0
- package/dist/test_token_resolution.js.map +1 -0
- package/dist/toolHandlers.d.ts +7 -3
- package/dist/toolHandlers.d.ts.map +1 -1
- package/dist/toolHandlers.js +963 -310
- package/dist/toolHandlers.js.map +1 -1
- package/dist/tools.d.ts +6 -2
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +7 -2
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +9 -46
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -1
- package/dist/verify_discoverability.d.ts +2 -0
- package/dist/verify_discoverability.d.ts.map +1 -0
- package/dist/verify_discoverability.js +53 -0
- package/dist/verify_discoverability.js.map +1 -0
- package/package.json +5 -2
- package/server.json +16 -3
package/README.md
CHANGED
|
@@ -18,17 +18,12 @@
|
|
|
18
18
|
|
|
19
19
|
### Claude (Web — Pro, Max, Team, Enterprise)
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
1. Get your personal MCP URL at [app.fodda.ai](https://app.fodda.ai) → Account → MCP Integration (format: `https://mcp.fodda.ai/c/<your-token>`)
|
|
22
|
+
2. In Claude, go to **Settings → Connectors → Add custom connector**, paste the URL, and click **Add**
|
|
23
|
+
3. Start chatting with your Fodda knowledge graphs
|
|
22
24
|
|
|
23
|
-
**
|
|
24
|
-
1. In Claude, go to **Settings → Connectors → Add custom connector**
|
|
25
|
-
2. Enter URL: `https://mcp.fodda.ai/mcp?api_key=YOUR_API_KEY&user_id=YOUR_EMAIL`
|
|
26
|
-
3. Under **Advanced settings** — leave OAuth Client ID and Secret **blank** (Fodda uses API key auth, not OAuth)
|
|
27
|
-
4. Click **Add** — then start chatting with your Fodda knowledge graphs
|
|
25
|
+
> **Note:** legacy `?api_key=` URLs are no longer accepted (raw keys in URLs leak into logs and browser history). If your connector stops working, just grab a fresh MCP URL at [app.fodda.ai](https://app.fodda.ai). One-click OAuth connect arrives with Fodda's Anthropic Connectors Directory listing.
|
|
28
26
|
|
|
29
|
-
> Get your API key at [app.fodda.ai](https://app.fodda.ai) → Account → MCP Integration.
|
|
30
|
-
> Your API key starts with `sk_live_...`
|
|
31
|
-
> Use the email address associated with your Fodda account for `user_id`.
|
|
32
27
|
|
|
33
28
|
### Claude Code (CLI — SSE)
|
|
34
29
|
|
package/dist/a2aHandler.d.ts
CHANGED
|
@@ -14,7 +14,37 @@
|
|
|
14
14
|
* Spec: https://a2a-protocol.org/latest/specification/
|
|
15
15
|
*/
|
|
16
16
|
import type { Express } from 'express';
|
|
17
|
-
type FoddaRequestFn
|
|
18
|
-
export declare
|
|
19
|
-
|
|
17
|
+
import type { FoddaRequestFn, WaverunnerRequestFn } from './types.js';
|
|
18
|
+
export declare const AGENT_CARD: {
|
|
19
|
+
protocolVersion: string;
|
|
20
|
+
name: string;
|
|
21
|
+
description: string;
|
|
22
|
+
url: string;
|
|
23
|
+
preferredTransport: string;
|
|
24
|
+
version: string;
|
|
25
|
+
provider: {
|
|
26
|
+
organization: string;
|
|
27
|
+
url: string;
|
|
28
|
+
};
|
|
29
|
+
documentationUrl: string;
|
|
30
|
+
privacyPolicyUrl: string;
|
|
31
|
+
termsOfServiceUrl: string;
|
|
32
|
+
supportContact: string;
|
|
33
|
+
iconUrl: string;
|
|
34
|
+
capabilities: {
|
|
35
|
+
streaming: boolean;
|
|
36
|
+
pushNotifications: boolean;
|
|
37
|
+
stateTransitionHistory: boolean;
|
|
38
|
+
};
|
|
39
|
+
defaultInputModes: string[];
|
|
40
|
+
defaultOutputModes: string[];
|
|
41
|
+
skills: {
|
|
42
|
+
id: string;
|
|
43
|
+
name: string;
|
|
44
|
+
description: string;
|
|
45
|
+
tags: string[];
|
|
46
|
+
examples: string[];
|
|
47
|
+
}[];
|
|
48
|
+
};
|
|
49
|
+
export declare function registerA2ARoute(app: Express, foddaRequest: FoddaRequestFn, waverunnerRequest: WaverunnerRequestFn): void;
|
|
20
50
|
//# sourceMappingURL=a2aHandler.d.ts.map
|
package/dist/a2aHandler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2aHandler.d.ts","sourceRoot":"","sources":["../src/a2aHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"a2aHandler.d.ts","sourceRoot":"","sources":["../src/a2aHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAUtE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+EtB,CAAC;AAuSF,wBAAgB,gBAAgB,CAC5B,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,cAAc,EAC5B,iBAAiB,EAAE,mBAAmB,GACvC,IAAI,CAmRN"}
|
package/dist/a2aHandler.js
CHANGED
|
@@ -15,21 +15,26 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import crypto from 'crypto';
|
|
17
17
|
import { MCP_SERVER_VERSION } from './tools.js';
|
|
18
|
+
import { runDeepResearch } from './deepResearch.js';
|
|
19
|
+
import { chargeQuery } from './pricingCache.js';
|
|
18
20
|
// ---------------------------------------------------------------------------
|
|
19
21
|
// A2A Agent Card — the discovery document agents/registries fetch to learn
|
|
20
22
|
// what Fodda can do. Served at /.well-known/agent-card.json (A2A standard).
|
|
21
23
|
// Skills reflect what the /a2a endpoint can actually fulfil (the classifier's
|
|
22
24
|
// routes), so we never advertise a capability we can't deliver.
|
|
23
25
|
// ---------------------------------------------------------------------------
|
|
24
|
-
const AGENT_CARD = {
|
|
26
|
+
export const AGENT_CARD = {
|
|
25
27
|
protocolVersion: '0.3.0',
|
|
26
28
|
name: 'Fodda Research Agent',
|
|
27
|
-
description:
|
|
29
|
+
description: `Expert-curated trend, brand, research, and earnings intelligence from named experts' knowledge graphs (220+ graphs across retail, beauty, sports, finance, and institutional data). Delegate a task in natural language — Fodda selects the right tools and returns a synthesized result.${process.env.ENABLE_SPT === 'true' ? ' Pay per task via Stripe Shared Payment Token; no account required.' : ''}`,
|
|
28
30
|
url: 'https://mcp.fodda.ai/a2a',
|
|
29
31
|
preferredTransport: 'JSONRPC',
|
|
30
32
|
version: MCP_SERVER_VERSION,
|
|
31
33
|
provider: { organization: 'Fodda (PSFK)', url: 'https://www.fodda.ai' },
|
|
32
34
|
documentationUrl: 'https://www.fodda.ai/llms.txt',
|
|
35
|
+
privacyPolicyUrl: 'https://www.fodda.ai/privacy',
|
|
36
|
+
termsOfServiceUrl: 'https://www.fodda.ai/terms',
|
|
37
|
+
supportContact: 'support@fodda.ai',
|
|
33
38
|
iconUrl: 'https://ucarecdn.com/6e7893d7-6b14-426b-83bc-574a3f72d6bc/foddafavicon.png',
|
|
34
39
|
capabilities: { streaming: false, pushNotifications: false, stateTransitionHistory: false },
|
|
35
40
|
defaultInputModes: ['text/plain'],
|
|
@@ -52,7 +57,10 @@ const AGENT_CARD = {
|
|
|
52
57
|
{
|
|
53
58
|
id: 'deep-research',
|
|
54
59
|
name: 'Deep Research',
|
|
55
|
-
description:
|
|
60
|
+
description: 'Full multi-source autonomous research: expert-curated knowledge graphs, '
|
|
61
|
+
+ 'earnings-call intelligence, and institutional data, synthesized into a cited '
|
|
62
|
+
+ 'editorial report. Returned as an async task — poll tasks/get for the result. '
|
|
63
|
+
+ 'API key required; SPT support coming.',
|
|
56
64
|
tags: ['research', 'report', 'analysis'],
|
|
57
65
|
examples: ['comprehensive report on Gen Z luxury', 'detailed analysis of the resale market'],
|
|
58
66
|
},
|
|
@@ -66,13 +74,13 @@ const AGENT_CARD = {
|
|
|
66
74
|
{
|
|
67
75
|
id: 'per-ticker-earnings',
|
|
68
76
|
name: 'Per-Ticker Earnings Intelligence',
|
|
69
|
-
description: '
|
|
70
|
-
tags: ['earnings', '
|
|
77
|
+
description: 'The strategic truth layer per company: what analysts pressed on, where management deflected, marketing/retail/tech/sustainability activity, CEO intelligence, and market-validated consumer trends — quarterly records with multi-quarter history for 500+ consumer-sector companies.',
|
|
78
|
+
tags: ['earnings', 'analyst-pressure', 'activity', 'validated-trends'],
|
|
71
79
|
examples: [
|
|
72
|
-
"What
|
|
73
|
-
'Compare Lululemon and On Running
|
|
74
|
-
'Which companies raised guidance this quarter?',
|
|
80
|
+
"What are analysts pressing Nike on?",
|
|
81
|
+
'Compare how Lululemon and On Running talk about growth',
|
|
75
82
|
"Show me Costco's analyst Q&A themes",
|
|
83
|
+
'Which consumer trends do KR\'s earnings validate?',
|
|
76
84
|
],
|
|
77
85
|
},
|
|
78
86
|
{
|
|
@@ -82,8 +90,41 @@ const AGENT_CARD = {
|
|
|
82
90
|
tags: ['expert', 'consult', 'analyst'],
|
|
83
91
|
examples: ['Consult Ben Dietz about culture-led brand strategy', 'Ask Anu Lingala about 2026 macro trends'],
|
|
84
92
|
},
|
|
93
|
+
{
|
|
94
|
+
// Phase C: skill-based deliverables. One static capability skill for
|
|
95
|
+
// now; once offerings are seeded (C1), derive one card skill per live
|
|
96
|
+
// offering (key, price, example_brief) from the analyst offerings.
|
|
97
|
+
id: 'commissioned-deliverable',
|
|
98
|
+
name: 'Commissioned Deliverable',
|
|
99
|
+
description: 'Commission a finished document from an analyst — a marketing plan, deck review, or trend briefing. The analyst researches, then produces the document in the background; returned as an async job (poll for the artifact). Priced per offering; see each analyst\'s offerings.',
|
|
100
|
+
tags: ['deliverable', 'document', 'analyst', 'async'],
|
|
101
|
+
examples: ['Commission a marketing plan from Ben Dietz for a Gen-Z skincare launch', 'Ask for a trend briefing deliverable on resale'],
|
|
102
|
+
},
|
|
85
103
|
],
|
|
86
104
|
};
|
|
105
|
+
const a2aTasks = new Map();
|
|
106
|
+
// TTL sweep: terminal tasks (completed/failed/canceled) evicted after 30 min;
|
|
107
|
+
// non-terminal tasks (working/submitted) auto-failed after 15 min (pipeline hung).
|
|
108
|
+
const A2A_TERMINAL_TTL_MS = 30 * 60 * 1000;
|
|
109
|
+
const A2A_WORKING_TTL_MS = 15 * 60 * 1000;
|
|
110
|
+
setInterval(() => {
|
|
111
|
+
const now = Date.now();
|
|
112
|
+
for (const [id, record] of a2aTasks) {
|
|
113
|
+
const age = now - record.createdAt;
|
|
114
|
+
const state = record.task.status.state;
|
|
115
|
+
const isTerminal = state === 'completed' || state === 'failed' || state === 'canceled';
|
|
116
|
+
if (isTerminal && age > A2A_TERMINAL_TTL_MS) {
|
|
117
|
+
a2aTasks.delete(id);
|
|
118
|
+
}
|
|
119
|
+
else if (!isTerminal && age > A2A_WORKING_TTL_MS) {
|
|
120
|
+
record.task.status = {
|
|
121
|
+
state: 'failed',
|
|
122
|
+
message: { role: 'agent', parts: [{ kind: 'text', text: 'Research timed out after 15 minutes.' }] },
|
|
123
|
+
};
|
|
124
|
+
console.error(`[a2a] Task ${id} auto-failed: exceeded ${A2A_WORKING_TTL_MS / 60000}min working TTL`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}, 60_000);
|
|
87
128
|
function classifyIntent(text) {
|
|
88
129
|
const lower = text.toLowerCase();
|
|
89
130
|
// Expert consult triggers: "Consult Ben Dietz about X", "Ask Anu Lingala: ..."
|
|
@@ -126,6 +167,10 @@ function classifyIntent(text) {
|
|
|
126
167
|
// Default: search_graph (the most general tool)
|
|
127
168
|
return { tool: 'search_graph', params: { query: text } };
|
|
128
169
|
}
|
|
170
|
+
// ---------------------------------------------------------------------------
|
|
171
|
+
// Tool execution — calls existing Fodda API endpoints
|
|
172
|
+
// ---------------------------------------------------------------------------
|
|
173
|
+
// FoddaRequestFn imported from ./types.js above
|
|
129
174
|
async function executeQuery(route, apiKey, userId, foddaRequest) {
|
|
130
175
|
switch (route.tool) {
|
|
131
176
|
case 'search_graph': {
|
|
@@ -243,28 +288,10 @@ async function executeQuery(route, apiKey, userId, foddaRequest) {
|
|
|
243
288
|
return { text: lines.join('\n') || JSON.stringify(result, null, 2), data: result };
|
|
244
289
|
}
|
|
245
290
|
case 'deep_research': {
|
|
246
|
-
//
|
|
247
|
-
//
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
limit: 15,
|
|
251
|
-
use_semantic: true,
|
|
252
|
-
include_evidence: true,
|
|
253
|
-
};
|
|
254
|
-
const result = await foddaRequest('POST', '/v1/graphs/search', apiKey, userId, body);
|
|
255
|
-
const rows = result?.rows || [];
|
|
256
|
-
const lines = [];
|
|
257
|
-
lines.push(`## Research Summary: ${route.params.query}\n`);
|
|
258
|
-
lines.push(`_${rows.length} trends analyzed from Fodda's knowledge graph network._\n`);
|
|
259
|
-
for (const row of rows.slice(0, 10)) {
|
|
260
|
-
const score = row.signal_score ? ` (signal: ${row.signal_score})` : '';
|
|
261
|
-
lines.push(`### ${row.title || row.trendName}${score}`);
|
|
262
|
-
if (row.summary || row.description) {
|
|
263
|
-
lines.push((row.summary || row.description).substring(0, 400));
|
|
264
|
-
}
|
|
265
|
-
lines.push('');
|
|
266
|
-
}
|
|
267
|
-
return { text: lines.join('\n'), data: result };
|
|
291
|
+
// Deep research returns source_plan synchronously for routing
|
|
292
|
+
// visibility, but the report itself is async — caller must poll
|
|
293
|
+
// tasks/get. This replaces the sync MVP that just ran graphs/search.
|
|
294
|
+
return { text: '__ASYNC_DEEP_RESEARCH__', data: null, asyncDeepResearch: route.params };
|
|
268
295
|
}
|
|
269
296
|
}
|
|
270
297
|
}
|
|
@@ -280,7 +307,7 @@ function jsonRpcError(id, code, message, data) {
|
|
|
280
307
|
// ---------------------------------------------------------------------------
|
|
281
308
|
// Route registration
|
|
282
309
|
// ---------------------------------------------------------------------------
|
|
283
|
-
export function registerA2ARoute(app, foddaRequest) {
|
|
310
|
+
export function registerA2ARoute(app, foddaRequest, waverunnerRequest) {
|
|
284
311
|
// ── A2A Agent Card discovery (skills catalog) ──
|
|
285
312
|
const serveAgentCard = (_req, res) => res.json(AGENT_CARD);
|
|
286
313
|
app.get('/.well-known/agent-card.json', serveAgentCard); // A2A current standard
|
|
@@ -296,12 +323,39 @@ export function registerA2ARoute(app, foddaRequest) {
|
|
|
296
323
|
switch (body.method) {
|
|
297
324
|
case 'message/send':
|
|
298
325
|
break; // handled below
|
|
299
|
-
// Stubs for future methods — return Method Not Found
|
|
300
326
|
case 'message/stream':
|
|
301
|
-
case 'tasks/get':
|
|
302
|
-
case 'tasks/cancel':
|
|
303
327
|
case 'tasks/list':
|
|
304
|
-
return res.json(jsonRpcError(requestId, -32601, `Method not found: ${body.method}.
|
|
328
|
+
return res.json(jsonRpcError(requestId, -32601, `Method not found: ${body.method}. Supported: message/send, tasks/get, tasks/cancel.`));
|
|
329
|
+
case 'tasks/get': {
|
|
330
|
+
const taskId = body.params?.id;
|
|
331
|
+
if (!taskId) {
|
|
332
|
+
return res.json(jsonRpcError(requestId, -32602, 'Invalid params: id is required'));
|
|
333
|
+
}
|
|
334
|
+
const record = a2aTasks.get(taskId);
|
|
335
|
+
if (!record) {
|
|
336
|
+
return res.json(jsonRpcError(requestId, -32602, `Task not found: ${taskId}`));
|
|
337
|
+
}
|
|
338
|
+
return res.json(jsonRpcSuccess(requestId, record.task));
|
|
339
|
+
}
|
|
340
|
+
case 'tasks/cancel': {
|
|
341
|
+
const taskId = body.params?.id;
|
|
342
|
+
if (!taskId) {
|
|
343
|
+
return res.json(jsonRpcError(requestId, -32602, 'Invalid params: id is required'));
|
|
344
|
+
}
|
|
345
|
+
const record = a2aTasks.get(taskId);
|
|
346
|
+
if (!record) {
|
|
347
|
+
return res.json(jsonRpcError(requestId, -32602, `Task not found: ${taskId}`));
|
|
348
|
+
}
|
|
349
|
+
// Only cancel if still working
|
|
350
|
+
if (record.task.status.state === 'working' || record.task.status.state === 'submitted') {
|
|
351
|
+
record.task.status = {
|
|
352
|
+
state: 'canceled',
|
|
353
|
+
message: { role: 'agent', parts: [{ kind: 'text', text: 'Task canceled by caller.' }] },
|
|
354
|
+
};
|
|
355
|
+
console.error(`[a2a] Task ${taskId} canceled`);
|
|
356
|
+
}
|
|
357
|
+
return res.json(jsonRpcSuccess(requestId, record.task));
|
|
358
|
+
}
|
|
305
359
|
default:
|
|
306
360
|
return res.json(jsonRpcError(requestId, -32601, `Method not found: ${body.method}`));
|
|
307
361
|
}
|
|
@@ -310,7 +364,19 @@ export function registerA2ARoute(app, foddaRequest) {
|
|
|
310
364
|
if (!message?.parts?.length) {
|
|
311
365
|
return res.json(jsonRpcError(requestId, -32602, 'Invalid params: message.parts is required and must be non-empty'));
|
|
312
366
|
}
|
|
313
|
-
|
|
367
|
+
// Accept the three A2A part shapes seen in the wild: A2A v1.0 spec ({ kind:'text' }),
|
|
368
|
+
// the Google/older variant ({ type:'text' }), and bare ({ text }) — see Brief A2A Part Format Fix.
|
|
369
|
+
const textPart = message.parts.find(p => {
|
|
370
|
+
if (!p.text)
|
|
371
|
+
return false;
|
|
372
|
+
if (p.kind === 'text')
|
|
373
|
+
return true; // A2A v1.0 spec
|
|
374
|
+
if (p.type === 'text')
|
|
375
|
+
return true; // Google variant
|
|
376
|
+
if (!p.kind && !p.type)
|
|
377
|
+
return true; // bare { text: "..." }
|
|
378
|
+
return false;
|
|
379
|
+
});
|
|
314
380
|
if (!textPart?.text) {
|
|
315
381
|
return res.json(jsonRpcError(requestId, -32602, 'Invalid params: no text part found in message'));
|
|
316
382
|
}
|
|
@@ -346,6 +412,93 @@ export function registerA2ARoute(app, foddaRequest) {
|
|
|
346
412
|
const route = classifyIntent(queryText);
|
|
347
413
|
console.error(`[a2a] message/send: "${queryText.substring(0, 80)}" → ${route.tool}`);
|
|
348
414
|
const result = await executeQuery(route, apiKey, userId, foddaRequest);
|
|
415
|
+
// ── Async deep research path ──
|
|
416
|
+
if (result.asyncDeepResearch) {
|
|
417
|
+
const drParams = result.asyncDeepResearch;
|
|
418
|
+
const queryTypeCode = drParams.depth === 'heavy' ? 'deep_research_heavy' : 'deep_research_light';
|
|
419
|
+
// Log to Questions ledger (fire-and-forget, same as MCP)
|
|
420
|
+
foddaRequest('POST', '/v1/log/question', apiKey, userId, {
|
|
421
|
+
question: drParams.query,
|
|
422
|
+
graphId: 'all',
|
|
423
|
+
interactionType: 'deep_research',
|
|
424
|
+
source: 'a2a',
|
|
425
|
+
}).catch(() => { });
|
|
426
|
+
// Pre-authorize billing — refuse before spending compute
|
|
427
|
+
const billingResult = await chargeQuery({
|
|
428
|
+
queryTypeCode,
|
|
429
|
+
apiKey,
|
|
430
|
+
userId,
|
|
431
|
+
query: drParams.query,
|
|
432
|
+
foddaRequest,
|
|
433
|
+
});
|
|
434
|
+
if (!billingResult.charged) {
|
|
435
|
+
const errMsg = billingResult.error || 'Billing pre-authorization failed';
|
|
436
|
+
console.error(`[a2a] Deep research billing rejected: ${errMsg}`);
|
|
437
|
+
return res.json(jsonRpcError(requestId, -32001, `Billing failed: ${errMsg}`));
|
|
438
|
+
}
|
|
439
|
+
// Create task in working state
|
|
440
|
+
const taskId = `task-${crypto.randomUUID().slice(0, 8)}`;
|
|
441
|
+
const contextId = `ctx-${crypto.randomUUID().slice(0, 8)}`;
|
|
442
|
+
const task = {
|
|
443
|
+
id: taskId,
|
|
444
|
+
contextId,
|
|
445
|
+
status: {
|
|
446
|
+
state: 'working',
|
|
447
|
+
message: { role: 'agent', parts: [{ kind: 'text', text: 'Deep research in progress — poll tasks/get for the result.' }] },
|
|
448
|
+
},
|
|
449
|
+
};
|
|
450
|
+
a2aTasks.set(taskId, { task, createdAt: Date.now() });
|
|
451
|
+
// Run the real pipeline in the background
|
|
452
|
+
(async () => {
|
|
453
|
+
try {
|
|
454
|
+
const drResult = await runDeepResearch({
|
|
455
|
+
query: drParams.query,
|
|
456
|
+
apiKey,
|
|
457
|
+
userId,
|
|
458
|
+
depth: drParams.depth,
|
|
459
|
+
foddaRequest,
|
|
460
|
+
waverunnerRequest,
|
|
461
|
+
onProgress: (msg) => console.error(`[a2a][${taskId}] ${msg}`),
|
|
462
|
+
});
|
|
463
|
+
// Check if canceled during run
|
|
464
|
+
const current = a2aTasks.get(taskId);
|
|
465
|
+
if (current && current.task.status.state === 'canceled') {
|
|
466
|
+
console.error(`[a2a] Task ${taskId} was canceled during research — discarding result`);
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
// Mark completed with artifacts
|
|
470
|
+
if (current) {
|
|
471
|
+
current.task.status = { state: 'completed' };
|
|
472
|
+
current.task.artifacts = [
|
|
473
|
+
{
|
|
474
|
+
name: 'research_report',
|
|
475
|
+
description: `Deep research report: ${drParams.query.substring(0, 100)}`,
|
|
476
|
+
parts: [{ kind: 'text', text: drResult.report }],
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
name: 'source_plan',
|
|
480
|
+
description: 'Source routing plan — which graphs, earnings, and supplemental sources were selected and why',
|
|
481
|
+
parts: [{ kind: 'data', data: drResult.source_plan, mimeType: 'application/json' }],
|
|
482
|
+
},
|
|
483
|
+
];
|
|
484
|
+
}
|
|
485
|
+
console.error(`[a2a] Task ${taskId} completed (${drResult.duration_sec}s, ${drResult.graphs_searched.length} graphs)`);
|
|
486
|
+
}
|
|
487
|
+
catch (err) {
|
|
488
|
+
const errMsg = err.response?.data?.error?.message || err.response?.data?.message || err.message || 'Research failed';
|
|
489
|
+
const current = a2aTasks.get(taskId);
|
|
490
|
+
if (current && current.task.status.state !== 'canceled') {
|
|
491
|
+
current.task.status = {
|
|
492
|
+
state: 'failed',
|
|
493
|
+
message: { role: 'agent', parts: [{ kind: 'text', text: errMsg }] },
|
|
494
|
+
};
|
|
495
|
+
}
|
|
496
|
+
console.error(`[a2a] Task ${taskId} failed: ${errMsg}`);
|
|
497
|
+
}
|
|
498
|
+
})();
|
|
499
|
+
return res.json(jsonRpcSuccess(requestId, task));
|
|
500
|
+
}
|
|
501
|
+
// ── Synchronous path (trend-search, brand, earnings, consult) ──
|
|
349
502
|
const taskId = `task-${crypto.randomUUID().slice(0, 8)}`;
|
|
350
503
|
const contextId = `ctx-${crypto.randomUUID().slice(0, 8)}`;
|
|
351
504
|
// Build artifacts — always include markdown text, optionally raw JSON
|
package/dist/a2aHandler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2aHandler.js","sourceRoot":"","sources":["../src/a2aHandler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"a2aHandler.js","sourceRoot":"","sources":["../src/a2aHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentFacts — NANDA-format agent identity document.
|
|
3
|
+
*
|
|
4
|
+
* Third projection of the same canonical metadata behind the MCP discovery
|
|
5
|
+
* card (/.well-known/mcp-server.json) and the A2A Agent Card
|
|
6
|
+
* (/.well-known/agent-card.json). Identity, description, and skills derive
|
|
7
|
+
* from the A2A card; version from tools.ts; endpoints from the live service
|
|
8
|
+
* URL; error-rate telemetry from in-process stats. Nothing is hand-maintained
|
|
9
|
+
* here — edit the A2A card / sync-discovery canon and this follows.
|
|
10
|
+
*
|
|
11
|
+
* Schema: https://github.com/projnanda/agentfacts-format (JSON Schema draft-07)
|
|
12
|
+
* Required: id, agent_name, label, description, version, provider, endpoints,
|
|
13
|
+
* capabilities, skills.
|
|
14
|
+
*
|
|
15
|
+
* Consumed by NANDA Index / List39 resolution — a NANDA index record points
|
|
16
|
+
* here (or at the A2A card) as its next discovery hop.
|
|
17
|
+
*/
|
|
18
|
+
import type { Express } from 'express';
|
|
19
|
+
export declare function buildAgentFacts(serviceUrl: string): Record<string, unknown>;
|
|
20
|
+
export declare function registerAgentFactsRoute(app: Express, getServiceUrl: () => string): void;
|
|
21
|
+
//# sourceMappingURL=agentFacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentFacts.d.ts","sourceRoot":"","sources":["../src/agentFacts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAK1D,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6C3E;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,GAAG,IAAI,CAMvF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentFacts — NANDA-format agent identity document.
|
|
3
|
+
*
|
|
4
|
+
* Third projection of the same canonical metadata behind the MCP discovery
|
|
5
|
+
* card (/.well-known/mcp-server.json) and the A2A Agent Card
|
|
6
|
+
* (/.well-known/agent-card.json). Identity, description, and skills derive
|
|
7
|
+
* from the A2A card; version from tools.ts; endpoints from the live service
|
|
8
|
+
* URL; error-rate telemetry from in-process stats. Nothing is hand-maintained
|
|
9
|
+
* here — edit the A2A card / sync-discovery canon and this follows.
|
|
10
|
+
*
|
|
11
|
+
* Schema: https://github.com/projnanda/agentfacts-format (JSON Schema draft-07)
|
|
12
|
+
* Required: id, agent_name, label, description, version, provider, endpoints,
|
|
13
|
+
* capabilities, skills.
|
|
14
|
+
*
|
|
15
|
+
* Consumed by NANDA Index / List39 resolution — a NANDA index record points
|
|
16
|
+
* here (or at the A2A card) as its next discovery hop.
|
|
17
|
+
*/
|
|
18
|
+
import { MCP_SERVER_VERSION } from './tools.js';
|
|
19
|
+
import { AGENT_CARD } from './a2aHandler.js';
|
|
20
|
+
import { getTelemetryStats } from './telemetry.js';
|
|
21
|
+
export function buildAgentFacts(serviceUrl) {
|
|
22
|
+
const sptEnabled = process.env.ENABLE_SPT === 'true';
|
|
23
|
+
const stats = getTelemetryStats();
|
|
24
|
+
return {
|
|
25
|
+
id: 'ai.fodda/mcp-server',
|
|
26
|
+
agent_name: 'urn:agent:fodda:ResearchAgent',
|
|
27
|
+
label: AGENT_CARD.name,
|
|
28
|
+
description: AGENT_CARD.description,
|
|
29
|
+
version: MCP_SERVER_VERSION,
|
|
30
|
+
documentationUrl: AGENT_CARD.documentationUrl,
|
|
31
|
+
jurisdiction: 'US',
|
|
32
|
+
provider: {
|
|
33
|
+
name: AGENT_CARD.provider.organization,
|
|
34
|
+
url: AGENT_CARD.provider.url,
|
|
35
|
+
},
|
|
36
|
+
endpoints: {
|
|
37
|
+
static: [`${serviceUrl}/a2a`, `${serviceUrl}/mcp`],
|
|
38
|
+
},
|
|
39
|
+
capabilities: {
|
|
40
|
+
modalities: ['text'],
|
|
41
|
+
// MCP endpoint is streamable-HTTP/SSE; the A2A endpoint itself is
|
|
42
|
+
// request/response (see AGENT_CARD.capabilities.streaming).
|
|
43
|
+
streaming: true,
|
|
44
|
+
// Deep research & commissioned deliverables run as async jobs.
|
|
45
|
+
batch: true,
|
|
46
|
+
authentication: {
|
|
47
|
+
methods: ['oauth2', 'api_key', ...(sptEnabled ? ['stripe-spt'] : [])],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
skills: AGENT_CARD.skills.map(s => ({
|
|
51
|
+
id: s.id,
|
|
52
|
+
description: s.description,
|
|
53
|
+
inputModes: ['text'],
|
|
54
|
+
outputModes: ['text'],
|
|
55
|
+
supportedLanguages: ['en'],
|
|
56
|
+
})),
|
|
57
|
+
telemetry: {
|
|
58
|
+
enabled: true,
|
|
59
|
+
metrics: {
|
|
60
|
+
// Per-instance since last restart — same caveat as /telemetry.
|
|
61
|
+
error_rate: stats.globalErrorRate,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export function registerAgentFactsRoute(app, getServiceUrl) {
|
|
67
|
+
const serveAgentFacts = (_req, res) => res.json(buildAgentFacts(getServiceUrl()));
|
|
68
|
+
app.get('/.well-known/agent-facts.json', serveAgentFacts); // NANDA convention
|
|
69
|
+
app.get('/.well-known/agentfacts.json', serveAgentFacts); // alias
|
|
70
|
+
console.error('[agentfacts] AgentFacts served at /.well-known/agent-facts.json');
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=agentFacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentFacts.js","sourceRoot":"","sources":["../src/agentFacts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,UAAU,eAAe,CAAC,UAAkB;IAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC;IACrD,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;IAElC,OAAO;QACH,EAAE,EAAE,qBAAqB;QACzB,UAAU,EAAE,+BAA+B;QAC3C,KAAK,EAAE,UAAU,CAAC,IAAI;QACtB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,OAAO,EAAE,kBAAkB;QAC3B,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE;YACN,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY;YACtC,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG;SAC/B;QACD,SAAS,EAAE;YACP,MAAM,EAAE,CAAC,GAAG,UAAU,MAAM,EAAE,GAAG,UAAU,MAAM,CAAC;SACrD;QACD,YAAY,EAAE;YACV,UAAU,EAAE,CAAC,MAAM,CAAC;YACpB,kEAAkE;YAClE,4DAA4D;YAC5D,SAAS,EAAE,IAAI;YACf,+DAA+D;YAC/D,KAAK,EAAE,IAAI;YACX,cAAc,EAAE;gBACZ,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACxE;SACJ;QACD,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,UAAU,EAAE,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,CAAC,MAAM,CAAC;YACrB,kBAAkB,EAAE,CAAC,IAAI,CAAC;SAC7B,CAAC,CAAC;QACH,SAAS,EAAE;YACP,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACL,+DAA+D;gBAC/D,UAAU,EAAE,KAAK,CAAC,eAAe;aACpC;SACJ;KACJ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAY,EAAE,aAA2B;IAC7E,MAAM,eAAe,GAAG,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE,CACrD,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC/C,GAAG,CAAC,GAAG,CAAC,+BAA+B,EAAE,eAAe,CAAC,CAAC,CAAC,mBAAmB;IAC9E,GAAG,CAAC,GAAG,CAAC,8BAA8B,EAAE,eAAe,CAAC,CAAC,CAAE,QAAQ;IACnE,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;AACrF,CAAC"}
|
|
@@ -27,6 +27,12 @@ export interface GraphContext {
|
|
|
27
27
|
/** Pre-fetched earnings-call intelligence (stringified JSON), present when
|
|
28
28
|
* the source router flagged a public company / sector / earnings angle */
|
|
29
29
|
earningsResults?: string;
|
|
30
|
+
/** Pre-fetched supplemental/macro data (stringified JSON), present when
|
|
31
|
+
* the source router detected relevant supplemental categories (macro,
|
|
32
|
+
* demographics, trade, food_economics, commodities) */
|
|
33
|
+
supplementalResults?: string;
|
|
34
|
+
/** Sub-themes generated or passed for this research run */
|
|
35
|
+
subThemesUsed?: string[];
|
|
30
36
|
}
|
|
31
37
|
/**
|
|
32
38
|
* Build the complete system instruction for the Fodda Research Agent.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agents/fodda-researcher/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC;+EAC2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,YAAY,GACvB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agents/fodda-researcher/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC;+EAC2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;4DAEwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,YAAY,GACvB,MAAM,CAqFR"}
|
|
@@ -24,6 +24,7 @@ editorial-quality intelligence reports by combining curated knowledge graph data
|
|
|
24
24
|
with web research.
|
|
25
25
|
|
|
26
26
|
Your research query is: "${query}"
|
|
27
|
+
${context?.subThemesUsed && context.subThemesUsed.length > 0 ? `\nResearch sub-themes to address (you MUST address ALL of these):\n${context.subThemesUsed.map((s, i) => `${i + 1}. ${s}`).join('\n')}` : ''}
|
|
27
28
|
${context?.focusGraphId ? `\nFocus graph: ${context.focusGraphId}` : 'Search all accessible knowledge graphs.'}
|
|
28
29
|
|
|
29
30
|
Follow the skills below precisely. They encode Fodda's research methodology,
|
|
@@ -75,6 +76,23 @@ data…").
|
|
|
75
76
|
|
|
76
77
|
## Earnings Data
|
|
77
78
|
${context.earningsResults}`);
|
|
79
|
+
}
|
|
80
|
+
// ── Pre-fetched supplemental / macro data ──
|
|
81
|
+
if (context?.supplementalResults) {
|
|
82
|
+
sections.push('---');
|
|
83
|
+
sections.push(`# Pre-Loaded Supplemental / Macro Data
|
|
84
|
+
|
|
85
|
+
The following macro-economic, demographic, or institutional data was pre-fetched
|
|
86
|
+
because the source router detected supplemental categories relevant to the query.
|
|
87
|
+
Treat it as primary source material alongside graph and earnings data.
|
|
88
|
+
|
|
89
|
+
Attribution rule: cite by institutional source — e.g. "per FRED consumer
|
|
90
|
+
confidence data…", "per Census Bureau retail figures…", "per BLS employment
|
|
91
|
+
data…", "per OECD economic outlook…". Never attribute institutional data to a
|
|
92
|
+
knowledge graph or generic web search.
|
|
93
|
+
|
|
94
|
+
## Supplemental Data
|
|
95
|
+
${context.supplementalResults}`);
|
|
78
96
|
}
|
|
79
97
|
return sections.join('\n\n');
|
|
80
98
|
}
|