kiokuko-dsh 0.2.3 → 0.2.4
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/dist/client.cjs +223 -157
- package/dist/dsh/models/profiles.d.ts +2 -0
- package/dist/dsh/models/profiles.d.ts.map +1 -1
- package/dist/dsh/models/profiles.js +9 -5
- package/dist/dsh/models/profiles.js.map +1 -1
- package/dist/dsh/models/service.d.ts +24 -1
- package/dist/dsh/models/service.d.ts.map +1 -1
- package/dist/dsh/models/service.js +85 -42
- package/dist/dsh/models/service.js.map +1 -1
- package/dist/locale/en.json +1 -1
- package/dist/locale/ja.json +1 -1
- package/dist/locale/ko.json +1 -1
- package/dist/locale/zh-CN.json +1 -1
- package/dist/models-client.cjs +223 -157
- package/dist/models-client.d.ts.map +1 -1
- package/dist/models-client.js +261 -166
- package/dist/models-client.js.map +1 -1
- package/docs/kiokuko-models.md +25 -13
- package/package.json +1 -1
package/dist/client.cjs
CHANGED
|
@@ -66,6 +66,7 @@ window.__ModuleLoader__.load({
|
|
|
66
66
|
ollama: ["Ollama", "http://localhost:11434/v1", "chat-completions"],
|
|
67
67
|
custom: ["Custom connection", "http://localhost:8080/v1", "chat-completions"]
|
|
68
68
|
};
|
|
69
|
+
var OAUTH_KINDS = ["codex", "claude", "xai", "openai", "openrouter", "nous"];
|
|
69
70
|
async function modelsApi(body, query = "") {
|
|
70
71
|
const response = await fetch("/api/kiokuko.models" + query, {
|
|
71
72
|
...body ? {
|
|
@@ -90,6 +91,7 @@ window.__ModuleLoader__.load({
|
|
|
90
91
|
reasoning: false,
|
|
91
92
|
image: false
|
|
92
93
|
});
|
|
94
|
+
const [advanced, setAdvanced] = useState(false), [manualOpen, setManualOpen] = useState(false);
|
|
93
95
|
const operation = useRef(void 0), mounted = useRef(true), working = useRef(false);
|
|
94
96
|
const sessionId = props.sessionId;
|
|
95
97
|
const load = async () => {
|
|
@@ -131,12 +133,15 @@ window.__ModuleLoader__.load({
|
|
|
131
133
|
setError("");
|
|
132
134
|
setModels([]);
|
|
133
135
|
try {
|
|
134
|
-
|
|
136
|
+
const list = await modelsApi(void 0, "?op=models&id=" + encodeURIComponent(c.id));
|
|
137
|
+
setModels(list);
|
|
138
|
+
return list;
|
|
135
139
|
} catch (e) {
|
|
136
140
|
setError(messageOf(e));
|
|
141
|
+
return [];
|
|
137
142
|
}
|
|
138
143
|
};
|
|
139
|
-
const
|
|
144
|
+
const persist = async () => {
|
|
140
145
|
await modelsApi({
|
|
141
146
|
op: "save",
|
|
142
147
|
connection: {
|
|
@@ -148,11 +153,33 @@ window.__ModuleLoader__.load({
|
|
|
148
153
|
serviceTier: connection.serviceTier,
|
|
149
154
|
models: connection.models
|
|
150
155
|
},
|
|
151
|
-
revision:
|
|
156
|
+
revision: (await load()).revision
|
|
152
157
|
});
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
158
|
+
};
|
|
159
|
+
const reopen = async () => {
|
|
160
|
+
const saved = await load();
|
|
161
|
+
return choose(saved.connections.find((c) => c.id === connection.id) ?? connection);
|
|
162
|
+
};
|
|
163
|
+
const connect = async () => {
|
|
164
|
+
const draft = { ...connection };
|
|
165
|
+
await persist();
|
|
166
|
+
const typed = key.trim();
|
|
167
|
+
if (typed) {
|
|
168
|
+
await modelsApi({ op: "key", id: draft.id, key: typed });
|
|
169
|
+
setKey("");
|
|
170
|
+
}
|
|
171
|
+
let failure = "";
|
|
172
|
+
try {
|
|
173
|
+
await modelsApi({ op: "refresh", id: draft.id });
|
|
174
|
+
} catch (e) {
|
|
175
|
+
failure = messageOf(e);
|
|
176
|
+
}
|
|
177
|
+
const list = await reopen();
|
|
178
|
+
if (failure) {
|
|
179
|
+
setNotice(typed ? "Connection and key saved" : "Connection saved");
|
|
180
|
+
setError(failure + " Register a model manually if this endpoint stays unusable.");
|
|
181
|
+
} else
|
|
182
|
+
setNotice(list.length ? "Connected \xB7 " + list.length + " model(s)" : "Connected; no models discovered yet");
|
|
156
183
|
};
|
|
157
184
|
const newConnection = (kind) => {
|
|
158
185
|
const spec = MODEL_CONNECTION_DEFAULTS[kind];
|
|
@@ -168,10 +195,11 @@ window.__ModuleLoader__.load({
|
|
|
168
195
|
setModels([]);
|
|
169
196
|
setKey("");
|
|
170
197
|
setError("");
|
|
198
|
+
setNotice("");
|
|
171
199
|
};
|
|
172
200
|
const update = (field, value) => setConnection({ ...connection, [field]: value });
|
|
173
201
|
const startLogin = async () => {
|
|
174
|
-
await
|
|
202
|
+
await persist();
|
|
175
203
|
const result = await modelsApi({ op: "login", id: connection.id });
|
|
176
204
|
operation.current = result.operationId;
|
|
177
205
|
setAuth({ id: result.operationId, status: "pending", events: [] });
|
|
@@ -187,10 +215,9 @@ window.__ModuleLoader__.load({
|
|
|
187
215
|
setAuth(next);
|
|
188
216
|
if (next.status !== "pending") {
|
|
189
217
|
operation.current = void 0;
|
|
190
|
-
void
|
|
191
|
-
if (next.status
|
|
192
|
-
|
|
193
|
-
setError(next.error ?? "Authentication cancelled");
|
|
218
|
+
void reopen().then(() => {
|
|
219
|
+
if (next.status !== "success")
|
|
220
|
+
setError(next.error ?? "Authentication cancelled");
|
|
194
221
|
}).catch((e) => setError(messageOf(e)));
|
|
195
222
|
}
|
|
196
223
|
}, (e) => {
|
|
@@ -203,7 +230,7 @@ window.__ModuleLoader__.load({
|
|
|
203
230
|
clearInterval(timer);
|
|
204
231
|
};
|
|
205
232
|
}, [auth?.id, auth?.status]);
|
|
206
|
-
const input = (label, value, onChange, type = "text") => jsx("label", {
|
|
233
|
+
const input = (label, value, onChange, type = "text", submit) => jsx("label", {
|
|
207
234
|
children: jsxs(Fragment, {
|
|
208
235
|
children: [
|
|
209
236
|
jsx("span", { children: label }),
|
|
@@ -213,6 +240,14 @@ window.__ModuleLoader__.load({
|
|
|
213
240
|
"aria-label": label,
|
|
214
241
|
disabled: busy || label === "Base URL" && ["codex", "opencode", "opencode-go"].includes(connection?.kind),
|
|
215
242
|
onChange: (e) => onChange(e.target.value),
|
|
243
|
+
...submit ? {
|
|
244
|
+
onKeyDown: (e) => {
|
|
245
|
+
if (e.key !== "Enter")
|
|
246
|
+
return;
|
|
247
|
+
e.preventDefault();
|
|
248
|
+
submit();
|
|
249
|
+
}
|
|
250
|
+
} : {},
|
|
216
251
|
autoComplete: type === "password" ? "new-password" : "off"
|
|
217
252
|
})
|
|
218
253
|
]
|
|
@@ -233,9 +268,9 @@ window.__ModuleLoader__.load({
|
|
|
233
268
|
jsx("p", {
|
|
234
269
|
children: "Connect directly for chat, Enno and Deep. Credentials are shared with dsh-cli. Signing out also signs dsh-cli out."
|
|
235
270
|
}),
|
|
236
|
-
...error ? [jsx("p", { role: "alert", children: error })] : [],
|
|
237
|
-
...notice ? [jsx("p", { role: "status", children: notice })] : [],
|
|
238
|
-
...busy ? [jsx("p", { role: "status", children: "Working\u2026" })] : [],
|
|
271
|
+
...error ? [jsx("p", { role: "alert", children: error }, "error")] : [],
|
|
272
|
+
...notice ? [jsx("p", { role: "status", children: notice }, "notice")] : [],
|
|
273
|
+
...busy ? [jsx("p", { role: "status", children: "Working\u2026" }, "busy")] : [],
|
|
239
274
|
button("Reload", () => void run(load)),
|
|
240
275
|
jsx("label", {
|
|
241
276
|
children: jsxs(Fragment, {
|
|
@@ -262,99 +297,35 @@ window.__ModuleLoader__.load({
|
|
|
262
297
|
...connection ? [
|
|
263
298
|
jsxs("div", {
|
|
264
299
|
className: "kiokuko-models-editor",
|
|
300
|
+
key: "editor",
|
|
265
301
|
children: [
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
"
|
|
272
|
-
jsx("select", {
|
|
273
|
-
"aria-label": "Protocol",
|
|
274
|
-
value: connection.protocol,
|
|
275
|
-
disabled: busy || [
|
|
276
|
-
"codex",
|
|
277
|
-
"infron",
|
|
278
|
-
"opencode",
|
|
279
|
-
"opencode-go"
|
|
280
|
-
].includes(connection.kind),
|
|
281
|
-
onChange: (e) => update("protocol", e.target.value),
|
|
282
|
-
children: [
|
|
283
|
-
["chat-completions", "Chat Completions"],
|
|
284
|
-
["responses", "Responses"],
|
|
285
|
-
["messages", "Messages"]
|
|
286
|
-
].map(([id, name]) => jsx("option", { value: id, children: name }, id))
|
|
287
|
-
})
|
|
288
|
-
]
|
|
289
|
-
})
|
|
290
|
-
}),
|
|
291
|
-
...connection.kind === "infron" ? [
|
|
292
|
-
jsx("label", {
|
|
293
|
-
children: jsxs(Fragment, {
|
|
294
|
-
children: [
|
|
295
|
-
"Service tier",
|
|
296
|
-
jsx("select", {
|
|
297
|
-
"aria-label": "Service tier",
|
|
298
|
-
value: connection.serviceTier,
|
|
299
|
-
disabled: busy,
|
|
300
|
-
onChange: (e) => update("serviceTier", e.target.value),
|
|
301
|
-
children: [
|
|
302
|
-
jsx("option", {
|
|
303
|
-
value: "standard",
|
|
304
|
-
children: "Standard"
|
|
305
|
-
}),
|
|
306
|
-
jsx("option", {
|
|
307
|
-
value: "flex",
|
|
308
|
-
children: "Flex"
|
|
309
|
-
})
|
|
310
|
-
]
|
|
311
|
-
})
|
|
312
|
-
]
|
|
302
|
+
jsxs("h3", {
|
|
303
|
+
children: [
|
|
304
|
+
connection.name,
|
|
305
|
+
jsx("span", {
|
|
306
|
+
className: "kiokuko-models-state",
|
|
307
|
+
children: " \xB7 " + (connection.authState ?? "not saved yet")
|
|
313
308
|
})
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
children: "Requested tier: " + connection.serviceTier + ". Last request: " + (connection.lastRequestedTier ?? "none") + ". Actual served tier: " + (connection.actualTier ?? "unknown") + ". Infron may serve Standard for a Flex request."
|
|
317
|
-
})
|
|
318
|
-
] : [],
|
|
319
|
-
button("Save connection", () => void run(save)),
|
|
309
|
+
]
|
|
310
|
+
}),
|
|
320
311
|
...connection.kind !== "codex" && connection.kind !== "ollama" ? [
|
|
321
|
-
input("API key / bearer token", key, setKey, "password")
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
op: "key",
|
|
326
|
-
id: connection.id,
|
|
327
|
-
key
|
|
328
|
-
});
|
|
329
|
-
setKey("");
|
|
330
|
-
await load();
|
|
331
|
-
await choose(connection);
|
|
332
|
-
setNotice("Key saved");
|
|
333
|
-
}), !key)
|
|
334
|
-
] : [],
|
|
335
|
-
...[
|
|
336
|
-
"codex",
|
|
337
|
-
"claude",
|
|
338
|
-
"xai",
|
|
339
|
-
"openai",
|
|
340
|
-
"openrouter",
|
|
341
|
-
"nous"
|
|
342
|
-
].includes(connection.kind) ? [
|
|
343
|
-
button("Log in", () => void run(startLogin), auth?.status === "pending")
|
|
312
|
+
input("API key / bearer token", key, setKey, "password", () => {
|
|
313
|
+
if (!busy && key.trim())
|
|
314
|
+
void run(connect);
|
|
315
|
+
})
|
|
344
316
|
] : [],
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
})),
|
|
317
|
+
jsxs("div", {
|
|
318
|
+
className: "kiokuko-models-actions",
|
|
319
|
+
children: [
|
|
320
|
+
button("Save and connect", () => void run(connect)),
|
|
321
|
+
...OAUTH_KINDS.includes(connection.kind) ? [
|
|
322
|
+
button("Log in", () => void run(startLogin), auth?.status === "pending")
|
|
323
|
+
] : []
|
|
324
|
+
]
|
|
325
|
+
}),
|
|
326
|
+
jsx("p", {
|
|
327
|
+
children: connection.kind === "ollama" ? "Ollama needs no key. Save and connect to list its models." : "Paste the API key and press Enter, or use Save and connect. The key is stored with dsh-cli's shared credentials."
|
|
328
|
+
}),
|
|
358
329
|
...auth?.status === "pending" ? [
|
|
359
330
|
jsxs("div", {
|
|
360
331
|
"aria-label": "Authentication",
|
|
@@ -443,61 +414,156 @@ window.__ModuleLoader__.load({
|
|
|
443
414
|
]
|
|
444
415
|
})
|
|
445
416
|
] : [],
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
417
|
+
jsxs("details", {
|
|
418
|
+
open: advanced,
|
|
419
|
+
children: [
|
|
420
|
+
jsx("summary", {
|
|
421
|
+
onClick: (e) => {
|
|
422
|
+
e.preventDefault();
|
|
423
|
+
setAdvanced(!advanced);
|
|
424
|
+
},
|
|
425
|
+
children: "Advanced settings"
|
|
426
|
+
}),
|
|
427
|
+
input("Connection name", connection.name, (value) => update("name", value)),
|
|
428
|
+
input("Base URL", connection.baseURL, (value) => update("baseURL", value)),
|
|
429
|
+
jsx("label", {
|
|
430
|
+
children: jsxs(Fragment, {
|
|
431
|
+
children: [
|
|
432
|
+
"Protocol",
|
|
433
|
+
jsx("select", {
|
|
434
|
+
"aria-label": "Protocol",
|
|
435
|
+
value: connection.protocol,
|
|
436
|
+
disabled: busy || [
|
|
437
|
+
"codex",
|
|
438
|
+
"infron",
|
|
439
|
+
"opencode",
|
|
440
|
+
"opencode-go"
|
|
441
|
+
].includes(connection.kind),
|
|
442
|
+
onChange: (e) => update("protocol", e.target.value),
|
|
464
443
|
children: [
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
...manual,
|
|
470
|
-
reasoning: e.target.checked
|
|
471
|
-
})
|
|
472
|
-
}),
|
|
473
|
-
"Reasoning supported"
|
|
474
|
-
]
|
|
444
|
+
["chat-completions", "Chat Completions"],
|
|
445
|
+
["responses", "Responses"],
|
|
446
|
+
["messages", "Messages"]
|
|
447
|
+
].map(([id, name]) => jsx("option", { value: id, children: name }, id))
|
|
475
448
|
})
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
449
|
+
]
|
|
450
|
+
})
|
|
451
|
+
}),
|
|
452
|
+
...connection.kind === "infron" ? [
|
|
453
|
+
jsx("label", {
|
|
454
|
+
children: jsxs(Fragment, {
|
|
455
|
+
children: [
|
|
456
|
+
"Service tier",
|
|
457
|
+
jsx("select", {
|
|
458
|
+
"aria-label": "Service tier",
|
|
459
|
+
value: connection.serviceTier,
|
|
460
|
+
disabled: busy,
|
|
461
|
+
onChange: (e) => update("serviceTier", e.target.value),
|
|
462
|
+
children: [
|
|
463
|
+
jsx("option", {
|
|
464
|
+
value: "standard",
|
|
465
|
+
children: "Standard"
|
|
466
|
+
}),
|
|
467
|
+
jsx("option", {
|
|
468
|
+
value: "flex",
|
|
469
|
+
children: "Flex"
|
|
486
470
|
})
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
})
|
|
471
|
+
]
|
|
472
|
+
})
|
|
473
|
+
]
|
|
474
|
+
})
|
|
475
|
+
}),
|
|
476
|
+
jsx("p", {
|
|
477
|
+
children: "Requested tier: " + connection.serviceTier + ". Last request: " + (connection.lastRequestedTier ?? "none") + ". Actual served tier: " + (connection.actualTier ?? "unknown") + ". Infron may serve Standard for a Flex request."
|
|
478
|
+
})
|
|
479
|
+
] : [],
|
|
480
|
+
button("Save connection", () => void run(async () => {
|
|
481
|
+
await persist();
|
|
482
|
+
await reopen();
|
|
483
|
+
setNotice("Connection saved");
|
|
484
|
+
})),
|
|
485
|
+
button("Refresh models", () => void run(async () => {
|
|
486
|
+
await persist();
|
|
487
|
+
await modelsApi({ op: "refresh", id: connection.id });
|
|
488
|
+
const list = await reopen();
|
|
489
|
+
setNotice(list.length ? "Models refreshed" : "Models refreshed; none discovered");
|
|
490
|
+
})),
|
|
491
|
+
button("Log out (also dsh-cli)", () => void run(async () => {
|
|
492
|
+
await persist();
|
|
493
|
+
await modelsApi({ op: "logout", id: connection.id });
|
|
494
|
+
setKey("");
|
|
495
|
+
setModels([]);
|
|
496
|
+
await load();
|
|
497
|
+
setNotice("Signed out");
|
|
498
|
+
})),
|
|
499
|
+
...!["opencode", "opencode-go"].includes(connection.kind) ? [
|
|
500
|
+
jsx("details", {
|
|
501
|
+
open: manualOpen,
|
|
502
|
+
children: jsxs(Fragment, {
|
|
503
|
+
children: [
|
|
504
|
+
jsx("summary", {
|
|
505
|
+
onClick: (e) => {
|
|
506
|
+
e.preventDefault();
|
|
507
|
+
setManualOpen(!manualOpen);
|
|
508
|
+
},
|
|
509
|
+
children: "Register model manually"
|
|
510
|
+
}),
|
|
511
|
+
input("Model ID", manual.id, (value) => setManual({ ...manual, id: value })),
|
|
512
|
+
input("Context window", manual.contextWindow, (value) => setManual({
|
|
513
|
+
...manual,
|
|
514
|
+
contextWindow: Number(value)
|
|
515
|
+
}), "number"),
|
|
516
|
+
input("Maximum output tokens", manual.maxTokens, (value) => setManual({
|
|
517
|
+
...manual,
|
|
518
|
+
maxTokens: Number(value)
|
|
519
|
+
}), "number"),
|
|
520
|
+
jsx("label", {
|
|
521
|
+
children: jsxs(Fragment, {
|
|
522
|
+
children: [
|
|
523
|
+
jsx("input", {
|
|
524
|
+
type: "checkbox",
|
|
525
|
+
checked: manual.reasoning,
|
|
526
|
+
onChange: (e) => setManual({
|
|
527
|
+
...manual,
|
|
528
|
+
reasoning: e.target.checked
|
|
529
|
+
})
|
|
530
|
+
}),
|
|
531
|
+
"Reasoning supported"
|
|
532
|
+
]
|
|
533
|
+
})
|
|
534
|
+
}),
|
|
535
|
+
jsx("label", {
|
|
536
|
+
children: jsxs(Fragment, {
|
|
537
|
+
children: [
|
|
538
|
+
jsx("input", {
|
|
539
|
+
type: "checkbox",
|
|
540
|
+
checked: manual.image,
|
|
541
|
+
onChange: (e) => setManual({
|
|
542
|
+
...manual,
|
|
543
|
+
image: e.target.checked
|
|
544
|
+
})
|
|
545
|
+
}),
|
|
546
|
+
"Image input supported"
|
|
547
|
+
]
|
|
548
|
+
})
|
|
549
|
+
}),
|
|
550
|
+
button("Add manual model", () => {
|
|
551
|
+
update("models", [
|
|
552
|
+
...connection.models.filter((m) => m.id !== manual.id),
|
|
553
|
+
{ ...manual, name: manual.id }
|
|
554
|
+
]);
|
|
555
|
+
setNotice("Model added to draft. Save connection to register it.");
|
|
556
|
+
}, !manual.id)
|
|
557
|
+
]
|
|
558
|
+
})
|
|
559
|
+
})
|
|
560
|
+
] : []
|
|
561
|
+
]
|
|
562
|
+
}),
|
|
563
|
+
jsx("h4", { children: "Models" }),
|
|
564
|
+
...models.length === 0 ? [
|
|
565
|
+
jsx("p", {
|
|
566
|
+
children: "No models yet. Save and connect to discover them, or register one under Advanced settings."
|
|
501
567
|
})
|
|
502
568
|
] : [],
|
|
503
569
|
input("Search models", filter, setFilter),
|
|
@@ -588,7 +654,7 @@ window.__ModuleLoader__.load({
|
|
|
588
654
|
}, "kiokuko models focus lifecycle");
|
|
589
655
|
ctx.effect(() => {
|
|
590
656
|
const style = document.createElement("style");
|
|
591
|
-
style.textContent = ".kiokuko-models-modal{width:min(900px,calc(100vw - 32px))}.kiokuko-models-panel{box-sizing:border-box;width:100%;max-width:900px;padding:16px;overflow:auto;max-height:75vh}.kiokuko-models-panel label{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}.kiokuko-models-panel input,.kiokuko-models-panel select{max-width:100%;box-sizing:border-box;border:1px solid #888;border-radius:6px;padding:8px;color:inherit;background:transparent}.kiokuko-models-panel button{border:1px solid #888;border-radius:6px;padding:8px;margin:4px;color:inherit}.kiokuko-models-panel button:disabled{opacity:.5}.kiokuko-models-panel li{margin:8px 0}.kiokuko-models-panel :focus-visible{outline:2px solid #3286ff;outline-offset:3px}";
|
|
657
|
+
style.textContent = ".kiokuko-models-modal{width:min(900px,calc(100vw - 32px))}.kiokuko-models-panel{box-sizing:border-box;width:100%;max-width:900px;padding:16px;overflow:auto;max-height:75vh}.kiokuko-models-panel label{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}.kiokuko-models-panel input,.kiokuko-models-panel select{max-width:100%;box-sizing:border-box;border:1px solid #888;border-radius:6px;padding:8px;color:inherit;background:transparent}.kiokuko-models-panel button{border:1px solid #888;border-radius:6px;padding:8px;margin:4px;color:inherit}.kiokuko-models-panel button:disabled{opacity:.5}.kiokuko-models-panel li{margin:8px 0}.kiokuko-models-panel :focus-visible{outline:2px solid #3286ff;outline-offset:3px}.kiokuko-models-panel summary{cursor:pointer;margin:12px 0}.kiokuko-models-panel h3,.kiokuko-models-panel h4{margin:12px 0 0}.kiokuko-models-state{font-weight:400;font-size:.85em;opacity:.75}.kiokuko-models-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}";
|
|
592
658
|
document.head.append(style);
|
|
593
659
|
return () => style.remove();
|
|
594
660
|
}, "kiokuko models style");
|
|
@@ -2,6 +2,8 @@ import type { ResolvedPiAiProviderProfile } from "@deepseek-ai/dsh-llm-pi-ai";
|
|
|
2
2
|
import { type PiAiProvider, type PiAiCredentialStore } from "./vendor/pi-ai.js";
|
|
3
3
|
import { type Connection, type InfronServiceTier } from "./contracts.js";
|
|
4
4
|
import type { CredentialFile } from "./vendor/credentials.js";
|
|
5
|
+
/** The wire protocol pi-ai serves for one Kiokuko connection protocol. */
|
|
6
|
+
export declare function protocolApi(protocol: Connection["protocol"]): string;
|
|
5
7
|
/** Compose the public payload hook after any caller hook; the closure freezes tier. */
|
|
6
8
|
export declare function infronProvider(source: PiAiProvider, tier: InfronServiceTier, report?: (tier: InfronServiceTier | "unknown") => void): PiAiProvider;
|
|
7
9
|
export declare function sharedCredentialStore(store: CredentialFile, connections: readonly Connection[]): PiAiCredentialStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../src/dsh/models/profiles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,uFAAuF;AACvF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,iBAAiB,EACvB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,KAAK,IAAI,GACrD,YAAY,CA8Bd;AAmDD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE,SAAS,UAAU,EAAE,GACjC,mBAAmB,CAgBrB;AACD,gFAAgF;AAChF,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,KAAK,IAAI,GACrD,2BAA2B,
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../src/dsh/models/profiles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,MAAM,CAMpE;AACD,uFAAuF;AACvF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,iBAAiB,EACvB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,KAAK,IAAI,GACrD,YAAY,CA8Bd;AAmDD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE,SAAS,UAAU,EAAE,GACjC,mBAAmB,CAgBrB;AACD,gFAAgF;AAChF,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,KAAK,IAAI,GACrD,2BAA2B,CAuF7B"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { resolveRetryPolicy } from "@deepseek-ai/dsh-llm";
|
|
2
2
|
import { adapterBuiltinProviders, } from "./vendor/pi-ai.js";
|
|
3
3
|
import { credentialKey, } from "./contracts.js";
|
|
4
|
+
/** The wire protocol pi-ai serves for one Kiokuko connection protocol. */
|
|
5
|
+
export function protocolApi(protocol) {
|
|
6
|
+
return protocol === "responses"
|
|
7
|
+
? "openai-responses"
|
|
8
|
+
: protocol === "messages"
|
|
9
|
+
? "anthropic-messages"
|
|
10
|
+
: "openai-completions";
|
|
11
|
+
}
|
|
4
12
|
/** Compose the public payload hook after any caller hook; the closure freezes tier. */
|
|
5
13
|
export function infronProvider(source, tier, report) {
|
|
6
14
|
const options = (input = {}) => ({
|
|
@@ -111,11 +119,7 @@ export function connectionProfile(connection, report) {
|
|
|
111
119
|
throw new Error("Installed adapter does not provide the selected protocol");
|
|
112
120
|
const api = connection.kind === "codex"
|
|
113
121
|
? "openai-codex-responses"
|
|
114
|
-
: connection.protocol
|
|
115
|
-
? "openai-responses"
|
|
116
|
-
: connection.protocol === "messages"
|
|
117
|
-
? "anthropic-messages"
|
|
118
|
-
: "openai-completions";
|
|
122
|
+
: protocolApi(connection.protocol);
|
|
119
123
|
const shipped = original?.getModels() ?? [];
|
|
120
124
|
const models = connection.models.length
|
|
121
125
|
? connection.models.map((m) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../src/dsh/models/profiles.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../src/dsh/models/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EACL,uBAAuB,GAGxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,aAAa,GAGd,MAAM,gBAAgB,CAAC;AAIxB,0EAA0E;AAC1E,MAAM,UAAU,WAAW,CAAC,QAAgC;IAC1D,OAAO,QAAQ,KAAK,WAAW;QAC7B,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,QAAQ,KAAK,UAAU;YACvB,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,oBAAoB,CAAC;AAC7B,CAAC;AACD,uFAAuF;AACvF,MAAM,UAAU,cAAc,CAC5B,MAAoB,EACpB,IAAuB,EACvB,MAAsD;IAEtD,MAAM,OAAO,GAAG,CAAC,QAAa,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,GAAG,KAAK;QACR,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC;QAC3D,SAAS,EAAE,KAAK,EAAE,IAAa,EAAE,KAAc,EAAE,EAAE;YACjD,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;YACpB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,OAAO,IAAI,IAAI,CAAC;YAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,KAAgC,EAC3C,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3B,IACE,QAAQ,KAAK,SAAS;gBACtB,CAAC,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAEtE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,OAAO;gBACL,GAAG,IAAI;gBACP,QAAQ,EAAE,EAAE,GAAI,QAA+B,EAAE,YAAY,EAAE,IAAI,EAAE;aACtE,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IACH,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,CAAC,CAAC,KAAU,EAAE,OAAY,EAAE,KAAU,EAAE,EAAE,CAChD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAA2B;QAC1E,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CACtC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;KACtD,CAAC;AACJ,CAAC;AACD,gFAAgF;AAChF,SAAS,WAAW,CAClB,OAAqB,EACrB,MAAsD;IAEtD,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5C,IACE,CAAC,MAAM;YACP,CAAC,QAAQ,CAAC,EAAE;YACZ,CAAC,QAAQ,CAAC,IAAI;YACd,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC;YAEpE,OAAO,QAAQ,CAAC;QAClB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,IAAI,GAAG,EAAE,EACX,UAAU,GAAG,KAAK,CAAC;QACrB,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAyB;YAC3D,SAAS,CAAC,KAAK,EAAE,UAAU;gBACzB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC3D,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBAClB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;4BAC5C,IAAI,CAAC;gCACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,MAAM,MAAM,GACV,KAAK,CAAC,QAAQ,EAAE,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC;gCACrD,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,MAAM;oCAAE,MAAM,CAAC,MAAM,CAAC,CAAC;4BACjE,CAAC;4BAAC,MAAM,CAAC;gCACP,iDAAiD;4BACnD,CAAC;wBACH,CAAC;wBACD,IAAI,GAAG,EAAE,CAAC;wBACV,UAAU,GAAG,KAAK,CAAC;oBACrB,CAAC;yBAAM,IAAI,CAAC,UAAU,EAAE,CAAC;wBACvB,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;4BAC1B,IAAI,GAAG,EAAE,CAAC;4BACV,UAAU,GAAG,IAAI,CAAC;wBACpB,CAAC;;4BAAM,IAAI,IAAI,IAAI,CAAC;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YACvD,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AACD,MAAM,UAAU,qBAAqB,CACnC,KAAqB,EACrB,WAAkC;IAElC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/C,OAAO;QACL,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,IAAI;iBACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC;iBAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAC5C,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AACD,gFAAgF;AAChF,MAAM,UAAU,iBAAiB,CAC/B,UAAsB,EACtB,MAAsD;IAEtD,6EAA6E;IAC7E,+DAA+D;IAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,KAAK,UAAU;QAChD,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QAC5C,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;IACvB,MAAM,OAAO,GAAG,uBAAuB,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;IACzE,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,EAAE;QACJ,CAAC,UAAU,CAAC,QAAQ,KAAK,UAAU;YACjC,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,UAAU,CAAC,QAAQ,KAAK,WAAW;gBACnC,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,YAAY,CAAC,CACtB,CAAC;IACF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC;IACvE,IAAI,CAAC,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,MAAM,GAAG,GACP,UAAU,CAAC,IAAI,KAAK,OAAO;QACzB,CAAC,CAAC,wBAAwB;QAC1B,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAc,UAAU,CAAC,MAAM,CAAC,MAAM;QAChD,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CACnB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;YACC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,UAAU,CAAC,EAAE;YACvB,GAAG;YACH,OAAO,EAAE,OAAO;YAChB,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7C,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;SAC3D,CAAY,CAChB;QACH,CAAC,CAAC,OAAO,CAAC,GAAG,CACT,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;YACC,GAAG,CAAC;YACJ,QAAQ,EAAE,UAAU,CAAC,EAAE;YACvB,OAAO,EAAE,OAAO;YAChB,GAAG;SACJ,CAAY,CAChB,CAAC;IACN,IAAI,QAAQ,GAAiB;QAC3B,GAAG,MAAM;QACT,EAAE,EAAE,UAAU,CAAC,EAAE;QACjB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM;QACvB,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM;QAC1B,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI;YACtB,MAAM,EAAE;gBACN,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;oBAClC,IAAI,EACF,UAAU,EAAE,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG;wBAC9C,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE;wBAC5B,CAAC,CAAC,EAAE;oBACR,MAAM,EAAE,UAAU,CAAC,IAAI;iBACxB,CAAC;aACH;SACF;KACF,CAAC;IACF,OAAQ,QAAwC,CAAC,aAAa,CAAC;IAC/D,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ;QAC9B,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACtE,OAAO;QACL,QAAQ,EAAE,UAAU,CAAC,EAAE;QACvB,WAAW,EAAE,UAAU,CAAC,IAAI;QAC5B,GAAG;QACH,OAAO;QACP,UAAU,EAAE,QAAQ;QACpB,mBAAmB,EAAE,OAAO;QAC5B,oBAAoB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QACtC,uBAAuB,EAAE,IAAI,GAAG,IAAI;QACpC,oBAAoB,EAAE,IAAI,GAAG,IAAI;QACjC,mBAAmB,EAAE,IAAI,GAAG,EAAE;QAC9B,WAAW,EAAE,IAAI,GAAG,EAAE;QACtB,WAAW,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC;KAC1D,CAAC;AACJ,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { CredentialFile } from "./vendor/credentials.js";
|
|
|
5
5
|
import type { AuthEvent, AuthPrompt } from "./vendor/auth-contract.js";
|
|
6
6
|
import type { ModelRoute } from "../model-configuration.js";
|
|
7
7
|
export interface ModelsServiceOptions {
|
|
8
|
-
llm: Pick<LlmRuntime, "registerAdapter" | "resolveCallConfig">;
|
|
8
|
+
llm: Pick<LlmRuntime, "registerAdapter" | "resolveCallConfig" | "discoverModels">;
|
|
9
9
|
config: ModelsConfigStore;
|
|
10
10
|
credentials: CredentialFile;
|
|
11
11
|
attachments?: () => any;
|
|
@@ -80,6 +80,29 @@ export declare class KiokukoModelsService {
|
|
|
80
80
|
inputModalities?: readonly import("@deepseek-ai/dsh-llm").ModelModality[];
|
|
81
81
|
}[]>;
|
|
82
82
|
refresh(id: string): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Ask the adapter for the models this connection serves. A route the
|
|
85
|
+
* installed pi-ai catalog ships answers from that catalog, capacities
|
|
86
|
+
* included and without a network call; every other endpoint — a gateway, a
|
|
87
|
+
* self-hosted server — is interrogated over the wire. Nothing is stored, so a
|
|
88
|
+
* failed interrogation leaves the saved connections untouched.
|
|
89
|
+
*/
|
|
90
|
+
private discover;
|
|
91
|
+
/**
|
|
92
|
+
* Choose the catalog route to name when asking for models. Naming it lets the
|
|
93
|
+
* adapter answer from its own registry, which is right only while the
|
|
94
|
+
* connection still points at that provider's own endpoint: an edited Base URL
|
|
95
|
+
* is a different service that must be interrogated instead.
|
|
96
|
+
*/
|
|
97
|
+
private catalogRoute;
|
|
98
|
+
/**
|
|
99
|
+
* Adopt discovered rows as stored models. Capacities the endpoint withholds
|
|
100
|
+
* come from the adapter's catalog entry, the row already stored for that id,
|
|
101
|
+
* or the pi-ai profile defaults the native Models page applies to the same
|
|
102
|
+
* route — so an id-only listing still yields a usable model instead of
|
|
103
|
+
* failing the whole refresh.
|
|
104
|
+
*/
|
|
105
|
+
private adopt;
|
|
83
106
|
select(id: string, model: string, scope: "current" | "default", sessionId?: string): Promise<void>;
|
|
84
107
|
startLogin(id: string): string;
|
|
85
108
|
authStatus(id: string): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/dsh/models/service.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/dsh/models/service.ts"],"names":[],"mappings":"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"}
|