@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.
Files changed (112) hide show
  1. package/README.md +5 -1
  2. package/dist/agent/index.d.ts.map +1 -1
  3. package/dist/agent/index.js +29 -27
  4. package/dist/cli/stdin.d.ts +2 -1
  5. package/dist/cli/stdin.d.ts.map +1 -1
  6. package/dist/commands/generate-rules/service.d.ts +3 -2
  7. package/dist/commands/generate-rules/service.d.ts.map +1 -1
  8. package/dist/commands/health/utils.d.ts +3 -2
  9. package/dist/commands/health/utils.d.ts.map +1 -1
  10. package/dist/commands/init-project/utils.d.ts +2 -1
  11. package/dist/commands/init-project/utils.d.ts.map +1 -1
  12. package/dist/commands/review/utils.d.ts +6 -1
  13. package/dist/commands/review/utils.d.ts.map +1 -1
  14. package/dist/index.js +1 -1
  15. package/dist/models/opencode-go-provider.d.ts +25 -0
  16. package/dist/models/opencode-go-provider.d.ts.map +1 -0
  17. package/dist/models/opencode-go-provider.js +78 -0
  18. package/dist/models/opencode-zen-provider.d.ts +3 -3
  19. package/dist/models/opencode-zen-provider.js +17 -17
  20. package/dist/models/openrouter-provider.d.ts +4 -1
  21. package/dist/models/openrouter-provider.d.ts.map +1 -1
  22. package/dist/models/openrouter-provider.js +39 -0
  23. package/dist/models/providers.d.ts +3 -3
  24. package/dist/models/providers.d.ts.map +1 -1
  25. package/dist/models/providers.js +6 -0
  26. package/dist/modes/manager.d.ts +2 -1
  27. package/dist/modes/manager.d.ts.map +1 -1
  28. package/dist/modes/prompts.d.ts +1 -1
  29. package/dist/modes/prompts.d.ts.map +1 -1
  30. package/dist/modes/prompts.js +1 -2
  31. package/dist/prompts/mentions.d.ts.map +1 -1
  32. package/dist/prompts/mentions.js +35 -6
  33. package/dist/repl/index.d.ts.map +1 -1
  34. package/dist/repl/index.js +9 -1
  35. package/dist/sessions/manager.d.ts +3 -3
  36. package/dist/sessions/manager.d.ts.map +1 -1
  37. package/dist/sessions/manager.js +1 -1
  38. package/dist/skills/index.d.ts +2 -1
  39. package/dist/skills/index.d.ts.map +1 -1
  40. package/dist/subagents/index.d.ts +2 -1
  41. package/dist/subagents/index.d.ts.map +1 -1
  42. package/dist/terminal/table/utils.d.ts +1 -1
  43. package/dist/terminal/table/utils.d.ts.map +1 -1
  44. package/dist/terminal/wrap-ansi.js +2 -2
  45. package/dist/tools/agent.js +1 -1
  46. package/dist/tools/apply-patch.d.ts +62 -0
  47. package/dist/tools/apply-patch.d.ts.map +1 -0
  48. package/dist/tools/apply-patch.js +377 -0
  49. package/dist/tools/bash.d.ts.map +1 -1
  50. package/dist/tools/bash.js +28 -7
  51. package/dist/tools/directory-tree.d.ts.map +1 -1
  52. package/dist/tools/directory-tree.js +1 -1
  53. package/dist/tools/dynamic-tool-loader.d.ts +1 -1
  54. package/dist/tools/dynamic-tool-loader.d.ts.map +1 -1
  55. package/dist/tools/edit-file.d.ts.map +1 -1
  56. package/dist/tools/edit-file.js +188 -79
  57. package/dist/tools/glob.d.ts.map +1 -1
  58. package/dist/tools/glob.js +22 -15
  59. package/dist/tools/grep.d.ts.map +1 -1
  60. package/dist/tools/grep.js +43 -29
  61. package/dist/tools/index.d.ts +15 -48
  62. package/dist/tools/index.d.ts.map +1 -1
  63. package/dist/tools/index.js +4 -4
  64. package/dist/tools/ls.d.ts.map +1 -1
  65. package/dist/tools/ls.js +1 -1
  66. package/dist/tools/read-file.d.ts +1 -3
  67. package/dist/tools/read-file.d.ts.map +1 -1
  68. package/dist/tools/read-file.js +21 -16
  69. package/dist/tools/save-file.d.ts.map +1 -1
  70. package/dist/tools/save-file.js +26 -21
  71. package/dist/tools/web-fetch.d.ts +0 -12
  72. package/dist/tools/web-fetch.d.ts.map +1 -1
  73. package/dist/tools/web-fetch.js +18 -1
  74. package/dist/tools/web-search.d.ts +0 -18
  75. package/dist/tools/web-search.d.ts.map +1 -1
  76. package/dist/tui/autocomplete/file-search-provider.js +1 -1
  77. package/dist/tui/autocomplete/utils.d.ts +2 -1
  78. package/dist/tui/autocomplete/utils.d.ts.map +1 -1
  79. package/dist/tui/autocomplete/utils.js +25 -23
  80. package/dist/tui/components/editor.d.ts +2 -1
  81. package/dist/tui/components/editor.d.ts.map +1 -1
  82. package/dist/tui/components/editor.js +1 -1
  83. package/dist/tui/components/markdown.d.ts +2 -2
  84. package/dist/tui/components/markdown.d.ts.map +1 -1
  85. package/dist/tui/components/welcome.d.ts +2 -1
  86. package/dist/tui/components/welcome.d.ts.map +1 -1
  87. package/dist/tui/editor-launcher.d.ts +3 -2
  88. package/dist/tui/editor-launcher.d.ts.map +1 -1
  89. package/dist/tui/index.d.ts +0 -1
  90. package/dist/tui/index.d.ts.map +1 -1
  91. package/dist/tui/tui.d.ts +1 -0
  92. package/dist/tui/tui.d.ts.map +1 -1
  93. package/dist/tui/tui.js +9 -0
  94. package/dist/tui/utils.d.ts +1 -5
  95. package/dist/tui/utils.d.ts.map +1 -1
  96. package/dist/tui/utils.js +271 -44
  97. package/package.json +18 -18
  98. package/dist/commands/add-directory/types.d.ts +0 -6
  99. package/dist/commands/add-directory/types.d.ts.map +0 -1
  100. package/dist/commands/add-directory/types.js +0 -1
  101. package/dist/commands/copy/types.d.ts +0 -3
  102. package/dist/commands/copy/types.d.ts.map +0 -1
  103. package/dist/commands/copy/types.js +0 -1
  104. package/dist/commands/review/types.d.ts +0 -12
  105. package/dist/commands/review/types.d.ts.map +0 -1
  106. package/dist/commands/review/types.js +0 -1
  107. package/dist/tools/code-search.d.ts +0 -41
  108. package/dist/tools/code-search.d.ts.map +0 -1
  109. package/dist/tools/code-search.js +0 -195
  110. package/dist/utils/iterables.d.ts +0 -2
  111. package/dist/utils/iterables.d.ts.map +0 -1
  112. 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 Zen.
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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"}
@@ -364,39 +364,41 @@ export class Agent {
364
364
  return null;
365
365
  }
366
366
  updateUsageStats(stepUsage, sessionManager) {
367
- this._state.usage.inputTokens = stepUsage.inputTokens ?? 0;
368
- this._state.usage.outputTokens = stepUsage.outputTokens ?? 0;
369
- this._state.usage.totalTokens = stepUsage.totalTokens ?? 0;
370
- this._state.usage.cachedInputTokens =
371
- stepUsage.inputTokenDetails.cacheReadTokens ?? 0;
372
- this._state.usage.inputTokenDetails.cacheReadTokens =
373
- stepUsage.inputTokenDetails.cacheReadTokens ?? 0;
374
- this._state.usage.reasoningTokens =
375
- stepUsage.outputTokenDetails.reasoningTokens ?? 0;
376
- sessionManager.setContextWindow(stepUsage.totalTokens ?? 0);
377
- this._state.totalUsage.inputTokens += stepUsage.inputTokens ?? 0;
378
- this._state.totalUsage.outputTokens += stepUsage.outputTokens ?? 0;
379
- this._state.totalUsage.totalTokens += stepUsage.totalTokens ?? 0;
380
- this._state.totalUsage.cachedInputTokens +=
381
- stepUsage.inputTokenDetails.cacheReadTokens ?? 0;
382
- this._state.totalUsage.inputTokenDetails.cacheReadTokens +=
383
- stepUsage.inputTokenDetails.cacheReadTokens ?? 0;
384
- this._state.totalUsage.reasoningTokens +=
385
- stepUsage.outputTokenDetails.reasoningTokens ?? 0;
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: stepUsage.inputTokens ?? 0,
388
- outputTokens: stepUsage.outputTokens ?? 0,
389
- totalTokens: stepUsage.totalTokens ?? 0,
390
- cachedInputTokens: stepUsage.inputTokenDetails.cacheReadTokens ?? 0,
391
- reasoningTokens: stepUsage.outputTokenDetails.reasoningTokens ?? 0,
389
+ inputTokens,
390
+ outputTokens,
391
+ totalTokens,
392
+ cachedInputTokens: cacheReadTokens,
393
+ reasoningTokens,
392
394
  inputTokenDetails: {
393
395
  noCacheTokens: stepUsage.inputTokenDetails.noCacheTokens ?? 0,
394
- cacheReadTokens: stepUsage.inputTokenDetails.cacheReadTokens ?? 0,
396
+ cacheReadTokens,
395
397
  cacheWriteTokens: stepUsage.inputTokenDetails.cacheWriteTokens ?? 0,
396
398
  },
397
399
  outputTokenDetails: {
398
400
  textTokens: stepUsage.outputTokenDetails.textTokens ?? 0,
399
- reasoningTokens: stepUsage.outputTokenDetails.reasoningTokens ?? 0,
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,
@@ -1,9 +1,10 @@
1
1
  export declare const STDIN_SOFT_LIMIT: number;
2
2
  export declare const STDIN_HARD_LIMIT: number;
3
- export interface StdinResult {
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
@@ -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,MAAM,WAAW,WAAW;IAC1B,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"}
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
- export interface GenerateRulesOptions {
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
- export interface GenerateRulesResult {
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,MAAM,WAAW,oBAAoB;IACnC,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,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CA6D9B"}
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
- export interface EnvVarInfo {
1
+ interface EnvVarInfo {
2
2
  name: string;
3
3
  description: string;
4
4
  }
5
- export interface ToolInfo {
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,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,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
+ {"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
- export interface InitializationResult {
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,MAAM,WAAW,oBAAoB;IACnC,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
+ {"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
- import type { FileChange } from "./types.ts";
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;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA6C7C,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"}
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:minimax-m2.5-free";
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-free": import("@ai-sdk/provider").LanguageModelV3;
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-free" | "glm-4-7" | "opus-4-6" | "kimi-k2-5-free" | "kimi-k2-5"): import("@ai-sdk/provider").LanguageModelV3;
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-free": completionsClient("minimax-m2.5-free"),
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-free": {
98
- id: "opencode:kimi-k2-5-free",
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: 0,
107
- costPerOutputToken: 0,
106
+ costPerInputToken: 6e-7,
107
+ costPerOutputToken: 0.000003,
108
108
  },
109
- "opencode:kimi-k2-5": {
110
- id: "opencode:kimi-k2-5",
109
+ "opencode:minimax-m2.5": {
110
+ id: "opencode:minimax-m2.5",
111
111
  provider: "opencode",
112
- contextWindow: 262144,
113
- maxOutputTokens: 262144,
114
- defaultTemperature: 1.0,
112
+ contextWindow: 204800,
113
+ maxOutputTokens: 131072,
114
+ defaultTemperature: 0.5,
115
115
  promptFormat: "markdown",
116
116
  supportsReasoning: true,
117
117
  supportsToolCalling: true,
118
- costPerInputToken: 6e-7,
119
- costPerOutputToken: 0.000003,
118
+ costPerInputToken: 3e-7,
119
+ costPerOutputToken: 0.0000012,
120
120
  },
121
- "opencode:minimax-m2.5-free": {
122
- id: "opencode:minimax-m2.5-free",
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: 0,
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" | "glm-4-7" | "kimi-k2-5" | "gpt-oss-120b" | "gpt-5-3-codex" | "deepseek-v3-2" | "glm-4-7-flash" | "minimax-m2-5" | "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;
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;AAqDpD,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;CAkP3C,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-free" | "opencode:glm-4-7" | "opencode:opus-4-6" | "opencode:kimi-k2-5-free" | "opencode:kimi-k2-5" | "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:glm-4-7" | "openrouter:kimi-k2-5" | "openrouter:gpt-oss-120b" | "openrouter:gpt-5-3-codex" | "openrouter:deepseek-v3-2" | "openrouter:glm-4-7-flash" | "openrouter:minimax-m2-5" | "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:${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":"AA2CA,QAAA,MAAM,SAAS,iGASL,CAAC;AAEX,KAAK,aAAa,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAahD,eAAO,MAAM,MAAM,0gCAST,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,YAAY,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAEhC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAanE;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,CAS1D,CAAC;AAGF,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,IAAI,SAAS,CAEtE"}
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"}
@@ -5,6 +5,7 @@ import { deepseekModelNames, deepseekModelRegistry, deepseekProvider, } from "./
5
5
  import { googleModelNames, googleModelRegistry, googleProvider, } from "./google-provider.js";
6
6
  import { groqModelNames, groqModelRegistry, groqProvider, } from "./groq-provider.js";
7
7
  import { openaiModelNames, openaiModelRegistry, openaiProvider, } from "./openai-provider.js";
8
+ import { opencodeGoModelNames, opencodeGoModelRegistry, opencodeGoProvider, } from "./opencode-go-provider.js";
8
9
  import { opencodeZenModelNames, opencodeZenModelRegistry, opencodeZenProvider, } from "./opencode-zen-provider.js";
9
10
  import { openrouterModelNames, openrouterModelRegistry, openrouterProvider, } from "./openrouter-provider.js";
10
11
  import { xaiModelNames, xaiModelRegistry, xaiProvider, } from "./xai-provider.js";
@@ -17,6 +18,7 @@ const providers = [
17
18
  "openrouter",
18
19
  "xai",
19
20
  "opencode",
21
+ "opencode-go",
20
22
  ];
21
23
  const registry = createProviderRegistry({
22
24
  ...anthropicProvider,
@@ -26,6 +28,7 @@ const registry = createProviderRegistry({
26
28
  ...openaiProvider,
27
29
  ...openrouterProvider,
28
30
  ...xaiProvider,
31
+ ...opencodeGoProvider,
29
32
  ...opencodeZenProvider,
30
33
  });
31
34
  export const models = [
@@ -36,6 +39,7 @@ export const models = [
36
39
  ...deepseekModelNames,
37
40
  ...openrouterModelNames,
38
41
  ...xaiModelNames,
42
+ ...opencodeGoModelNames,
39
43
  ...opencodeZenModelNames,
40
44
  ];
41
45
  export function isSupportedModel(model) {
@@ -48,6 +52,7 @@ export function isSupportedModel(model) {
48
52
  model.startsWith("groq:") ||
49
53
  model.startsWith("xai:") ||
50
54
  model.startsWith("deepseek:") ||
55
+ model.startsWith("opencode-go:") ||
51
56
  model.startsWith("opencode:"))));
52
57
  }
53
58
  export function languageModel(model) {
@@ -62,6 +67,7 @@ export const modelRegistry = {
62
67
  ...deepseekModelRegistry,
63
68
  ...openrouterModelRegistry,
64
69
  ...xaiModelRegistry,
70
+ ...opencodeGoModelRegistry,
65
71
  ...opencodeZenModelRegistry,
66
72
  };
67
73
  // Check if a model name is valid
@@ -1,5 +1,5 @@
1
1
  import type { UserModelMessage } from "ai";
2
- export type Mode = "normal" | "planning" | "research";
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