@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 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
@@ -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;AAoBxF,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;AAyDD,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,2CA00Bb"}
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"}
@@ -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 saved one when this picker is open because its credential is missing;
55
- * otherwise the first key-capable provider, which is what the empty screen has
56
- * always done. Returns null when nothing here takes a typed credential.
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 keyCapableProviders()[0] ?? null;
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
- const initialIndex = (currentProvider !== null && currentProvider !== undefined
100
- ? detected.findIndex((d) => d.entry.id === currentProvider)
101
- : 0) || 0;
102
- const { selection: cursor, selectionRef: cursorRef, setSelection: setCursor, } = useSelectionIndex(Math.max(0, initialIndex));
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. Two screens offer it, for two reasons.
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
- // The empty one always has: with nothing detected, entering a credential
313
- // is the only thing that can happen here.
314
- //
315
- // The POPULATED one offers it when `keyEntryFor` is set, which was the
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
- if (modelPhase === null &&
348
- (detected.length === 0 || keyEntryFor) &&
349
- onCredential &&
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('No provider here takes a typed credential.');
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, detected.findIndex((provider) => provider.entry.id === modelPhase.provider.entry.id)));
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, detected.findIndex((provider) => provider.entry.id === modelPhase.provider.entry.id)));
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, detected.length, key.home ? 'first' : key.end ? 'last' : key.pageUp ? 'previous-page' : 'next-page'));
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, detected.length, 'previous'));
561
+ setCursor((current) => moveSelection(current, rows.length, 'previous'));
518
562
  return;
519
563
  }
520
564
  if (key.downArrow) {
521
- setCursor((current) => moveSelection(current, detected.length, 'next'));
565
+ setCursor((current) => moveSelection(current, rows.length, 'next'));
522
566
  return;
523
567
  }
524
568
  if (key.return) {
525
- const current = detected[cursorRef.current];
526
- if (!current) {
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 <= detected.length) {
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 the populated list — the same
594
- // condition the key handler uses, read from one place so the hint and the
595
- // keyboard cannot drift apart.
596
- const entryTarget = keyEntryFor && onCredential ? keyEntryTarget(keyEntryFor) : null;
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(Box, { flexDirection: "column", children: detected.map((d, i) => (_jsx(ProviderRow, { detected: d, index: i, selected: i === cursor, isCurrent: d.entry.id === currentProvider }, d.entry.id))) }), _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 ? ` · k enter a credential for ${entryTarget.label}` : '', onLogin && selectionKind !== 'signed-in-subscription'
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}.`;
@@ -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.1.0",
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/google": "^1.0.0",
58
- "@namzu/zen": "^2.1.1"
57
+ "@namzu/zen": "^2.1.1",
58
+ "@namzu/google": "^1.0.0"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@biomejs/biome": "^1.9.4",