@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
|
@@ -6,12 +6,10 @@
|
|
|
6
6
|
* only person able to see this screen at all. Everything decidable is decided
|
|
7
7
|
* here, and `Picker` is left as a thin caller.
|
|
8
8
|
*
|
|
9
|
-
* ## The default is
|
|
9
|
+
* ## The default is offered when permitted
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* get on with a task, and the default is exactly the value they would have got
|
|
14
|
-
* by not visiting this step.
|
|
11
|
+
* Without an access filter, every branch offers namzu's `defaultModel`.
|
|
12
|
+
* A filtered path must not bring back a default whose access was withdrawn.
|
|
15
13
|
*
|
|
16
14
|
* ## The notice says which case it is
|
|
17
15
|
*
|
|
@@ -43,7 +41,7 @@ export interface ModelStep {
|
|
|
43
41
|
/**
|
|
44
42
|
* Build the model step for one provider.
|
|
45
43
|
*
|
|
46
|
-
* @param defaultModel namzu's default for this provider,
|
|
44
|
+
* @param defaultModel namzu's default for this provider, offered when permitted.
|
|
47
45
|
* @param listing What asking the provider produced.
|
|
48
46
|
* @param currentModel The model in force now, if any — so re-opening the picker
|
|
49
47
|
* starts on what is already selected rather than resetting to the default.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-choices.d.ts","sourceRoot":"","sources":["../../src/tui/model-choices.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"model-choices.d.ts","sourceRoot":"","sources":["../../src/tui/model-choices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC7B;AA8CD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACxB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,YAAY,EAC7B,oBAAoB,CAAC,EAAE,MAAM,EAC7B,OAAO,GAAE;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAA;CAAO,GAC7D,SAAS,CA4FX"}
|
|
@@ -6,12 +6,10 @@
|
|
|
6
6
|
* only person able to see this screen at all. Everything decidable is decided
|
|
7
7
|
* here, and `Picker` is left as a thin caller.
|
|
8
8
|
*
|
|
9
|
-
* ## The default is
|
|
9
|
+
* ## The default is offered when permitted
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* get on with a task, and the default is exactly the value they would have got
|
|
14
|
-
* by not visiting this step.
|
|
11
|
+
* Without an access filter, every branch offers namzu's `defaultModel`.
|
|
12
|
+
* A filtered path must not bring back a default whose access was withdrawn.
|
|
15
13
|
*
|
|
16
14
|
* ## The notice says which case it is
|
|
17
15
|
*
|
|
@@ -63,12 +61,13 @@ function labelAlreadySaysFree(label) {
|
|
|
63
61
|
/**
|
|
64
62
|
* Build the model step for one provider.
|
|
65
63
|
*
|
|
66
|
-
* @param defaultModel namzu's default for this provider,
|
|
64
|
+
* @param defaultModel namzu's default for this provider, offered when permitted.
|
|
67
65
|
* @param listing What asking the provider produced.
|
|
68
66
|
* @param currentModel The model in force now, if any — so re-opening the picker
|
|
69
67
|
* starts on what is already selected rather than resetting to the default.
|
|
70
68
|
*/
|
|
71
69
|
export function modelStep(defaultModel, suppliedListing, suppliedCurrentModel, options = {}) {
|
|
70
|
+
const defaultAllowed = options.allowModel?.(defaultModel) !== false;
|
|
72
71
|
// A saved pin does not grant access. In particular, losing a Zen account
|
|
73
72
|
// credential must not put a paid model back into its public-only list.
|
|
74
73
|
const currentModel = suppliedCurrentModel && options.allowModel?.(suppliedCurrentModel) === false
|
|
@@ -81,9 +80,9 @@ export function modelStep(defaultModel, suppliedListing, suppliedCurrentModel, o
|
|
|
81
80
|
}
|
|
82
81
|
: suppliedListing;
|
|
83
82
|
const fallback = (notice) => {
|
|
84
|
-
const choices =
|
|
85
|
-
{ id: defaultModel, label: defaultModel, note: '(namzu default)' }
|
|
86
|
-
|
|
83
|
+
const choices = defaultAllowed
|
|
84
|
+
? [{ id: defaultModel, label: defaultModel, note: '(namzu default)' }]
|
|
85
|
+
: [];
|
|
87
86
|
if (currentModel && currentModel !== defaultModel) {
|
|
88
87
|
choices.push({
|
|
89
88
|
id: currentModel,
|
|
@@ -91,7 +90,13 @@ export function modelStep(defaultModel, suppliedListing, suppliedCurrentModel, o
|
|
|
91
90
|
note: '(current)',
|
|
92
91
|
});
|
|
93
92
|
}
|
|
94
|
-
return {
|
|
93
|
+
return {
|
|
94
|
+
choices,
|
|
95
|
+
notice: choices.length === 0
|
|
96
|
+
? `${notice} No selectable models are available for this access path; choose another provider or enter a credential.`
|
|
97
|
+
: notice,
|
|
98
|
+
initialIndex: Math.max(0, choices.length - 1),
|
|
99
|
+
};
|
|
95
100
|
};
|
|
96
101
|
// "namzu's pick", never "its default", in all four. The row beside these
|
|
97
102
|
// sentences is labelled `(namzu default)` because the value comes from
|
|
@@ -135,7 +140,7 @@ export function modelStep(defaultModel, suppliedListing, suppliedCurrentModel, o
|
|
|
135
140
|
...(notes.length > 0 ? { note: `(${notes.join(' · ')})` } : {}),
|
|
136
141
|
});
|
|
137
142
|
}
|
|
138
|
-
if (!seen.has(defaultModel)) {
|
|
143
|
+
if (defaultAllowed && !seen.has(defaultModel)) {
|
|
139
144
|
choices.unshift({
|
|
140
145
|
id: defaultModel,
|
|
141
146
|
label: defaultModel,
|
|
@@ -145,7 +150,7 @@ export function modelStep(defaultModel, suppliedListing, suppliedCurrentModel, o
|
|
|
145
150
|
if (currentModel && currentModel !== defaultModel && !seen.has(currentModel)) {
|
|
146
151
|
choices.push({ id: currentModel, label: currentModel, note: '(current)' });
|
|
147
152
|
}
|
|
148
|
-
const wanted = currentModel ?? defaultModel;
|
|
153
|
+
const wanted = currentModel ?? (defaultAllowed ? defaultModel : undefined);
|
|
149
154
|
const idx = choices.findIndex((c) => c.id === wanted);
|
|
150
155
|
return { choices, notice: null, initialIndex: idx >= 0 ? idx : 0 };
|
|
151
156
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-choices.js","sourceRoot":"","sources":["../../src/tui/model-choices.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"model-choices.js","sourceRoot":"","sources":["../../src/tui/model-choices.ts"],"names":[],"mappings":"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"}
|
|
@@ -239,9 +239,9 @@ export declare function rowCredentialNeed(row: VendorRow): string | null;
|
|
|
239
239
|
* The environment variable and not "not configured": the variable is the one
|
|
240
240
|
* action that both makes the provider work now and keeps it working after a
|
|
241
241
|
* restart, and a sentence that says only that something is absent leaves the
|
|
242
|
-
* operator to find that name. `requiresApiKey: false`
|
|
243
|
-
*
|
|
244
|
-
*
|
|
242
|
+
* operator to find that name. `requiresApiKey: false` permits anonymous Zen
|
|
243
|
+
* selection, but its public catalogue does not prove inference access; the Zen
|
|
244
|
+
* row names the key as the way to try credentialed access.
|
|
245
245
|
*
|
|
246
246
|
* The fallback is unreachable for the current registry (every entry that
|
|
247
247
|
* reaches this screen declares at least one variable) and is kept so that a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-list.d.ts","sourceRoot":"","sources":["../../src/tui/provider-list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;
|
|
1
|
+
{"version":3,"file":"provider-list.d.ts","sourceRoot":"","sources":["../../src/tui/provider-list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AAGH,OAAO,EAEN,KAAK,gBAAgB,EAErB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAE1B,KAAK,QAAQ,EAGb,MAAM,oCAAoC,CAAA;AAE3C;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU;AACrB,+CAA+C;AAC7C;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE;AACpE,8EAA8E;GAC5E;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE;AACxE,8DAA8D;GAC5D;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,CAAA;AAEtE,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAE3D;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC9C,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAA;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,qBAAqB,EAAE,CAIpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,WAAW,CAC1B,OAAO,EAAE,SAAS,qBAAqB,EAAE,EACzC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,mBAAmB,EAAE,OAAO,GAC1B,SAAS,UAAU,EAAE,CA+BvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,mBAAmB,UAAO,GACxB,SAAS,SAAS,EAAE,CA6BtB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAEnD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAEtD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CACnC,GAAG,EAAE,SAAS,GAAG,SAAS,GACxB,qBAAqB,GAAG,SAAS,CAGnC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAG/D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAKnE;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAKlE;AAED,uEAAuE;AACvE,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,SAAS,SAAS,EAAE,EAC1B,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC3B,MAAM,CAGR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,SAAS,SAAS,EAAE,EAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC1C,WAAW,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GACxC,MAAM,CAMR"}
|
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
* flag that flips turns the test red instead of silently adding or dropping a
|
|
69
69
|
* row.
|
|
70
70
|
*/
|
|
71
|
+
import { hasApiCredential } from '../integrations/providers/access.js';
|
|
71
72
|
import { ALL_PROVIDER_IDS, PROVIDER_REGISTRY, VENDOR_NAMES, providerEntriesOfVendor, signedInSubscriptionProviders, } from '../integrations/providers/index.js';
|
|
72
73
|
/** The provider a path is about, whichever kind of path it is. */
|
|
73
74
|
export function pathProviderId(path) {
|
|
@@ -141,7 +142,8 @@ export function vendorPaths(entries, detected, includeUnconfigured) {
|
|
|
141
142
|
// What is on this machine UNDER a signed-in session, as opposed to a key.
|
|
142
143
|
const signedIn = new Set(signedInSubscriptionProviders(detected).map((p) => p.entry.id));
|
|
143
144
|
const aKeyIsAlreadyHere = detected.some((provider) => !signedIn.has(provider.entry.id) &&
|
|
144
|
-
(provider.source.kind === 'env'
|
|
145
|
+
((provider.source.kind === 'env' &&
|
|
146
|
+
(provider.entry.id !== 'zen' || hasApiCredential(provider.entry, provider.apiKey))) ||
|
|
145
147
|
provider.source.kind === 'opencode-file' ||
|
|
146
148
|
provider.source.kind === 'stored-gemini-key'));
|
|
147
149
|
for (const entry of entries) {
|
|
@@ -271,9 +273,9 @@ export function rowCredentialNeed(row) {
|
|
|
271
273
|
* The environment variable and not "not configured": the variable is the one
|
|
272
274
|
* action that both makes the provider work now and keeps it working after a
|
|
273
275
|
* restart, and a sentence that says only that something is absent leaves the
|
|
274
|
-
* operator to find that name. `requiresApiKey: false`
|
|
275
|
-
*
|
|
276
|
-
*
|
|
276
|
+
* operator to find that name. `requiresApiKey: false` permits anonymous Zen
|
|
277
|
+
* selection, but its public catalogue does not prove inference access; the Zen
|
|
278
|
+
* row names the key as the way to try credentialed access.
|
|
277
279
|
*
|
|
278
280
|
* The fallback is unreachable for the current registry (every entry that
|
|
279
281
|
* reaches this screen declares at least one variable) and is kept so that a
|
|
@@ -283,6 +285,8 @@ export function credentialNeed(entry) {
|
|
|
283
285
|
const envName = entry.envVars[0];
|
|
284
286
|
if (!envName)
|
|
285
287
|
return 'needs a credential';
|
|
288
|
+
if (entry.id === 'zen')
|
|
289
|
+
return `${envName} for credentialed access`;
|
|
286
290
|
return entry.requiresApiKey ? `needs ${envName}` : `${envName} optional`;
|
|
287
291
|
}
|
|
288
292
|
/** Whether a row is about a given provider id — detected there, or a way in. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-list.js","sourceRoot":"","sources":["../../src/tui/provider-list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AAEH,OAAO,EACN,gBAAgB,EAEhB,iBAAiB,EAGjB,YAAY,EAEZ,uBAAuB,EACvB,6BAA6B,GAC7B,MAAM,oCAAoC,CAAA;AAoB3C,kEAAkE;AAClE,MAAM,UAAU,cAAc,CAAC,IAAgB;IAC9C,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;AACzE,CAAC;AAuBD;;;;;;;;GAQG;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,UAAU,WAAW,CAC1B,OAAyC,EACzC,QAAqC,EACrC,mBAA4B;IAE5B,MAAM,KAAK,GAAiB,EAAE,CAAA;IAC9B,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACjC,0EAA0E;QAC1E,wEAAwE;QACxE,4BAA4B;QAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa;YAAE,SAAQ;QAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;IACrD,CAAC;IACD,IAAI,CAAC,mBAAmB;QAAE,OAAO,KAAK,CAAA;IACtC,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IACxF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CACtC,CAAC,QAAQ,EAAE,EAAE,CACZ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK;
|
|
1
|
+
{"version":3,"file":"provider-list.js","sourceRoot":"","sources":["../../src/tui/provider-list.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@namzu/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "34.1.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",
|
|
@@ -50,15 +50,15 @@
|
|
|
50
50
|
"yaml": "^2.9.0",
|
|
51
51
|
"@namzu/anthropic": "6.2.2",
|
|
52
52
|
"@namzu/browser": "2.0.0",
|
|
53
|
-
"@namzu/deepseek": "^2.0.2",
|
|
54
53
|
"@namzu/computer-use": "3.1.0",
|
|
54
|
+
"@namzu/deepseek": "^2.0.2",
|
|
55
55
|
"@namzu/files": "1.1.2",
|
|
56
|
-
"@namzu/ollama": "2.2.5",
|
|
57
56
|
"@namzu/openai": "4.1.3",
|
|
57
|
+
"@namzu/ollama": "2.2.5",
|
|
58
58
|
"@namzu/openrouter": "3.0.3",
|
|
59
59
|
"@namzu/sdk": "^48.3.0",
|
|
60
|
-
"@namzu/
|
|
61
|
-
"@namzu/
|
|
60
|
+
"@namzu/google": "^1.1.1",
|
|
61
|
+
"@namzu/zen": "^3.1.0"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@biomejs/biome": "^1.9.4",
|