joonecli 0.2.0 → 0.2.1
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/dist/__tests__/config.test.js +1 -0
- package/dist/__tests__/config.test.js.map +1 -1
- package/dist/__tests__/installHostDeps.test.js +45 -0
- package/dist/__tests__/installHostDeps.test.js.map +1 -0
- package/dist/__tests__/whitelistedBackend.test.js +18 -0
- package/dist/__tests__/whitelistedBackend.test.js.map +1 -0
- package/dist/cli/config.d.ts +2 -0
- package/dist/cli/config.js +1 -0
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/index.js +84 -100
- package/dist/cli/index.js.map +1 -1
- package/dist/core/agentLoop.d.ts +10 -29
- package/dist/core/agentLoop.js +66 -237
- package/dist/core/agentLoop.js.map +1 -1
- package/dist/core/promptBuilder.js.map +1 -1
- package/dist/hitl/bridge.js +1 -27
- package/dist/hitl/bridge.js.map +1 -1
- package/dist/middleware/loopDetection.d.ts +7 -23
- package/dist/middleware/loopDetection.js +38 -42
- package/dist/middleware/loopDetection.js.map +1 -1
- package/dist/sandbox/whitelistedBackend.d.ts +5 -0
- package/dist/sandbox/whitelistedBackend.js +27 -0
- package/dist/sandbox/whitelistedBackend.js.map +1 -0
- package/dist/tools/askUser.d.ts +12 -3
- package/dist/tools/askUser.js +16 -28
- package/dist/tools/askUser.js.map +1 -1
- package/dist/tools/bashTool.d.ts +11 -0
- package/dist/tools/bashTool.js +51 -0
- package/dist/tools/bashTool.js.map +1 -0
- package/dist/tools/index.d.ts +15 -28
- package/dist/tools/index.js +9 -189
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/installHostDeps.d.ts +8 -2
- package/dist/tools/installHostDeps.js +38 -31
- package/dist/tools/installHostDeps.js.map +1 -1
- package/dist/ui/App.js +112 -56
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/components/MessageBubble.js +1 -1
- package/dist/ui/components/MessageBubble.js.map +1 -1
- package/package.json +7 -2
- package/dist/__tests__/m55.test.js +0 -160
- package/dist/__tests__/m55.test.js.map +0 -1
- package/dist/__tests__/middleware.test.js +0 -169
- package/dist/__tests__/middleware.test.js.map +0 -1
- package/dist/__tests__/optimizations.test.d.ts +0 -1
- package/dist/__tests__/optimizations.test.js +0 -136
- package/dist/__tests__/optimizations.test.js.map +0 -1
- package/dist/__tests__/security.test.d.ts +0 -1
- package/dist/__tests__/security.test.js +0 -86
- package/dist/__tests__/security.test.js.map +0 -1
- package/dist/__tests__/streaming.test.d.ts +0 -1
- package/dist/__tests__/streaming.test.js +0 -71
- package/dist/__tests__/streaming.test.js.map +0 -1
- package/dist/__tests__/toolRouter.test.d.ts +0 -1
- package/dist/__tests__/toolRouter.test.js +0 -37
- package/dist/__tests__/toolRouter.test.js.map +0 -1
- package/dist/__tests__/tools.test.d.ts +0 -1
- package/dist/__tests__/tools.test.js +0 -112
- package/dist/__tests__/tools.test.js.map +0 -1
- package/dist/core/subAgent.d.ts +0 -56
- package/dist/core/subAgent.js +0 -240
- package/dist/core/subAgent.js.map +0 -1
- package/dist/debug_google.d.ts +0 -1
- package/dist/debug_google.js +0 -23
- package/dist/debug_google.js.map +0 -1
- package/dist/middleware/commandSanitizer.d.ts +0 -18
- package/dist/middleware/commandSanitizer.js +0 -50
- package/dist/middleware/commandSanitizer.js.map +0 -1
- package/dist/middleware/permission.d.ts +0 -17
- package/dist/middleware/permission.js +0 -60
- package/dist/middleware/permission.js.map +0 -1
- package/dist/middleware/pipeline.d.ts +0 -31
- package/dist/middleware/pipeline.js +0 -62
- package/dist/middleware/pipeline.js.map +0 -1
- package/dist/middleware/preCompletion.d.ts +0 -29
- package/dist/middleware/preCompletion.js +0 -82
- package/dist/middleware/preCompletion.js.map +0 -1
- package/dist/middleware/types.d.ts +0 -40
- package/dist/middleware/types.js +0 -8
- package/dist/middleware/types.js.map +0 -1
- package/dist/skills/loader.d.ts +0 -55
- package/dist/skills/loader.js +0 -132
- package/dist/skills/loader.js.map +0 -1
- package/dist/skills/tools.d.ts +0 -5
- package/dist/skills/tools.js +0 -78
- package/dist/skills/tools.js.map +0 -1
- package/dist/test_cache.d.ts +0 -1
- package/dist/test_cache.js +0 -55
- package/dist/test_cache.js.map +0 -1
- package/dist/test_google.d.ts +0 -1
- package/dist/test_google.js +0 -36
- package/dist/test_google.js.map +0 -1
- package/dist/tools/browser.d.ts +0 -19
- package/dist/tools/browser.js +0 -114
- package/dist/tools/browser.js.map +0 -1
- package/dist/tools/registry.d.ts +0 -31
- package/dist/tools/registry.js +0 -168
- package/dist/tools/registry.js.map +0 -1
- package/dist/tools/router.d.ts +0 -34
- package/dist/tools/router.js +0 -76
- package/dist/tools/router.js.map +0 -1
- package/dist/tools/security.d.ts +0 -28
- package/dist/tools/security.js +0 -183
- package/dist/tools/security.js.map +0 -1
- package/dist/tools/spawnAgent.d.ts +0 -19
- package/dist/tools/spawnAgent.js +0 -132
- package/dist/tools/spawnAgent.js.map +0 -1
- package/dist/tools/webSearch.d.ts +0 -6
- package/dist/tools/webSearch.js +0 -120
- package/dist/tools/webSearch.js.map +0 -1
- /package/dist/__tests__/{m55.test.d.ts → installHostDeps.test.d.ts} +0 -0
- /package/dist/__tests__/{middleware.test.d.ts → whitelistedBackend.test.d.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/tools/security.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Spawn Agent Tools
|
|
3
|
-
*
|
|
4
|
-
* DynamicToolInterface implementations for spawning and checking sub-agents.
|
|
5
|
-
* These tools are registered with the main agent's tool set, allowing the
|
|
6
|
-
* LLM to delegate scoped tasks to isolated sub-agents.
|
|
7
|
-
*
|
|
8
|
-
* Safety: spawn_agent and check_agent are excluded from sub-agent tool sets
|
|
9
|
-
* to enforce the depth-1 nesting limit.
|
|
10
|
-
*/
|
|
11
|
-
import { DynamicToolInterface } from "./index.js";
|
|
12
|
-
import { SubAgentManager } from "../core/subAgent.js";
|
|
13
|
-
import { AgentRegistry } from "../agents/agentRegistry.js";
|
|
14
|
-
/**
|
|
15
|
-
* Creates the spawn_agent and check_agent tools bound to a SubAgentManager.
|
|
16
|
-
* The agent registry summary is injected into the spawn_agent description
|
|
17
|
-
* so the LLM knows which agents are available.
|
|
18
|
-
*/
|
|
19
|
-
export declare function createSpawnAgentTools(manager: SubAgentManager, registry: AgentRegistry): DynamicToolInterface[];
|
package/dist/tools/spawnAgent.js
DELETED
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Spawn Agent Tools
|
|
3
|
-
*
|
|
4
|
-
* DynamicToolInterface implementations for spawning and checking sub-agents.
|
|
5
|
-
* These tools are registered with the main agent's tool set, allowing the
|
|
6
|
-
* LLM to delegate scoped tasks to isolated sub-agents.
|
|
7
|
-
*
|
|
8
|
-
* Safety: spawn_agent and check_agent are excluded from sub-agent tool sets
|
|
9
|
-
* to enforce the depth-1 nesting limit.
|
|
10
|
-
*/
|
|
11
|
-
// ─── Factory ────────────────────────────────────────────────────────────────────
|
|
12
|
-
/**
|
|
13
|
-
* Creates the spawn_agent and check_agent tools bound to a SubAgentManager.
|
|
14
|
-
* The agent registry summary is injected into the spawn_agent description
|
|
15
|
-
* so the LLM knows which agents are available.
|
|
16
|
-
*/
|
|
17
|
-
export function createSpawnAgentTools(manager, registry) {
|
|
18
|
-
const agentNames = registry.getNames();
|
|
19
|
-
const agentList = agentNames.join(", ");
|
|
20
|
-
// ─── spawn_agent ───────────────────────────────────────────────────────────
|
|
21
|
-
const SpawnAgentTool = {
|
|
22
|
-
name: "spawn_agent",
|
|
23
|
-
description: `Spawn an isolated sub-agent to handle a scoped task. Available agents: ${agentList}. ` +
|
|
24
|
-
`The sub-agent runs independently with its own conversation and returns a structured result. ` +
|
|
25
|
-
`Use mode "async" for non-blocking execution — you can continue working and check results later with check_agent.`,
|
|
26
|
-
schema: {
|
|
27
|
-
type: "object",
|
|
28
|
-
properties: {
|
|
29
|
-
agent: {
|
|
30
|
-
type: "string",
|
|
31
|
-
description: `The agent name from the registry. Available: ${agentList}`,
|
|
32
|
-
enum: agentNames,
|
|
33
|
-
},
|
|
34
|
-
task: {
|
|
35
|
-
type: "string",
|
|
36
|
-
description: "Detailed description of the task for the sub-agent to complete",
|
|
37
|
-
},
|
|
38
|
-
mode: {
|
|
39
|
-
type: "string",
|
|
40
|
-
enum: ["sync", "async"],
|
|
41
|
-
description: "Execution mode: 'sync' (default, blocks until done) or 'async' (non-blocking, returns taskId)",
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
required: ["agent", "task"],
|
|
45
|
-
},
|
|
46
|
-
execute: async (args, emitter) => {
|
|
47
|
-
if (emitter)
|
|
48
|
-
emitter.emit("agent:event", { type: "subagent:spawn", agentName: args.agent, task: args.task });
|
|
49
|
-
const mode = args.mode ?? "sync";
|
|
50
|
-
if (mode === "async") {
|
|
51
|
-
try {
|
|
52
|
-
const taskId = await manager.spawnAsync(args.agent, args.task);
|
|
53
|
-
return {
|
|
54
|
-
content: `Async sub-agent "${args.agent}" started. Task ID: ${taskId}\n` +
|
|
55
|
-
`Use check_agent with this taskId to get the result when ready.`,
|
|
56
|
-
metadata: { taskId, agentName: args.agent, mode: "async" },
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
catch (err) {
|
|
60
|
-
return { content: `Spawn error: ${err.message}`, isError: true };
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
// Sync mode (default)
|
|
64
|
-
const result = await manager.spawn(args.agent, args.task);
|
|
65
|
-
return {
|
|
66
|
-
content: formatSubAgentResult(result),
|
|
67
|
-
metadata: {
|
|
68
|
-
agentName: result.agentName,
|
|
69
|
-
outcome: result.outcome,
|
|
70
|
-
toolCalls: result.toolCallCount,
|
|
71
|
-
turnsUsed: result.turnsUsed,
|
|
72
|
-
duration: result.duration,
|
|
73
|
-
},
|
|
74
|
-
isError: result.outcome === "failure",
|
|
75
|
-
};
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
// ─── check_agent ───────────────────────────────────────────────────────────
|
|
79
|
-
const CheckAgentTool = {
|
|
80
|
-
name: "check_agent",
|
|
81
|
-
description: "Check the status or retrieve the result of an async sub-agent task. " +
|
|
82
|
-
"If the task is still running, returns a status update. If completed, returns the result.",
|
|
83
|
-
schema: {
|
|
84
|
-
type: "object",
|
|
85
|
-
properties: {
|
|
86
|
-
taskId: {
|
|
87
|
-
type: "string",
|
|
88
|
-
description: "The task ID returned by spawn_agent in async mode",
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
required: ["taskId"],
|
|
92
|
-
},
|
|
93
|
-
execute: async (args) => {
|
|
94
|
-
const result = await manager.getResult(args.taskId);
|
|
95
|
-
if (typeof result === "string") {
|
|
96
|
-
// Still running or unknown
|
|
97
|
-
return { content: result };
|
|
98
|
-
}
|
|
99
|
-
// Completed — return formatted result
|
|
100
|
-
return {
|
|
101
|
-
content: formatSubAgentResult(result),
|
|
102
|
-
metadata: {
|
|
103
|
-
agentName: result.agentName,
|
|
104
|
-
outcome: result.outcome,
|
|
105
|
-
toolCalls: result.toolCallCount,
|
|
106
|
-
turnsUsed: result.turnsUsed,
|
|
107
|
-
duration: result.duration,
|
|
108
|
-
},
|
|
109
|
-
isError: result.outcome === "failure",
|
|
110
|
-
};
|
|
111
|
-
},
|
|
112
|
-
};
|
|
113
|
-
return [SpawnAgentTool, CheckAgentTool];
|
|
114
|
-
}
|
|
115
|
-
// ─── Formatter ──────────────────────────────────────────────────────────────────
|
|
116
|
-
/**
|
|
117
|
-
* Formats a SubAgentResult into a readable string for the main agent.
|
|
118
|
-
*/
|
|
119
|
-
function formatSubAgentResult(result) {
|
|
120
|
-
const lines = [
|
|
121
|
-
`--- Sub-Agent Result: ${result.agentName} ---`,
|
|
122
|
-
`Outcome: ${result.outcome}`,
|
|
123
|
-
`Turns: ${result.turnsUsed} | Tool Calls: ${result.toolCallCount} | Duration: ${Math.round(result.duration / 1000)}s`,
|
|
124
|
-
`Tokens: ~${result.tokenUsage.prompt} prompt + ~${result.tokenUsage.completion} completion`,
|
|
125
|
-
];
|
|
126
|
-
if (result.filesModified.length > 0) {
|
|
127
|
-
lines.push(`Files Modified: ${result.filesModified.join(", ")}`);
|
|
128
|
-
}
|
|
129
|
-
lines.push(`\nResult:\n${result.result}`);
|
|
130
|
-
return lines.join("\n");
|
|
131
|
-
}
|
|
132
|
-
//# sourceMappingURL=spawnAgent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spawnAgent.js","sourceRoot":"","sources":["../../src/tools/spawnAgent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,mFAAmF;AAEnF;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAwB,EACxB,QAAuB;IAEvB,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAExC,8EAA8E;IAE9E,MAAM,cAAc,GAAyB;QAC3C,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,0EAA0E,SAAS,IAAI;YACvF,8FAA8F;YAC9F,kHAAkH;QACpH,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gDAAgD,SAAS,EAAE;oBACxE,IAAI,EAAE,UAAU;iBACjB;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gEAAgE;iBAC9E;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;oBACvB,WAAW,EAAE,+FAA+F;iBAC7G;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;SAC5B;QACD,OAAO,EAAE,KAAK,EAAE,IAIf,EAAE,OAA2B,EAAuB,EAAE;YACrD,IAAI,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7G,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;YAEjC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC/D,OAAO;wBACL,OAAO,EAAE,oBAAoB,IAAI,CAAC,KAAK,uBAAuB,MAAM,IAAI;4BACtE,gEAAgE;wBAClE,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;qBAC3D,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBACnE,CAAC;YACH,CAAC;YAED,sBAAsB;YACtB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,OAAO;gBACL,OAAO,EAAE,oBAAoB,CAAC,MAAM,CAAC;gBACrC,QAAQ,EAAE;oBACR,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,SAAS,EAAE,MAAM,CAAC,aAAa;oBAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B;gBACD,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,SAAS;aACtC,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,8EAA8E;IAE9E,MAAM,cAAc,GAAyB;QAC3C,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,sEAAsE;YACtE,0FAA0F;QAC5F,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mDAAmD;iBACjE;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAAwB,EAAuB,EAAE;YAC/D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEpD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,2BAA2B;gBAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC7B,CAAC;YAED,sCAAsC;YACtC,OAAO;gBACL,OAAO,EAAE,oBAAoB,CAAC,MAAM,CAAC;gBACrC,QAAQ,EAAE;oBACR,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,SAAS,EAAE,MAAM,CAAC,aAAa;oBAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B;gBACD,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,SAAS;aACtC,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAC1C,CAAC;AAED,mFAAmF;AAEnF;;GAEG;AACH,SAAS,oBAAoB,CAAC,MAAsB;IAClD,MAAM,KAAK,GAAG;QACZ,yBAAyB,MAAM,CAAC,SAAS,MAAM;QAC/C,YAAY,MAAM,CAAC,OAAO,EAAE;QAC5B,UAAU,MAAM,CAAC,SAAS,kBAAkB,MAAM,CAAC,aAAa,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG;QACrH,YAAY,MAAM,CAAC,UAAU,CAAC,MAAM,cAAc,MAAM,CAAC,UAAU,CAAC,UAAU,aAAa;KAC5F,CAAC;IAEF,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAE1C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/tools/webSearch.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Web Search Tool — wraps the Valyu AI Search SDK.
|
|
3
|
-
*
|
|
4
|
-
* Provides AI-optimized web search and domain-specific search
|
|
5
|
-
* (papers, finance, patents, SEC filings, etc.). Runs on the Host
|
|
6
|
-
* (API call, not a shell command).
|
|
7
|
-
*
|
|
8
|
-
* Requires a Valyu API key in config (`valyuApiKey`).
|
|
9
|
-
*/
|
|
10
|
-
let _valyuApiKey;
|
|
11
|
-
/**
|
|
12
|
-
* Bind the Valyu API key at session start.
|
|
13
|
-
*/
|
|
14
|
-
export function bindValyuApiKey(key) {
|
|
15
|
-
_valyuApiKey = key;
|
|
16
|
-
}
|
|
17
|
-
export const WebSearchTool = {
|
|
18
|
-
name: "web_search",
|
|
19
|
-
description: "Search the web for information. Supports general web search and specialized sources: " +
|
|
20
|
-
"papers (arXiv/PubMed), finance, patents, SEC filings, companies. " +
|
|
21
|
-
"Returns AI-optimized structured results.",
|
|
22
|
-
schema: {
|
|
23
|
-
type: "object",
|
|
24
|
-
properties: {
|
|
25
|
-
query: {
|
|
26
|
-
type: "string",
|
|
27
|
-
description: "The search query",
|
|
28
|
-
},
|
|
29
|
-
source: {
|
|
30
|
-
type: "string",
|
|
31
|
-
enum: ["web", "papers", "finance", "patents", "sec", "companies"],
|
|
32
|
-
description: 'Search source (default: "web"). Use "papers" for academic, "finance" for financial data, etc.',
|
|
33
|
-
},
|
|
34
|
-
maxResults: {
|
|
35
|
-
type: "number",
|
|
36
|
-
description: "Maximum number of results to return (default: 5)",
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
|
-
required: ["query"],
|
|
40
|
-
},
|
|
41
|
-
execute: async (args) => {
|
|
42
|
-
if (!_valyuApiKey) {
|
|
43
|
-
return {
|
|
44
|
-
content: "Error: Valyu API key not configured.\n" +
|
|
45
|
-
'Run `joone config` and set your Valyu API key, or add "valyuApiKey" to ~/.joone/config.json.',
|
|
46
|
-
isError: true
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
const source = args.source ?? "web";
|
|
50
|
-
const maxResults = args.maxResults ?? 5;
|
|
51
|
-
try {
|
|
52
|
-
// Dynamic import to avoid requiring the dependency at startup
|
|
53
|
-
const { Valyu } = await import("@valyu/ai-sdk");
|
|
54
|
-
const valyu = new Valyu({ apiKey: _valyuApiKey });
|
|
55
|
-
let results;
|
|
56
|
-
switch (source) {
|
|
57
|
-
case "web":
|
|
58
|
-
results = await valyu.search({
|
|
59
|
-
query: args.query,
|
|
60
|
-
maxResults,
|
|
61
|
-
});
|
|
62
|
-
break;
|
|
63
|
-
case "papers":
|
|
64
|
-
results = await valyu.paperSearch({
|
|
65
|
-
query: args.query,
|
|
66
|
-
maxResults,
|
|
67
|
-
});
|
|
68
|
-
break;
|
|
69
|
-
case "finance":
|
|
70
|
-
results = await valyu.financeSearch({
|
|
71
|
-
query: args.query,
|
|
72
|
-
maxResults,
|
|
73
|
-
});
|
|
74
|
-
break;
|
|
75
|
-
case "patents":
|
|
76
|
-
results = await valyu.patentSearch({
|
|
77
|
-
query: args.query,
|
|
78
|
-
maxResults,
|
|
79
|
-
});
|
|
80
|
-
break;
|
|
81
|
-
case "sec":
|
|
82
|
-
results = await valyu.secSearch({
|
|
83
|
-
query: args.query,
|
|
84
|
-
maxResults,
|
|
85
|
-
});
|
|
86
|
-
break;
|
|
87
|
-
case "companies":
|
|
88
|
-
results = await valyu.companyResearch({
|
|
89
|
-
query: args.query,
|
|
90
|
-
maxResults,
|
|
91
|
-
});
|
|
92
|
-
break;
|
|
93
|
-
default:
|
|
94
|
-
return {
|
|
95
|
-
content: `Error: Unknown source "${source}". Use: web, papers, finance, patents, sec, companies.`,
|
|
96
|
-
isError: true
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
// Format results for the LLM
|
|
100
|
-
if (!results || !results.results || results.results.length === 0) {
|
|
101
|
-
return { content: `No results found for "${args.query}" in ${source} source.` };
|
|
102
|
-
}
|
|
103
|
-
const formatted = results.results
|
|
104
|
-
.map((r, i) => `${i + 1}. **${r.title || "Untitled"}**\n ${r.url || ""}\n ${r.snippet || r.content || ""}`)
|
|
105
|
-
.join("\n\n");
|
|
106
|
-
return { content: `Search results for "${args.query}" (${source}):\n\n${formatted}` };
|
|
107
|
-
}
|
|
108
|
-
catch (error) {
|
|
109
|
-
if (error.code === "ERR_MODULE_NOT_FOUND" || error.code === "MODULE_NOT_FOUND") {
|
|
110
|
-
return {
|
|
111
|
-
content: "Error: @valyu/ai-sdk is not installed.\n" +
|
|
112
|
-
"Run: npm install @valyu/ai-sdk",
|
|
113
|
-
isError: true
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
return { content: `Search error: ${error.message}`, isError: true };
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
};
|
|
120
|
-
//# sourceMappingURL=webSearch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webSearch.js","sourceRoot":"","sources":["../../src/tools/webSearch.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,IAAI,YAAgC,CAAC;AAErC;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAuB;IACrD,YAAY,GAAG,GAAG,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAyB;IACjD,IAAI,EAAE,YAAY;IAClB,WAAW,EACT,uFAAuF;QACvF,mEAAmE;QACnE,0CAA0C;IAC5C,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kBAAkB;aAChC;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC;gBACjE,WAAW,EACT,+FAA+F;aAClG;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kDAAkD;aAChE;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB;IACD,OAAO,EAAE,KAAK,EAAE,IAIf,EAAuB,EAAE;QACxB,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EACL,wCAAwC;oBACxC,8FAA8F;gBAChG,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,8DAA8D;YAC9D,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YAEhD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;YAElD,IAAI,OAAY,CAAC;YAEjB,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,KAAK;oBACR,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;wBAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,UAAU;qBACX,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,QAAQ;oBACX,OAAO,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC;wBAChC,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,UAAU;qBACX,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,SAAS;oBACZ,OAAO,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC;wBAClC,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,UAAU;qBACX,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,SAAS;oBACZ,OAAO,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC;wBACjC,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,UAAU;qBACX,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,KAAK;oBACR,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC;wBAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,UAAU;qBACX,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,WAAW;oBACd,OAAO,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC;wBACpC,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,UAAU;qBACX,CAAC,CAAC;oBACH,MAAM;gBACR;oBACE,OAAO;wBACL,OAAO,EAAE,0BAA0B,MAAM,wDAAwD;wBACjG,OAAO,EAAE,IAAI;qBACd,CAAC;YACN,CAAC;YAED,6BAA6B;YAC7B,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjE,OAAO,EAAE,OAAO,EAAE,yBAAyB,IAAI,CAAC,KAAK,QAAQ,MAAM,UAAU,EAAE,CAAC;YAClF,CAAC;YAED,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO;iBAC9B,GAAG,CACF,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CACpB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,UAAU,UAAU,CAAC,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,CAClG;iBACA,IAAI,CAAC,MAAM,CAAC,CAAC;YAEhB,OAAO,EAAE,OAAO,EAAE,uBAAuB,IAAI,CAAC,KAAK,MAAM,MAAM,SAAS,SAAS,EAAE,EAAE,CAAC;QACxF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAC/E,OAAO;oBACL,OAAO,EACL,0CAA0C;wBAC1C,gCAAgC;oBAClC,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,iBAAiB,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
File without changes
|
|
File without changes
|