@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
package/dist/middleware/cache.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
-
import { logger } from "../logger.js";
|
|
2
|
+
import { logger } from "../utils/logger.js";
|
|
3
3
|
function applyCaching(input, options = {}) {
|
|
4
4
|
const { ttl } = options;
|
|
5
5
|
input.providerOptions = {
|
|
@@ -27,53 +27,37 @@ function generateCacheKey(text, salt) {
|
|
|
27
27
|
function estimateTokens(text) {
|
|
28
28
|
return Math.ceil(text.length / 4);
|
|
29
29
|
}
|
|
30
|
-
function getMinTokenThreshold(
|
|
31
|
-
if (
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return 1024;
|
|
37
|
-
|
|
38
|
-
return 1024; // Default threshold
|
|
30
|
+
function getMinTokenThreshold(modelId) {
|
|
31
|
+
if (modelId?.includes("haiku"))
|
|
32
|
+
return 4096;
|
|
33
|
+
if (modelId?.includes("opus"))
|
|
34
|
+
return 4096;
|
|
35
|
+
if (modelId?.includes("sonnet"))
|
|
36
|
+
return 1024;
|
|
37
|
+
return 1024;
|
|
39
38
|
}
|
|
40
|
-
function isEligibleForCaching(text,
|
|
39
|
+
function isEligibleForCaching(text, modelId) {
|
|
41
40
|
const tokenCount = estimateTokens(text);
|
|
42
|
-
const minThreshold = getMinTokenThreshold(
|
|
41
|
+
const minThreshold = getMinTokenThreshold(modelId ?? "");
|
|
43
42
|
if (tokenCount < minThreshold) {
|
|
44
|
-
logger.info(`[Cache] Ineligible: ${tokenCount} tokens < ${minThreshold} threshold`);
|
|
45
43
|
return false;
|
|
46
44
|
}
|
|
47
45
|
return true;
|
|
48
46
|
}
|
|
49
|
-
function detectProvider(
|
|
50
|
-
if (
|
|
51
|
-
modelId.includes("
|
|
52
|
-
modelId.includes("
|
|
47
|
+
function detectProvider(modelId) {
|
|
48
|
+
if (modelId.includes("sonnet") ||
|
|
49
|
+
modelId.includes("opus") ||
|
|
50
|
+
modelId.includes("haiku")) {
|
|
53
51
|
return "anthropic";
|
|
54
52
|
}
|
|
55
|
-
if (providerId === "openai" || modelId.includes("gpt-")) {
|
|
56
|
-
return "openai";
|
|
57
|
-
}
|
|
58
|
-
if (providerId === "bedrock" ||
|
|
59
|
-
modelId.includes("bedrock") ||
|
|
60
|
-
modelId.includes("amazon")) {
|
|
61
|
-
return "bedrock";
|
|
62
|
-
}
|
|
63
|
-
if (modelId.includes("openrouter")) {
|
|
64
|
-
return "openrouter";
|
|
65
|
-
}
|
|
66
53
|
return "unknown";
|
|
67
54
|
}
|
|
68
55
|
export const cacheMiddleware = {
|
|
69
56
|
specificationVersion: "v3",
|
|
70
57
|
transformParams: async ({ params, model }) => {
|
|
71
|
-
const providerId = model.provider;
|
|
72
58
|
const modelId = model.modelId;
|
|
73
|
-
const provider = detectProvider(
|
|
74
|
-
logger.info(`[Cache] Detected provider: ${provider}, model: ${modelId}`);
|
|
59
|
+
const provider = detectProvider(modelId);
|
|
75
60
|
if (provider === "unknown") {
|
|
76
|
-
logger.info("[Cache] Unknown provider, skipping caching");
|
|
77
61
|
return params;
|
|
78
62
|
}
|
|
79
63
|
const msgs = params.prompt;
|
|
@@ -89,14 +73,12 @@ export const cacheMiddleware = {
|
|
|
89
73
|
: "")
|
|
90
74
|
.join("\n");
|
|
91
75
|
// Check if system prompt is eligible for caching
|
|
92
|
-
const isEligible = isEligibleForCaching(systemText,
|
|
76
|
+
const isEligible = isEligibleForCaching(systemText, modelId);
|
|
93
77
|
if (!isEligible) {
|
|
94
|
-
logger.info("[Cache] System prompt not eligible for caching");
|
|
95
78
|
return params;
|
|
96
79
|
}
|
|
97
80
|
// Generate deterministic cache key
|
|
98
81
|
const cacheKey = generateCacheKey(systemText, provider);
|
|
99
|
-
logger.info(`[Cache] Generated cache key: ${cacheKey.substring(0, 8)}...`);
|
|
100
82
|
// Apply caching to system messages
|
|
101
83
|
for (const systemMsg of systemMessages) {
|
|
102
84
|
applyCaching(systemMsg, { ttl: "1h" });
|
|
@@ -128,7 +110,7 @@ export const cacheMiddleware = {
|
|
|
128
110
|
provider,
|
|
129
111
|
eligible: isEligible,
|
|
130
112
|
systemTokens: estimateTokens(systemText),
|
|
131
|
-
threshold: getMinTokenThreshold(
|
|
113
|
+
threshold: getMinTokenThreshold(modelId),
|
|
132
114
|
timestamp: Date.now(),
|
|
133
115
|
};
|
|
134
116
|
logger.info(`[Cache] Applied caching for ${provider} model`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-config.d.ts","sourceRoot":"","sources":["../../source/models/ai-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AA2CpD,qBAAa,QAAQ;IACnB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAS;
|
|
1
|
+
{"version":3,"file":"ai-config.d.ts","sourceRoot":"","sources":["../../source/models/ai-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AA2CpD,qBAAa,QAAQ;IACnB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAA0C;gBAEnD,EACV,aAAa,EACb,MAAM,GACP,EAAE;QAAE,aAAa,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAMnD,eAAe;IASf,WAAW;IAKX,IAAI;IAMJ,eAAe,IAAI,wBAAwB;CA+D5C"}
|
package/dist/models/ai-config.js
CHANGED
|
@@ -30,15 +30,16 @@ function calculateThinkingLevel(userInput) {
|
|
|
30
30
|
export class AiConfig {
|
|
31
31
|
modelMetadata;
|
|
32
32
|
prompt;
|
|
33
|
+
thinkingLevel;
|
|
33
34
|
constructor({ modelMetadata, prompt, }) {
|
|
34
35
|
this.modelMetadata = modelMetadata;
|
|
35
36
|
this.prompt = prompt;
|
|
37
|
+
this.thinkingLevel = calculateThinkingLevel(this.prompt);
|
|
36
38
|
}
|
|
37
39
|
maxOutputTokens() {
|
|
38
40
|
const modelConfig = this.modelMetadata;
|
|
39
|
-
const thinkingLevel = calculateThinkingLevel(this.prompt);
|
|
40
41
|
const maxTokens = modelConfig.provider === "anthropic" && modelConfig.supportsReasoning
|
|
41
|
-
? modelConfig.maxOutputTokens - thinkingLevel.tokenBudget
|
|
42
|
+
? modelConfig.maxOutputTokens - this.thinkingLevel.tokenBudget
|
|
42
43
|
: modelConfig.maxOutputTokens;
|
|
43
44
|
return modelConfig.provider === "opencode" ? 8000 : maxTokens;
|
|
44
45
|
}
|
|
@@ -54,7 +55,7 @@ export class AiConfig {
|
|
|
54
55
|
}
|
|
55
56
|
providerOptions() {
|
|
56
57
|
const modelConfig = this.modelMetadata;
|
|
57
|
-
const thinkingLevel =
|
|
58
|
+
const thinkingLevel = this.thinkingLevel;
|
|
58
59
|
const meta = {
|
|
59
60
|
[modelConfig.provider]: {},
|
|
60
61
|
};
|
|
@@ -2,22 +2,19 @@ import type { ModelMetadata } from "./providers.ts";
|
|
|
2
2
|
declare const anthropicModels: {
|
|
3
3
|
readonly opus: import("@ai-sdk/provider").LanguageModelV3;
|
|
4
4
|
readonly sonnet: import("@ai-sdk/provider").LanguageModelV3;
|
|
5
|
-
readonly sonnet37: import("@ai-sdk/provider").LanguageModelV3;
|
|
6
|
-
readonly "sonnet37-token-efficient-tools": import("@ai-sdk/provider").LanguageModelV3;
|
|
7
|
-
readonly "sonnet37-128k": import("@ai-sdk/provider").LanguageModelV3;
|
|
8
|
-
readonly sonnet35: import("@ai-sdk/provider").LanguageModelV3;
|
|
9
5
|
readonly haiku: import("@ai-sdk/provider").LanguageModelV3;
|
|
10
6
|
};
|
|
11
7
|
type ModelName = `anthropic:${keyof typeof anthropicModels}`;
|
|
12
8
|
export declare const anthropicModelNames: ModelName[];
|
|
13
9
|
export declare const anthropicProvider: {
|
|
14
10
|
anthropic: import("@ai-sdk/provider").ProviderV3 & {
|
|
15
|
-
languageModel(modelId: "opus" | "sonnet" | "
|
|
11
|
+
languageModel(modelId: "opus" | "sonnet" | "haiku"): import("@ai-sdk/provider").LanguageModelV3;
|
|
16
12
|
embeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV3;
|
|
17
13
|
imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV3;
|
|
18
14
|
transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
|
|
19
15
|
rerankingModel(modelId: string): import("@ai-sdk/provider").RerankingModelV3;
|
|
20
16
|
speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV3;
|
|
17
|
+
videoModel(modelId: string): import("@ai-sdk/provider").Experimental_VideoModelV3;
|
|
21
18
|
};
|
|
22
19
|
};
|
|
23
20
|
export declare const anthropicModelRegistry: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-provider.d.ts","sourceRoot":"","sources":["../../source/models/anthropic-provider.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"anthropic-provider.d.ts","sourceRoot":"","sources":["../../source/models/anthropic-provider.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,eAAe;;;;CAIX,CAAC;AAEX,KAAK,SAAS,GAAG,aAAa,MAAM,OAAO,eAAe,EAAE,CAAC;AAE7D,eAAO,MAAM,mBAAmB,EAAE,SAAS,EAE1C,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;CAK7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE;KAClC,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CAsC3C,CAAC"}
|
|
@@ -2,28 +2,9 @@ import { createAnthropic, anthropic as originalAnthropic, } from "@ai-sdk/anthro
|
|
|
2
2
|
import { objectKeys } from "@travisennis/stdlib/object";
|
|
3
3
|
import { customProvider } from "ai";
|
|
4
4
|
const anthropicModels = {
|
|
5
|
-
opus: createAnthropic()("claude-4-
|
|
6
|
-
sonnet: createAnthropic()("claude-4-
|
|
7
|
-
|
|
8
|
-
"sonnet37-token-efficient-tools": createAnthropic({
|
|
9
|
-
headers: {
|
|
10
|
-
"anthropic-version": "2023-06-01",
|
|
11
|
-
"anthropic-beta": "token-efficient-tools-2025-02-19",
|
|
12
|
-
},
|
|
13
|
-
})("claude-3-7-sonnet-20250219"),
|
|
14
|
-
"sonnet37-128k": createAnthropic({
|
|
15
|
-
headers: {
|
|
16
|
-
"anthropic-version": "2023-06-01",
|
|
17
|
-
"anthropic-beta": "output-128k-2025-02-19",
|
|
18
|
-
},
|
|
19
|
-
})("claude-3-7-sonnet-20250219"),
|
|
20
|
-
sonnet35: createAnthropic({
|
|
21
|
-
headers: {
|
|
22
|
-
"anthropic-version": "2023-06-01",
|
|
23
|
-
"anthropic-beta": "max-tokens-3-5-sonnet-2024-07-15",
|
|
24
|
-
},
|
|
25
|
-
})("claude-3-5-sonnet-20241022"),
|
|
26
|
-
haiku: originalAnthropic("claude-3-5-haiku-20241022"),
|
|
5
|
+
opus: createAnthropic()("claude-opus-4-6"),
|
|
6
|
+
sonnet: createAnthropic()("claude-sonnet-4-5"),
|
|
7
|
+
haiku: originalAnthropic("claude-haiku-4-5"),
|
|
27
8
|
};
|
|
28
9
|
export const anthropicModelNames = objectKeys(anthropicModels).map((key) => `anthropic:${key}`);
|
|
29
10
|
export const anthropicProvider = {
|
|
@@ -57,54 +38,6 @@ export const anthropicModelRegistry = {
|
|
|
57
38
|
costPerInputToken: 0.000003,
|
|
58
39
|
costPerOutputToken: 0.000015,
|
|
59
40
|
},
|
|
60
|
-
"anthropic:sonnet37": {
|
|
61
|
-
id: "anthropic:sonnet37",
|
|
62
|
-
provider: "anthropic",
|
|
63
|
-
contextWindow: 200000,
|
|
64
|
-
maxOutputTokens: 64000,
|
|
65
|
-
defaultTemperature: 0.3,
|
|
66
|
-
promptFormat: "xml",
|
|
67
|
-
supportsReasoning: true,
|
|
68
|
-
supportsToolCalling: true,
|
|
69
|
-
costPerInputToken: 0.000003,
|
|
70
|
-
costPerOutputToken: 0.000015,
|
|
71
|
-
},
|
|
72
|
-
"anthropic:sonnet37-token-efficient-tools": {
|
|
73
|
-
id: "anthropic:sonnet37-token-efficient-tools",
|
|
74
|
-
provider: "anthropic",
|
|
75
|
-
contextWindow: 200000,
|
|
76
|
-
maxOutputTokens: 64000,
|
|
77
|
-
defaultTemperature: 0.3,
|
|
78
|
-
promptFormat: "xml",
|
|
79
|
-
supportsReasoning: true,
|
|
80
|
-
supportsToolCalling: true,
|
|
81
|
-
costPerInputToken: 0.000003,
|
|
82
|
-
costPerOutputToken: 0.000015,
|
|
83
|
-
},
|
|
84
|
-
"anthropic:sonnet37-128k": {
|
|
85
|
-
id: "anthropic:sonnet37-128k",
|
|
86
|
-
provider: "anthropic",
|
|
87
|
-
contextWindow: 200000,
|
|
88
|
-
maxOutputTokens: 128000,
|
|
89
|
-
defaultTemperature: 0.3,
|
|
90
|
-
promptFormat: "xml",
|
|
91
|
-
supportsReasoning: true,
|
|
92
|
-
supportsToolCalling: true,
|
|
93
|
-
costPerInputToken: 0.000003,
|
|
94
|
-
costPerOutputToken: 0.000015,
|
|
95
|
-
},
|
|
96
|
-
"anthropic:sonnet35": {
|
|
97
|
-
id: "anthropic:sonnet35",
|
|
98
|
-
provider: "anthropic",
|
|
99
|
-
contextWindow: 200000,
|
|
100
|
-
maxOutputTokens: 8096,
|
|
101
|
-
defaultTemperature: 0.3,
|
|
102
|
-
promptFormat: "xml",
|
|
103
|
-
supportsReasoning: false,
|
|
104
|
-
supportsToolCalling: true,
|
|
105
|
-
costPerInputToken: 0.000003,
|
|
106
|
-
costPerOutputToken: 0.000015,
|
|
107
|
-
},
|
|
108
41
|
"anthropic:haiku": {
|
|
109
42
|
id: "anthropic:haiku",
|
|
110
43
|
provider: "anthropic",
|
|
@@ -13,6 +13,7 @@ export declare const deepseekProvider: {
|
|
|
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 deepseekModelRegistry: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepseek-provider.d.ts","sourceRoot":"","sources":["../../source/models/deepseek-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,cAAc;;;CAGV,CAAC;AAEX,KAAK,SAAS,GAAG,YAAY,MAAM,OAAO,cAAc,EAAE,CAAC;AAE3D,eAAO,MAAM,kBAAkB,EAAE,SAAS,EAEzC,CAAC;AAEF,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"deepseek-provider.d.ts","sourceRoot":"","sources":["../../source/models/deepseek-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,cAAc;;;CAGV,CAAC;AAEX,KAAK,SAAS,GAAG,YAAY,MAAM,OAAO,cAAc,EAAE,CAAC;AAE3D,eAAO,MAAM,kBAAkB,EAAE,SAAS,EAEzC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;CAK5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE;KACjC,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CA0B3C,CAAC"}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import type { ModelMetadata } from "./providers.ts";
|
|
2
2
|
declare const googleModels: {
|
|
3
3
|
readonly flash25lite: import("@ai-sdk/provider").LanguageModelV3;
|
|
4
|
-
readonly pro25: import("@ai-sdk/provider").LanguageModelV3;
|
|
5
|
-
readonly flash25: import("@ai-sdk/provider").LanguageModelV3;
|
|
6
4
|
};
|
|
7
5
|
type ModelName = `google:${keyof typeof googleModels}`;
|
|
8
6
|
export declare const googleModelNames: ModelName[];
|
|
9
7
|
export declare const googleProvider: {
|
|
10
8
|
google: import("@ai-sdk/provider").ProviderV3 & {
|
|
11
|
-
languageModel(modelId: "flash25lite"
|
|
9
|
+
languageModel(modelId: "flash25lite"): import("@ai-sdk/provider").LanguageModelV3;
|
|
12
10
|
embeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV3;
|
|
13
11
|
imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV3;
|
|
14
12
|
transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
|
|
15
13
|
rerankingModel(modelId: string): import("@ai-sdk/provider").RerankingModelV3;
|
|
16
14
|
speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV3;
|
|
15
|
+
videoModel(modelId: string): import("@ai-sdk/provider").Experimental_VideoModelV3;
|
|
17
16
|
};
|
|
18
17
|
};
|
|
19
18
|
export declare const googleModelRegistry: Record<ModelName, ModelMetadata<ModelName>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-provider.d.ts","sourceRoot":"","sources":["../../source/models/google-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"google-provider.d.ts","sourceRoot":"","sources":["../../source/models/google-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,YAAY;;CAER,CAAC;AAEX,KAAK,SAAS,GAAG,UAAU,MAAM,OAAO,YAAY,EAAE,CAAC;AAEvD,eAAO,MAAM,gBAAgB,EAAE,SAAS,EAEvC,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;CAK1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACtC,SAAS,EACT,aAAa,CAAC,SAAS,CAAC,CAczB,CAAC"}
|
|
@@ -3,8 +3,6 @@ import { objectKeys } from "@travisennis/stdlib/object";
|
|
|
3
3
|
import { customProvider } from "ai";
|
|
4
4
|
const googleModels = {
|
|
5
5
|
flash25lite: originalGoogle("gemini-2.5-flash-lite-preview-06-17"),
|
|
6
|
-
pro25: originalGoogle("gemini-2.5-pro"),
|
|
7
|
-
flash25: originalGoogle("gemini-2.5-flash"),
|
|
8
6
|
};
|
|
9
7
|
export const googleModelNames = objectKeys(googleModels).map((key) => `google:${key}`);
|
|
10
8
|
export const googleProvider = {
|
|
@@ -26,28 +24,4 @@ export const googleModelRegistry = {
|
|
|
26
24
|
costPerInputToken: 0,
|
|
27
25
|
costPerOutputToken: 0,
|
|
28
26
|
},
|
|
29
|
-
"google:pro25": {
|
|
30
|
-
id: "google:pro25",
|
|
31
|
-
provider: "google",
|
|
32
|
-
contextWindow: 1000000,
|
|
33
|
-
maxOutputTokens: 64000,
|
|
34
|
-
defaultTemperature: 0.7,
|
|
35
|
-
promptFormat: "markdown",
|
|
36
|
-
supportsReasoning: true,
|
|
37
|
-
supportsToolCalling: true,
|
|
38
|
-
costPerInputToken: 0,
|
|
39
|
-
costPerOutputToken: 0,
|
|
40
|
-
},
|
|
41
|
-
"google:flash25": {
|
|
42
|
-
id: "google:flash25",
|
|
43
|
-
provider: "google",
|
|
44
|
-
contextWindow: 1048576,
|
|
45
|
-
maxOutputTokens: 65536,
|
|
46
|
-
defaultTemperature: 0.3,
|
|
47
|
-
promptFormat: "markdown",
|
|
48
|
-
supportsReasoning: true,
|
|
49
|
-
supportsToolCalling: true,
|
|
50
|
-
costPerInputToken: 0.00000015,
|
|
51
|
-
costPerOutputToken: 0.0000035,
|
|
52
|
-
},
|
|
53
27
|
};
|
|
@@ -12,6 +12,7 @@ export declare const groqProvider: {
|
|
|
12
12
|
transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
|
|
13
13
|
rerankingModel(modelId: string): import("@ai-sdk/provider").RerankingModelV3;
|
|
14
14
|
speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV3;
|
|
15
|
+
videoModel(modelId: string): import("@ai-sdk/provider").Experimental_VideoModelV3;
|
|
15
16
|
};
|
|
16
17
|
};
|
|
17
18
|
export declare const groqModelRegistry: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groq-provider.d.ts","sourceRoot":"","sources":["../../source/models/groq-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAMpD,QAAA,MAAM,UAAU;;CAEN,CAAC;AAEX,KAAK,SAAS,GAAG,QAAQ,MAAM,OAAO,UAAU,EAAE,CAAC;AAEnD,eAAO,MAAM,cAAc,EAAE,SAAS,EAErC,CAAC;AAEF,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"groq-provider.d.ts","sourceRoot":"","sources":["../../source/models/groq-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAMpD,QAAA,MAAM,UAAU;;CAEN,CAAC;AAEX,KAAK,SAAS,GAAG,QAAQ,MAAM,OAAO,UAAU,EAAE,CAAC;AAEnD,eAAO,MAAM,cAAc,EAAE,SAAS,EAErC,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;CAKxB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE;KAC7B,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CAc3C,CAAC"}
|
package/dist/models/manager.d.ts
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import EventEmitter from "node:events";
|
|
2
2
|
import type { LanguageModelV3 } from "@ai-sdk/provider";
|
|
3
3
|
import { type ModelMetadata, type ModelName } from "./providers.ts";
|
|
4
|
-
|
|
4
|
+
export declare function getLanguageModel({ model, app, stateDir, devtoolsEnabled, }: {
|
|
5
|
+
model: ModelName;
|
|
6
|
+
app: string;
|
|
7
|
+
stateDir: string;
|
|
8
|
+
devtoolsEnabled?: boolean;
|
|
9
|
+
}): LanguageModelV3;
|
|
10
|
+
export declare function getModelMetadata({ model }: {
|
|
11
|
+
model: ModelName;
|
|
12
|
+
}): ModelMetadata<ModelName>;
|
|
13
|
+
type App = "repl" | "cli" | "title-conversation" | "conversation-summarizer" | "conversation-analyzer" | "tool-repair" | "init-project" | "handoff-agent";
|
|
5
14
|
interface ModelManagerEvents {
|
|
6
15
|
"set-model": [app: App, model: ModelName];
|
|
7
16
|
}
|
|
@@ -9,8 +18,10 @@ export declare class ModelManager extends EventEmitter<ModelManagerEvents> {
|
|
|
9
18
|
private modelMap;
|
|
10
19
|
private modelMetadataMap;
|
|
11
20
|
private stateDir;
|
|
12
|
-
|
|
21
|
+
private devtoolsEnabled;
|
|
22
|
+
constructor({ stateDir, devtoolsEnabled, }: {
|
|
13
23
|
stateDir: string;
|
|
24
|
+
devtoolsEnabled?: boolean;
|
|
14
25
|
});
|
|
15
26
|
setModel(app: App, model: ModelName): void;
|
|
16
27
|
getModel(app: App): LanguageModelV3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../source/models/manager.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../source/models/manager.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AAEvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOxD,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,SAAS,EAEf,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,GAAG,EACH,QAAQ,EACR,eAAuB,GACxB,EAAE;IACD,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,mBAiBA;AAED,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,4BAG/D;AAED,KAAK,GAAG,GACJ,MAAM,GACN,KAAK,GACL,oBAAoB,GACpB,yBAAyB,GACzB,uBAAuB,GACvB,aAAa,GACb,cAAc,GACd,eAAe,CAAC;AAEpB,UAAU,kBAAkB;IAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;CAC3C;AAED,qBAAa,YAAa,SAAQ,YAAY,CAAC,kBAAkB,CAAC;IAChE,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAU;gBACrB,EACV,QAAQ,EACR,eAAuB,GACxB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE;IAQlD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS;IAiBnC,QAAQ,CAAC,GAAG,EAAE,GAAG;IAQjB,gBAAgB,CAAC,GAAG,EAAE,GAAG;CAO1B"}
|
package/dist/models/manager.js
CHANGED
|
@@ -1,35 +1,47 @@
|
|
|
1
1
|
import EventEmitter from "node:events";
|
|
2
|
+
import { devToolsMiddleware } from "@ai-sdk/devtools";
|
|
2
3
|
import { wrapLanguageModel } from "ai";
|
|
3
4
|
import { auditMessage, cacheMiddleware, createRateLimitMiddleware, } from "../middleware/index.js";
|
|
4
5
|
import { languageModel, modelRegistry, } from "./providers.js";
|
|
5
|
-
function getLanguageModel({ model, app, stateDir, }) {
|
|
6
|
+
export function getLanguageModel({ model, app, stateDir, devtoolsEnabled = false, }) {
|
|
7
|
+
const middleware = [
|
|
8
|
+
cacheMiddleware,
|
|
9
|
+
createRateLimitMiddleware({ requestsPerMinute: 30 }),
|
|
10
|
+
auditMessage({ filePath: stateDir, app }),
|
|
11
|
+
];
|
|
12
|
+
if (devtoolsEnabled) {
|
|
13
|
+
middleware.push(devToolsMiddleware());
|
|
14
|
+
}
|
|
6
15
|
const langModel = wrapLanguageModel({
|
|
7
16
|
model: languageModel(model),
|
|
8
|
-
middleware
|
|
9
|
-
cacheMiddleware,
|
|
10
|
-
createRateLimitMiddleware({ requestsPerMinute: 30 }),
|
|
11
|
-
auditMessage({ filePath: stateDir, app }),
|
|
12
|
-
],
|
|
17
|
+
middleware,
|
|
13
18
|
});
|
|
14
19
|
return langModel;
|
|
15
20
|
}
|
|
21
|
+
export function getModelMetadata({ model }) {
|
|
22
|
+
const modelMetadata = modelRegistry[model];
|
|
23
|
+
return modelMetadata;
|
|
24
|
+
}
|
|
16
25
|
export class ModelManager extends EventEmitter {
|
|
17
26
|
modelMap;
|
|
18
27
|
modelMetadataMap;
|
|
19
28
|
stateDir;
|
|
20
|
-
|
|
29
|
+
devtoolsEnabled;
|
|
30
|
+
constructor({ stateDir, devtoolsEnabled = false, }) {
|
|
21
31
|
super();
|
|
22
32
|
this.modelMap = new Map();
|
|
23
33
|
this.modelMetadataMap = new Map();
|
|
24
34
|
this.stateDir = stateDir;
|
|
35
|
+
this.devtoolsEnabled = devtoolsEnabled;
|
|
25
36
|
}
|
|
26
37
|
setModel(app, model) {
|
|
27
38
|
this.modelMap.set(app, getLanguageModel({
|
|
28
39
|
model,
|
|
29
40
|
app,
|
|
30
41
|
stateDir: this.stateDir,
|
|
42
|
+
devtoolsEnabled: this.devtoolsEnabled,
|
|
31
43
|
}));
|
|
32
|
-
const modelMetadata =
|
|
44
|
+
const modelMetadata = getModelMetadata({ model });
|
|
33
45
|
if (modelMetadata) {
|
|
34
46
|
this.modelMetadataMap.set(app, modelMetadata);
|
|
35
47
|
}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import type { ModelMetadata } from "./providers.ts";
|
|
2
2
|
declare const openaiModels: {
|
|
3
|
-
readonly "gpt-4.1": import("@ai-sdk/provider").LanguageModelV3;
|
|
4
|
-
readonly o3: import("@ai-sdk/provider").LanguageModelV3;
|
|
5
|
-
readonly "o4-mini": import("@ai-sdk/provider").LanguageModelV3;
|
|
6
|
-
readonly "codex-mini": import("@ai-sdk/provider").LanguageModelV3;
|
|
7
3
|
readonly "gpt-5.2": import("@ai-sdk/provider").LanguageModelV3;
|
|
8
4
|
readonly "gpt-5.2-codex": import("@ai-sdk/provider").LanguageModelV3;
|
|
9
5
|
readonly "gpt-5.1-codex-mini": import("@ai-sdk/provider").LanguageModelV3;
|
|
@@ -12,12 +8,13 @@ type ModelName = `openai:${keyof typeof openaiModels}`;
|
|
|
12
8
|
export declare const openaiModelNames: ModelName[];
|
|
13
9
|
export declare const openaiProvider: {
|
|
14
10
|
openai: import("@ai-sdk/provider").ProviderV3 & {
|
|
15
|
-
languageModel(modelId: "gpt-
|
|
11
|
+
languageModel(modelId: "gpt-5.1-codex-mini" | "gpt-5.2" | "gpt-5.2-codex"): import("@ai-sdk/provider").LanguageModelV3;
|
|
16
12
|
embeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV3;
|
|
17
13
|
imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV3;
|
|
18
14
|
transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
|
|
19
15
|
rerankingModel(modelId: string): import("@ai-sdk/provider").RerankingModelV3;
|
|
20
16
|
speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV3;
|
|
17
|
+
videoModel(modelId: string): import("@ai-sdk/provider").Experimental_VideoModelV3;
|
|
21
18
|
};
|
|
22
19
|
};
|
|
23
20
|
export declare const openaiModelRegistry: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../source/models/openai-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../source/models/openai-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,YAAY;;;;CAIR,CAAC;AAEX,KAAK,SAAS,GAAG,UAAU,MAAM,OAAO,YAAY,EAAE,CAAC;AAEvD,eAAO,MAAM,gBAAgB,EAAE,SAAS,EAEvC,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;CAK1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE;KAC/B,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CAsC3C,CAAC"}
|
|
@@ -2,10 +2,6 @@ import { openai as originalOpenAi } from "@ai-sdk/openai";
|
|
|
2
2
|
import { objectKeys } from "@travisennis/stdlib/object";
|
|
3
3
|
import { customProvider } from "ai";
|
|
4
4
|
const openaiModels = {
|
|
5
|
-
"gpt-4.1": originalOpenAi("gpt-4.1"),
|
|
6
|
-
o3: originalOpenAi.responses("o3"),
|
|
7
|
-
"o4-mini": originalOpenAi.responses("o4-mini"),
|
|
8
|
-
"codex-mini": originalOpenAi("codex-mini-latest"),
|
|
9
5
|
"gpt-5.2": originalOpenAi("gpt-5.2"),
|
|
10
6
|
"gpt-5.2-codex": originalOpenAi.responses("gpt-5.2-codex"),
|
|
11
7
|
"gpt-5.1-codex-mini": originalOpenAi("gpt-5.1-codex-mini"),
|
|
@@ -18,54 +14,6 @@ export const openaiProvider = {
|
|
|
18
14
|
}),
|
|
19
15
|
};
|
|
20
16
|
export const openaiModelRegistry = {
|
|
21
|
-
"openai:gpt-4.1": {
|
|
22
|
-
id: "openai:gpt-4.1",
|
|
23
|
-
provider: "openai",
|
|
24
|
-
contextWindow: 1000000,
|
|
25
|
-
maxOutputTokens: 32768,
|
|
26
|
-
defaultTemperature: 0.3,
|
|
27
|
-
promptFormat: "markdown",
|
|
28
|
-
supportsReasoning: false,
|
|
29
|
-
supportsToolCalling: true,
|
|
30
|
-
costPerInputToken: 0.000002,
|
|
31
|
-
costPerOutputToken: 0.000008,
|
|
32
|
-
},
|
|
33
|
-
"openai:o3": {
|
|
34
|
-
id: "openai:o3",
|
|
35
|
-
provider: "openai",
|
|
36
|
-
contextWindow: 200000,
|
|
37
|
-
maxOutputTokens: 100000,
|
|
38
|
-
defaultTemperature: 0.3,
|
|
39
|
-
promptFormat: "markdown",
|
|
40
|
-
supportsReasoning: true,
|
|
41
|
-
supportsToolCalling: true,
|
|
42
|
-
costPerInputToken: 0.00001,
|
|
43
|
-
costPerOutputToken: 0.00004,
|
|
44
|
-
},
|
|
45
|
-
"openai:o4-mini": {
|
|
46
|
-
id: "openai:o4-mini",
|
|
47
|
-
provider: "openai",
|
|
48
|
-
contextWindow: 200000,
|
|
49
|
-
maxOutputTokens: 100000,
|
|
50
|
-
defaultTemperature: 0.3,
|
|
51
|
-
promptFormat: "markdown",
|
|
52
|
-
supportsReasoning: true,
|
|
53
|
-
supportsToolCalling: true,
|
|
54
|
-
costPerInputToken: 0.0000011,
|
|
55
|
-
costPerOutputToken: 0.0000044,
|
|
56
|
-
},
|
|
57
|
-
"openai:codex-mini": {
|
|
58
|
-
id: "openai:codex-mini",
|
|
59
|
-
provider: "openai",
|
|
60
|
-
contextWindow: 200000,
|
|
61
|
-
maxOutputTokens: 100000,
|
|
62
|
-
defaultTemperature: 0.3,
|
|
63
|
-
promptFormat: "markdown",
|
|
64
|
-
supportsReasoning: false,
|
|
65
|
-
supportsToolCalling: true,
|
|
66
|
-
costPerInputToken: 0.0000015,
|
|
67
|
-
costPerOutputToken: 0.000006,
|
|
68
|
-
},
|
|
69
17
|
"openai:gpt-5.2": {
|
|
70
18
|
id: "openai:gpt-5.2",
|
|
71
19
|
provider: "openai",
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ModelMetadata } from "./providers.ts";
|
|
2
|
+
declare const opencodeGoModels: {
|
|
3
|
+
readonly "glm-5": import("@ai-sdk/provider").LanguageModelV3;
|
|
4
|
+
readonly "kimi-k2-5": import("@ai-sdk/provider").LanguageModelV3;
|
|
5
|
+
readonly "minimax-m2-5": import("@ai-sdk/provider").LanguageModelV3;
|
|
6
|
+
readonly "minimax-m2-7": import("@ai-sdk/provider").LanguageModelV3;
|
|
7
|
+
};
|
|
8
|
+
type ModelName = `opencode-go:${keyof typeof opencodeGoModels}`;
|
|
9
|
+
export declare const opencodeGoModelNames: ModelName[];
|
|
10
|
+
export declare const opencodeGoProvider: {
|
|
11
|
+
"opencode-go": import("@ai-sdk/provider").ProviderV3 & {
|
|
12
|
+
languageModel(modelId: "glm-5" | "kimi-k2-5" | "minimax-m2-5" | "minimax-m2-7"): import("@ai-sdk/provider").LanguageModelV3;
|
|
13
|
+
embeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV3;
|
|
14
|
+
imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV3;
|
|
15
|
+
transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
|
|
16
|
+
rerankingModel(modelId: string): import("@ai-sdk/provider").RerankingModelV3;
|
|
17
|
+
speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV3;
|
|
18
|
+
videoModel(modelId: string): import("@ai-sdk/provider").Experimental_VideoModelV3;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export declare const opencodeGoModelRegistry: {
|
|
22
|
+
[K in ModelName]: ModelMetadata<ModelName>;
|
|
23
|
+
};
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=opencode-go-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-go-provider.d.ts","sourceRoot":"","sources":["../../source/models/opencode-go-provider.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAepD,QAAA,MAAM,gBAAgB;;;;;CAKZ,CAAC;AAEX,KAAK,SAAS,GAAG,eAAe,MAAM,OAAO,gBAAgB,EAAE,CAAC;AAEhE,eAAO,MAAM,oBAAoB,EAAE,SAAS,EAEC,CAAC;AAE9C,eAAO,MAAM,kBAAkB;;;;;;;;;;CAK9B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE;KACnC,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CAkD3C,CAAC"}
|