fodda-mcp 1.32.1 → 1.46.31
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 +14 -16
- 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 +1 -1
- package/dist/brandTemplate.d.ts.map +1 -1
- package/dist/brandTemplate.js +179 -11
- package/dist/brandTemplate.js.map +1 -1
- package/dist/catalogCache.d.ts +14 -13
- package/dist/catalogCache.d.ts.map +1 -1
- package/dist/catalogCache.js +266 -67
- package/dist/catalogCache.js.map +1 -1
- package/dist/coverageRelevance.d.ts +156 -0
- package/dist/coverageRelevance.d.ts.map +1 -0
- package/dist/coverageRelevance.js +1062 -0
- package/dist/coverageRelevance.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/enrichment.d.ts.map +1 -1
- package/dist/enrichment.js +51 -1
- package/dist/enrichment.js.map +1 -1
- package/dist/errorHandling.d.ts +1 -1
- package/dist/errorHandling.d.ts.map +1 -1
- package/dist/errorHandling.js +26 -6
- 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 +548 -38
- package/dist/index.js.map +1 -1
- 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/oauthRegisterShim.d.ts +13 -0
- package/dist/oauthRegisterShim.d.ts.map +1 -0
- package/dist/oauthRegisterShim.js +83 -0
- package/dist/oauthRegisterShim.js.map +1 -0
- package/dist/pricingCache.d.ts +6 -8
- package/dist/pricingCache.d.ts.map +1 -1
- package/dist/pricingCache.js +69 -13
- 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/sessionTracker.d.ts +24 -2
- package/dist/sessionTracker.d.ts.map +1 -1
- package/dist/sessionTracker.js +198 -4
- 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 +81 -61
- 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_book_a_call_live.d.ts +2 -0
- package/dist/test_book_a_call_live.d.ts.map +1 -0
- package/dist/test_book_a_call_live.js +148 -0
- package/dist/test_book_a_call_live.js.map +1 -0
- 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_relevance.d.ts +12 -0
- package/dist/test_coverage_relevance.d.ts.map +1 -0
- package/dist/test_coverage_relevance.js +121 -0
- package/dist/test_coverage_relevance.js.map +1 -0
- package/dist/test_dcr_and_legacy_deprecation.d.ts +2 -0
- package/dist/test_dcr_and_legacy_deprecation.d.ts.map +1 -0
- package/dist/test_dcr_and_legacy_deprecation.js +148 -0
- package/dist/test_dcr_and_legacy_deprecation.js.map +1 -0
- package/dist/test_financial_snapshot_render.d.ts +2 -0
- package/dist/test_financial_snapshot_render.d.ts.map +1 -0
- package/dist/test_financial_snapshot_render.js +167 -0
- package/dist/test_financial_snapshot_render.js.map +1 -0
- package/dist/test_gap_alert.d.ts +12 -0
- package/dist/test_gap_alert.d.ts.map +1 -0
- package/dist/test_gap_alert.js +43 -0
- package/dist/test_gap_alert.js.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_next_moves.d.ts +2 -0
- package/dist/test_next_moves.d.ts.map +1 -0
- package/dist/test_next_moves.js +349 -0
- package/dist/test_next_moves.js.map +1 -0
- package/dist/test_next_moves_transcripts.d.ts +2 -0
- package/dist/test_next_moves_transcripts.d.ts.map +1 -0
- package/dist/test_next_moves_transcripts.js +413 -0
- package/dist/test_next_moves_transcripts.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_session_next_moves_telemetry.d.ts +2 -0
- package/dist/test_session_next_moves_telemetry.d.ts.map +1 -0
- package/dist/test_session_next_moves_telemetry.js +100 -0
- package/dist/test_session_next_moves_telemetry.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 +1678 -364
- package/dist/toolHandlers.js.map +1 -1
- package/dist/tools.d.ts +7 -2
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +12 -3
- 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_tools_endpoint.js +4 -3
- package/dist/verify_tools_endpoint.js.map +1 -1
- package/package.json +5 -2
- package/server.json +16 -3
- package/dist/scripts/simulate_gemini.d.ts +0 -2
- package/dist/scripts/simulate_gemini.d.ts.map +0 -1
- package/dist/scripts/simulate_gemini.js +0 -100
- package/dist/scripts/simulate_gemini.js.map +0 -1
- package/dist/scripts/verify_registry.d.ts +0 -2
- package/dist/scripts/verify_registry.d.ts.map +0 -1
- package/dist/scripts/verify_registry.js +0 -77
- package/dist/scripts/verify_registry.js.map +0 -1
- package/dist/src/index.d.ts +0 -2
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -332
- package/dist/src/index.js.map +0 -1
- package/dist/src/tools.d.ts +0 -12
- package/dist/src/tools.d.ts.map +0 -1
- package/dist/src/tools.js +0 -104
- package/dist/src/tools.js.map +0 -1
- package/dist/src/types.d.ts +0 -44
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -2
- package/dist/src/types.js.map +0 -1
- package/dist/src/verify.d.ts +0 -2
- package/dist/src/verify.d.ts.map +0 -1
- package/dist/src/verify.js +0 -47
- package/dist/src/verify.js.map +0 -1
- package/dist/src/verify_hmac.d.ts +0 -2
- package/dist/src/verify_hmac.d.ts.map +0 -1
- package/dist/src/verify_hmac.js +0 -106
- package/dist/src/verify_hmac.js.map +0 -1
- package/dist/src/verify_tools_endpoint.d.ts +0 -2
- package/dist/src/verify_tools_endpoint.d.ts.map +0 -1
- package/dist/src/verify_tools_endpoint.js +0 -40
- package/dist/src/verify_tools_endpoint.js.map +0 -1
- package/dist/test-waverunner-response.d.ts +0 -2
- package/dist/test-waverunner-response.d.ts.map +0 -1
- package/dist/test-waverunner-response.js +0 -20
- package/dist/test-waverunner-response.js.map +0 -1
package/dist/src/verify_hmac.js
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
|
-
import crypto from 'crypto';
|
|
3
|
-
import { spawn } from 'child_process';
|
|
4
|
-
import dotenv from 'dotenv';
|
|
5
|
-
import path from 'path';
|
|
6
|
-
// Load env vars
|
|
7
|
-
dotenv.config({ path: path.resolve(process.cwd(), '.env') });
|
|
8
|
-
const SECRET = process.env.FODDA_MCP_SECRET || 'dev-secret-key';
|
|
9
|
-
const PORT = 3001; // Use a different port for testing
|
|
10
|
-
async function runTest() {
|
|
11
|
-
console.log('Starting HMAC verification test...');
|
|
12
|
-
// Start server
|
|
13
|
-
const mcp = spawn('node', ['dist/src/index.js'], {
|
|
14
|
-
env: { ...process.env, PORT: String(PORT), FODDA_MCP_SECRET: SECRET }
|
|
15
|
-
});
|
|
16
|
-
mcp.stdout.on('data', (data) => console.log(`[Server]: ${data}`));
|
|
17
|
-
mcp.stderr.on('data', (data) => console.error(`[Server Error]: ${data}`));
|
|
18
|
-
// Wait for server
|
|
19
|
-
await new Promise(resolve => setTimeout(resolve, 3000));
|
|
20
|
-
try {
|
|
21
|
-
const baseURL = `http://localhost:${PORT}`;
|
|
22
|
-
// Hex 1: Public Endpoint (Should pass without signature)
|
|
23
|
-
console.log('\n--- Test 1: Public Endpoint (No Signature) ---');
|
|
24
|
-
try {
|
|
25
|
-
const res1 = await axios.get(`${baseURL}/mcp/tools`);
|
|
26
|
-
console.log('✅ Passed: Public endpoint accessible (Status:', res1.status, ')');
|
|
27
|
-
}
|
|
28
|
-
catch (e) {
|
|
29
|
-
console.error('❌ Failed: Public endpoint blocked (', e.message, ')');
|
|
30
|
-
process.exit(1);
|
|
31
|
-
}
|
|
32
|
-
// Test 2: Protected Endpoint (No Signature) - Should Fail 401
|
|
33
|
-
console.log('\n--- Test 2: Protected Endpoint (No Signature) ---');
|
|
34
|
-
try {
|
|
35
|
-
await axios.post(`${baseURL}/messages`, { jsonrpc: '2.0', method: 'ping' });
|
|
36
|
-
console.error('❌ Failed: Protected endpoint allowed without signature');
|
|
37
|
-
process.exit(1);
|
|
38
|
-
}
|
|
39
|
-
catch (e) {
|
|
40
|
-
if (e.response && e.response.status === 401) {
|
|
41
|
-
console.log('✅ Passed: Request blocked (401)');
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
console.error('❌ Failed: Unexpected status', e.response?.status);
|
|
45
|
-
process.exit(1);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
// Test 3: Protected Endpoint (Invalid Signature) - Should Fail 401
|
|
49
|
-
console.log('\n--- Test 3: Protected Endpoint (Invalid Signature) ---');
|
|
50
|
-
try {
|
|
51
|
-
await axios.post(`${baseURL}/messages`, { jsonrpc: '2.0', method: 'ping' }, {
|
|
52
|
-
headers: { 'X-Fodda-Signature': 'invalid' }
|
|
53
|
-
});
|
|
54
|
-
console.error('❌ Failed: Protected endpoint allowed with invalid signature');
|
|
55
|
-
process.exit(1);
|
|
56
|
-
}
|
|
57
|
-
catch (e) {
|
|
58
|
-
if (e.response && e.response.status === 401) {
|
|
59
|
-
console.log('✅ Passed: Request blocked (401)');
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
console.error('❌ Failed: Unexpected status', e.response?.status);
|
|
63
|
-
process.exit(1);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
// Test 4: Protected Endpoint (Valid Signature) - Should Pass (200 or other logic error, but not 401)
|
|
67
|
-
console.log('\n--- Test 4: Protected Endpoint (Valid Signature) ---');
|
|
68
|
-
const body = { jsonrpc: '2.0', method: 'ping', id: 1 }; // Simple body
|
|
69
|
-
const payload = JSON.stringify(body);
|
|
70
|
-
const signature = crypto.createHmac('sha256', SECRET).update(payload).digest('hex');
|
|
71
|
-
try {
|
|
72
|
-
// Note: /messages expects specific MCP protocol, so it might 400 or fail logic,
|
|
73
|
-
// but we are testing Middleware auth here.
|
|
74
|
-
// If we get passed the middleware, we might get "SSE connection not established" (400)
|
|
75
|
-
// because /messages requires an SSE session cookie or query param usually?
|
|
76
|
-
// Actually in index.ts:
|
|
77
|
-
// app.post("/messages", async (req, res) => { if (transport) ... else 400 "SSE connection not established" })
|
|
78
|
-
// So if we get 400 "SSE connection not established", it means we PASSED auth!
|
|
79
|
-
await axios.post(`${baseURL}/messages`, body, {
|
|
80
|
-
headers: { 'X-Fodda-Signature': signature }
|
|
81
|
-
});
|
|
82
|
-
console.log('✅ Passed: Request allowed (200)');
|
|
83
|
-
}
|
|
84
|
-
catch (e) {
|
|
85
|
-
if (e.response && e.response.data === "SSE connection not established") {
|
|
86
|
-
console.log('✅ Passed: Request passed auth (reached logic handler)');
|
|
87
|
-
}
|
|
88
|
-
else if (e.response && e.response.status === 200) {
|
|
89
|
-
console.log('✅ Passed: Request allowed (200)');
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
console.error('❌ Failed: Unexpected error', e.response?.status, e.response?.data);
|
|
93
|
-
process.exit(1);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
catch (e) {
|
|
98
|
-
console.error('❌ Test Suite Error:', e.message);
|
|
99
|
-
process.exit(1);
|
|
100
|
-
}
|
|
101
|
-
finally {
|
|
102
|
-
mcp.kill();
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
runTest();
|
|
106
|
-
//# sourceMappingURL=verify_hmac.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"verify_hmac.js","sourceRoot":"","sources":["../../src/verify_hmac.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"verify_tools_endpoint.d.ts","sourceRoot":"","sources":["../../src/verify_tools_endpoint.ts"],"names":[],"mappings":""}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { spawn } from 'child_process';
|
|
2
|
-
import axios from 'axios';
|
|
3
|
-
import { MCP_SERVER_VERSION } from './tools.js';
|
|
4
|
-
async function runTest() {
|
|
5
|
-
console.log('Starting Fodda MCP server verification for /mcp/tools endpoint...');
|
|
6
|
-
const mcp = spawn('node', ['dist/index.js'], {
|
|
7
|
-
env: { ...process.env, PORT: '3000' }
|
|
8
|
-
});
|
|
9
|
-
mcp.stdout.on('data', (data) => console.log(`[Server]: ${data}`));
|
|
10
|
-
mcp.stderr.on('data', (data) => console.error(`[Server Error]: ${data}`));
|
|
11
|
-
let serverReady = false;
|
|
12
|
-
// Allow server time to start
|
|
13
|
-
await new Promise(resolve => setTimeout(resolve, 3000));
|
|
14
|
-
try {
|
|
15
|
-
const response = await axios.get('http://localhost:3000/mcp/tools');
|
|
16
|
-
console.log('✅ Response Code:', response.status);
|
|
17
|
-
console.log('✅ Tools Count:', response.data.count);
|
|
18
|
-
console.log('✅ Server Version:', response.data.version);
|
|
19
|
-
if (response.data.version !== MCP_SERVER_VERSION) {
|
|
20
|
-
console.error(`❌ Version Mismatch: Expected ${MCP_SERVER_VERSION}, got ${response.data.version}`);
|
|
21
|
-
process.exit(1);
|
|
22
|
-
}
|
|
23
|
-
if (response.data.count !== 6) {
|
|
24
|
-
console.error('❌ Expected 6 tools, got ' + response.data.count);
|
|
25
|
-
process.exit(1);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
console.error('❌ Request failed:', error.message);
|
|
30
|
-
process.exit(1);
|
|
31
|
-
}
|
|
32
|
-
finally {
|
|
33
|
-
mcp.kill();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
runTest().catch(err => {
|
|
37
|
-
console.error('Test failed:', err);
|
|
38
|
-
process.exit(1);
|
|
39
|
-
});
|
|
40
|
-
//# sourceMappingURL=verify_tools_endpoint.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"verify_tools_endpoint.js","sourceRoot":"","sources":["../../src/verify_tools_endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,KAAK,UAAU,OAAO;IAClB,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;IACjF,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE;QACzC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;KACxC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;IAClE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,CAAC;IAE1E,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,6BAA6B;IAC7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAExD,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAExD,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;YAC/C,OAAO,CAAC,KAAK,CAAC,gCAAgC,kBAAkB,SAAS,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,0BAA0B,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;YAAS,CAAC;QACP,GAAG,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;AACL,CAAC;AAED,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IAClB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-waverunner-response.d.ts","sourceRoot":"","sources":["../src/test-waverunner-response.ts"],"names":[],"mappings":""}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { GoogleGenAI } from '@google/genai';
|
|
2
|
-
import * as dotenv from 'dotenv';
|
|
3
|
-
dotenv.config();
|
|
4
|
-
async function main() {
|
|
5
|
-
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
|
|
6
|
-
console.log("Calling interactions.create...");
|
|
7
|
-
const result = await ai.interactions.create({
|
|
8
|
-
agent: 'deep-research-preview-04-2026',
|
|
9
|
-
input: [
|
|
10
|
-
{ type: 'text', text: 'Search the web for the current CEO of Microsoft and give me the source URL.' }
|
|
11
|
-
],
|
|
12
|
-
tools: [
|
|
13
|
-
{ type: 'google_search' }
|
|
14
|
-
]
|
|
15
|
-
});
|
|
16
|
-
console.log("RESPONSE KEYS:", Object.keys(result));
|
|
17
|
-
console.log("FULL RESPONSE:", JSON.stringify(result, null, 2));
|
|
18
|
-
}
|
|
19
|
-
main().catch(console.error);
|
|
20
|
-
//# sourceMappingURL=test-waverunner-response.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-waverunner-response.js","sourceRoot":"","sources":["../src/test-waverunner-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,KAAK,UAAU,IAAI;IACf,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IAEnE,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;QACxC,KAAK,EAAE,+BAA+B;QACtC,KAAK,EAAE;YACH,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6EAA6E,EAAE;SACxG;QACD,KAAK,EAAE;YACH,EAAE,IAAI,EAAE,eAAe,EAAE;SAC5B;KACJ,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|