@namzu/cli 4.5.0 → 5.0.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/dist/integrations/providers/registry.d.ts +16 -1
- package/dist/integrations/providers/registry.d.ts.map +1 -1
- package/dist/integrations/providers/registry.js +11 -2
- package/dist/integrations/providers/registry.js.map +1 -1
- package/dist/tui/model-choices.d.ts +3 -3
- package/dist/tui/model-choices.d.ts.map +1 -1
- package/dist/tui/model-choices.js +5 -5
- package/dist/tui/model-choices.js.map +1 -1
- package/package.json +3 -3
|
@@ -20,7 +20,22 @@ export interface ProviderRegistryEntry {
|
|
|
20
20
|
* discoverer issues a HEAD/GET and treats 2xx as "available".
|
|
21
21
|
*/
|
|
22
22
|
readonly probeUrl?: string;
|
|
23
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* Default model when the user does not pick one in the picker.
|
|
25
|
+
*
|
|
26
|
+
* **These are namzu's picks, not the provider's, and they go stale.** A
|
|
27
|
+
* hardcoded default fails silently: nothing errors, the run just happens on
|
|
28
|
+
* an older model than the operator assumes, and only a reader who already
|
|
29
|
+
* knows the current generation would notice. One sat two generations behind
|
|
30
|
+
* for exactly that reason.
|
|
31
|
+
*
|
|
32
|
+
* Resolving them at runtime was considered and refused: it buys a network
|
|
33
|
+
* call, a cache, and a staleness question on every launch, and the offline
|
|
34
|
+
* path is where this defect would reappear invisibly. So the constant stays
|
|
35
|
+
* and the obligation is stated instead — **re-check these at every provider
|
|
36
|
+
* model release.** The picker labels the value as namzu's default so an
|
|
37
|
+
* operator can see it is a choice rather than a recommendation.
|
|
38
|
+
*/
|
|
24
39
|
readonly defaultModel: string;
|
|
25
40
|
/** Does this provider require an apiKey? `false` for purely local. */
|
|
26
41
|
readonly requiresApiKey: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,UAAU,GACnB,WAAW,GACX,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,SAAS,GACT,MAAM,CAAA;AAET,iEAAiE;AACjE,MAAM,MAAM,eAAe,GAAG,UAAU,CAAA;AAExC,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,mEAAmE;IACnE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,UAAU,GACnB,WAAW,GACX,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,SAAS,GACT,MAAM,CAAA;AAET,iEAAiE;AACjE,MAAM,MAAM,eAAe,GAAG,UAAU,CAAA;AAExC,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,mEAAmE;IACnE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;CAC/B;AAED,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC,CA8EjF,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,SAAS,UAAU,EAQvC,CAAA;AAEX;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAO7D"}
|
|
@@ -13,7 +13,7 @@ export const PROVIDER_REGISTRY = Object.freeze({
|
|
|
13
13
|
// variant, then claude-code's OAuth env (often present when the user
|
|
14
14
|
// has claude-code installed).
|
|
15
15
|
envVars: ['ANTHROPIC_API_KEY', 'ANTHROPIC_TOKEN', 'CLAUDE_CODE_OAUTH_TOKEN'],
|
|
16
|
-
defaultModel: 'claude-opus-
|
|
16
|
+
defaultModel: 'claude-opus-5',
|
|
17
17
|
requiresApiKey: true,
|
|
18
18
|
constructible: true,
|
|
19
19
|
},
|
|
@@ -30,7 +30,7 @@ export const PROVIDER_REGISTRY = Object.freeze({
|
|
|
30
30
|
label: 'OpenRouter',
|
|
31
31
|
envVars: ['OPENROUTER_API_KEY'],
|
|
32
32
|
defaultBaseUrl: 'https://openrouter.ai/api/v1',
|
|
33
|
-
defaultModel: 'anthropic/claude-opus-
|
|
33
|
+
defaultModel: 'anthropic/claude-opus-5',
|
|
34
34
|
requiresApiKey: true,
|
|
35
35
|
constructible: true,
|
|
36
36
|
},
|
|
@@ -58,6 +58,15 @@ export const PROVIDER_REGISTRY = Object.freeze({
|
|
|
58
58
|
id: 'bedrock',
|
|
59
59
|
label: 'AWS Bedrock',
|
|
60
60
|
envVars: ['AWS_ACCESS_KEY_ID'], // SDK reads the rest from the AWS chain
|
|
61
|
+
// UNVERIFIED, and left as-is deliberately. This driver talks to the
|
|
62
|
+
// Converse API, whose ids are date-stamped and version-suffixed
|
|
63
|
+
// (`<vendor>.<model>-<yyyymmdd>-v<n>:0`). This value carries the
|
|
64
|
+
// suffix but no date, so it matches that shape and the newer bare
|
|
65
|
+
// alias equally badly. Nobody here has a credential to prove which
|
|
66
|
+
// the endpoint accepts, and inventing a date would be a fabricated
|
|
67
|
+
// id that looks authoritative — so it is recorded rather than
|
|
68
|
+
// guessed at. Unreachable today in any case: `constructible: false`
|
|
69
|
+
// means this build cannot construct the driver at all.
|
|
61
70
|
defaultModel: 'anthropic.claude-opus-4-7-v1:0',
|
|
62
71
|
requiresApiKey: true,
|
|
63
72
|
constructible: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/integrations/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/integrations/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmEH,MAAM,CAAC,MAAM,iBAAiB,GAAwD,MAAM,CAAC,MAAM,CAClG;IACC,SAAS,EAAE;QACV,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,oBAAoB;QAC3B,sDAAsD;QACtD,qEAAqE;QACrE,8BAA8B;QAC9B,OAAO,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,yBAAyB,CAAC;QAC5E,YAAY,EAAE,eAAe;QAC7B,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACnB;IACD,MAAM,EAAE;QACP,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,CAAC,gBAAgB,CAAC;QAC3B,YAAY,EAAE,QAAQ;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACnB;IACD,UAAU,EAAE;QACX,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,CAAC,oBAAoB,CAAC;QAC/B,cAAc,EAAE,8BAA8B;QAC9C,YAAY,EAAE,yBAAyB;QACvC,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACnB;IACD,MAAM,EAAE;QACP,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,gBAAgB;QACvB,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,wBAAwB;QACxC,QAAQ,EAAE,iCAAiC;QAC3C,YAAY,EAAE,UAAU;QACxB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,IAAI;KACnB;IACD,QAAQ,EAAE;QACT,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,mBAAmB;QAC1B,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,0BAA0B;QAC1C,QAAQ,EAAE,iCAAiC;QAC3C,YAAY,EAAE,MAAM;QACpB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;KACpB;IACD,OAAO,EAAE;QACR,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,aAAa;QACpB,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,aAAa,EAAE,KAAK;KACpB;IACD,IAAI,EAAE;QACL,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,iCAAiC;QACxC,oEAAoE;QACpE,kDAAkD;QAClD,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,QAAQ;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACpB;CACD,CACD,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAA0B,MAAM,CAAC,MAAM,CAAC;IACpE,WAAW;IACX,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,SAAS;IACT,MAAM;CACG,CAAC,CAAA;AAEX;;;;;;;;;;;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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* ## The default is always offered
|
|
10
10
|
*
|
|
11
|
-
* Every branch returns at least
|
|
11
|
+
* Every branch returns at least namzu's `defaultModel` for the provider. A screen that
|
|
12
12
|
* can end with nothing selectable is a dead end for someone who came here to
|
|
13
13
|
* get on with a task, and the default is exactly the value they would have got
|
|
14
14
|
* by not visiting this step.
|
|
@@ -25,7 +25,7 @@ import type { ModelListing } from './agent.js';
|
|
|
25
25
|
export interface ModelChoice {
|
|
26
26
|
readonly id: string;
|
|
27
27
|
readonly label: string;
|
|
28
|
-
/** Shown beside the row. `(default)` for the
|
|
28
|
+
/** Shown beside the row. `(namzu default)` for the value namzu picks. */
|
|
29
29
|
readonly note?: string;
|
|
30
30
|
}
|
|
31
31
|
export interface ModelStep {
|
|
@@ -43,7 +43,7 @@ export interface ModelStep {
|
|
|
43
43
|
/**
|
|
44
44
|
* Build the model step for one provider.
|
|
45
45
|
*
|
|
46
|
-
* @param defaultModel
|
|
46
|
+
* @param defaultModel namzu's default for this provider, always offered.
|
|
47
47
|
* @param listing What asking the provider produced.
|
|
48
48
|
* @param currentModel The model in force now, if any — so re-opening the picker
|
|
49
49
|
* 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;;;;;;;;;;;;;;;;;;;;;;GAsBG;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,
|
|
1
|
+
{"version":3,"file":"model-choices.d.ts","sourceRoot":"","sources":["../../src/tui/model-choices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;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;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACxB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,YAAY,EACrB,YAAY,CAAC,EAAE,MAAM,GACnB,SAAS,CA4CX"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* ## The default is always offered
|
|
10
10
|
*
|
|
11
|
-
* Every branch returns at least
|
|
11
|
+
* Every branch returns at least namzu's `defaultModel` for the provider. A screen that
|
|
12
12
|
* can end with nothing selectable is a dead end for someone who came here to
|
|
13
13
|
* get on with a task, and the default is exactly the value they would have got
|
|
14
14
|
* by not visiting this step.
|
|
@@ -24,14 +24,14 @@
|
|
|
24
24
|
/**
|
|
25
25
|
* Build the model step for one provider.
|
|
26
26
|
*
|
|
27
|
-
* @param defaultModel
|
|
27
|
+
* @param defaultModel namzu's default for this provider, always offered.
|
|
28
28
|
* @param listing What asking the provider produced.
|
|
29
29
|
* @param currentModel The model in force now, if any — so re-opening the picker
|
|
30
30
|
* starts on what is already selected rather than resetting to the default.
|
|
31
31
|
*/
|
|
32
32
|
export function modelStep(defaultModel, listing, currentModel) {
|
|
33
33
|
const fallback = (notice) => ({
|
|
34
|
-
choices: [{ id: defaultModel, label: defaultModel, note: '(default)' }],
|
|
34
|
+
choices: [{ id: defaultModel, label: defaultModel, note: '(namzu default)' }],
|
|
35
35
|
notice,
|
|
36
36
|
initialIndex: 0,
|
|
37
37
|
});
|
|
@@ -61,11 +61,11 @@ export function modelStep(defaultModel, listing, currentModel) {
|
|
|
61
61
|
choices.push({
|
|
62
62
|
id: m.id,
|
|
63
63
|
label: m.name,
|
|
64
|
-
...(m.id === defaultModel ? { note: '(default)' } : {}),
|
|
64
|
+
...(m.id === defaultModel ? { note: '(namzu default)' } : {}),
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
if (!seen.has(defaultModel)) {
|
|
68
|
-
choices.unshift({ id: defaultModel, label: defaultModel, note: '(default)' });
|
|
68
|
+
choices.unshift({ id: defaultModel, label: defaultModel, note: '(namzu default)' });
|
|
69
69
|
}
|
|
70
70
|
const wanted = currentModel ?? defaultModel;
|
|
71
71
|
const idx = choices.findIndex((c) => c.id === wanted);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-choices.js","sourceRoot":"","sources":["../../src/tui/model-choices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAwBH;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CACxB,YAAoB,EACpB,OAAqB,EACrB,YAAqB;IAErB,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAa,EAAE,CAAC,CAAC;QAChD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"model-choices.js","sourceRoot":"","sources":["../../src/tui/model-choices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAwBH;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CACxB,YAAoB,EACpB,OAAqB,EACrB,YAAqB;IAErB,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAa,EAAE,CAAC,CAAC;QAChD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;QAC7E,MAAM;QACN,YAAY,EAAE,CAAC;KACf,CAAC,CAAA;IAEF,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,mEAAmE,CAAC,CAAA;IACrF,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,wEAAwE;QACxE,+DAA+D;QAC/D,OAAO,QAAQ,CAAC,+EAA+E,CAAC,CAAA;IACjG,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,0BAA0B,OAAO,CAAC,MAAM,wBAAwB,CAAC,CAAA;IAClF,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,uDAAuD,CAAC,CAAA;IACzE,CAAC;IAED,yEAAyE;IACzE,6EAA6E;IAC7E,0BAA0B;IAC1B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,OAAO,GAAkB,EAAE,CAAA;IACjC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,SAAQ;QAC5B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACd,OAAO,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,KAAK,EAAE,CAAC,CAAC,IAAI;YACb,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC,CAAA;IACH,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAA;IACpF,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,IAAI,YAAY,CAAA;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAA;IAErD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACnE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@namzu/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "Operator CLI for the Namzu agent platform — namzu doctor + future commands. Dual-purpose: standalone bin (`namzu doctor`) and library (`import { runDoctor } from '@namzu/cli'`).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"namzu",
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
"yaml": "^2.9.0",
|
|
47
47
|
"@namzu/anthropic": "3.2.0",
|
|
48
48
|
"@namzu/ollama": "2.1.0",
|
|
49
|
-
"@namzu/openai": "1.2.0",
|
|
50
49
|
"@namzu/openrouter": "2.1.0",
|
|
51
|
-
"@namzu/sdk": "^
|
|
50
|
+
"@namzu/sdk": "^19.0.0",
|
|
51
|
+
"@namzu/openai": "1.2.0"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@biomejs/biome": "^1.9.4",
|