openfox 2.0.103 → 2.0.105

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 (79) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/CHANGELOG.md +32 -0
  3. package/dist/{ask-TOBEA6KD.js → ask-CJMU6EW7.js} +2 -2
  4. package/dist/{chat-handler-IBFSBSGV.js → chat-handler-CQIDZUR7.js} +20 -20
  5. package/dist/chunk-4H427UBV.js +1298 -0
  6. package/dist/{chunk-5ZJYEINJ.js → chunk-5M45NHQ2.js} +2 -2
  7. package/dist/{chunk-W5FTCTGY.js → chunk-5VKT34HE.js} +2 -2
  8. package/dist/{chunk-W5RC44R6.js → chunk-6IXRISXA.js} +8 -8
  9. package/dist/{chunk-FQS7A5M4.js → chunk-6SIX7P6O.js} +2 -2
  10. package/dist/{chunk-REQIAJTV.js → chunk-6XDKVVYS.js} +75 -70
  11. package/dist/{chunk-DPRJYQ5U.js → chunk-AKUTOOSV.js} +25 -25
  12. package/dist/{chunk-MGKS2NG2.js → chunk-B76OP3OE.js} +3 -3
  13. package/dist/{chunk-WPCYFH6X.js → chunk-DMI2BXHA.js} +4 -4
  14. package/dist/{chunk-KKEBXFB3.js → chunk-EF7KGWF6.js} +2 -2
  15. package/dist/{chunk-Z753S3X7.js → chunk-EIJFYENT.js} +22 -15
  16. package/dist/{chunk-MR7ZEGOF.js → chunk-ERKPMNC7.js} +5 -2
  17. package/dist/{chunk-ZLCPNTRT.js → chunk-ERTTKKCE.js} +6 -2
  18. package/dist/{chunk-73EV6QYX.js → chunk-FGYOSQUR.js} +4 -4
  19. package/dist/{chunk-4Z2ARCY3.js → chunk-J27BLIPY.js} +2 -2
  20. package/dist/{chunk-EU3WWTFH.js → chunk-JAX5OEMM.js} +5 -1
  21. package/dist/{chunk-QL2G5UWE.js → chunk-KDJZGHSZ.js} +23 -13
  22. package/dist/{chunk-JL657X72.js → chunk-LG57PZYL.js} +16 -16
  23. package/dist/{chunk-RZC6DAT2.js → chunk-OUMHR7LR.js} +2 -2
  24. package/dist/{chunk-BJDQPILB.js → chunk-PP3WNUA6.js} +3 -3
  25. package/dist/{chunk-2EYTYXWN.js → chunk-S5HDT5RQ.js} +2 -2
  26. package/dist/{chunk-K6VVTE6C.js → chunk-SGGFVTMP.js} +30 -20
  27. package/dist/{chunk-YZSBJUGC.js → chunk-SPA7PQPJ.js} +3 -1
  28. package/dist/{chunk-KLK5N4OX.js → chunk-TFQSCHVU.js} +3 -3
  29. package/dist/{chunk-7HIJP4PC.js → chunk-UADZ2LZJ.js} +2 -2
  30. package/dist/chunk-UBF62JJI.js +7 -0
  31. package/dist/{chunk-AI27N57J.js → chunk-UUMJ5PAW.js} +4 -8
  32. package/dist/{chunk-KCED2X4H.js → chunk-WDJOSRIB.js} +12 -5
  33. package/dist/cli/dev.js +2 -2
  34. package/dist/cli/index.js +2 -2
  35. package/dist/{client-Q7BHKOCD.js → client-XT4VHS7E.js} +5 -5
  36. package/dist/{client-pure-ONSVWEG5.js → client-pure-USVHN4WG.js} +2 -2
  37. package/dist/{compactor-43P3LGDU.js → compactor-JMO7FHYA.js} +11 -11
  38. package/dist/{dynamic-context-AMPVZXUU.js → dynamic-context-UJE6F7XT.js} +7 -7
  39. package/dist/{events-RCC32JOA.js → events-BGVLDGLK.js} +6 -6
  40. package/dist/{folding-ZNUXPQUD.js → folding-AJMZBHNR.js} +4 -4
  41. package/dist/{http-client-WGNBG7PC.js → http-client-A7A4XWNK.js} +3 -3
  42. package/dist/{manager-HFGJLW7Q.js → manager-GGIIENDX.js} +4 -4
  43. package/dist/{model-overrides-DQDT5Y7R.js → model-overrides-BLEFI7FQ.js} +3 -3
  44. package/dist/{orchestrator-QDXKDLOW.js → orchestrator-Y2MBWVOB.js} +19 -19
  45. package/dist/package.json +1 -1
  46. package/dist/{path-security-SUFEIBTC.js → path-security-JCDBLFIE.js} +7 -7
  47. package/dist/{platform-2RLL7RAE.js → platform-GZ2WIDS5.js} +3 -3
  48. package/dist/{processor-YWNLWAZW.js → processor-3IURFW2N.js} +19 -19
  49. package/dist/{protocol-BXgdUKgZ.d.ts → protocol-rfiBDoXm.d.ts} +1 -1
  50. package/dist/provider/index.d.ts +4 -4
  51. package/dist/{provider-FX3QCGAF.js → provider-ZXYITGFU.js} +69 -69
  52. package/dist/{provider-manager-GLG6BA32.js → provider-manager-QH5IIGHB.js} +6 -6
  53. package/dist/{pwa-SEWCVKZX.js → pwa-XPHP3PY2.js} +35 -35
  54. package/dist/{registry-GBNLVWYQ.js → registry-M2QVGRNK.js} +3 -3
  55. package/dist/{serve-FE4UAXGE.js → serve-OYLEY3HD.js} +27 -27
  56. package/dist/server/index.d.ts +3 -3
  57. package/dist/server/index.js +26 -26
  58. package/dist/server-L6YS6A6J.js +47 -0
  59. package/dist/{session-overrides-MBGBX6TM.js → session-overrides-HA5IQYLI.js} +5 -5
  60. package/dist/{sessions-FEIFYGH7.js → sessions-ZV2WRC6K.js} +4 -4
  61. package/dist/{settings-FT7HF7ZB.js → settings-TGCITCVA.js} +2 -2
  62. package/dist/shared/index.d.ts +3 -3
  63. package/dist/skill-defaults/browser/SKILL.md +36 -22
  64. package/dist/{tools-M5DKWCJJ.js → tools-BG44DIYU.js} +17 -17
  65. package/dist/{types-DBftgbfl.d.ts → types-o-YQ3Bfq.d.ts} +1 -1
  66. package/dist/{types-7idXD8Bq.d.ts → types-o0v5xVxu.d.ts} +1 -1
  67. package/dist/{update-KMPQUPQT.js → update-SOCIS7KO.js} +2 -2
  68. package/dist/web/assets/index-B7wjVPjL.css +40 -0
  69. package/dist/web/assets/index-BHIT-lGU.js +323 -0
  70. package/dist/web/index.html +2 -2
  71. package/dist/web/sw.js +1 -1
  72. package/dist/web/workbox-9c191d2f.js +1 -0
  73. package/package.json +1 -1
  74. package/dist/chunk-SQYMFWY7.js +0 -7
  75. package/dist/chunk-XY3LESVZ.js +0 -1000
  76. package/dist/server-QGQGSHW6.js +0 -47
  77. package/dist/web/assets/index-B0CNNl1k.css +0 -32
  78. package/dist/web/assets/index-FWViKQkM.js +0 -324
  79. package/dist/web/workbox-8c29f6e4.js +0 -1
@@ -2,39 +2,39 @@ import {
2
2
  buildRunChatTurnParams,
3
3
  finalizeTurnCompletion,
4
4
  generateSessionNameForSession
5
- } from "./chunk-W5RC44R6.js";
6
- import "./chunk-DPRJYQ5U.js";
7
- import "./chunk-MGKS2NG2.js";
8
- import "./chunk-5ZJYEINJ.js";
9
- import "./chunk-4Z2ARCY3.js";
5
+ } from "./chunk-6IXRISXA.js";
6
+ import "./chunk-AKUTOOSV.js";
7
+ import "./chunk-B76OP3OE.js";
8
+ import "./chunk-5M45NHQ2.js";
9
+ import "./chunk-J27BLIPY.js";
10
10
  import "./chunk-ZASSAZ73.js";
11
- import "./chunk-KLK5N4OX.js";
11
+ import "./chunk-TFQSCHVU.js";
12
12
  import "./chunk-I72ACQ6R.js";
13
13
  import "./chunk-JE7LW7Y6.js";
14
14
  import "./chunk-VKWVPQJ5.js";
15
15
  import "./chunk-D3SXT3BL.js";
16
16
  import "./chunk-J7GAZGZT.js";
17
- import "./chunk-7HIJP4PC.js";
18
- import "./chunk-ZLCPNTRT.js";
17
+ import "./chunk-UADZ2LZJ.js";
18
+ import "./chunk-ERTTKKCE.js";
19
19
  import {
20
20
  getEventStore
21
- } from "./chunk-WPCYFH6X.js";
21
+ } from "./chunk-DMI2BXHA.js";
22
22
  import {
23
23
  createChatMessageMessage,
24
24
  createSessionRunningMessage
25
25
  } from "./chunk-27SDWNKL.js";
26
- import "./chunk-EU3WWTFH.js";
27
- import "./chunk-KKEBXFB3.js";
28
- import "./chunk-W5FTCTGY.js";
26
+ import "./chunk-JAX5OEMM.js";
27
+ import "./chunk-EF7KGWF6.js";
28
+ import "./chunk-5VKT34HE.js";
29
29
  import "./chunk-WWFH5GAR.js";
30
- import "./chunk-2EYTYXWN.js";
31
- import "./chunk-RZC6DAT2.js";
32
- import "./chunk-FQS7A5M4.js";
30
+ import "./chunk-S5HDT5RQ.js";
31
+ import "./chunk-OUMHR7LR.js";
32
+ import "./chunk-6SIX7P6O.js";
33
33
  import "./chunk-J2GP3J3X.js";
34
34
  import "./chunk-V4IE7HJY.js";
35
35
  import "./chunk-YHEQTVFV.js";
36
- import "./chunk-KCED2X4H.js";
37
- import "./chunk-YZSBJUGC.js";
36
+ import "./chunk-WDJOSRIB.js";
37
+ import "./chunk-SPA7PQPJ.js";
38
38
  import "./chunk-GLF65XDS.js";
39
39
  import {
40
40
  logger
@@ -186,7 +186,7 @@ var QueueProcessor = class {
186
186
  backend: provider?.backend ?? llmClient.getBackend(),
187
187
  model: llmClient.getModel()
188
188
  };
189
- const { runChatTurn } = await import("./orchestrator-QDXKDLOW.js");
189
+ const { runChatTurn } = await import("./orchestrator-Y2MBWVOB.js");
190
190
  const runChatTurnParams = buildRunChatTurnParams({
191
191
  sessionManager,
192
192
  sessionId,
@@ -234,4 +234,4 @@ var QueueProcessor = class {
234
234
  export {
235
235
  QueueProcessor
236
236
  };
237
- //# sourceMappingURL=processor-YWNLWAZW.js.map
237
+ //# sourceMappingURL=processor-3IURFW2N.js.map
@@ -1,4 +1,4 @@
1
- import { A as Attachment, K as ToolMode, O as ToolResult, M as Message, T as Todo, b as ContextState, d as Criterion, h as Diagnostic, q as MetadataEntry, y as SessionMode, z as SessionPhase, t as Project, B as SessionSummary, w as Session, W as WorkflowExecution } from './types-7idXD8Bq.js';
1
+ import { A as Attachment, K as ToolMode, O as ToolResult, a as Message, J as Todo, c as ContextState, e as Criterion, i as Diagnostic, r as MetadataEntry, y as SessionMode, z as SessionPhase, t as Project, B as SessionSummary, w as Session, W as WorkflowExecution } from './types-o0v5xVxu.js';
2
2
 
3
3
  type ClientMessageType = 'session.load' | 'context.compact' | 'context.checkDynamic' | 'context.applyDynamic' | 'context.applyDynamic.preview' | 'runner.launch' | 'workflow.exit' | 'path.confirm' | 'ask.answer';
4
4
  interface ClientMessage<T = unknown> {
@@ -1,7 +1,7 @@
1
- import { r as ModelConfig } from '../types-7idXD8Bq.js';
2
- export { J as ToolCall } from '../types-7idXD8Bq.js';
3
- import { L as LLMCompletionRequest, a as LLMCompletionResponse, b as LLMStreamEvent } from '../types-DBftgbfl.js';
4
- export { c as LLMMessage, d as LLMToolDefinition } from '../types-DBftgbfl.js';
1
+ import { M as ModelConfig } from '../types-o0v5xVxu.js';
2
+ export { T as ToolCall } from '../types-o0v5xVxu.js';
3
+ import { L as LLMCompletionRequest, a as LLMCompletionResponse, b as LLMStreamEvent } from '../types-o-YQ3Bfq.js';
4
+ export { c as LLMMessage, d as LLMToolDefinition } from '../types-o-YQ3Bfq.js';
5
5
 
6
6
  type ProviderAuthState = 'disconnected' | 'pending' | 'connected' | 'expired' | 'error';
7
7
  interface ProviderAuthStatus {
@@ -1,25 +1,25 @@
1
1
  import {
2
- Ct,
3
- Gt,
4
- Ht,
5
- Jt,
6
- Nt,
7
- R,
8
- Zt,
9
- be
10
- } from "./chunk-XY3LESVZ.js";
2
+ cancel,
3
+ isCancel,
4
+ log,
5
+ outro,
6
+ password,
7
+ select,
8
+ spinner,
9
+ text
10
+ } from "./chunk-4H427UBV.js";
11
11
  import {
12
12
  detectModel,
13
13
  fetchAvailableModelsFromBackend
14
- } from "./chunk-AI27N57J.js";
14
+ } from "./chunk-UUMJ5PAW.js";
15
15
  import "./chunk-J2GP3J3X.js";
16
- import "./chunk-BJDQPILB.js";
16
+ import "./chunk-PP3WNUA6.js";
17
17
  import "./chunk-V4IE7HJY.js";
18
18
  import "./chunk-YHEQTVFV.js";
19
19
  import "./chunk-HNCM3D7Y.js";
20
- import "./chunk-KCED2X4H.js";
21
- import "./chunk-MR7ZEGOF.js";
22
- import "./chunk-YZSBJUGC.js";
20
+ import "./chunk-WDJOSRIB.js";
21
+ import "./chunk-ERKPMNC7.js";
22
+ import "./chunk-SPA7PQPJ.js";
23
23
  import "./chunk-GLF65XDS.js";
24
24
  import "./chunk-K44MW7JJ.js";
25
25
  import {
@@ -54,7 +54,7 @@ Provider Management Commands:
54
54
  }
55
55
  async function runProviderAdd(mode) {
56
56
  const config = await loadGlobalConfig(mode);
57
- const name = await Zt({
57
+ const name = await text({
58
58
  message: "Provider name:",
59
59
  placeholder: "My Local vLLM",
60
60
  validate: (value) => {
@@ -62,11 +62,11 @@ async function runProviderAdd(mode) {
62
62
  if (config.providers.some((p) => p.name === value)) return "Provider with this name already exists";
63
63
  }
64
64
  });
65
- if (Ct(name)) {
66
- Nt("Cancelled");
65
+ if (isCancel(name)) {
66
+ cancel("Cancelled");
67
67
  return;
68
68
  }
69
- R.info(`URL examples:
69
+ log.info(`URL examples:
70
70
  vLLM/SGLang: http://localhost:8000
71
71
  Ollama: http://localhost:11434
72
72
  llama.cpp: http://localhost:8080
@@ -74,7 +74,7 @@ async function runProviderAdd(mode) {
74
74
  Anthropic: https://api.anthropic.com
75
75
 
76
76
  (Don't include /v1 - it's added automatically)`);
77
- const url = await Zt({
77
+ const url = await text({
78
78
  message: "API URL:",
79
79
  placeholder: "http://localhost:8000",
80
80
  initialValue: "http://localhost:8000",
@@ -83,20 +83,20 @@ async function runProviderAdd(mode) {
83
83
  if (!value.startsWith("http")) return "Must start with http:// or https://";
84
84
  }
85
85
  });
86
- if (Ct(url)) {
87
- Nt("Cancelled");
86
+ if (isCancel(url)) {
87
+ cancel("Cancelled");
88
88
  return;
89
89
  }
90
- const backend = await Jt({
90
+ const backend = await select({
91
91
  message: "Backend type:",
92
92
  options: BACKEND_OPTIONS
93
93
  });
94
- if (Ct(backend)) {
95
- Nt("Cancelled");
94
+ if (isCancel(backend)) {
95
+ cancel("Cancelled");
96
96
  return;
97
97
  }
98
98
  let selectedModel;
99
- const s = be();
99
+ const s = spinner();
100
100
  s.start(`Fetching available models from ${url}...`);
101
101
  let availableModels = [];
102
102
  try {
@@ -106,7 +106,7 @@ async function runProviderAdd(mode) {
106
106
  s.stop("\u26A0 Could not fetch models, will use auto-detect");
107
107
  }
108
108
  if (availableModels.length > 0) {
109
- const modelChoice = await Jt({
109
+ const modelChoice = await select({
110
110
  message: "Select model:",
111
111
  options: availableModels.map((m) => ({
112
112
  value: m,
@@ -114,24 +114,24 @@ async function runProviderAdd(mode) {
114
114
  hint: m
115
115
  }))
116
116
  });
117
- if (Ct(modelChoice)) {
118
- Nt("Cancelled");
117
+ if (isCancel(modelChoice)) {
118
+ cancel("Cancelled");
119
119
  return;
120
120
  }
121
121
  selectedModel = modelChoice;
122
122
  } else {
123
- const model = await Zt({
123
+ const model = await text({
124
124
  message: 'Model name (or "auto" to detect):',
125
125
  placeholder: "auto",
126
126
  initialValue: "auto"
127
127
  });
128
- if (Ct(model)) {
129
- Nt("Cancelled");
128
+ if (isCancel(model)) {
129
+ cancel("Cancelled");
130
130
  return;
131
131
  }
132
132
  selectedModel = model;
133
133
  if (selectedModel === "auto") {
134
- const detectSpinner = be();
134
+ const detectSpinner = spinner();
135
135
  detectSpinner.start("Detecting model...");
136
136
  let detectedModel;
137
137
  try {
@@ -149,7 +149,7 @@ async function runProviderAdd(mode) {
149
149
  }
150
150
  const localBackends = /* @__PURE__ */ new Set(["vllm", "sglang", "ollama", "llamacpp", "opencode-go"]);
151
151
  const defaultIsLocal = localBackends.has(backend);
152
- const isLocalChoice = await Jt({
152
+ const isLocalChoice = await select({
153
153
  message: "Is this a local provider?",
154
154
  options: [
155
155
  { value: "yes", label: "Yes" },
@@ -157,45 +157,45 @@ async function runProviderAdd(mode) {
157
157
  ],
158
158
  initialValue: defaultIsLocal ? "yes" : "no"
159
159
  });
160
- if (Ct(isLocalChoice)) {
161
- Nt("Cancelled");
160
+ if (isCancel(isLocalChoice)) {
161
+ cancel("Cancelled");
162
162
  return;
163
163
  }
164
164
  const isLocal = isLocalChoice === "yes";
165
165
  let apiKey;
166
166
  if (backend === "openai" || backend === "anthropic") {
167
- const key = await Ht({
167
+ const key = await password({
168
168
  message: "API Key:"
169
169
  });
170
- if (Ct(key)) {
171
- Nt("Cancelled");
170
+ if (isCancel(key)) {
171
+ cancel("Cancelled");
172
172
  return;
173
173
  }
174
174
  apiKey = key || void 0;
175
175
  } else {
176
- const needsKey = await Jt({
176
+ const needsKey = await select({
177
177
  message: "Does this provider require an API key?",
178
178
  options: [
179
179
  { value: "no", label: "No" },
180
180
  { value: "yes", label: "Yes" }
181
181
  ]
182
182
  });
183
- if (Ct(needsKey)) {
184
- Nt("Cancelled");
183
+ if (isCancel(needsKey)) {
184
+ cancel("Cancelled");
185
185
  return;
186
186
  }
187
187
  if (needsKey === "yes") {
188
- const key = await Ht({
188
+ const key = await password({
189
189
  message: "API Key:"
190
190
  });
191
- if (Ct(key)) {
192
- Nt("Cancelled");
191
+ if (isCancel(key)) {
192
+ cancel("Cancelled");
193
193
  return;
194
194
  }
195
195
  apiKey = key || void 0;
196
196
  }
197
197
  }
198
- const testSpinner = be();
198
+ const testSpinner = spinner();
199
199
  testSpinner.start(`Testing connection to ${url}...`);
200
200
  const finalBackend = backend;
201
201
  let finalDetectedModel = null;
@@ -206,32 +206,32 @@ async function runProviderAdd(mode) {
206
206
  testSpinner.stop(`\u2713 Connected to ${finalBackend}${finalDetectedModel !== "auto" ? ` (${finalDetectedModel})` : ""}`);
207
207
  } catch {
208
208
  testSpinner.stop("\u26A0 Could not connect to provider");
209
- const continueAnyway = await Jt({
209
+ const continueAnyway = await select({
210
210
  message: "Provider is not reachable. Save anyway?",
211
211
  options: [
212
212
  { value: "yes", label: "Yes, save anyway" },
213
213
  { value: "no", label: "No, cancel" }
214
214
  ]
215
215
  });
216
- if (Ct(continueAnyway) || continueAnyway === "no") {
217
- Nt("Cancelled");
216
+ if (isCancel(continueAnyway) || continueAnyway === "no") {
217
+ cancel("Cancelled");
218
218
  return;
219
219
  }
220
220
  }
221
221
  const makeActive = config.providers.length === 0 || await (async () => {
222
- const choice = await Jt({
222
+ const choice = await select({
223
223
  message: "Make this the active provider?",
224
224
  options: [
225
225
  { value: "yes", label: "Yes" },
226
226
  { value: "no", label: "No" }
227
227
  ]
228
228
  });
229
- if (Ct(choice)) return false;
229
+ if (isCancel(choice)) return false;
230
230
  return choice === "yes";
231
231
  })();
232
232
  const modelsWithContent = [];
233
233
  if (availableModels.length > 0) {
234
- const modelFetchSpinner = be();
234
+ const modelFetchSpinner = spinner();
235
235
  modelFetchSpinner.start("Fetching model metadata...");
236
236
  try {
237
237
  const urlWithV1 = url.includes("/v1") ? url : `${url}/v1`;
@@ -278,12 +278,12 @@ async function runProviderAdd(mode) {
278
278
  );
279
279
  }
280
280
  await saveGlobalConfig(mode, newConfig);
281
- Gt(`\u2713 Provider "${name}" added${makeActive ? " and activated" : ""}`);
281
+ outro(`\u2713 Provider "${name}" added${makeActive ? " and activated" : ""}`);
282
282
  }
283
283
  async function runProviderList(mode) {
284
284
  const config = await loadGlobalConfig(mode);
285
285
  if (config.providers.length === 0) {
286
- R.warn("No providers configured. Run `openfox provider add` to add one.");
286
+ log.warn("No providers configured. Run `openfox provider add` to add one.");
287
287
  return;
288
288
  }
289
289
  console.log("\nConfigured providers:\n");
@@ -302,15 +302,15 @@ async function runProviderList(mode) {
302
302
  async function runProviderUse(mode) {
303
303
  const config = await loadGlobalConfig(mode);
304
304
  if (config.providers.length === 0) {
305
- R.warn("No providers configured. Run `openfox provider add` to add one.");
305
+ log.warn("No providers configured. Run `openfox provider add` to add one.");
306
306
  return;
307
307
  }
308
308
  if (config.providers.length === 1) {
309
- R.info("Only one provider configured, already active.");
309
+ log.info("Only one provider configured, already active.");
310
310
  return;
311
311
  }
312
312
  const activeProvider = getActiveProvider(config);
313
- const choice = await Jt({
313
+ const choice = await select({
314
314
  message: "Select provider to activate:",
315
315
  options: config.providers.map((p) => ({
316
316
  value: p.id,
@@ -319,26 +319,26 @@ async function runProviderUse(mode) {
319
319
  })),
320
320
  initialValue: activeProvider?.id
321
321
  });
322
- if (Ct(choice)) {
323
- Nt("Cancelled");
322
+ if (isCancel(choice)) {
323
+ cancel("Cancelled");
324
324
  return;
325
325
  }
326
326
  if (choice === activeProvider?.id) {
327
- R.info("Already the active provider.");
327
+ log.info("Already the active provider.");
328
328
  return;
329
329
  }
330
330
  const newConfig = activateProvider(config, choice);
331
331
  await saveGlobalConfig(mode, newConfig);
332
332
  const activated = newConfig.providers.find((p) => p.id === choice);
333
- Gt(`\u2713 Now using "${activated?.name}"`);
333
+ outro(`\u2713 Now using "${activated?.name}"`);
334
334
  }
335
335
  async function runProviderRemove(mode) {
336
336
  const config = await loadGlobalConfig(mode);
337
337
  if (config.providers.length === 0) {
338
- R.warn("No providers configured.");
338
+ log.warn("No providers configured.");
339
339
  return;
340
340
  }
341
- const choice = await Jt({
341
+ const choice = await select({
342
342
  message: "Select provider to remove:",
343
343
  options: config.providers.map((p) => ({
344
344
  value: p.id,
@@ -346,27 +346,27 @@ async function runProviderRemove(mode) {
346
346
  hint: p.url
347
347
  }))
348
348
  });
349
- if (Ct(choice)) {
350
- Nt("Cancelled");
349
+ if (isCancel(choice)) {
350
+ cancel("Cancelled");
351
351
  return;
352
352
  }
353
353
  const providerToRemove = config.providers.find((p) => p.id === choice);
354
354
  if (providerToRemove?.isActive && config.providers.length > 1) {
355
- const confirm = await Jt({
355
+ const confirm = await select({
356
356
  message: `"${providerToRemove.name}" is the active provider. Remove it anyway?`,
357
357
  options: [
358
358
  { value: "yes", label: "Yes, remove and activate next provider" },
359
359
  { value: "no", label: "No, cancel" }
360
360
  ]
361
361
  });
362
- if (Ct(confirm) || confirm === "no") {
363
- Nt("Cancelled");
362
+ if (isCancel(confirm) || confirm === "no") {
363
+ cancel("Cancelled");
364
364
  return;
365
365
  }
366
366
  }
367
367
  const newConfig = removeProvider(config, choice);
368
368
  await saveGlobalConfig(mode, newConfig);
369
- Gt(`\u2713 Removed "${providerToRemove?.name}"`);
369
+ outro(`\u2713 Removed "${providerToRemove?.name}"`);
370
370
  }
371
371
  async function runProviderCommand(mode, subcommand) {
372
372
  switch (subcommand) {
@@ -398,4 +398,4 @@ export {
398
398
  runProviderRemove,
399
399
  runProviderUse
400
400
  };
401
- //# sourceMappingURL=provider-FX3QCGAF.js.map
401
+ //# sourceMappingURL=provider-ZXYITGFU.js.map
@@ -3,15 +3,15 @@ import {
3
3
  fetchAvailableModelsFromBackend,
4
4
  fetchModelsWithContext,
5
5
  parseDefaultModelSelection
6
- } from "./chunk-AI27N57J.js";
6
+ } from "./chunk-UUMJ5PAW.js";
7
7
  import "./chunk-J2GP3J3X.js";
8
- import "./chunk-BJDQPILB.js";
8
+ import "./chunk-PP3WNUA6.js";
9
9
  import "./chunk-V4IE7HJY.js";
10
10
  import "./chunk-YHEQTVFV.js";
11
11
  import "./chunk-HNCM3D7Y.js";
12
- import "./chunk-KCED2X4H.js";
13
- import "./chunk-MR7ZEGOF.js";
14
- import "./chunk-YZSBJUGC.js";
12
+ import "./chunk-WDJOSRIB.js";
13
+ import "./chunk-ERKPMNC7.js";
14
+ import "./chunk-SPA7PQPJ.js";
15
15
  import "./chunk-GLF65XDS.js";
16
16
  import "./chunk-K44MW7JJ.js";
17
17
  import "./chunk-5WRI5ZAA.js";
@@ -21,4 +21,4 @@ export {
21
21
  fetchModelsWithContext,
22
22
  parseDefaultModelSelection
23
23
  };
24
- //# sourceMappingURL=provider-manager-GLG6BA32.js.map
24
+ //# sourceMappingURL=provider-manager-QH5IIGHB.js.map