@travisennis/acai 0.0.5 → 0.0.6
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 -2
- package/dist/agent/index.d.ts +119 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +406 -0
- package/dist/agent/manual-loop.d.ts +41 -0
- package/dist/agent/manual-loop.d.ts.map +1 -0
- package/dist/agent/manual-loop.js +278 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +27 -33
- package/dist/commands/add-directory-command.d.ts +3 -0
- package/dist/commands/add-directory-command.d.ts.map +1 -0
- package/dist/commands/add-directory-command.js +85 -0
- package/dist/commands/application-log-command.d.ts.map +1 -1
- package/dist/commands/application-log-command.js +34 -0
- package/dist/commands/clear-command.d.ts.map +1 -1
- package/dist/commands/clear-command.js +8 -0
- package/dist/commands/compact-command.d.ts.map +1 -1
- package/dist/commands/compact-command.js +15 -2
- package/dist/commands/context-command.d.ts +3 -0
- package/dist/commands/context-command.d.ts.map +1 -0
- package/dist/commands/context-command.js +183 -0
- package/dist/commands/copy-command.d.ts.map +1 -1
- package/dist/commands/copy-command.js +28 -0
- package/dist/commands/edit-command.d.ts.map +1 -1
- package/dist/commands/edit-command.js +33 -0
- package/dist/commands/edit-prompt-command.d.ts.map +1 -1
- package/dist/commands/edit-prompt-command.js +28 -0
- package/dist/commands/exit-command.d.ts.map +1 -1
- package/dist/commands/exit-command.js +20 -0
- package/dist/commands/files-command.d.ts.map +1 -1
- package/dist/commands/files-command.js +57 -0
- package/dist/commands/generate-rules-command.d.ts.map +1 -1
- package/dist/commands/generate-rules-command.js +311 -1
- package/dist/commands/handoff-command.d.ts +3 -0
- package/dist/commands/handoff-command.d.ts.map +1 -0
- package/dist/commands/handoff-command.js +202 -0
- package/dist/commands/health-command.d.ts.map +1 -1
- package/dist/commands/health-command.js +119 -2
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +28 -0
- package/dist/commands/history-command.d.ts +3 -0
- package/dist/commands/history-command.d.ts.map +1 -0
- package/dist/commands/history-command.js +534 -0
- package/dist/commands/init-command.d.ts +1 -1
- package/dist/commands/init-command.d.ts.map +1 -1
- package/dist/commands/init-command.js +55 -18
- package/dist/commands/last-log-command.d.ts.map +1 -1
- package/dist/commands/last-log-command.js +27 -0
- package/dist/commands/list-directories-command.d.ts +3 -0
- package/dist/commands/list-directories-command.d.ts.map +1 -0
- package/dist/commands/list-directories-command.js +48 -0
- package/dist/commands/list-tools-command.d.ts.map +1 -1
- package/dist/commands/list-tools-command.js +66 -3
- package/dist/commands/manager.d.ts +15 -3
- package/dist/commands/manager.d.ts.map +1 -1
- package/dist/commands/manager.js +86 -26
- package/dist/commands/model-command.d.ts +22 -0
- package/dist/commands/model-command.d.ts.map +1 -1
- package/dist/commands/model-command.js +256 -0
- package/dist/commands/paste-command.d.ts.map +1 -1
- package/dist/commands/paste-command.js +92 -0
- package/dist/commands/pickup-command.d.ts +3 -0
- package/dist/commands/pickup-command.d.ts.map +1 -0
- package/dist/commands/pickup-command.js +161 -0
- package/dist/commands/prompt-command.d.ts +1 -1
- package/dist/commands/prompt-command.d.ts.map +1 -1
- package/dist/commands/prompt-command.js +117 -2
- package/dist/commands/remove-directory-command.d.ts +3 -0
- package/dist/commands/remove-directory-command.d.ts.map +1 -0
- package/dist/commands/remove-directory-command.js +87 -0
- package/dist/commands/reset-command.d.ts +1 -1
- package/dist/commands/reset-command.d.ts.map +1 -1
- package/dist/commands/reset-command.js +13 -2
- package/dist/commands/rules-command.d.ts.map +1 -1
- package/dist/commands/rules-command.js +65 -0
- package/dist/commands/save-command.d.ts.map +1 -1
- package/dist/commands/save-command.js +12 -0
- package/dist/commands/shell-command.d.ts.map +1 -1
- package/dist/commands/shell-command.js +68 -0
- package/dist/commands/types.d.ts +9 -4
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/usage-command.d.ts.map +1 -1
- package/dist/commands/usage-command.js +22 -0
- package/dist/config.d.ts +6 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +23 -29
- package/dist/formatting.d.ts +108 -0
- package/dist/formatting.d.ts.map +1 -1
- package/dist/formatting.js +147 -0
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +140 -38
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +47 -18
- package/dist/mentions.d.ts +2 -1
- package/dist/mentions.d.ts.map +1 -1
- package/dist/mentions.js +16 -1
- package/dist/messages.d.ts +8 -0
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +56 -19
- package/dist/middleware/cache.d.ts +3 -0
- package/dist/middleware/cache.d.ts.map +1 -0
- package/dist/middleware/cache.js +53 -0
- package/dist/middleware/index.d.ts +1 -0
- package/dist/middleware/index.d.ts.map +1 -1
- package/dist/middleware/index.js +1 -0
- package/dist/models/ai-config.d.ts +4 -2
- package/dist/models/ai-config.d.ts.map +1 -1
- package/dist/models/ai-config.js +12 -2
- package/dist/models/anthropic-provider.d.ts.map +1 -1
- package/dist/models/anthropic-provider.js +3 -60
- package/dist/models/manager.d.ts +2 -1
- package/dist/models/manager.d.ts.map +1 -1
- package/dist/models/manager.js +26 -2
- package/dist/models/openrouter-provider.d.ts +7 -14
- package/dist/models/openrouter-provider.d.ts.map +1 -1
- package/dist/models/openrouter-provider.js +114 -169
- package/dist/models/providers.d.ts +1 -1
- package/dist/models/providers.d.ts.map +1 -1
- package/dist/prompts.d.ts +1 -0
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +53 -4
- package/dist/repl/display-tool-messages.d.ts +1 -1
- package/dist/repl/display-tool-messages.d.ts.map +1 -1
- package/dist/repl/display-tool-messages.js +47 -44
- package/dist/repl/get-prompt-header.d.ts.map +1 -1
- package/dist/repl/get-prompt-header.js +1 -30
- package/dist/repl/project-status-line.d.ts +2 -0
- package/dist/repl/project-status-line.d.ts.map +1 -0
- package/dist/repl/project-status-line.js +31 -0
- package/dist/repl/prompt.d.ts +21 -0
- package/dist/repl/prompt.d.ts.map +1 -0
- package/dist/{repl-prompt.js → repl/prompt.js} +119 -22
- package/dist/repl/tool-call-repair.d.ts.map +1 -1
- package/dist/repl/tool-call-repair.js +8 -4
- package/dist/repl-new.d.ts +53 -0
- package/dist/repl-new.d.ts.map +1 -0
- package/dist/repl-new.js +374 -0
- package/dist/repl.d.ts +3 -5
- package/dist/repl.d.ts.map +1 -1
- package/dist/repl.js +74 -166
- package/dist/terminal/checkbox-prompt.d.ts.map +1 -1
- package/dist/terminal/checkbox-prompt.js +10 -4
- package/dist/terminal/index.d.ts +7 -0
- package/dist/terminal/index.d.ts.map +1 -1
- package/dist/terminal/index.js +94 -0
- package/dist/terminal/input-prompt.d.ts +2 -1
- package/dist/terminal/input-prompt.d.ts.map +1 -1
- package/dist/terminal/markdown.js +3 -0
- package/dist/terminal/search-prompt.d.ts.map +1 -1
- package/dist/terminal/search-prompt.js +11 -10
- package/dist/terminal/select-prompt.d.ts +2 -2
- package/dist/terminal/select-prompt.d.ts.map +1 -1
- package/dist/terminal/select-prompt.js +47 -39
- package/dist/tokens/threshold.d.ts +35 -0
- package/dist/tokens/threshold.d.ts.map +1 -0
- package/dist/tokens/threshold.js +85 -0
- package/dist/tools/advanced-edit-file.d.ts +69 -0
- package/dist/tools/advanced-edit-file.d.ts.map +1 -0
- package/dist/tools/advanced-edit-file.js +281 -0
- package/dist/tools/agent.d.ts +16 -5
- package/dist/tools/agent.d.ts.map +1 -1
- package/dist/tools/agent.js +71 -58
- package/dist/tools/bash-utils.d.ts +1 -1
- package/dist/tools/bash-utils.d.ts.map +1 -1
- package/dist/tools/bash-utils.js +14 -6
- package/dist/tools/bash.d.ts +21 -12
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +88 -135
- package/dist/tools/code-interpreter.d.ts +21 -9
- package/dist/tools/code-interpreter.d.ts.map +1 -1
- package/dist/tools/code-interpreter.js +138 -137
- package/dist/tools/delete-file.d.ts +17 -10
- package/dist/tools/delete-file.d.ts.map +1 -1
- package/dist/tools/delete-file.js +51 -95
- package/dist/tools/directory-tree.d.ts +17 -6
- package/dist/tools/directory-tree.d.ts.map +1 -1
- package/dist/tools/directory-tree.js +47 -49
- package/dist/tools/dynamic-tool-loader.d.ts +18 -8
- package/dist/tools/dynamic-tool-loader.d.ts.map +1 -1
- package/dist/tools/dynamic-tool-loader.js +121 -129
- package/dist/tools/dynamic-tool-parser.d.ts +1 -0
- package/dist/tools/dynamic-tool-parser.d.ts.map +1 -1
- package/dist/tools/dynamic-tool-parser.js +1 -0
- package/dist/tools/edit-file.d.ts +35 -15
- package/dist/tools/edit-file.d.ts.map +1 -1
- package/dist/tools/edit-file.js +112 -112
- package/dist/tools/filesystem-utils.d.ts +2 -1
- package/dist/tools/filesystem-utils.d.ts.map +1 -1
- package/dist/tools/filesystem-utils.js +31 -17
- package/dist/tools/glob.d.ts +36 -0
- package/dist/tools/glob.d.ts.map +1 -0
- package/dist/tools/glob.js +143 -0
- package/dist/tools/grep.d.ts +73 -12
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +413 -168
- package/dist/tools/index.d.ts +204 -124
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +242 -135
- package/dist/tools/llm-edit-fixer.d.ts +25 -0
- package/dist/tools/llm-edit-fixer.d.ts.map +1 -0
- package/dist/tools/llm-edit-fixer.js +150 -0
- package/dist/tools/move-file.d.ts +19 -7
- package/dist/tools/move-file.d.ts.map +1 -1
- package/dist/tools/move-file.js +40 -33
- package/dist/tools/read-file.d.ts +47 -9
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +74 -69
- package/dist/tools/read-multiple-files.d.ts +17 -6
- package/dist/tools/read-multiple-files.d.ts.map +1 -1
- package/dist/tools/read-multiple-files.js +76 -73
- package/dist/tools/save-file.d.ts +45 -12
- package/dist/tools/save-file.d.ts.map +1 -1
- package/dist/tools/save-file.js +58 -101
- package/dist/tools/think.d.ts +15 -7
- package/dist/tools/think.d.ts.map +1 -1
- package/dist/tools/think.js +30 -22
- package/dist/tools/types.d.ts +4 -10
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +9 -0
- package/dist/tools/utils.d.ts +14 -0
- package/dist/tools/utils.d.ts.map +1 -0
- package/dist/tools/utils.js +16 -0
- package/dist/tools/web-fetch.d.ts +11 -4
- package/dist/tools/web-fetch.d.ts.map +1 -1
- package/dist/tools/web-fetch.js +39 -38
- package/dist/tools/web-search.d.ts +15 -6
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tools/web-search.js +50 -32
- package/dist/tui/autocomplete.d.ts +44 -0
- package/dist/tui/autocomplete.d.ts.map +1 -0
- package/dist/tui/autocomplete.js +466 -0
- package/dist/tui/components/assistant-message.d.ts +18 -0
- package/dist/tui/components/assistant-message.d.ts.map +1 -0
- package/dist/tui/components/assistant-message.js +29 -0
- package/dist/tui/components/editor.d.ts +51 -0
- package/dist/tui/components/editor.d.ts.map +1 -0
- package/dist/tui/components/editor.js +758 -0
- package/dist/tui/components/footer.d.ts +24 -0
- package/dist/tui/components/footer.d.ts.map +1 -0
- package/dist/tui/components/footer.js +197 -0
- package/dist/tui/components/input.d.ts +14 -0
- package/dist/tui/components/input.d.ts.map +1 -0
- package/dist/tui/components/input.js +122 -0
- package/dist/tui/components/loader.d.ts +19 -0
- package/dist/tui/components/loader.d.ts.map +1 -0
- package/dist/tui/components/loader.js +45 -0
- package/dist/tui/components/markdown.d.ts +103 -0
- package/dist/tui/components/markdown.d.ts.map +1 -0
- package/dist/tui/components/markdown.js +533 -0
- package/dist/tui/components/modal.d.ts +40 -0
- package/dist/tui/components/modal.d.ts.map +1 -0
- package/dist/tui/components/modal.js +292 -0
- package/dist/tui/components/prompt-status.d.ts +16 -0
- package/dist/tui/components/prompt-status.d.ts.map +1 -0
- package/dist/tui/components/prompt-status.js +21 -0
- package/dist/tui/components/select-list.d.ts +22 -0
- package/dist/tui/components/select-list.d.ts.map +1 -0
- package/dist/tui/components/select-list.js +143 -0
- package/dist/tui/components/spacer.d.ts +16 -0
- package/dist/tui/components/spacer.d.ts.map +1 -0
- package/dist/tui/components/spacer.js +27 -0
- package/dist/tui/components/text.d.ts +26 -0
- package/dist/tui/components/text.d.ts.map +1 -0
- package/dist/tui/components/text.js +143 -0
- package/dist/tui/components/thinking-block.d.ts +14 -0
- package/dist/tui/components/thinking-block.d.ts.map +1 -0
- package/dist/tui/components/thinking-block.js +30 -0
- package/dist/tui/components/tool-execution.d.ts +17 -0
- package/dist/tui/components/tool-execution.d.ts.map +1 -0
- package/dist/tui/components/tool-execution.js +153 -0
- package/dist/tui/components/user-message.d.ts +9 -0
- package/dist/tui/components/user-message.d.ts.map +1 -0
- package/dist/tui/components/user-message.js +21 -0
- package/dist/tui/components/welcome.d.ts +6 -0
- package/dist/tui/components/welcome.d.ts.map +1 -0
- package/dist/tui/components/welcome.js +30 -0
- package/dist/tui/index.d.ts +14 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +18 -0
- package/dist/tui/terminal.d.ts +37 -0
- package/dist/tui/terminal.d.ts.map +1 -0
- package/dist/tui/terminal.js +104 -0
- package/dist/tui/tui.d.ts +67 -0
- package/dist/tui/tui.d.ts.map +1 -0
- package/dist/tui/tui.js +184 -0
- package/dist/tui/utils.d.ts +19 -0
- package/dist/tui/utils.d.ts.map +1 -0
- package/dist/tui/utils.js +31 -0
- package/dist/utils/generators.d.ts +3 -0
- package/dist/utils/generators.d.ts.map +1 -0
- package/dist/utils/generators.js +25 -0
- package/dist/utils/iterables.d.ts +2 -0
- package/dist/utils/iterables.d.ts.map +1 -0
- package/dist/utils/iterables.js +6 -0
- package/package.json +16 -16
- package/dist/conversation-analyzer.d.ts +0 -11
- package/dist/conversation-analyzer.d.ts.map +0 -1
- package/dist/conversation-analyzer.js +0 -88
- package/dist/repl-prompt.d.ts +0 -15
- package/dist/repl-prompt.d.ts.map +0 -1
- package/dist/tokens/manage-output.d.ts +0 -34
- package/dist/tokens/manage-output.d.ts.map +0 -1
- package/dist/tokens/manage-output.js +0 -44
- package/dist/tool-executor.d.ts +0 -28
- package/dist/tool-executor.d.ts.map +0 -1
- package/dist/tool-executor.js +0 -74
- package/dist/tools/file-editing-utils.d.ts +0 -2
- package/dist/tools/file-editing-utils.d.ts.map +0 -1
- package/dist/tools/file-editing-utils.js +0 -135
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
|
|
3
|
-
import { openrouter } from "@openrouter/ai-sdk-provider";
|
|
1
|
+
import { createOpenRouter } from "@openrouter/ai-sdk-provider";
|
|
4
2
|
import { objectKeys } from "@travisennis/stdlib/object";
|
|
5
3
|
import { customProvider } from "ai";
|
|
6
|
-
const openRouterClient = createOpenAICompatible({
|
|
7
|
-
|
|
4
|
+
// const openRouterClient = createOpenAICompatible({
|
|
5
|
+
// name: "openrouter",
|
|
6
|
+
// apiKey: process.env["OPENROUTER_API_KEY"] ?? "",
|
|
7
|
+
// // biome-ignore lint/style/useNamingConvention: third-party controlled
|
|
8
|
+
// baseURL: "https://openrouter.ai/api/v1",
|
|
9
|
+
// headers: {
|
|
10
|
+
// "HTTP-Referer": "https://github.com/travisennis/acai-ts",
|
|
11
|
+
// "X-Title": "acai",
|
|
12
|
+
// },
|
|
13
|
+
// });
|
|
14
|
+
const openRouterClient = createOpenRouter({
|
|
8
15
|
apiKey: process.env["OPENROUTER_API_KEY"] ?? "",
|
|
9
|
-
// biome-ignore lint/style/useNamingConvention: third-party controlled
|
|
10
|
-
baseURL: "https://openrouter.ai/api/v1",
|
|
11
16
|
headers: {
|
|
12
17
|
"HTTP-Referer": "https://github.com/travisennis/acai-ts",
|
|
13
18
|
"X-Title": "acai",
|
|
@@ -24,38 +29,69 @@ const openRouterClient = createOpenAICompatible({
|
|
|
24
29
|
// },
|
|
25
30
|
// });
|
|
26
31
|
const openrouterModels = {
|
|
27
|
-
"deepseek-v3": openRouterClient("deepseek/deepseek-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
"deepseek-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"gemini-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"
|
|
52
|
-
|
|
53
|
-
|
|
32
|
+
"deepseek-v3-1": openRouterClient("deepseek/deepseek-v3.1-terminus:exacto", {
|
|
33
|
+
usage: { include: true },
|
|
34
|
+
}),
|
|
35
|
+
"deepseek-r1": openRouterClient("deepseek/deepseek-r1-0528", {
|
|
36
|
+
usage: { include: true },
|
|
37
|
+
}),
|
|
38
|
+
"gemini-flash25": openRouterClient("google/gemini-2.5-flash", {
|
|
39
|
+
usage: { include: true },
|
|
40
|
+
}),
|
|
41
|
+
"gemini-pro25": openRouterClient("google/gemini-2.5-pro", {
|
|
42
|
+
usage: { include: true },
|
|
43
|
+
}),
|
|
44
|
+
"sonnet-4.5": openRouterClient("anthropic/claude-sonnet-4.5", {
|
|
45
|
+
usage: { include: true },
|
|
46
|
+
}),
|
|
47
|
+
"opus-4.1": openRouterClient("anthropic/claude-opus-4.1", {
|
|
48
|
+
usage: { include: true },
|
|
49
|
+
}),
|
|
50
|
+
"haiku-4.5": openRouterClient("anthropic/claude-haiku-4.5", {
|
|
51
|
+
usage: { include: true },
|
|
52
|
+
}),
|
|
53
|
+
"kimi-k2": openRouterClient("moonshotai/kimi-k2-0905:exacto", {
|
|
54
|
+
usage: { include: true },
|
|
55
|
+
}),
|
|
56
|
+
"kimi-k2-thinking": openRouterClient("moonshotai/kimi-k2-thinking", {
|
|
57
|
+
usage: { include: true },
|
|
58
|
+
}),
|
|
59
|
+
"devstral-medium": openRouterClient("mistralai/devstral-medium", {
|
|
60
|
+
usage: { include: true },
|
|
61
|
+
}),
|
|
62
|
+
"qwen3-coder": openRouterClient("qwen/qwen3-coder:exacto", {
|
|
63
|
+
usage: { include: true },
|
|
64
|
+
}),
|
|
65
|
+
"qwen3-coder-plus": openRouterClient("qwen/qwen3-coder-plus", {
|
|
66
|
+
usage: { include: true },
|
|
67
|
+
}),
|
|
68
|
+
"qwen3-max": openRouterClient("qwen/qwen3-max", {
|
|
69
|
+
usage: { include: true },
|
|
54
70
|
}),
|
|
55
|
-
"
|
|
56
|
-
|
|
71
|
+
"glm-4.6": openRouterClient("z-ai/glm-4.6:exacto", {
|
|
72
|
+
usage: { include: true },
|
|
73
|
+
}),
|
|
74
|
+
"gpt-5": openRouterClient("openai/gpt-5", {
|
|
75
|
+
usage: { include: true },
|
|
76
|
+
}),
|
|
77
|
+
"gpt-5-mini": openRouterClient("openai/gpt-5-mini", {
|
|
78
|
+
usage: { include: true },
|
|
79
|
+
}),
|
|
80
|
+
"gpt-oss-120b": openRouterClient("openai/gpt-oss-120b:exacto", {
|
|
81
|
+
usage: { include: true },
|
|
82
|
+
}),
|
|
83
|
+
"grok-code-fast-1": openRouterClient("x-ai/grok-code-fast-1", {
|
|
84
|
+
usage: { include: true },
|
|
85
|
+
}),
|
|
86
|
+
"grok-4-fast": openRouterClient("x-ai/grok-4-fast", {
|
|
87
|
+
usage: { include: true },
|
|
88
|
+
}),
|
|
89
|
+
"gpt-5-codex": openRouterClient("openai/gpt-5-codex", {
|
|
90
|
+
usage: { include: true },
|
|
91
|
+
}),
|
|
92
|
+
"minimax-m2": openRouterClient("minimax/minimax-m2", {
|
|
93
|
+
usage: { include: true },
|
|
57
94
|
}),
|
|
58
|
-
"gpt-5-codex": openRouterClient("openai/gpt-5-codex"),
|
|
59
95
|
};
|
|
60
96
|
export const openrouterModelNames = objectKeys(openrouterModels).map((key) => `openrouter:${key}`);
|
|
61
97
|
export const openrouterProvider = {
|
|
@@ -65,19 +101,6 @@ export const openrouterProvider = {
|
|
|
65
101
|
}),
|
|
66
102
|
};
|
|
67
103
|
export const openrouterModelRegistry = {
|
|
68
|
-
"openrouter:deepseek-v3": {
|
|
69
|
-
id: "openrouter:deepseek-v3",
|
|
70
|
-
provider: "openrouter",
|
|
71
|
-
contextWindow: 128000,
|
|
72
|
-
maxOutputTokens: 8000,
|
|
73
|
-
defaultTemperature: 0.3,
|
|
74
|
-
promptFormat: "bracket",
|
|
75
|
-
supportsReasoning: false,
|
|
76
|
-
supportsToolCalling: true,
|
|
77
|
-
costPerInputToken: 0, // Assuming free tier or unknown cost
|
|
78
|
-
costPerOutputToken: 0, // Assuming free tier or unknown cost
|
|
79
|
-
category: "balanced",
|
|
80
|
-
},
|
|
81
104
|
"openrouter:deepseek-r1": {
|
|
82
105
|
id: "openrouter:deepseek-r1",
|
|
83
106
|
provider: "openrouter",
|
|
@@ -91,19 +114,6 @@ export const openrouterModelRegistry = {
|
|
|
91
114
|
costPerOutputToken: 0, // Assuming free tier or unknown cost
|
|
92
115
|
category: "balanced",
|
|
93
116
|
},
|
|
94
|
-
"openrouter:deepseek-v3-free": {
|
|
95
|
-
id: "openrouter:deepseek-v3-free",
|
|
96
|
-
provider: "openrouter",
|
|
97
|
-
contextWindow: 128000,
|
|
98
|
-
maxOutputTokens: 8000,
|
|
99
|
-
defaultTemperature: 0.3,
|
|
100
|
-
promptFormat: "bracket",
|
|
101
|
-
supportsReasoning: false,
|
|
102
|
-
supportsToolCalling: true,
|
|
103
|
-
costPerInputToken: 0, // Assuming free tier or unknown cost
|
|
104
|
-
costPerOutputToken: 0, // Assuming free tier or unknown cost
|
|
105
|
-
category: "balanced",
|
|
106
|
-
},
|
|
107
117
|
"openrouter:deepseek-v3-1": {
|
|
108
118
|
id: "openrouter:deepseek-v3-1",
|
|
109
119
|
provider: "openrouter",
|
|
@@ -117,19 +127,6 @@ export const openrouterModelRegistry = {
|
|
|
117
127
|
costPerOutputToken: 0.0000008,
|
|
118
128
|
category: "balanced",
|
|
119
129
|
},
|
|
120
|
-
"openrouter:deepseek-r1-free": {
|
|
121
|
-
id: "openrouter:deepseek-r1-free",
|
|
122
|
-
provider: "openrouter",
|
|
123
|
-
contextWindow: 128000,
|
|
124
|
-
maxOutputTokens: 32768,
|
|
125
|
-
defaultTemperature: 0.6,
|
|
126
|
-
promptFormat: "bracket",
|
|
127
|
-
supportsReasoning: true,
|
|
128
|
-
supportsToolCalling: true,
|
|
129
|
-
costPerInputToken: 0, // Assuming free tier or unknown cost
|
|
130
|
-
costPerOutputToken: 0, // Assuming free tier or unknown cost
|
|
131
|
-
category: "balanced",
|
|
132
|
-
},
|
|
133
130
|
"openrouter:gemini-flash25": {
|
|
134
131
|
id: "openrouter:gemini-flash25",
|
|
135
132
|
provider: "openrouter",
|
|
@@ -156,19 +153,6 @@ export const openrouterModelRegistry = {
|
|
|
156
153
|
costPerOutputToken: 0,
|
|
157
154
|
category: "powerful",
|
|
158
155
|
},
|
|
159
|
-
"openrouter:opus4": {
|
|
160
|
-
id: "openrouter:opus4",
|
|
161
|
-
provider: "openrouter",
|
|
162
|
-
contextWindow: 200000,
|
|
163
|
-
maxOutputTokens: 64000,
|
|
164
|
-
defaultTemperature: 0.5,
|
|
165
|
-
promptFormat: "markdown",
|
|
166
|
-
supportsReasoning: true,
|
|
167
|
-
supportsToolCalling: true,
|
|
168
|
-
costPerInputToken: 0,
|
|
169
|
-
costPerOutputToken: 0,
|
|
170
|
-
category: "powerful",
|
|
171
|
-
},
|
|
172
156
|
"openrouter:opus-4.1": {
|
|
173
157
|
id: "openrouter:opus-4.1",
|
|
174
158
|
provider: "openrouter",
|
|
@@ -182,19 +166,6 @@ export const openrouterModelRegistry = {
|
|
|
182
166
|
costPerOutputToken: 0.000075,
|
|
183
167
|
category: "powerful",
|
|
184
168
|
},
|
|
185
|
-
"openrouter:sonnet4": {
|
|
186
|
-
id: "openrouter:sonnet4",
|
|
187
|
-
provider: "openrouter",
|
|
188
|
-
contextWindow: 200000,
|
|
189
|
-
maxOutputTokens: 64000,
|
|
190
|
-
defaultTemperature: 0.5,
|
|
191
|
-
promptFormat: "markdown",
|
|
192
|
-
supportsReasoning: true,
|
|
193
|
-
supportsToolCalling: true,
|
|
194
|
-
costPerInputToken: 0,
|
|
195
|
-
costPerOutputToken: 0,
|
|
196
|
-
category: "balanced",
|
|
197
|
-
},
|
|
198
169
|
"openrouter:sonnet-4.5": {
|
|
199
170
|
id: "openrouter:sonnet-4.5",
|
|
200
171
|
provider: "openrouter",
|
|
@@ -208,57 +179,31 @@ export const openrouterModelRegistry = {
|
|
|
208
179
|
costPerOutputToken: 0.000015,
|
|
209
180
|
category: "powerful",
|
|
210
181
|
},
|
|
211
|
-
"openrouter:gpt-4.1": {
|
|
212
|
-
id: "openrouter:gpt-4.1",
|
|
213
|
-
provider: "openrouter",
|
|
214
|
-
contextWindow: 1000000,
|
|
215
|
-
maxOutputTokens: 32768,
|
|
216
|
-
defaultTemperature: 0.3,
|
|
217
|
-
promptFormat: "markdown",
|
|
218
|
-
supportsReasoning: false,
|
|
219
|
-
supportsToolCalling: true,
|
|
220
|
-
costPerInputToken: 0.000002,
|
|
221
|
-
costPerOutputToken: 0.000008,
|
|
222
|
-
category: "balanced",
|
|
223
|
-
},
|
|
224
182
|
"openrouter:kimi-k2": {
|
|
225
183
|
id: "openrouter:kimi-k2",
|
|
226
184
|
provider: "openrouter",
|
|
227
|
-
contextWindow:
|
|
228
|
-
maxOutputTokens: 8192,
|
|
229
|
-
defaultTemperature: 0.6,
|
|
230
|
-
promptFormat: "markdown",
|
|
231
|
-
supportsReasoning: false,
|
|
232
|
-
supportsToolCalling: true,
|
|
233
|
-
costPerInputToken: 0.00000057,
|
|
234
|
-
costPerOutputToken: 0.0000023,
|
|
235
|
-
category: "balanced",
|
|
236
|
-
},
|
|
237
|
-
"openrouter:kimi-k2-free": {
|
|
238
|
-
id: "openrouter:kimi-k2-free",
|
|
239
|
-
provider: "openrouter",
|
|
240
|
-
contextWindow: 65536,
|
|
185
|
+
contextWindow: 262144,
|
|
241
186
|
maxOutputTokens: 8192,
|
|
242
187
|
defaultTemperature: 0.6,
|
|
243
188
|
promptFormat: "markdown",
|
|
244
189
|
supportsReasoning: false,
|
|
245
190
|
supportsToolCalling: true,
|
|
246
|
-
costPerInputToken: 0,
|
|
247
|
-
costPerOutputToken: 0,
|
|
191
|
+
costPerInputToken: 0.0000006,
|
|
192
|
+
costPerOutputToken: 0.0000025,
|
|
248
193
|
category: "balanced",
|
|
249
194
|
},
|
|
250
|
-
"openrouter:kimi-k2-
|
|
251
|
-
id: "openrouter:kimi-k2-
|
|
195
|
+
"openrouter:kimi-k2-thinking": {
|
|
196
|
+
id: "openrouter:kimi-k2-thinking",
|
|
252
197
|
provider: "openrouter",
|
|
253
198
|
contextWindow: 262144,
|
|
254
199
|
maxOutputTokens: 8192,
|
|
255
200
|
defaultTemperature: 0.6,
|
|
256
201
|
promptFormat: "markdown",
|
|
257
|
-
supportsReasoning:
|
|
202
|
+
supportsReasoning: true,
|
|
258
203
|
supportsToolCalling: true,
|
|
259
204
|
costPerInputToken: 0.0000006,
|
|
260
205
|
costPerOutputToken: 0.0000025,
|
|
261
|
-
category: "
|
|
206
|
+
category: "powerful",
|
|
262
207
|
},
|
|
263
208
|
"openrouter:devstral-medium": {
|
|
264
209
|
id: "openrouter:devstral-medium",
|
|
@@ -278,20 +223,7 @@ export const openrouterModelRegistry = {
|
|
|
278
223
|
provider: "openrouter",
|
|
279
224
|
contextWindow: 262000,
|
|
280
225
|
maxOutputTokens: 66000,
|
|
281
|
-
defaultTemperature: 0.
|
|
282
|
-
promptFormat: "markdown",
|
|
283
|
-
supportsReasoning: false,
|
|
284
|
-
supportsToolCalling: true,
|
|
285
|
-
costPerInputToken: 0.0000004,
|
|
286
|
-
costPerOutputToken: 0.000002,
|
|
287
|
-
category: "balanced",
|
|
288
|
-
},
|
|
289
|
-
"openrouter:qwen3-coder-free": {
|
|
290
|
-
id: "openrouter:qwen3-coder-free",
|
|
291
|
-
provider: "openrouter",
|
|
292
|
-
contextWindow: 262000,
|
|
293
|
-
maxOutputTokens: 66000,
|
|
294
|
-
defaultTemperature: 0.7,
|
|
226
|
+
defaultTemperature: 0.55,
|
|
295
227
|
promptFormat: "markdown",
|
|
296
228
|
supportsReasoning: false,
|
|
297
229
|
supportsToolCalling: true,
|
|
@@ -304,7 +236,7 @@ export const openrouterModelRegistry = {
|
|
|
304
236
|
provider: "openrouter",
|
|
305
237
|
contextWindow: 128000,
|
|
306
238
|
maxOutputTokens: 65536,
|
|
307
|
-
defaultTemperature: 0.
|
|
239
|
+
defaultTemperature: 0.55,
|
|
308
240
|
promptFormat: "markdown",
|
|
309
241
|
supportsReasoning: false,
|
|
310
242
|
supportsToolCalling: true,
|
|
@@ -317,7 +249,7 @@ export const openrouterModelRegistry = {
|
|
|
317
249
|
provider: "openrouter",
|
|
318
250
|
contextWindow: 256000,
|
|
319
251
|
maxOutputTokens: 32768,
|
|
320
|
-
defaultTemperature: 0.
|
|
252
|
+
defaultTemperature: 0.55,
|
|
321
253
|
promptFormat: "markdown",
|
|
322
254
|
supportsReasoning: false,
|
|
323
255
|
supportsToolCalling: true,
|
|
@@ -338,19 +270,6 @@ export const openrouterModelRegistry = {
|
|
|
338
270
|
costPerOutputToken: 0.0000022,
|
|
339
271
|
category: "balanced",
|
|
340
272
|
},
|
|
341
|
-
"openrouter:glm-4.5": {
|
|
342
|
-
id: "openrouter:glm-4.5",
|
|
343
|
-
provider: "openrouter",
|
|
344
|
-
contextWindow: 128000,
|
|
345
|
-
maxOutputTokens: 8192,
|
|
346
|
-
defaultTemperature: 0.7,
|
|
347
|
-
promptFormat: "markdown",
|
|
348
|
-
supportsReasoning: true,
|
|
349
|
-
supportsToolCalling: true,
|
|
350
|
-
costPerInputToken: 0.0000006,
|
|
351
|
-
costPerOutputToken: 0.0000022,
|
|
352
|
-
category: "balanced",
|
|
353
|
-
},
|
|
354
273
|
"openrouter:gpt-5": {
|
|
355
274
|
id: "openrouter:gpt-5",
|
|
356
275
|
provider: "openrouter",
|
|
@@ -416,17 +335,43 @@ export const openrouterModelRegistry = {
|
|
|
416
335
|
costPerOutputToken: 0.0000002903936,
|
|
417
336
|
category: "fast",
|
|
418
337
|
},
|
|
419
|
-
"openrouter:grok-4-fast
|
|
420
|
-
id: "openrouter:grok-4-fast
|
|
338
|
+
"openrouter:grok-4-fast": {
|
|
339
|
+
id: "openrouter:grok-4-fast",
|
|
421
340
|
provider: "openrouter",
|
|
422
341
|
contextWindow: 2000000,
|
|
423
|
-
maxOutputTokens:
|
|
342
|
+
maxOutputTokens: 30000,
|
|
424
343
|
defaultTemperature: 0.5,
|
|
425
344
|
promptFormat: "markdown",
|
|
426
345
|
supportsReasoning: true,
|
|
427
346
|
supportsToolCalling: true,
|
|
428
|
-
costPerInputToken: 0,
|
|
429
|
-
costPerOutputToken: 0,
|
|
347
|
+
costPerInputToken: 0.0000002,
|
|
348
|
+
costPerOutputToken: 0.0000005,
|
|
349
|
+
category: "fast",
|
|
350
|
+
},
|
|
351
|
+
"openrouter:haiku-4.5": {
|
|
352
|
+
id: "openrouter:haiku-4.5",
|
|
353
|
+
provider: "openrouter",
|
|
354
|
+
contextWindow: 200000,
|
|
355
|
+
maxOutputTokens: 32000,
|
|
356
|
+
defaultTemperature: 1.0,
|
|
357
|
+
promptFormat: "markdown",
|
|
358
|
+
supportsReasoning: true,
|
|
359
|
+
supportsToolCalling: true,
|
|
360
|
+
costPerInputToken: 0.000001,
|
|
361
|
+
costPerOutputToken: 0.000005,
|
|
430
362
|
category: "fast",
|
|
431
363
|
},
|
|
364
|
+
"openrouter:minimax-m2": {
|
|
365
|
+
id: "openrouter:minimax-m2",
|
|
366
|
+
provider: "openrouter",
|
|
367
|
+
contextWindow: 196608,
|
|
368
|
+
maxOutputTokens: 32768,
|
|
369
|
+
defaultTemperature: 0.6,
|
|
370
|
+
promptFormat: "markdown",
|
|
371
|
+
supportsReasoning: true,
|
|
372
|
+
supportsToolCalling: true,
|
|
373
|
+
costPerInputToken: 0.00000015,
|
|
374
|
+
costPerOutputToken: 0.00000045,
|
|
375
|
+
category: "balanced",
|
|
376
|
+
},
|
|
432
377
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const providers: readonly ["anthropic", "openai", "google", "groq", "deepseek", "openrouter", "xai"];
|
|
2
2
|
export type ModelProvider = (typeof providers)[number];
|
|
3
|
-
export declare const models: readonly ("anthropic:opus" | "anthropic:sonnet" | "anthropic:sonnet37" | "anthropic:sonnet37-token-efficient-tools" | "anthropic:sonnet37-128k" | "anthropic:sonnet35" | "anthropic:haiku" | "deepseek:deepseek-chat" | "deepseek:deepseek-reasoner" | "google:flash25lite" | "google:pro25" | "google:flash25" | "groq:kimi-k2-instruct-0905" | "openai:gpt-4.1" | "openai:o3" | "openai:o4-mini" | "openai:codex-mini" | "openrouter:gpt-
|
|
3
|
+
export declare const models: readonly ("anthropic:opus" | "anthropic:sonnet" | "anthropic:sonnet37" | "anthropic:sonnet37-token-efficient-tools" | "anthropic:sonnet37-128k" | "anthropic:sonnet35" | "anthropic:haiku" | "deepseek:deepseek-chat" | "deepseek:deepseek-reasoner" | "google:flash25lite" | "google:pro25" | "google:flash25" | "groq:kimi-k2-instruct-0905" | "openai:gpt-4.1" | "openai:o3" | "openai:o4-mini" | "openai:codex-mini" | "openrouter:gpt-5-codex" | "openrouter:gpt-5-mini" | "openrouter:gpt-5" | "openrouter:deepseek-v3-1" | "openrouter:deepseek-r1" | "openrouter:gemini-flash25" | "openrouter:gemini-pro25" | "openrouter:sonnet-4.5" | "openrouter:opus-4.1" | "openrouter:haiku-4.5" | "openrouter:kimi-k2" | "openrouter:kimi-k2-thinking" | "openrouter:devstral-medium" | "openrouter:qwen3-coder" | "openrouter:qwen3-coder-plus" | "openrouter:qwen3-max" | "openrouter:glm-4.6" | "openrouter:gpt-oss-120b" | "openrouter:grok-code-fast-1" | "openrouter:grok-4-fast" | "openrouter:minimax-m2" | "xai:grok3" | "xai:grok3-mini")[];
|
|
4
4
|
export type ModelName = (typeof models)[number] | (`xai:${string}` & {}) | (`openai:${string}` & {}) | (`anthropic:${string}` & {}) | (`google:${string}` & {}) | (`groq:${string}` & {}) | (`deepseek:${string}` & {}) | (`openrouter:${string}` & {});
|
|
5
5
|
export declare function isSupportedModel(model: unknown): model is ModelName;
|
|
6
6
|
export declare function languageModel(model: ModelName): import("@ai-sdk/provider").LanguageModelV2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../source/models/providers.ts"],"names":[],"mappings":"AAsCA,eAAO,MAAM,SAAS,qFAQZ,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAYvD,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../source/models/providers.ts"],"names":[],"mappings":"AAsCA,eAAO,MAAM,SAAS,qFAQZ,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAYvD,eAAO,MAAM,MAAM,u/BAQT,CAAC;AAEX,MAAM,MAAM,SAAS,GACjB,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,GACvB,CAAC,OAAO,MAAM,EAAE,GAAG,EAAE,CAAC,GACtB,CAAC,UAAU,MAAM,EAAE,GAAG,EAAE,CAAC,GACzB,CAAC,aAAa,MAAM,EAAE,GAAG,EAAE,CAAC,GAC5B,CAAC,UAAU,MAAM,EAAE,GAAG,EAAE,CAAC,GACzB,CAAC,QAAQ,MAAM,EAAE,GAAG,EAAE,CAAC,GACvB,CAAC,YAAY,MAAM,EAAE,GAAG,EAAE,CAAC,GAC3B,CAAC,cAAc,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAElC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAYnE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,8CAE7C;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,SAAS;IAC1C,EAAE,EAAE,CAAC,CAAC;IACN,QAAQ,EAAE,aAAa,CAAC;IAGxB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7C,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;CAC5C;AAGD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,CAQ1D,CAAC;AAGF,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC,CAgB5E;AAED,wBAAgB,aAAa,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CASzD;AAGD,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,CAE5E;AAGD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,GACzC,aAAa,EAAE,CAIjB;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAE5D;AAGD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,IAAI,SAAS,CAEtE;AAGD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,SAAS,EAAE,CAkBd"}
|
package/dist/prompts.d.ts
CHANGED
package/dist/prompts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../source/prompts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../source/prompts.ts"],"names":[],"mappings":"AAsKA,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE;IAC3C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,mBAkBA;AAED,wBAAsB,eAAe,oBAYpC"}
|
package/dist/prompts.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
1
2
|
import { readFile } from "node:fs/promises";
|
|
2
3
|
import { platform } from "node:os";
|
|
3
4
|
import path from "node:path";
|
|
@@ -8,6 +9,7 @@ import { AgentTool } from "./tools/agent.js";
|
|
|
8
9
|
import { BashTool } from "./tools/bash.js";
|
|
9
10
|
import { CodeInterpreterTool } from "./tools/code-interpreter.js";
|
|
10
11
|
import { DeleteFileTool } from "./tools/delete-file.js";
|
|
12
|
+
import { DirectoryTreeTool } from "./tools/directory-tree.js";
|
|
11
13
|
import { EditFileTool } from "./tools/edit-file.js";
|
|
12
14
|
import { getCurrentBranch, inGitDirectory } from "./tools/git-utils.js";
|
|
13
15
|
import { GrepTool } from "./tools/grep.js";
|
|
@@ -72,6 +74,7 @@ function toolUsage() {
|
|
|
72
74
|
- Use \`${WebFetchTool.name}\` for text-based URLs provided in the prompt
|
|
73
75
|
- Use \`${WebSearchTool.name}\` for external research (e.g., libraries, errors)
|
|
74
76
|
- Use \`${AgentTool.name}\` for iterative keyword/file searches. Use this if you need to explore the project to find what you are looking for.
|
|
77
|
+
- Use \`${DirectoryTreeTool.name}\` if you need a high-level overview of the project.
|
|
75
78
|
- If file contents or URLs are provided in the prompt, use them directly without re-fetching
|
|
76
79
|
- Always verify file contents before suggesting changes unless provided in the prompt
|
|
77
80
|
|
|
@@ -87,18 +90,36 @@ function toolUsage() {
|
|
|
87
90
|
### Bash Commands (\`${BashTool.name}\`)
|
|
88
91
|
- Execute commands with a sandboxed executor that supports pipes (|), conditional chaining (&&, ||, ;), and redirection (> >> < 2> 2>>).
|
|
89
92
|
- Run single commands or compose multi-step flows using shell operators.
|
|
90
|
-
- For large gh/git messages
|
|
93
|
+
- For extremely large gh/git messages:
|
|
91
94
|
1. Create temp file with ${SaveFileTool.name} in the project's .tmp directory
|
|
92
95
|
2. Use git commit --file path/to/temp/file or gh pr create --title "Title of PR" --body-file path/to/temp/file
|
|
93
96
|
- Note: The .tmp directory in the current working directory is deleted each time the agent shuts down.
|
|
94
97
|
- Commands execute only within the project directory; always use absolute paths.
|
|
95
98
|
- Avoid interactive commands; prefer non-interactive flags (e.g., npm init -y).
|
|
96
99
|
|
|
100
|
+
#### Additional Installed Tools
|
|
101
|
+
|
|
102
|
+
${getInstalledTools()}
|
|
103
|
+
|
|
97
104
|
### Code Interpreter (\`${CodeInterpreterTool.name}\`)
|
|
98
105
|
- Executes JavaScript code in a separate Node.js process using Node's Permission Model
|
|
99
106
|
- By default, the child process has no permissions except read/write within the current working directory
|
|
100
107
|
- Returns stdout, stderr, and exitCode
|
|
101
|
-
- Use console.log/console.error to produce output
|
|
108
|
+
- Use console.log/console.error to produce output
|
|
109
|
+
|
|
110
|
+
### Git Workflow
|
|
111
|
+
- Always stage changes before attempting to commit them
|
|
112
|
+
- Never amend git commits without approval from the user
|
|
113
|
+
- Never use \`git add -A\` when preparing for multiple, distinct commits; instead, selectively add files or hunks relevant to each commit
|
|
114
|
+
- Always use \`git checkout -b <branch-name>\` with a branch name that accurately reflects the *type* of changes being made
|
|
115
|
+
- Never stage changes for files that are specified in \`.gitignore\`
|
|
116
|
+
- Always stage changes after running a formatter that modifies files, before attempting to commit
|
|
117
|
+
|
|
118
|
+
### Efficiency Guidelines
|
|
119
|
+
- Always use the most efficient workflow to complete tasks
|
|
120
|
+
- Never re-read file content that has already been provided in the current turn or is directly accessible via a tool; instead, reuse the provided content or reference the file path directly
|
|
121
|
+
- Always use direct file paths or established methods to pass content to tools that accept file input, rather than re-creating content in command strings
|
|
122
|
+
- Always run a build after making code changes to verify correctness`;
|
|
102
123
|
}
|
|
103
124
|
function escalationProcedures() {
|
|
104
125
|
return `## Escalation
|
|
@@ -136,7 +157,7 @@ ${gitSection}
|
|
|
136
157
|
- Note: The .tmp directory in the current working directory is deleted each time the agent shuts down.`;
|
|
137
158
|
}
|
|
138
159
|
export async function systemPrompt(options) {
|
|
139
|
-
const { supportsToolCalling = true } = options ?? {};
|
|
160
|
+
const { supportsToolCalling = true, includeRules = true } = options ?? {};
|
|
140
161
|
const prompt = dedent `
|
|
141
162
|
${intro()}
|
|
142
163
|
|
|
@@ -146,7 +167,7 @@ ${supportsToolCalling ? toolUsage() : ""}
|
|
|
146
167
|
|
|
147
168
|
${escalationProcedures()}
|
|
148
169
|
|
|
149
|
-
${await getRules()}
|
|
170
|
+
${includeRules ? await getRules() : ""}
|
|
150
171
|
|
|
151
172
|
${await environmentInfo()}
|
|
152
173
|
`;
|
|
@@ -164,3 +185,31 @@ ${await environmentInfo()}
|
|
|
164
185
|
`;
|
|
165
186
|
return prompt;
|
|
166
187
|
}
|
|
188
|
+
function getInstalledTools() {
|
|
189
|
+
// Check for required bash tools
|
|
190
|
+
const tools = [
|
|
191
|
+
{ name: "git", command: "git --version" },
|
|
192
|
+
{ name: "gh", command: "gh --version" },
|
|
193
|
+
{ name: "rg", command: "rg --version" },
|
|
194
|
+
{ name: "fd", command: "fd --version" },
|
|
195
|
+
{ name: "ast-grep", command: "ast-grep --version" },
|
|
196
|
+
{ name: "jq", command: "jq --version" },
|
|
197
|
+
{ name: "yq", command: "yq --version" },
|
|
198
|
+
];
|
|
199
|
+
const toolStatus = tools
|
|
200
|
+
.map((tool) => {
|
|
201
|
+
let status = false;
|
|
202
|
+
try {
|
|
203
|
+
execSync(tool.command, { stdio: "ignore", timeout: 5000 });
|
|
204
|
+
status = true;
|
|
205
|
+
}
|
|
206
|
+
catch (_error) {
|
|
207
|
+
// Ignore error, tool is not installed
|
|
208
|
+
}
|
|
209
|
+
return [tool.name, status];
|
|
210
|
+
})
|
|
211
|
+
.filter((tool) => tool[1])
|
|
212
|
+
.map((tool) => tool[0])
|
|
213
|
+
.join("\n");
|
|
214
|
+
return toolStatus;
|
|
215
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Terminal } from "../terminal/index.ts";
|
|
2
2
|
import type { Message } from "../tools/types.ts";
|
|
3
|
-
export declare function displayToolMessages(
|
|
3
|
+
export declare function displayToolMessages(message: Message, terminal: Terminal): void;
|
|
4
4
|
//# sourceMappingURL=display-tool-messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-tool-messages.d.ts","sourceRoot":"","sources":["../../source/repl/display-tool-messages.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"display-tool-messages.d.ts","sourceRoot":"","sources":["../../source/repl/display-tool-messages.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,QAmBvE"}
|
|
@@ -1,55 +1,58 @@
|
|
|
1
|
+
import { capitalize } from "../formatting.js";
|
|
1
2
|
import { logger } from "../logger.js";
|
|
2
|
-
import { isMarkdown } from "../terminal/markdown-utils.js";
|
|
3
3
|
import style from "../terminal/style.js";
|
|
4
|
-
export function displayToolMessages(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
case "tool-error":
|
|
19
|
-
handleToolErrorMessage(String(msg.data), terminal);
|
|
20
|
-
break;
|
|
21
|
-
case "tool-init":
|
|
22
|
-
break;
|
|
23
|
-
default:
|
|
24
|
-
logger.debug(`Unhandled tool message event: ${msg.event}`);
|
|
25
|
-
break;
|
|
26
|
-
}
|
|
4
|
+
export function displayToolMessages(message, terminal) {
|
|
5
|
+
switch (message.event) {
|
|
6
|
+
case "tool-completion":
|
|
7
|
+
handleToolCompletionMessage(message, terminal);
|
|
8
|
+
break;
|
|
9
|
+
case "tool-error":
|
|
10
|
+
handleToolErrorMessage(message, terminal);
|
|
11
|
+
break;
|
|
12
|
+
case "tool-init":
|
|
13
|
+
handleToolInitMessage(message, terminal);
|
|
14
|
+
break;
|
|
15
|
+
default:
|
|
16
|
+
logger.debug(`Unhandled tool message event: ${message.event}`);
|
|
17
|
+
break;
|
|
27
18
|
}
|
|
28
19
|
terminal.lineBreak();
|
|
29
20
|
}
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
terminal.write(style.green(content));
|
|
40
|
-
terminal.lineBreak();
|
|
41
|
-
}
|
|
42
|
-
terminal.hr();
|
|
43
|
-
}
|
|
21
|
+
function handleToolInitMessage(message, terminal) {
|
|
22
|
+
const indicator = style.blue.bold("●");
|
|
23
|
+
const data = String(message.data);
|
|
24
|
+
const newlineIndex = data.indexOf("\n");
|
|
25
|
+
terminal.write(`${indicator} ${style.bold(capitalize(message.name))} `);
|
|
26
|
+
if (newlineIndex === -1) {
|
|
27
|
+
terminal.writeln(style.bold(data));
|
|
44
28
|
}
|
|
45
29
|
else {
|
|
46
|
-
|
|
30
|
+
const firstLine = data.slice(0, newlineIndex);
|
|
31
|
+
const remainingLines = data.slice(newlineIndex + 1);
|
|
32
|
+
terminal.writeln(style.bold(firstLine));
|
|
33
|
+
if (remainingLines.trim()) {
|
|
34
|
+
terminal.display(remainingLines);
|
|
35
|
+
}
|
|
47
36
|
}
|
|
48
37
|
}
|
|
49
|
-
function handleToolCompletionMessage(
|
|
50
|
-
|
|
38
|
+
function handleToolCompletionMessage(message, terminal) {
|
|
39
|
+
const indicator = style.green.bold("●");
|
|
40
|
+
const data = String(message.data);
|
|
41
|
+
const newlineIndex = data.indexOf("\n");
|
|
42
|
+
terminal.write(`${indicator} ${style.bold(capitalize(message.name))} `);
|
|
43
|
+
if (newlineIndex === -1) {
|
|
44
|
+
terminal.writeln(style.bold(data));
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
const firstLine = data.slice(0, newlineIndex);
|
|
48
|
+
const remainingLines = data.slice(newlineIndex + 1);
|
|
49
|
+
terminal.writeln(style.bold(firstLine));
|
|
50
|
+
if (remainingLines.trim()) {
|
|
51
|
+
terminal.display(remainingLines);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
51
54
|
}
|
|
52
|
-
function handleToolErrorMessage(
|
|
53
|
-
|
|
54
|
-
terminal.
|
|
55
|
+
function handleToolErrorMessage(message, terminal) {
|
|
56
|
+
const indicator = style.red.bold("●");
|
|
57
|
+
terminal.writeln(`${indicator} ${style.bold(capitalize(message.name))} ${message.data}`);
|
|
55
58
|
}
|