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.
- package/CHANGELOG.md +32 -0
- package/dist/CHANGELOG.md +32 -0
- package/dist/{ask-TOBEA6KD.js → ask-CJMU6EW7.js} +2 -2
- package/dist/{chat-handler-IBFSBSGV.js → chat-handler-CQIDZUR7.js} +20 -20
- package/dist/chunk-4H427UBV.js +1298 -0
- package/dist/{chunk-5ZJYEINJ.js → chunk-5M45NHQ2.js} +2 -2
- package/dist/{chunk-W5FTCTGY.js → chunk-5VKT34HE.js} +2 -2
- package/dist/{chunk-W5RC44R6.js → chunk-6IXRISXA.js} +8 -8
- package/dist/{chunk-FQS7A5M4.js → chunk-6SIX7P6O.js} +2 -2
- package/dist/{chunk-REQIAJTV.js → chunk-6XDKVVYS.js} +75 -70
- package/dist/{chunk-DPRJYQ5U.js → chunk-AKUTOOSV.js} +25 -25
- package/dist/{chunk-MGKS2NG2.js → chunk-B76OP3OE.js} +3 -3
- package/dist/{chunk-WPCYFH6X.js → chunk-DMI2BXHA.js} +4 -4
- package/dist/{chunk-KKEBXFB3.js → chunk-EF7KGWF6.js} +2 -2
- package/dist/{chunk-Z753S3X7.js → chunk-EIJFYENT.js} +22 -15
- package/dist/{chunk-MR7ZEGOF.js → chunk-ERKPMNC7.js} +5 -2
- package/dist/{chunk-ZLCPNTRT.js → chunk-ERTTKKCE.js} +6 -2
- package/dist/{chunk-73EV6QYX.js → chunk-FGYOSQUR.js} +4 -4
- package/dist/{chunk-4Z2ARCY3.js → chunk-J27BLIPY.js} +2 -2
- package/dist/{chunk-EU3WWTFH.js → chunk-JAX5OEMM.js} +5 -1
- package/dist/{chunk-QL2G5UWE.js → chunk-KDJZGHSZ.js} +23 -13
- package/dist/{chunk-JL657X72.js → chunk-LG57PZYL.js} +16 -16
- package/dist/{chunk-RZC6DAT2.js → chunk-OUMHR7LR.js} +2 -2
- package/dist/{chunk-BJDQPILB.js → chunk-PP3WNUA6.js} +3 -3
- package/dist/{chunk-2EYTYXWN.js → chunk-S5HDT5RQ.js} +2 -2
- package/dist/{chunk-K6VVTE6C.js → chunk-SGGFVTMP.js} +30 -20
- package/dist/{chunk-YZSBJUGC.js → chunk-SPA7PQPJ.js} +3 -1
- package/dist/{chunk-KLK5N4OX.js → chunk-TFQSCHVU.js} +3 -3
- package/dist/{chunk-7HIJP4PC.js → chunk-UADZ2LZJ.js} +2 -2
- package/dist/chunk-UBF62JJI.js +7 -0
- package/dist/{chunk-AI27N57J.js → chunk-UUMJ5PAW.js} +4 -8
- package/dist/{chunk-KCED2X4H.js → chunk-WDJOSRIB.js} +12 -5
- package/dist/cli/dev.js +2 -2
- package/dist/cli/index.js +2 -2
- package/dist/{client-Q7BHKOCD.js → client-XT4VHS7E.js} +5 -5
- package/dist/{client-pure-ONSVWEG5.js → client-pure-USVHN4WG.js} +2 -2
- package/dist/{compactor-43P3LGDU.js → compactor-JMO7FHYA.js} +11 -11
- package/dist/{dynamic-context-AMPVZXUU.js → dynamic-context-UJE6F7XT.js} +7 -7
- package/dist/{events-RCC32JOA.js → events-BGVLDGLK.js} +6 -6
- package/dist/{folding-ZNUXPQUD.js → folding-AJMZBHNR.js} +4 -4
- package/dist/{http-client-WGNBG7PC.js → http-client-A7A4XWNK.js} +3 -3
- package/dist/{manager-HFGJLW7Q.js → manager-GGIIENDX.js} +4 -4
- package/dist/{model-overrides-DQDT5Y7R.js → model-overrides-BLEFI7FQ.js} +3 -3
- package/dist/{orchestrator-QDXKDLOW.js → orchestrator-Y2MBWVOB.js} +19 -19
- package/dist/package.json +1 -1
- package/dist/{path-security-SUFEIBTC.js → path-security-JCDBLFIE.js} +7 -7
- package/dist/{platform-2RLL7RAE.js → platform-GZ2WIDS5.js} +3 -3
- package/dist/{processor-YWNLWAZW.js → processor-3IURFW2N.js} +19 -19
- package/dist/{protocol-BXgdUKgZ.d.ts → protocol-rfiBDoXm.d.ts} +1 -1
- package/dist/provider/index.d.ts +4 -4
- package/dist/{provider-FX3QCGAF.js → provider-ZXYITGFU.js} +69 -69
- package/dist/{provider-manager-GLG6BA32.js → provider-manager-QH5IIGHB.js} +6 -6
- package/dist/{pwa-SEWCVKZX.js → pwa-XPHP3PY2.js} +35 -35
- package/dist/{registry-GBNLVWYQ.js → registry-M2QVGRNK.js} +3 -3
- package/dist/{serve-FE4UAXGE.js → serve-OYLEY3HD.js} +27 -27
- package/dist/server/index.d.ts +3 -3
- package/dist/server/index.js +26 -26
- package/dist/server-L6YS6A6J.js +47 -0
- package/dist/{session-overrides-MBGBX6TM.js → session-overrides-HA5IQYLI.js} +5 -5
- package/dist/{sessions-FEIFYGH7.js → sessions-ZV2WRC6K.js} +4 -4
- package/dist/{settings-FT7HF7ZB.js → settings-TGCITCVA.js} +2 -2
- package/dist/shared/index.d.ts +3 -3
- package/dist/skill-defaults/browser/SKILL.md +36 -22
- package/dist/{tools-M5DKWCJJ.js → tools-BG44DIYU.js} +17 -17
- package/dist/{types-DBftgbfl.d.ts → types-o-YQ3Bfq.d.ts} +1 -1
- package/dist/{types-7idXD8Bq.d.ts → types-o0v5xVxu.d.ts} +1 -1
- package/dist/{update-KMPQUPQT.js → update-SOCIS7KO.js} +2 -2
- package/dist/web/assets/index-B7wjVPjL.css +40 -0
- package/dist/web/assets/index-BHIT-lGU.js +323 -0
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/dist/web/workbox-9c191d2f.js +1 -0
- package/package.json +1 -1
- package/dist/chunk-SQYMFWY7.js +0 -7
- package/dist/chunk-XY3LESVZ.js +0 -1000
- package/dist/server-QGQGSHW6.js +0 -47
- package/dist/web/assets/index-B0CNNl1k.css +0 -32
- package/dist/web/assets/index-FWViKQkM.js +0 -324
- 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-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-UADZ2LZJ.js";
|
|
18
|
+
import "./chunk-ERTTKKCE.js";
|
|
19
19
|
import {
|
|
20
20
|
getEventStore
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-DMI2BXHA.js";
|
|
22
22
|
import {
|
|
23
23
|
createChatMessageMessage,
|
|
24
24
|
createSessionRunningMessage
|
|
25
25
|
} from "./chunk-27SDWNKL.js";
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-JAX5OEMM.js";
|
|
27
|
+
import "./chunk-EF7KGWF6.js";
|
|
28
|
+
import "./chunk-5VKT34HE.js";
|
|
29
29
|
import "./chunk-WWFH5GAR.js";
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
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-
|
|
37
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
237
|
+
//# sourceMappingURL=processor-3IURFW2N.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as Attachment, K as ToolMode, O as ToolResult,
|
|
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> {
|
package/dist/provider/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
3
|
-
import { L as LLMCompletionRequest, a as LLMCompletionResponse, b as LLMStreamEvent } from '../types-
|
|
4
|
-
export { c as LLMMessage, d as LLMToolDefinition } from '../types-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
} from "./chunk-
|
|
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-
|
|
14
|
+
} from "./chunk-UUMJ5PAW.js";
|
|
15
15
|
import "./chunk-J2GP3J3X.js";
|
|
16
|
-
import "./chunk-
|
|
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-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
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
|
|
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 (
|
|
66
|
-
|
|
65
|
+
if (isCancel(name)) {
|
|
66
|
+
cancel("Cancelled");
|
|
67
67
|
return;
|
|
68
68
|
}
|
|
69
|
-
|
|
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
|
|
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 (
|
|
87
|
-
|
|
86
|
+
if (isCancel(url)) {
|
|
87
|
+
cancel("Cancelled");
|
|
88
88
|
return;
|
|
89
89
|
}
|
|
90
|
-
const backend = await
|
|
90
|
+
const backend = await select({
|
|
91
91
|
message: "Backend type:",
|
|
92
92
|
options: BACKEND_OPTIONS
|
|
93
93
|
});
|
|
94
|
-
if (
|
|
95
|
-
|
|
94
|
+
if (isCancel(backend)) {
|
|
95
|
+
cancel("Cancelled");
|
|
96
96
|
return;
|
|
97
97
|
}
|
|
98
98
|
let selectedModel;
|
|
99
|
-
const s =
|
|
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
|
|
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 (
|
|
118
|
-
|
|
117
|
+
if (isCancel(modelChoice)) {
|
|
118
|
+
cancel("Cancelled");
|
|
119
119
|
return;
|
|
120
120
|
}
|
|
121
121
|
selectedModel = modelChoice;
|
|
122
122
|
} else {
|
|
123
|
-
const model = await
|
|
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 (
|
|
129
|
-
|
|
128
|
+
if (isCancel(model)) {
|
|
129
|
+
cancel("Cancelled");
|
|
130
130
|
return;
|
|
131
131
|
}
|
|
132
132
|
selectedModel = model;
|
|
133
133
|
if (selectedModel === "auto") {
|
|
134
|
-
const detectSpinner =
|
|
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
|
|
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 (
|
|
161
|
-
|
|
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
|
|
167
|
+
const key = await password({
|
|
168
168
|
message: "API Key:"
|
|
169
169
|
});
|
|
170
|
-
if (
|
|
171
|
-
|
|
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
|
|
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 (
|
|
184
|
-
|
|
183
|
+
if (isCancel(needsKey)) {
|
|
184
|
+
cancel("Cancelled");
|
|
185
185
|
return;
|
|
186
186
|
}
|
|
187
187
|
if (needsKey === "yes") {
|
|
188
|
-
const key = await
|
|
188
|
+
const key = await password({
|
|
189
189
|
message: "API Key:"
|
|
190
190
|
});
|
|
191
|
-
if (
|
|
192
|
-
|
|
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 =
|
|
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
|
|
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 (
|
|
217
|
-
|
|
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
|
|
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 (
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
309
|
+
log.info("Only one provider configured, already active.");
|
|
310
310
|
return;
|
|
311
311
|
}
|
|
312
312
|
const activeProvider = getActiveProvider(config);
|
|
313
|
-
const choice = await
|
|
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 (
|
|
323
|
-
|
|
322
|
+
if (isCancel(choice)) {
|
|
323
|
+
cancel("Cancelled");
|
|
324
324
|
return;
|
|
325
325
|
}
|
|
326
326
|
if (choice === activeProvider?.id) {
|
|
327
|
-
|
|
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
|
-
|
|
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
|
-
|
|
338
|
+
log.warn("No providers configured.");
|
|
339
339
|
return;
|
|
340
340
|
}
|
|
341
|
-
const choice = await
|
|
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 (
|
|
350
|
-
|
|
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
|
|
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 (
|
|
363
|
-
|
|
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
|
-
|
|
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-
|
|
401
|
+
//# sourceMappingURL=provider-ZXYITGFU.js.map
|
|
@@ -3,15 +3,15 @@ import {
|
|
|
3
3
|
fetchAvailableModelsFromBackend,
|
|
4
4
|
fetchModelsWithContext,
|
|
5
5
|
parseDefaultModelSelection
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-UUMJ5PAW.js";
|
|
7
7
|
import "./chunk-J2GP3J3X.js";
|
|
8
|
-
import "./chunk-
|
|
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-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
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-
|
|
24
|
+
//# sourceMappingURL=provider-manager-QH5IIGHB.js.map
|