@vetala/vetala 0.1.0-dev → 0.2.1-dev

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 (73) hide show
  1. package/README.md +31 -1
  2. package/dist/src/agent.d.ts +12 -1
  3. package/dist/src/agent.js +92 -14
  4. package/dist/src/agent.js.map +1 -1
  5. package/dist/src/app-meta.d.ts +3 -0
  6. package/dist/src/app-meta.js +4 -0
  7. package/dist/src/app-meta.js.map +1 -0
  8. package/dist/src/cli.js +28 -10
  9. package/dist/src/cli.js.map +1 -1
  10. package/dist/src/config.d.ts +10 -1
  11. package/dist/src/config.js +160 -67
  12. package/dist/src/config.js.map +1 -1
  13. package/dist/src/edit-history.d.ts +4 -0
  14. package/dist/src/edit-history.js +77 -0
  15. package/dist/src/edit-history.js.map +1 -0
  16. package/dist/src/edits/diff.d.ts +1 -0
  17. package/dist/src/edits/diff.js +176 -0
  18. package/dist/src/edits/diff.js.map +1 -0
  19. package/dist/src/ink/command-suggestions.js +1 -0
  20. package/dist/src/ink/command-suggestions.js.map +1 -1
  21. package/dist/src/ink/ink-terminal-ui.d.ts +2 -2
  22. package/dist/src/ink/ink-terminal-ui.js +7 -3
  23. package/dist/src/ink/ink-terminal-ui.js.map +1 -1
  24. package/dist/src/ink/repl-app.d.ts +3 -2
  25. package/dist/src/ink/repl-app.js +419 -111
  26. package/dist/src/ink/repl-app.js.map +1 -1
  27. package/dist/src/process-utils.d.ts +1 -0
  28. package/dist/src/process-utils.js +3 -1
  29. package/dist/src/process-utils.js.map +1 -1
  30. package/dist/src/providers/catalog.d.ts +29 -0
  31. package/dist/src/providers/catalog.js +121 -0
  32. package/dist/src/providers/catalog.js.map +1 -0
  33. package/dist/src/providers/index.d.ts +9 -0
  34. package/dist/src/providers/index.js +11 -0
  35. package/dist/src/providers/index.js.map +1 -0
  36. package/dist/src/providers/openai-compatible-client.d.ts +23 -0
  37. package/dist/src/providers/openai-compatible-client.js +183 -0
  38. package/dist/src/providers/openai-compatible-client.js.map +1 -0
  39. package/dist/src/repl.d.ts +2 -1
  40. package/dist/src/repl.js +1 -1
  41. package/dist/src/repl.js.map +1 -1
  42. package/dist/src/runtime-profile.d.ts +16 -0
  43. package/dist/src/runtime-profile.js +112 -0
  44. package/dist/src/runtime-profile.js.map +1 -0
  45. package/dist/src/search-provider.d.ts +6 -1
  46. package/dist/src/search-provider.js +257 -0
  47. package/dist/src/search-provider.js.map +1 -1
  48. package/dist/src/session-store.d.ts +5 -3
  49. package/dist/src/session-store.js +75 -4
  50. package/dist/src/session-store.js.map +1 -1
  51. package/dist/src/terminal-ui.d.ts +3 -1
  52. package/dist/src/terminal-ui.js +13 -3
  53. package/dist/src/terminal-ui.js.map +1 -1
  54. package/dist/src/tools/filesystem.js +141 -143
  55. package/dist/src/tools/filesystem.js.map +1 -1
  56. package/dist/src/tools/index.js +2 -0
  57. package/dist/src/tools/index.js.map +1 -1
  58. package/dist/src/tools/repo-search.d.ts +23 -0
  59. package/dist/src/tools/repo-search.js +221 -0
  60. package/dist/src/tools/repo-search.js.map +1 -0
  61. package/dist/src/tools/shell.js +26 -3
  62. package/dist/src/tools/shell.js.map +1 -1
  63. package/dist/src/tools/timing.d.ts +2 -0
  64. package/dist/src/tools/timing.js +58 -0
  65. package/dist/src/tools/timing.js.map +1 -0
  66. package/dist/src/tools/web.js +70 -5
  67. package/dist/src/tools/web.js.map +1 -1
  68. package/dist/src/types.d.ts +89 -17
  69. package/dist/src/update-notifier.d.ts +41 -0
  70. package/dist/src/update-notifier.js +145 -0
  71. package/dist/src/update-notifier.js.map +1 -0
  72. package/package.json +13 -2
  73. package/terminal.png +0 -0
package/README.md CHANGED
@@ -16,8 +16,33 @@ Vetala is designed for code-focused terminal work:
16
16
  - approval-aware operations for safer workspace access
17
17
  - local `skill/` runtime for reusable instructions and references
18
18
  - prompt compaction to preserve continuity across longer sessions
19
+ - provider-aware model selection with Sarvam and OpenRouter profiles
20
+ - provider-first `/model` flow with OpenRouter model-id entry
21
+ - diff previews for file edits and `/undo` for the last tracked change
22
+ - queued or force-sent follow-up prompts while the current turn is still running
23
+ - startup update notifier powered by `update-notifier` with “update now” or “update later”
24
+ - built-in HTML search providers with DuckDuckGo by default and Stack Overflow for coding lookups
19
25
 
20
- Current provider support is limited to Sarvam AI.
26
+ Current provider support includes Sarvam AI and OpenRouter.
27
+
28
+ ## Patch Notes
29
+
30
+ ### v0.2.1-dev
31
+
32
+ - switched the startup updater to `update-notifier` while keeping Vetala's own in-app `update now` or `update later` prompt
33
+ - added cached foreground update checks plus snooze handling so a fresh npm release can surface cleanly in the TUI
34
+
35
+ ### v0.2.0-dev
36
+
37
+ - added provider-aware `/model` setup with Sarvam model selection and manual OpenRouter model-id entry
38
+ - added OpenRouter as the second supported provider
39
+ - added HTML web search with DuckDuckGo by default plus Stack Overflow, Brave, and Bing provider options
40
+ - added prompt guidance so Vetala searches instead of guessing when it is unsure about factual or current information
41
+ - added diff previews before file changes and `/undo` for the last tracked edit
42
+ - improved streaming performance and approval handling so long replies are less likely to stall the TUI
43
+ - added runtime environment detection for host OS, shell, terminal type, and viewport so the UI and agent can adapt to the current machine
44
+ - added `sleep` plus longer shell timeouts so the agent can wait for slower builds, tests, or generated output
45
+ - added an interactive next-prompt popup so you can queue a message or stop the current turn and send the next one immediately
21
46
 
22
47
  ## Compatibility
23
48
 
@@ -59,6 +84,7 @@ npm run dev
59
84
  ```
60
85
 
61
86
  On startup, Vetala opens an interactive terminal UI and asks you to confirm trust for the current workspace before enabling tool access.
87
+ It also detects the current host platform, shell, and terminal profile and exposes that context in the UI and agent runtime.
62
88
 
63
89
  ## Configuration
64
90
 
@@ -68,7 +94,10 @@ Model selection and credential setup are available from inside the TUI through:
68
94
  /model
69
95
  ```
70
96
 
97
+ The default web search provider is DuckDuckGo HTML. For programming-specific web lookups, Vetala also exposes `stack_overflow_search`.
98
+
71
99
  Configuration and session data are stored in the user application directory for the current platform.
100
+ `/config` also prints the `host:` and `term:` lines used in issue reports.
72
101
 
73
102
  ## Core Commands
74
103
 
@@ -79,6 +108,7 @@ Configuration and session data are stored in the user application directory for
79
108
  - `/history` shows recent session messages
80
109
  - `/resume <session-id>` reopens a saved session
81
110
  - `/new` starts a fresh session
111
+ - `/undo` reverts the last tracked file edit in the current session
82
112
  - `/approve` shows active approvals
83
113
  - `/config` prints runtime configuration
84
114
  - `/logout` clears locally saved auth state
@@ -4,13 +4,14 @@ import { SessionStore } from "./session-store.js";
4
4
  import { TerminalUI } from "./terminal-ui.js";
5
5
  import { ToolRegistry } from "./tools/registry.js";
6
6
  import type { SkillRuntime } from "./skills/runtime.js";
7
- import type { EffectiveConfig, SessionState } from "./types.js";
7
+ import type { EffectiveConfig, RuntimeHostProfile, SessionState } from "./types.js";
8
8
  export interface AgentOptions {
9
9
  config: EffectiveConfig;
10
10
  session: SessionState;
11
11
  sessionStore: SessionStore;
12
12
  approvals: ApprovalManager;
13
13
  pathPolicy: PathPolicy;
14
+ runtimeProfile: RuntimeHostProfile;
14
15
  skills: SkillRuntime;
15
16
  tools: ToolRegistry;
16
17
  ui: TerminalUI;
@@ -18,8 +19,11 @@ export interface AgentOptions {
18
19
  export declare class Agent {
19
20
  private readonly options;
20
21
  private readonly client;
22
+ private activeRequestController;
23
+ private stopRequested;
21
24
  constructor(options: AgentOptions);
22
25
  get session(): SessionState;
26
+ requestStop(): void;
23
27
  runTurn(userInput: string, streaming: boolean): Promise<void>;
24
28
  private completeTurn;
25
29
  private chatRequest;
@@ -27,4 +31,11 @@ export declare class Agent {
27
31
  private appendAndRenderAssistantMessage;
28
32
  private persistedMessage;
29
33
  private systemPrompt;
34
+ private beginRequest;
35
+ private endRequest;
36
+ private throwIfStopped;
30
37
  }
38
+ export declare class AgentInterruptedError extends Error {
39
+ constructor();
40
+ }
41
+ export declare function isAgentInterruptedError(error: unknown): error is AgentInterruptedError;
package/dist/src/agent.js CHANGED
@@ -1,17 +1,24 @@
1
1
  import { compactConversation } from "./context-memory.js";
2
- import { DisabledSearchProvider } from "./search-provider.js";
3
- import { SarvamClient, withSystemMessage } from "./sarvam/client.js";
2
+ import { createProviderClient, getProviderDefinition, providerLabel, withSystemMessage } from "./providers/index.js";
3
+ import { createSearchProvider } from "./search-provider.js";
4
4
  export class Agent {
5
5
  options;
6
6
  client;
7
+ activeRequestController = null;
8
+ stopRequested = false;
7
9
  constructor(options) {
8
10
  this.options = options;
9
- this.client = new SarvamClient(options.config);
11
+ this.client = createProviderClient(options.config.providers[options.session.provider]);
10
12
  }
11
13
  get session() {
12
14
  return this.options.session;
13
15
  }
16
+ requestStop() {
17
+ this.stopRequested = true;
18
+ this.activeRequestController?.abort();
19
+ }
14
20
  async runTurn(userInput, streaming) {
21
+ this.stopRequested = false;
15
22
  const userMessage = this.persistedMessage({
16
23
  role: "user",
17
24
  content: userInput
@@ -22,15 +29,18 @@ export class Agent {
22
29
  await this.appendAndRenderAssistantMessage(localGreeting, false);
23
30
  return;
24
31
  }
25
- if (!this.options.config.authValue) {
26
- const missingAuthMessage = this.options.config.authSource === "stored_hash"
27
- ? "A stored SHA-256 fingerprint exists, but the raw Sarvam key is not available in this process. Use /model to enter the key again or set SARVAM_API_KEY, SARVAM_SUBSCRIPTION_KEY, or SARVAM_TOKEN."
28
- : "Sarvam credentials are missing. Set SARVAM_API_KEY, SARVAM_SUBSCRIPTION_KEY, or SARVAM_TOKEN and try again.";
32
+ const provider = this.options.config.providers[this.options.session.provider];
33
+ const providerDefinition = getProviderDefinition(this.options.session.provider);
34
+ if (!provider.authValue) {
35
+ const missingAuthMessage = provider.authSource === "stored_hash"
36
+ ? `A stored SHA-256 fingerprint exists for ${providerDefinition.label}, but the raw credential is not available in this process. Use /model to enter the key again or set ${providerDefinition.auth.envVars.join(", ")}.`
37
+ : `${providerDefinition.label} credentials are missing. Set ${providerDefinition.auth.envVars.join(", ")} and try again.`;
29
38
  await this.appendAndRenderAssistantMessage(missingAuthMessage, false);
30
39
  return;
31
40
  }
32
41
  const seenToolCalls = new Set();
33
42
  for (let turnIndex = 0; turnIndex < 8; turnIndex += 1) {
43
+ this.throwIfStopped();
34
44
  const conversation = compactConversation(this.options.session.messages, this.options.session.referencedFiles);
35
45
  this.options.ui.activity(conversation.compactedCount > 0
36
46
  ? `Using 12 recent messages and ${conversation.compactedCount} compacted earlier messages.`
@@ -42,6 +52,10 @@ export class Agent {
42
52
  turn = await this.completeTurn(requestMessages, streaming);
43
53
  }
44
54
  catch (error) {
55
+ if (isAbortError(error) || error instanceof AgentInterruptedError) {
56
+ this.options.ui.endAssistantTurn();
57
+ throw new AgentInterruptedError();
58
+ }
45
59
  await this.appendAndRenderAssistantMessage(error instanceof Error ? error.message : String(error), true);
46
60
  return;
47
61
  }
@@ -56,6 +70,7 @@ export class Agent {
56
70
  return;
57
71
  }
58
72
  for (const toolCall of turn.toolCalls) {
73
+ this.throwIfStopped();
59
74
  this.options.ui.printToolCall(toolCall);
60
75
  const signature = toolCallSignature(toolCall);
61
76
  let result;
@@ -72,6 +87,7 @@ export class Agent {
72
87
  this.options.ui.activity(`Running ${toolCall.function.name}.`);
73
88
  result = await this.options.tools.execute(toolCall, this.toolContext());
74
89
  }
90
+ this.throwIfStopped();
75
91
  this.options.ui.printToolResult(result.summary, result.isError);
76
92
  await this.options.sessionStore.appendMessage(this.options.session, this.persistedMessage({
77
93
  role: "tool",
@@ -83,18 +99,26 @@ export class Agent {
83
99
  throw new Error("Agent reached the maximum tool loop depth.");
84
100
  }
85
101
  async completeTurn(messages, streaming) {
86
- this.options.ui.activity(`Thinking with ${this.options.session.model}.`);
102
+ this.options.ui.activity(`Thinking with ${providerLabel(this.options.session.provider)} / ${this.options.session.model}.`);
103
+ const requestOptions = this.beginRequest();
87
104
  if (!streaming) {
88
105
  const spinner = this.options.ui.startSpinner("Thinking");
89
106
  try {
90
- const turn = await this.client.complete(this.chatRequest(messages));
107
+ const turn = await this.client.complete(this.chatRequest(messages), requestOptions);
91
108
  spinner.stop();
92
109
  if (turn.content) {
93
110
  this.options.ui.printAssistantMessage(turn.content);
94
111
  }
95
112
  return turn;
96
113
  }
114
+ catch (error) {
115
+ if (isAbortError(error)) {
116
+ throw new AgentInterruptedError();
117
+ }
118
+ throw error;
119
+ }
97
120
  finally {
121
+ this.endRequest(requestOptions);
98
122
  if (spinner.isSpinning) {
99
123
  spinner.stop();
100
124
  }
@@ -103,22 +127,31 @@ export class Agent {
103
127
  try {
104
128
  const turn = await this.client.stream(this.chatRequest(messages), {
105
129
  onText: (chunk) => this.options.ui.appendAssistantText(chunk)
106
- });
130
+ }, requestOptions);
107
131
  return turn;
108
132
  }
109
133
  catch (error) {
134
+ if (isAbortError(error)) {
135
+ this.options.ui.endAssistantTurn();
136
+ throw new AgentInterruptedError();
137
+ }
110
138
  this.options.ui.endAssistantTurn();
111
139
  this.options.ui.activity("Streaming failed. Retrying with buffered completion.");
112
140
  this.options.ui.warn(`Streaming failed, falling back to buffered completion: ${error instanceof Error ? error.message : String(error)}`);
113
141
  return this.completeTurn(messages, false);
114
142
  }
143
+ finally {
144
+ this.endRequest(requestOptions);
145
+ }
115
146
  }
116
147
  chatRequest(messages) {
117
148
  return {
118
149
  messages,
119
150
  model: this.options.session.model,
120
151
  temperature: 0.2,
121
- reasoning_effort: this.options.config.reasoningEffort,
152
+ reasoning_effort: getProviderDefinition(this.options.session.provider).supportsReasoningEffort
153
+ ? this.options.config.reasoningEffort
154
+ : null,
122
155
  tools: this.options.tools.toSarvamTools(),
123
156
  tool_choice: "auto"
124
157
  };
@@ -137,13 +170,16 @@ export class Agent {
137
170
  hasRead: (targetPath) => this.options.session.readFiles.includes(targetPath),
138
171
  registerRead: (targetPath) => this.options.sessionStore.appendReadFile(this.options.session, targetPath)
139
172
  },
173
+ edits: {
174
+ recordEdit: (edit) => this.options.sessionStore.appendEdit(this.options.session, edit)
175
+ },
140
176
  paths: {
141
177
  resolve: (inputPath) => this.options.pathPolicy.resolve(inputPath),
142
178
  ensureReadable: (inputPath) => this.options.pathPolicy.ensureReadable(inputPath),
143
179
  ensureWritable: (inputPath) => this.options.pathPolicy.ensureWritable(inputPath),
144
180
  allowedRoots: () => this.options.pathPolicy.allowedRoots()
145
181
  },
146
- searchProvider: new DisabledSearchProvider()
182
+ searchProvider: createSearchProvider(this.options.config.searchProviderName)
147
183
  };
148
184
  }
149
185
  async appendAndRenderAssistantMessage(message, isError) {
@@ -171,16 +207,28 @@ export class Agent {
171
207
  "You are Vetala, a concise coding CLI assistant operating inside a developer terminal.",
172
208
  "When greeting or introducing yourself, explicitly call yourself Vetala.",
173
209
  "When referring to yourself in any response, use the name Vetala.",
174
- `Host platform: ${process.platform}`,
175
- "Account for the host platform when suggesting or running shell commands.",
210
+ `Host platform: ${this.options.runtimeProfile.platform}`,
211
+ `Host architecture: ${this.options.runtimeProfile.arch}`,
212
+ `Host release: ${this.options.runtimeProfile.release}`,
213
+ `Host OS version: ${this.options.runtimeProfile.osVersion}`,
214
+ `Detected shell: ${this.options.runtimeProfile.shell}`,
215
+ `Detected terminal: ${this.options.runtimeProfile.terminalProgram} / ${this.options.runtimeProfile.terminalType}`,
216
+ `TTY: stdin=${this.options.runtimeProfile.stdinIsTTY ? "yes" : "no"}, stdout=${this.options.runtimeProfile.stdoutIsTTY ? "yes" : "no"}, size=${formatViewport(this.options.runtimeProfile)}`,
217
+ "Account for the host platform, shell, and terminal when suggesting or running commands.",
176
218
  `Workspace root: ${this.options.session.workspaceRoot}`,
219
+ `Active provider: ${providerLabel(this.options.session.provider)}`,
220
+ `Active model: ${this.options.session.model}`,
177
221
  `Allowed roots right now: ${this.options.pathPolicy.allowedRoots().join(", ")}`,
178
222
  compactedCount > 0
179
223
  ? `Only the most recent messages are attached verbatim. ${compactedCount} earlier messages were compacted into working memory.`
180
224
  : "The full conversation is attached because the session is still short.",
181
225
  "Use tools whenever you need file contents, shell output, git state, or web data.",
226
+ "If you are unsure about a current or factual claim, use web_search or stack_overflow_search instead of guessing.",
227
+ "For programming questions on the web, prefer stack_overflow_search before broader search when appropriate.",
182
228
  "Only call declared tools by their exact names.",
183
229
  "Preferred repo workflow: search_repo, then read_file/read_file_chunk/read_symbol, then apply_patch or write_file.",
230
+ "If a command or background process needs time before the next check, use sleep instead of guessing.",
231
+ "If a build, test, or install command may take longer than usual, set run_shell.timeout_ms explicitly.",
184
232
  "Do not edit an existing file until you have read it in this session.",
185
233
  "Use the skill tool whenever a task may match a local skill or when you need a skill-specific file.",
186
234
  "When reading files inside the local skill catalog, prefer the skill tool over read_file.",
@@ -202,6 +250,30 @@ export class Agent {
202
250
  }
203
251
  return lines.join("\n");
204
252
  }
253
+ beginRequest() {
254
+ const controller = new AbortController();
255
+ this.activeRequestController = controller;
256
+ return { signal: controller.signal };
257
+ }
258
+ endRequest(options) {
259
+ if (this.activeRequestController?.signal === options.signal) {
260
+ this.activeRequestController = null;
261
+ }
262
+ }
263
+ throwIfStopped() {
264
+ if (this.stopRequested) {
265
+ throw new AgentInterruptedError();
266
+ }
267
+ }
268
+ }
269
+ export class AgentInterruptedError extends Error {
270
+ constructor() {
271
+ super("The current turn was interrupted.");
272
+ this.name = "AgentInterruptedError";
273
+ }
274
+ }
275
+ export function isAgentInterruptedError(error) {
276
+ return error instanceof AgentInterruptedError;
205
277
  }
206
278
  function toolCallSignature(toolCall) {
207
279
  return `${toolCall.function.name}:${toolCall.function.arguments.trim()}`;
@@ -213,4 +285,10 @@ function maybeLocalGreeting(userInput) {
213
285
  }
214
286
  return null;
215
287
  }
288
+ function isAbortError(error) {
289
+ return error instanceof Error && error.name === "AbortError";
290
+ }
291
+ function formatViewport(profile) {
292
+ return profile.columns && profile.rows ? `${profile.columns}x${profile.rows}` : "unknown";
293
+ }
216
294
  //# sourceMappingURL=agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const APP_NAME = "Vetala";
2
+ export declare const APP_VERSION = "0.2.1-dev";
3
+ export declare const APP_TAGLINE = "multi-provider coding cli";
@@ -0,0 +1,4 @@
1
+ export const APP_NAME = "Vetala";
2
+ export const APP_VERSION = "0.2.1-dev";
3
+ export const APP_TAGLINE = "multi-provider coding cli";
4
+ //# sourceMappingURL=app-meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-meta.js","sourceRoot":"","sources":["../../src/app-meta.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC;AACjC,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,2BAA2B,CAAC"}
package/dist/src/cli.js CHANGED
@@ -4,8 +4,11 @@ import { stdin, stdout } from "node:process";
4
4
  import { Command } from "commander";
5
5
  import { Agent } from "./agent.js";
6
6
  import { ApprovalManager } from "./approvals.js";
7
+ import { APP_VERSION } from "./app-meta.js";
7
8
  import { loadConfig } from "./config.js";
8
9
  import { PathPolicy } from "./path-policy.js";
10
+ import { resolveProviderName } from "./providers/index.js";
11
+ import { detectRuntimeHostProfile } from "./runtime-profile.js";
9
12
  import { SessionStore } from "./session-store.js";
10
13
  import { SkillRuntime } from "./skills/runtime.js";
11
14
  import { TerminalUI } from "./terminal-ui.js";
@@ -14,22 +17,33 @@ import { ensureWorkspaceTrust } from "./workspace-trust.js";
14
17
  const program = new Command();
15
18
  program
16
19
  .name("vetala")
17
- .description("Sarvam-powered coding CLI.")
20
+ .version(APP_VERSION)
21
+ .description("Multi-provider coding CLI.")
18
22
  .option("-p, --prompt <prompt>", "Run a single prompt and exit")
19
23
  .option("--new", "Start a fresh session")
20
24
  .option("--resume <sessionId>", "Resume a specific session")
25
+ .option("--provider <provider>", "Override the provider for this run")
21
26
  .option("--model <model>", "Override the model for this run")
22
27
  .action(async (options) => {
23
28
  let config = await loadConfig();
24
- const ui = new TerminalUI();
29
+ const runtimeProfile = detectRuntimeHostProfile();
30
+ const ui = new TerminalUI(runtimeProfile);
25
31
  const store = new SessionStore();
26
32
  const workspaceRoot = process.cwd();
27
- let session = await resolveSession(store, workspaceRoot, config.defaultModel, options);
33
+ let session = await resolveSession(store, workspaceRoot, config.defaultProvider, config.defaultModel, options);
28
34
  if (session.workspaceRoot !== process.cwd()) {
29
35
  process.chdir(session.workspaceRoot);
30
36
  }
31
- if (options.model && options.model !== session.model) {
32
- await store.updateModel(session, options.model);
37
+ const overrideProvider = resolveProviderOption(options.provider);
38
+ if (options.provider && !overrideProvider) {
39
+ throw new Error(`Unknown provider: ${options.provider}`);
40
+ }
41
+ if (overrideProvider || options.model) {
42
+ const nextProvider = overrideProvider ?? session.provider;
43
+ const nextModel = options.model ?? config.providers[nextProvider].defaultModel;
44
+ if (nextProvider !== session.provider || nextModel !== session.model) {
45
+ await store.updateModel(session, nextProvider, nextModel);
46
+ }
33
47
  }
34
48
  if (options.prompt) {
35
49
  const trustedConfig = await ensureWorkspaceTrust(session.workspaceRoot, config, ui);
@@ -38,20 +52,20 @@ program
38
52
  return;
39
53
  }
40
54
  config = trustedConfig;
41
- await runOneShot(options.prompt, session, config, store, ui);
55
+ await runOneShot(options.prompt, session, config, store, ui, runtimeProfile);
42
56
  return;
43
57
  }
44
58
  const { startRepl } = await import("./repl.js");
45
- await startRepl(session, { ui, store });
59
+ await startRepl(session, { ui, store, runtimeProfile });
46
60
  });
47
61
  await program.parseAsync(process.argv);
48
- async function resolveSession(store, workspaceRoot, defaultModel, options) {
62
+ async function resolveSession(store, workspaceRoot, defaultProvider, defaultModel, options) {
49
63
  if (options.resume) {
50
64
  return store.loadSession(options.resume);
51
65
  }
52
- return store.createSession(workspaceRoot, defaultModel);
66
+ return store.createSession(workspaceRoot, defaultProvider, defaultModel);
53
67
  }
54
- async function runOneShot(prompt, session, config, store, ui) {
68
+ async function runOneShot(prompt, session, config, store, ui, runtimeProfile) {
55
69
  const rl = stdin.isTTY
56
70
  ? readline.createInterface({
57
71
  input: stdin,
@@ -71,6 +85,7 @@ async function runOneShot(prompt, session, config, store, ui) {
71
85
  sessionStore: store,
72
86
  approvals,
73
87
  pathPolicy: new PathPolicy(session.workspaceRoot, approvals),
88
+ runtimeProfile,
74
89
  skills,
75
90
  tools: createToolRegistry({
76
91
  includeWebSearch: config.searchProviderName !== "disabled",
@@ -84,4 +99,7 @@ async function runOneShot(prompt, session, config, store, ui) {
84
99
  await rl?.close();
85
100
  }
86
101
  }
102
+ function resolveProviderOption(value) {
103
+ return resolveProviderName(value);
104
+ }
87
105
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,uBAAuB,EAAE,8BAA8B,CAAC;KAC/D,MAAM,CAAC,OAAO,EAAE,uBAAuB,CAAC;KACxC,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;KAC3D,MAAM,CAAC,uBAAuB,EAAE,oCAAoC,CAAC;KACrE,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;KAC5D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,cAAc,GAAG,wBAAwB,EAAE,CAAC;IAClD,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;IACjC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACpC,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAE/G,IAAI,OAAO,CAAC,aAAa,KAAK,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjE,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,gBAAgB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC;QAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC;QAE/E,IAAI,YAAY,KAAK,OAAO,CAAC,QAAQ,IAAI,SAAS,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;YACrE,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAEpF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,GAAG,aAAa,CAAC;QACvB,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QAC7E,OAAO;IACT,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEL,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvC,KAAK,UAAU,cAAc,CAC3B,KAAmB,EACnB,aAAqB,EACrB,eAA6B,EAC7B,YAAoB,EACpB,OAA2C;IAE3C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;AAC3E,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,MAAc,EACd,OAAqB,EACrB,MAA8C,EAC9C,KAAmB,EACnB,EAAc,EACd,cAA2D;IAE3D,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK;QACpB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;YACvB,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,IAAI;SACf,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7G,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;YAC9B,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO;YACzB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;YACtB,MAAM;YACN,OAAO;YACP,YAAY,EAAE,KAAK;YACnB,SAAS;YACT,UAAU,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC;YAC5D,cAAc;YACd,MAAM;YACN,KAAK,EAAE,kBAAkB,CAAC;gBACxB,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,KAAK,UAAU;gBAC1D,YAAY,EAAE,MAAM;aACrB,CAAC;YACF,EAAE;SACH,CAAC,CAAC;QAEH,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAyB;IACtD,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC"}
@@ -1,12 +1,21 @@
1
- import type { EffectiveConfig, FileConfig, ReasoningEffort } from "./types.js";
1
+ import type { EffectiveConfig, FileConfig, ProviderName, ProviderRuntimeConfig, ReasoningEffort } from "./types.js";
2
2
  export declare function loadConfig(): Promise<EffectiveConfig>;
3
3
  export declare function saveFileConfig(nextConfig: FileConfig): Promise<void>;
4
4
  export declare function saveDefaultModel(model: string): Promise<void>;
5
5
  export declare function saveChatDefaults(model: string, reasoningEffort: ReasoningEffort | null): Promise<void>;
6
+ export declare function saveProviderDefaults(provider: ProviderName, model: string, options?: {
7
+ reasoningEffort?: ReasoningEffort | null;
8
+ }): Promise<void>;
6
9
  export declare function saveAuthFingerprint(mode: "bearer" | "subscription_key", authValue: string): Promise<void>;
10
+ export declare function saveProviderAuthFingerprint(provider: ProviderName, mode: "bearer" | "subscription_key", authValue: string): Promise<void>;
7
11
  export declare function savePersistentAuth(mode: "bearer" | "subscription_key", authValue: string): Promise<void>;
12
+ export declare function saveProviderPersistentAuth(provider: ProviderName, mode: "bearer" | "subscription_key", authValue: string): Promise<void>;
8
13
  export declare function clearSavedAuth(): Promise<void>;
14
+ export declare function clearProviderSavedAuth(provider: ProviderName): Promise<void>;
9
15
  export declare function trustWorkspace(workspaceRoot: string): Promise<void>;
10
16
  export declare function isWorkspaceTrusted(config: EffectiveConfig, workspaceRoot: string): boolean;
11
17
  export declare function withSessionAuth(config: EffectiveConfig, mode: "bearer" | "subscription_key", authValue: string): EffectiveConfig;
18
+ export declare function withProviderSessionAuth(config: EffectiveConfig, provider: ProviderName, mode: "bearer" | "subscription_key", authValue: string): EffectiveConfig;
12
19
  export declare function withStoredAuth(config: EffectiveConfig, mode: "bearer" | "subscription_key", authValue: string): EffectiveConfig;
20
+ export declare function withProviderStoredAuth(config: EffectiveConfig, provider: ProviderName, mode: "bearer" | "subscription_key", authValue: string): EffectiveConfig;
21
+ export declare function providerConfigFor(config: EffectiveConfig, provider: ProviderName): ProviderRuntimeConfig;