koneck 2.128.73 → 2.128.74
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/ink-chat.d.ts +2 -0
- package/dist/ink-chat.d.ts.map +1 -1
- package/dist/ink-chat.js +85 -18
- package/dist/ink-chat.js.map +1 -1
- package/dist/provider-delete.d.ts +37 -0
- package/dist/provider-delete.d.ts.map +1 -0
- package/dist/provider-delete.js +76 -0
- package/dist/provider-delete.js.map +1 -0
- package/dist/run-progress.d.ts.map +1 -1
- package/dist/run-progress.js +11 -5
- package/dist/run-progress.js.map +1 -1
- package/dist/web/api.d.ts.map +1 -1
- package/dist/web/api.js +14 -9
- package/dist/web/api.js.map +1 -1
- package/dist/web/ui-client.d.ts.map +1 -1
- package/dist/web/ui-client.js +18 -7
- package/dist/web/ui-client.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deleting a provider: everything KONECK keeps under its name, in one place for the terminal and
|
|
3
|
+
* the browser.
|
|
4
|
+
*
|
|
5
|
+
* "we must add a option to delete a provider." There was a way — `/provider remove`, and a button
|
|
6
|
+
* in the browser — but only for a provider you had declared, only as a command you had to know,
|
|
7
|
+
* and it removed the declaration alone. The key stayed in credentials.json, and an endpoint or
|
|
8
|
+
* model saved for the name stayed in config.json, so a provider declared again under the same name
|
|
9
|
+
* picked up the old key and the old address, and a config naming it as the default named nothing.
|
|
10
|
+
*
|
|
11
|
+
* A provider KONECK ships with cannot be removed — it is part of the program — so deleting one
|
|
12
|
+
* means forgetting what you stored for it: the key, and any endpoint or model you set. It goes
|
|
13
|
+
* back to how it was on a fresh install.
|
|
14
|
+
*/
|
|
15
|
+
export interface ProviderDeleted {
|
|
16
|
+
name: string;
|
|
17
|
+
/** Your declaration was removed. */
|
|
18
|
+
declaration: boolean;
|
|
19
|
+
/** A declaration was shadowing a built-in, which is back. */
|
|
20
|
+
restoredBuiltIn: boolean;
|
|
21
|
+
/** Its stored key was forgotten. */
|
|
22
|
+
key: boolean;
|
|
23
|
+
/** Settings saved under its name that were cleared: 'endpoint', 'model', 'default provider'. */
|
|
24
|
+
settings: string[];
|
|
25
|
+
}
|
|
26
|
+
/** Whether there is anything to delete under `name` — what a list of deletable providers shows. */
|
|
27
|
+
export declare function deletable(name: string, home?: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Deletes what is kept for `name`. Null when there was nothing: not declared, no key, no settings.
|
|
30
|
+
*
|
|
31
|
+
* The provider in use is deleted like any other; what the session does next is the caller's
|
|
32
|
+
* business, because the terminal and the browser each have their own way of choosing another.
|
|
33
|
+
*/
|
|
34
|
+
export declare function deleteProvider(name: string, home?: string): Promise<ProviderDeleted | null>;
|
|
35
|
+
/** One sentence saying what was deleted, the same in the terminal and the browser. */
|
|
36
|
+
export declare function describeDeleted(d: ProviderDeleted): string;
|
|
37
|
+
//# sourceMappingURL=provider-delete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-delete.d.ts","sourceRoot":"","sources":["../src/provider-delete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,6DAA6D;IAC7D,eAAe,EAAE,OAAO,CAAC;IACzB,oCAAoC;IACpC,GAAG,EAAE,OAAO,CAAC;IACb,gGAAgG;IAChG,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,mGAAmG;AACnG,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAG9D;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA4BjG;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAY1D"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deleting a provider: everything KONECK keeps under its name, in one place for the terminal and
|
|
3
|
+
* the browser.
|
|
4
|
+
*
|
|
5
|
+
* "we must add a option to delete a provider." There was a way — `/provider remove`, and a button
|
|
6
|
+
* in the browser — but only for a provider you had declared, only as a command you had to know,
|
|
7
|
+
* and it removed the declaration alone. The key stayed in credentials.json, and an endpoint or
|
|
8
|
+
* model saved for the name stayed in config.json, so a provider declared again under the same name
|
|
9
|
+
* picked up the old key and the old address, and a config naming it as the default named nothing.
|
|
10
|
+
*
|
|
11
|
+
* A provider KONECK ships with cannot be removed — it is part of the program — so deleting one
|
|
12
|
+
* means forgetting what you stored for it: the key, and any endpoint or model you set. It goes
|
|
13
|
+
* back to how it was on a fresh install.
|
|
14
|
+
*/
|
|
15
|
+
import { BUILT_INS, PROVIDERS, removeUserProvider, readUserProviders } from './providers.js';
|
|
16
|
+
import { forgetKey, storedKeyFor } from './credentials.js';
|
|
17
|
+
import { loadKoneckConfig, saveKoneckConfig } from './config-store.js';
|
|
18
|
+
/** Whether there is anything to delete under `name` — what a list of deletable providers shows. */
|
|
19
|
+
export function deletable(name, home) {
|
|
20
|
+
const key = name.trim().toLowerCase();
|
|
21
|
+
return key in readUserProviders(home) || !!storedKeyFor(key, home);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Deletes what is kept for `name`. Null when there was nothing: not declared, no key, no settings.
|
|
25
|
+
*
|
|
26
|
+
* The provider in use is deleted like any other; what the session does next is the caller's
|
|
27
|
+
* business, because the terminal and the browser each have their own way of choosing another.
|
|
28
|
+
*/
|
|
29
|
+
export async function deleteProvider(name, home) {
|
|
30
|
+
const key = name.trim().toLowerCase();
|
|
31
|
+
const declaration = removeUserProvider(key, home);
|
|
32
|
+
const keyGone = forgetKey(key, home);
|
|
33
|
+
const cfg = await loadKoneckConfig(home);
|
|
34
|
+
const settings = [];
|
|
35
|
+
if (cfg.endpoints && key in cfg.endpoints) {
|
|
36
|
+
const { [key]: _e, ...rest } = cfg.endpoints;
|
|
37
|
+
cfg.endpoints = rest;
|
|
38
|
+
settings.push('endpoint');
|
|
39
|
+
}
|
|
40
|
+
if (cfg.models && key in cfg.models) {
|
|
41
|
+
const { [key]: _m, ...rest } = cfg.models;
|
|
42
|
+
cfg.models = rest;
|
|
43
|
+
settings.push('model');
|
|
44
|
+
}
|
|
45
|
+
// A default that names nothing any more would fail every start; with it unset, KONECK infers.
|
|
46
|
+
if (cfg.provider?.toLowerCase() === key && !PROVIDERS[key]) {
|
|
47
|
+
delete cfg.provider;
|
|
48
|
+
delete cfg.model;
|
|
49
|
+
settings.push('default provider');
|
|
50
|
+
}
|
|
51
|
+
if (settings.length)
|
|
52
|
+
await saveKoneckConfig(cfg, home);
|
|
53
|
+
if (!declaration && !keyGone && !settings.length)
|
|
54
|
+
return null;
|
|
55
|
+
return { name: key, declaration, restoredBuiltIn: declaration && BUILT_INS[key] !== undefined,
|
|
56
|
+
key: keyGone, settings };
|
|
57
|
+
}
|
|
58
|
+
/** One sentence saying what was deleted, the same in the terminal and the browser. */
|
|
59
|
+
export function describeDeleted(d) {
|
|
60
|
+
const parts = [];
|
|
61
|
+
if (d.declaration)
|
|
62
|
+
parts.push('its declaration');
|
|
63
|
+
if (d.key)
|
|
64
|
+
parts.push('its stored key');
|
|
65
|
+
for (const s of d.settings)
|
|
66
|
+
if (s !== 'default provider')
|
|
67
|
+
parts.push(`its saved ${s}`);
|
|
68
|
+
const list = parts.length > 1 ? parts.slice(0, -1).join(', ') + ' and ' + parts.at(-1) : parts[0];
|
|
69
|
+
const wasDefault = d.settings.includes('default provider')
|
|
70
|
+
? ' It is no longer your default provider; KONECK picks one at the next start.' : '';
|
|
71
|
+
const after = wasDefault + (d.restoredBuiltIn
|
|
72
|
+
? ` The built-in ${d.name} is back, pointing at ${BUILT_INS[d.name].baseURL}.`
|
|
73
|
+
: BUILT_INS[d.name] ? ` ${d.name} ships with KONECK, so it stays in the list as on a fresh install.` : '');
|
|
74
|
+
return `Deleted "${d.name}": ${list ?? 'its saved settings'}.${after}`;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=provider-delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-delete.js","sourceRoot":"","sources":["../src/provider-delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-progress.d.ts","sourceRoot":"","sources":["../src/run-progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAQvD,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,IAAI,CAAC,EAAE;IAAE,KAAK,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAC9C,MAAM,SAAI,GACT,WAAW,CAkBb;AAED,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAE1D;AAED,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAiBvD;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAuBD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,WAAW,EACrB,IAAI,GAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAqB,GAC5D,MAAM,
|
|
1
|
+
{"version":3,"file":"run-progress.d.ts","sourceRoot":"","sources":["../src/run-progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAQvD,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,IAAI,CAAC,EAAE;IAAE,KAAK,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAC9C,MAAM,SAAI,GACT,WAAW,CAkBb;AAED,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAE1D;AAED,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAiBvD;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAuBD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,WAAW,EACrB,IAAI,GAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAqB,GAC5D,MAAM,CAsDR"}
|
package/dist/run-progress.js
CHANGED
|
@@ -123,9 +123,15 @@ export function longRunNotice(spend, progress, opts = { local: false }) {
|
|
|
123
123
|
? `${spend.tokens.toLocaleString()} tokens — ${Math.max(0, spend.tokens - spend.delegatedTokens)
|
|
124
124
|
.toLocaleString()} here across ${req(spend.requests)}, and `
|
|
125
125
|
+ `${spend.delegatedTokens.toLocaleString()} in the sub-agents it started.`
|
|
126
|
-
: `${req(spend.requests)}
|
|
127
|
-
|
|
128
|
-
|
|
126
|
+
: `${req(spend.requests)} and ${spend.tokens.toLocaleString()} tokens.`;
|
|
127
|
+
/*
|
|
128
|
+
* Why the figure is so large, said as a fact about how requests work and not as a verdict. It
|
|
129
|
+
* read "…which is mostly the conversation being re-read each time rather than anything new" —
|
|
130
|
+
* directly above "It is working: 6 files changed in 9 edits", which was reported as the message
|
|
131
|
+
* contradicting itself: the first line seemed to say nothing was being done.
|
|
132
|
+
*/
|
|
133
|
+
const why = spend.delegatedTokens > 0 ? '' : ` Every request sends the whole conversation so far `
|
|
134
|
+
+ `(about ${per.toLocaleString()} tokens a request), so the total grows with each step, however small.`;
|
|
129
135
|
/*
|
|
130
136
|
* A spend cap rather than a turn cap, when there is a price to cap.
|
|
131
137
|
*
|
|
@@ -144,12 +150,12 @@ export function longRunNotice(spend, progress, opts = { local: false }) {
|
|
|
144
150
|
: '';
|
|
145
151
|
if (isGettingSomewhere(progress)) {
|
|
146
152
|
return `**This message has taken ${shape}**\n\n`
|
|
147
|
-
+ `It is working: ${describeProgress(progress)}.${spendLine(spend, opts.local)}\n\n`
|
|
153
|
+
+ `It is working: ${describeProgress(progress)}.${why}${spendLine(spend, opts.local)}\n\n`
|
|
148
154
|
+ `Nothing here is wrong — long tasks cost this. Stop it if you have seen enough.${cap}`;
|
|
149
155
|
}
|
|
150
156
|
return `**${spend.tokens.toLocaleString()} tokens on one message, and nothing has changed yet.**\n\n`
|
|
151
157
|
+ `${shape} ${describeProgress(progress) || 'No files changed, no commands run, no plan steps '
|
|
152
|
-
+ 'closed'}.${spendLine(spend, opts.local)}\n\n`
|
|
158
|
+
+ 'closed'}.${why}${spendLine(spend, opts.local)}\n\n`
|
|
153
159
|
+ `That is the shape of a run that is stuck rather than slow. Worth stopping and telling it `
|
|
154
160
|
+ `what to do differently — or asking it what it is waiting for.`;
|
|
155
161
|
}
|
package/dist/run-progress.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-progress.js","sourceRoot":"","sources":["../src/run-progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAExD,uDAAuD;AACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa;CACvF,CAAC,CAAC;AAeH,MAAM,UAAU,iBAAiB,CAC/B,MAAkC,EAClC,IAA8C,EAC9C,MAAM,GAAG,CAAC;IAEV,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,IAAI,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,SAAS;QACtC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,KAAK,EAAE,CAAC;YACR,6FAA6F;YAC7F,IAAI,CAAC,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB;YAAE,QAAQ,EAAE,CAAC;;YAC/C,KAAK,EAAE,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;IAChC,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM;QACnD,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,MAAM;QACvD,UAAU,EAAE,KAAK,CAAC,MAAM;KACzB,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,kBAAkB,CAAC,CAAc;IAC/C,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1E,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,gBAAgB,CAAC,CAAc;IAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,UAAU;cAC/D,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;SAAM,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC;IACjG,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,UAAU,kBAAkB,CAAC,CAAC;IACtF,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,aAAa,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAYD;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,KAAe,EAAE,KAAc;IAChD,IAAI,KAAK;QAAE,OAAO,8EAA8E,CAAC;IACjG,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACnF,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,iCAAiC,KAAK,CAAC,KAAK,2CAA2C;cAC1F,iDAAiD,CAAC;IACxD,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC;QACnC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,qBAAqB;cAC7F,wEAAwE;QAC5E,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,OAAO,KAAK,CAAC,KAAK,+BAA+B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;AAC7F,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAe,EACf,QAAqB,EACrB,OAA6C,EAAE,KAAK,EAAE,KAAK,EAAE;IAE7D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnE,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACpF;;;;;;;;OAQG;IACH,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,GAAG,CAAC;QACrC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC;aAC3F,cAAc,EAAE,gBAAgB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ;cAC5D,GAAG,KAAK,CAAC,eAAe,CAAC,cAAc,EAAE,gCAAgC;QAC7E,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"run-progress.js","sourceRoot":"","sources":["../src/run-progress.ts"],"names":[],"mappings":"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"}
|
package/dist/web/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/web/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/web/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAWH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAiC/C,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAYrC,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAgED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAsB,QAAQ,CAC5B,YAAY,EAAE,WAAW,EAAE,OAAO,GAAE,UAAe,GAClD,OAAO,CAAC,SAAS,CAAC,CAu4DpB"}
|
package/dist/web/api.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* dependency. `Last-Event-ID` is honoured, so a reload replays what the client missed instead of
|
|
12
12
|
* losing the conversation.
|
|
13
13
|
*/
|
|
14
|
+
import { deleteProvider, deletable, describeDeleted } from '../provider-delete.js';
|
|
14
15
|
import { createServer } from 'http';
|
|
15
16
|
import { gzipSync } from 'zlib';
|
|
16
17
|
import { randomBytes, timingSafeEqual } from 'crypto';
|
|
@@ -22,7 +23,7 @@ import { stripInvisible, revealValue } from '../clipboard.js';
|
|
|
22
23
|
import { rememberKey } from '../credentials.js';
|
|
23
24
|
import { freePortFrom, recordServer, forgetServer, runningServers, servingSameWorkspace } from './servers.js';
|
|
24
25
|
import { coalesce } from './events.js';
|
|
25
|
-
import { PROVIDERS, BUILT_INS, resolveProvider, needsNoCredential, readUserProviders, addUserProvider,
|
|
26
|
+
import { PROVIDERS, BUILT_INS, resolveProvider, needsNoCredential, readUserProviders, addUserProvider, userProvidersPath, keyEnvFor, keyProvenance, } from '../providers.js';
|
|
26
27
|
import { storedKeyFor, forgetKey, storedProviders } from '../credentials.js';
|
|
27
28
|
import { policyFrom, TRIGGERS, TRIGGER_BLURB } from '../failover.js';
|
|
28
29
|
import { loadKoneckConfig, saveKoneckConfig } from '../config-store.js';
|
|
@@ -1740,6 +1741,8 @@ export async function startWeb(baseConfigIn, options = {}) {
|
|
|
1740
1741
|
|| !!storedKeyFor(p.name, baseConfig.stateHome),
|
|
1741
1742
|
// Where it came from, so the UI can say "remembered" rather than asking again.
|
|
1742
1743
|
keyRemembered: !!storedKeyFor(p.name, baseConfig.stateHome),
|
|
1744
|
+
// Whether a delete would remove anything: a declaration, or a key stored for it.
|
|
1745
|
+
deletable: deletable(p.name, baseConfig.stateHome),
|
|
1743
1746
|
/*
|
|
1744
1747
|
* Which key this provider would use, and a fingerprint of it — never the key.
|
|
1745
1748
|
*
|
|
@@ -1916,18 +1919,20 @@ export async function startWeb(baseConfigIn, options = {}) {
|
|
|
1916
1919
|
const name = (url.searchParams.get('name') ?? '').trim().toLowerCase();
|
|
1917
1920
|
if (!name)
|
|
1918
1921
|
return json(res, 400, { error: 'which provider?' });
|
|
1919
|
-
|
|
1920
|
-
|
|
1922
|
+
// The same delete as the terminal's: declaration, stored key, saved endpoint and model.
|
|
1923
|
+
const done = await deleteProvider(name, baseConfig.stateHome);
|
|
1924
|
+
if (!done) {
|
|
1921
1925
|
return json(res, 404, {
|
|
1922
1926
|
error: BUILT_INS[name]
|
|
1923
|
-
?
|
|
1924
|
-
:
|
|
1927
|
+
? `nothing is stored for ${name} — it ships with KONECK`
|
|
1928
|
+
: `no provider called ${name}`,
|
|
1925
1929
|
});
|
|
1926
1930
|
}
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
return json(res, 200, { removed: name, restoredBuiltIn:
|
|
1931
|
+
(await import('../model-catalog.js')).forgetCatalog(name);
|
|
1932
|
+
const said = describeDeleted(done);
|
|
1933
|
+
announce(` ${said} (from the browser)`);
|
|
1934
|
+
return json(res, 200, { removed: name, restoredBuiltIn: done.restoredBuiltIn, said,
|
|
1935
|
+
stillListed: PROVIDERS[name] !== undefined });
|
|
1931
1936
|
}
|
|
1932
1937
|
if (route === '/api/model' && req.method === 'POST') {
|
|
1933
1938
|
if (!mayAct)
|