@namzu/cli 33.2.1 → 34.1.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 +26 -0
- package/README.md +15 -11
- package/dist/doctor/checks/chain.d.ts.map +1 -1
- package/dist/doctor/checks/chain.js +15 -8
- package/dist/doctor/checks/chain.js.map +1 -1
- package/dist/doctor/checks/credentials.d.ts.map +1 -1
- package/dist/doctor/checks/credentials.js +12 -3
- package/dist/doctor/checks/credentials.js.map +1 -1
- package/dist/integrations/providers/access.d.ts +4 -2
- package/dist/integrations/providers/access.d.ts.map +1 -1
- package/dist/integrations/providers/access.js +6 -3
- package/dist/integrations/providers/access.js.map +1 -1
- package/dist/integrations/providers/discover.d.ts +5 -5
- package/dist/integrations/providers/discover.d.ts.map +1 -1
- package/dist/integrations/providers/discover.js +4 -4
- package/dist/integrations/providers/registry.js +1 -1
- package/dist/integrations/providers/registry.js.map +1 -1
- package/dist/integrations/providers/setup.d.ts.map +1 -1
- package/dist/integrations/providers/setup.js +7 -3
- package/dist/integrations/providers/setup.js.map +1 -1
- package/dist/tui/Picker.d.ts.map +1 -1
- package/dist/tui/Picker.js +22 -6
- package/dist/tui/Picker.js.map +1 -1
- package/dist/tui/agent.d.ts.map +1 -1
- package/dist/tui/agent.js +24 -6
- package/dist/tui/agent.js.map +1 -1
- package/dist/tui/model-choices.d.ts +4 -6
- package/dist/tui/model-choices.d.ts.map +1 -1
- package/dist/tui/model-choices.js +17 -12
- package/dist/tui/model-choices.js.map +1 -1
- package/dist/tui/provider-list.d.ts +3 -3
- package/dist/tui/provider-list.d.ts.map +1 -1
- package/dist/tui/provider-list.js +8 -4
- package/dist/tui/provider-list.js.map +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @namzu/cli
|
|
2
2
|
|
|
3
|
+
## 34.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- f0505b5: Anonymous Zen users can now select all eight bundled free models instead of only Space Bunny. The seven previously blocked models use an experimental OpenCode-compatible request identity on the official Zen endpoint; Space Bunny keeps its verified direct request path, and keyed Zen and Zen Go requests are unchanged. Zen may still reject an experimental model or route, so a free catalogue entry is not a guarantee of service. The CLI labels this access as experimental and keeps Space Bunny as its default.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [f0505b5]
|
|
12
|
+
- @namzu/zen@3.1.0
|
|
13
|
+
|
|
14
|
+
## 34.0.0
|
|
15
|
+
|
|
16
|
+
### Major Changes
|
|
17
|
+
|
|
18
|
+
- 29b142f: Zen Go no longer includes `glm-5.1`, `qwen3.6-plus`, or `qwen3.7-max` in its bundled supported model roster. The service still lists these IDs, but its current documentation provides no route or price for them. Applications relying on these IDs should select a documented model or, if they have independently verified the wire, configure `ZenGoProvider` with an explicit `protocol`. The CLI no longer offers these reviewed omissions.
|
|
19
|
+
|
|
20
|
+
The default anonymous Zen model changes from `muse-spark-1.3-contributor-free` to `space-bunny-free` in both the SDK and CLI. Callers that need the old choice must pass `model: 'muse-spark-1.3-contributor-free'` explicitly and try credentialed Zen access, subject to gateway admission. The gateway currently rejects direct keyless Namzu requests to Muse and six other documented free models with HTTP 403; only Space Bunny Free completed a live keyless text and tool-continuation test. Anonymous model discovery now admits only that verified model while retaining the other free models for credentialed use.
|
|
21
|
+
|
|
22
|
+
Zen and Zen Go now follow the reference client's route overrides for DeepSeek V4 Flash and MiniMax, handle Muse Spark reasoning continuation without replaying gateway-bound ciphertext, and read the current Zen Go price table when refreshing the catalogue. These keyed routes have wire-fixture coverage but were not live-tested with an account. The CLI distinguishes model listing from verified inference and explains the gateway's specific HTTP 403 free-tier refusal.
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- Updated dependencies [29b142f]
|
|
27
|
+
- @namzu/zen@3.0.0
|
|
28
|
+
|
|
3
29
|
## 33.2.1
|
|
4
30
|
|
|
5
31
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -169,12 +169,14 @@ these:`, each marked with the variable that sets it up (`needs
|
|
|
169
169
|
OPENROUTER_API_KEY`), and selecting one opens the paste field for that provider.
|
|
170
170
|
|
|
171
171
|
Zen and Zen Go appear as separate providers in `/model` (press
|
|
172
|
-
`p` to change providers).
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
172
|
+
`p` to change providers). Without a key, Zen defaults to `space-bunny-free`,
|
|
173
|
+
which completed keyless text and tool-continuation turns through Namzu on
|
|
174
|
+
2026-09-28. The other seven bundled free models are also selectable without a
|
|
175
|
+
key through an experimental request path; the gateway may refuse them.
|
|
176
|
+
Selecting the anonymous option does not open a login or key prompt. Installing
|
|
177
|
+
OpenCode is recommended for comparing results in its own client; Namzu sends
|
|
178
|
+
requests directly and does not use that installation. Use a Zen API key for
|
|
179
|
+
credentialed access to paid models.
|
|
178
180
|
|
|
179
181
|
For paid Zen models, set `OPENCODE_API_KEY` or `OPENCODE_ZEN_API_KEY`; Go
|
|
180
182
|
requires `OPENCODE_GO_API_KEY` or its own installed API credential. When both
|
|
@@ -190,17 +192,19 @@ Namzu reads the `opencode` entry for Zen and `opencode-go` for Go, accepts
|
|
|
190
192
|
only API-key entries, and leaves the file unchanged. OAuth entries are not
|
|
191
193
|
converted into API keys, and a Zen key is never reused for Go. Keys entered
|
|
192
194
|
in the picker remain temporary.
|
|
193
|
-
|
|
194
|
-
and
|
|
195
|
+
Anonymous Zen is listed after existing accounts and reachable local providers
|
|
196
|
+
and marks its free-model access experimental.
|
|
195
197
|
|
|
196
198
|
```bash
|
|
197
199
|
namzu exec --provider zen "Explain this project"
|
|
198
|
-
namzu exec --provider zen --model
|
|
200
|
+
namzu exec --provider zen --model space-bunny-free "Explain this project"
|
|
201
|
+
namzu exec --provider zen --model big-pickle "Explain this project"
|
|
199
202
|
namzu exec --provider zen-go --model glm-5.3-flash "Explain this project"
|
|
200
203
|
```
|
|
201
204
|
|
|
202
|
-
The Zen commands
|
|
203
|
-
own credential. All use the
|
|
205
|
+
The Zen commands attempt anonymous access when no key is available; the
|
|
206
|
+
gateway may refuse that request. Go requires its own credential. All use the
|
|
207
|
+
existing folder-trust rules. The same
|
|
204
208
|
provider/model flags work with `exec --json`.
|
|
205
209
|
The picker lists each service's supported models from the provider catalogue;
|
|
206
210
|
an explicit model selection is saved using the existing preferences flow.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAUhE,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,0CAA0C,CAAA;AAKlG,MAAM,WAAW,yBAAyB;IACzC,qEAAqE;IACrE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAA;IACrC,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAsB,qBAAqB,CAC1C,OAAO,GAAE,yBAA8B,GACrC,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAUhE,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,0CAA0C,CAAA;AAKlG,MAAM,WAAW,yBAAyB;IACzC,qEAAqE;IACrE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAA;IACrC,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAsB,qBAAqB,CAC1C,OAAO,GAAE,yBAA8B,GACrC,OAAO,CAAC,iBAAiB,CAAC,CA8K5B;AAED,eAAO,MAAM,kBAAkB,EAAE,WAIhC,CAAA"}
|
|
@@ -104,6 +104,7 @@ export async function describeProviderChain(options = {}) {
|
|
|
104
104
|
const lines = [];
|
|
105
105
|
let unusable = 0;
|
|
106
106
|
let primaryUnusable = false;
|
|
107
|
+
let anonymousZen = false;
|
|
107
108
|
for (const [index, member] of members.entries()) {
|
|
108
109
|
const entry = PROVIDER_REGISTRY[member.id];
|
|
109
110
|
const position = index === 0 ? 'primary' : `fallback ${index}`;
|
|
@@ -116,6 +117,8 @@ export async function describeProviderChain(options = {}) {
|
|
|
116
117
|
const det = detected.find((d) => d.entry.id === member.id);
|
|
117
118
|
const needsKey = requiresCredentialForModel(entry, member.model ?? entry.defaultModel);
|
|
118
119
|
const usable = needsKey ? hasApiCredential(entry, det?.apiKey) : Boolean(det);
|
|
120
|
+
if (entry.id === 'zen' && usable && !hasApiCredential(entry, det?.apiKey))
|
|
121
|
+
anonymousZen = true;
|
|
119
122
|
if (!usable) {
|
|
120
123
|
unusable++;
|
|
121
124
|
if (index === 0)
|
|
@@ -128,7 +131,7 @@ export async function describeProviderChain(options = {}) {
|
|
|
128
131
|
: entry.id === 'zen' && usable
|
|
129
132
|
? hasApiCredential(entry, det?.apiKey)
|
|
130
133
|
? 'credential found'
|
|
131
|
-
: 'free models
|
|
134
|
+
: 'experimental free models (gateway may refuse)'
|
|
132
135
|
: usable
|
|
133
136
|
? 'reachable'
|
|
134
137
|
: 'NOT REACHABLE';
|
|
@@ -176,17 +179,21 @@ export async function describeProviderChain(options = {}) {
|
|
|
176
179
|
: 'The primary provider could not be loaded, so no turn can start. Run `namzu` to pick a provider that can.',
|
|
177
180
|
};
|
|
178
181
|
}
|
|
179
|
-
if (unusable > 0 || unreadable.length > 0 || disagreements.length > 0) {
|
|
182
|
+
if (unusable > 0 || unreadable.length > 0 || disagreements.length > 0 || anonymousZen) {
|
|
180
183
|
return {
|
|
181
|
-
//
|
|
182
|
-
//
|
|
184
|
+
// Anonymous Zen may be refused at inference time even when its model
|
|
185
|
+
// catalogue answers. That is unverified, not a failed credential check.
|
|
183
186
|
status: 'warn',
|
|
184
187
|
message: unusable > 0
|
|
185
188
|
? `${unusable} of ${members.length} chain member(s) cannot be used:\n${message}`
|
|
186
|
-
:
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
189
|
+
: anonymousZen
|
|
190
|
+
? `provider chain configured, with experimental free-model access:\n${message}`
|
|
191
|
+
: `provider chain usable, with limitations:\n${message}`,
|
|
192
|
+
remediation: anonymousZen
|
|
193
|
+
? 'Zen free models are experimental; the gateway may refuse direct Namzu requests. OpenCode installation is recommended for its own client. If a turn is refused, configure OPENCODE_API_KEY or choose another provider.'
|
|
194
|
+
: unusable > 0
|
|
195
|
+
? 'The primary still works, so turns will start. But a fallback with no credential is not a fallback — set its key, or take it out of the chain.'
|
|
196
|
+
: 'The primary still works. A fallback that declares less than your primary will serve shorter or less capable turns if the chain ever falls over to it.',
|
|
190
197
|
};
|
|
191
198
|
}
|
|
192
199
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/doctor/checks/chain.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/doctor/checks/chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAqB,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAqB,MAAM,YAAY,CAAA;AAKhE;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAmEpC,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { hasApiCredential } from '../../integrations/providers/access.js';
|
|
1
2
|
import { discoverProviders } from '../../integrations/providers/discover.js';
|
|
2
3
|
/**
|
|
3
4
|
* Which credential sources namzu actually scanned, and what each yielded.
|
|
@@ -42,9 +43,11 @@ export const credentialSourcesCheck = {
|
|
|
42
43
|
const lines = detected.map((d) => {
|
|
43
44
|
switch (d.source.kind) {
|
|
44
45
|
case 'env':
|
|
46
|
+
if (d.entry.id === 'zen' && !hasApiCredential(d.entry, d.apiKey))
|
|
47
|
+
return `${d.entry.id} (env · ${d.source.envName}=public; free models experimental)`;
|
|
45
48
|
return `${d.entry.id} (env · ${d.source.envName})`;
|
|
46
49
|
case 'public':
|
|
47
|
-
return `${d.entry.id} (free models ·
|
|
50
|
+
return `${d.entry.id} (experimental free models · gateway may refuse)`;
|
|
48
51
|
case 'opencode-file':
|
|
49
52
|
return `${d.entry.id} (OpenCode API key · ${d.source.path})`;
|
|
50
53
|
case 'keychain':
|
|
@@ -65,9 +68,15 @@ export const credentialSourcesCheck = {
|
|
|
65
68
|
return `${d.entry.id} (typed · current session)`;
|
|
66
69
|
}
|
|
67
70
|
});
|
|
71
|
+
const onlyAnonymousZen = detected.every((d) => d.entry.id === 'zen' && !hasApiCredential(d.entry, d.apiKey));
|
|
68
72
|
return {
|
|
69
|
-
status: 'pass',
|
|
70
|
-
message: `${detected.length} provider source(s)
|
|
73
|
+
status: onlyAnonymousZen ? 'warn' : 'pass',
|
|
74
|
+
message: `${detected.length} provider source(s) discovered: ${lines.join(', ')}`,
|
|
75
|
+
...(onlyAnonymousZen
|
|
76
|
+
? {
|
|
77
|
+
remediation: 'Zen free models are experimental; the gateway may refuse direct Namzu requests. OpenCode installation is recommended for its own client. If a turn is refused, configure OPENCODE_API_KEY or choose another provider.',
|
|
78
|
+
}
|
|
79
|
+
: {}),
|
|
71
80
|
};
|
|
72
81
|
},
|
|
73
82
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../src/doctor/checks/credentials.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAE5E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAgB;IAClD,EAAE,EAAE,uBAAuB;IAC3B,QAAQ,EAAE,WAAW;IACrB,GAAG,EAAE,KAAK,IAAgC,EAAE;QAC3C,IAAI,QAAuD,CAAA;QAC3D,IAAI,CAAC;YACJ,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAA;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,oEAAoE;YACpE,sEAAsE;YACtE,OAAO;gBACN,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,gCAAgC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aAC3F,CAAA;QACF,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACN,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,yBAAyB;gBAClC,WAAW,EACV,kTAAkT;aACnT,CAAA;QACF,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvB,KAAK,KAAK;oBACT,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAA;gBACnD,KAAK,QAAQ;oBACZ,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../src/doctor/checks/credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,10 @@ import type { ProviderRegistryEntry } from './registry.js';
|
|
|
2
2
|
/** The service's public marker is not an account credential. */
|
|
3
3
|
export declare function hasApiCredential(entry: ProviderRegistryEntry, apiKey: string | undefined): boolean;
|
|
4
4
|
/**
|
|
5
|
-
* Anonymous Zen
|
|
6
|
-
* the session's active
|
|
5
|
+
* Anonymous Zen selection admits the driver's explicit experimental free list.
|
|
6
|
+
* The helper also checks zero prices on the session's active catalogue, which
|
|
7
|
+
* the background refresh can replace. The separate supportsAnonymousAccess
|
|
8
|
+
* flag retains its meaning of verified direct access.
|
|
7
9
|
*/
|
|
8
10
|
export declare function requiresCredentialForModel(entry: ProviderRegistryEntry, model: string): boolean;
|
|
9
11
|
export declare function canSelectModel(entry: ProviderRegistryEntry, apiKey: string | undefined, model: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/access.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/access.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAG1D,gEAAgE;AAChE,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAKT;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAK/F;AAED,wBAAgB,cAAc,CAC7B,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,GACX,OAAO,CAET"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isExperimentalFreeZenModel } from '@namzu/zen/catalogue';
|
|
1
2
|
import { findActiveZenModel } from './zen-catalogue.js';
|
|
2
3
|
/** The service's public marker is not an account credential. */
|
|
3
4
|
export function hasApiCredential(entry, apiKey) {
|
|
@@ -7,12 +8,14 @@ export function hasApiCredential(entry, apiKey) {
|
|
|
7
8
|
return Boolean(apiKey);
|
|
8
9
|
}
|
|
9
10
|
/**
|
|
10
|
-
* Anonymous Zen
|
|
11
|
-
* the session's active
|
|
11
|
+
* Anonymous Zen selection admits the driver's explicit experimental free list.
|
|
12
|
+
* The helper also checks zero prices on the session's active catalogue, which
|
|
13
|
+
* the background refresh can replace. The separate supportsAnonymousAccess
|
|
14
|
+
* flag retains its meaning of verified direct access.
|
|
12
15
|
*/
|
|
13
16
|
export function requiresCredentialForModel(entry, model) {
|
|
14
17
|
return (entry.requiresApiKey ||
|
|
15
|
-
(entry.id === 'zen' && findActiveZenModel('zen', model)
|
|
18
|
+
(entry.id === 'zen' && !isExperimentalFreeZenModel('zen', findActiveZenModel('zen', model))));
|
|
16
19
|
}
|
|
17
20
|
export function canSelectModel(entry, apiKey, model) {
|
|
18
21
|
return hasApiCredential(entry, apiKey) || !requiresCredentialForModel(entry, model);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../../src/integrations/providers/access.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../../src/integrations/providers/access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD,gEAAgE;AAChE,MAAM,UAAU,gBAAgB,CAC/B,KAA4B,EAC5B,MAA0B;IAE1B,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QACjD,OAAO,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,CAAA;IAC7D,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAA4B,EAAE,KAAa;IACrF,OAAO,CACN,KAAK,CAAC,cAAc;QACpB,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAC5F,CAAA;AACF,CAAC;AAED,MAAM,UAAU,cAAc,CAC7B,KAA4B,EAC5B,MAA0B,EAC1B,KAAa;IAEb,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACpF,CAAC"}
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* API environment alternatives. Gemini prefers environment API keys, then a
|
|
6
6
|
* Namzu-owned saved key, then its installed CLI Google session. Zen/Go use
|
|
7
7
|
* direct API environment variables, then exact API entries in OpenCode's owner
|
|
8
|
-
* store. Anonymous Zen is
|
|
9
|
-
* and is ordered last.
|
|
8
|
+
* store. Anonymous Zen is offered without a credential or local installation
|
|
9
|
+
* and is ordered last; discovery has not verified inference access.
|
|
10
10
|
*
|
|
11
|
-
* A public source
|
|
12
|
-
*
|
|
11
|
+
* A public source means the documented anonymous option exists. It does not
|
|
12
|
+
* assert model inference access or network reachability. Local servers require a
|
|
13
13
|
* successful bounded probe. Discovery never writes borrowed credentials.
|
|
14
14
|
*/
|
|
15
15
|
import type { CredentialOrigin } from './oauth.js';
|
|
@@ -18,7 +18,7 @@ export type DetectionSource = {
|
|
|
18
18
|
readonly kind: 'env';
|
|
19
19
|
readonly envName: string;
|
|
20
20
|
}
|
|
21
|
-
/**
|
|
21
|
+
/** Anonymous Zen option; inference access and connectivity are unverified. */
|
|
22
22
|
| {
|
|
23
23
|
readonly kind: 'public';
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/discover.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAoBH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAAqB,KAAK,UAAU,EAAE,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE9F,MAAM,MAAM,eAAe,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACpD,
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* API environment alternatives. Gemini prefers environment API keys, then a
|
|
6
6
|
* Namzu-owned saved key, then its installed CLI Google session. Zen/Go use
|
|
7
7
|
* direct API environment variables, then exact API entries in OpenCode's owner
|
|
8
|
-
* store. Anonymous Zen is
|
|
9
|
-
* and is ordered last.
|
|
8
|
+
* store. Anonymous Zen is offered without a credential or local installation
|
|
9
|
+
* and is ordered last; discovery has not verified inference access.
|
|
10
10
|
*
|
|
11
|
-
* A public source
|
|
12
|
-
*
|
|
11
|
+
* A public source means the documented anonymous option exists. It does not
|
|
12
|
+
* assert model inference access or network reachability. Local servers require a
|
|
13
13
|
* successful bounded probe. Discovery never writes borrowed credentials.
|
|
14
14
|
*/
|
|
15
15
|
import { EnvCredentialProvider } from '@namzu/sdk';
|
|
@@ -141,7 +141,7 @@ export const PROVIDER_REGISTRY = Object.freeze({
|
|
|
141
141
|
vendor: 'zen',
|
|
142
142
|
envVars: ['OPENCODE_API_KEY', 'OPENCODE_ZEN_API_KEY'],
|
|
143
143
|
defaultBaseUrl: 'https://opencode.ai/zen/v1',
|
|
144
|
-
defaultModel: '
|
|
144
|
+
defaultModel: 'space-bunny-free',
|
|
145
145
|
requiresApiKey: false,
|
|
146
146
|
acceptsTypedCredential: true,
|
|
147
147
|
constructible: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/integrations/providers/registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/integrations/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,SAAS,EAAE,oBAAoB;IAC/B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,iBAAiB;IACzB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;IACxB,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,gBAAgB;IACxB,QAAQ,EAAE,mBAAmB;IAC7B,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,iCAAiC;CAC9B,CAAC,CAAA;AAgFX,MAAM,CAAC,MAAM,iBAAiB,GAAwD,MAAM,CAAC,MAAM,CAClG;IACC,SAAS,EAAE;QACV,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,oBAAoB;QAC3B,MAAM,EAAE,WAAW;QACnB,sDAAsD;QACtD,qEAAqE;QACrE,8BAA8B;QAC9B,OAAO,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,yBAAyB,CAAC;QAC5E,YAAY,EAAE,eAAe;QAC7B,cAAc,EAAE,IAAI;QACpB,sBAAsB,EAAE,IAAI;QAC5B,iBAAiB,EAAE,SAAS;QAC5B,aAAa,EAAE,IAAI;QACnB,aAAa,EAAE,kBAAkB;KACjC;IACD,KAAK,EAAE;QACN,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,6BAA6B;QACpC,uEAAuE;QACvE,MAAM,EAAE,QAAQ;QAChB,sEAAsE;QACtE,wEAAwE;QACxE,0EAA0E;QAC1E,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,uCAAuC;QACvD,YAAY,EAAE,aAAa;QAC3B,cAAc,EAAE,IAAI;QACpB,sBAAsB,EAAE,KAAK;QAC7B,iBAAiB,EAAE,QAAQ;QAC3B,aAAa,EAAE,IAAI;QACnB,aAAa,EAAE,eAAe;KAC9B;IACD,MAAM,EAAE;QACP,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,iBAAiB;QACxB,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;QAC7C,YAAY,EAAE,kBAAkB;QAChC,cAAc,EAAE,IAAI;QACpB,sBAAsB,EAAE,IAAI;QAC5B,aAAa,EAAE,IAAI;QACnB,aAAa,EAAE,eAAe;KAC9B;IACD,MAAM,EAAE;QACP,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,sEAAsE;QACtE,qBAAqB;QACrB,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC,gBAAgB,CAAC;QAC3B,YAAY,EAAE,QAAQ;QACtB,cAAc,EAAE,IAAI;QACpB,sBAAsB,EAAE,IAAI;QAC5B,aAAa,EAAE,IAAI;QACnB,aAAa,EAAE,eAAe;KAC9B;IACD,QAAQ,EAAE;QACT,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,CAAC,kBAAkB,CAAC;QAC7B,cAAc,EAAE,0BAA0B;QAC1C,mEAAmE;QACnE,kEAAkE;QAClE,0DAA0D;QAC1D,YAAY,EAAE,mBAAmB;QACjC,cAAc,EAAE,IAAI;QACpB,sBAAsB,EAAE,IAAI;QAC5B,aAAa,EAAE,IAAI;QACnB,aAAa,EAAE,iBAAiB;KAChC;IACD,UAAU,EAAE;QACX,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,CAAC,oBAAoB,CAAC;QAC/B,cAAc,EAAE,8BAA8B;QAC9C,YAAY,EAAE,yBAAyB;QACvC,cAAc,EAAE,IAAI;QACpB,sBAAsB,EAAE,IAAI;QAC5B,aAAa,EAAE,IAAI;QACnB,aAAa,EAAE,mBAAmB;KAClC;IACD,GAAG,EAAE;QACJ,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,KAAK;QACZ,kEAAkE;QAClE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;QACrD,cAAc,EAAE,4BAA4B;QAC5C,YAAY,EAAE,kBAAkB;QAChC,cAAc,EAAE,KAAK;QACrB,sBAAsB,EAAE,IAAI;QAC5B,aAAa,EAAE,IAAI;QACnB,aAAa,EAAE,YAAY;KAC3B;IACD,QAAQ,EAAE;QACT,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,QAAQ;QAChB,0EAA0E;QAC1E,OAAO,EAAE,CAAC,qBAAqB,CAAC;QAChC,cAAc,EAAE,+BAA+B;QAC/C,YAAY,EAAE,eAAe;QAC7B,cAAc,EAAE,IAAI;QACpB,sBAAsB,EAAE,IAAI;QAC5B,aAAa,EAAE,IAAI;QACnB,aAAa,EAAE,YAAY;KAC3B;IACD,MAAM,EAAE;QACP,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,wBAAwB;QACxC,QAAQ,EAAE,iCAAiC;QAC3C,YAAY,EAAE,UAAU;QACxB,cAAc,EAAE,KAAK;QACrB,sBAAsB,EAAE,KAAK;QAC7B,aAAa,EAAE,IAAI;QACnB,aAAa,EAAE,eAAe;KAC9B;IACD,QAAQ,EAAE;QACT,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,mBAAmB;QAC1B,uEAAuE;QACvE,6DAA6D;QAC7D,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,0BAA0B;QAC1C,QAAQ,EAAE,iCAAiC;QAC3C,YAAY,EAAE,MAAM;QACpB,cAAc,EAAE,KAAK;QACrB,sBAAsB,EAAE,KAAK;QAC7B,aAAa,EAAE,KAAK;KACpB;IACD,OAAO,EAAE;QACR,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE,wCAAwC;QACxE,oEAAoE;QACpE,gEAAgE;QAChE,iEAAiE;QACjE,kEAAkE;QAClE,mEAAmE;QACnE,mEAAmE;QACnE,8DAA8D;QAC9D,oEAAoE;QACpE,uDAAuD;QACvD,YAAY,EAAE,gCAAgC;QAC9C,cAAc,EAAE,IAAI;QACpB,sBAAsB,EAAE,IAAI;QAC5B,aAAa,EAAE,KAAK;KACpB;IACD,IAAI,EAAE;QACL,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,iCAAiC;QACxC,MAAM,EAAE,MAAM;QACd,oEAAoE;QACpE,kDAAkD;QAClD,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,QAAQ;QACtB,cAAc,EAAE,IAAI;QACpB,sBAAsB,EAAE,IAAI;QAC5B,aAAa,EAAE,KAAK;KACpB;CACD,CACD,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA0B,MAAM,CAAC,MAAM,CACnE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAiB,CAC9C,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAgB;IACvD,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,MAAM,KAAK,MAAM,CAClC,CAAA;AACF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,0BAA0B,CAAC,EAAU;IACpD,MAAM,KAAK,GAAI,iBAAuE,CAAC,EAAE,CAAC,CAAA;IAC1F,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,EAAE,CAAA;IAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAC7F,IAAI,CACJ,CAAA;IACD,OAAO,GAAG,KAAK,MAAM,EAAE,iHAAiH,MAAM,kDAAkD,CAAA;AACjM,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAA4B;IACpE,MAAM,MAAM,GACX,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAA;IAChG,OAAO,2BAA2B,KAAK,CAAC,KAAK,yBAAyB,MAAM,4DAA4D,CAAA;AACzI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/setup.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;EAgBlB,CAAA;AACV,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAC3D,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACvB;AAED,iGAAiG;AACjG,wBAAgB,eAAe,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE;IACR,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C,GACC,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAiGpE;AAED,wBAAsB,cAAc,CACnC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,WAAW,GACjB,OAAO,CAAC,UAAU,EAAE,CAAC,CA0BvB;AAED,wBAAgB,cAAc,CAC7B,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE;UArI7D,MAAM,GAAG,IAAI;YAAU,MAAM;aAAW,OAAO;GA+IjE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { execFile, spawn } from 'node:child_process';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { resolveNpmInvocation } from '../npm-invocation.js';
|
|
4
|
+
import { hasApiCredential } from './access.js';
|
|
4
5
|
export const SETUP_HARNESSES = [
|
|
5
6
|
{ id: 'codex', label: 'Codex', binary: 'codex', npmPackage: '@openai/codex', provider: 'codex' },
|
|
6
7
|
{
|
|
@@ -126,13 +127,16 @@ export async function probeHarnesses(detected, cwd, signal) {
|
|
|
126
127
|
signal,
|
|
127
128
|
timeoutMs: 3000,
|
|
128
129
|
});
|
|
129
|
-
const
|
|
130
|
+
const provider = detected.find((item) => item.entry.id === harness.provider);
|
|
131
|
+
const source = provider?.source;
|
|
130
132
|
return {
|
|
131
133
|
harness,
|
|
132
134
|
installed: !result.missing,
|
|
133
135
|
version: result.code === 0 ? (result.output.trim().split('\n')[0] ?? '') : 'Version check failed',
|
|
134
|
-
access:
|
|
135
|
-
|
|
136
|
+
access: harness.provider === 'zen' &&
|
|
137
|
+
provider !== undefined &&
|
|
138
|
+
!hasApiCredential(provider.entry, provider.apiKey)
|
|
139
|
+
? 'Zen free models · experimental; OpenCode installation recommended; gateway may refuse'
|
|
136
140
|
: source
|
|
137
141
|
? `Credential detected · ${source.kind}`
|
|
138
142
|
: 'Not connected · sign in or add an API key',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/integrations/providers/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/integrations/providers/setup.ts"],"names":[],"mappings":"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"}
|
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,EAI3B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,KAAK,YAAY,EAA0B,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAwCxF,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;IAC/B;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC9B;AA0BD,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAwJD,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,EACN,WAAmB,GACnB,EAAE,WAAW,
|
|
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,EAI3B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,KAAK,YAAY,EAA0B,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAwCxF,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;IAC/B;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC9B;AA0BD,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAwJD,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,EACN,WAAmB,GACnB,EAAE,WAAW,2CAooCb"}
|
package/dist/tui/Picker.js
CHANGED
|
@@ -9,7 +9,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
9
9
|
*/
|
|
10
10
|
import { Box, Text, useInput, useWindowSize } from 'ink';
|
|
11
11
|
import { Fragment, useCallback, useEffect, useRef, useState } from 'react';
|
|
12
|
-
import { canSelectModel } from '../integrations/providers/access.js';
|
|
12
|
+
import { canSelectModel, hasApiCredential } from '../integrations/providers/access.js';
|
|
13
13
|
import { ALL_PROVIDER_IDS, PROVIDER_REGISTRY, signedInSubscriptionProviders, unsupportedProviderMessage, } from '../integrations/providers/index.js';
|
|
14
14
|
import { describeProviderModels, verifyCredential } from './agent.js';
|
|
15
15
|
import { classifyCredential, describeDisposition, keyLooksUsable, maskKey, sessionCredential, } from './credential-entry.js';
|
|
@@ -289,7 +289,16 @@ export function Picker({ detected, currentProvider, selectionKind = 'provider-an
|
|
|
289
289
|
const step = modelStep(current.entry.defaultModel, listing, activeModel, {
|
|
290
290
|
allowModel: (id) => canSelectModel(current.entry, current.apiKey, id),
|
|
291
291
|
});
|
|
292
|
-
|
|
292
|
+
const experimentalNotice = current.entry.id === 'zen' && !hasApiCredential(current.entry, current.apiKey)
|
|
293
|
+
? 'Zen free models are experimental. OpenCode installation is recommended; Namzu sends requests directly, and the gateway may refuse them.'
|
|
294
|
+
: null;
|
|
295
|
+
setModelPhase({
|
|
296
|
+
provider: current,
|
|
297
|
+
step: experimentalNotice
|
|
298
|
+
? { ...step, notice: [experimentalNotice, step.notice].filter(Boolean).join(' ') }
|
|
299
|
+
: step,
|
|
300
|
+
returnToProviders,
|
|
301
|
+
});
|
|
293
302
|
setCursor(step.initialIndex);
|
|
294
303
|
};
|
|
295
304
|
void describeModels(current.entry.id, current, operation.controller.signal)
|
|
@@ -838,9 +847,12 @@ export function Picker({ detected, currentProvider, selectionKind = 'provider-an
|
|
|
838
847
|
// provider — every other row is answered by Enter as it always was — so this
|
|
839
848
|
// is the one screen this change adds, and it is reached one way.
|
|
840
849
|
if (pathRow) {
|
|
850
|
+
const experimentalZen = pathRow.paths.some((path) => path.kind === 'detected' &&
|
|
851
|
+
path.detected.entry.id === 'zen' &&
|
|
852
|
+
!hasApiCredential(path.detected.entry, path.detected.apiKey));
|
|
841
853
|
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.border.focus, paddingX: 1, children: [buildNoticeBox(true), _jsxs(Text, { color: theme.accent.system, bold: true, children: ["Choose a way to use ", pathRow.label] }), _jsx(Text, { color: theme.text.muted, children: pathRow.detected.length > 0
|
|
842
|
-
?
|
|
843
|
-
: 'Nothing on this device is set up for it yet.' }), _jsx(Box, { flexDirection: "column", paddingTop: 1, children: pathRow.paths.map((path, index) => (_jsxs(Text, { color: index === cursor ? theme.text.primary : theme.text.muted, children: [index === cursor ? '❯' : ' ', " ", index + 1, ". ", describePath(path)] }, `${path.kind}-${pathProviderId(path)}`))) }), _jsxs(Box, { paddingTop: 1, flexDirection: "column", children: [_jsxs(Text, { color: theme.text.muted, children: ["\u2191\u2193 or 1-", pathRow.paths.length, " navigate \u00B7 enter use \u00B7 esc back"] }), errorHint ? _jsx(Text, { color: theme.status.warn, children: errorHint }) : null] })] }));
|
|
854
|
+
? `${experimentalZen ? 'Available to try here' : 'Already usable here'} — ${rowSourceText(pathRow)}.`
|
|
855
|
+
: 'Nothing on this device is set up for it yet.' }), experimentalZen ? (_jsx(Text, { color: theme.status.warn, children: "OpenCode installation is recommended. Namzu sends requests directly; the gateway may refuse free models." })) : null, _jsx(Box, { flexDirection: "column", paddingTop: 1, children: pathRow.paths.map((path, index) => (_jsxs(Text, { color: index === cursor ? theme.text.primary : theme.text.muted, children: [index === cursor ? '❯' : ' ', " ", index + 1, ". ", describePath(path)] }, `${path.kind}-${pathProviderId(path)}`))) }), _jsxs(Box, { paddingTop: 1, flexDirection: "column", children: [_jsxs(Text, { color: theme.text.muted, children: ["\u2191\u2193 or 1-", pathRow.paths.length, " navigate \u00B7 enter use \u00B7 esc back"] }), errorHint ? _jsx(Text, { color: theme.status.warn, children: errorHint }) : null] })] }));
|
|
844
856
|
}
|
|
845
857
|
if (loginPhase) {
|
|
846
858
|
const choices = subscriptionChoices(detected);
|
|
@@ -985,7 +997,9 @@ function ModelStepView({ providerLabel, otherProviders, step, query, currentMode
|
|
|
985
997
|
: 'Session and future launches.'
|
|
986
998
|
: sessionOnly
|
|
987
999
|
? 'Applies to this session only (temporary credential).'
|
|
988
|
-
: 'Applies to this session and future launches.' })] }), step ? (_jsxs(Text, { color: theme.text.muted, children: [position, overflowHint ? `${columns < 70 ? '' : ' · '}${overflowHint}` : ''] })) : null] }), _jsxs(Box, { children: [_jsx(Box, { flexShrink: 0, children: _jsxs(Text, { color: theme.accent.system, children: [query === null ? 'p' : '←', " change provider"] }) }), otherProviders.length > 0 ? (_jsx(Box, { minWidth: 0, flexShrink: 1, children: _jsxs(Text, { color: theme.text.muted, wrap: "truncate-end", children: [' · ', otherProviders.slice(0, 2).map(terminalDisplayText).join(' / '), otherProviders.length > 2 ? ` / +${otherProviders.length - 2} more` : ''] }) })) : null] }), step === undefined ? (_jsxs(Text, { color: theme.text.muted, children: ["Asking ", providerLabel, " what it has\u2026"] })) : (_jsxs(_Fragment, { children: [_jsx(Text, { color: query === null ? theme.text.muted : theme.text.primary, children: truncateChoiceText(`Search: ${query ?? 'type or / to filter'}`, width) }), step.notice ? (_jsx(Text, { color: theme.status.warn, children: terminalDisplayText(step.notice) })) : null, _jsxs(Box, { flexDirection: "column", children: [choices.length === 0 ? (_jsx(Text, { color: theme.text.muted, children:
|
|
1000
|
+
: 'Applies to this session and future launches.' })] }), step ? (_jsxs(Text, { color: theme.text.muted, children: [position, overflowHint ? `${columns < 70 ? '' : ' · '}${overflowHint}` : ''] })) : null] }), _jsxs(Box, { children: [_jsx(Box, { flexShrink: 0, children: _jsxs(Text, { color: theme.accent.system, children: [query === null ? 'p' : '←', " change provider"] }) }), otherProviders.length > 0 ? (_jsx(Box, { minWidth: 0, flexShrink: 1, children: _jsxs(Text, { color: theme.text.muted, wrap: "truncate-end", children: [' · ', otherProviders.slice(0, 2).map(terminalDisplayText).join(' / '), otherProviders.length > 2 ? ` / +${otherProviders.length - 2} more` : ''] }) })) : null] }), step === undefined ? (_jsxs(Text, { color: theme.text.muted, children: ["Asking ", providerLabel, " what it has\u2026"] })) : (_jsxs(_Fragment, { children: [_jsx(Text, { color: query === null ? theme.text.muted : theme.text.primary, children: truncateChoiceText(`Search: ${query ?? 'type or / to filter'}`, width) }), step.notice ? (_jsx(Text, { color: theme.status.warn, children: terminalDisplayText(step.notice) })) : null, _jsxs(Box, { flexDirection: "column", children: [choices.length === 0 ? (_jsx(Text, { color: theme.text.muted, children: step.choices.length === 0
|
|
1001
|
+
? 'No selectable models for this access path'
|
|
1002
|
+
: 'No matching models · Ctrl+U clears' })) : null, window.items.map((c, visibleIndex) => {
|
|
989
1003
|
const index = window.start + visibleIndex;
|
|
990
1004
|
const prefix = `${index === cursor ? '❯ ' : ' '}${index + 1}. `;
|
|
991
1005
|
const notes = columns < 70
|
|
@@ -1263,9 +1277,11 @@ function describePath(path) {
|
|
|
1263
1277
|
function describeSource(d) {
|
|
1264
1278
|
switch (d.source.kind) {
|
|
1265
1279
|
case 'env':
|
|
1280
|
+
if (d.entry.id === 'zen' && !hasApiCredential(d.entry, d.apiKey))
|
|
1281
|
+
return 'Zen free models · experimental; gateway may refuse';
|
|
1266
1282
|
return `env · ${d.source.envName}`;
|
|
1267
1283
|
case 'public':
|
|
1268
|
-
return 'free models ·
|
|
1284
|
+
return 'Zen free models · experimental; gateway may refuse';
|
|
1269
1285
|
case 'opencode-file':
|
|
1270
1286
|
return 'OpenCode API key · this device';
|
|
1271
1287
|
case 'probe':
|