@namzu/cli 26.1.0 → 26.2.0
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 +61 -0
- package/README.md +5 -1
- package/dist/tui/Picker.d.ts.map +1 -1
- package/dist/tui/Picker.js +160 -46
- package/dist/tui/Picker.js.map +1 -1
- package/dist/tui/provider-list.d.ts +106 -0
- package/dist/tui/provider-list.d.ts.map +1 -0
- package/dist/tui/provider-list.js +125 -0
- package/dist/tui/provider-list.js.map +1 -0
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,66 @@
|
|
|
1
1
|
# @namzu/cli
|
|
2
2
|
|
|
3
|
+
## 26.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- ca56e24: The provider picker lists every provider you can set up, not only the ones it
|
|
8
|
+
detected on this machine.
|
|
9
|
+
|
|
10
|
+
The gap was reported from a session where it cost something: the saved provider
|
|
11
|
+
was OpenRouter, the picker drew the four providers discovery had found, and
|
|
12
|
+
OpenRouter was not among them — so there was no row to select and therefore no
|
|
13
|
+
way to type the key that was already in hand. A list assembled from `detected`
|
|
14
|
+
cannot name a provider `detected` does not mention, whatever the operator is
|
|
15
|
+
holding.
|
|
16
|
+
|
|
17
|
+
Detected rows are untouched: same order, same numbering, same source column
|
|
18
|
+
(`Claude session · this device`), same place at the top, and the header's count
|
|
19
|
+
still counts exactly what it counted before. Below them, under `Not detected —
|
|
20
|
+
enter a credential to use these:`, come every provider this build can construct
|
|
21
|
+
that takes a typed credential — `anthropic`, `google`, `openai`, `deepseek`,
|
|
22
|
+
`openrouter`, `zen`, `zen-go` — each marked with the environment variable that
|
|
23
|
+
sets it up (`needs OPENROUTER_API_KEY`), because that variable is both what
|
|
24
|
+
makes the provider work now and what keeps it working after a restart.
|
|
25
|
+
|
|
26
|
+
Enter on one of those rows opens the paste field for that provider, and `k`
|
|
27
|
+
follows the highlighted row instead of a fixed choice in the registry. Where the
|
|
28
|
+
row takes no typed credential — a local server, or a provider that signs in —
|
|
29
|
+
`k` still falls back to the provider the picker was opened for, which is the
|
|
30
|
+
saved one whose key is missing, so the route the notice above the list
|
|
31
|
+
advertises is unchanged. A typed credential is still held for the session and
|
|
32
|
+
written nowhere; nothing about how a credential is resolved at run time changed,
|
|
33
|
+
and no config key was added.
|
|
34
|
+
|
|
35
|
+
**What moves, and why it is not a patch.** The footer now names a provider only
|
|
36
|
+
when `k` reaches past the highlighted row to the one the picker was opened for.
|
|
37
|
+
With the cursor on the row the key will act on, the line reads `k enter a
|
|
38
|
+
credential`; the label returns as `k enter a credential for <provider>` exactly
|
|
39
|
+
when the two differ. That is shorter than the sentence it replaces — long enough
|
|
40
|
+
to wrap and lose its tail on a 100-column terminal — but it is a change to a
|
|
41
|
+
line a script or a reader may have matched, which is why this is `minor` rather
|
|
42
|
+
than `patch`. Two smaller consequences, both stated because they are visible:
|
|
43
|
+
the list is longer, so a machine with seven of these rows draws a taller screen,
|
|
44
|
+
and the digit shortcut still reaches the first nine rows only (a tenth needs two
|
|
45
|
+
keystrokes, and two keystrokes cannot be told from two presses without a timer),
|
|
46
|
+
which the screen now says out loud when the list passes nine.
|
|
47
|
+
|
|
48
|
+
Five registry entries are deliberately not offered there, because a row that
|
|
49
|
+
leads nowhere is worse than an absent one. `bedrock` needs an AWS credential
|
|
50
|
+
chain rather than one string; `http` is an endpoint whose base URL is half the
|
|
51
|
+
credential; `lmstudio` has no driver in this build; `ollama` needs a running
|
|
52
|
+
server, which is how discovery finds it; and `codex` is a device-code sign-in
|
|
53
|
+
this screen already offers with `l`, so it is not set up two ways.
|
|
54
|
+
`provider-list.test.ts` asserts that omission list by name, so flipping a
|
|
55
|
+
registry flag turns it red rather than quietly adding or dropping a row.
|
|
56
|
+
|
|
57
|
+
One defect was found in this screen while building it and is fixed here: the
|
|
58
|
+
cursor is an index into whichever list the screen is drawing, and the sign-in
|
|
59
|
+
screen draws three rows while the provider list draws more. With a saved
|
|
60
|
+
preference naming `openai` and a Codex device session detected, `/login` opened
|
|
61
|
+
with `openai` resolved against the provider list — row four — and read against
|
|
62
|
+
the sign-in list, so no row was highlighted and Enter did nothing at all.
|
|
63
|
+
|
|
3
64
|
## 26.1.0
|
|
4
65
|
|
|
5
66
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -159,7 +159,11 @@ labelled `Use existing`, while new credentials are labelled `Sign in to`. An
|
|
|
159
159
|
expired or signed-out owner session is not offered as reusable.
|
|
160
160
|
API keys remain optional alternatives through environment variables or the
|
|
161
161
|
session-only credential picker, and detecting one does not hide the subscription
|
|
162
|
-
sign-in action.
|
|
162
|
+
sign-in action. That picker lists every provider this build can construct that
|
|
163
|
+
accepts a typed credential, not only the ones found on the machine: the rest are
|
|
164
|
+
listed below the detected rows under `Not detected — enter a credential to use
|
|
165
|
+
these:`, each marked with the variable that sets it up (`needs
|
|
166
|
+
OPENROUTER_API_KEY`), and selecting one opens the paste field for that provider.
|
|
163
167
|
|
|
164
168
|
Zen and Zen Go appear as separate providers in `/model` (press
|
|
165
169
|
`p` to change providers). Zen works without an account key or an OpenCode
|
package/dist/tui/Picker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Picker.d.ts","sourceRoot":"","sources":["../../src/tui/Picker.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAEN,KAAK,gBAAgB,EAErB,KAAK,UAAU,EAEf,KAAK,sBAAsB,EAG3B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,KAAK,YAAY,EAA0B,gBAAgB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"Picker.d.ts","sourceRoot":"","sources":["../../src/tui/Picker.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAEN,KAAK,gBAAgB,EAErB,KAAK,UAAU,EAEf,KAAK,sBAAsB,EAG3B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,KAAK,YAAY,EAA0B,gBAAgB,EAAE,MAAM,YAAY,CAAA;AA2BxF,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC9C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,GAAG,wBAAwB,CAAA;IACxE,iFAAiF;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,eAAe,GAAG,QAAQ,CAAA;IAC/D,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,CAAA;IACjG,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CACzB,EAAE,EAAE,UAAU,EACd,GAAG,EAAE,gBAAgB,EACrB,MAAM,CAAC,EAAE,WAAW,KAChB,OAAO,CAAC,YAAY,CAAC,CAAA;IAC1B;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CACvB,UAAU,EAAE,gBAAgB,EAC5B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,KACf,IAAI,CAAA;IACT;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAClB,QAAQ,EAAE,sBAAsB,EAChC,MAAM,EAAE,WAAW,KACf,OAAO,CAAC,gBAAgB,GAAG,UAAU,GAAG,QAAQ,CAAC,CAAA;IACtD,6EAA6E;IAC7E,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,CAAA;IAChG;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,gBAAgB,CAAA;IACzC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACxC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AAyED,wBAAgB,MAAM,CAAC,EACtB,QAAQ,EACR,eAAe,EACf,aAAoC,EACpC,YAAY,EACZ,WAAyB,EACzB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,cAAuC,EACvC,YAAY,EACZ,OAAO,EACP,eAAe,EACf,MAAyB,EACzB,WAAW,EACX,MAAM,GACN,EAAE,WAAW,2CA44Bb"}
|
package/dist/tui/Picker.js
CHANGED
|
@@ -15,15 +15,12 @@ import { describeProviderModels, verifyCredential } from './agent.js';
|
|
|
15
15
|
import { classifyCredential, describeDisposition, keyLooksUsable, maskKey, sessionCredential, } from './credential-entry.js';
|
|
16
16
|
import { modelStep } from './model-choices.js';
|
|
17
17
|
import { filterModelChoices } from './model-search.js';
|
|
18
|
+
import { credentialNeed, initialProviderRow, providerListRows, rowProviderId, } from './provider-list.js';
|
|
18
19
|
import { moveSelection, selectionWindow } from './selection-window.js';
|
|
19
20
|
import { choiceDisplayWidth, eraseLastChoiceGrapheme, truncateChoiceText, } from './terminal-choice-text.js';
|
|
20
21
|
import { terminalDisplayText } from './terminal-display.js';
|
|
21
22
|
import { theme } from './theme.js';
|
|
22
23
|
import { useSelectionIndex } from './use-selection-index.js';
|
|
23
|
-
/** Providers that take a typed credential. Local servers do not. */
|
|
24
|
-
function keyCapableProviders() {
|
|
25
|
-
return ALL_PROVIDER_IDS.map((id) => PROVIDER_REGISTRY[id]).filter((e) => e.acceptsTypedCredential);
|
|
26
|
-
}
|
|
27
24
|
function subscriptionProviders() {
|
|
28
25
|
return ALL_PROVIDER_IDS.map((id) => PROVIDER_REGISTRY[id]).filter((entry) => entry.subscriptionLogin !== undefined);
|
|
29
26
|
}
|
|
@@ -51,17 +48,36 @@ function signInChoiceIndex(choices, provider) {
|
|
|
51
48
|
/**
|
|
52
49
|
* The provider `k` opens entry for.
|
|
53
50
|
*
|
|
54
|
-
* The
|
|
55
|
-
*
|
|
56
|
-
*
|
|
51
|
+
* The highlighted row whenever it takes a typed credential — whichever row that
|
|
52
|
+
* is, detected or not. This screen used to answer the question from the
|
|
53
|
+
* registry instead: the saved provider if the picker was open because of one,
|
|
54
|
+
* and otherwise the first key-capable entry, which is a provider the operator
|
|
55
|
+
* may not have been looking at. A list you can move through is a list the key
|
|
56
|
+
* beside it has to follow.
|
|
57
|
+
*
|
|
58
|
+
* The rows that do not take one — a local server, a provider whose credential
|
|
59
|
+
* arrives by sign-in — fall through to the saved provider this picker was
|
|
60
|
+
* opened for: that route is why the notice above says `k`, and it must keep
|
|
61
|
+
* working when the cursor happens to sit on a row that cannot use it.
|
|
62
|
+
*
|
|
63
|
+
* Returns null when there is nothing here to enter a credential for, which the
|
|
64
|
+
* caller says out loud rather than presenting a field that leads nowhere.
|
|
57
65
|
*/
|
|
58
|
-
function keyEntryTarget(keyEntryFor) {
|
|
66
|
+
function keyEntryTarget(row, keyEntryFor) {
|
|
67
|
+
if (row?.kind === 'unconfigured')
|
|
68
|
+
return row.entry;
|
|
69
|
+
if (row?.kind === 'detected' && row.detected.entry.acceptsTypedCredential)
|
|
70
|
+
return row.detected.entry;
|
|
59
71
|
if (keyEntryFor) {
|
|
60
72
|
const entry = PROVIDER_REGISTRY[keyEntryFor];
|
|
61
73
|
if (entry?.acceptsTypedCredential)
|
|
62
74
|
return entry;
|
|
63
75
|
}
|
|
64
|
-
return
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
/** Name a row the way its own line does, for a sentence about it. */
|
|
79
|
+
function rowLabel(row) {
|
|
80
|
+
return row.kind === 'detected' ? row.detected.entry.label : row.entry.label;
|
|
65
81
|
}
|
|
66
82
|
export function Picker({ detected, currentProvider, selectionKind = 'provider-and-model', currentModel, initialView = 'providers', onSubmit, onCancel, onSetup, describeModels = describeProviderModels, onCredential, onLogin, onLoginComplete, verify = verifyCredential, keyEntryFor, notice, }) {
|
|
67
83
|
/**
|
|
@@ -96,10 +112,32 @@ export function Picker({ detected, currentProvider, selectionKind = 'provider-an
|
|
|
96
112
|
operationRef.current = null;
|
|
97
113
|
}, []);
|
|
98
114
|
useEffect(() => invalidateOperation, [invalidateOperation]);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
115
|
+
// The list this screen draws: what was detected, then every provider this
|
|
116
|
+
// build could construct if the operator supplied a credential.
|
|
117
|
+
//
|
|
118
|
+
// `detected` is still the discovery result and is still what the header
|
|
119
|
+
// counts, what the sign-in screen offers and what a submitted choice is
|
|
120
|
+
// built from. This is the screen, not the machine.
|
|
121
|
+
//
|
|
122
|
+
// The signed-in-subscription screen takes the detected rows alone: it asks
|
|
123
|
+
// which already-usable session to use, and a row that needs a key first
|
|
124
|
+
// makes that sentence false.
|
|
125
|
+
const rows = providerListRows(detected, selectionKind !== 'signed-in-subscription');
|
|
126
|
+
// Whether `k` is offered at all, read once so the hint below and the key
|
|
127
|
+
// handler cannot disagree about it. The handler adds the phase guards,
|
|
128
|
+
// because it runs on every screen this picker draws and this expression is
|
|
129
|
+
// computed only for the list.
|
|
130
|
+
const keyEntryOffered = onCredential !== undefined && selectionKind !== 'signed-in-subscription';
|
|
131
|
+
// The cursor is an index into whichever list the screen is drawing, and the
|
|
132
|
+
// sign-in screen draws `subscriptionChoices` while the provider list draws
|
|
133
|
+
// these rows, which is longer by however many providers can be set up from
|
|
134
|
+
// here. An index resolved against one and read against the other selects
|
|
135
|
+
// nothing at all, which is how `/login` came up with no row highlighted and
|
|
136
|
+
// an Enter that did nothing on the machine below: a saved preference naming
|
|
137
|
+
// a saved provider resolved to its row in the provider list, which is past the end
|
|
138
|
+
// of a three-row sign-in list.
|
|
139
|
+
const initialSelection = initialView === 'subscriptions' ? 0 : initialProviderRow(rows, currentProvider, keyEntryFor);
|
|
140
|
+
const { selection: cursor, selectionRef: cursorRef, setSelection: setCursor, } = useSelectionIndex(initialSelection);
|
|
103
141
|
const [errorHint, setErrorHint] = useState(null);
|
|
104
142
|
// The ref makes a pasted query followed immediately by Enter use the new
|
|
105
143
|
// filtered list, even before React has drawn another frame. Null keeps the
|
|
@@ -307,19 +345,22 @@ export function Picker({ detected, currentProvider, selectionKind = 'provider-an
|
|
|
307
345
|
}
|
|
308
346
|
return;
|
|
309
347
|
}
|
|
310
|
-
// `k` opens credential entry
|
|
348
|
+
// `k` opens credential entry for the highlighted row — see
|
|
349
|
+
// `keyEntryTarget` for which provider that resolves to when the row takes
|
|
350
|
+
// no typed credential. The empty screen has always offered it (there,
|
|
351
|
+
// entering a credential is the only thing that can happen), and the
|
|
352
|
+
// populated one used to offer it only when `keyEntryFor` was set: someone
|
|
353
|
+
// with a working credential was not the person this was for. True then,
|
|
354
|
+
// and false for the operator this screen was opened for, who has a saved
|
|
355
|
+
// provider with no credential and a local server that happens to be
|
|
356
|
+
// running — they arrived at a list that named every provider except a way
|
|
357
|
+
// to fix the one they chose. The letter does not collide with anything:
|
|
358
|
+
// navigation is arrows and digits, and the model step owns its own keys.
|
|
311
359
|
//
|
|
312
|
-
//
|
|
313
|
-
// is
|
|
314
|
-
//
|
|
315
|
-
//
|
|
316
|
-
// gap. The old rule was "empty screen only", reasoned as "someone with a
|
|
317
|
-
// working credential is not the person this is for" — true then, and false
|
|
318
|
-
// for the person this change routes here, who has a saved provider with no
|
|
319
|
-
// credential and a local server that happens to be running. They arrived
|
|
320
|
-
// at a list that named every provider except a way to fix the one they
|
|
321
|
-
// chose. The letter does not collide with anything: navigation is arrows
|
|
322
|
-
// and digits.
|
|
360
|
+
// Two phases are guarded out. The model step types into search, so `k`
|
|
361
|
+
// there is a character and not a shortcut. The sign-in screen numbers its
|
|
362
|
+
// own choices, so the cursor indexes those rather than these rows, and a
|
|
363
|
+
// key read through it would name a provider nobody chose.
|
|
323
364
|
// `l` starts a Namzu-owned subscription sign-in from the general provider
|
|
324
365
|
// screen as well as the empty one. The already-signed-in choice deliberately
|
|
325
366
|
// omits it: external auth exists there, and a newly stored credential would
|
|
@@ -344,24 +385,27 @@ export function Picker({ detected, currentProvider, selectionKind = 'provider-an
|
|
|
344
385
|
onSetup();
|
|
345
386
|
return;
|
|
346
387
|
}
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
388
|
+
const highlighted = rows[cursorRef.current];
|
|
389
|
+
if (!loginPhase &&
|
|
390
|
+
modelPhase === null &&
|
|
391
|
+
keyEntryOffered &&
|
|
350
392
|
(input === 'k' || input === 'K')) {
|
|
351
|
-
const target = keyEntryTarget(keyEntryFor);
|
|
393
|
+
const target = keyEntryTarget(highlighted, keyEntryFor);
|
|
352
394
|
if (target) {
|
|
353
395
|
invalidateOperation();
|
|
354
396
|
setKeyEntry({ entry: target, value: '', status: 'typing' });
|
|
355
397
|
}
|
|
356
398
|
else {
|
|
357
|
-
setErrorHint(
|
|
399
|
+
setErrorHint(highlighted
|
|
400
|
+
? `${rowLabel(highlighted)} does not take a typed credential — choose a provider that does.`
|
|
401
|
+
: 'No provider here takes a typed credential.');
|
|
358
402
|
}
|
|
359
403
|
return;
|
|
360
404
|
}
|
|
361
405
|
if (modelPhase &&
|
|
362
406
|
(key.leftArrow || (modelQueryRef.current === null && (input === 'p' || input === 'P')))) {
|
|
363
407
|
invalidateOperation();
|
|
364
|
-
setCursor(Math.max(0,
|
|
408
|
+
setCursor(Math.max(0, rows.findIndex((row) => rowProviderId(row) === modelPhase.provider.entry.id)));
|
|
365
409
|
setModelPhase(null);
|
|
366
410
|
return;
|
|
367
411
|
}
|
|
@@ -380,7 +424,7 @@ export function Picker({ detected, currentProvider, selectionKind = 'provider-an
|
|
|
380
424
|
onCancel();
|
|
381
425
|
return;
|
|
382
426
|
}
|
|
383
|
-
setCursor(Math.max(0,
|
|
427
|
+
setCursor(Math.max(0, rows.findIndex((row) => rowProviderId(row) === modelPhase.provider.entry.id)));
|
|
384
428
|
setModelPhase(null);
|
|
385
429
|
return;
|
|
386
430
|
}
|
|
@@ -510,23 +554,38 @@ export function Picker({ detected, currentProvider, selectionKind = 'provider-an
|
|
|
510
554
|
return;
|
|
511
555
|
}
|
|
512
556
|
if (key.home || key.end || key.pageUp || key.pageDown) {
|
|
513
|
-
setCursor((current) => moveSelection(current,
|
|
557
|
+
setCursor((current) => moveSelection(current, rows.length, key.home ? 'first' : key.end ? 'last' : key.pageUp ? 'previous-page' : 'next-page'));
|
|
514
558
|
return;
|
|
515
559
|
}
|
|
516
560
|
if (key.upArrow) {
|
|
517
|
-
setCursor((current) => moveSelection(current,
|
|
561
|
+
setCursor((current) => moveSelection(current, rows.length, 'previous'));
|
|
518
562
|
return;
|
|
519
563
|
}
|
|
520
564
|
if (key.downArrow) {
|
|
521
|
-
setCursor((current) => moveSelection(current,
|
|
565
|
+
setCursor((current) => moveSelection(current, rows.length, 'next'));
|
|
522
566
|
return;
|
|
523
567
|
}
|
|
524
568
|
if (key.return) {
|
|
525
|
-
const
|
|
526
|
-
if (!
|
|
569
|
+
const row = rows[cursorRef.current];
|
|
570
|
+
if (!row) {
|
|
527
571
|
setErrorHint('No provider available.');
|
|
528
572
|
return;
|
|
529
573
|
}
|
|
574
|
+
// A row with no credential has no session to open and no catalogue to
|
|
575
|
+
// ask: accepting it would submit a provider this machine holds nothing
|
|
576
|
+
// for. Enter takes the operator to the field instead, which is the same
|
|
577
|
+
// thing `k` does on this row and the only thing that can move it
|
|
578
|
+
// forward.
|
|
579
|
+
if (row.kind === 'unconfigured') {
|
|
580
|
+
if (!onCredential) {
|
|
581
|
+
setErrorHint(`No credential can be entered for ${row.entry.label} on this screen.`);
|
|
582
|
+
return;
|
|
583
|
+
}
|
|
584
|
+
invalidateOperation();
|
|
585
|
+
setKeyEntry({ entry: row.entry, value: '', status: 'typing' });
|
|
586
|
+
return;
|
|
587
|
+
}
|
|
588
|
+
const current = row.detected;
|
|
530
589
|
// Detected, and still not choosable. The row stays visible on purpose
|
|
531
590
|
// — see the list below — so this is the only place that can decline
|
|
532
591
|
// it, and declining with the reason is the point: accepting would
|
|
@@ -547,9 +606,14 @@ export function Picker({ detected, currentProvider, selectionKind = 'provider-an
|
|
|
547
606
|
openModels(current);
|
|
548
607
|
return;
|
|
549
608
|
}
|
|
550
|
-
// Numeric quick-select.
|
|
609
|
+
// Numeric quick-select, one keystroke per row and therefore the first nine.
|
|
610
|
+
// A tenth row would need two digits, and two digits cannot be told from
|
|
611
|
+
// two presses without a timer between them — a wait the screen would have
|
|
612
|
+
// to add to every `1` before it knew whether a `0` was coming. The list
|
|
613
|
+
// says so when it grows past nine rather than leaving the rest looking
|
|
614
|
+
// selectable and being unreachable.
|
|
551
615
|
const n = Number.parseInt(input, 10);
|
|
552
|
-
if (Number.isFinite(n) && n >= 1 && n <=
|
|
616
|
+
if (Number.isFinite(n) && n >= 1 && n <= Math.min(rows.length, 9)) {
|
|
553
617
|
setCursor(n - 1);
|
|
554
618
|
}
|
|
555
619
|
});
|
|
@@ -590,22 +654,34 @@ export function Picker({ detected, currentProvider, selectionKind = 'provider-an
|
|
|
590
654
|
? `Use existing ${choice.detected.entry.label} · ${describeSource(choice.detected)}`
|
|
591
655
|
: `Sign in to ${choice.entry.label} · ${choice.entry.subscriptionLogin === 'device' ? 'device code' : 'browser'}`] }, `${choice.kind}-${choice.kind === 'existing' ? choice.detected.entry.id : choice.entry.id}`))) }), _jsxs(Box, { paddingTop: 1, flexDirection: "column", children: [_jsxs(Text, { color: theme.text.muted, children: ["\u2191\u2193 or 1-", choices.length, " navigate \u00B7 enter use \u00B7 esc back"] }), errorHint ? _jsx(Text, { color: theme.status.warn, children: errorHint }) : null] })] }));
|
|
592
656
|
}
|
|
593
|
-
// Non-null exactly when `k` is live on
|
|
594
|
-
//
|
|
595
|
-
// keyboard cannot drift apart.
|
|
596
|
-
|
|
657
|
+
// Non-null exactly when `k` is live on this list and has somewhere to go —
|
|
658
|
+
// the same resolution the key handler performs, read from one place so the
|
|
659
|
+
// hint and the keyboard cannot drift apart. It follows the highlighted row,
|
|
660
|
+
// so the sentence changes as the cursor moves: a hint that kept naming the
|
|
661
|
+
// saved provider while `k` acted on another row would be the defect this
|
|
662
|
+
// screen's other messages are written to avoid.
|
|
663
|
+
const highlightedRow = rows[cursor];
|
|
664
|
+
const entryTarget = keyEntryOffered ? keyEntryTarget(highlightedRow, keyEntryFor) : null;
|
|
665
|
+
// The label is named only when `k` reaches past the highlighted row to the
|
|
666
|
+
// provider this screen was opened for. On the ordinary path the row under
|
|
667
|
+
// the cursor is the answer, and saying so again costs the line its tail: the
|
|
668
|
+
// footer is one row, and the sentence with a label in it wraps.
|
|
669
|
+
const namesAnotherRow = entryTarget !== null &&
|
|
670
|
+
(highlightedRow === undefined || rowProviderId(highlightedRow) !== entryTarget.id);
|
|
597
671
|
if (detected.length === 0) {
|
|
598
672
|
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.status.warn, paddingX: 1, children: [noticeBox, _jsx(Text, { color: theme.status.warn, bold: true, children: "No providers detected" }), _jsxs(Box, { paddingTop: 1, flexDirection: "column", children: [_jsx(Text, { color: theme.text.primary, children: "namzu scans these sources, in order, for an LLM credential:" }), _jsxs(Text, { color: theme.text.muted, children: [' ', "\u00B7 existing", ' ', subscriptionProviders()
|
|
599
673
|
.map((entry) => entry.label)
|
|
600
|
-
.join(' and '), ' ', "sessions on this device"] }), _jsxs(Text, { color: theme.text.muted, children: [' ', "\u00B7 subscriptions signed in to from namzu (~/.namzu/credentials.json)"] }), _jsxs(Text, { color: theme.text.muted, children: [' ', "\u00B7 env vars / API keys (optional alternatives: ANTHROPIC_API_KEY, OPENAI_API_KEY, \u2026)"] }), _jsxs(Text, { color: theme.text.muted, children: [' ', "\u00B7 local servers (Ollama localhost:11434, LM Studio localhost:1234)"] })] }), onLogin ? (_jsx(Box, { paddingTop: 1, children: _jsxs(Text, { color: theme.text.primary, children: ["Press ", _jsx(Text, { color: theme.accent.system, children: "l" }), " to sign in with a subscription \u2014 no API key, and namzu keeps it for next time."] }) })) : null, _jsx(Box, { paddingTop: 1, children: _jsxs(Text, { color: theme.text.primary, children: ["Or press ", _jsx(Text, { color: theme.accent.system, children: "k" }), " to paste a credential now and use it for this session."] }) }), _jsx(Box, { paddingTop: 1, children: _jsx(Text, { color: theme.text.secondary, children: "You can also set one of the env vars above (or start a local server) and restart." }) }), _jsx(Box, { paddingTop: 1, children: _jsxs(Text, { color: theme.text.muted, children: [onLogin ? 'l: sign in · ' : '', "k: enter a credential \u00B7 esc: exit picker"] }) })] }));
|
|
674
|
+
.join(' and '), ' ', "sessions on this device"] }), _jsxs(Text, { color: theme.text.muted, children: [' ', "\u00B7 subscriptions signed in to from namzu (~/.namzu/credentials.json)"] }), _jsxs(Text, { color: theme.text.muted, children: [' ', "\u00B7 env vars / API keys (optional alternatives: ANTHROPIC_API_KEY, OPENAI_API_KEY, \u2026)"] }), _jsxs(Text, { color: theme.text.muted, children: [' ', "\u00B7 local servers (Ollama localhost:11434, LM Studio localhost:1234)"] })] }), onLogin ? (_jsx(Box, { paddingTop: 1, children: _jsxs(Text, { color: theme.text.primary, children: ["Press ", _jsx(Text, { color: theme.accent.system, children: "l" }), " to sign in with a subscription \u2014 no API key, and namzu keeps it for next time."] }) })) : null, _jsx(Box, { paddingTop: 1, children: _jsxs(Text, { color: theme.text.primary, children: ["Or press ", _jsx(Text, { color: theme.accent.system, children: "k" }), " to paste a credential now and use it for this session."] }) }), _jsx(Box, { paddingTop: 1, children: _jsx(Text, { color: theme.text.secondary, children: "You can also set one of the env vars above (or start a local server) and restart." }) }), _jsx(ProviderSetupRows, { rows: rows, cursor: cursor, currentProvider: currentProvider }), _jsx(Box, { paddingTop: 1, children: _jsxs(Text, { color: theme.text.muted, children: [onLogin ? 'l: sign in · ' : '', "\u2191\u2193 or 1-9 navigate \u00B7 enter or k: enter a credential \u00B7 esc: exit picker"] }) })] }));
|
|
601
675
|
}
|
|
602
676
|
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.border.focus, paddingX: 1, children: [noticeBox, _jsxs(Box, { flexDirection: "column", paddingBottom: 1, children: [_jsx(Text, { color: theme.accent.system, bold: true, children: selectionKind === 'signed-in-subscription'
|
|
603
677
|
? 'Choose a signed-in subscription'
|
|
604
678
|
: 'Choose a provider' }), _jsx(Text, { color: theme.text.muted, children: selectionKind === 'signed-in-subscription'
|
|
605
679
|
? `${detected.length} already usable · no API key required`
|
|
606
|
-
: `${detected.length} detected · device sessions / Namzu sign-ins / optional keys / local probes` })] }), _jsx(
|
|
680
|
+
: `${detected.length} detected · device sessions / Namzu sign-ins / optional keys / local probes` })] }), _jsx(ProviderSetupRows, { rows: rows, cursor: cursor, currentProvider: currentProvider }), _jsxs(Box, { flexDirection: "column", paddingTop: 1, children: [_jsxs(Text, { color: theme.text.muted, children: ["\u2191\u2193 or 1-9 navigate \u00B7 enter ", selectionKind === 'signed-in-subscription' ? 'use' : 'accept', entryTarget
|
|
681
|
+
? ` · k enter a credential${namesAnotherRow ? ` for ${entryTarget.label}` : ''}`
|
|
682
|
+
: '', onLogin && selectionKind !== 'signed-in-subscription'
|
|
607
683
|
? ' · l create a Namzu sign-in'
|
|
608
|
-
: '', ' ', "\u00B7 esc cancel"] }), errorHint ? _jsx(Text, { color: theme.status.warn, children: errorHint }) : null] })] }));
|
|
684
|
+
: '', ' ', "\u00B7 esc cancel"] }), rows.length > 9 ? (_jsx(Text, { color: theme.text.muted, children: "Rows past 9 are \u2191\u2193 only: two digits cannot be told from two presses." })) : null, errorHint ? _jsx(Text, { color: theme.status.warn, children: errorHint }) : null] })] }));
|
|
609
685
|
}
|
|
610
686
|
function ModelStepView({ providerLabel, otherProviders, step, query, currentModel, cursor, errorHint, returnToProviders, sessionOnly, }) {
|
|
611
687
|
const terminal = useWindowSize();
|
|
@@ -651,6 +727,44 @@ function ModelStepView({ providerLabel, otherProviders, step, query, currentMode
|
|
|
651
727
|
? `↑↓ · enter apply · esc ${returnToProviders ? 'back' : 'cancel'}`
|
|
652
728
|
: `↑↓ · PgUp/PgDn · Home/End · enter apply · esc ${returnToProviders ? 'back' : 'cancel'}${query === null ? ' · digits select' : ' · Ctrl+U clears'}` }), errorHint ? _jsx(Text, { color: theme.status.warn, children: errorHint }) : null] })] }));
|
|
653
729
|
}
|
|
730
|
+
/**
|
|
731
|
+
* The list, in the two blocks it is built as.
|
|
732
|
+
*
|
|
733
|
+
* Detected first and untouched: same rows, same order, same numbering, same
|
|
734
|
+
* source column. The second block is appended below a heading rather than
|
|
735
|
+
* merged into the first, because merging is the one thing that would move a row
|
|
736
|
+
* the operator already knows the position of — and every row above this line is
|
|
737
|
+
* one they may already be using.
|
|
738
|
+
*
|
|
739
|
+
* The appended rows carry no blank line between them. They are a work list
|
|
740
|
+
* rather than a catalogue, and a machine with six of them would otherwise push
|
|
741
|
+
* the box past a 24-row terminal and scroll the top of it — the detected rows —
|
|
742
|
+
* out of sight.
|
|
743
|
+
*/
|
|
744
|
+
function ProviderSetupRows({ rows, cursor, currentProvider, }) {
|
|
745
|
+
// The two arms are contiguous by construction (`providerListRows` appends),
|
|
746
|
+
// so one boundary splits them and every row's number is its position in the
|
|
747
|
+
// whole list, whichever block it is drawn in.
|
|
748
|
+
const firstUnconfigured = rows.findIndex((row) => row.kind === 'unconfigured');
|
|
749
|
+
const detectedCount = firstUnconfigured === -1 ? rows.length : firstUnconfigured;
|
|
750
|
+
return (_jsxs(_Fragment, { children: [_jsx(Box, { flexDirection: "column", children: rows.slice(0, detectedCount).map((row, index) => row.kind === 'detected' ? (_jsx(ProviderRow, { detected: row.detected, index: index, selected: index === cursor, isCurrent: row.detected.entry.id === currentProvider }, row.detected.entry.id)) : null) }), firstUnconfigured === -1 ? null : (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: theme.text.muted, children: "Not detected \u2014 enter a credential to use these:" }), rows.slice(firstUnconfigured).map((row, offset) => row.kind === 'unconfigured' ? (_jsx(UnconfiguredProviderRow, { entry: row.entry, index: firstUnconfigured + offset, selected: firstUnconfigured + offset === cursor, isCurrent: row.entry.id === currentProvider }, row.entry.id)) : null)] }))] }));
|
|
751
|
+
}
|
|
752
|
+
/**
|
|
753
|
+
* A row for a provider nothing on this machine can serve yet.
|
|
754
|
+
*
|
|
755
|
+
* Deliberately a separate component from `ProviderRow` rather than one
|
|
756
|
+
* component with two modes: the detected row's shape is what operators read
|
|
757
|
+
* every day, and a shared body is a body where a change for the new rows moves
|
|
758
|
+
* the old ones. The columns line up because both pad the label to the same
|
|
759
|
+
* width; what differs is the third one, which says what is missing instead of
|
|
760
|
+
* where the credential came from.
|
|
761
|
+
*/
|
|
762
|
+
function UnconfiguredProviderRow({ entry, index, selected, isCurrent, }) {
|
|
763
|
+
const cursor = selected ? '›' : ' ';
|
|
764
|
+
const number = `${index + 1}.`;
|
|
765
|
+
const currentMark = isCurrent ? ' ← current' : '';
|
|
766
|
+
return (_jsxs(Box, { children: [_jsxs(Text, { color: selected ? theme.border.focus : theme.text.muted, children: [cursor, " "] }), _jsxs(Text, { color: theme.text.muted, children: [number, " "] }), _jsx(Text, { color: selected ? theme.border.focus : theme.text.primary, bold: selected, children: entry.label.padEnd(28) }), _jsx(Text, { color: theme.status.warn, children: credentialNeed(entry) }), isCurrent ? _jsx(Text, { color: theme.accent.system, children: currentMark }) : null] }));
|
|
767
|
+
}
|
|
654
768
|
function ProviderRow({ detected, index, selected, isCurrent, }) {
|
|
655
769
|
const cursor = selected ? '›' : ' ';
|
|
656
770
|
const number = `${index + 1}.`;
|
package/dist/tui/Picker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Picker.js","sourceRoot":"","sources":["../../src/tui/Picker.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Picker.js","sourceRoot":"","sources":["../../src/tui/Picker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The rows the provider picker lists: what this machine already has, then what
|
|
3
|
+
* it could have if the operator supplied a credential.
|
|
4
|
+
*
|
|
5
|
+
* The second half is the point. The picker used to list only what discovery
|
|
6
|
+
* found, so the one provider an operator had SAVED and held a key for — but had
|
|
7
|
+
* not yet exported as an environment variable — appeared nowhere on a screen
|
|
8
|
+
* that exists to choose a provider. There was no row to select and therefore no
|
|
9
|
+
* way to type its key: a list that showed four providers had no fifth row for
|
|
10
|
+
* the fifth one, and the screen's other exit (a sign-in) is a different kind of
|
|
11
|
+
* credential entirely.
|
|
12
|
+
*
|
|
13
|
+
* ## What is added, and what is deliberately not
|
|
14
|
+
*
|
|
15
|
+
* A provider joins the list only when **this build can construct it** and it
|
|
16
|
+
* **takes a credential the operator can type** — the registry's
|
|
17
|
+
* `constructible` and `acceptsTypedCredential` flags, read together and read
|
|
18
|
+
* from the registry rather than listed here. Entering a key for anything else
|
|
19
|
+
* produces a row that leads nowhere, which is worse than an absent row:
|
|
20
|
+
*
|
|
21
|
+
* - `bedrock` needs an AWS credential CHAIN (an access key, a secret, a
|
|
22
|
+
* region, a session token, or a role the SDK assumes) rather than one
|
|
23
|
+
* string. A single API-key field cannot express it, so the picker does not
|
|
24
|
+
* offer it.
|
|
25
|
+
* - `http` is a generic endpoint whose base URL is half the
|
|
26
|
+
* credential. A key with nowhere to send it is not a setup.
|
|
27
|
+
* - `lmstudio` cannot be constructed by this build at all.
|
|
28
|
+
* - `ollama` needs a local server, not a secret.
|
|
29
|
+
* - `codex` needs a device-code sign-in, which this screen already offers
|
|
30
|
+
* with `l` and names on the sign-in screen. It is skipped here so that one
|
|
31
|
+
* provider is not offered two different ways to be set up.
|
|
32
|
+
*
|
|
33
|
+
* `provider-list.test.ts` asserts that exclusion list by NAME, so a registry
|
|
34
|
+
* flag that flips turns the test red instead of silently adding or dropping a
|
|
35
|
+
* row.
|
|
36
|
+
*/
|
|
37
|
+
import { type DetectedProvider, type ProviderId, type ProviderRegistryEntry } from '../integrations/providers/index.js';
|
|
38
|
+
/**
|
|
39
|
+
* One row of the picker.
|
|
40
|
+
*
|
|
41
|
+
* The two arms are rendered differently and behave differently on Enter, which
|
|
42
|
+
* is why this is a union rather than a `DetectedProvider` with an optional key:
|
|
43
|
+
* the second arm has no `source`, no `apiKey` and no alternatives, and a type
|
|
44
|
+
* that pretended otherwise would let a caller ask a provider with no credential
|
|
45
|
+
* what models it has.
|
|
46
|
+
*/
|
|
47
|
+
export type ProviderListRow = {
|
|
48
|
+
readonly kind: 'detected';
|
|
49
|
+
readonly detected: DetectedProvider;
|
|
50
|
+
} | {
|
|
51
|
+
readonly kind: 'unconfigured';
|
|
52
|
+
readonly entry: ProviderRegistryEntry;
|
|
53
|
+
};
|
|
54
|
+
/** The provider a row is about, whichever kind of row it is. */
|
|
55
|
+
export declare function rowProviderId(row: ProviderListRow): ProviderId;
|
|
56
|
+
/**
|
|
57
|
+
* Providers this screen can set up by taking a credential from the operator.
|
|
58
|
+
*
|
|
59
|
+
* Derived from the registry, in registry order. Four of the twelve entries have
|
|
60
|
+
* a driver in this repository and are not listed here, for the reasons in the
|
|
61
|
+
* module comment.
|
|
62
|
+
*/
|
|
63
|
+
export declare function settableProviders(): readonly ProviderRegistryEntry[];
|
|
64
|
+
/**
|
|
65
|
+
* The full list, detected first and in the order discovery produced.
|
|
66
|
+
*
|
|
67
|
+
* Detected rows are passed through untouched: same order, same source text,
|
|
68
|
+
* same numbering. Appending is what keeps that promise — anything that sorted,
|
|
69
|
+
* merged or grouped the two together would move a row the operator has already
|
|
70
|
+
* learned the position of.
|
|
71
|
+
*
|
|
72
|
+
* `includeUnconfigured` is false on the signed-in-subscription screen, which
|
|
73
|
+
* offers only sessions that are already usable; a row needing a key contradicts
|
|
74
|
+
* that screen's one sentence.
|
|
75
|
+
*/
|
|
76
|
+
export declare function providerListRows(detected: readonly DetectedProvider[], includeUnconfigured?: boolean): readonly ProviderListRow[];
|
|
77
|
+
/**
|
|
78
|
+
* What an unconfigured row is missing, named as the thing to act on.
|
|
79
|
+
*
|
|
80
|
+
* The environment variable and not "not configured": the variable is the one
|
|
81
|
+
* action that both makes the provider work now and keeps it working after a
|
|
82
|
+
* restart, and a sentence that says only that something is absent leaves the
|
|
83
|
+
* operator to find that name. `requiresApiKey: false` exists for providers
|
|
84
|
+
* whose free catalogue works without one, so those are labelled optional rather
|
|
85
|
+
* than needed.
|
|
86
|
+
*
|
|
87
|
+
* The fallback is unreachable for the current registry (every entry that
|
|
88
|
+
* reaches this screen declares at least one variable) and is kept so that a
|
|
89
|
+
* future entry without one prints a sentence rather than "needs undefined".
|
|
90
|
+
*/
|
|
91
|
+
export declare function credentialNeed(entry: ProviderRegistryEntry): string;
|
|
92
|
+
/**
|
|
93
|
+
* Where the cursor starts.
|
|
94
|
+
*
|
|
95
|
+
* The provider in force, else the one this screen was opened for — the saved
|
|
96
|
+
* provider whose credential is missing — else the top of the list.
|
|
97
|
+
*
|
|
98
|
+
* The middle case is why this is a function rather than one `findIndex`. A
|
|
99
|
+
* saved provider with no credential is not on the machine, so it is not in
|
|
100
|
+
* `detected`, so it used to fall through to row 1: the picker opened saying
|
|
101
|
+
* "no credential found" for the saved provider with the cursor elsewhere. Now the
|
|
102
|
+
* highlighted row IS the row that needs the key, which is also the row `k`
|
|
103
|
+
* targets.
|
|
104
|
+
*/
|
|
105
|
+
export declare function initialProviderRow(rows: readonly ProviderListRow[], currentProvider: string | null | undefined, keyEntryFor: ProviderId | null | undefined): number;
|
|
106
|
+
//# sourceMappingURL=provider-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-list.d.ts","sourceRoot":"","sources":["../../src/tui/provider-list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAEN,KAAK,gBAAgB,EAErB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,MAAM,oCAAoC,CAAA;AAE3C;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,GAClE;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,CAAA;AAE3E,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,GAAG,UAAU,CAE9D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,qBAAqB,EAAE,CAIpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,mBAAmB,UAAO,GACxB,SAAS,eAAe,EAAE,CAY5B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAInE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,SAAS,eAAe,EAAE,EAChC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC1C,WAAW,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GACxC,MAAM,CAUR"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The rows the provider picker lists: what this machine already has, then what
|
|
3
|
+
* it could have if the operator supplied a credential.
|
|
4
|
+
*
|
|
5
|
+
* The second half is the point. The picker used to list only what discovery
|
|
6
|
+
* found, so the one provider an operator had SAVED and held a key for — but had
|
|
7
|
+
* not yet exported as an environment variable — appeared nowhere on a screen
|
|
8
|
+
* that exists to choose a provider. There was no row to select and therefore no
|
|
9
|
+
* way to type its key: a list that showed four providers had no fifth row for
|
|
10
|
+
* the fifth one, and the screen's other exit (a sign-in) is a different kind of
|
|
11
|
+
* credential entirely.
|
|
12
|
+
*
|
|
13
|
+
* ## What is added, and what is deliberately not
|
|
14
|
+
*
|
|
15
|
+
* A provider joins the list only when **this build can construct it** and it
|
|
16
|
+
* **takes a credential the operator can type** — the registry's
|
|
17
|
+
* `constructible` and `acceptsTypedCredential` flags, read together and read
|
|
18
|
+
* from the registry rather than listed here. Entering a key for anything else
|
|
19
|
+
* produces a row that leads nowhere, which is worse than an absent row:
|
|
20
|
+
*
|
|
21
|
+
* - `bedrock` needs an AWS credential CHAIN (an access key, a secret, a
|
|
22
|
+
* region, a session token, or a role the SDK assumes) rather than one
|
|
23
|
+
* string. A single API-key field cannot express it, so the picker does not
|
|
24
|
+
* offer it.
|
|
25
|
+
* - `http` is a generic endpoint whose base URL is half the
|
|
26
|
+
* credential. A key with nowhere to send it is not a setup.
|
|
27
|
+
* - `lmstudio` cannot be constructed by this build at all.
|
|
28
|
+
* - `ollama` needs a local server, not a secret.
|
|
29
|
+
* - `codex` needs a device-code sign-in, which this screen already offers
|
|
30
|
+
* with `l` and names on the sign-in screen. It is skipped here so that one
|
|
31
|
+
* provider is not offered two different ways to be set up.
|
|
32
|
+
*
|
|
33
|
+
* `provider-list.test.ts` asserts that exclusion list by NAME, so a registry
|
|
34
|
+
* flag that flips turns the test red instead of silently adding or dropping a
|
|
35
|
+
* row.
|
|
36
|
+
*/
|
|
37
|
+
import { ALL_PROVIDER_IDS, PROVIDER_REGISTRY, } from '../integrations/providers/index.js';
|
|
38
|
+
/** The provider a row is about, whichever kind of row it is. */
|
|
39
|
+
export function rowProviderId(row) {
|
|
40
|
+
return row.kind === 'detected' ? row.detected.entry.id : row.entry.id;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Providers this screen can set up by taking a credential from the operator.
|
|
44
|
+
*
|
|
45
|
+
* Derived from the registry, in registry order. Four of the twelve entries have
|
|
46
|
+
* a driver in this repository and are not listed here, for the reasons in the
|
|
47
|
+
* module comment.
|
|
48
|
+
*/
|
|
49
|
+
export function settableProviders() {
|
|
50
|
+
return ALL_PROVIDER_IDS.map((id) => PROVIDER_REGISTRY[id]).filter((entry) => entry.constructible && entry.acceptsTypedCredential);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The full list, detected first and in the order discovery produced.
|
|
54
|
+
*
|
|
55
|
+
* Detected rows are passed through untouched: same order, same source text,
|
|
56
|
+
* same numbering. Appending is what keeps that promise — anything that sorted,
|
|
57
|
+
* merged or grouped the two together would move a row the operator has already
|
|
58
|
+
* learned the position of.
|
|
59
|
+
*
|
|
60
|
+
* `includeUnconfigured` is false on the signed-in-subscription screen, which
|
|
61
|
+
* offers only sessions that are already usable; a row needing a key contradicts
|
|
62
|
+
* that screen's one sentence.
|
|
63
|
+
*/
|
|
64
|
+
export function providerListRows(detected, includeUnconfigured = true) {
|
|
65
|
+
const rows = detected.map((provider) => ({
|
|
66
|
+
kind: 'detected',
|
|
67
|
+
detected: provider,
|
|
68
|
+
}));
|
|
69
|
+
if (!includeUnconfigured)
|
|
70
|
+
return rows;
|
|
71
|
+
const known = new Set(detected.map((provider) => provider.entry.id));
|
|
72
|
+
for (const entry of settableProviders()) {
|
|
73
|
+
if (known.has(entry.id))
|
|
74
|
+
continue;
|
|
75
|
+
rows.push({ kind: 'unconfigured', entry });
|
|
76
|
+
}
|
|
77
|
+
return rows;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* What an unconfigured row is missing, named as the thing to act on.
|
|
81
|
+
*
|
|
82
|
+
* The environment variable and not "not configured": the variable is the one
|
|
83
|
+
* action that both makes the provider work now and keeps it working after a
|
|
84
|
+
* restart, and a sentence that says only that something is absent leaves the
|
|
85
|
+
* operator to find that name. `requiresApiKey: false` exists for providers
|
|
86
|
+
* whose free catalogue works without one, so those are labelled optional rather
|
|
87
|
+
* than needed.
|
|
88
|
+
*
|
|
89
|
+
* The fallback is unreachable for the current registry (every entry that
|
|
90
|
+
* reaches this screen declares at least one variable) and is kept so that a
|
|
91
|
+
* future entry without one prints a sentence rather than "needs undefined".
|
|
92
|
+
*/
|
|
93
|
+
export function credentialNeed(entry) {
|
|
94
|
+
const envName = entry.envVars[0];
|
|
95
|
+
if (!envName)
|
|
96
|
+
return 'needs a credential';
|
|
97
|
+
return entry.requiresApiKey ? `needs ${envName}` : `${envName} optional`;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Where the cursor starts.
|
|
101
|
+
*
|
|
102
|
+
* The provider in force, else the one this screen was opened for — the saved
|
|
103
|
+
* provider whose credential is missing — else the top of the list.
|
|
104
|
+
*
|
|
105
|
+
* The middle case is why this is a function rather than one `findIndex`. A
|
|
106
|
+
* saved provider with no credential is not on the machine, so it is not in
|
|
107
|
+
* `detected`, so it used to fall through to row 1: the picker opened saying
|
|
108
|
+
* "no credential found" for the saved provider with the cursor elsewhere. Now the
|
|
109
|
+
* highlighted row IS the row that needs the key, which is also the row `k`
|
|
110
|
+
* targets.
|
|
111
|
+
*/
|
|
112
|
+
export function initialProviderRow(rows, currentProvider, keyEntryFor) {
|
|
113
|
+
if (currentProvider !== null && currentProvider !== undefined) {
|
|
114
|
+
const at = rows.findIndex((row) => rowProviderId(row) === currentProvider);
|
|
115
|
+
if (at >= 0)
|
|
116
|
+
return at;
|
|
117
|
+
}
|
|
118
|
+
if (keyEntryFor !== null && keyEntryFor !== undefined) {
|
|
119
|
+
const at = rows.findIndex((row) => rowProviderId(row) === keyEntryFor);
|
|
120
|
+
if (at >= 0)
|
|
121
|
+
return at;
|
|
122
|
+
}
|
|
123
|
+
return 0;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=provider-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-list.js","sourceRoot":"","sources":["../../src/tui/provider-list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EACN,gBAAgB,EAEhB,iBAAiB,GAGjB,MAAM,oCAAoC,CAAA;AAe3C,gEAAgE;AAChE,MAAM,UAAU,aAAa,CAAC,GAAoB;IACjD,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAA;AACtE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB;IAChC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAChE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,sBAAsB,CAC9D,CAAA;AACF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC/B,QAAqC,EACrC,mBAAmB,GAAG,IAAI;IAE1B,MAAM,IAAI,GAAsB,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,QAAQ;KAClB,CAAC,CAAC,CAAA;IACH,IAAI,CAAC,mBAAmB;QAAE,OAAO,IAAI,CAAA;IACrC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IACpE,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,SAAQ;QACjC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAAC,KAA4B;IAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAChC,IAAI,CAAC,OAAO;QAAE,OAAO,oBAAoB,CAAA;IACzC,OAAO,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,WAAW,CAAA;AACzE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CACjC,IAAgC,EAChC,eAA0C,EAC1C,WAA0C;IAE1C,IAAI,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAC/D,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC,CAAA;QAC1E,IAAI,EAAE,IAAI,CAAC;YAAE,OAAO,EAAE,CAAA;IACvB,CAAC;IACD,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACvD,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,CAAA;QACtE,IAAI,EAAE,IAAI,CAAC;YAAE,OAAO,EAAE,CAAA;IACvB,CAAC;IACD,OAAO,CAAC,CAAA;AACT,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@namzu/cli",
|
|
3
|
-
"version": "26.
|
|
3
|
+
"version": "26.2.0",
|
|
4
4
|
"description": "Interactive and headless terminal agent for Namzu, with provider discovery, durable sessions, tools and diagnostics.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"namzu",
|
|
@@ -49,13 +49,13 @@
|
|
|
49
49
|
"@namzu/anthropic": "6.0.0",
|
|
50
50
|
"@namzu/computer-use": "1.4.3",
|
|
51
51
|
"@namzu/deepseek": "^2.0.0",
|
|
52
|
-
"@namzu/files": "1.1.1",
|
|
53
52
|
"@namzu/ollama": "2.2.4",
|
|
53
|
+
"@namzu/files": "1.1.1",
|
|
54
54
|
"@namzu/openai": "4.0.0",
|
|
55
55
|
"@namzu/openrouter": "3.0.0",
|
|
56
56
|
"@namzu/sdk": "^43.0.0",
|
|
57
|
-
"@namzu/
|
|
58
|
-
"@namzu/
|
|
57
|
+
"@namzu/zen": "^2.1.1",
|
|
58
|
+
"@namzu/google": "^1.0.0"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@biomejs/biome": "^1.9.4",
|