@travisennis/acai 0.0.9 → 0.0.11
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 +51 -760
- package/bin/acai +52 -0
- package/dist/agent/index.d.ts +12 -2
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +380 -199
- package/dist/agent/sub-agent.d.ts +23 -0
- package/dist/agent/sub-agent.d.ts.map +1 -0
- package/dist/agent/sub-agent.js +109 -0
- package/dist/cli/index.d.ts +26 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/{cli.js → cli/index.js} +84 -77
- package/dist/{stdin.d.ts → cli/stdin.d.ts} +2 -1
- package/dist/cli/stdin.d.ts.map +1 -0
- package/dist/{stdin.js → cli/stdin.js} +11 -0
- package/dist/commands/copy/index.js +2 -2
- package/dist/commands/copy/utils.d.ts.map +1 -1
- package/dist/commands/copy/utils.js +15 -13
- package/dist/commands/generate-rules/index.d.ts +1 -1
- package/dist/commands/generate-rules/index.d.ts.map +1 -1
- package/dist/commands/generate-rules/index.js +16 -101
- package/dist/commands/generate-rules/service.d.ts +22 -0
- package/dist/commands/generate-rules/service.d.ts.map +1 -0
- package/dist/commands/generate-rules/service.js +103 -0
- package/dist/commands/handoff/index.js +2 -2
- package/dist/commands/health/index.js +1 -1
- package/dist/commands/health/utils.d.ts +3 -2
- package/dist/commands/health/utils.d.ts.map +1 -1
- package/dist/commands/health/utils.js +6 -0
- package/dist/commands/history/index.d.ts +1 -1
- package/dist/commands/history/index.d.ts.map +1 -1
- package/dist/commands/history/index.js +17 -18
- package/dist/commands/history/types.d.ts +38 -0
- package/dist/commands/history/types.d.ts.map +1 -1
- package/dist/commands/history/utils.d.ts.map +1 -1
- package/dist/commands/history/utils.js +63 -58
- package/dist/commands/init/index.d.ts.map +1 -1
- package/dist/commands/init/index.js +3 -8
- package/dist/commands/init-project/index.d.ts.map +1 -1
- package/dist/commands/init-project/index.js +3 -3
- package/dist/commands/init-project/utils.d.ts +2 -1
- package/dist/commands/init-project/utils.d.ts.map +1 -1
- package/dist/commands/init-project/utils.js +10 -2
- package/dist/commands/list-tools/index.d.ts.map +1 -1
- package/dist/commands/list-tools/index.js +7 -31
- package/dist/commands/manager.d.ts +2 -2
- package/dist/commands/manager.d.ts.map +1 -1
- package/dist/commands/manager.js +55 -33
- package/dist/commands/model/index.d.ts.map +1 -1
- package/dist/commands/model/index.js +20 -151
- package/dist/commands/model/model-panel.d.ts +4 -0
- package/dist/commands/model/model-panel.d.ts.map +1 -0
- package/dist/commands/model/model-panel.js +144 -0
- package/dist/commands/paste/index.d.ts.map +1 -1
- package/dist/commands/paste/index.js +59 -62
- package/dist/commands/paste/utils.d.ts.map +1 -1
- package/dist/commands/paste/utils.js +88 -58
- package/dist/commands/pickup/index.d.ts.map +1 -1
- package/dist/commands/pickup/index.js +6 -3
- package/dist/commands/pickup/utils.js +3 -3
- package/dist/commands/resources/index.d.ts.map +1 -1
- package/dist/commands/resources/index.js +33 -50
- package/dist/commands/review/index.d.ts.map +1 -1
- package/dist/commands/review/index.js +3 -117
- package/dist/commands/review/review-panel.d.ts +3 -0
- package/dist/commands/review/review-panel.d.ts.map +1 -0
- package/dist/commands/review/review-panel.js +186 -0
- package/dist/commands/review/utils.d.ts +15 -1
- package/dist/commands/review/utils.d.ts.map +1 -1
- package/dist/commands/review/utils.js +127 -68
- package/dist/commands/session/index.d.ts +1 -1
- package/dist/commands/session/index.d.ts.map +1 -1
- package/dist/commands/session/index.js +124 -135
- package/dist/commands/shell/index.d.ts.map +1 -1
- package/dist/commands/shell/index.js +16 -1
- package/dist/commands/types.d.ts +2 -2
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/{config.d.ts → config/index.d.ts} +20 -9
- package/dist/config/index.d.ts.map +1 -0
- package/dist/{config.js → config/index.js} +43 -42
- package/dist/execution/index.d.ts.map +1 -1
- package/dist/execution/index.js +75 -55
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +148 -141
- package/dist/middleware/cache.d.ts.map +1 -1
- package/dist/middleware/cache.js +18 -36
- package/dist/models/ai-config.d.ts +1 -0
- package/dist/models/ai-config.d.ts.map +1 -1
- package/dist/models/ai-config.js +4 -3
- package/dist/models/anthropic-provider.d.ts +2 -5
- package/dist/models/anthropic-provider.d.ts.map +1 -1
- package/dist/models/anthropic-provider.js +3 -70
- package/dist/models/deepseek-provider.d.ts +1 -0
- package/dist/models/deepseek-provider.d.ts.map +1 -1
- package/dist/models/google-provider.d.ts +2 -3
- package/dist/models/google-provider.d.ts.map +1 -1
- package/dist/models/google-provider.js +0 -26
- package/dist/models/groq-provider.d.ts +1 -0
- package/dist/models/groq-provider.d.ts.map +1 -1
- package/dist/models/manager.d.ts +13 -2
- package/dist/models/manager.d.ts.map +1 -1
- package/dist/models/manager.js +20 -8
- package/dist/models/openai-provider.d.ts +2 -5
- package/dist/models/openai-provider.d.ts.map +1 -1
- package/dist/models/openai-provider.js +0 -52
- package/dist/models/opencode-go-provider.d.ts +25 -0
- package/dist/models/opencode-go-provider.d.ts.map +1 -0
- package/dist/models/opencode-go-provider.js +78 -0
- package/dist/models/opencode-zen-provider.d.ts +7 -3
- package/dist/models/opencode-zen-provider.d.ts.map +1 -1
- package/dist/models/opencode-zen-provider.js +49 -10
- package/dist/models/openrouter-provider.d.ts +27 -31
- package/dist/models/openrouter-provider.d.ts.map +1 -1
- package/dist/models/openrouter-provider.js +121 -180
- package/dist/models/providers.d.ts +3 -3
- package/dist/models/providers.d.ts.map +1 -1
- package/dist/models/providers.js +6 -0
- package/dist/models/xai-provider.d.ts +4 -3
- package/dist/models/xai-provider.d.ts.map +1 -1
- package/dist/models/xai-provider.js +18 -18
- package/dist/modes/manager.d.ts +24 -0
- package/dist/modes/manager.d.ts.map +1 -0
- package/dist/modes/manager.js +77 -0
- package/dist/modes/prompts.d.ts +2 -0
- package/dist/modes/prompts.d.ts.map +1 -0
- package/dist/modes/prompts.js +142 -0
- package/dist/prompts/mentions.d.ts +11 -0
- package/dist/prompts/mentions.d.ts.map +1 -0
- package/dist/{mentions.js → prompts/mentions.js} +55 -85
- package/dist/{prompts.d.ts → prompts/system-prompt.d.ts} +7 -2
- package/dist/prompts/system-prompt.d.ts.map +1 -0
- package/dist/{prompts.js → prompts/system-prompt.js} +31 -16
- package/dist/repl/index.d.ts +174 -0
- package/dist/repl/index.d.ts.map +1 -0
- package/dist/{repl-new.js → repl/index.js} +397 -76
- package/dist/repl/project-status.d.ts +1 -0
- package/dist/repl/project-status.d.ts.map +1 -1
- package/dist/repl/project-status.js +4 -1
- package/dist/sessions/manager.d.ts +92 -0
- package/dist/sessions/manager.d.ts.map +1 -1
- package/dist/sessions/manager.js +262 -9
- package/dist/sessions/summary.d.ts +4 -0
- package/dist/sessions/summary.d.ts.map +1 -0
- package/dist/sessions/summary.js +30 -0
- package/dist/skills/index.d.ts +29 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +294 -0
- package/dist/subagents/index.d.ts +16 -0
- package/dist/subagents/index.d.ts.map +1 -0
- package/dist/subagents/index.js +231 -0
- package/dist/terminal/control.d.ts +1 -1
- package/dist/terminal/control.d.ts.map +1 -1
- package/dist/terminal/control.js +3 -3
- package/dist/terminal/east-asian-width.d.ts.map +1 -1
- package/dist/terminal/east-asian-width.js +404 -351
- package/dist/terminal/keys.d.ts +17 -0
- package/dist/terminal/keys.d.ts.map +1 -1
- package/dist/terminal/keys.js +37 -0
- package/dist/terminal/select-prompt.d.ts.map +1 -1
- package/dist/terminal/select-prompt.js +24 -12
- package/dist/terminal/string-width.d.ts.map +1 -1
- package/dist/terminal/string-width.js +25 -27
- package/dist/terminal/style.d.ts.map +1 -1
- package/dist/terminal/style.js +4 -7
- package/dist/terminal/supports-color.d.ts.map +1 -1
- package/dist/terminal/supports-color.js +41 -27
- package/dist/terminal/table/cell.d.ts +12 -0
- package/dist/terminal/table/cell.d.ts.map +1 -1
- package/dist/terminal/table/cell.js +40 -25
- package/dist/terminal/table/layout-manager.d.ts.map +1 -1
- package/dist/terminal/table/layout-manager.js +100 -68
- package/dist/terminal/table/utils.d.ts +1 -1
- package/dist/terminal/table/utils.d.ts.map +1 -1
- package/dist/terminal/table/utils.js +17 -10
- package/dist/terminal/wrap-ansi.d.ts.map +1 -1
- package/dist/terminal/wrap-ansi.js +174 -105
- package/dist/tokens/tracker.d.ts +1 -0
- package/dist/tokens/tracker.d.ts.map +1 -1
- package/dist/tokens/tracker.js +3 -0
- package/dist/tools/agent.d.ts +27 -0
- package/dist/tools/agent.d.ts.map +1 -0
- package/dist/tools/agent.js +81 -0
- package/dist/tools/apply-patch.d.ts +62 -0
- package/dist/tools/apply-patch.d.ts.map +1 -0
- package/dist/tools/apply-patch.js +377 -0
- package/dist/tools/bash.d.ts +4 -3
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +349 -141
- package/dist/tools/directory-tree.d.ts +3 -3
- package/dist/tools/directory-tree.d.ts.map +1 -1
- package/dist/tools/directory-tree.js +8 -5
- package/dist/tools/dynamic-tool-loader.d.ts +3 -6
- package/dist/tools/dynamic-tool-loader.d.ts.map +1 -1
- package/dist/tools/dynamic-tool-loader.js +20 -4
- package/dist/tools/edit-file.d.ts +7 -7
- package/dist/tools/edit-file.d.ts.map +1 -1
- package/dist/tools/edit-file.js +292 -85
- package/dist/tools/glob.d.ts +6 -6
- package/dist/tools/glob.d.ts.map +1 -1
- package/dist/tools/glob.js +110 -63
- package/dist/tools/grep.d.ts +15 -12
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +315 -193
- package/dist/tools/index.d.ts +114 -9
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +39 -24
- package/dist/tools/ls.d.ts +2 -2
- package/dist/tools/ls.d.ts.map +1 -1
- package/dist/tools/ls.js +7 -5
- package/dist/tools/read-file.d.ts +4 -6
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +84 -39
- package/dist/tools/save-file.d.ts +3 -3
- package/dist/tools/save-file.d.ts.map +1 -1
- package/dist/tools/save-file.js +36 -31
- package/dist/tools/skill.d.ts +23 -0
- package/dist/tools/skill.d.ts.map +1 -0
- package/dist/tools/skill.js +65 -0
- package/dist/tools/think.d.ts.map +1 -1
- package/dist/tools/think.js +2 -9
- package/dist/tools/utils.d.ts +2 -0
- package/dist/tools/utils.d.ts.map +1 -1
- package/dist/tools/utils.js +12 -0
- package/dist/tools/web-fetch.d.ts +50 -0
- package/dist/tools/web-fetch.d.ts.map +1 -0
- package/dist/tools/web-fetch.js +446 -0
- package/dist/tools/web-search.d.ts +44 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +226 -0
- package/dist/tui/autocomplete/attachment-provider.d.ts +3 -6
- package/dist/tui/autocomplete/attachment-provider.d.ts.map +1 -1
- package/dist/tui/autocomplete/attachment-provider.js +25 -78
- package/dist/tui/autocomplete/base-provider.d.ts +1 -0
- package/dist/tui/autocomplete/base-provider.d.ts.map +1 -1
- package/dist/tui/autocomplete/combined-provider.d.ts +1 -4
- package/dist/tui/autocomplete/combined-provider.d.ts.map +1 -1
- package/dist/tui/autocomplete/combined-provider.js +3 -17
- package/dist/tui/autocomplete/command-provider.d.ts +1 -0
- package/dist/tui/autocomplete/command-provider.d.ts.map +1 -1
- package/dist/tui/autocomplete/command-provider.js +3 -0
- package/dist/tui/autocomplete/file-search-provider.d.ts +2 -1
- package/dist/tui/autocomplete/file-search-provider.d.ts.map +1 -1
- package/dist/tui/autocomplete/file-search-provider.js +37 -17
- package/dist/tui/autocomplete/skill-provider.d.ts +17 -0
- package/dist/tui/autocomplete/skill-provider.d.ts.map +1 -0
- package/dist/tui/autocomplete/skill-provider.js +49 -0
- package/dist/tui/autocomplete/utils.d.ts +2 -1
- package/dist/tui/autocomplete/utils.d.ts.map +1 -1
- package/dist/tui/autocomplete/utils.js +25 -23
- package/dist/tui/autocomplete.d.ts +2 -2
- package/dist/tui/autocomplete.d.ts.map +1 -1
- package/dist/tui/autocomplete.js +3 -5
- package/dist/tui/components/assistant-message.d.ts.map +1 -1
- package/dist/tui/components/assistant-message.js +0 -4
- package/dist/tui/components/editor.d.ts +18 -3
- package/dist/tui/components/editor.d.ts.map +1 -1
- package/dist/tui/components/editor.js +211 -237
- package/dist/tui/components/footer.d.ts +6 -4
- package/dist/tui/components/footer.d.ts.map +1 -1
- package/dist/tui/components/footer.js +49 -25
- package/dist/tui/components/markdown.d.ts +10 -7
- package/dist/tui/components/markdown.d.ts.map +1 -1
- package/dist/tui/components/markdown.js +57 -39
- package/dist/tui/components/modal.d.ts.map +1 -1
- package/dist/tui/components/modal.js +35 -33
- package/dist/tui/components/notification.d.ts +13 -2
- package/dist/tui/components/notification.d.ts.map +1 -1
- package/dist/tui/components/notification.js +36 -2
- package/dist/tui/components/progress-bar.js +1 -1
- package/dist/tui/components/select-list.d.ts +1 -0
- package/dist/tui/components/select-list.d.ts.map +1 -1
- package/dist/tui/components/select-list.js +14 -11
- package/dist/tui/components/text.d.ts +16 -0
- package/dist/tui/components/text.d.ts.map +1 -1
- package/dist/tui/components/text.js +72 -57
- package/dist/tui/components/thinking-block.d.ts +9 -0
- package/dist/tui/components/thinking-block.d.ts.map +1 -1
- package/dist/tui/components/thinking-block.js +43 -11
- package/dist/tui/components/tool-execution.d.ts +5 -1
- package/dist/tui/components/tool-execution.d.ts.map +1 -1
- package/dist/tui/components/tool-execution.js +19 -10
- package/dist/tui/components/user-message.d.ts.map +1 -1
- package/dist/tui/components/user-message.js +0 -3
- package/dist/tui/components/welcome.d.ts +2 -1
- package/dist/tui/components/welcome.d.ts.map +1 -1
- package/dist/tui/components/welcome.js +2 -2
- package/dist/tui/editor-launcher.d.ts +3 -2
- package/dist/tui/editor-launcher.d.ts.map +1 -1
- package/dist/tui/index.d.ts +0 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/terminal.d.ts.map +1 -1
- package/dist/tui/terminal.js +10 -2
- package/dist/tui/tui.d.ts +43 -0
- package/dist/tui/tui.d.ts.map +1 -1
- package/dist/tui/tui.js +166 -41
- package/dist/tui/utils.d.ts +1 -5
- package/dist/tui/utils.d.ts.map +1 -1
- package/dist/tui/utils.js +271 -44
- package/dist/utils/bash/parse.d.ts +19 -0
- package/dist/utils/bash/parse.d.ts.map +1 -0
- package/dist/utils/bash/parse.js +223 -0
- package/dist/utils/bash/quote.d.ts +6 -0
- package/dist/utils/bash/quote.d.ts.map +1 -0
- package/dist/utils/bash/quote.js +23 -0
- package/dist/utils/bash.d.ts.map +1 -1
- package/dist/utils/bash.js +211 -126
- package/dist/utils/command-protection.d.ts +28 -0
- package/dist/utils/command-protection.d.ts.map +1 -0
- package/dist/utils/command-protection.js +324 -0
- package/dist/utils/dedent.d.ts.map +1 -0
- package/dist/utils/env-expand.d.ts +2 -0
- package/dist/utils/env-expand.d.ts.map +1 -0
- package/dist/utils/env-expand.js +8 -0
- package/dist/utils/filesystem/path-display.d.ts +11 -0
- package/dist/utils/filesystem/path-display.d.ts.map +1 -0
- package/dist/utils/filesystem/path-display.js +32 -0
- package/dist/utils/filesystem/security.d.ts +2 -2
- package/dist/utils/filesystem/security.d.ts.map +1 -1
- package/dist/utils/filesystem/security.js +28 -30
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/{formatting.js → utils/formatting.js} +1 -1
- package/dist/utils/git.d.ts +4 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +30 -0
- package/dist/utils/glob.d.ts +1 -1
- package/dist/utils/glob.d.ts.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/{logger.js → utils/logger.js} +1 -1
- package/dist/utils/parsing.d.ts.map +1 -0
- package/dist/utils/process.d.ts.map +1 -1
- package/dist/utils/process.js +90 -37
- package/dist/utils/templates.d.ts +2 -0
- package/dist/utils/templates.d.ts.map +1 -0
- package/dist/utils/templates.js +24 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/{version.js → utils/version.js} +1 -1
- package/package.json +35 -26
- package/dist/cli.d.ts +0 -23
- package/dist/cli.d.ts.map +0 -1
- package/dist/commands/add-directory/types.d.ts +0 -6
- package/dist/commands/add-directory/types.d.ts.map +0 -1
- package/dist/commands/add-directory/types.js +0 -1
- package/dist/commands/copy/types.d.ts +0 -3
- package/dist/commands/copy/types.d.ts.map +0 -1
- package/dist/commands/copy/types.js +0 -1
- package/dist/commands/exit/index.d.ts +0 -10
- package/dist/commands/exit/index.d.ts.map +0 -1
- package/dist/commands/exit/index.js +0 -21
- package/dist/commands/exit/types.d.ts +0 -8
- package/dist/commands/exit/types.d.ts.map +0 -1
- package/dist/commands/exit/types.js +0 -1
- package/dist/commands/exit/utils.d.ts +0 -2
- package/dist/commands/exit/utils.d.ts.map +0 -1
- package/dist/commands/exit/utils.js +0 -13
- package/dist/commands/prompt/index.d.ts +0 -5
- package/dist/commands/prompt/index.d.ts.map +0 -1
- package/dist/commands/prompt/index.js +0 -122
- package/dist/commands/prompt/types.d.ts +0 -15
- package/dist/commands/prompt/types.d.ts.map +0 -1
- package/dist/commands/prompt/types.js +0 -1
- package/dist/commands/prompt/utils.d.ts +0 -12
- package/dist/commands/prompt/utils.d.ts.map +0 -1
- package/dist/commands/prompt/utils.js +0 -107
- package/dist/commands/reset/index.d.ts +0 -3
- package/dist/commands/reset/index.d.ts.map +0 -1
- package/dist/commands/reset/index.js +0 -25
- package/dist/commands/reset/types.d.ts +0 -1
- package/dist/commands/reset/types.d.ts.map +0 -1
- package/dist/commands/reset/types.js +0 -3
- package/dist/commands/review/types.d.ts +0 -12
- package/dist/commands/review/types.d.ts.map +0 -1
- package/dist/commands/review/types.js +0 -1
- package/dist/commands/save/index.d.ts +0 -3
- package/dist/commands/save/index.d.ts.map +0 -1
- package/dist/commands/save/index.js +0 -19
- package/dist/config.d.ts.map +0 -1
- package/dist/dedent.d.ts.map +0 -1
- package/dist/formatting.d.ts.map +0 -1
- package/dist/logger.d.ts.map +0 -1
- package/dist/mentions.d.ts +0 -14
- package/dist/mentions.d.ts.map +0 -1
- package/dist/parsing.d.ts.map +0 -1
- package/dist/prompts.d.ts.map +0 -1
- package/dist/repl-new.d.ts +0 -65
- package/dist/repl-new.d.ts.map +0 -1
- package/dist/skills.d.ts +0 -16
- package/dist/skills.d.ts.map +0 -1
- package/dist/skills.js +0 -233
- package/dist/stdin.d.ts.map +0 -1
- package/dist/tui/autocomplete/path-provider.d.ts +0 -21
- package/dist/tui/autocomplete/path-provider.d.ts.map +0 -1
- package/dist/tui/autocomplete/path-provider.js +0 -164
- package/dist/utils/iterables.d.ts +0 -2
- package/dist/utils/iterables.d.ts.map +0 -1
- package/dist/utils/iterables.js +0 -6
- package/dist/version.d.ts.map +0 -1
- /package/dist/{dedent.d.ts → utils/dedent.d.ts} +0 -0
- /package/dist/{dedent.js → utils/dedent.js} +0 -0
- /package/dist/{formatting.d.ts → utils/formatting.d.ts} +0 -0
- /package/dist/{logger.d.ts → utils/logger.d.ts} +0 -0
- /package/dist/{parsing.d.ts → utils/parsing.d.ts} +0 -0
- /package/dist/{parsing.js → utils/parsing.js} +0 -0
- /package/dist/{version.d.ts → utils/version.d.ts} +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { createOpenResponses } from "@ai-sdk/open-responses";
|
|
2
2
|
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
|
|
3
3
|
import { objectKeys } from "@travisennis/stdlib/object";
|
|
4
4
|
import { customProvider } from "ai";
|
|
5
|
+
// Original OpenAI-compatible client for most models
|
|
5
6
|
const openRouterClient = createOpenAICompatible({
|
|
6
7
|
name: "openrouter",
|
|
7
8
|
apiKey: process.env["OPENROUTER_API_KEY"] ?? "",
|
|
@@ -12,66 +13,54 @@ const openRouterClient = createOpenAICompatible({
|
|
|
12
13
|
"X-Title": "acai",
|
|
13
14
|
},
|
|
14
15
|
});
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
// Open Responses client for GPT models
|
|
17
|
+
const openResponses = createOpenResponses({
|
|
18
|
+
name: "openrouter",
|
|
19
|
+
url: "https://openrouter.ai/api/v1/responses",
|
|
20
|
+
apiKey: process.env["OPENROUTER_API_KEY"] ?? "",
|
|
21
|
+
headers: {
|
|
22
|
+
"HTTP-Referer": "https://github.com/travisennis/acai-ts",
|
|
23
|
+
"X-Title": "acai",
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
// Models using OpenAI-compatible API
|
|
25
27
|
const openrouterModels = {
|
|
26
|
-
"claude-3-5-sonnet": openRouterClient("anthropic/claude-3.5-sonnet"),
|
|
27
28
|
"deepseek-v3-2": openRouterClient("deepseek/deepseek-v3.2"),
|
|
28
|
-
"gemini-3-pro": openRouterClient("google/gemini-3-pro-preview"),
|
|
29
29
|
"glm-4-7": openRouterClient("z-ai/glm-4.7"),
|
|
30
|
-
"
|
|
31
|
-
"
|
|
30
|
+
"glm-4-7-flash": openRouterClient("z-ai/glm-4.7-flash"),
|
|
31
|
+
"hunter-alpha": openRouterClient("openrouter/hunter-alpha"),
|
|
32
|
+
"minimax-m2-5": openRouterClient("minimax/minimax-m2.5"),
|
|
33
|
+
"minimax-m2-7": openRouterClient("minimax/minimax-m2.7"),
|
|
34
|
+
"nemotron-3-super-120b-a12b-free": openRouterClient("nvidia/nemotron-3-super-120b-a12b:free"),
|
|
32
35
|
"sonnet-4.5": openRouterClient("anthropic/claude-sonnet-4.5"),
|
|
33
|
-
"opus-4.
|
|
36
|
+
"opus-4.6": openRouterClient("anthropic/claude-opus-4.6"),
|
|
34
37
|
"haiku-4.5": openRouterClient("anthropic/claude-haiku-4.5"),
|
|
35
|
-
"kimi-k2": openRouterClient("moonshotai/kimi-k2
|
|
36
|
-
"kimi-k2-thinking": openRouterClient("moonshotai/kimi-k2-thinking"),
|
|
37
|
-
"devstral-medium": openRouterClient("mistralai/devstral-medium"),
|
|
38
|
-
"devstral-2512-free": openRouterClient("mistralai/devstral-2512:free"),
|
|
39
|
-
"qwen3-coder": openRouterClient("qwen/qwen3-coder:exacto"),
|
|
40
|
-
"qwen3-coder-plus": openRouterClient("qwen/qwen3-coder-plus"),
|
|
38
|
+
"kimi-k2-5": openRouterClient("moonshotai/kimi-k2.5"),
|
|
41
39
|
"qwen3-max": openRouterClient("qwen/qwen3-max"),
|
|
42
|
-
"
|
|
43
|
-
"
|
|
40
|
+
"qwen3-max-thinking": openRouterClient("qwen/qwen3-max-thinking"),
|
|
41
|
+
"qwen3-coder-next": openRouterClient("qwen/qwen3-coder-next"),
|
|
42
|
+
"glm-5": openRouterClient("z-ai/glm-5"),
|
|
44
43
|
"grok-code-fast-1": openRouterClient("x-ai/grok-code-fast-1"),
|
|
45
|
-
"grok-4-fast": openRouterClient("x-ai/grok-4-fast"),
|
|
46
|
-
"gpt-5.1": openRouterClient("openai/gpt-5.1"),
|
|
47
|
-
"gpt-5.1-codex": openRouterClient("openai/gpt-5.1-codex"),
|
|
48
|
-
"gpt-5.1-codex-mini": openRouterClient("openai/gpt-5.1-codex-mini"),
|
|
49
|
-
"gpt-5.1-codex-max": openRouterClient("openai/gpt-5.1-codex-max"),
|
|
50
|
-
"gpt-5.2": openRouterClient("openai/gpt-5.2"),
|
|
51
|
-
"gpt-5.2-codex": openRouterClient("openai/gpt-5.2-codex"),
|
|
52
|
-
"minimax-m2": openRouterClient("minimax/minimax-m2"),
|
|
53
|
-
"gemini-3-flash-preview": openRouterClient("google/gemini-3-flash-preview"),
|
|
44
|
+
"grok-4-1-fast": openRouterClient("x-ai/grok-4.1-fast"),
|
|
54
45
|
};
|
|
55
|
-
|
|
46
|
+
// Models using Open Responses API (GPT models)
|
|
47
|
+
const openResponsesModels = {
|
|
48
|
+
"gpt-oss-120b": openResponses("openai/gpt-oss-120b:exacto"),
|
|
49
|
+
"gpt-5.1-codex-mini": openResponses("openai/gpt-5.1-codex-mini"),
|
|
50
|
+
"gpt-5.1-codex-max": openResponses("openai/gpt-5.1-codex-max"),
|
|
51
|
+
"gpt-5.2": openResponses("openai/gpt-5.2"),
|
|
52
|
+
"gpt-5.2-codex": openResponses("openai/gpt-5.2-codex"),
|
|
53
|
+
"gpt-5-3-codex": openResponses("openai/gpt-5.3-codex"),
|
|
54
|
+
};
|
|
55
|
+
const allModels = { ...openrouterModels, ...openResponsesModels };
|
|
56
|
+
export const openrouterModelNames = objectKeys(allModels).map((key) => `openrouter:${key}`);
|
|
56
57
|
export const openrouterProvider = {
|
|
57
58
|
openrouter: customProvider({
|
|
58
|
-
languageModels:
|
|
59
|
+
languageModels: allModels,
|
|
59
60
|
fallbackProvider: openRouterClient,
|
|
60
61
|
}),
|
|
61
62
|
};
|
|
62
63
|
export const openrouterModelRegistry = {
|
|
63
|
-
"openrouter:claude-3-5-sonnet": {
|
|
64
|
-
id: "openrouter:claude-3-5-sonnet",
|
|
65
|
-
provider: "openrouter",
|
|
66
|
-
contextWindow: 200000,
|
|
67
|
-
maxOutputTokens: 8192,
|
|
68
|
-
defaultTemperature: 0.5,
|
|
69
|
-
promptFormat: "markdown",
|
|
70
|
-
supportsReasoning: false,
|
|
71
|
-
supportsToolCalling: true,
|
|
72
|
-
costPerInputToken: 0.000006,
|
|
73
|
-
costPerOutputToken: 0.00003,
|
|
74
|
-
},
|
|
75
64
|
"openrouter:deepseek-v3-2": {
|
|
76
65
|
id: "openrouter:deepseek-v3-2",
|
|
77
66
|
provider: "openrouter",
|
|
@@ -84,20 +73,20 @@ export const openrouterModelRegistry = {
|
|
|
84
73
|
costPerInputToken: 0.00000027,
|
|
85
74
|
costPerOutputToken: 0.0000004,
|
|
86
75
|
},
|
|
87
|
-
"openrouter:
|
|
88
|
-
id: "openrouter:
|
|
76
|
+
"openrouter:glm-4-7": {
|
|
77
|
+
id: "openrouter:glm-4-7",
|
|
89
78
|
provider: "openrouter",
|
|
90
|
-
contextWindow:
|
|
91
|
-
maxOutputTokens:
|
|
79
|
+
contextWindow: 200000,
|
|
80
|
+
maxOutputTokens: 131072,
|
|
92
81
|
defaultTemperature: 0.5,
|
|
93
82
|
promptFormat: "markdown",
|
|
94
83
|
supportsReasoning: true,
|
|
95
84
|
supportsToolCalling: true,
|
|
96
|
-
costPerInputToken:
|
|
97
|
-
costPerOutputToken: 0.
|
|
85
|
+
costPerInputToken: 1.1e-7,
|
|
86
|
+
costPerOutputToken: 0.0000022,
|
|
98
87
|
},
|
|
99
|
-
"openrouter:glm-4-7": {
|
|
100
|
-
id: "openrouter:glm-4-7",
|
|
88
|
+
"openrouter:glm-4-7-flash": {
|
|
89
|
+
id: "openrouter:glm-4-7-flash",
|
|
101
90
|
provider: "openrouter",
|
|
102
91
|
contextWindow: 200000,
|
|
103
92
|
maxOutputTokens: 131072,
|
|
@@ -105,23 +94,23 @@ export const openrouterModelRegistry = {
|
|
|
105
94
|
promptFormat: "markdown",
|
|
106
95
|
supportsReasoning: true,
|
|
107
96
|
supportsToolCalling: true,
|
|
108
|
-
costPerInputToken:
|
|
109
|
-
costPerOutputToken:
|
|
97
|
+
costPerInputToken: 7e-8,
|
|
98
|
+
costPerOutputToken: 4e-7,
|
|
110
99
|
},
|
|
111
|
-
"openrouter:
|
|
112
|
-
id: "openrouter:
|
|
100
|
+
"openrouter:minimax-m2-5": {
|
|
101
|
+
id: "openrouter:minimax-m2-5",
|
|
113
102
|
provider: "openrouter",
|
|
114
|
-
contextWindow:
|
|
115
|
-
maxOutputTokens:
|
|
116
|
-
defaultTemperature:
|
|
103
|
+
contextWindow: 204800,
|
|
104
|
+
maxOutputTokens: 131072,
|
|
105
|
+
defaultTemperature: 0.5,
|
|
117
106
|
promptFormat: "markdown",
|
|
118
|
-
supportsReasoning:
|
|
107
|
+
supportsReasoning: true,
|
|
119
108
|
supportsToolCalling: true,
|
|
120
|
-
costPerInputToken:
|
|
121
|
-
costPerOutputToken: 0,
|
|
109
|
+
costPerInputToken: 3e-7,
|
|
110
|
+
costPerOutputToken: 0.0000012,
|
|
122
111
|
},
|
|
123
|
-
"openrouter:minimax-m2-
|
|
124
|
-
id: "openrouter:minimax-m2-
|
|
112
|
+
"openrouter:minimax-m2-7": {
|
|
113
|
+
id: "openrouter:minimax-m2-7",
|
|
125
114
|
provider: "openrouter",
|
|
126
115
|
contextWindow: 204800,
|
|
127
116
|
maxOutputTokens: 131072,
|
|
@@ -132,8 +121,20 @@ export const openrouterModelRegistry = {
|
|
|
132
121
|
costPerInputToken: 3e-7,
|
|
133
122
|
costPerOutputToken: 0.0000012,
|
|
134
123
|
},
|
|
135
|
-
"openrouter:
|
|
136
|
-
id: "openrouter:
|
|
124
|
+
"openrouter:nemotron-3-super-120b-a12b-free": {
|
|
125
|
+
id: "openrouter:nemotron-3-super-120b-a12b-free",
|
|
126
|
+
provider: "openrouter",
|
|
127
|
+
contextWindow: 262144,
|
|
128
|
+
maxOutputTokens: 16000,
|
|
129
|
+
defaultTemperature: 0.5,
|
|
130
|
+
promptFormat: "markdown",
|
|
131
|
+
supportsReasoning: true,
|
|
132
|
+
supportsToolCalling: true,
|
|
133
|
+
costPerInputToken: 0,
|
|
134
|
+
costPerOutputToken: 0,
|
|
135
|
+
},
|
|
136
|
+
"openrouter:opus-4.6": {
|
|
137
|
+
id: "openrouter:opus-4.6",
|
|
137
138
|
provider: "openrouter",
|
|
138
139
|
contextWindow: 200000,
|
|
139
140
|
maxOutputTokens: 32000,
|
|
@@ -156,77 +157,17 @@ export const openrouterModelRegistry = {
|
|
|
156
157
|
costPerInputToken: 0.000003,
|
|
157
158
|
costPerOutputToken: 0.000015,
|
|
158
159
|
},
|
|
159
|
-
"openrouter:kimi-k2": {
|
|
160
|
-
id: "openrouter:kimi-k2",
|
|
160
|
+
"openrouter:kimi-k2-5": {
|
|
161
|
+
id: "openrouter:kimi-k2-5",
|
|
161
162
|
provider: "openrouter",
|
|
162
163
|
contextWindow: 262144,
|
|
163
|
-
maxOutputTokens:
|
|
164
|
-
defaultTemperature: 0
|
|
165
|
-
promptFormat: "markdown",
|
|
166
|
-
supportsReasoning: false,
|
|
167
|
-
supportsToolCalling: true,
|
|
168
|
-
costPerInputToken: 0.0000006,
|
|
169
|
-
costPerOutputToken: 0.0000025,
|
|
170
|
-
},
|
|
171
|
-
"openrouter:kimi-k2-thinking": {
|
|
172
|
-
id: "openrouter:kimi-k2-thinking",
|
|
173
|
-
provider: "openrouter",
|
|
174
|
-
contextWindow: 262144,
|
|
175
|
-
maxOutputTokens: 8192,
|
|
176
|
-
defaultTemperature: 0.6,
|
|
164
|
+
maxOutputTokens: 262144,
|
|
165
|
+
defaultTemperature: 1.0,
|
|
177
166
|
promptFormat: "markdown",
|
|
178
167
|
supportsReasoning: true,
|
|
179
168
|
supportsToolCalling: true,
|
|
180
|
-
costPerInputToken:
|
|
181
|
-
costPerOutputToken: 0.
|
|
182
|
-
},
|
|
183
|
-
"openrouter:devstral-medium": {
|
|
184
|
-
id: "openrouter:devstral-medium",
|
|
185
|
-
provider: "openrouter",
|
|
186
|
-
contextWindow: 131000,
|
|
187
|
-
maxOutputTokens: 8192,
|
|
188
|
-
defaultTemperature: 0.3,
|
|
189
|
-
promptFormat: "markdown",
|
|
190
|
-
supportsReasoning: false,
|
|
191
|
-
supportsToolCalling: true,
|
|
192
|
-
costPerInputToken: 0.0000004,
|
|
193
|
-
costPerOutputToken: 0.000002,
|
|
194
|
-
},
|
|
195
|
-
"openrouter:devstral-2512-free": {
|
|
196
|
-
id: "openrouter:devstral-2512-free",
|
|
197
|
-
provider: "openrouter",
|
|
198
|
-
contextWindow: 262144,
|
|
199
|
-
maxOutputTokens: 32768,
|
|
200
|
-
defaultTemperature: 0.3,
|
|
201
|
-
promptFormat: "markdown",
|
|
202
|
-
supportsReasoning: false,
|
|
203
|
-
supportsToolCalling: true,
|
|
204
|
-
costPerInputToken: 0,
|
|
205
|
-
costPerOutputToken: 0,
|
|
206
|
-
},
|
|
207
|
-
"openrouter:qwen3-coder": {
|
|
208
|
-
id: "openrouter:qwen3-coder",
|
|
209
|
-
provider: "openrouter",
|
|
210
|
-
contextWindow: 262000,
|
|
211
|
-
maxOutputTokens: 66000,
|
|
212
|
-
defaultTemperature: 0.55,
|
|
213
|
-
promptFormat: "markdown",
|
|
214
|
-
supportsReasoning: false,
|
|
215
|
-
supportsToolCalling: true,
|
|
216
|
-
costPerInputToken: 0.0000004,
|
|
217
|
-
costPerOutputToken: 0.000002,
|
|
218
|
-
},
|
|
219
|
-
"openrouter:qwen3-coder-plus": {
|
|
220
|
-
id: "openrouter:qwen3-coder-plus",
|
|
221
|
-
provider: "openrouter",
|
|
222
|
-
contextWindow: 128000,
|
|
223
|
-
maxOutputTokens: 65536,
|
|
224
|
-
defaultTemperature: 0.55,
|
|
225
|
-
promptFormat: "markdown",
|
|
226
|
-
supportsReasoning: false,
|
|
227
|
-
supportsToolCalling: true,
|
|
228
|
-
costPerInputToken: 0.000001,
|
|
229
|
-
costPerOutputToken: 0.000005,
|
|
169
|
+
costPerInputToken: 6e-7,
|
|
170
|
+
costPerOutputToken: 0.000003,
|
|
230
171
|
},
|
|
231
172
|
"openrouter:qwen3-max": {
|
|
232
173
|
id: "openrouter:qwen3-max",
|
|
@@ -240,41 +181,41 @@ export const openrouterModelRegistry = {
|
|
|
240
181
|
costPerInputToken: 0.0000012,
|
|
241
182
|
costPerOutputToken: 0.000006,
|
|
242
183
|
},
|
|
243
|
-
"openrouter:
|
|
244
|
-
id: "openrouter:
|
|
184
|
+
"openrouter:qwen3-max-thinking": {
|
|
185
|
+
id: "openrouter:qwen3-max-thinking",
|
|
245
186
|
provider: "openrouter",
|
|
246
|
-
contextWindow:
|
|
247
|
-
maxOutputTokens:
|
|
248
|
-
defaultTemperature: 0.
|
|
187
|
+
contextWindow: 262144,
|
|
188
|
+
maxOutputTokens: 65536,
|
|
189
|
+
defaultTemperature: 0.5,
|
|
249
190
|
promptFormat: "markdown",
|
|
250
191
|
supportsReasoning: true,
|
|
251
192
|
supportsToolCalling: true,
|
|
252
|
-
costPerInputToken: 0.
|
|
253
|
-
costPerOutputToken: 0.
|
|
193
|
+
costPerInputToken: 0.0000012,
|
|
194
|
+
costPerOutputToken: 0.000006,
|
|
254
195
|
},
|
|
255
|
-
"openrouter:
|
|
256
|
-
id: "openrouter:
|
|
196
|
+
"openrouter:glm-5": {
|
|
197
|
+
id: "openrouter:glm-5",
|
|
257
198
|
provider: "openrouter",
|
|
258
|
-
contextWindow:
|
|
259
|
-
maxOutputTokens:
|
|
260
|
-
defaultTemperature:
|
|
261
|
-
promptFormat: "
|
|
199
|
+
contextWindow: 204800,
|
|
200
|
+
maxOutputTokens: 64800,
|
|
201
|
+
defaultTemperature: 0.5,
|
|
202
|
+
promptFormat: "markdown",
|
|
262
203
|
supportsReasoning: true,
|
|
263
204
|
supportsToolCalling: true,
|
|
264
|
-
costPerInputToken: 0.
|
|
265
|
-
costPerOutputToken: 0.
|
|
205
|
+
costPerInputToken: 0.000001,
|
|
206
|
+
costPerOutputToken: 0.0000032,
|
|
266
207
|
},
|
|
267
|
-
"openrouter:
|
|
268
|
-
id: "openrouter:
|
|
208
|
+
"openrouter:qwen3-coder-next": {
|
|
209
|
+
id: "openrouter:qwen3-coder-next",
|
|
269
210
|
provider: "openrouter",
|
|
270
|
-
contextWindow:
|
|
271
|
-
maxOutputTokens:
|
|
211
|
+
contextWindow: 262144,
|
|
212
|
+
maxOutputTokens: 65536,
|
|
272
213
|
defaultTemperature: -1,
|
|
273
|
-
promptFormat: "
|
|
274
|
-
supportsReasoning:
|
|
214
|
+
promptFormat: "markdown",
|
|
215
|
+
supportsReasoning: false,
|
|
275
216
|
supportsToolCalling: true,
|
|
276
|
-
costPerInputToken: 0.
|
|
277
|
-
costPerOutputToken: 0.
|
|
217
|
+
costPerInputToken: 0.00000007,
|
|
218
|
+
costPerOutputToken: 0.0000003,
|
|
278
219
|
},
|
|
279
220
|
"openrouter:gpt-5.1-codex-mini": {
|
|
280
221
|
id: "openrouter:gpt-5.1-codex-mini",
|
|
@@ -324,8 +265,8 @@ export const openrouterModelRegistry = {
|
|
|
324
265
|
costPerInputToken: 0.00000007256312,
|
|
325
266
|
costPerOutputToken: 0.0000002903936,
|
|
326
267
|
},
|
|
327
|
-
"openrouter:grok-4-fast": {
|
|
328
|
-
id: "openrouter:grok-4-fast",
|
|
268
|
+
"openrouter:grok-4-1-fast": {
|
|
269
|
+
id: "openrouter:grok-4-1-fast",
|
|
329
270
|
provider: "openrouter",
|
|
330
271
|
contextWindow: 2000000,
|
|
331
272
|
maxOutputTokens: 30000,
|
|
@@ -348,6 +289,18 @@ export const openrouterModelRegistry = {
|
|
|
348
289
|
costPerInputToken: 0.000001,
|
|
349
290
|
costPerOutputToken: 0.000005,
|
|
350
291
|
},
|
|
292
|
+
"openrouter:hunter-alpha": {
|
|
293
|
+
id: "openrouter:hunter-alpha",
|
|
294
|
+
provider: "openrouter",
|
|
295
|
+
contextWindow: 1048576,
|
|
296
|
+
maxOutputTokens: 65536,
|
|
297
|
+
defaultTemperature: 0.5,
|
|
298
|
+
promptFormat: "markdown",
|
|
299
|
+
supportsReasoning: true,
|
|
300
|
+
supportsToolCalling: true,
|
|
301
|
+
costPerInputToken: 0,
|
|
302
|
+
costPerOutputToken: 0,
|
|
303
|
+
},
|
|
351
304
|
"openrouter:gpt-5.2": {
|
|
352
305
|
id: "openrouter:gpt-5.2",
|
|
353
306
|
provider: "openrouter",
|
|
@@ -372,28 +325,16 @@ export const openrouterModelRegistry = {
|
|
|
372
325
|
costPerInputToken: 0.00000175,
|
|
373
326
|
costPerOutputToken: 0.000014,
|
|
374
327
|
},
|
|
375
|
-
"openrouter:
|
|
376
|
-
id: "openrouter:
|
|
328
|
+
"openrouter:gpt-5-3-codex": {
|
|
329
|
+
id: "openrouter:gpt-5-3-codex",
|
|
377
330
|
provider: "openrouter",
|
|
378
|
-
contextWindow:
|
|
379
|
-
maxOutputTokens:
|
|
380
|
-
defaultTemperature:
|
|
381
|
-
promptFormat: "
|
|
382
|
-
supportsReasoning: true,
|
|
383
|
-
supportsToolCalling: true,
|
|
384
|
-
costPerInputToken: 0.00000015,
|
|
385
|
-
costPerOutputToken: 0.00000045,
|
|
386
|
-
},
|
|
387
|
-
"openrouter:gemini-3-flash-preview": {
|
|
388
|
-
id: "openrouter:gemini-3-flash-preview",
|
|
389
|
-
provider: "openrouter",
|
|
390
|
-
contextWindow: 1048576,
|
|
391
|
-
maxOutputTokens: 65535,
|
|
392
|
-
defaultTemperature: 0.5,
|
|
393
|
-
promptFormat: "markdown",
|
|
331
|
+
contextWindow: 400000,
|
|
332
|
+
maxOutputTokens: 128000,
|
|
333
|
+
defaultTemperature: -1,
|
|
334
|
+
promptFormat: "xml",
|
|
394
335
|
supportsReasoning: true,
|
|
395
336
|
supportsToolCalling: true,
|
|
396
|
-
costPerInputToken: 0.
|
|
397
|
-
costPerOutputToken: 0.
|
|
337
|
+
costPerInputToken: 0.00000175,
|
|
338
|
+
costPerOutputToken: 0.000014,
|
|
398
339
|
},
|
|
399
340
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
declare const providers: readonly ["anthropic", "openai", "google", "groq", "deepseek", "openrouter", "xai", "opencode"];
|
|
1
|
+
declare const providers: readonly ["anthropic", "openai", "google", "groq", "deepseek", "openrouter", "xai", "opencode", "opencode-go"];
|
|
2
2
|
type ModelProvider = (typeof providers)[number];
|
|
3
|
-
export declare const models: readonly ("anthropic:opus" | "anthropic:sonnet" | "anthropic:
|
|
4
|
-
export type ModelName = (typeof models)[number] | (`xai:${string}` & {}) | (`openai:${string}` & {}) | (`anthropic:${string}` & {}) | (`google:${string}` & {}) | (`groq:${string}` & {}) | (`deepseek:${string}` & {}) | (`openrouter:${string}` & {}) | (`opencode:${string}` & {});
|
|
3
|
+
export declare const models: readonly ("anthropic:opus" | "anthropic:sonnet" | "anthropic:haiku" | "deepseek:deepseek-chat" | "deepseek:deepseek-reasoner" | "google:flash25lite" | "groq:kimi-k2-instruct-0905" | "openai:gpt-5.1-codex-mini" | "openai:gpt-5.2" | "openai:gpt-5.2-codex" | "opencode-go:glm-5" | "opencode-go:kimi-k2-5" | "opencode-go:minimax-m2-5" | "opencode-go:minimax-m2-7" | "opencode:gpt-5.2-codex" | "opencode:glm-5" | "opencode:minimax-m2.5" | "opencode:minimax-m2.7" | "opencode:kimi-k2-5" | "opencode:glm-4-7" | "opencode:opus-4-6" | "openrouter:gpt-5.1-codex-mini" | "openrouter:gpt-5.1-codex-max" | "openrouter:gpt-5.2" | "openrouter:gpt-5.2-codex" | "openrouter:glm-5" | "openrouter:kimi-k2-5" | "openrouter:minimax-m2-5" | "openrouter:minimax-m2-7" | "openrouter:glm-4-7" | "openrouter:gpt-oss-120b" | "openrouter:gpt-5-3-codex" | "openrouter:deepseek-v3-2" | "openrouter:glm-4-7-flash" | "openrouter:hunter-alpha" | "openrouter:nemotron-3-super-120b-a12b-free" | "openrouter:sonnet-4.5" | "openrouter:opus-4.6" | "openrouter:haiku-4.5" | "openrouter:qwen3-max" | "openrouter:qwen3-max-thinking" | "openrouter:qwen3-coder-next" | "openrouter:grok-code-fast-1" | "openrouter:grok-4-1-fast" | "xai:grok-code-fast-1" | "xai:grok-4-1-fast")[];
|
|
4
|
+
export type ModelName = (typeof models)[number] | (`xai:${string}` & {}) | (`openai:${string}` & {}) | (`anthropic:${string}` & {}) | (`google:${string}` & {}) | (`groq:${string}` & {}) | (`deepseek:${string}` & {}) | (`openrouter:${string}` & {}) | (`opencode-go:${string}` & {}) | (`opencode:${string}` & {});
|
|
5
5
|
export declare function isSupportedModel(model: unknown): model is ModelName;
|
|
6
6
|
export declare function languageModel(model: ModelName): import("@ai-sdk/provider").LanguageModelV3;
|
|
7
7
|
export interface ModelMetadata<T = ModelName> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../source/models/providers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../source/models/providers.ts"],"names":[],"mappings":"AAgDA,QAAA,MAAM,SAAS,gHAUL,CAAC;AAEX,KAAK,aAAa,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAchD,eAAO,MAAM,MAAM,otCAUT,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,GAC7B,CAAC,eAAe,MAAM,EAAE,GAAG,EAAE,CAAC,GAC9B,CAAC,YAAY,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAEhC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAcnE;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;IACxB,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;CAC9C;AAGD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,CAU1D,CAAC;AAGF,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,IAAI,SAAS,CAEtE"}
|
package/dist/models/providers.js
CHANGED
|
@@ -5,6 +5,7 @@ import { deepseekModelNames, deepseekModelRegistry, deepseekProvider, } from "./
|
|
|
5
5
|
import { googleModelNames, googleModelRegistry, googleProvider, } from "./google-provider.js";
|
|
6
6
|
import { groqModelNames, groqModelRegistry, groqProvider, } from "./groq-provider.js";
|
|
7
7
|
import { openaiModelNames, openaiModelRegistry, openaiProvider, } from "./openai-provider.js";
|
|
8
|
+
import { opencodeGoModelNames, opencodeGoModelRegistry, opencodeGoProvider, } from "./opencode-go-provider.js";
|
|
8
9
|
import { opencodeZenModelNames, opencodeZenModelRegistry, opencodeZenProvider, } from "./opencode-zen-provider.js";
|
|
9
10
|
import { openrouterModelNames, openrouterModelRegistry, openrouterProvider, } from "./openrouter-provider.js";
|
|
10
11
|
import { xaiModelNames, xaiModelRegistry, xaiProvider, } from "./xai-provider.js";
|
|
@@ -17,6 +18,7 @@ const providers = [
|
|
|
17
18
|
"openrouter",
|
|
18
19
|
"xai",
|
|
19
20
|
"opencode",
|
|
21
|
+
"opencode-go",
|
|
20
22
|
];
|
|
21
23
|
const registry = createProviderRegistry({
|
|
22
24
|
...anthropicProvider,
|
|
@@ -26,6 +28,7 @@ const registry = createProviderRegistry({
|
|
|
26
28
|
...openaiProvider,
|
|
27
29
|
...openrouterProvider,
|
|
28
30
|
...xaiProvider,
|
|
31
|
+
...opencodeGoProvider,
|
|
29
32
|
...opencodeZenProvider,
|
|
30
33
|
});
|
|
31
34
|
export const models = [
|
|
@@ -36,6 +39,7 @@ export const models = [
|
|
|
36
39
|
...deepseekModelNames,
|
|
37
40
|
...openrouterModelNames,
|
|
38
41
|
...xaiModelNames,
|
|
42
|
+
...opencodeGoModelNames,
|
|
39
43
|
...opencodeZenModelNames,
|
|
40
44
|
];
|
|
41
45
|
export function isSupportedModel(model) {
|
|
@@ -48,6 +52,7 @@ export function isSupportedModel(model) {
|
|
|
48
52
|
model.startsWith("groq:") ||
|
|
49
53
|
model.startsWith("xai:") ||
|
|
50
54
|
model.startsWith("deepseek:") ||
|
|
55
|
+
model.startsWith("opencode-go:") ||
|
|
51
56
|
model.startsWith("opencode:"))));
|
|
52
57
|
}
|
|
53
58
|
export function languageModel(model) {
|
|
@@ -62,6 +67,7 @@ export const modelRegistry = {
|
|
|
62
67
|
...deepseekModelRegistry,
|
|
63
68
|
...openrouterModelRegistry,
|
|
64
69
|
...xaiModelRegistry,
|
|
70
|
+
...opencodeGoModelRegistry,
|
|
65
71
|
...opencodeZenModelRegistry,
|
|
66
72
|
};
|
|
67
73
|
// Check if a model name is valid
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import type { ModelMetadata } from "./providers.ts";
|
|
2
2
|
declare const xaiModels: {
|
|
3
|
-
readonly
|
|
4
|
-
readonly "
|
|
3
|
+
readonly "grok-4-1-fast": import("@ai-sdk/provider").LanguageModelV3;
|
|
4
|
+
readonly "grok-code-fast-1": import("@ai-sdk/provider").LanguageModelV3;
|
|
5
5
|
};
|
|
6
6
|
type ModelName = `xai:${keyof typeof xaiModels}`;
|
|
7
7
|
export declare const xaiModelNames: ModelName[];
|
|
8
8
|
export declare const xaiProvider: {
|
|
9
9
|
xai: import("@ai-sdk/provider").ProviderV3 & {
|
|
10
|
-
languageModel(modelId: "
|
|
10
|
+
languageModel(modelId: "grok-code-fast-1" | "grok-4-1-fast"): import("@ai-sdk/provider").LanguageModelV3;
|
|
11
11
|
embeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV3;
|
|
12
12
|
imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV3;
|
|
13
13
|
transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
|
|
14
14
|
rerankingModel(modelId: string): import("@ai-sdk/provider").RerankingModelV3;
|
|
15
15
|
speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV3;
|
|
16
|
+
videoModel(modelId: string): import("@ai-sdk/provider").Experimental_VideoModelV3;
|
|
16
17
|
};
|
|
17
18
|
};
|
|
18
19
|
export declare const xaiModelRegistry: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xai-provider.d.ts","sourceRoot":"","sources":["../../source/models/xai-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAQpD,QAAA,MAAM,SAAS;;;CAGL,CAAC;AAEX,KAAK,SAAS,GAAG,OAAO,MAAM,OAAO,SAAS,EAAE,CAAC;AAEjD,eAAO,MAAM,aAAa,EAAE,SAAS,EAEpC,CAAC;AAEF,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"xai-provider.d.ts","sourceRoot":"","sources":["../../source/models/xai-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAQpD,QAAA,MAAM,SAAS;;;CAGL,CAAC;AAEX,KAAK,SAAS,GAAG,OAAO,MAAM,OAAO,SAAS,EAAE,CAAC;AAEjD,eAAO,MAAM,aAAa,EAAE,SAAS,EAEpC,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;CAKvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE;KAC5B,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CA0B3C,CAAC"}
|
|
@@ -7,8 +7,8 @@ const xaiClient = createOpenAI({
|
|
|
7
7
|
baseURL: "https://api.x.ai/v1",
|
|
8
8
|
});
|
|
9
9
|
const xaiModels = {
|
|
10
|
-
|
|
11
|
-
"
|
|
10
|
+
"grok-4-1-fast": xaiClient("grok-4.1-fast"),
|
|
11
|
+
"grok-code-fast-1": xaiClient("grok-code-fast-1"),
|
|
12
12
|
};
|
|
13
13
|
export const xaiModelNames = objectKeys(xaiModels).map((key) => `xai:${key}`);
|
|
14
14
|
export const xaiProvider = {
|
|
@@ -18,28 +18,28 @@ export const xaiProvider = {
|
|
|
18
18
|
}),
|
|
19
19
|
};
|
|
20
20
|
export const xaiModelRegistry = {
|
|
21
|
-
"xai:
|
|
22
|
-
id: "xai:
|
|
21
|
+
"xai:grok-4-1-fast": {
|
|
22
|
+
id: "xai:grok-4-1-fast",
|
|
23
23
|
provider: "xai",
|
|
24
|
-
contextWindow:
|
|
25
|
-
maxOutputTokens:
|
|
26
|
-
defaultTemperature: 0.
|
|
24
|
+
contextWindow: 2000000,
|
|
25
|
+
maxOutputTokens: 30000,
|
|
26
|
+
defaultTemperature: 0.5,
|
|
27
27
|
promptFormat: "markdown",
|
|
28
|
-
supportsReasoning:
|
|
28
|
+
supportsReasoning: true,
|
|
29
29
|
supportsToolCalling: true,
|
|
30
|
-
costPerInputToken: 0.
|
|
31
|
-
costPerOutputToken: 0.
|
|
30
|
+
costPerInputToken: 0.0000002,
|
|
31
|
+
costPerOutputToken: 0.0000005,
|
|
32
32
|
},
|
|
33
|
-
"xai:
|
|
34
|
-
id: "xai:
|
|
33
|
+
"xai:grok-code-fast-1": {
|
|
34
|
+
id: "xai:grok-code-fast-1",
|
|
35
35
|
provider: "xai",
|
|
36
|
-
contextWindow:
|
|
37
|
-
maxOutputTokens:
|
|
38
|
-
defaultTemperature:
|
|
36
|
+
contextWindow: 256000,
|
|
37
|
+
maxOutputTokens: 10000,
|
|
38
|
+
defaultTemperature: -1,
|
|
39
39
|
promptFormat: "markdown",
|
|
40
|
-
supportsReasoning: true,
|
|
40
|
+
supportsReasoning: true,
|
|
41
41
|
supportsToolCalling: true,
|
|
42
|
-
costPerInputToken: 0.
|
|
43
|
-
costPerOutputToken: 0.
|
|
42
|
+
costPerInputToken: 0.0000002,
|
|
43
|
+
costPerOutputToken: 0.0000015,
|
|
44
44
|
},
|
|
45
45
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { UserModelMessage } from "ai";
|
|
2
|
+
type Mode = "normal" | "planning" | "research";
|
|
3
|
+
export declare class ModeManager {
|
|
4
|
+
private currentMode;
|
|
5
|
+
private firstMessageInMode;
|
|
6
|
+
getCurrentMode(): Mode;
|
|
7
|
+
getDisplayName(): string;
|
|
8
|
+
cycleMode(): void;
|
|
9
|
+
getInitialPrompt(): string;
|
|
10
|
+
getReminderPrompt(): string;
|
|
11
|
+
isNormal(): boolean;
|
|
12
|
+
isFirstMessage(): boolean;
|
|
13
|
+
markFirstMessageSent(): void;
|
|
14
|
+
getReminderMessage(): UserModelMessage | undefined;
|
|
15
|
+
reset(): void;
|
|
16
|
+
toJson(): {
|
|
17
|
+
mode: Mode;
|
|
18
|
+
};
|
|
19
|
+
fromJson(data: {
|
|
20
|
+
mode?: string;
|
|
21
|
+
}): void;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../source/modes/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AAI3C,KAAK,IAAI,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;AAmC/C,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,kBAAkB,CAAQ;IAElC,cAAc,IAAI,IAAI;IAItB,cAAc,IAAI,MAAM;IAIxB,SAAS,IAAI,IAAI;IAOjB,gBAAgB,IAAI,MAAM;IAI1B,iBAAiB,IAAI,MAAM;IAI3B,QAAQ,IAAI,OAAO;IAInB,cAAc,IAAI,OAAO;IAIzB,oBAAoB,IAAI,IAAI;IAI5B,kBAAkB,IAAI,gBAAgB,GAAG,SAAS;IAWlD,KAAK,IAAI,IAAI;IAKb,MAAM,IAAI;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE;IAIxB,QAAQ,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAMxC"}
|