@travisennis/acai 0.0.10 → 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 +5 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +29 -27
- package/dist/cli/stdin.d.ts +2 -1
- package/dist/cli/stdin.d.ts.map +1 -1
- package/dist/commands/generate-rules/service.d.ts +3 -2
- package/dist/commands/generate-rules/service.d.ts.map +1 -1
- package/dist/commands/health/utils.d.ts +3 -2
- package/dist/commands/health/utils.d.ts.map +1 -1
- package/dist/commands/init-project/utils.d.ts +2 -1
- package/dist/commands/init-project/utils.d.ts.map +1 -1
- package/dist/commands/review/utils.d.ts +6 -1
- package/dist/commands/review/utils.d.ts.map +1 -1
- package/dist/index.js +1 -1
- 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 +3 -3
- package/dist/models/opencode-zen-provider.js +17 -17
- package/dist/models/openrouter-provider.d.ts +4 -1
- package/dist/models/openrouter-provider.d.ts.map +1 -1
- package/dist/models/openrouter-provider.js +39 -0
- 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/modes/manager.d.ts +2 -1
- package/dist/modes/manager.d.ts.map +1 -1
- package/dist/modes/prompts.d.ts +1 -1
- package/dist/modes/prompts.d.ts.map +1 -1
- package/dist/modes/prompts.js +1 -2
- package/dist/prompts/mentions.d.ts.map +1 -1
- package/dist/prompts/mentions.js +35 -6
- package/dist/repl/index.d.ts.map +1 -1
- package/dist/repl/index.js +9 -1
- package/dist/sessions/manager.d.ts +3 -3
- package/dist/sessions/manager.d.ts.map +1 -1
- package/dist/sessions/manager.js +1 -1
- package/dist/skills/index.d.ts +2 -1
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/subagents/index.d.ts +2 -1
- package/dist/subagents/index.d.ts.map +1 -1
- package/dist/terminal/table/utils.d.ts +1 -1
- package/dist/terminal/table/utils.d.ts.map +1 -1
- package/dist/terminal/wrap-ansi.js +2 -2
- package/dist/tools/agent.js +1 -1
- 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.map +1 -1
- package/dist/tools/bash.js +28 -7
- package/dist/tools/directory-tree.d.ts.map +1 -1
- package/dist/tools/directory-tree.js +1 -1
- package/dist/tools/dynamic-tool-loader.d.ts +1 -1
- package/dist/tools/dynamic-tool-loader.d.ts.map +1 -1
- package/dist/tools/edit-file.d.ts.map +1 -1
- package/dist/tools/edit-file.js +188 -79
- package/dist/tools/glob.d.ts.map +1 -1
- package/dist/tools/glob.js +22 -15
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +43 -29
- package/dist/tools/index.d.ts +15 -48
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -4
- package/dist/tools/ls.d.ts.map +1 -1
- package/dist/tools/ls.js +1 -1
- package/dist/tools/read-file.d.ts +1 -3
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +21 -16
- package/dist/tools/save-file.d.ts.map +1 -1
- package/dist/tools/save-file.js +26 -21
- package/dist/tools/web-fetch.d.ts +0 -12
- package/dist/tools/web-fetch.d.ts.map +1 -1
- package/dist/tools/web-fetch.js +18 -1
- package/dist/tools/web-search.d.ts +0 -18
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tui/autocomplete/file-search-provider.js +1 -1
- 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/components/editor.d.ts +2 -1
- package/dist/tui/components/editor.d.ts.map +1 -1
- package/dist/tui/components/editor.js +1 -1
- package/dist/tui/components/markdown.d.ts +2 -2
- package/dist/tui/components/markdown.d.ts.map +1 -1
- package/dist/tui/components/welcome.d.ts +2 -1
- package/dist/tui/components/welcome.d.ts.map +1 -1
- 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/tui.d.ts +1 -0
- package/dist/tui/tui.d.ts.map +1 -1
- package/dist/tui/tui.js +9 -0
- 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/package.json +18 -18
- 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/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/tools/code-search.d.ts +0 -41
- package/dist/tools/code-search.d.ts.map +0 -1
- package/dist/tools/code-search.js +0 -195
- 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/README.md
CHANGED
|
@@ -12,7 +12,7 @@ Acai is an AI-driven command-line tool that assists software developers with cod
|
|
|
12
12
|
- **Interactive AI Assistant:** Conversational REPL and TUI with modal dialogs, autocomplete, and rich text formatting.
|
|
13
13
|
- **Codebase Interaction:** Read, edit, search, and navigate files with context-aware AI assistance.
|
|
14
14
|
- **Git Integration:** Generate conventional commits, review pull requests, and manage local changes.
|
|
15
|
-
- **Multi-Model Support:** Switch between OpenAI, Anthropic, Google, DeepSeek, Groq, X.AI, OpenRouter, and OpenCode
|
|
15
|
+
- **Multi-Model Support:** Switch between OpenAI, Anthropic, Google, DeepSeek, Groq, X.AI, OpenRouter, OpenCode Zen, and OpenCode Go.
|
|
16
16
|
- **Piped Input:** Pipe text via stdin for REPL mode or as context with the `-p` flag.
|
|
17
17
|
- **Skills System:** Discover and load specialized instruction files for specific tasks.
|
|
18
18
|
- **Multi-workspace Support:** Work across multiple project directories simultaneously.
|
|
@@ -112,6 +112,10 @@ Reference files directly with `@filename`, directories with `@dirname`, or run s
|
|
|
112
112
|
- [Architecture](ARCHITECTURE.md) - Internal architecture and flow diagrams
|
|
113
113
|
- [Contributing](CONTRIBUTING.md) - Development setup, scripts, and code style
|
|
114
114
|
|
|
115
|
+
## Acknowledgments
|
|
116
|
+
|
|
117
|
+
Special thanks to [OpenCode](https://opencode.ai) for providing access to their AI model aggregation service, which enables seamless integration with multiple state-of-the-art models through a unified API.
|
|
118
|
+
|
|
115
119
|
## License
|
|
116
120
|
|
|
117
121
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/agent/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/agent/index.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/index.js
CHANGED
|
@@ -364,39 +364,41 @@ export class Agent {
|
|
|
364
364
|
return null;
|
|
365
365
|
}
|
|
366
366
|
updateUsageStats(stepUsage, sessionManager) {
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
this._state.usage.
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
this._state.
|
|
378
|
-
this._state.
|
|
379
|
-
this._state.
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
this._state.totalUsage.
|
|
383
|
-
|
|
384
|
-
this._state.totalUsage.
|
|
385
|
-
|
|
367
|
+
// Extract values with null coalescing once
|
|
368
|
+
const inputTokens = stepUsage.inputTokens ?? 0;
|
|
369
|
+
const outputTokens = stepUsage.outputTokens ?? 0;
|
|
370
|
+
const totalTokens = stepUsage.totalTokens ?? 0;
|
|
371
|
+
const cacheReadTokens = stepUsage.inputTokenDetails.cacheReadTokens ?? 0;
|
|
372
|
+
const reasoningTokens = stepUsage.outputTokenDetails.reasoningTokens ?? 0;
|
|
373
|
+
// Update step usage
|
|
374
|
+
this._state.usage.inputTokens = inputTokens;
|
|
375
|
+
this._state.usage.outputTokens = outputTokens;
|
|
376
|
+
this._state.usage.totalTokens = totalTokens;
|
|
377
|
+
this._state.usage.cachedInputTokens = cacheReadTokens;
|
|
378
|
+
this._state.usage.inputTokenDetails.cacheReadTokens = cacheReadTokens;
|
|
379
|
+
this._state.usage.reasoningTokens = reasoningTokens;
|
|
380
|
+
sessionManager.setContextWindow(totalTokens);
|
|
381
|
+
// Update total usage (accumulate)
|
|
382
|
+
this._state.totalUsage.inputTokens += inputTokens;
|
|
383
|
+
this._state.totalUsage.outputTokens += outputTokens;
|
|
384
|
+
this._state.totalUsage.totalTokens += totalTokens;
|
|
385
|
+
this._state.totalUsage.cachedInputTokens += cacheReadTokens;
|
|
386
|
+
this._state.totalUsage.inputTokenDetails.cacheReadTokens += cacheReadTokens;
|
|
387
|
+
this._state.totalUsage.reasoningTokens += reasoningTokens;
|
|
386
388
|
sessionManager.recordTurnUsage({
|
|
387
|
-
inputTokens
|
|
388
|
-
outputTokens
|
|
389
|
-
totalTokens
|
|
390
|
-
cachedInputTokens:
|
|
391
|
-
reasoningTokens
|
|
389
|
+
inputTokens,
|
|
390
|
+
outputTokens,
|
|
391
|
+
totalTokens,
|
|
392
|
+
cachedInputTokens: cacheReadTokens,
|
|
393
|
+
reasoningTokens,
|
|
392
394
|
inputTokenDetails: {
|
|
393
395
|
noCacheTokens: stepUsage.inputTokenDetails.noCacheTokens ?? 0,
|
|
394
|
-
cacheReadTokens
|
|
396
|
+
cacheReadTokens,
|
|
395
397
|
cacheWriteTokens: stepUsage.inputTokenDetails.cacheWriteTokens ?? 0,
|
|
396
398
|
},
|
|
397
399
|
outputTokenDetails: {
|
|
398
400
|
textTokens: stepUsage.outputTokenDetails.textTokens ?? 0,
|
|
399
|
-
reasoningTokens
|
|
401
|
+
reasoningTokens,
|
|
400
402
|
},
|
|
401
403
|
});
|
|
402
404
|
}
|
|
@@ -508,7 +510,6 @@ export class Agent {
|
|
|
508
510
|
const { call, toolName, iTool } = pending;
|
|
509
511
|
// Track in step stats
|
|
510
512
|
stepToolCalls.push({ toolName });
|
|
511
|
-
stepToolResults.push({ toolName });
|
|
512
513
|
if (!iTool) {
|
|
513
514
|
const errorMsg = `No executor for tool ${toolName}`;
|
|
514
515
|
const event = this.processToolEvent(toolsCalled, {
|
|
@@ -543,6 +544,7 @@ export class Agent {
|
|
|
543
544
|
args: call.input,
|
|
544
545
|
});
|
|
545
546
|
collectedEvents.push(event);
|
|
547
|
+
stepToolResults.push({ toolName });
|
|
546
548
|
results[index] = {
|
|
547
549
|
toolCallId: call.toolCallId,
|
|
548
550
|
toolName,
|
package/dist/cli/stdin.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export declare const STDIN_SOFT_LIMIT: number;
|
|
2
2
|
export declare const STDIN_HARD_LIMIT: number;
|
|
3
|
-
|
|
3
|
+
interface StdinResult {
|
|
4
4
|
content: string | null;
|
|
5
5
|
sizeBytes: number;
|
|
6
6
|
wasPiped: boolean;
|
|
7
7
|
}
|
|
8
8
|
export declare function readStdinWithLimits(): Promise<StdinResult>;
|
|
9
|
+
export {};
|
|
9
10
|
//# sourceMappingURL=stdin.d.ts.map
|
package/dist/cli/stdin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdin.d.ts","sourceRoot":"","sources":["../../source/cli/stdin.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,QAAY,CAAC;AAC1C,eAAO,MAAM,gBAAgB,QAAa,CAAC;AAE3C,
|
|
1
|
+
{"version":3,"file":"stdin.d.ts","sourceRoot":"","sources":["../../source/cli/stdin.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,QAAY,CAAC;AAC1C,eAAO,MAAM,gBAAgB,QAAa,CAAC;AAE3C,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC,CA2ChE"}
|
|
@@ -3,14 +3,14 @@ import type { ConfigManager } from "../../config/index.ts";
|
|
|
3
3
|
import type { WorkspaceContext } from "../../index.ts";
|
|
4
4
|
import type { ModelManager } from "../../models/manager.ts";
|
|
5
5
|
import type { TokenTracker } from "../../tokens/tracker.ts";
|
|
6
|
-
|
|
6
|
+
interface GenerateRulesOptions {
|
|
7
7
|
modelManager: ModelManager;
|
|
8
8
|
messages: ModelMessage[];
|
|
9
9
|
tokenTracker: TokenTracker;
|
|
10
10
|
config: ConfigManager;
|
|
11
11
|
workspace: WorkspaceContext;
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
interface GenerateRulesResult {
|
|
14
14
|
rules: string[];
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
@@ -18,4 +18,5 @@ export interface GenerateRulesResult {
|
|
|
18
18
|
* Returns the list of generated rules.
|
|
19
19
|
*/
|
|
20
20
|
export declare function generateRulesFromSession(options: GenerateRulesOptions): Promise<GenerateRulesResult>;
|
|
21
|
+
export {};
|
|
21
22
|
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../source/commands/generate-rules/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,IAAI,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../source/commands/generate-rules/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,IAAI,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,UAAU,oBAAoB;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,gBAAgB,CAAC;CAC7B;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CA6D9B"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
interface EnvVarInfo {
|
|
2
2
|
name: string;
|
|
3
3
|
description: string;
|
|
4
4
|
}
|
|
5
|
-
|
|
5
|
+
interface ToolInfo {
|
|
6
6
|
name: string;
|
|
7
7
|
command: string;
|
|
8
8
|
}
|
|
@@ -12,4 +12,5 @@ export declare function checkEnvironmentVariables(): (string | number)[][];
|
|
|
12
12
|
export declare function checkTools(execFn?: (command: string, options: object) => void): string[][];
|
|
13
13
|
export declare function formatEnvStatus(status: (string | number)[][]): (string | number)[][];
|
|
14
14
|
export declare function formatToolStatus(status: string[][]): string[][];
|
|
15
|
+
export {};
|
|
15
16
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../source/commands/health/utils.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../source/commands/health/utils.ts"],"names":[],"mappings":"AAEA,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,qBAAqB,EAAE,UAAU,EAmB7C,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,QAAQ,EAShC,CAAC;AAEF,wBAAgB,yBAAyB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,CASjE;AAED,wBAAgB,UAAU,CACxB,MAAM,GAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAe,GAC5D,MAAM,EAAE,EAAE,CAWZ;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,GAC5B,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,CAEvB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAE/D"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export declare const DEVELOPMENT_DIRECTORY = "/Users/travisennis/Github/acai-ts";
|
|
2
|
-
|
|
2
|
+
interface InitializationResult {
|
|
3
3
|
created: string[];
|
|
4
4
|
existing: string[];
|
|
5
5
|
}
|
|
6
6
|
export declare function ensureProjectDirectory(projectDir: string): InitializationResult;
|
|
7
7
|
export declare function ensureConfigFile(projectDir: string): InitializationResult;
|
|
8
8
|
export declare function isDevelopmentDirectory(dir: string): boolean;
|
|
9
|
+
export {};
|
|
9
10
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../source/commands/init-project/utils.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,sCAAsC,CAAC;AAEzE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../source/commands/init-project/utils.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,sCAAsC,CAAC;AAEzE,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,GACjB,oBAAoB,CAmCtB;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,CAazE;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE3D"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { Terminal } from "../../tui/terminal.ts";
|
|
2
|
-
|
|
2
|
+
interface FileChange {
|
|
3
|
+
fileName: string;
|
|
4
|
+
diff: string;
|
|
5
|
+
stats: string;
|
|
6
|
+
}
|
|
3
7
|
export declare function parseGitDiffFiles(diffOutput: string): FileChange[];
|
|
4
8
|
export declare function formatFileDiffForDisplay(fileName: string, diff: string): string;
|
|
5
9
|
export declare function getUntrackedFiles(untrackedOutput: string, cwd: string): Promise<FileChange[]>;
|
|
@@ -10,4 +14,5 @@ export declare function openFileInEditor(filePath: string, terminal: Terminal):
|
|
|
10
14
|
success: boolean;
|
|
11
15
|
error?: string;
|
|
12
16
|
};
|
|
17
|
+
export {};
|
|
13
18
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../source/commands/review/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../source/commands/review/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AA6CD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE,CAwBlE;AAgBD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,MAAM,CAaR;AAED,wBAAsB,iBAAiB,CACrC,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,UAAU,EAAE,CAAC,CAsCvB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,GACjB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAyBtC"}
|
package/dist/index.js
CHANGED
|
@@ -221,7 +221,7 @@ async function determineInitialPrompt() {
|
|
|
221
221
|
async function initializeModelManager(appDir) {
|
|
222
222
|
const chosenModel = isSupportedModel(flags.model)
|
|
223
223
|
? flags.model
|
|
224
|
-
: "opencode:
|
|
224
|
+
: "opencode-go:kimi-k2-5";
|
|
225
225
|
const projectConfig = await config.getConfig();
|
|
226
226
|
const devtoolsEnabled = projectConfig.devtools?.enabled ?? false;
|
|
227
227
|
const modelManager = new ModelManager({
|
|
@@ -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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { createAnthropic } from "@ai-sdk/anthropic";
|
|
2
|
+
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
|
|
3
|
+
import { objectKeys } from "@travisennis/stdlib/object";
|
|
4
|
+
import { customProvider } from "ai";
|
|
5
|
+
const completionsClient = createOpenAICompatible({
|
|
6
|
+
name: "opencode-go",
|
|
7
|
+
apiKey: process.env["OPENCODE_ZEN_API_TOKEN"] ?? "",
|
|
8
|
+
// biome-ignore lint/style/useNamingConvention: third-party controlled
|
|
9
|
+
baseURL: "https://opencode.ai/zen/go/v1",
|
|
10
|
+
});
|
|
11
|
+
const messagesClient = createAnthropic({
|
|
12
|
+
// biome-ignore lint/style/useNamingConvention: third-party controlled
|
|
13
|
+
baseURL: "https://opencode.ai/zen/go/v1",
|
|
14
|
+
apiKey: process.env["OPENCODE_ZEN_API_TOKEN"] ?? "",
|
|
15
|
+
});
|
|
16
|
+
const opencodeGoModels = {
|
|
17
|
+
"glm-5": completionsClient("glm-5"),
|
|
18
|
+
"kimi-k2-5": completionsClient("kimi-k2.5"),
|
|
19
|
+
"minimax-m2-5": messagesClient("minimax-m2.5"),
|
|
20
|
+
"minimax-m2-7": messagesClient("minimax-m2.7"),
|
|
21
|
+
};
|
|
22
|
+
export const opencodeGoModelNames = objectKeys(opencodeGoModels).map((key) => `opencode-go:${key}`);
|
|
23
|
+
export const opencodeGoProvider = {
|
|
24
|
+
"opencode-go": customProvider({
|
|
25
|
+
languageModels: opencodeGoModels,
|
|
26
|
+
fallbackProvider: completionsClient,
|
|
27
|
+
}),
|
|
28
|
+
};
|
|
29
|
+
export const opencodeGoModelRegistry = {
|
|
30
|
+
"opencode-go:glm-5": {
|
|
31
|
+
id: "opencode-go:glm-5",
|
|
32
|
+
provider: "opencode-go",
|
|
33
|
+
contextWindow: 204800,
|
|
34
|
+
maxOutputTokens: 64800,
|
|
35
|
+
defaultTemperature: 0.5,
|
|
36
|
+
promptFormat: "markdown",
|
|
37
|
+
supportsReasoning: true,
|
|
38
|
+
supportsToolCalling: true,
|
|
39
|
+
costPerInputToken: 0.000001,
|
|
40
|
+
costPerOutputToken: 0.0000032,
|
|
41
|
+
},
|
|
42
|
+
"opencode-go:kimi-k2-5": {
|
|
43
|
+
id: "opencode-go:kimi-k2-5",
|
|
44
|
+
provider: "opencode-go",
|
|
45
|
+
contextWindow: 262144,
|
|
46
|
+
maxOutputTokens: 8192,
|
|
47
|
+
defaultTemperature: 1.0,
|
|
48
|
+
promptFormat: "markdown",
|
|
49
|
+
supportsReasoning: true,
|
|
50
|
+
supportsToolCalling: true,
|
|
51
|
+
costPerInputToken: 6e-7,
|
|
52
|
+
costPerOutputToken: 0.000003,
|
|
53
|
+
},
|
|
54
|
+
"opencode-go:minimax-m2-5": {
|
|
55
|
+
id: "opencode-go:minimax-m2-5",
|
|
56
|
+
provider: "opencode-go",
|
|
57
|
+
contextWindow: 204800,
|
|
58
|
+
maxOutputTokens: 131072,
|
|
59
|
+
defaultTemperature: 0.5,
|
|
60
|
+
promptFormat: "markdown",
|
|
61
|
+
supportsReasoning: true,
|
|
62
|
+
supportsToolCalling: true,
|
|
63
|
+
costPerInputToken: 3e-7,
|
|
64
|
+
costPerOutputToken: 0.0000012,
|
|
65
|
+
},
|
|
66
|
+
"opencode-go:minimax-m2-7": {
|
|
67
|
+
id: "opencode-go:minimax-m2-7",
|
|
68
|
+
provider: "opencode-go",
|
|
69
|
+
contextWindow: 204800,
|
|
70
|
+
maxOutputTokens: 131072,
|
|
71
|
+
defaultTemperature: 0.5,
|
|
72
|
+
promptFormat: "markdown",
|
|
73
|
+
supportsReasoning: true,
|
|
74
|
+
supportsToolCalling: true,
|
|
75
|
+
costPerInputToken: 3e-7,
|
|
76
|
+
costPerOutputToken: 0.0000012,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
@@ -3,16 +3,16 @@ declare const opencodeZenModels: {
|
|
|
3
3
|
readonly "glm-4-7": import("@ai-sdk/provider").LanguageModelV3;
|
|
4
4
|
readonly "glm-5": import("@ai-sdk/provider").LanguageModelV3;
|
|
5
5
|
readonly "opus-4-6": import("@ai-sdk/provider").LanguageModelV3;
|
|
6
|
-
readonly "minimax-m2.5
|
|
6
|
+
readonly "minimax-m2.5": import("@ai-sdk/provider").LanguageModelV3;
|
|
7
|
+
readonly "minimax-m2.7": import("@ai-sdk/provider").LanguageModelV3;
|
|
7
8
|
readonly "gpt-5.2-codex": import("@ai-sdk/provider").LanguageModelV3;
|
|
8
|
-
readonly "kimi-k2-5-free": import("@ai-sdk/provider").LanguageModelV3;
|
|
9
9
|
readonly "kimi-k2-5": import("@ai-sdk/provider").LanguageModelV3;
|
|
10
10
|
};
|
|
11
11
|
type ModelName = `opencode:${keyof typeof opencodeZenModels}`;
|
|
12
12
|
export declare const opencodeZenModelNames: ModelName[];
|
|
13
13
|
export declare const opencodeZenProvider: {
|
|
14
14
|
opencode: import("@ai-sdk/provider").ProviderV3 & {
|
|
15
|
-
languageModel(modelId: "gpt-5.2-codex" | "glm-5" | "minimax-m2.5
|
|
15
|
+
languageModel(modelId: "gpt-5.2-codex" | "glm-5" | "minimax-m2.5" | "minimax-m2.7" | "kimi-k2-5" | "glm-4-7" | "opus-4-6"): import("@ai-sdk/provider").LanguageModelV3;
|
|
16
16
|
embeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV3;
|
|
17
17
|
imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV3;
|
|
18
18
|
transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
|
|
@@ -33,9 +33,9 @@ const opencodeZenModels = {
|
|
|
33
33
|
"glm-4-7": completionsClient("glm-4.7"),
|
|
34
34
|
"glm-5": completionsClient("glm-5"),
|
|
35
35
|
"opus-4-6": messagesClient("claude-opus-4.6"),
|
|
36
|
-
"minimax-m2.5
|
|
36
|
+
"minimax-m2.5": completionsClient("minimax-m2.5"),
|
|
37
|
+
"minimax-m2.7": completionsClient("minimax-m2.7"),
|
|
37
38
|
"gpt-5.2-codex": responsesClient.responses("gpt-5.2-codex"),
|
|
38
|
-
"kimi-k2-5-free": completionsClient("kimi-k2.5-free"),
|
|
39
39
|
"kimi-k2-5": completionsClient("kimi-k2.5"),
|
|
40
40
|
};
|
|
41
41
|
export const opencodeZenModelNames = objectKeys(opencodeZenModels).map((key) => `opencode:${key}`);
|
|
@@ -94,8 +94,8 @@ export const opencodeZenModelRegistry = {
|
|
|
94
94
|
costPerInputToken: 0.00000175,
|
|
95
95
|
costPerOutputToken: 0.000014,
|
|
96
96
|
},
|
|
97
|
-
"opencode:kimi-k2-5
|
|
98
|
-
id: "opencode:kimi-k2-5
|
|
97
|
+
"opencode:kimi-k2-5": {
|
|
98
|
+
id: "opencode:kimi-k2-5",
|
|
99
99
|
provider: "opencode",
|
|
100
100
|
contextWindow: 262144,
|
|
101
101
|
maxOutputTokens: 262144,
|
|
@@ -103,23 +103,23 @@ export const opencodeZenModelRegistry = {
|
|
|
103
103
|
promptFormat: "markdown",
|
|
104
104
|
supportsReasoning: true,
|
|
105
105
|
supportsToolCalling: true,
|
|
106
|
-
costPerInputToken:
|
|
107
|
-
costPerOutputToken: 0,
|
|
106
|
+
costPerInputToken: 6e-7,
|
|
107
|
+
costPerOutputToken: 0.000003,
|
|
108
108
|
},
|
|
109
|
-
"opencode:
|
|
110
|
-
id: "opencode:
|
|
109
|
+
"opencode:minimax-m2.5": {
|
|
110
|
+
id: "opencode:minimax-m2.5",
|
|
111
111
|
provider: "opencode",
|
|
112
|
-
contextWindow:
|
|
113
|
-
maxOutputTokens:
|
|
114
|
-
defaultTemperature:
|
|
112
|
+
contextWindow: 204800,
|
|
113
|
+
maxOutputTokens: 131072,
|
|
114
|
+
defaultTemperature: 0.5,
|
|
115
115
|
promptFormat: "markdown",
|
|
116
116
|
supportsReasoning: true,
|
|
117
117
|
supportsToolCalling: true,
|
|
118
|
-
costPerInputToken:
|
|
119
|
-
costPerOutputToken: 0.
|
|
118
|
+
costPerInputToken: 3e-7,
|
|
119
|
+
costPerOutputToken: 0.0000012,
|
|
120
120
|
},
|
|
121
|
-
"opencode:minimax-m2.
|
|
122
|
-
id: "opencode:minimax-m2.
|
|
121
|
+
"opencode:minimax-m2.7": {
|
|
122
|
+
id: "opencode:minimax-m2.7",
|
|
123
123
|
provider: "opencode",
|
|
124
124
|
contextWindow: 204800,
|
|
125
125
|
maxOutputTokens: 131072,
|
|
@@ -127,7 +127,7 @@ export const opencodeZenModelRegistry = {
|
|
|
127
127
|
promptFormat: "markdown",
|
|
128
128
|
supportsReasoning: true,
|
|
129
129
|
supportsToolCalling: true,
|
|
130
|
-
costPerInputToken:
|
|
131
|
-
costPerOutputToken: 0,
|
|
130
|
+
costPerInputToken: 3e-7,
|
|
131
|
+
costPerOutputToken: 0.0000012,
|
|
132
132
|
},
|
|
133
133
|
};
|
|
@@ -9,7 +9,10 @@ declare const allModels: {
|
|
|
9
9
|
"deepseek-v3-2": import("@ai-sdk/provider").LanguageModelV3;
|
|
10
10
|
"glm-4-7": import("@ai-sdk/provider").LanguageModelV3;
|
|
11
11
|
"glm-4-7-flash": import("@ai-sdk/provider").LanguageModelV3;
|
|
12
|
+
"hunter-alpha": import("@ai-sdk/provider").LanguageModelV3;
|
|
12
13
|
"minimax-m2-5": import("@ai-sdk/provider").LanguageModelV3;
|
|
14
|
+
"minimax-m2-7": import("@ai-sdk/provider").LanguageModelV3;
|
|
15
|
+
"nemotron-3-super-120b-a12b-free": import("@ai-sdk/provider").LanguageModelV3;
|
|
13
16
|
"sonnet-4.5": import("@ai-sdk/provider").LanguageModelV3;
|
|
14
17
|
"opus-4.6": import("@ai-sdk/provider").LanguageModelV3;
|
|
15
18
|
"haiku-4.5": import("@ai-sdk/provider").LanguageModelV3;
|
|
@@ -25,7 +28,7 @@ type ModelName = `openrouter:${keyof typeof allModels}`;
|
|
|
25
28
|
export declare const openrouterModelNames: ModelName[];
|
|
26
29
|
export declare const openrouterProvider: {
|
|
27
30
|
openrouter: import("@ai-sdk/provider").ProviderV3 & {
|
|
28
|
-
languageModel(modelId: "gpt-5.1-codex-mini" | "gpt-5.1-codex-max" | "gpt-5.2" | "gpt-5.2-codex" | "glm-5" | "
|
|
31
|
+
languageModel(modelId: "gpt-5.1-codex-mini" | "gpt-5.1-codex-max" | "gpt-5.2" | "gpt-5.2-codex" | "glm-5" | "kimi-k2-5" | "minimax-m2-5" | "minimax-m2-7" | "glm-4-7" | "gpt-oss-120b" | "gpt-5-3-codex" | "deepseek-v3-2" | "glm-4-7-flash" | "hunter-alpha" | "nemotron-3-super-120b-a12b-free" | "sonnet-4.5" | "opus-4.6" | "haiku-4.5" | "qwen3-max" | "qwen3-max-thinking" | "qwen3-coder-next" | "grok-code-fast-1" | "grok-4-1-fast"): import("@ai-sdk/provider").LanguageModelV3;
|
|
29
32
|
embeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV3;
|
|
30
33
|
imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV3;
|
|
31
34
|
transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter-provider.d.ts","sourceRoot":"","sources":["../../source/models/openrouter-provider.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"openrouter-provider.d.ts","sourceRoot":"","sources":["../../source/models/openrouter-provider.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AA0DpD,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;CAAkD,CAAC;AAElE,KAAK,SAAS,GAAG,cAAc,MAAM,OAAO,SAAS,EAAE,CAAC;AAExD,eAAO,MAAM,oBAAoB,EAAE,SAAS,EAE3C,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;CAK9B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE;KACnC,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CAsR3C,CAAC"}
|
|
@@ -28,7 +28,10 @@ const openrouterModels = {
|
|
|
28
28
|
"deepseek-v3-2": openRouterClient("deepseek/deepseek-v3.2"),
|
|
29
29
|
"glm-4-7": openRouterClient("z-ai/glm-4.7"),
|
|
30
30
|
"glm-4-7-flash": openRouterClient("z-ai/glm-4.7-flash"),
|
|
31
|
+
"hunter-alpha": openRouterClient("openrouter/hunter-alpha"),
|
|
31
32
|
"minimax-m2-5": openRouterClient("minimax/minimax-m2.5"),
|
|
33
|
+
"minimax-m2-7": openRouterClient("minimax/minimax-m2.7"),
|
|
34
|
+
"nemotron-3-super-120b-a12b-free": openRouterClient("nvidia/nemotron-3-super-120b-a12b:free"),
|
|
32
35
|
"sonnet-4.5": openRouterClient("anthropic/claude-sonnet-4.5"),
|
|
33
36
|
"opus-4.6": openRouterClient("anthropic/claude-opus-4.6"),
|
|
34
37
|
"haiku-4.5": openRouterClient("anthropic/claude-haiku-4.5"),
|
|
@@ -106,6 +109,30 @@ export const openrouterModelRegistry = {
|
|
|
106
109
|
costPerInputToken: 3e-7,
|
|
107
110
|
costPerOutputToken: 0.0000012,
|
|
108
111
|
},
|
|
112
|
+
"openrouter:minimax-m2-7": {
|
|
113
|
+
id: "openrouter:minimax-m2-7",
|
|
114
|
+
provider: "openrouter",
|
|
115
|
+
contextWindow: 204800,
|
|
116
|
+
maxOutputTokens: 131072,
|
|
117
|
+
defaultTemperature: 0.5,
|
|
118
|
+
promptFormat: "markdown",
|
|
119
|
+
supportsReasoning: true,
|
|
120
|
+
supportsToolCalling: true,
|
|
121
|
+
costPerInputToken: 3e-7,
|
|
122
|
+
costPerOutputToken: 0.0000012,
|
|
123
|
+
},
|
|
124
|
+
"openrouter:nemotron-3-super-120b-a12b-free": {
|
|
125
|
+
id: "openrouter:nemotron-3-super-120b-a12b-free",
|
|
126
|
+
provider: "openrouter",
|
|
127
|
+
contextWindow: 262144,
|
|
128
|
+
maxOutputTokens: 16000,
|
|
129
|
+
defaultTemperature: 0.5,
|
|
130
|
+
promptFormat: "markdown",
|
|
131
|
+
supportsReasoning: true,
|
|
132
|
+
supportsToolCalling: true,
|
|
133
|
+
costPerInputToken: 0,
|
|
134
|
+
costPerOutputToken: 0,
|
|
135
|
+
},
|
|
109
136
|
"openrouter:opus-4.6": {
|
|
110
137
|
id: "openrouter:opus-4.6",
|
|
111
138
|
provider: "openrouter",
|
|
@@ -262,6 +289,18 @@ export const openrouterModelRegistry = {
|
|
|
262
289
|
costPerInputToken: 0.000001,
|
|
263
290
|
costPerOutputToken: 0.000005,
|
|
264
291
|
},
|
|
292
|
+
"openrouter:hunter-alpha": {
|
|
293
|
+
id: "openrouter:hunter-alpha",
|
|
294
|
+
provider: "openrouter",
|
|
295
|
+
contextWindow: 1048576,
|
|
296
|
+
maxOutputTokens: 65536,
|
|
297
|
+
defaultTemperature: 0.5,
|
|
298
|
+
promptFormat: "markdown",
|
|
299
|
+
supportsReasoning: true,
|
|
300
|
+
supportsToolCalling: true,
|
|
301
|
+
costPerInputToken: 0,
|
|
302
|
+
costPerOutputToken: 0,
|
|
303
|
+
},
|
|
265
304
|
"openrouter:gpt-5.2": {
|
|
266
305
|
id: "openrouter:gpt-5.2",
|
|
267
306
|
provider: "openrouter",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
declare const providers: readonly ["anthropic", "openai", "google", "groq", "deepseek", "openrouter", "xai", "opencode"];
|
|
1
|
+
declare const providers: readonly ["anthropic", "openai", "google", "groq", "deepseek", "openrouter", "xai", "opencode", "opencode-go"];
|
|
2
2
|
type ModelProvider = (typeof providers)[number];
|
|
3
|
-
export declare const models: readonly ("anthropic:opus" | "anthropic:sonnet" | "anthropic:haiku" | "deepseek:deepseek-chat" | "deepseek:deepseek-reasoner" | "google:flash25lite" | "groq:kimi-k2-instruct-0905" | "openai:gpt-5.1-codex-mini" | "openai:gpt-5.2" | "openai:gpt-5.2-codex" | "opencode:gpt-5.2-codex" | "opencode:glm-5" | "opencode:minimax-m2.5
|
|
4
|
-
export type ModelName = (typeof models)[number] | (`xai:${string}` & {}) | (`openai:${string}` & {}) | (`anthropic:${string}` & {}) | (`google:${string}` & {}) | (`groq:${string}` & {}) | (`deepseek:${string}` & {}) | (`openrouter:${string}` & {}) | (`opencode:${string}` & {});
|
|
3
|
+
export declare const models: readonly ("anthropic:opus" | "anthropic:sonnet" | "anthropic:haiku" | "deepseek:deepseek-chat" | "deepseek:deepseek-reasoner" | "google:flash25lite" | "groq:kimi-k2-instruct-0905" | "openai:gpt-5.1-codex-mini" | "openai:gpt-5.2" | "openai:gpt-5.2-codex" | "opencode-go:glm-5" | "opencode-go:kimi-k2-5" | "opencode-go:minimax-m2-5" | "opencode-go:minimax-m2-7" | "opencode:gpt-5.2-codex" | "opencode:glm-5" | "opencode:minimax-m2.5" | "opencode:minimax-m2.7" | "opencode:kimi-k2-5" | "opencode:glm-4-7" | "opencode:opus-4-6" | "openrouter:gpt-5.1-codex-mini" | "openrouter:gpt-5.1-codex-max" | "openrouter:gpt-5.2" | "openrouter:gpt-5.2-codex" | "openrouter:glm-5" | "openrouter:kimi-k2-5" | "openrouter:minimax-m2-5" | "openrouter:minimax-m2-7" | "openrouter:glm-4-7" | "openrouter:gpt-oss-120b" | "openrouter:gpt-5-3-codex" | "openrouter:deepseek-v3-2" | "openrouter:glm-4-7-flash" | "openrouter:hunter-alpha" | "openrouter:nemotron-3-super-120b-a12b-free" | "openrouter:sonnet-4.5" | "openrouter:opus-4.6" | "openrouter:haiku-4.5" | "openrouter:qwen3-max" | "openrouter:qwen3-max-thinking" | "openrouter:qwen3-coder-next" | "openrouter:grok-code-fast-1" | "openrouter:grok-4-1-fast" | "xai:grok-code-fast-1" | "xai:grok-4-1-fast")[];
|
|
4
|
+
export type ModelName = (typeof models)[number] | (`xai:${string}` & {}) | (`openai:${string}` & {}) | (`anthropic:${string}` & {}) | (`google:${string}` & {}) | (`groq:${string}` & {}) | (`deepseek:${string}` & {}) | (`openrouter:${string}` & {}) | (`opencode-go:${string}` & {}) | (`opencode:${string}` & {});
|
|
5
5
|
export declare function isSupportedModel(model: unknown): model is ModelName;
|
|
6
6
|
export declare function languageModel(model: ModelName): import("@ai-sdk/provider").LanguageModelV3;
|
|
7
7
|
export interface ModelMetadata<T = ModelName> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../source/models/providers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../source/models/providers.ts"],"names":[],"mappings":"AAgDA,QAAA,MAAM,SAAS,gHAUL,CAAC;AAEX,KAAK,aAAa,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAchD,eAAO,MAAM,MAAM,otCAUT,CAAC;AAEX,MAAM,MAAM,SAAS,GACjB,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,GACvB,CAAC,OAAO,MAAM,EAAE,GAAG,EAAE,CAAC,GACtB,CAAC,UAAU,MAAM,EAAE,GAAG,EAAE,CAAC,GACzB,CAAC,aAAa,MAAM,EAAE,GAAG,EAAE,CAAC,GAC5B,CAAC,UAAU,MAAM,EAAE,GAAG,EAAE,CAAC,GACzB,CAAC,QAAQ,MAAM,EAAE,GAAG,EAAE,CAAC,GACvB,CAAC,YAAY,MAAM,EAAE,GAAG,EAAE,CAAC,GAC3B,CAAC,cAAc,MAAM,EAAE,GAAG,EAAE,CAAC,GAC7B,CAAC,eAAe,MAAM,EAAE,GAAG,EAAE,CAAC,GAC9B,CAAC,YAAY,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAEhC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAcnE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,8CAE7C;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,SAAS;IAC1C,EAAE,EAAE,CAAC,CAAC;IACN,QAAQ,EAAE,aAAa,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;CAC9C;AAGD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,CAU1D,CAAC;AAGF,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,IAAI,SAAS,CAEtE"}
|
package/dist/models/providers.js
CHANGED
|
@@ -5,6 +5,7 @@ import { deepseekModelNames, deepseekModelRegistry, deepseekProvider, } from "./
|
|
|
5
5
|
import { googleModelNames, googleModelRegistry, googleProvider, } from "./google-provider.js";
|
|
6
6
|
import { groqModelNames, groqModelRegistry, groqProvider, } from "./groq-provider.js";
|
|
7
7
|
import { openaiModelNames, openaiModelRegistry, openaiProvider, } from "./openai-provider.js";
|
|
8
|
+
import { opencodeGoModelNames, opencodeGoModelRegistry, opencodeGoProvider, } from "./opencode-go-provider.js";
|
|
8
9
|
import { opencodeZenModelNames, opencodeZenModelRegistry, opencodeZenProvider, } from "./opencode-zen-provider.js";
|
|
9
10
|
import { openrouterModelNames, openrouterModelRegistry, openrouterProvider, } from "./openrouter-provider.js";
|
|
10
11
|
import { xaiModelNames, xaiModelRegistry, xaiProvider, } from "./xai-provider.js";
|
|
@@ -17,6 +18,7 @@ const providers = [
|
|
|
17
18
|
"openrouter",
|
|
18
19
|
"xai",
|
|
19
20
|
"opencode",
|
|
21
|
+
"opencode-go",
|
|
20
22
|
];
|
|
21
23
|
const registry = createProviderRegistry({
|
|
22
24
|
...anthropicProvider,
|
|
@@ -26,6 +28,7 @@ const registry = createProviderRegistry({
|
|
|
26
28
|
...openaiProvider,
|
|
27
29
|
...openrouterProvider,
|
|
28
30
|
...xaiProvider,
|
|
31
|
+
...opencodeGoProvider,
|
|
29
32
|
...opencodeZenProvider,
|
|
30
33
|
});
|
|
31
34
|
export const models = [
|
|
@@ -36,6 +39,7 @@ export const models = [
|
|
|
36
39
|
...deepseekModelNames,
|
|
37
40
|
...openrouterModelNames,
|
|
38
41
|
...xaiModelNames,
|
|
42
|
+
...opencodeGoModelNames,
|
|
39
43
|
...opencodeZenModelNames,
|
|
40
44
|
];
|
|
41
45
|
export function isSupportedModel(model) {
|
|
@@ -48,6 +52,7 @@ export function isSupportedModel(model) {
|
|
|
48
52
|
model.startsWith("groq:") ||
|
|
49
53
|
model.startsWith("xai:") ||
|
|
50
54
|
model.startsWith("deepseek:") ||
|
|
55
|
+
model.startsWith("opencode-go:") ||
|
|
51
56
|
model.startsWith("opencode:"))));
|
|
52
57
|
}
|
|
53
58
|
export function languageModel(model) {
|
|
@@ -62,6 +67,7 @@ export const modelRegistry = {
|
|
|
62
67
|
...deepseekModelRegistry,
|
|
63
68
|
...openrouterModelRegistry,
|
|
64
69
|
...xaiModelRegistry,
|
|
70
|
+
...opencodeGoModelRegistry,
|
|
65
71
|
...opencodeZenModelRegistry,
|
|
66
72
|
};
|
|
67
73
|
// Check if a model name is valid
|
package/dist/modes/manager.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { UserModelMessage } from "ai";
|
|
2
|
-
|
|
2
|
+
type Mode = "normal" | "planning" | "research";
|
|
3
3
|
export declare class ModeManager {
|
|
4
4
|
private currentMode;
|
|
5
5
|
private firstMessageInMode;
|
|
@@ -20,4 +20,5 @@ export declare class ModeManager {
|
|
|
20
20
|
mode?: string;
|
|
21
21
|
}): void;
|
|
22
22
|
}
|
|
23
|
+
export {};
|
|
23
24
|
//# sourceMappingURL=manager.d.ts.map
|