@travisennis/acai 0.0.3 → 0.0.5
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 +225 -6
- package/dist/api/exa/index.d.ts +177 -0
- package/dist/api/exa/index.d.ts.map +1 -0
- package/dist/api/exa/index.js +439 -0
- package/dist/cli.d.ts +3 -2
- package/dist/cli.d.ts.map +1 -0
- package/dist/commands/application-log-command.d.ts +1 -0
- package/dist/commands/application-log-command.d.ts.map +1 -0
- package/dist/commands/application-log-command.js +5 -3
- package/dist/commands/clear-command.d.ts +1 -0
- package/dist/commands/clear-command.d.ts.map +1 -0
- package/dist/commands/clear-command.js +2 -3
- package/dist/commands/compact-command.d.ts +1 -0
- package/dist/commands/compact-command.d.ts.map +1 -0
- package/dist/commands/compact-command.js +1 -1
- package/dist/commands/copy-command.d.ts +1 -0
- package/dist/commands/copy-command.d.ts.map +1 -0
- package/dist/commands/copy-command.js +3 -2
- package/dist/commands/edit-command.d.ts +1 -0
- package/dist/commands/edit-command.d.ts.map +1 -0
- package/dist/commands/edit-command.js +7 -5
- package/dist/commands/edit-prompt-command.d.ts +2 -1
- package/dist/commands/edit-prompt-command.d.ts.map +1 -0
- package/dist/commands/edit-prompt-command.js +15 -7
- package/dist/commands/exit-command.d.ts +13 -2
- package/dist/commands/exit-command.d.ts.map +1 -0
- package/dist/commands/exit-command.js +14 -2
- package/dist/commands/files-command.d.ts +1 -0
- package/dist/commands/files-command.d.ts.map +1 -0
- package/dist/commands/files-command.js +9 -8
- package/dist/commands/generate-rules-command.d.ts +1 -0
- package/dist/commands/generate-rules-command.d.ts.map +1 -0
- package/dist/commands/generate-rules-command.js +4 -3
- package/dist/commands/health-command.d.ts +3 -1
- package/dist/commands/health-command.d.ts.map +1 -0
- package/dist/commands/health-command.js +42 -5
- package/dist/commands/help-command.d.ts +1 -0
- package/dist/commands/help-command.d.ts.map +1 -0
- package/dist/commands/help-command.js +2 -3
- package/dist/commands/init-command.d.ts +1 -0
- package/dist/commands/init-command.d.ts.map +1 -0
- package/dist/commands/init-command.js +1 -2
- package/dist/commands/last-log-command.d.ts +1 -0
- package/dist/commands/last-log-command.d.ts.map +1 -0
- package/dist/commands/last-log-command.js +12 -17
- package/dist/commands/list-tools-command.d.ts +3 -0
- package/dist/commands/list-tools-command.d.ts.map +1 -0
- package/dist/commands/list-tools-command.js +61 -0
- package/dist/commands/manager.d.ts +7 -2
- package/dist/commands/manager.d.ts.map +1 -0
- package/dist/commands/manager.js +43 -6
- package/dist/commands/model-command.d.ts +1 -0
- package/dist/commands/model-command.d.ts.map +1 -0
- package/dist/commands/model-command.js +5 -5
- package/dist/commands/paste-command.d.ts +1 -0
- package/dist/commands/paste-command.d.ts.map +1 -0
- package/dist/commands/paste-command.js +6 -5
- package/dist/commands/prompt-command.d.ts +2 -1
- package/dist/commands/prompt-command.d.ts.map +1 -0
- package/dist/commands/prompt-command.js +62 -8
- package/dist/commands/reset-command.d.ts +1 -0
- package/dist/commands/reset-command.d.ts.map +1 -0
- package/dist/commands/reset-command.js +1 -1
- package/dist/commands/rules-command.d.ts +1 -0
- package/dist/commands/rules-command.d.ts.map +1 -0
- package/dist/commands/rules-command.js +5 -3
- package/dist/commands/save-command.d.ts +1 -0
- package/dist/commands/save-command.d.ts.map +1 -0
- package/dist/commands/save-command.js +1 -1
- package/dist/commands/shell-command.d.ts +3 -0
- package/dist/commands/shell-command.d.ts.map +1 -0
- package/dist/commands/shell-command.js +60 -0
- package/dist/commands/types.d.ts +9 -6
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/usage-command.d.ts +1 -0
- package/dist/commands/usage-command.d.ts.map +1 -0
- package/dist/commands/usage-command.js +2 -3
- package/dist/config.d.ts +22 -34
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +61 -15
- package/dist/conversation-analyzer.d.ts +2 -1
- package/dist/conversation-analyzer.d.ts.map +1 -0
- package/dist/dedent.d.ts +1 -0
- package/dist/dedent.d.ts.map +1 -0
- package/dist/execution/index.d.ts +112 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +432 -0
- package/dist/formatting.d.ts +2 -13
- package/dist/formatting.d.ts.map +1 -0
- package/dist/formatting.js +5 -64
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -4
- package/dist/logger.d.ts +1 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/mentions.d.ts +4 -0
- package/dist/mentions.d.ts.map +1 -0
- package/dist/mentions.js +42 -10
- package/dist/messages.d.ts +8 -20
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +33 -53
- package/dist/middleware/audit-message.d.ts +1 -0
- package/dist/middleware/audit-message.d.ts.map +1 -0
- package/dist/middleware/index.d.ts +1 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/rate-limit.d.ts +1 -0
- package/dist/middleware/rate-limit.d.ts.map +1 -0
- package/dist/models/ai-config.d.ts +1 -0
- package/dist/models/ai-config.d.ts.map +1 -0
- package/dist/models/anthropic-provider.d.ts +1 -0
- package/dist/models/anthropic-provider.d.ts.map +1 -0
- package/dist/models/deepseek-provider.d.ts +1 -0
- package/dist/models/deepseek-provider.d.ts.map +1 -0
- package/dist/models/google-provider.d.ts +1 -0
- package/dist/models/google-provider.d.ts.map +1 -0
- package/dist/models/groq-provider.d.ts +20 -0
- package/dist/models/groq-provider.d.ts.map +1 -0
- package/dist/models/groq-provider.js +31 -0
- package/dist/models/manager.d.ts +1 -0
- package/dist/models/manager.d.ts.map +1 -0
- package/dist/models/openai-provider.d.ts +2 -1
- package/dist/models/openai-provider.d.ts.map +1 -0
- package/dist/models/openrouter-provider.d.ts +31 -22
- package/dist/models/openrouter-provider.d.ts.map +1 -0
- package/dist/models/openrouter-provider.js +115 -1
- package/dist/models/providers.d.ts +4 -5
- package/dist/models/providers.d.ts.map +1 -0
- package/dist/models/providers.js +7 -3
- package/dist/models/xai-provider.d.ts +1 -0
- package/dist/models/xai-provider.d.ts.map +1 -0
- package/dist/parsing.d.ts +2 -1
- package/dist/parsing.d.ts.map +1 -0
- package/dist/prompts/manager.d.ts +14 -2
- package/dist/prompts/manager.d.ts.map +1 -0
- package/dist/prompts.d.ts +1 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +17 -11
- package/dist/repl/display-tool-messages.d.ts +4 -0
- package/dist/repl/display-tool-messages.d.ts.map +1 -0
- package/dist/repl/display-tool-messages.js +55 -0
- package/dist/repl/display-tool-use.d.ts +14 -0
- package/dist/repl/display-tool-use.d.ts.map +1 -0
- package/dist/repl/display-tool-use.js +63 -0
- package/dist/repl/get-prompt-header.d.ts +8 -0
- package/dist/repl/get-prompt-header.d.ts.map +1 -0
- package/dist/repl/get-prompt-header.js +38 -0
- package/dist/repl/tool-call-repair.d.ts +4 -0
- package/dist/repl/tool-call-repair.d.ts.map +1 -0
- package/dist/repl/tool-call-repair.js +50 -0
- package/dist/repl-prompt.d.ts +1 -0
- package/dist/repl-prompt.d.ts.map +1 -0
- package/dist/repl.d.ts +8 -4
- package/dist/repl.d.ts.map +1 -0
- package/dist/repl.js +108 -252
- package/dist/terminal/ansi-styles.d.ts +77 -0
- package/dist/terminal/ansi-styles.d.ts.map +1 -0
- package/dist/terminal/ansi-styles.js +215 -0
- package/dist/terminal/checkbox-prompt.d.ts +36 -0
- package/dist/terminal/checkbox-prompt.d.ts.map +1 -0
- package/dist/terminal/checkbox-prompt.js +362 -0
- package/dist/terminal/default-theme.d.ts +6 -0
- package/dist/terminal/default-theme.d.ts.map +1 -0
- package/dist/terminal/default-theme.js +182 -0
- package/dist/terminal/east-asian-width.d.ts +8 -0
- package/dist/terminal/east-asian-width.d.ts.map +1 -0
- package/dist/terminal/east-asian-width.js +409 -0
- package/dist/terminal/editor-prompt.d.ts +10 -0
- package/dist/terminal/editor-prompt.d.ts.map +1 -0
- package/dist/terminal/editor-prompt.js +61 -0
- package/dist/terminal/errors.d.ts +19 -0
- package/dist/terminal/errors.d.ts.map +1 -0
- package/dist/terminal/errors.js +37 -0
- package/dist/terminal/formatting.d.ts +1 -11
- package/dist/terminal/formatting.d.ts.map +1 -0
- package/dist/terminal/formatting.js +4 -20
- package/dist/terminal/highlight/index.d.ts +53 -0
- package/dist/terminal/highlight/index.d.ts.map +1 -0
- package/dist/terminal/highlight/index.js +90 -0
- package/dist/terminal/highlight/theme.d.ts +233 -0
- package/dist/terminal/highlight/theme.d.ts.map +1 -0
- package/dist/terminal/highlight/theme.js +83 -0
- package/dist/terminal/index.d.ts +16 -9
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +42 -126
- package/dist/terminal/input-prompt.d.ts +16 -0
- package/dist/terminal/input-prompt.d.ts.map +1 -0
- package/dist/terminal/input-prompt.js +181 -0
- package/dist/terminal/markdown-utils.d.ts +1 -0
- package/dist/terminal/markdown-utils.d.ts.map +1 -0
- package/dist/terminal/markdown.d.ts +1 -0
- package/dist/terminal/markdown.d.ts.map +1 -0
- package/dist/terminal/markdown.js +17 -12
- package/dist/terminal/search-prompt.d.ts +20 -0
- package/dist/terminal/search-prompt.d.ts.map +1 -0
- package/dist/terminal/search-prompt.js +279 -0
- package/dist/terminal/select-prompt.d.ts +26 -0
- package/dist/terminal/select-prompt.d.ts.map +1 -0
- package/dist/terminal/select-prompt.js +298 -0
- package/dist/terminal/string-width.d.ts +7 -0
- package/dist/terminal/string-width.d.ts.map +1 -0
- package/dist/terminal/string-width.js +61 -0
- package/dist/terminal/strip-ansi.d.ts +2 -0
- package/dist/terminal/strip-ansi.d.ts.map +1 -0
- package/dist/terminal/strip-ansi.js +20 -0
- package/dist/terminal/style.d.ts +191 -0
- package/dist/terminal/style.d.ts.map +1 -0
- package/dist/terminal/style.js +259 -0
- package/dist/terminal/supports-color.d.ts +1 -0
- package/dist/terminal/supports-color.d.ts.map +1 -0
- package/dist/terminal/supports-hyperlinks.d.ts +1 -3
- package/dist/terminal/supports-hyperlinks.d.ts.map +1 -0
- package/dist/terminal/supports-hyperlinks.js +1 -1
- package/dist/terminal/types.d.ts +1 -37
- package/dist/terminal/types.d.ts.map +1 -0
- package/dist/terminal/wrap-ansi.d.ts +8 -0
- package/dist/terminal/wrap-ansi.d.ts.map +1 -0
- package/dist/terminal/wrap-ansi.js +190 -0
- package/dist/{token-utils.d.ts → tokens/counter.d.ts} +1 -0
- package/dist/tokens/counter.d.ts.map +1 -0
- package/dist/{token-utils.js → tokens/counter.js} +1 -1
- package/dist/tokens/manage-output.d.ts +34 -0
- package/dist/tokens/manage-output.d.ts.map +1 -0
- package/dist/tokens/manage-output.js +44 -0
- package/dist/{token-tracker.d.ts → tokens/tracker.d.ts} +1 -0
- package/dist/tokens/tracker.d.ts.map +1 -0
- package/dist/tool-executor.d.ts +28 -0
- package/dist/tool-executor.d.ts.map +1 -0
- package/dist/tool-executor.js +74 -0
- package/dist/tools/agent.d.ts +3 -2
- package/dist/tools/agent.d.ts.map +1 -0
- package/dist/tools/agent.js +7 -4
- package/dist/tools/bash-utils.d.ts +7 -0
- package/dist/tools/bash-utils.d.ts.map +1 -0
- package/dist/tools/bash-utils.js +212 -0
- package/dist/tools/bash.d.ts +9 -7
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +95 -212
- package/dist/tools/code-interpreter.d.ts +1 -0
- package/dist/tools/code-interpreter.d.ts.map +1 -0
- package/dist/tools/code-interpreter.js +33 -8
- package/dist/tools/delete-file.d.ts +5 -3
- package/dist/tools/delete-file.d.ts.map +1 -0
- package/dist/tools/delete-file.js +47 -33
- package/dist/tools/directory-tree.d.ts +10 -1
- package/dist/tools/directory-tree.d.ts.map +1 -0
- package/dist/tools/directory-tree.js +91 -8
- package/dist/tools/dynamic-tool-loader.d.ts +12 -0
- package/dist/tools/dynamic-tool-loader.d.ts.map +1 -0
- package/dist/tools/dynamic-tool-loader.js +280 -0
- package/dist/tools/dynamic-tool-parser.d.ts +20 -0
- package/dist/tools/dynamic-tool-parser.d.ts.map +1 -0
- package/dist/tools/dynamic-tool-parser.js +21 -0
- package/dist/tools/edit-file.d.ts +10 -2
- package/dist/tools/edit-file.d.ts.map +1 -0
- package/dist/tools/edit-file.js +117 -40
- package/dist/tools/file-editing-utils.d.ts +2 -0
- package/dist/tools/file-editing-utils.d.ts.map +1 -0
- package/dist/tools/file-editing-utils.js +135 -0
- package/dist/tools/filesystem-utils.d.ts +6 -21
- package/dist/tools/filesystem-utils.d.ts.map +1 -0
- package/dist/tools/filesystem-utils.js +96 -148
- package/dist/tools/git-utils.d.ts +1 -0
- package/dist/tools/git-utils.d.ts.map +1 -0
- package/dist/tools/grep.d.ts +5 -3
- package/dist/tools/grep.d.ts.map +1 -0
- package/dist/tools/grep.js +67 -27
- package/dist/tools/index.d.ts +10 -14
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +33 -22
- package/dist/tools/move-file.d.ts +1 -0
- package/dist/tools/move-file.d.ts.map +1 -0
- package/dist/tools/move-file.js +12 -5
- package/dist/tools/read-file.d.ts +2 -1
- package/dist/tools/read-file.d.ts.map +1 -0
- package/dist/tools/read-file.js +13 -6
- package/dist/tools/read-multiple-files.d.ts +2 -1
- package/dist/tools/read-multiple-files.d.ts.map +1 -0
- package/dist/tools/read-multiple-files.js +90 -9
- package/dist/tools/save-file.d.ts +5 -3
- package/dist/tools/save-file.d.ts.map +1 -0
- package/dist/tools/save-file.js +64 -36
- package/dist/tools/think.d.ts +1 -0
- package/dist/tools/think.d.ts.map +1 -0
- package/dist/tools/think.js +5 -1
- package/dist/tools/types.d.ts +14 -1
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/web-fetch.d.ts +4 -2
- package/dist/tools/web-fetch.d.ts.map +1 -0
- package/dist/tools/web-fetch.js +2 -2
- package/dist/tools/web-search.d.ts +2 -1
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +46 -11
- package/dist/utils/filesystem.d.ts +23 -0
- package/dist/utils/filesystem.d.ts.map +1 -0
- package/dist/utils/filesystem.js +140 -0
- package/dist/utils/filetype-detection.d.ts +3 -0
- package/dist/utils/filetype-detection.d.ts.map +1 -0
- package/dist/utils/filetype-detection.js +112 -0
- package/dist/utils/glob.d.ts +52 -0
- package/dist/utils/glob.d.ts.map +1 -0
- package/dist/utils/glob.js +376 -0
- package/dist/utils/ignore.d.ts +104 -0
- package/dist/utils/ignore.d.ts.map +1 -0
- package/dist/utils/ignore.js +649 -0
- package/dist/utils/process.d.ts +10 -1
- package/dist/utils/process.d.ts.map +1 -0
- package/dist/utils/process.js +104 -5
- package/dist/utils/zod-utils.d.ts +4 -0
- package/dist/utils/zod-utils.d.ts.map +1 -0
- package/dist/utils/zod-utils.js +7 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.d.ts.map +1 -0
- package/package.json +32 -30
- package/dist/tools/command-validation.d.ts +0 -12
- package/dist/tools/command-validation.js +0 -113
- /package/dist/{token-tracker.js → tokens/tracker.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";AAwDA,QAAA,MAAM,KAAK;;;;;;;;;CAAgB,CAAC;AAG5B;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAE9C;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { text } from "node:stream/consumers";
|
|
3
3
|
import { parseArgs } from "node:util";
|
|
4
|
-
import { select } from "@inquirer/prompts";
|
|
5
4
|
import { asyncTry } from "@travisennis/stdlib/try";
|
|
6
5
|
import { isDefined } from "@travisennis/stdlib/typeguards";
|
|
7
6
|
import { Cli } from "./cli.js";
|
|
@@ -14,8 +13,10 @@ import { isSupportedModel } from "./models/providers.js";
|
|
|
14
13
|
import { PromptManager } from "./prompts/manager.js";
|
|
15
14
|
import { Repl } from "./repl.js";
|
|
16
15
|
import { initTerminal } from "./terminal/index.js";
|
|
17
|
-
import {
|
|
18
|
-
import { TokenCounter } from "./
|
|
16
|
+
import { select } from "./terminal/select-prompt.js";
|
|
17
|
+
import { TokenCounter } from "./tokens/counter.js";
|
|
18
|
+
import { TokenTracker } from "./tokens/tracker.js";
|
|
19
|
+
import { ToolExecutor } from "./tool-executor.js";
|
|
19
20
|
import { getPackageVersion } from "./version.js";
|
|
20
21
|
const helpText = `
|
|
21
22
|
Usage
|
|
@@ -167,6 +168,7 @@ async function main() {
|
|
|
167
168
|
logger.info("No previous conversations found to resume.");
|
|
168
169
|
}
|
|
169
170
|
}
|
|
171
|
+
const toolExecutor = new ToolExecutor(flags.autoAcceptAll === true);
|
|
170
172
|
// --- Setup Prompt Manager (only if not continuing/resuming) ---
|
|
171
173
|
const promptManager = new PromptManager(tokenCounter);
|
|
172
174
|
if (!hasContinueOrResume && isDefined(initialPromptInput)) {
|
|
@@ -176,6 +178,7 @@ async function main() {
|
|
|
176
178
|
promptManager.addContext(stdInPrompt);
|
|
177
179
|
}
|
|
178
180
|
const toolEvents = new Map();
|
|
181
|
+
const promptHistory = [];
|
|
179
182
|
const commands = new CommandManager({
|
|
180
183
|
promptManager,
|
|
181
184
|
modelManager,
|
|
@@ -184,8 +187,11 @@ async function main() {
|
|
|
184
187
|
tokenTracker,
|
|
185
188
|
config,
|
|
186
189
|
tokenCounter,
|
|
190
|
+
toolExecutor,
|
|
187
191
|
toolEvents,
|
|
192
|
+
promptHistory,
|
|
188
193
|
});
|
|
194
|
+
await commands.initializeCommmands();
|
|
189
195
|
if (flags.oneshot === true) {
|
|
190
196
|
const cliProcess = new Cli({
|
|
191
197
|
promptManager,
|
|
@@ -207,7 +213,11 @@ async function main() {
|
|
|
207
213
|
commands,
|
|
208
214
|
tokenCounter,
|
|
209
215
|
toolEvents,
|
|
210
|
-
|
|
216
|
+
toolExecutor,
|
|
217
|
+
promptHistory,
|
|
218
|
+
showLastMessage: hasContinueOrResume
|
|
219
|
+
? !!(messageHistory.get() && messageHistory.get().length > 0)
|
|
220
|
+
: false,
|
|
211
221
|
});
|
|
212
222
|
return (await asyncTry(repl.run())).recover(handleError);
|
|
213
223
|
}
|
package/dist/logger.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../source/logger.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AAgBxB,eAAO,MAAM,MAAM,6BAWlB,CAAC"}
|
package/dist/mentions.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { ModelMetadata } from "./models/providers.ts";
|
|
2
2
|
import type { ContextItem } from "./prompts/manager.ts";
|
|
3
|
+
export declare class PromptError extends Error {
|
|
4
|
+
constructor(message: string, cause?: Error);
|
|
5
|
+
}
|
|
3
6
|
export declare function processPrompt(message: string, { baseDir, model }: {
|
|
4
7
|
baseDir: string;
|
|
5
8
|
model: ModelMetadata;
|
|
@@ -7,3 +10,4 @@ export declare function processPrompt(message: string, { baseDir, model }: {
|
|
|
7
10
|
message: string;
|
|
8
11
|
context: ContextItem[];
|
|
9
12
|
}>;
|
|
13
|
+
//# sourceMappingURL=mentions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mentions.d.ts","sourceRoot":"","sources":["../source/mentions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAsBxD,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAI3C;AA+JD,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAC5D,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CA0FtD"}
|
package/dist/mentions.js
CHANGED
|
@@ -1,9 +1,27 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { isString } from "@travisennis/stdlib/typeguards";
|
|
4
|
+
import { initExecutionEnvironment } from "./execution/index.js";
|
|
4
5
|
import { formatFile, formatUrl } from "./formatting.js";
|
|
5
6
|
import { readUrl } from "./tools/web-fetch.js";
|
|
6
|
-
|
|
7
|
+
class ShellCommandError extends Error {
|
|
8
|
+
command;
|
|
9
|
+
exitCode;
|
|
10
|
+
output;
|
|
11
|
+
constructor(message, command, exitCode, output) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = "ShellCommandError";
|
|
14
|
+
this.command = command;
|
|
15
|
+
this.exitCode = exitCode;
|
|
16
|
+
this.output = output;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export class PromptError extends Error {
|
|
20
|
+
constructor(message, cause) {
|
|
21
|
+
super(message, { cause });
|
|
22
|
+
this.name = "PromptError";
|
|
23
|
+
}
|
|
24
|
+
}
|
|
7
25
|
// Helper function to recursively read all files in a directory
|
|
8
26
|
async function readDirectoryRecursive(dirPath, format) {
|
|
9
27
|
const allContents = [];
|
|
@@ -77,19 +95,23 @@ async function processFileCommand(context) {
|
|
|
77
95
|
}
|
|
78
96
|
async function processShellCommand(command) {
|
|
79
97
|
try {
|
|
80
|
-
const
|
|
81
|
-
|
|
98
|
+
const execEnv = await initExecutionEnvironment();
|
|
99
|
+
const { output, exitCode } = await execEnv.executeCommand(command, {
|
|
100
|
+
throwOnError: true,
|
|
82
101
|
});
|
|
83
|
-
if (
|
|
84
|
-
return
|
|
102
|
+
if (exitCode === 0) {
|
|
103
|
+
return output;
|
|
85
104
|
}
|
|
86
|
-
|
|
105
|
+
throw new ShellCommandError(`Command failed with exit code ${exitCode}`, command, exitCode, output);
|
|
87
106
|
}
|
|
88
107
|
catch (error) {
|
|
108
|
+
if (error instanceof ShellCommandError) {
|
|
109
|
+
throw error;
|
|
110
|
+
}
|
|
89
111
|
if (error instanceof Error) {
|
|
90
|
-
|
|
112
|
+
throw new ShellCommandError(`Command execution failed: ${error.message}`, command, undefined, undefined);
|
|
91
113
|
}
|
|
92
|
-
|
|
114
|
+
throw new ShellCommandError("Command execution failed with unknown error", command, undefined, undefined);
|
|
93
115
|
}
|
|
94
116
|
}
|
|
95
117
|
// Returns the formatted string or an error message string
|
|
@@ -153,8 +175,18 @@ export async function processPrompt(message, { baseDir, model }) {
|
|
|
153
175
|
for (const match of shellMatches) {
|
|
154
176
|
const command = match[1];
|
|
155
177
|
if (command) {
|
|
156
|
-
|
|
157
|
-
|
|
178
|
+
try {
|
|
179
|
+
const output = await processShellCommand(command);
|
|
180
|
+
processedMessage = processedMessage.replace(match[0], output);
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
if (error instanceof ShellCommandError) {
|
|
184
|
+
// Wrap shell command errors in PromptError
|
|
185
|
+
throw new PromptError(`Shell command failed: ${error.message}`, error);
|
|
186
|
+
}
|
|
187
|
+
// For other errors, wrap them in PromptError
|
|
188
|
+
throw new PromptError(`Unexpected error executing command: ${error instanceof Error ? error.message : "Unknown error"}`, error instanceof Error ? error : undefined);
|
|
189
|
+
}
|
|
158
190
|
}
|
|
159
191
|
}
|
|
160
192
|
// Wait for all mentions to be processed
|
package/dist/messages.d.ts
CHANGED
|
@@ -2,16 +2,15 @@ import EventEmitter from "node:events";
|
|
|
2
2
|
import { type AssistantModelMessage, type ImagePart, // Added ImagePart
|
|
3
3
|
type ModelMessage, type ToolModelMessage, type UserModelMessage } from "ai";
|
|
4
4
|
import type { ModelManager } from "./models/manager.ts";
|
|
5
|
-
import type { TokenTracker } from "./
|
|
5
|
+
import type { TokenTracker } from "./tokens/tracker.ts";
|
|
6
6
|
export type UserMessageContentItem = string | ImagePart;
|
|
7
7
|
export declare function createUserMessage(contentItems: UserMessageContentItem[], prompt?: string): UserModelMessage;
|
|
8
|
-
export declare function createAssistantMessage(content: string): AssistantModelMessage;
|
|
9
8
|
/**
|
|
10
9
|
A message that was generated during the generation process.
|
|
11
10
|
It can be either an assistant message or a tool message.
|
|
12
11
|
*/
|
|
13
12
|
type ResponseMessage = AssistantModelMessage | ToolModelMessage;
|
|
14
|
-
|
|
13
|
+
type SavedMessageHistory = {
|
|
15
14
|
title: string;
|
|
16
15
|
createdAt: Date;
|
|
17
16
|
updatedAt: Date;
|
|
@@ -46,24 +45,13 @@ export declare class MessageHistory extends EventEmitter<MessageHistoryEvents> {
|
|
|
46
45
|
save(): Promise<void>;
|
|
47
46
|
private generateTitle;
|
|
48
47
|
getFirstUserMessage(): UserModelMessage | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Extracts the last message from the conversation history for display purposes.
|
|
50
|
+
* Prioritizes assistant messages, falls back to user messages if no assistant messages exist.
|
|
51
|
+
*/
|
|
52
|
+
getLastMessage(): string | null;
|
|
49
53
|
static load(stateDir: string, count?: number): Promise<SavedMessageHistory[]>;
|
|
50
54
|
restore(savedHistory: SavedMessageHistory): void;
|
|
51
55
|
}
|
|
52
|
-
/**
|
|
53
|
-
* Normalizes an array of messages for API consumption by:
|
|
54
|
-
* 1. Filtering out progress-type messages
|
|
55
|
-
* 2. Processing user and assistant messages
|
|
56
|
-
* 3. Handling tool results by either:
|
|
57
|
-
* - Adding them as new messages if they're the first tool result
|
|
58
|
-
* - Adding them as new messages if the previous message wasn't a tool result
|
|
59
|
-
* - Merging them with the previous message if it was also a tool result
|
|
60
|
-
*
|
|
61
|
-
* This consolidation of sequential tool results into a single message
|
|
62
|
-
* ensures proper formatting for API consumption while maintaining the
|
|
63
|
-
* logical flow of the conversation.
|
|
64
|
-
*
|
|
65
|
-
* @param messages - Array of messages to normalize
|
|
66
|
-
* @returns Normalized array of user and assistant messages ready for API
|
|
67
|
-
*/
|
|
68
|
-
export declare function normalizeMessagesForApi(messages: ModelMessage[]): ModelMessage[];
|
|
69
56
|
export {};
|
|
57
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../source/messages.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AAIvC,OAAO,EACL,KAAK,qBAAqB,EAE1B,KAAK,SAAS,EAAE,kBAAkB;AAClC,KAAK,YAAY,EAEjB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,IAAI,CAAC;AACZ,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,SAAS,CAAC;AAExD,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,sBAAsB,EAAE,EACtC,MAAM,CAAC,EAAE,MAAM,GACd,gBAAgB,CAuBlB;AAcD;;;GAGG;AACH,KAAK,eAAe,GAAG,qBAAqB,GAAG,gBAAgB,CAAC;AAEhE,KAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B,CAAC;AAUF,UAAU,oBAAoB;IAC5B,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;IACzB,eAAe,EAAE,EAAE,CAAC;CACrB;AAED,qBAAa,cAAe,SAAQ,YAAY,CAAC,oBAAoB,CAAC;IACpE,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAO;IACxB,OAAO,CAAC,SAAS,CAAO;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAe;gBAEvB,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,YAAY,CAAC;QAC3B,YAAY,EAAE,YAAY,CAAC;KAC5B;IAWD,OAAO,CAAC,YAAY;IAoBpB,GAAG;IAIH,KAAK;IAKL,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IACpC,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAmB9C,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IACzC,sBAAsB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI;IAOxD,sBAAsB,CAAC,gBAAgB,EAAE,eAAe,EAAE;IAO1D,OAAO;IAID,IAAI;YAgBI,aAAa;IA4B3B,mBAAmB,IAAI,gBAAgB,GAAG,SAAS;IAOnD;;;OAGG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI;WA2ClB,IAAI,CACf,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAK,GACT,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAqDjC,OAAO,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI;CAajD"}
|
package/dist/messages.js
CHANGED
|
@@ -25,7 +25,7 @@ export function createUserMessage(contentItems, prompt) {
|
|
|
25
25
|
content: messageParts,
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
|
-
|
|
28
|
+
function createAssistantMessage(content) {
|
|
29
29
|
return {
|
|
30
30
|
role: "assistant",
|
|
31
31
|
content: [
|
|
@@ -145,6 +145,38 @@ export class MessageHistory extends EventEmitter {
|
|
|
145
145
|
const firstUser = this.get().find((msg) => msg.role === "user");
|
|
146
146
|
return firstUser;
|
|
147
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Extracts the last message from the conversation history for display purposes.
|
|
150
|
+
* Prioritizes assistant messages, falls back to user messages if no assistant messages exist.
|
|
151
|
+
*/
|
|
152
|
+
getLastMessage() {
|
|
153
|
+
const messages = this.get();
|
|
154
|
+
if (messages.length === 0) {
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
// Find the last assistant message, or fall back to last user message
|
|
158
|
+
const reversedMessages = [...messages].reverse();
|
|
159
|
+
const lastAssistant = reversedMessages.find((msg) => msg.role === "assistant");
|
|
160
|
+
const lastUser = reversedMessages.find((msg) => msg.role === "user");
|
|
161
|
+
const targetMessage = lastAssistant || lastUser;
|
|
162
|
+
if (!targetMessage) {
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
// Extract text content from the message
|
|
166
|
+
if (Array.isArray(targetMessage.content)) {
|
|
167
|
+
const textParts = targetMessage.content.filter((part) => part.type === "text" && part.text.trim().length > 0);
|
|
168
|
+
if (textParts.length === 0) {
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
return textParts.map((part) => part.text).join("\n");
|
|
172
|
+
}
|
|
173
|
+
// Handle string content (though this should be rare with current implementation)
|
|
174
|
+
if (typeof targetMessage.content === "string" &&
|
|
175
|
+
targetMessage.content.trim().length > 0) {
|
|
176
|
+
return targetMessage.content;
|
|
177
|
+
}
|
|
178
|
+
return null;
|
|
179
|
+
}
|
|
148
180
|
static async load(stateDir, count = 10) {
|
|
149
181
|
try {
|
|
150
182
|
const files = await readdir(stateDir);
|
|
@@ -207,55 +239,3 @@ export class MessageHistory extends EventEmitter {
|
|
|
207
239
|
this.history = [...savedHistory.messages]; // Use the correct internal property name and create a copy
|
|
208
240
|
}
|
|
209
241
|
}
|
|
210
|
-
/**
|
|
211
|
-
* Normalizes an array of messages for API consumption by:
|
|
212
|
-
* 1. Filtering out progress-type messages
|
|
213
|
-
* 2. Processing user and assistant messages
|
|
214
|
-
* 3. Handling tool results by either:
|
|
215
|
-
* - Adding them as new messages if they're the first tool result
|
|
216
|
-
* - Adding them as new messages if the previous message wasn't a tool result
|
|
217
|
-
* - Merging them with the previous message if it was also a tool result
|
|
218
|
-
*
|
|
219
|
-
* This consolidation of sequential tool results into a single message
|
|
220
|
-
* ensures proper formatting for API consumption while maintaining the
|
|
221
|
-
* logical flow of the conversation.
|
|
222
|
-
*
|
|
223
|
-
* @param messages - Array of messages to normalize
|
|
224
|
-
* @returns Normalized array of user and assistant messages ready for API
|
|
225
|
-
*/
|
|
226
|
-
export function normalizeMessagesForApi(messages) {
|
|
227
|
-
const result = [];
|
|
228
|
-
for (const message of messages) {
|
|
229
|
-
switch (message.role) {
|
|
230
|
-
case "user": {
|
|
231
|
-
result.push(message);
|
|
232
|
-
continue;
|
|
233
|
-
}
|
|
234
|
-
case "tool": {
|
|
235
|
-
// If the last message is not a tool result, add it to the result
|
|
236
|
-
const lastMessage = result.at(-1);
|
|
237
|
-
if (!lastMessage ||
|
|
238
|
-
lastMessage.role === "assistant" ||
|
|
239
|
-
!Array.isArray(lastMessage.content) ||
|
|
240
|
-
lastMessage.content[0]?.type !== "tool-result") {
|
|
241
|
-
result.push(message);
|
|
242
|
-
continue;
|
|
243
|
-
}
|
|
244
|
-
// Otherwise, merge the current message with the last message
|
|
245
|
-
result[result.indexOf(lastMessage)] = {
|
|
246
|
-
...lastMessage,
|
|
247
|
-
// biome-ignore lint/suspicious/noExplicitAny: can't figure out type
|
|
248
|
-
content: [...lastMessage.content, ...message.content], // #FIXME figure out what type this should be
|
|
249
|
-
};
|
|
250
|
-
continue;
|
|
251
|
-
}
|
|
252
|
-
case "assistant": {
|
|
253
|
-
result.push(message);
|
|
254
|
-
continue;
|
|
255
|
-
}
|
|
256
|
-
default:
|
|
257
|
-
continue;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
return result;
|
|
261
|
-
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-message.d.ts","sourceRoot":"","sources":["../../source/middleware/audit-message.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,yBAAyB,EAI1B,MAAM,kBAAkB,CAAC;AAmC1B,eAAO,MAAM,YAAY,GAAI,oBAG1B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb,8BAoFA,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../source/middleware/rate-limit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAGlE,eAAO,MAAM,yBAAyB,GAAI,wBAEvC;IACD,iBAAiB,EAAE,MAAM,CAAC;CAC3B,KAAG,yBAgBH,CAAC"}
|
|
@@ -0,0 +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;gBACX,EACV,aAAa,EACb,MAAM,GACP,EAAE;QAAE,aAAa,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAKnD,YAAY;IAUZ,kBAAkB,IAAI,wBAAwB;CA2C/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic-provider.d.ts","sourceRoot":"","sources":["../../source/models/anthropic-provider.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAcpD,QAAA,MAAM,eAAe;;;;;;;;CAoEX,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;CA6F3C,CAAC"}
|
|
@@ -0,0 +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;;;;;;;;CAK5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE;KACjC,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CA4B3C,CAAC"}
|
|
@@ -0,0 +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;;;;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,MAAM,CACtC,SAAS,EACT,aAAa,CAAC,SAAS,CAAC,CAyCzB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ModelMetadata } from "./providers.ts";
|
|
2
|
+
declare const groqModels: {
|
|
3
|
+
readonly "kimi-k2-instruct-0905": import("@ai-sdk/provider").LanguageModelV2;
|
|
4
|
+
};
|
|
5
|
+
type ModelName = `groq:${keyof typeof groqModels}`;
|
|
6
|
+
export declare const groqModelNames: ModelName[];
|
|
7
|
+
export declare const groqProvider: {
|
|
8
|
+
groq: import("@ai-sdk/provider").ProviderV2 & {
|
|
9
|
+
languageModel(modelId: "kimi-k2-instruct-0905"): import("@ai-sdk/provider").LanguageModelV2;
|
|
10
|
+
textEmbeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV2<string>;
|
|
11
|
+
imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV2;
|
|
12
|
+
transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV2;
|
|
13
|
+
speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV2;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare const groqModelRegistry: {
|
|
17
|
+
[K in ModelName]: ModelMetadata<ModelName>;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=groq-provider.d.ts.map
|
|
@@ -0,0 +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;;;;;;;;CAKxB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE;KAC7B,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CAe3C,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createGroq, groq as originalGroq } from "@ai-sdk/groq";
|
|
2
|
+
import { objectKeys } from "@travisennis/stdlib/object";
|
|
3
|
+
import { customProvider } from "ai";
|
|
4
|
+
const groq = createGroq({
|
|
5
|
+
apiKey: process.env["GROQ_API_KEY"] ?? "",
|
|
6
|
+
});
|
|
7
|
+
const groqModels = {
|
|
8
|
+
"kimi-k2-instruct-0905": groq("moonshotai/kimi-k2-instruct-0905"),
|
|
9
|
+
};
|
|
10
|
+
export const groqModelNames = objectKeys(groqModels).map((key) => `groq:${key}`);
|
|
11
|
+
export const groqProvider = {
|
|
12
|
+
groq: customProvider({
|
|
13
|
+
languageModels: groqModels,
|
|
14
|
+
fallbackProvider: originalGroq,
|
|
15
|
+
}),
|
|
16
|
+
};
|
|
17
|
+
export const groqModelRegistry = {
|
|
18
|
+
"groq:kimi-k2-instruct-0905": {
|
|
19
|
+
id: "groq:kimi-k2-instruct-0905",
|
|
20
|
+
provider: "groq",
|
|
21
|
+
contextWindow: 262144,
|
|
22
|
+
maxOutputTokens: 16384,
|
|
23
|
+
defaultTemperature: 0.1,
|
|
24
|
+
promptFormat: "markdown",
|
|
25
|
+
supportsReasoning: false,
|
|
26
|
+
supportsToolCalling: true,
|
|
27
|
+
costPerInputToken: 1 / 1000000,
|
|
28
|
+
costPerOutputToken: 3 / 1000000,
|
|
29
|
+
category: "fast",
|
|
30
|
+
},
|
|
31
|
+
};
|
package/dist/models/manager.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../source/models/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMxD,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,SAAS,EAEf,MAAM,gBAAgB,CAAC;AAsBxB,KAAK,GAAG,GACJ,MAAM,GACN,KAAK,GACL,oBAAoB,GACpB,yBAAyB,GACzB,uBAAuB,GACvB,aAAa,GACb,cAAc,GACd,YAAY,CAAC;AAEjB,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAS;gBACb,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;IAM9C,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS;IAenC,QAAQ,CAAC,GAAG,EAAE,GAAG;IAQjB,gBAAgB,CAAC,GAAG,EAAE,GAAG;CAO1B"}
|
|
@@ -9,7 +9,7 @@ type ModelName = `openai:${keyof typeof openaiModels}`;
|
|
|
9
9
|
export declare const openaiModelNames: ModelName[];
|
|
10
10
|
export declare const openaiProvider: {
|
|
11
11
|
openai: import("@ai-sdk/provider").ProviderV2 & {
|
|
12
|
-
languageModel(modelId: "
|
|
12
|
+
languageModel(modelId: "gpt-4.1" | "o3" | "o4-mini" | "codex-mini"): import("@ai-sdk/provider").LanguageModelV2;
|
|
13
13
|
textEmbeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV2<string>;
|
|
14
14
|
imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV2;
|
|
15
15
|
transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV2;
|
|
@@ -20,3 +20,4 @@ export declare const openaiModelRegistry: {
|
|
|
20
20
|
[K in ModelName]: ModelMetadata<ModelName>;
|
|
21
21
|
};
|
|
22
22
|
export {};
|
|
23
|
+
//# sourceMappingURL=openai-provider.d.ts.map
|
|
@@ -0,0 +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;;;;;CAKR,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;CAsD3C,CAAC"}
|
|
@@ -1,32 +1,40 @@
|
|
|
1
|
+
import type { LanguageModelV2 } from "@ai-sdk/provider";
|
|
1
2
|
import type { ModelMetadata } from "./providers.ts";
|
|
2
3
|
declare const openrouterModels: {
|
|
3
|
-
readonly "deepseek-v3":
|
|
4
|
-
readonly "deepseek-v3-1":
|
|
5
|
-
readonly "deepseek-r1":
|
|
6
|
-
readonly "deepseek-v3-free":
|
|
7
|
-
readonly "deepseek-r1-free":
|
|
8
|
-
readonly "gemini-flash25":
|
|
9
|
-
readonly "gemini-pro25":
|
|
10
|
-
readonly sonnet4:
|
|
11
|
-
readonly
|
|
12
|
-
readonly
|
|
13
|
-
readonly "
|
|
14
|
-
readonly "
|
|
15
|
-
readonly "kimi-k2
|
|
16
|
-
readonly "
|
|
17
|
-
readonly "
|
|
18
|
-
readonly "
|
|
19
|
-
readonly "
|
|
20
|
-
readonly "
|
|
21
|
-
readonly "
|
|
22
|
-
readonly "
|
|
23
|
-
readonly "
|
|
4
|
+
readonly "deepseek-v3": LanguageModelV2;
|
|
5
|
+
readonly "deepseek-v3-1": LanguageModelV2;
|
|
6
|
+
readonly "deepseek-r1": LanguageModelV2;
|
|
7
|
+
readonly "deepseek-v3-free": LanguageModelV2;
|
|
8
|
+
readonly "deepseek-r1-free": LanguageModelV2;
|
|
9
|
+
readonly "gemini-flash25": LanguageModelV2;
|
|
10
|
+
readonly "gemini-pro25": LanguageModelV2;
|
|
11
|
+
readonly sonnet4: LanguageModelV2;
|
|
12
|
+
readonly "sonnet-4.5": LanguageModelV2;
|
|
13
|
+
readonly opus4: LanguageModelV2;
|
|
14
|
+
readonly "opus-4.1": LanguageModelV2;
|
|
15
|
+
readonly "gpt-4.1": LanguageModelV2;
|
|
16
|
+
readonly "kimi-k2": LanguageModelV2;
|
|
17
|
+
readonly "kimi-k2-free": LanguageModelV2;
|
|
18
|
+
readonly "kimi-k2-0905": LanguageModelV2;
|
|
19
|
+
readonly "devstral-medium": LanguageModelV2;
|
|
20
|
+
readonly "qwen3-coder": LanguageModelV2;
|
|
21
|
+
readonly "qwen3-coder-free": LanguageModelV2;
|
|
22
|
+
readonly "qwen3-coder-plus": LanguageModelV2;
|
|
23
|
+
readonly "qwen3-max": LanguageModelV2;
|
|
24
|
+
readonly "glm-4.6": LanguageModelV2;
|
|
25
|
+
readonly "glm-4.5": LanguageModelV2;
|
|
26
|
+
readonly "gpt-5": LanguageModelV2;
|
|
27
|
+
readonly "gpt-5-mini": LanguageModelV2;
|
|
28
|
+
readonly "gpt-oss-120b": LanguageModelV2;
|
|
29
|
+
readonly "grok-code-fast-1": LanguageModelV2;
|
|
30
|
+
readonly "grok-4-fast-free": LanguageModelV2;
|
|
31
|
+
readonly "gpt-5-codex": LanguageModelV2;
|
|
24
32
|
};
|
|
25
33
|
type ModelName = `openrouter:${keyof typeof openrouterModels}`;
|
|
26
34
|
export declare const openrouterModelNames: ModelName[];
|
|
27
35
|
export declare const openrouterProvider: {
|
|
28
36
|
openrouter: import("@ai-sdk/provider").ProviderV2 & {
|
|
29
|
-
languageModel(modelId: "gpt-5" | "gpt-5-mini" | "gpt-
|
|
37
|
+
languageModel(modelId: "gpt-4.1" | "gpt-5-codex" | "gpt-5-mini" | "gpt-5" | "deepseek-v3" | "deepseek-v3-1" | "deepseek-r1" | "deepseek-v3-free" | "deepseek-r1-free" | "gemini-flash25" | "gemini-pro25" | "sonnet4" | "sonnet-4.5" | "opus4" | "opus-4.1" | "kimi-k2" | "kimi-k2-free" | "kimi-k2-0905" | "devstral-medium" | "qwen3-coder" | "qwen3-coder-free" | "qwen3-coder-plus" | "qwen3-max" | "glm-4.6" | "glm-4.5" | "gpt-oss-120b" | "grok-code-fast-1" | "grok-4-fast-free"): LanguageModelV2;
|
|
30
38
|
textEmbeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV2<string>;
|
|
31
39
|
imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV2;
|
|
32
40
|
transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV2;
|
|
@@ -37,3 +45,4 @@ export declare const openrouterModelRegistry: {
|
|
|
37
45
|
[K in ModelName]: ModelMetadata<ModelName>;
|
|
38
46
|
};
|
|
39
47
|
export {};
|
|
48
|
+
//# sourceMappingURL=openrouter-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter-provider.d.ts","sourceRoot":"","sources":["../../source/models/openrouter-provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAwBpD,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;iCA4Bd,eAAe;iCAGf,eAAe;;CAEb,CAAC;AAEX,KAAK,SAAS,GAAG,cAAc,MAAM,OAAO,gBAAgB,EAAE,CAAC;AAE/D,eAAO,MAAM,oBAAoB,EAAE,SAAS,EAEA,CAAC;AAE7C,eAAO,MAAM,kBAAkB;;;;;;;;CAK9B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE;KACnC,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CA8W3C,CAAC"}
|