@travisennis/acai 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/dist/agent/index.d.ts +119 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +406 -0
- package/dist/agent/manual-loop.d.ts +41 -0
- package/dist/agent/manual-loop.d.ts.map +1 -0
- package/dist/agent/manual-loop.js +278 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +27 -33
- package/dist/commands/add-directory-command.d.ts +3 -0
- package/dist/commands/add-directory-command.d.ts.map +1 -0
- package/dist/commands/add-directory-command.js +85 -0
- package/dist/commands/application-log-command.d.ts.map +1 -1
- package/dist/commands/application-log-command.js +34 -0
- package/dist/commands/clear-command.d.ts.map +1 -1
- package/dist/commands/clear-command.js +8 -0
- package/dist/commands/compact-command.d.ts.map +1 -1
- package/dist/commands/compact-command.js +15 -2
- package/dist/commands/context-command.d.ts +3 -0
- package/dist/commands/context-command.d.ts.map +1 -0
- package/dist/commands/context-command.js +183 -0
- package/dist/commands/copy-command.d.ts.map +1 -1
- package/dist/commands/copy-command.js +28 -0
- package/dist/commands/edit-command.d.ts.map +1 -1
- package/dist/commands/edit-command.js +33 -0
- package/dist/commands/edit-prompt-command.d.ts.map +1 -1
- package/dist/commands/edit-prompt-command.js +28 -0
- package/dist/commands/exit-command.d.ts.map +1 -1
- package/dist/commands/exit-command.js +20 -0
- package/dist/commands/files-command.d.ts.map +1 -1
- package/dist/commands/files-command.js +57 -0
- package/dist/commands/generate-rules-command.d.ts.map +1 -1
- package/dist/commands/generate-rules-command.js +311 -1
- package/dist/commands/handoff-command.d.ts +3 -0
- package/dist/commands/handoff-command.d.ts.map +1 -0
- package/dist/commands/handoff-command.js +202 -0
- package/dist/commands/health-command.d.ts.map +1 -1
- package/dist/commands/health-command.js +119 -2
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +28 -0
- package/dist/commands/history-command.d.ts +3 -0
- package/dist/commands/history-command.d.ts.map +1 -0
- package/dist/commands/history-command.js +534 -0
- package/dist/commands/init-command.d.ts +1 -1
- package/dist/commands/init-command.d.ts.map +1 -1
- package/dist/commands/init-command.js +55 -18
- package/dist/commands/last-log-command.d.ts.map +1 -1
- package/dist/commands/last-log-command.js +27 -0
- package/dist/commands/list-directories-command.d.ts +3 -0
- package/dist/commands/list-directories-command.d.ts.map +1 -0
- package/dist/commands/list-directories-command.js +48 -0
- package/dist/commands/list-tools-command.d.ts.map +1 -1
- package/dist/commands/list-tools-command.js +66 -3
- package/dist/commands/manager.d.ts +15 -3
- package/dist/commands/manager.d.ts.map +1 -1
- package/dist/commands/manager.js +86 -26
- package/dist/commands/model-command.d.ts +22 -0
- package/dist/commands/model-command.d.ts.map +1 -1
- package/dist/commands/model-command.js +256 -0
- package/dist/commands/paste-command.d.ts.map +1 -1
- package/dist/commands/paste-command.js +92 -0
- package/dist/commands/pickup-command.d.ts +3 -0
- package/dist/commands/pickup-command.d.ts.map +1 -0
- package/dist/commands/pickup-command.js +161 -0
- package/dist/commands/prompt-command.d.ts +1 -1
- package/dist/commands/prompt-command.d.ts.map +1 -1
- package/dist/commands/prompt-command.js +117 -2
- package/dist/commands/remove-directory-command.d.ts +3 -0
- package/dist/commands/remove-directory-command.d.ts.map +1 -0
- package/dist/commands/remove-directory-command.js +87 -0
- package/dist/commands/reset-command.d.ts +1 -1
- package/dist/commands/reset-command.d.ts.map +1 -1
- package/dist/commands/reset-command.js +13 -2
- package/dist/commands/rules-command.d.ts.map +1 -1
- package/dist/commands/rules-command.js +65 -0
- package/dist/commands/save-command.d.ts.map +1 -1
- package/dist/commands/save-command.js +12 -0
- package/dist/commands/shell-command.d.ts.map +1 -1
- package/dist/commands/shell-command.js +68 -0
- package/dist/commands/types.d.ts +9 -4
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/usage-command.d.ts.map +1 -1
- package/dist/commands/usage-command.js +22 -0
- package/dist/config.d.ts +6 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +23 -29
- package/dist/formatting.d.ts +108 -0
- package/dist/formatting.d.ts.map +1 -1
- package/dist/formatting.js +147 -0
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +140 -38
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +47 -18
- package/dist/mentions.d.ts +2 -1
- package/dist/mentions.d.ts.map +1 -1
- package/dist/mentions.js +16 -1
- package/dist/messages.d.ts +8 -0
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +56 -19
- package/dist/middleware/cache.d.ts +3 -0
- package/dist/middleware/cache.d.ts.map +1 -0
- package/dist/middleware/cache.js +53 -0
- package/dist/middleware/index.d.ts +1 -0
- package/dist/middleware/index.d.ts.map +1 -1
- package/dist/middleware/index.js +1 -0
- package/dist/models/ai-config.d.ts +4 -2
- package/dist/models/ai-config.d.ts.map +1 -1
- package/dist/models/ai-config.js +12 -2
- package/dist/models/anthropic-provider.d.ts.map +1 -1
- package/dist/models/anthropic-provider.js +3 -60
- package/dist/models/manager.d.ts +2 -1
- package/dist/models/manager.d.ts.map +1 -1
- package/dist/models/manager.js +26 -2
- package/dist/models/openrouter-provider.d.ts +7 -14
- package/dist/models/openrouter-provider.d.ts.map +1 -1
- package/dist/models/openrouter-provider.js +114 -169
- package/dist/models/providers.d.ts +1 -1
- package/dist/models/providers.d.ts.map +1 -1
- package/dist/prompts.d.ts +1 -0
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +53 -4
- package/dist/repl/display-tool-messages.d.ts +1 -1
- package/dist/repl/display-tool-messages.d.ts.map +1 -1
- package/dist/repl/display-tool-messages.js +47 -44
- package/dist/repl/get-prompt-header.d.ts.map +1 -1
- package/dist/repl/get-prompt-header.js +1 -30
- package/dist/repl/project-status-line.d.ts +2 -0
- package/dist/repl/project-status-line.d.ts.map +1 -0
- package/dist/repl/project-status-line.js +31 -0
- package/dist/repl/prompt.d.ts +21 -0
- package/dist/repl/prompt.d.ts.map +1 -0
- package/dist/{repl-prompt.js → repl/prompt.js} +119 -22
- package/dist/repl/tool-call-repair.d.ts.map +1 -1
- package/dist/repl/tool-call-repair.js +8 -4
- package/dist/repl-new.d.ts +53 -0
- package/dist/repl-new.d.ts.map +1 -0
- package/dist/repl-new.js +374 -0
- package/dist/repl.d.ts +3 -5
- package/dist/repl.d.ts.map +1 -1
- package/dist/repl.js +74 -166
- package/dist/terminal/checkbox-prompt.d.ts.map +1 -1
- package/dist/terminal/checkbox-prompt.js +10 -4
- package/dist/terminal/index.d.ts +7 -0
- package/dist/terminal/index.d.ts.map +1 -1
- package/dist/terminal/index.js +94 -0
- package/dist/terminal/input-prompt.d.ts +2 -1
- package/dist/terminal/input-prompt.d.ts.map +1 -1
- package/dist/terminal/markdown.js +3 -0
- package/dist/terminal/search-prompt.d.ts.map +1 -1
- package/dist/terminal/search-prompt.js +11 -10
- package/dist/terminal/select-prompt.d.ts +2 -2
- package/dist/terminal/select-prompt.d.ts.map +1 -1
- package/dist/terminal/select-prompt.js +47 -39
- package/dist/tokens/threshold.d.ts +35 -0
- package/dist/tokens/threshold.d.ts.map +1 -0
- package/dist/tokens/threshold.js +85 -0
- package/dist/tools/advanced-edit-file.d.ts +69 -0
- package/dist/tools/advanced-edit-file.d.ts.map +1 -0
- package/dist/tools/advanced-edit-file.js +281 -0
- package/dist/tools/agent.d.ts +16 -5
- package/dist/tools/agent.d.ts.map +1 -1
- package/dist/tools/agent.js +71 -58
- package/dist/tools/bash-utils.d.ts +1 -1
- package/dist/tools/bash-utils.d.ts.map +1 -1
- package/dist/tools/bash-utils.js +14 -6
- package/dist/tools/bash.d.ts +21 -12
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +88 -135
- package/dist/tools/code-interpreter.d.ts +21 -9
- package/dist/tools/code-interpreter.d.ts.map +1 -1
- package/dist/tools/code-interpreter.js +138 -137
- package/dist/tools/delete-file.d.ts +17 -10
- package/dist/tools/delete-file.d.ts.map +1 -1
- package/dist/tools/delete-file.js +51 -95
- package/dist/tools/directory-tree.d.ts +17 -6
- package/dist/tools/directory-tree.d.ts.map +1 -1
- package/dist/tools/directory-tree.js +47 -49
- package/dist/tools/dynamic-tool-loader.d.ts +18 -8
- package/dist/tools/dynamic-tool-loader.d.ts.map +1 -1
- package/dist/tools/dynamic-tool-loader.js +121 -129
- package/dist/tools/dynamic-tool-parser.d.ts +1 -0
- package/dist/tools/dynamic-tool-parser.d.ts.map +1 -1
- package/dist/tools/dynamic-tool-parser.js +1 -0
- package/dist/tools/edit-file.d.ts +35 -15
- package/dist/tools/edit-file.d.ts.map +1 -1
- package/dist/tools/edit-file.js +112 -112
- package/dist/tools/filesystem-utils.d.ts +2 -1
- package/dist/tools/filesystem-utils.d.ts.map +1 -1
- package/dist/tools/filesystem-utils.js +31 -17
- package/dist/tools/glob.d.ts +36 -0
- package/dist/tools/glob.d.ts.map +1 -0
- package/dist/tools/glob.js +143 -0
- package/dist/tools/grep.d.ts +73 -12
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +413 -168
- package/dist/tools/index.d.ts +204 -124
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +242 -135
- package/dist/tools/llm-edit-fixer.d.ts +25 -0
- package/dist/tools/llm-edit-fixer.d.ts.map +1 -0
- package/dist/tools/llm-edit-fixer.js +150 -0
- package/dist/tools/move-file.d.ts +19 -7
- package/dist/tools/move-file.d.ts.map +1 -1
- package/dist/tools/move-file.js +40 -33
- package/dist/tools/read-file.d.ts +47 -9
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +74 -69
- package/dist/tools/read-multiple-files.d.ts +17 -6
- package/dist/tools/read-multiple-files.d.ts.map +1 -1
- package/dist/tools/read-multiple-files.js +76 -73
- package/dist/tools/save-file.d.ts +45 -12
- package/dist/tools/save-file.d.ts.map +1 -1
- package/dist/tools/save-file.js +58 -101
- package/dist/tools/think.d.ts +15 -7
- package/dist/tools/think.d.ts.map +1 -1
- package/dist/tools/think.js +30 -22
- package/dist/tools/types.d.ts +4 -10
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +9 -0
- package/dist/tools/utils.d.ts +14 -0
- package/dist/tools/utils.d.ts.map +1 -0
- package/dist/tools/utils.js +16 -0
- package/dist/tools/web-fetch.d.ts +11 -4
- package/dist/tools/web-fetch.d.ts.map +1 -1
- package/dist/tools/web-fetch.js +39 -38
- package/dist/tools/web-search.d.ts +15 -6
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tools/web-search.js +50 -32
- package/dist/tui/autocomplete.d.ts +44 -0
- package/dist/tui/autocomplete.d.ts.map +1 -0
- package/dist/tui/autocomplete.js +466 -0
- package/dist/tui/components/assistant-message.d.ts +18 -0
- package/dist/tui/components/assistant-message.d.ts.map +1 -0
- package/dist/tui/components/assistant-message.js +29 -0
- package/dist/tui/components/editor.d.ts +51 -0
- package/dist/tui/components/editor.d.ts.map +1 -0
- package/dist/tui/components/editor.js +758 -0
- package/dist/tui/components/footer.d.ts +24 -0
- package/dist/tui/components/footer.d.ts.map +1 -0
- package/dist/tui/components/footer.js +197 -0
- package/dist/tui/components/input.d.ts +14 -0
- package/dist/tui/components/input.d.ts.map +1 -0
- package/dist/tui/components/input.js +122 -0
- package/dist/tui/components/loader.d.ts +19 -0
- package/dist/tui/components/loader.d.ts.map +1 -0
- package/dist/tui/components/loader.js +45 -0
- package/dist/tui/components/markdown.d.ts +103 -0
- package/dist/tui/components/markdown.d.ts.map +1 -0
- package/dist/tui/components/markdown.js +533 -0
- package/dist/tui/components/modal.d.ts +40 -0
- package/dist/tui/components/modal.d.ts.map +1 -0
- package/dist/tui/components/modal.js +292 -0
- package/dist/tui/components/prompt-status.d.ts +16 -0
- package/dist/tui/components/prompt-status.d.ts.map +1 -0
- package/dist/tui/components/prompt-status.js +21 -0
- package/dist/tui/components/select-list.d.ts +22 -0
- package/dist/tui/components/select-list.d.ts.map +1 -0
- package/dist/tui/components/select-list.js +143 -0
- package/dist/tui/components/spacer.d.ts +16 -0
- package/dist/tui/components/spacer.d.ts.map +1 -0
- package/dist/tui/components/spacer.js +27 -0
- package/dist/tui/components/text.d.ts +26 -0
- package/dist/tui/components/text.d.ts.map +1 -0
- package/dist/tui/components/text.js +143 -0
- package/dist/tui/components/thinking-block.d.ts +14 -0
- package/dist/tui/components/thinking-block.d.ts.map +1 -0
- package/dist/tui/components/thinking-block.js +30 -0
- package/dist/tui/components/tool-execution.d.ts +17 -0
- package/dist/tui/components/tool-execution.d.ts.map +1 -0
- package/dist/tui/components/tool-execution.js +153 -0
- package/dist/tui/components/user-message.d.ts +9 -0
- package/dist/tui/components/user-message.d.ts.map +1 -0
- package/dist/tui/components/user-message.js +21 -0
- package/dist/tui/components/welcome.d.ts +6 -0
- package/dist/tui/components/welcome.d.ts.map +1 -0
- package/dist/tui/components/welcome.js +30 -0
- package/dist/tui/index.d.ts +14 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +18 -0
- package/dist/tui/terminal.d.ts +37 -0
- package/dist/tui/terminal.d.ts.map +1 -0
- package/dist/tui/terminal.js +104 -0
- package/dist/tui/tui.d.ts +67 -0
- package/dist/tui/tui.d.ts.map +1 -0
- package/dist/tui/tui.js +184 -0
- package/dist/tui/utils.d.ts +19 -0
- package/dist/tui/utils.d.ts.map +1 -0
- package/dist/tui/utils.js +31 -0
- package/dist/utils/generators.d.ts +3 -0
- package/dist/utils/generators.d.ts.map +1 -0
- package/dist/utils/generators.js +25 -0
- package/dist/utils/iterables.d.ts +2 -0
- package/dist/utils/iterables.d.ts.map +1 -0
- package/dist/utils/iterables.js +6 -0
- package/package.json +16 -16
- package/dist/conversation-analyzer.d.ts +0 -11
- package/dist/conversation-analyzer.d.ts.map +0 -1
- package/dist/conversation-analyzer.js +0 -88
- package/dist/repl-prompt.d.ts +0 -15
- package/dist/repl-prompt.d.ts.map +0 -1
- package/dist/tokens/manage-output.d.ts +0 -34
- package/dist/tokens/manage-output.d.ts.map +0 -1
- package/dist/tokens/manage-output.js +0 -44
- package/dist/tool-executor.d.ts +0 -28
- package/dist/tool-executor.d.ts.map +0 -1
- package/dist/tool-executor.js +0 -74
- package/dist/tools/file-editing-utils.d.ts +0 -2
- package/dist/tools/file-editing-utils.d.ts.map +0 -1
- package/dist/tools/file-editing-utils.js +0 -135
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
function applyCaching(input) {
|
|
2
|
+
input.providerOptions = {
|
|
3
|
+
anthropic: { cacheControl: { type: "ephemeral" } },
|
|
4
|
+
openrouter: {
|
|
5
|
+
// biome-ignore lint/style/useNamingConvention: third-party
|
|
6
|
+
cache_control: { type: "ephemeral" },
|
|
7
|
+
cacheControl: { type: "ephemeral" },
|
|
8
|
+
},
|
|
9
|
+
bedrock: {
|
|
10
|
+
cachePoint: { type: "ephemeral" },
|
|
11
|
+
},
|
|
12
|
+
openaiCompatible: {
|
|
13
|
+
// biome-ignore lint/style/useNamingConvention: third-party
|
|
14
|
+
cache_control: { type: "ephemeral" },
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export const cacheMiddleware = {
|
|
19
|
+
transformParams: async ({ params, model }) => {
|
|
20
|
+
const providerId = model.provider;
|
|
21
|
+
const modelId = model.modelId;
|
|
22
|
+
if (providerId === "anthropic" ||
|
|
23
|
+
modelId.includes("anthropic") ||
|
|
24
|
+
modelId.includes("claude")) {
|
|
25
|
+
const msgs = params.prompt;
|
|
26
|
+
const system = msgs.filter((msg) => msg.role === "system").at(0);
|
|
27
|
+
if (system) {
|
|
28
|
+
applyCaching(system);
|
|
29
|
+
}
|
|
30
|
+
// Get the last two user messages for caching
|
|
31
|
+
const userMessages = msgs.filter((msg) => msg.role === "user");
|
|
32
|
+
const lastTwoUserMessages = userMessages.slice(-2);
|
|
33
|
+
// Mark both the latest and second-to-last user messages as ephemeral
|
|
34
|
+
for (const userMessage of lastTwoUserMessages) {
|
|
35
|
+
const content = userMessage.content;
|
|
36
|
+
if (Array.isArray(content)) {
|
|
37
|
+
const finalContent = content.at(-1);
|
|
38
|
+
if (finalContent) {
|
|
39
|
+
applyCaching(finalContent);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const tools = params.tools;
|
|
44
|
+
if (tools) {
|
|
45
|
+
const lastTool = tools.at(-1);
|
|
46
|
+
if (lastTool?.type === "function") {
|
|
47
|
+
applyCaching(lastTool);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return params;
|
|
52
|
+
},
|
|
53
|
+
};
|
|
@@ -1 +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"}
|
|
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,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/middleware/index.js
CHANGED
|
@@ -7,7 +7,9 @@ export declare class AiConfig {
|
|
|
7
7
|
modelMetadata: ModelMetadata;
|
|
8
8
|
prompt: string;
|
|
9
9
|
});
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
maxOutputTokens(): number;
|
|
11
|
+
temperature(): number | undefined;
|
|
12
|
+
topP(): 1 | undefined;
|
|
13
|
+
providerOptions(): SharedV2ProviderMetadata;
|
|
12
14
|
}
|
|
13
15
|
//# sourceMappingURL=ai-config.d.ts.map
|
|
@@ -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;gBACX,EACV,aAAa,EACb,MAAM,GACP,EAAE;QAAE,aAAa,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAKnD,
|
|
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,eAAe;IAUf,WAAW;IAKX,IAAI;IAMJ,eAAe,IAAI,wBAAwB;CA2C5C"}
|
package/dist/models/ai-config.js
CHANGED
|
@@ -34,7 +34,7 @@ export class AiConfig {
|
|
|
34
34
|
this.modelMetadata = modelMetadata;
|
|
35
35
|
this.prompt = prompt;
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
maxOutputTokens() {
|
|
38
38
|
const modelConfig = this.modelMetadata;
|
|
39
39
|
const thinkingLevel = calculateThinkingLevel(this.prompt);
|
|
40
40
|
const maxTokens = modelConfig.provider === "anthropic" && modelConfig.supportsReasoning
|
|
@@ -42,7 +42,17 @@ export class AiConfig {
|
|
|
42
42
|
: modelConfig.maxOutputTokens;
|
|
43
43
|
return maxTokens;
|
|
44
44
|
}
|
|
45
|
-
|
|
45
|
+
temperature() {
|
|
46
|
+
const temp = this.modelMetadata.defaultTemperature;
|
|
47
|
+
return temp > -1 ? temp : undefined;
|
|
48
|
+
}
|
|
49
|
+
topP() {
|
|
50
|
+
const modelId = this.modelMetadata.id;
|
|
51
|
+
if (modelId.toLowerCase().includes("qwen"))
|
|
52
|
+
return 1;
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
providerOptions() {
|
|
46
56
|
const modelConfig = this.modelMetadata;
|
|
47
57
|
const thinkingLevel = calculateThinkingLevel(this.prompt);
|
|
48
58
|
if (modelConfig.supportsReasoning && thinkingLevel.effort !== "none") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-provider.d.ts","sourceRoot":"","sources":["../../source/models/anthropic-provider.ts"],"names":[],"mappings":"
|
|
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;;;;;;;;CAuBX,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"}
|
|
@@ -1,84 +1,27 @@
|
|
|
1
1
|
import { createAnthropic, anthropic as originalAnthropic, } from "@ai-sdk/anthropic";
|
|
2
2
|
import { objectKeys } from "@travisennis/stdlib/object";
|
|
3
|
-
import { isRecord } from "@travisennis/stdlib/typeguards";
|
|
4
3
|
import { customProvider } from "ai";
|
|
5
|
-
// Helper function copied from original providers.ts
|
|
6
|
-
function addCacheControlToTools(body) {
|
|
7
|
-
const parsedBody = JSON.parse(body);
|
|
8
|
-
if (isRecord(parsedBody)) {
|
|
9
|
-
const tools = parsedBody["tools"];
|
|
10
|
-
if (Array.isArray(tools)) {
|
|
11
|
-
tools.at(-1).cache_control = { type: "ephemeral" };
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
return JSON.stringify(parsedBody);
|
|
15
|
-
}
|
|
16
4
|
const anthropicModels = {
|
|
17
|
-
opus: createAnthropic(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (body && typeof body === "string") {
|
|
21
|
-
init.body = addCacheControlToTools(body);
|
|
22
|
-
}
|
|
23
|
-
return fetch(input, init);
|
|
24
|
-
},
|
|
25
|
-
})("claude-4-opus-20250514"),
|
|
26
|
-
sonnet: createAnthropic({
|
|
27
|
-
fetch(input, init) {
|
|
28
|
-
const body = init?.body;
|
|
29
|
-
if (body && typeof body === "string") {
|
|
30
|
-
init.body = addCacheControlToTools(body);
|
|
31
|
-
}
|
|
32
|
-
return fetch(input, init);
|
|
33
|
-
},
|
|
34
|
-
})("claude-4-sonnet-20250514"),
|
|
35
|
-
sonnet37: createAnthropic({
|
|
36
|
-
fetch(input, init) {
|
|
37
|
-
const body = init?.body;
|
|
38
|
-
if (body && typeof body === "string") {
|
|
39
|
-
init.body = addCacheControlToTools(body);
|
|
40
|
-
}
|
|
41
|
-
return fetch(input, init);
|
|
42
|
-
},
|
|
43
|
-
})("claude-3-7-sonnet-20250219"),
|
|
5
|
+
opus: createAnthropic()("claude-4-opus-20250514"),
|
|
6
|
+
sonnet: createAnthropic()("claude-4-sonnet-20250514"),
|
|
7
|
+
sonnet37: createAnthropic()("claude-3-7-sonnet-20250219"),
|
|
44
8
|
"sonnet37-token-efficient-tools": createAnthropic({
|
|
45
9
|
headers: {
|
|
46
10
|
"anthropic-version": "2023-06-01",
|
|
47
11
|
"anthropic-beta": "token-efficient-tools-2025-02-19",
|
|
48
12
|
},
|
|
49
|
-
fetch(input, init) {
|
|
50
|
-
const body = init?.body;
|
|
51
|
-
if (body && typeof body === "string") {
|
|
52
|
-
init.body = addCacheControlToTools(body);
|
|
53
|
-
}
|
|
54
|
-
return fetch(input, init);
|
|
55
|
-
},
|
|
56
13
|
})("claude-3-7-sonnet-20250219"),
|
|
57
14
|
"sonnet37-128k": createAnthropic({
|
|
58
15
|
headers: {
|
|
59
16
|
"anthropic-version": "2023-06-01",
|
|
60
17
|
"anthropic-beta": "output-128k-2025-02-19",
|
|
61
18
|
},
|
|
62
|
-
fetch(input, init) {
|
|
63
|
-
const body = init?.body;
|
|
64
|
-
if (body && typeof body === "string") {
|
|
65
|
-
init.body = addCacheControlToTools(body);
|
|
66
|
-
}
|
|
67
|
-
return fetch(input, init);
|
|
68
|
-
},
|
|
69
19
|
})("claude-3-7-sonnet-20250219"),
|
|
70
20
|
sonnet35: createAnthropic({
|
|
71
21
|
headers: {
|
|
72
22
|
"anthropic-version": "2023-06-01",
|
|
73
23
|
"anthropic-beta": "max-tokens-3-5-sonnet-2024-07-15",
|
|
74
24
|
},
|
|
75
|
-
fetch(input, init) {
|
|
76
|
-
const body = init?.body;
|
|
77
|
-
if (body && typeof body === "string") {
|
|
78
|
-
init.body = addCacheControlToTools(body);
|
|
79
|
-
}
|
|
80
|
-
return fetch(input, init);
|
|
81
|
-
},
|
|
82
25
|
})("claude-3-5-sonnet-20241022"),
|
|
83
26
|
haiku: originalAnthropic("claude-3-5-haiku-20241022"),
|
|
84
27
|
};
|
package/dist/models/manager.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { LanguageModelV2 } from "@ai-sdk/provider";
|
|
2
2
|
import { type ModelMetadata, type ModelName } from "./providers.ts";
|
|
3
|
-
type App = "repl" | "cli" | "title-conversation" | "conversation-summarizer" | "conversation-analyzer" | "tool-repair" | "init-project" | "task-agent";
|
|
3
|
+
type App = "repl" | "cli" | "title-conversation" | "conversation-summarizer" | "conversation-analyzer" | "tool-repair" | "init-project" | "task-agent" | "handoff-agent" | "edit-fix";
|
|
4
4
|
export declare class ModelManager {
|
|
5
5
|
private modelMap;
|
|
6
6
|
private modelMetadataMap;
|
|
@@ -11,6 +11,7 @@ export declare class ModelManager {
|
|
|
11
11
|
setModel(app: App, model: ModelName): void;
|
|
12
12
|
getModel(app: App): LanguageModelV2;
|
|
13
13
|
getModelMetadata(app: App): ModelMetadata<ModelName>;
|
|
14
|
+
getText(app: App, system: string, prompt: string, signal: AbortSignal): Promise<import("ai").GenerateTextResult<import("ai").ToolSet, never>>;
|
|
14
15
|
}
|
|
15
16
|
export {};
|
|
16
17
|
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../source/models/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAQxD,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,SAAS,EAEf,MAAM,gBAAgB,CAAC;AAuBxB,KAAK,GAAG,GACJ,MAAM,GACN,KAAK,GACL,oBAAoB,GACpB,yBAAyB,GACzB,uBAAuB,GACvB,aAAa,GACb,cAAc,GACd,YAAY,GACZ,eAAe,GACf,UAAU,CAAC;AAEf,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;IAQnB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;CA0B5E"}
|
package/dist/models/manager.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { wrapLanguageModel } from "ai";
|
|
2
|
-
import { auditMessage, createRateLimitMiddleware, } from "../middleware/index.js";
|
|
1
|
+
import { generateText, wrapLanguageModel } from "ai";
|
|
2
|
+
import { auditMessage, cacheMiddleware, createRateLimitMiddleware, } from "../middleware/index.js";
|
|
3
|
+
import { AiConfig } from "./ai-config.js";
|
|
3
4
|
import { languageModel, modelRegistry, } from "./providers.js";
|
|
4
5
|
function getLanguageModel({ model, app, stateDir, }) {
|
|
5
6
|
const langModel = wrapLanguageModel({
|
|
6
7
|
model: languageModel(model),
|
|
7
8
|
middleware: [
|
|
9
|
+
cacheMiddleware,
|
|
8
10
|
createRateLimitMiddleware({ requestsPerMinute: 30 }),
|
|
9
11
|
auditMessage({ filePath: stateDir, app }),
|
|
10
12
|
],
|
|
@@ -45,4 +47,26 @@ export class ModelManager {
|
|
|
45
47
|
}
|
|
46
48
|
return metadata;
|
|
47
49
|
}
|
|
50
|
+
async getText(app, system, prompt, signal) {
|
|
51
|
+
const model = this.getModel(app);
|
|
52
|
+
const modelConfig = this.getModelMetadata(app);
|
|
53
|
+
if (!model || !modelConfig) {
|
|
54
|
+
throw new Error(`${app} model not available`);
|
|
55
|
+
}
|
|
56
|
+
const aiConfig = new AiConfig({
|
|
57
|
+
modelMetadata: modelConfig,
|
|
58
|
+
prompt: prompt,
|
|
59
|
+
});
|
|
60
|
+
const result = await generateText({
|
|
61
|
+
model,
|
|
62
|
+
maxOutputTokens: aiConfig.maxOutputTokens(),
|
|
63
|
+
system: system,
|
|
64
|
+
prompt: prompt,
|
|
65
|
+
temperature: aiConfig.temperature(),
|
|
66
|
+
topP: aiConfig.topP(),
|
|
67
|
+
providerOptions: aiConfig.providerOptions(),
|
|
68
|
+
abortSignal: signal,
|
|
69
|
+
});
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
48
72
|
}
|
|
@@ -1,40 +1,33 @@
|
|
|
1
|
-
import type { LanguageModelV2 } from "@ai-sdk/provider";
|
|
1
|
+
import type { LanguageModelV2, ProviderV2 } from "@ai-sdk/provider";
|
|
2
2
|
import type { ModelMetadata } from "./providers.ts";
|
|
3
3
|
declare const openrouterModels: {
|
|
4
|
-
readonly "deepseek-v3": LanguageModelV2;
|
|
5
4
|
readonly "deepseek-v3-1": LanguageModelV2;
|
|
6
5
|
readonly "deepseek-r1": LanguageModelV2;
|
|
7
|
-
readonly "deepseek-v3-free": LanguageModelV2;
|
|
8
|
-
readonly "deepseek-r1-free": LanguageModelV2;
|
|
9
6
|
readonly "gemini-flash25": LanguageModelV2;
|
|
10
7
|
readonly "gemini-pro25": LanguageModelV2;
|
|
11
|
-
readonly sonnet4: LanguageModelV2;
|
|
12
8
|
readonly "sonnet-4.5": LanguageModelV2;
|
|
13
|
-
readonly opus4: LanguageModelV2;
|
|
14
9
|
readonly "opus-4.1": LanguageModelV2;
|
|
15
|
-
readonly "
|
|
10
|
+
readonly "haiku-4.5": LanguageModelV2;
|
|
16
11
|
readonly "kimi-k2": LanguageModelV2;
|
|
17
|
-
readonly "kimi-k2-
|
|
18
|
-
readonly "kimi-k2-0905": LanguageModelV2;
|
|
12
|
+
readonly "kimi-k2-thinking": LanguageModelV2;
|
|
19
13
|
readonly "devstral-medium": LanguageModelV2;
|
|
20
14
|
readonly "qwen3-coder": LanguageModelV2;
|
|
21
|
-
readonly "qwen3-coder-free": LanguageModelV2;
|
|
22
15
|
readonly "qwen3-coder-plus": LanguageModelV2;
|
|
23
16
|
readonly "qwen3-max": LanguageModelV2;
|
|
24
17
|
readonly "glm-4.6": LanguageModelV2;
|
|
25
|
-
readonly "glm-4.5": LanguageModelV2;
|
|
26
18
|
readonly "gpt-5": LanguageModelV2;
|
|
27
19
|
readonly "gpt-5-mini": LanguageModelV2;
|
|
28
20
|
readonly "gpt-oss-120b": LanguageModelV2;
|
|
29
21
|
readonly "grok-code-fast-1": LanguageModelV2;
|
|
30
|
-
readonly "grok-4-fast
|
|
22
|
+
readonly "grok-4-fast": LanguageModelV2;
|
|
31
23
|
readonly "gpt-5-codex": LanguageModelV2;
|
|
24
|
+
readonly "minimax-m2": LanguageModelV2;
|
|
32
25
|
};
|
|
33
26
|
type ModelName = `openrouter:${keyof typeof openrouterModels}`;
|
|
34
27
|
export declare const openrouterModelNames: ModelName[];
|
|
35
28
|
export declare const openrouterProvider: {
|
|
36
|
-
openrouter:
|
|
37
|
-
languageModel(modelId: "gpt-
|
|
29
|
+
openrouter: ProviderV2 & {
|
|
30
|
+
languageModel(modelId: "gpt-5-codex" | "gpt-5-mini" | "gpt-5" | "deepseek-v3-1" | "deepseek-r1" | "gemini-flash25" | "gemini-pro25" | "sonnet-4.5" | "opus-4.1" | "haiku-4.5" | "kimi-k2" | "kimi-k2-thinking" | "devstral-medium" | "qwen3-coder" | "qwen3-coder-plus" | "qwen3-max" | "glm-4.6" | "gpt-oss-120b" | "grok-code-fast-1" | "grok-4-fast" | "minimax-m2"): LanguageModelV2;
|
|
38
31
|
textEmbeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV2<string>;
|
|
39
32
|
imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV2;
|
|
40
33
|
transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV2;
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"openrouter-provider.d.ts","sourceRoot":"","sources":["../../source/models/openrouter-provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAIpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAgCpD,QAAA,MAAM,gBAAgB;8BAGd,eAAe;4BAGf,eAAe;+BAGf,eAAe;6BAGf,eAAe;2BAGf,eAAe;yBAGf,eAAe;0BAGf,eAAe;wBAGf,eAAe;iCAGf,eAAe;gCAGf,eAAe;4BAGf,eAAe;iCAGf,eAAe;0BAGf,eAAe;wBAGf,eAAe;sBAGf,eAAe;2BAGf,eAAe;6BAGf,eAAe;iCAGf,eAAe;4BAGf,eAAe;4BAGf,eAAe;2BAGf,eAAe;CACb,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;CAsR3C,CAAC"}
|