@prestyj/cli 4.2.76 → 4.3.15
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/cli.js +55 -71
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +10 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +33 -0
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.js +3 -3
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +4 -1
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/compaction/compactor.d.ts +14 -1
- package/dist/core/compaction/compactor.d.ts.map +1 -1
- package/dist/core/compaction/compactor.js +35 -7
- package/dist/core/compaction/compactor.js.map +1 -1
- package/dist/core/compaction/token-estimator.d.ts.map +1 -1
- package/dist/core/compaction/token-estimator.js +4 -0
- package/dist/core/compaction/token-estimator.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/mcp/client.d.ts.map +1 -1
- package/dist/core/mcp/client.js +15 -2
- package/dist/core/mcp/client.js.map +1 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +63 -7
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/oauth/types.d.ts +1 -0
- package/dist/core/oauth/types.d.ts.map +1 -1
- package/dist/core/settings-manager.d.ts +4 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +11 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/interactive.js +1 -1
- package/dist/interactive.js.map +1 -1
- package/dist/system-prompt.d.ts.map +1 -1
- package/dist/system-prompt.js +8 -58
- package/dist/system-prompt.js.map +1 -1
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +8 -1
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/overflow.js +1 -1
- package/dist/tools/overflow.js.map +1 -1
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/read.js +14 -1
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/web-search.d.ts +9 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +241 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/tools/write.js +2 -2
- package/dist/tools/write.js.map +1 -1
- package/dist/tools/write.test.js +7 -9
- package/dist/tools/write.test.js.map +1 -1
- package/dist/ui/App.d.ts +4 -0
- package/dist/ui/App.d.ts.map +1 -1
- package/dist/ui/App.js +223 -114
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/activity-phrases.d.ts.map +1 -1
- package/dist/ui/activity-phrases.js +74 -129
- package/dist/ui/activity-phrases.js.map +1 -1
- package/dist/ui/components/ActivityIndicator.d.ts +3 -1
- package/dist/ui/components/ActivityIndicator.d.ts.map +1 -1
- package/dist/ui/components/ActivityIndicator.js +5 -1
- package/dist/ui/components/ActivityIndicator.js.map +1 -1
- package/dist/ui/components/AssistantMessage.d.ts +1 -0
- package/dist/ui/components/AssistantMessage.d.ts.map +1 -1
- package/dist/ui/components/AssistantMessage.js +2 -2
- package/dist/ui/components/AssistantMessage.js.map +1 -1
- package/dist/ui/components/DiffFrame.d.ts +10 -0
- package/dist/ui/components/DiffFrame.d.ts.map +1 -0
- package/dist/ui/components/DiffFrame.js +13 -0
- package/dist/ui/components/DiffFrame.js.map +1 -0
- package/dist/ui/components/Footer.d.ts +2 -3
- package/dist/ui/components/Footer.d.ts.map +1 -1
- package/dist/ui/components/Footer.js +5 -4
- package/dist/ui/components/Footer.js.map +1 -1
- package/dist/ui/components/InputArea.d.ts.map +1 -1
- package/dist/ui/components/InputArea.js +297 -8
- package/dist/ui/components/InputArea.js.map +1 -1
- package/dist/ui/components/Markdown.d.ts +1 -1
- package/dist/ui/components/Markdown.d.ts.map +1 -1
- package/dist/ui/components/Markdown.js +25 -213
- package/dist/ui/components/Markdown.js.map +1 -1
- package/dist/ui/components/ModelSelector.d.ts.map +1 -1
- package/dist/ui/components/ModelSelector.js +9 -2
- package/dist/ui/components/ModelSelector.js.map +1 -1
- package/dist/ui/components/Ratchet.d.ts.map +1 -1
- package/dist/ui/components/Ratchet.js +10 -3
- package/dist/ui/components/Ratchet.js.map +1 -1
- package/dist/ui/components/StreamingArea.d.ts.map +1 -1
- package/dist/ui/components/StreamingArea.js +2 -2
- package/dist/ui/components/StreamingArea.js.map +1 -1
- package/dist/ui/components/SubAgentPanel.d.ts.map +1 -1
- package/dist/ui/components/SubAgentPanel.js +5 -1
- package/dist/ui/components/SubAgentPanel.js.map +1 -1
- package/dist/ui/components/ThemeSelector.d.ts +9 -0
- package/dist/ui/components/ThemeSelector.d.ts.map +1 -0
- package/dist/ui/components/ThemeSelector.js +25 -0
- package/dist/ui/components/ThemeSelector.js.map +1 -0
- package/dist/ui/components/ToolExecution.d.ts +2 -0
- package/dist/ui/components/ToolExecution.d.ts.map +1 -1
- package/dist/ui/components/ToolExecution.js +95 -30
- package/dist/ui/components/ToolExecution.js.map +1 -1
- package/dist/ui/components/ToolGroupExecution.d.ts +3 -2
- package/dist/ui/components/ToolGroupExecution.d.ts.map +1 -1
- package/dist/ui/components/ToolGroupExecution.js +68 -51
- package/dist/ui/components/ToolGroupExecution.js.map +1 -1
- package/dist/ui/hooks/useAgentLoop.d.ts +10 -3
- package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
- package/dist/ui/hooks/useAgentLoop.js +112 -16
- package/dist/ui/hooks/useAgentLoop.js.map +1 -1
- package/dist/ui/hooks/useDoublePress.d.ts +8 -0
- package/dist/ui/hooks/useDoublePress.d.ts.map +1 -0
- package/dist/ui/hooks/useDoublePress.js +44 -0
- package/dist/ui/hooks/useDoublePress.js.map +1 -0
- package/dist/ui/hooks/useTerminalProgress.d.ts +1 -1
- package/dist/ui/hooks/useTerminalProgress.d.ts.map +1 -1
- package/dist/ui/hooks/useTerminalProgress.js +18 -15
- package/dist/ui/hooks/useTerminalProgress.js.map +1 -1
- package/dist/ui/hooks/useTerminalTitle.d.ts +3 -6
- package/dist/ui/hooks/useTerminalTitle.d.ts.map +1 -1
- package/dist/ui/hooks/useTerminalTitle.js +10 -19
- package/dist/ui/hooks/useTerminalTitle.js.map +1 -1
- package/dist/ui/live-item-flush.d.ts +4 -0
- package/dist/ui/live-item-flush.d.ts.map +1 -1
- package/dist/ui/live-item-flush.js +36 -0
- package/dist/ui/live-item-flush.js.map +1 -1
- package/dist/ui/login.d.ts.map +1 -1
- package/dist/ui/login.js +2 -0
- package/dist/ui/login.js.map +1 -1
- package/dist/ui/render.d.ts +3 -1
- package/dist/ui/render.d.ts.map +1 -1
- package/dist/ui/render.js +9 -3
- package/dist/ui/render.js.map +1 -1
- package/dist/ui/theme/dark-ansi.json +48 -0
- package/dist/ui/theme/dark-daltonized.json +48 -0
- package/dist/ui/theme/dark.json +22 -1
- package/dist/ui/theme/detect-theme.d.ts +12 -8
- package/dist/ui/theme/detect-theme.d.ts.map +1 -1
- package/dist/ui/theme/detect-theme.js +58 -39
- package/dist/ui/theme/detect-theme.js.map +1 -1
- package/dist/ui/theme/light-ansi.json +48 -0
- package/dist/ui/theme/light-daltonized.json +48 -0
- package/dist/ui/theme/light.json +44 -23
- package/dist/ui/theme/theme.d.ts +27 -1
- package/dist/ui/theme/theme.d.ts.map +1 -1
- package/dist/ui/theme/theme.js +24 -1
- package/dist/ui/theme/theme.js.map +1 -1
- package/dist/ui/utils/highlight.d.ts +1 -1
- package/dist/ui/utils/highlight.d.ts.map +1 -1
- package/dist/ui/utils/highlight.js +24 -4
- package/dist/ui/utils/highlight.js.map +1 -1
- package/dist/ui/utils/hyperlink.d.ts +11 -0
- package/dist/ui/utils/hyperlink.d.ts.map +1 -0
- package/dist/ui/utils/hyperlink.js +27 -0
- package/dist/ui/utils/hyperlink.js.map +1 -0
- package/dist/ui/utils/markdown-cache.d.ts +5 -6
- package/dist/ui/utils/markdown-cache.d.ts.map +1 -1
- package/dist/ui/utils/markdown-cache.js +5 -5
- package/dist/ui/utils/markdown-cache.js.map +1 -1
- package/dist/ui/utils/signal.d.ts +21 -0
- package/dist/ui/utils/signal.d.ts.map +1 -0
- package/dist/ui/utils/signal.js +30 -0
- package/dist/ui/utils/signal.js.map +1 -0
- package/dist/ui/utils/supports-hyperlinks.d.ts +6 -0
- package/dist/ui/utils/supports-hyperlinks.d.ts.map +1 -0
- package/dist/ui/utils/supports-hyperlinks.js +52 -0
- package/dist/ui/utils/supports-hyperlinks.js.map +1 -0
- package/dist/ui/utils/token-to-ansi.d.ts +9 -0
- package/dist/ui/utils/token-to-ansi.d.ts.map +1 -0
- package/dist/ui/utils/token-to-ansi.js +305 -0
- package/dist/ui/utils/token-to-ansi.js.map +1 -0
- package/dist/utils/session-title.d.ts +19 -0
- package/dist/utils/session-title.d.ts.map +1 -0
- package/dist/utils/session-title.js +82 -0
- package/dist/utils/session-title.js.map +1 -0
- package/package.json +3 -3
package/dist/interactive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIrE;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,KAAK,EAAE,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIrE;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,KAAK,EAAE,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,CAgIyV"}
|
package/dist/system-prompt.js
CHANGED
|
@@ -29,7 +29,8 @@ export async function buildSystemPrompt(cwd, skills, planMode, approvedPlanPath)
|
|
|
29
29
|
`- Check command output for errors — don't assume a clean compile means success.\n` +
|
|
30
30
|
`- If the project needs to be rebuilt for changes to take effect, rebuild it.\n` +
|
|
31
31
|
`- If a dev server is running and needs restarting, ask the user before killing processes.\n` +
|
|
32
|
-
`- Re-read complex edits to catch mistakes before reporting done.\n
|
|
32
|
+
`- Re-read complex edits to catch mistakes before reporting done.\n` +
|
|
33
|
+
`- **Just do it** — if the next logical step is running a command, building, migrating, or seeding data, do it yourself. Don't tell the user to run it and don't ask permission for routine follow-up actions.\n\n` +
|
|
33
34
|
`### Safety\n` +
|
|
34
35
|
`- **Ask before destructive actions**: deleting files/directories, force-pushing, dropping data, killing processes, or overwriting uncommitted work.\n` +
|
|
35
36
|
`- Don't use \`--force\`, \`--hard\`, or \`rm -rf\` without user confirmation.\n` +
|
|
@@ -40,7 +41,7 @@ export async function buildSystemPrompt(cwd, skills, planMode, approvedPlanPath)
|
|
|
40
41
|
`You are in PLAN MODE. Research and design an implementation plan before writing any code.\n\n` +
|
|
41
42
|
`### Workflow\n` +
|
|
42
43
|
`1. Explore: Use read, grep, find, ls to understand the codebase\n` +
|
|
43
|
-
`2. Research: Use web_fetch for documentation and
|
|
44
|
+
`2. Research: Use web_fetch for documentation and mcp__grep__searchGitHub to verify patterns against real codebases\n` +
|
|
44
45
|
`3. Draft: Write a structured plan to .ezcoder/plans/<name>.md\n` +
|
|
45
46
|
`4. Submit: Call exit_plan with the plan path for user review\n\n` +
|
|
46
47
|
`### Rules\n` +
|
|
@@ -94,7 +95,8 @@ export async function buildSystemPrompt(cwd, skills, planMode, approvedPlanPath)
|
|
|
94
95
|
`- No dead code, no commented-out code — delete what's unused.\n` +
|
|
95
96
|
`- Handle errors at appropriate boundaries (I/O, user input, external APIs).\n` +
|
|
96
97
|
`- Prefer existing dependencies over introducing new ones.\n` +
|
|
97
|
-
`- Only refactor or restructure code when explicitly asked — don't split files, rename variables, or reorganize code unprompted
|
|
98
|
+
`- Only refactor or restructure code when explicitly asked — don't split files, rename variables, or reorganize code unprompted.\n` +
|
|
99
|
+
`- **Verify non-trivial implementations** — when using unfamiliar APIs, libraries, or complex patterns, use \`mcp__grep__searchGitHub\` to check how real codebases do it before writing or during planning. Skip this for simple edits, renames, and config changes.`);
|
|
98
100
|
// 4. Tools
|
|
99
101
|
sections.push(`## Tools\n\n` +
|
|
100
102
|
`- **read**: Read file contents. Use offset/limit for large files.\n` +
|
|
@@ -103,69 +105,17 @@ export async function buildSystemPrompt(cwd, skills, planMode, approvedPlanPath)
|
|
|
103
105
|
`- **bash**: Run commands (tests, builds, git, installs). The shell already runs in the project working directory — don't \`cd\` into it redundantly. Check exit code and output for errors. Use non-interactive flags where needed (e.g. \`--yes\`, \`-y\`) to avoid blocking prompts. Set \`run_in_background=true\` for long-running processes (dev servers, watchers) — returns a process ID immediately.\n` +
|
|
104
106
|
`- **find** / **ls**: Discover project structure and orient in unfamiliar directories.\n` +
|
|
105
107
|
`- **grep**: Find usages, definitions, and imports across the codebase. Use to understand how code connects.\n` +
|
|
108
|
+
`- **web_search**: Search the web for current information, recent events, documentation, or facts. Returns a list of results with titles, URLs, and snippets. Use this before web_fetch when you need to find relevant pages.\n` +
|
|
106
109
|
`- **web_fetch**: Read documentation, check live endpoints, fetch external resources.\n` +
|
|
107
110
|
`- **task_output**: Read output from a background process by ID. Returns new output since last read (incremental). Use \`from_start=true\` to read from the beginning.\n` +
|
|
108
111
|
`- **task_stop**: Stop a background process by ID. Sends SIGTERM, then SIGKILL after 5 seconds.\n` +
|
|
109
112
|
`- **subagent**: Delegate focused, isolated subtasks (research, parallel exploration, independent fixes).\n` +
|
|
110
|
-
`- **tasks**: Manage the project task pane (
|
|
113
|
+
`- **tasks**: Manage the project task pane (Ctrl+T). Actions: \`add\` (title + prompt required), \`list\`, \`done\` (id required), \`remove\` (id required). Only create tasks when the user explicitly asks you to. After creating tasks, STOP and tell the user to press **Ctrl+T** to open the Tasks Pane, then press **R** to run all. Do NOT start executing tasks on your own.\n` +
|
|
111
114
|
` - **title**: Short label (~10 words max) shown in the task pane.\n` +
|
|
112
115
|
` - **prompt**: Standalone instruction sent to an agent with NO prior context. The agent must complete it from the prompt alone, so include specific file paths, what to change, and enough context to act without ambiguity. Be as long as needed for clarity, but no longer. If the task requires latest docs or APIs, tell the agent to research/fetch them.\n` +
|
|
113
116
|
` - **Ordering**: When creating multiple tasks (e.g. from a PRD or spec), add them in correct dependency order — foundational work first (types, schemas, config), then core logic, then integration, then UI, then tests. Each task should be completable independently given that prior tasks are done. Think like an engineer planning a project: what must exist before the next piece can be built?\n` +
|
|
114
117
|
`- **skill**: Invoke a skill by name to get specialized instructions for a task. Skills are defined in \`.ezcoder/skills/\` as markdown files. Use this tool when a task matches an available skill.\n` +
|
|
115
118
|
`- **mcp__grep__searchGitHub**: Search real-world code across 1M+ public GitHub repos. Use to verify your implementation against production patterns — check correct API usage, library idioms, and common conventions before finalizing changes. Search for literal code patterns (e.g. \`StreamableHTTPClientTransport(\`, \`useEffect(() =>\`), not keywords.\n` +
|
|
116
|
-
|
|
117
|
-
`- **exit_plan**: Submit your plan for user review and exit plan mode.`);
|
|
118
|
-
// 5. Avoid
|
|
119
|
-
sections.push(`## Avoid\n\n` +
|
|
120
|
-
`- Don't assume changes worked without verifying.\n` +
|
|
121
|
-
`- Don't generate stubs or placeholder implementations unless asked.\n` +
|
|
122
|
-
`- Don't add TODOs for yourself — finish the work or state what's incomplete.\n` +
|
|
123
|
-
`- Don't pad responses with filler or repeat back what the user said.\n` +
|
|
124
|
-
`- Don't guess or make up file paths, function names, API methods, CLI flags, config options, or package versions. If unsure, use \`find\`, \`grep\`, \`web_fetch\`, or \`--help\` to verify.`);
|
|
125
|
-
// 6. Response Format
|
|
126
|
-
sections.push(`## Response Format\n\n` +
|
|
127
|
-
`Keep responses short and concise. Summarize what you did, then tell the user what to do next if applicable. For pure questions, answer directly.`);
|
|
128
|
-
// 7. Project context — walk from cwd to root looking for context files
|
|
129
|
-
const contextParts = [];
|
|
130
|
-
let dir = cwd;
|
|
131
|
-
const visited = new Set();
|
|
132
|
-
while (!visited.has(dir)) {
|
|
133
|
-
visited.add(dir);
|
|
134
|
-
for (const name of CONTEXT_FILES) {
|
|
135
|
-
const filePath = path.join(dir, name);
|
|
136
|
-
try {
|
|
137
|
-
const content = await fs.readFile(filePath, "utf-8");
|
|
138
|
-
const relPath = path.relative(cwd, filePath) || name;
|
|
139
|
-
contextParts.push(`### ${relPath}\n\n${content.trim()}`);
|
|
140
|
-
}
|
|
141
|
-
catch {
|
|
142
|
-
// File doesn't exist, skip
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
const parent = path.dirname(dir);
|
|
146
|
-
if (parent === dir)
|
|
147
|
-
break;
|
|
148
|
-
dir = parent;
|
|
149
|
-
}
|
|
150
|
-
if (contextParts.length > 0) {
|
|
151
|
-
sections.push(`## Project Context\n\n${contextParts.join("\n\n")}`);
|
|
152
|
-
}
|
|
153
|
-
// 8. Skills
|
|
154
|
-
if (skills && skills.length > 0) {
|
|
155
|
-
const skillsSection = formatSkillsForPrompt(skills);
|
|
156
|
-
if (skillsSection) {
|
|
157
|
-
sections.push(skillsSection);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
// 9. Environment (static — cacheable)
|
|
161
|
-
sections.push(`## Environment\n\n` + `- Working directory: ${cwd}\n` + `- Platform: ${process.platform}`);
|
|
162
|
-
// Dynamic section (uncached) — separated by marker so the transform layer
|
|
163
|
-
// can split the system prompt into cached + uncached blocks.
|
|
164
|
-
const today = new Date();
|
|
165
|
-
const day = today.getDate();
|
|
166
|
-
const month = today.toLocaleString("en-US", { month: "long" });
|
|
167
|
-
const year = today.getFullYear();
|
|
168
|
-
sections.push(`<!-- uncached -->\nToday's date: ${day} ${month} ${year}`);
|
|
169
|
-
return sections.join("\n\n");
|
|
119
|
+
);
|
|
170
120
|
}
|
|
171
121
|
//# sourceMappingURL=system-prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAc,MAAM,kBAAkB,CAAC;AAErE,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;AAEnF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAW,EACX,MAAgB,EAChB,QAAkB,EAClB,gBAAyB;IAEzB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,cAAc;IACd,QAAQ,CAAC,IAAI,CACX,+FAA+F;QAC7F,iFAAiF;QACjF,oCAAoC,CACvC,CAAC;IAEF,iBAAiB;IACjB,QAAQ,CAAC,IAAI,CACX,oBAAoB;QAClB,6BAA6B;QAC7B,2HAA2H;QAC3H,qDAAqD;QACrD,wFAAwF;QACxF,iGAAiG;QACjG,kEAAkE;QAClE,sBAAsB;QACtB,gGAAgG;QAChG,oEAAoE;QACpE,uEAAuE;QACvE,0DAA0D;QAC1D,4BAA4B;QAC5B,0EAA0E;QAC1E,mFAAmF;QACnF,gFAAgF;QAChF,6FAA6F;QAC7F,
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/bash.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAIjE,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAwDvE,QAAA,MAAM,UAAU;;;;iBAed,CAAC;AAEH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,cAAc,EAC9B,GAAG,GAAE,cAAgC,EACrC,WAAW,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GACjC,SAAS,CAAC,OAAO,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAIjE,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAwDvE,QAAA,MAAM,UAAU;;;;iBAed,CAAC;AAEH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,cAAc,EAC9B,GAAG,GAAE,cAAgC,EACrC,WAAW,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GACjC,SAAS,CAAC,OAAO,UAAU,CAAC,CAiH9B"}
|
package/dist/tools/bash.js
CHANGED
|
@@ -109,10 +109,17 @@ export function createBashTool(cwd, processManager, ops = localOperations, planM
|
|
|
109
109
|
totalBytes += data.length;
|
|
110
110
|
if (totalBytes > MAX_OUTPUT_BYTES) {
|
|
111
111
|
outputCapped = true;
|
|
112
|
-
// Keep what we have — it'll be truncated by truncateTail anyway
|
|
113
112
|
return;
|
|
114
113
|
}
|
|
115
114
|
chunks.push(data);
|
|
115
|
+
// Stream progress to UI for live output display
|
|
116
|
+
if (context.onUpdate) {
|
|
117
|
+
context.onUpdate({
|
|
118
|
+
type: "bash_progress",
|
|
119
|
+
output: data.toString("utf-8"),
|
|
120
|
+
totalBytes,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
116
123
|
};
|
|
117
124
|
child.stdout?.on("data", onData);
|
|
118
125
|
child.stderr?.on("data", onData);
|
package/dist/tools/bash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export { createFindTool } from "./find.js";
|
|
|
32
32
|
export { createGrepTool } from "./grep.js";
|
|
33
33
|
export { createLsTool } from "./ls.js";
|
|
34
34
|
export { createWebFetchTool } from "./web-fetch.js";
|
|
35
|
+
export { createWebSearchTool } from "./web-search.js";
|
|
35
36
|
export { createTaskOutputTool } from "./task-output.js";
|
|
36
37
|
export { createTaskStopTool } from "./task-stop.js";
|
|
37
38
|
export { createTasksTool } from "./tasks.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAiB5D,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oGAAoG;IACpG,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,sEAAsE;IACtE,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACnC,8CAA8C;IAC9C,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,CA0CrF;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import { createGrepTool } from "./grep.js";
|
|
|
8
8
|
import { createLsTool } from "./ls.js";
|
|
9
9
|
import { createSubAgentTool } from "./subagent.js";
|
|
10
10
|
import { createWebFetchTool } from "./web-fetch.js";
|
|
11
|
+
import { createWebSearchTool } from "./web-search.js";
|
|
11
12
|
import { createTaskOutputTool } from "./task-output.js";
|
|
12
13
|
import { createTaskStopTool } from "./task-stop.js";
|
|
13
14
|
import { createTasksTool } from "./tasks.js";
|
|
@@ -33,6 +34,10 @@ export function createTools(cwd, opts) {
|
|
|
33
34
|
createTaskStopTool(processManager),
|
|
34
35
|
createTasksTool(cwd),
|
|
35
36
|
];
|
|
37
|
+
// Add web search tool for providers without reliable native web search
|
|
38
|
+
if (opts?.provider && opts.provider !== "anthropic") {
|
|
39
|
+
tools.push(createWebSearchTool());
|
|
40
|
+
}
|
|
36
41
|
if (opts?.agents && opts.agents.length > 0 && opts.provider && opts.model) {
|
|
37
42
|
tools.push(createSubAgentTool(cwd, opts.agents, opts.provider, opts.model, planModeRef));
|
|
38
43
|
}
|
|
@@ -55,6 +60,7 @@ export { createFindTool } from "./find.js";
|
|
|
55
60
|
export { createGrepTool } from "./grep.js";
|
|
56
61
|
export { createLsTool } from "./ls.js";
|
|
57
62
|
export { createWebFetchTool } from "./web-fetch.js";
|
|
63
|
+
export { createWebSearchTool } from "./web-search.js";
|
|
58
64
|
export { createTaskOutputTool } from "./task-output.js";
|
|
59
65
|
export { createTaskStopTool } from "./task-stop.js";
|
|
60
66
|
export { createTasksTool } from "./tasks.js";
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/overflow.js
CHANGED
|
@@ -7,7 +7,7 @@ import path from "node:path";
|
|
|
7
7
|
*/
|
|
8
8
|
export async function writeOverflow(content, prefix) {
|
|
9
9
|
const filePath = path.join(os.tmpdir(), `ezcoder-${prefix}-${Date.now()}.txt`);
|
|
10
|
-
await fs.writeFile(filePath, content, "utf-8");
|
|
10
|
+
await fs.writeFile(filePath, content, { encoding: "utf-8", mode: 0o600 });
|
|
11
11
|
return filePath;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=overflow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overflow.js","sourceRoot":"","sources":["../../src/tools/overflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe,EAAE,MAAc;IACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,WAAW,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/E,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"overflow.js","sourceRoot":"","sources":["../../src/tools/overflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe,EAAE,MAAc;IACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,WAAW,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/E,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/tools/read.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvE,eAAO,MAAM,iBAAiB,aAqD5B,CAAC;AAEH,QAAA,MAAM,UAAU;;;;iBASd,CAAC;AAEH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,GAAG,GAAE,cAAgC,GACpC,SAAS,CAAC,OAAO,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvE,eAAO,MAAM,iBAAiB,aAqD5B,CAAC;AAEH,QAAA,MAAM,UAAU;;;;iBASd,CAAC;AAEH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,GAAG,GAAE,cAAgC,GACpC,SAAS,CAAC,OAAO,UAAU,CAAC,CA+D9B"}
|
package/dist/tools/read.js
CHANGED
|
@@ -85,7 +85,20 @@ export function createReadTool(cwd, readFiles, ops = localOperations) {
|
|
|
85
85
|
const stat = await ops.stat(resolved);
|
|
86
86
|
return `Binary file: ${resolved} (${ext}, ${stat.size} bytes)`;
|
|
87
87
|
}
|
|
88
|
-
|
|
88
|
+
let raw;
|
|
89
|
+
try {
|
|
90
|
+
raw = await ops.readFile(resolved);
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
const code = err.code;
|
|
94
|
+
if (code === "ENOENT")
|
|
95
|
+
return `File not found: ${resolved}`;
|
|
96
|
+
if (code === "EACCES")
|
|
97
|
+
return `Permission denied: ${resolved}`;
|
|
98
|
+
if (code === "EISDIR")
|
|
99
|
+
return `Is a directory, not a file: ${resolved}`;
|
|
100
|
+
throw err;
|
|
101
|
+
}
|
|
89
102
|
let lines = raw.split("\n");
|
|
90
103
|
// Apply offset/limit
|
|
91
104
|
const startLine = offset ? offset - 1 : 0;
|
package/dist/tools/read.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAuB,MAAM,iBAAiB,CAAC;AAEvE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACvC,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,SAAS;IACT,UAAU;IACV,OAAO;IACP,OAAO;IACP,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACvD,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,6CAA6C,CAAC;IAC1D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CACtF,CAAC,CAAC;AAEH,MAAM,UAAU,cAAc,CAC5B,GAAW,EACX,SAAuB,EACvB,MAAsB,eAAe;IAErC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,iEAAiE;YACjE,sEAAsE;YACtE,6DAA6D;YAC7D,kDAAkD;QACpD,UAAU,EAAE,UAAU;QACtB,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE;YACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC9B,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAEjD,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtC,OAAO,gBAAgB,QAAQ,KAAK,GAAG,KAAK,IAAI,CAAC,IAAI,SAAS,CAAC;YACjE,CAAC;YAED,
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AgentTool } from "@prestyj/agent";
|
|
3
|
+
declare const parameters: z.ZodObject<{
|
|
4
|
+
query: z.ZodString;
|
|
5
|
+
max_results: z.ZodOptional<z.ZodNumber>;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
export declare function createWebSearchTool(): AgentTool<typeof parameters>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=web-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA+QhD,QAAA,MAAM,UAAU;;;iBAGd,CAAC;AAEH,wBAAgB,mBAAmB,IAAI,SAAS,CAAC,OAAO,UAAU,CAAC,CA4BlE"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const USER_AGENTS = [
|
|
3
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
|
|
4
|
+
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
|
|
5
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15",
|
|
6
|
+
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0",
|
|
7
|
+
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
|
|
8
|
+
];
|
|
9
|
+
const RATE_LIMIT_PATTERNS = [
|
|
10
|
+
"you appear to be a bot",
|
|
11
|
+
"unusual traffic",
|
|
12
|
+
"captcha",
|
|
13
|
+
"rate limit",
|
|
14
|
+
"too many requests",
|
|
15
|
+
"blocked",
|
|
16
|
+
"access denied",
|
|
17
|
+
"sorry, you have been blocked",
|
|
18
|
+
"anomaly-modal",
|
|
19
|
+
"unfortunately, bots use duckduckgo",
|
|
20
|
+
"challenge-form",
|
|
21
|
+
];
|
|
22
|
+
const ENGINES = ["DuckDuckGo", "DuckDuckGoLite", "Brave", "Google"];
|
|
23
|
+
// ── HTML helpers ──────────────────────────────────────────
|
|
24
|
+
function decodeHTMLEntities(text) {
|
|
25
|
+
return text
|
|
26
|
+
.replace(/&/g, "&")
|
|
27
|
+
.replace(/</g, "<")
|
|
28
|
+
.replace(/>/g, ">")
|
|
29
|
+
.replace(/"/g, '"')
|
|
30
|
+
.replace(/'/g, "'")
|
|
31
|
+
.replace(/'/g, "'")
|
|
32
|
+
.replace(/ /g, " ")
|
|
33
|
+
.replace(/'/g, "'")
|
|
34
|
+
.replace(///g, "/");
|
|
35
|
+
}
|
|
36
|
+
function cleanHTML(text) {
|
|
37
|
+
return decodeHTMLEntities(text.replace(/<[^>]+>/g, ""))
|
|
38
|
+
.replace(/\s+/g, " ")
|
|
39
|
+
.trim();
|
|
40
|
+
}
|
|
41
|
+
// ── Request building ─────────────────────────────────────
|
|
42
|
+
function buildRequest(engine, query) {
|
|
43
|
+
const encoded = encodeURIComponent(query);
|
|
44
|
+
const ua = USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)];
|
|
45
|
+
const headers = {
|
|
46
|
+
"User-Agent": ua,
|
|
47
|
+
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
|
|
48
|
+
"Accept-Language": "en-US,en;q=0.9",
|
|
49
|
+
};
|
|
50
|
+
let url;
|
|
51
|
+
let method = "GET";
|
|
52
|
+
let body;
|
|
53
|
+
switch (engine) {
|
|
54
|
+
case "DuckDuckGo":
|
|
55
|
+
url = `https://html.duckduckgo.com/html/?q=${encoded}`;
|
|
56
|
+
break;
|
|
57
|
+
case "DuckDuckGoLite":
|
|
58
|
+
url = "https://lite.duckduckgo.com/lite/";
|
|
59
|
+
method = "POST";
|
|
60
|
+
body = new URLSearchParams({ q: query }).toString();
|
|
61
|
+
headers["Content-Type"] = "application/x-www-form-urlencoded";
|
|
62
|
+
break;
|
|
63
|
+
case "Brave":
|
|
64
|
+
url = `https://search.brave.com/search?q=${encoded}&source=web`;
|
|
65
|
+
headers.Accept = "text/html";
|
|
66
|
+
break;
|
|
67
|
+
case "Google":
|
|
68
|
+
url = `https://www.google.com/search?q=${encoded}&hl=en`;
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
return { url, headers, method, body };
|
|
72
|
+
}
|
|
73
|
+
// ── Fetch with retry ─────────────────────────────────────
|
|
74
|
+
async function fetchWithRetry(url, headers, signal, method = "GET", body, maxRetries = 3) {
|
|
75
|
+
let lastError = new Error("No attempts made");
|
|
76
|
+
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
77
|
+
if (attempt > 0) {
|
|
78
|
+
const baseDelay = Math.pow(2, attempt - 1) * 1000;
|
|
79
|
+
const jitter = 1 + Math.random() * 0.5;
|
|
80
|
+
await new Promise((r) => setTimeout(r, baseDelay * jitter));
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
const response = await fetch(url, {
|
|
84
|
+
method,
|
|
85
|
+
headers,
|
|
86
|
+
...(body ? { body } : {}),
|
|
87
|
+
signal: AbortSignal.any([signal, AbortSignal.timeout(15000)]),
|
|
88
|
+
});
|
|
89
|
+
const text = await response.text();
|
|
90
|
+
return { data: text, statusCode: response.status };
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
throw lastError;
|
|
97
|
+
}
|
|
98
|
+
// ── Rate limit detection ─────────────────────────────────
|
|
99
|
+
function isRateLimited(statusCode, html) {
|
|
100
|
+
if ([429, 403, 503].includes(statusCode))
|
|
101
|
+
return true;
|
|
102
|
+
const lower = html.toLowerCase();
|
|
103
|
+
return RATE_LIMIT_PATTERNS.some((p) => lower.includes(p));
|
|
104
|
+
}
|
|
105
|
+
// ── Parsers ──────────────────────────────────────────────
|
|
106
|
+
function parseDDGResults(html) {
|
|
107
|
+
const results = [];
|
|
108
|
+
const resultRegex = /<a[^>]*class="[^"]*result__a[^"]*"[^>]*href="([^"]+)"[^>]*>(.*?)<\/a>/gs;
|
|
109
|
+
const snippetRegex = /class="[^"]*result__snippet[^"]*"[^>]*>(.*?)<\/(?:a|div|span)>/gs;
|
|
110
|
+
const resultMatches = [...html.matchAll(resultRegex)];
|
|
111
|
+
const snippetMatches = [...html.matchAll(snippetRegex)];
|
|
112
|
+
for (let i = 0; i < resultMatches.length; i++) {
|
|
113
|
+
const [, rawURL, rawTitle] = resultMatches[i];
|
|
114
|
+
const title = cleanHTML(rawTitle);
|
|
115
|
+
const url = unwrapDDGRedirect(rawURL);
|
|
116
|
+
let snippet = "";
|
|
117
|
+
if (i < snippetMatches.length) {
|
|
118
|
+
snippet = cleanHTML(snippetMatches[i][1]);
|
|
119
|
+
}
|
|
120
|
+
if (url && title) {
|
|
121
|
+
results.push({ title, url, snippet });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return results;
|
|
125
|
+
}
|
|
126
|
+
function unwrapDDGRedirect(rawURL) {
|
|
127
|
+
if (rawURL.includes("uddg=")) {
|
|
128
|
+
try {
|
|
129
|
+
const params = new URL(rawURL, "https://duckduckgo.com").searchParams;
|
|
130
|
+
const uddg = params.get("uddg");
|
|
131
|
+
if (uddg)
|
|
132
|
+
return uddg;
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
// fall through
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (rawURL.startsWith("//"))
|
|
139
|
+
return "https:" + rawURL;
|
|
140
|
+
return rawURL;
|
|
141
|
+
}
|
|
142
|
+
function parseBraveResults(html) {
|
|
143
|
+
const results = [];
|
|
144
|
+
const blockRegex = /<div[^>]*class="snippet[^"]*"[^>]*>(.*?)<\/div>\s*<\/div>/gs;
|
|
145
|
+
const linkRegex = /<a[^>]*href="([^"]*)"[^>]*class="[^"]*result-header[^"]*"[^>]*>(.*?)<\/a>/s;
|
|
146
|
+
const descRegex = /<p[^>]*class="[^"]*snippet-description[^"]*"[^>]*>(.*?)<\/p>/s;
|
|
147
|
+
for (const block of html.matchAll(blockRegex)) {
|
|
148
|
+
const blockHTML = block[1];
|
|
149
|
+
const linkMatch = blockHTML.match(linkRegex);
|
|
150
|
+
if (!linkMatch)
|
|
151
|
+
continue;
|
|
152
|
+
const url = linkMatch[1];
|
|
153
|
+
const title = cleanHTML(linkMatch[2]);
|
|
154
|
+
const descMatch = blockHTML.match(descRegex);
|
|
155
|
+
const snippet = descMatch ? cleanHTML(descMatch[1]) : "";
|
|
156
|
+
if (url && title) {
|
|
157
|
+
results.push({ title, url, snippet });
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return results;
|
|
161
|
+
}
|
|
162
|
+
function parseGoogleResults(html) {
|
|
163
|
+
const results = [];
|
|
164
|
+
const linkRegex = /<a[^>]*href="\/url\?q=([^&"]+)[^"]*"[^>]*>/g;
|
|
165
|
+
const headingRegex = /<h3[^>]*>(.*?)<\/h3>/gs;
|
|
166
|
+
const linkMatches = [...html.matchAll(linkRegex)];
|
|
167
|
+
const headingMatches = [...html.matchAll(headingRegex)];
|
|
168
|
+
for (let i = 0; i < linkMatches.length; i++) {
|
|
169
|
+
const rawURL = linkMatches[i][1];
|
|
170
|
+
const url = decodeURIComponent(rawURL);
|
|
171
|
+
let title = url;
|
|
172
|
+
if (i < headingMatches.length) {
|
|
173
|
+
title = cleanHTML(headingMatches[i][1]);
|
|
174
|
+
}
|
|
175
|
+
if (url && url.startsWith("http")) {
|
|
176
|
+
results.push({ title, url, snippet: "" });
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return results;
|
|
180
|
+
}
|
|
181
|
+
// ── Search cascade ───────────────────────────────────────
|
|
182
|
+
async function performSearch(query, maxResults, signal) {
|
|
183
|
+
for (const engine of ENGINES) {
|
|
184
|
+
try {
|
|
185
|
+
const { url, headers, method, body } = buildRequest(engine, query);
|
|
186
|
+
const { data: html, statusCode } = await fetchWithRetry(url, headers, signal, method, body);
|
|
187
|
+
if (isRateLimited(statusCode, html))
|
|
188
|
+
continue;
|
|
189
|
+
let results;
|
|
190
|
+
switch (engine) {
|
|
191
|
+
case "DuckDuckGo":
|
|
192
|
+
case "DuckDuckGoLite":
|
|
193
|
+
results = parseDDGResults(html);
|
|
194
|
+
break;
|
|
195
|
+
case "Brave":
|
|
196
|
+
results = parseBraveResults(html);
|
|
197
|
+
break;
|
|
198
|
+
case "Google":
|
|
199
|
+
results = parseGoogleResults(html);
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
if (results.length > 0) {
|
|
203
|
+
return { results: results.slice(0, maxResults), engine };
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
catch {
|
|
207
|
+
// try next engine
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return { results: [], engine: "DuckDuckGo" };
|
|
211
|
+
}
|
|
212
|
+
// ── Tool definition ──────────────────────────────────────
|
|
213
|
+
const parameters = z.object({
|
|
214
|
+
query: z.string().describe("Search query"),
|
|
215
|
+
max_results: z.number().optional().describe("Max results to return (default: 5, max: 20)"),
|
|
216
|
+
});
|
|
217
|
+
export function createWebSearchTool() {
|
|
218
|
+
return {
|
|
219
|
+
name: "web_search",
|
|
220
|
+
description: "Search the web and return results. Use for current information, recent events, or facts beyond your knowledge cutoff.",
|
|
221
|
+
parameters,
|
|
222
|
+
async execute(args, context) {
|
|
223
|
+
const maxResults = Math.min(args.max_results ?? 5, 20);
|
|
224
|
+
const { results, engine } = await performSearch(args.query, maxResults, context.signal);
|
|
225
|
+
if (results.length === 0) {
|
|
226
|
+
return `No search results found for: "${args.query}". All search engines were unavailable or returned no results.`;
|
|
227
|
+
}
|
|
228
|
+
let output = `Web search results for: "${args.query}"\n\n`;
|
|
229
|
+
for (let i = 0; i < results.length; i++) {
|
|
230
|
+
output += `${i + 1}. [${results[i].title}](${results[i].url})\n`;
|
|
231
|
+
if (results[i].snippet) {
|
|
232
|
+
output += ` ${results[i].snippet}\n`;
|
|
233
|
+
}
|
|
234
|
+
output += "\n";
|
|
235
|
+
}
|
|
236
|
+
output += `(${results.length} results from ${engine})`;
|
|
237
|
+
return output;
|
|
238
|
+
},
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=web-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":"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"}
|