musonda 1.0.27 → 1.0.28

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.
Files changed (43) hide show
  1. package/README.md +22 -14
  2. package/dist/agent/chatCompletionsClient.js +2 -2
  3. package/dist/agent/chatCompletionsClient.js.map +1 -1
  4. package/dist/agent/modelErrors.d.ts +7 -8
  5. package/dist/agent/modelErrors.js +9 -10
  6. package/dist/agent/modelErrors.js.map +1 -1
  7. package/dist/agent/modelFactory.d.ts +21 -0
  8. package/dist/agent/modelFactory.js +50 -23
  9. package/dist/agent/modelFactory.js.map +1 -1
  10. package/dist/agent/modelRegistry.d.ts +112 -0
  11. package/dist/agent/modelRegistry.js +323 -0
  12. package/dist/agent/modelRegistry.js.map +1 -0
  13. package/dist/agent/openaiResponsesClient.js +3 -3
  14. package/dist/agent/openaiResponsesClient.js.map +1 -1
  15. package/dist/cli/commands/connect.js +2 -1
  16. package/dist/cli/commands/connect.js.map +1 -1
  17. package/dist/cli/commands/doctor.js +19 -9
  18. package/dist/cli/commands/doctor.js.map +1 -1
  19. package/dist/cli/commands/gateway.js +10 -0
  20. package/dist/cli/commands/gateway.js.map +1 -1
  21. package/dist/cli/commands/help.js +34 -31
  22. package/dist/cli/commands/help.js.map +1 -1
  23. package/dist/cli/commands/model.d.ts +38 -25
  24. package/dist/cli/commands/model.js +307 -354
  25. package/dist/cli/commands/model.js.map +1 -1
  26. package/dist/cli/commands/status.js +4 -2
  27. package/dist/cli/commands/status.js.map +1 -1
  28. package/dist/cli/interactiveMenu.js +2 -2
  29. package/dist/cli/interactiveMenu.js.map +1 -1
  30. package/dist/cli/musondaCli.js +16 -7
  31. package/dist/cli/musondaCli.js.map +1 -1
  32. package/dist/cli.js +10 -1
  33. package/dist/cli.js.map +1 -1
  34. package/dist/config/loader.js +70 -23
  35. package/dist/config/loader.js.map +1 -1
  36. package/dist/config/types.d.ts +4 -0
  37. package/dist/config/types.js +4 -1
  38. package/dist/config/types.js.map +1 -1
  39. package/dist/gateway/server.js +21 -4
  40. package/dist/gateway/server.js.map +1 -1
  41. package/dist/wizard/onboarding.js +117 -80
  42. package/dist/wizard/onboarding.js.map +1 -1
  43. package/package.json +1 -1
package/README.md CHANGED
@@ -160,22 +160,24 @@ cp .env.example .env
160
160
  2. Add your model credentials to `.env` (generic or provider-specific):
161
161
 
162
162
  ```bash
163
- # Hosted (OpenAI example)
163
+ # Hosted example (model id comes from the provider's live catalog —
164
+ # run `musonda model list openai` or pick interactively with `musonda model setup`)
164
165
  MODEL_PROVIDER=openai
165
- MODEL_NAME=gpt-4o-mini
166
+ MODEL_NAME=<model-id-from-provider-catalog>
166
167
  MODEL_API_KEY=sk-...
167
168
 
168
- # Local (Ollama example — no key needed)
169
+ # Local (Ollama example — no key needed; id from `ollama list` / `musonda model list ollama`)
169
170
  MODEL_PROVIDER=ollama
170
- MODEL_NAME=llama3.1
171
+ MODEL_NAME=<model-id-from-ollama-list>
171
172
  MODEL_BASE_URL=http://localhost:11434/v1
172
173
  ```
173
174
 
174
- Or configure interactively at any time:
175
+ Or configure interactively at any time (recommended — no ids to look up by hand):
175
176
 
176
177
  ```bash
177
- musonda model setup
178
- musonda model use ollama/llama3.1
178
+ musonda model setup # pick provider → pick model from live list
179
+ musonda model ollama/<model-id> # switch in one command
180
+ musonda model list openrouter # live catalog from the provider
179
181
  ```
180
182
 
181
183
  3. Launch the container:
@@ -220,13 +222,14 @@ conversation.
220
222
  | Command | What it does |
221
223
  |---|---|
222
224
  | `musonda` | Opens the interactive dashboard and menu |
223
- | `musonda setup` | Runs the personal onboarding and channel setup wizard |
224
- | `musonda model` | Shows current AI model provider and model |
225
- | `musonda model setup` | Configures AI model provider without onboarding |
226
- | `musonda model use <provider>/<model>` | Switches provider + model (e.g. `ollama/llama3.1`) |
225
+ | `musonda setup` | Runs the personal onboarding wizard (persona → model picker → channels) |
226
+ | `musonda model` | Shows active model + every provider's key status |
227
+ | `musonda model setup` | Interactive picker: provider → live model list → key (saved per provider) |
228
+ | `musonda model <provider>/<model-id>` | Switches model in one command (id from `musonda model list <provider>`) |
229
+ | `musonda model list [provider]` | Lists models from the provider's live `/models` endpoint |
227
230
  | `musonda connect model` | Alias for `musonda model setup` |
228
- | `musonda connect <provider>` | Sets up a model provider's key (e.g. `deepseek`, `openai`, `ollama`) |
229
- | `musonda change model <provider>[/<model>]` | Switches active model (provider must be set up first) |
231
+ | `musonda connect <provider>` | Alias for `musonda model setup` (e.g. `deepseek`, `ollama`) |
232
+ | `musonda change model <provider>[/<model>]` | Alias for `musonda model <provider>[/<model>]` |
230
233
  | `musonda connect <channel>` | Connects a channel (telegram\|discord\|slack) without onboarding |
231
234
  | `musonda connect langfuse` | Connects Langfuse tracing (agent observability) |
232
235
  | `musonda disconnect langfuse` | Disables Langfuse tracing (keys are kept) |
@@ -252,12 +255,17 @@ conversation.
252
255
  ## Configuration
253
256
 
254
257
  Musonda stores user configuration in `~/.musonda/config.json`.
258
+ Once set up, the saved config is authoritative: switching with
259
+ `musonda model …` always takes effect immediately (env vars only seed a fresh
260
+ install — set `MODEL_FORCE_ENV=true` to let env override saved config, e.g. in
261
+ ephemeral containers). Keys are saved per provider, so switching models never
262
+ asks for a key twice and never reuses the old provider's key/URL.
255
263
  You can also supply environment variables in a `.env` file in your working directory:
256
264
 
257
265
  | Environment Variable | Description | Default |
258
266
  |---|---|---|
259
267
  | `MODEL_PROVIDER` | Model provider (`openai`, `meta`, `ollama`, `lmstudio`, `openrouter`, `anthropic`, `google`, `groq`, `mistral`, `deepseek`, `together`, custom) | `openai` |
260
- | `MODEL_NAME` | Target language model (any provider model name, e.g. `muse-spark-1.2-contributor` for Meta) | `gpt-5.6-luna` |
268
+ | `MODEL_NAME` | Model id exactly as listed in the provider's live `/models` catalog (see `musonda model list <provider>`) | (none — pick with `musonda model setup`) |
261
269
  | `MODEL_API_KEY` | Provider API key (not needed for `ollama`/`lmstudio`) | |
262
270
  | `MODEL_BASE_URL` | Custom base URL (defaults to `https://api.meta.ai/v1` for `meta`) | provider default |
263
271
  | `MODEL_API` | API dialect: `auto` / `chat` (universal) / `responses` (OpenAI/Meta) | `auto` |
@@ -21,7 +21,7 @@ export class ChatCompletionsClient {
21
21
  maxOutputTokens;
22
22
  readinessCache = null;
23
23
  constructor(config) {
24
- this.model = config.model || 'gpt-4o-mini';
24
+ this.model = config.model || '';
25
25
  this.provider = config.provider || 'openai-compatible';
26
26
  this.baseUrl = config.baseUrl || undefined;
27
27
  this.temperature = config.temperature;
@@ -352,7 +352,7 @@ export class ChatCompletionsClient {
352
352
  toProviderError(err) {
353
353
  logger.error(`Chat Completions error (provider "${this.provider}", model "${this.model}"):`, err.message || err);
354
354
  if (err.status === 401 || (err.message && err.message.includes('API key'))) {
355
- return new Error(`Model Authentication Error [${this.provider}]: API key is invalid or missing for model "${this.model}". Run 'musonda setup' or 'musonda model setup' to configure credentials.`);
355
+ return new Error(`Model Authentication Error [${this.provider}]: API key is invalid or missing for model "${this.model}". Run 'musonda model setup' to save the key for this provider (saved per provider, switching never asks twice).`);
356
356
  }
357
357
  if (isModelNotFoundError(err)) {
358
358
  return modelNotFoundError(this.provider, this.model, this.baseUrl, err);
@@ -1 +1 @@
1
- {"version":3,"file":"chatCompletionsClient.js","sourceRoot":"","sources":["../../src/agent/chatCompletionsClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatCompletionsClient.js","sourceRoot":"","sources":["../../src/agent/chatCompletionsClient.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,13 @@
1
1
  /**
2
2
  * Shared helpers for provider model errors (notably 404 model-not-found).
3
3
  *
4
- * Context: the `meta` provider default (`muse-spark-1.3-contributor` @
5
- * `https://api.meta.ai/v1`) 404s with "The requested model was not found"
6
- * whenever the configured model ID is not in the account's catalog (or the
7
- * endpoint only speaks the other API dialect). The raw SDK error gives the
8
- * user nothing actionable, and readiness checks masked it by reporting
9
- * healthy after a bare `models.list()` success. These helpers make the
10
- * failure diagnosable: keep `.status = 404` (so retry logic still fails
11
- * fast) while telling the user exactly how to list models and switch.
4
+ * Context: a configured model id that is not in the account's catalog (or an
5
+ * endpoint that only speaks the other API dialect) 404s with "The requested
6
+ * model was not found". The raw SDK error gives the user nothing actionable,
7
+ * and readiness checks masked it by reporting healthy after a bare
8
+ * `models.list()` success. These helpers make the failure diagnosable: keep
9
+ * `.status = 404` (so retry logic still fails fast) while telling the user
10
+ * exactly how to list the live catalog and switch.
12
11
  */
13
12
  export declare function isModelNotFoundError(err: any): boolean;
14
13
  /** Extract model IDs from an OpenAI-style `models.list()` page. */
@@ -1,14 +1,13 @@
1
1
  /**
2
2
  * Shared helpers for provider model errors (notably 404 model-not-found).
3
3
  *
4
- * Context: the `meta` provider default (`muse-spark-1.3-contributor` @
5
- * `https://api.meta.ai/v1`) 404s with "The requested model was not found"
6
- * whenever the configured model ID is not in the account's catalog (or the
7
- * endpoint only speaks the other API dialect). The raw SDK error gives the
8
- * user nothing actionable, and readiness checks masked it by reporting
9
- * healthy after a bare `models.list()` success. These helpers make the
10
- * failure diagnosable: keep `.status = 404` (so retry logic still fails
11
- * fast) while telling the user exactly how to list models and switch.
4
+ * Context: a configured model id that is not in the account's catalog (or an
5
+ * endpoint that only speaks the other API dialect) 404s with "The requested
6
+ * model was not found". The raw SDK error gives the user nothing actionable,
7
+ * and readiness checks masked it by reporting healthy after a bare
8
+ * `models.list()` success. These helpers make the failure diagnosable: keep
9
+ * `.status = 404` (so retry logic still fails fast) while telling the user
10
+ * exactly how to list the live catalog and switch.
12
11
  */
13
12
  export function isModelNotFoundError(err) {
14
13
  if (!err)
@@ -50,8 +49,8 @@ export function modelNotFoundError(provider, model, baseUrl, original) {
50
49
  const where = baseUrl || 'provider default';
51
50
  const err = new Error(`Model "${model}" was not found on provider "${provider}" (${where}). ` +
52
51
  `The provider returned 404: ${original?.message || original}. ` +
53
- `List available models (GET ${where.replace(/\/$/, '')}/models with your API key) and switch with ` +
54
- `'musonda model set <id>' or 'musonda model use <provider>/<model>'. ` +
52
+ `Run 'musonda model list ${provider}' to see the provider's live catalog, then ` +
53
+ `'musonda model ${provider}/<id>'. ` +
55
54
  `If the model ID is correct, the endpoint may only speak the other dialect — retry with '--api chat' or '--api responses'.`);
56
55
  err.status = 404;
57
56
  err.cause = original;
@@ -1 +1 @@
1
- {"version":3,"file":"modelErrors.js","sourceRoot":"","sources":["../../src/agent/modelErrors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,UAAU,oBAAoB,CAAC,GAAQ;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,IAAI,GAAG,EAAE,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;IAC9C,OAAO,kGAAkG,CAAC,IAAI,CAC5G,GAAG,CACJ,CAAC;AACJ,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,qBAAqB,CAAC,UAAe;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;QAC1C,CAAC,CAAC,UAAU,CAAC,IAAI;QACjB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YACzB,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACpD,MAAM,CAAC,CAAC,EAAO,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAe,EAAE,KAAa;IAC7D,MAAM,GAAG,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,gDAAgD;IAChD,IAAK,UAAkB,EAAE,QAAQ;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,KAAa,EACb,OAA2B,EAC3B,QAAa;IAEb,MAAM,KAAK,GAAG,OAAO,IAAI,kBAAkB,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,UAAU,KAAK,gCAAgC,QAAQ,MAAM,KAAK,KAAK;QACrE,8BAA8B,QAAQ,EAAE,OAAO,IAAI,QAAQ,IAAI;QAC/D,8BAA8B,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,6CAA6C;QACnG,sEAAsE;QACtE,2HAA2H,CAC9H,CAAC;IACD,GAAW,CAAC,MAAM,GAAG,GAAG,CAAC;IACzB,GAAW,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC9B,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"modelErrors.js","sourceRoot":"","sources":["../../src/agent/modelErrors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,UAAU,oBAAoB,CAAC,GAAQ;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,IAAI,GAAG,EAAE,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;IAC9C,OAAO,kGAAkG,CAAC,IAAI,CAC5G,GAAG,CACJ,CAAC;AACJ,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,qBAAqB,CAAC,UAAe;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;QAC1C,CAAC,CAAC,UAAU,CAAC,IAAI;QACjB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YACzB,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACpD,MAAM,CAAC,CAAC,EAAO,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAe,EAAE,KAAa;IAC7D,MAAM,GAAG,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,gDAAgD;IAChD,IAAK,UAAkB,EAAE,QAAQ;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,KAAa,EACb,OAA2B,EAC3B,QAAa;IAEb,MAAM,KAAK,GAAG,OAAO,IAAI,kBAAkB,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,UAAU,KAAK,gCAAgC,QAAQ,MAAM,KAAK,KAAK;QACrE,8BAA8B,QAAQ,EAAE,OAAO,IAAI,QAAQ,IAAI;QAC/D,2BAA2B,QAAQ,6CAA6C;QAChF,kBAAkB,QAAQ,UAAU;QACpC,2HAA2H,CAC9H,CAAC;IACD,GAAW,CAAC,MAAM,GAAG,GAAG,CAAC;IACzB,GAAW,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC9B,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -4,10 +4,31 @@ import { ChatCompletionsClient } from './chatCompletionsClient.js';
4
4
  import { ModelClient } from './modelTypes.js';
5
5
  /** Backwards-compatible alias: existing code/tests import OpenAIResponsesClient directly. */
6
6
  export type AnyModelClient = OpenAIResponsesClient | ChatCompletionsClient | ModelClient;
7
+ /** Kept for backwards compat — now derived from the unified registry. */
7
8
  export declare const PROVIDER_DEFAULT_BASE_URLS: Record<string, string>;
8
9
  export declare function normalizeProvider(raw?: string): string;
9
10
  /** Explicit per-model API override wins; otherwise infer a sensible default. */
10
11
  export declare function resolveApiKind(config: ModelConfig): 'responses' | 'chat';
11
12
  /** Apply well-known default base URLs when the provider is known and none is set. */
12
13
  export declare function resolveBaseUrl(config: ModelConfig): string | undefined;
14
+ /**
15
+ * Resolve the effective runtime model for a full app config
16
+ * (per-provider saved key + catalog defaults). Prefer this over reading
17
+ * `config.model` directly — it never inherits the previous provider's key/URL.
18
+ */
19
+ export declare function resolveRuntimeModel(appConfig: any): {
20
+ provider: string;
21
+ model: string;
22
+ apiKey: string;
23
+ baseUrl?: string;
24
+ api: string;
25
+ };
13
26
  export declare function createModelClient(config: ModelConfig): ModelClient;
27
+ /**
28
+ * Stand-in client used when no model id has been selected yet (e.g. tests
29
+ * that exercise non-model subsystems, or a gateway started before setup).
30
+ * Construction never throws; the friendly error surfaces only if a message
31
+ * is actually processed. Real entry points (`start gateway`, `cli`) fail
32
+ * fast via `assertModelSelected` instead.
33
+ */
34
+ export declare function createUnconfiguredModelClient(config: ModelConfig): ModelClient;
@@ -1,5 +1,7 @@
1
1
  import { OpenAIResponsesClient } from './openaiResponsesClient.js';
2
2
  import { ChatCompletionsClient } from './chatCompletionsClient.js';
3
+ import { normalizeProvider as registryNormalize, defaultBaseUrlFor, resolveEffectiveModel, } from './modelRegistry.js';
4
+ /** Kept for backwards compat — now derived from the unified registry. */
3
5
  export const PROVIDER_DEFAULT_BASE_URLS = {
4
6
  ollama: 'http://localhost:11434/v1',
5
7
  lmstudio: 'http://localhost:1234/v1',
@@ -10,27 +12,11 @@ export const PROVIDER_DEFAULT_BASE_URLS = {
10
12
  together: 'https://api.together.xyz/v1',
11
13
  xai: 'https://api.x.ai/v1',
12
14
  meta: 'https://api.meta.ai/v1',
15
+ anthropic: 'https://api.anthropic.com/v1',
16
+ google: 'https://generativelanguage.googleapis.com/v1beta/openai/',
13
17
  };
14
18
  export function normalizeProvider(raw) {
15
- const p = (raw || 'openai').trim().toLowerCase();
16
- const aliases = {
17
- 'openai-compatible': 'openai-compatible',
18
- openai_compatible: 'openai-compatible',
19
- custom: 'openai-compatible',
20
- generic: 'openai-compatible',
21
- lm_studio: 'lmstudio',
22
- 'lm-studio': 'lmstudio',
23
- google: 'google',
24
- gemini: 'google',
25
- 'google-gemini': 'google',
26
- anthropic: 'anthropic',
27
- claude: 'anthropic',
28
- 'meta-ai': 'meta',
29
- metaai: 'meta',
30
- muse: 'meta',
31
- 'muse-spark': 'meta',
32
- };
33
- return aliases[p] || p;
19
+ return registryNormalize(raw);
34
20
  }
35
21
  /** Explicit per-model API override wins; otherwise infer a sensible default. */
36
22
  export function resolveApiKind(config) {
@@ -39,9 +25,9 @@ export function resolveApiKind(config) {
39
25
  return 'responses';
40
26
  if (explicit === 'chat' || explicit === 'chat-completions' || explicit === 'chat_completions')
41
27
  return 'chat';
42
- // Responses API is spoken by OpenAI (api.openai.com) and Meta (api.meta.ai,
43
- // e.g. model "muse-spark-1.2-contributor"). Everything else uses Chat
44
- // Completions, the interoperable dialect every OpenAI-compatible provider speaks.
28
+ // Responses API is spoken by OpenAI (api.openai.com) and Meta (api.meta.ai).
29
+ // Everything else uses Chat Completions, the interoperable dialect every
30
+ // OpenAI-compatible provider speaks.
45
31
  const provider = normalizeProvider(config.provider);
46
32
  const baseUrl = config.baseUrl || '';
47
33
  // A Meta endpoint always speaks Responses, regardless of provider label.
@@ -66,9 +52,29 @@ export function resolveBaseUrl(config) {
66
52
  if (config.baseUrl)
67
53
  return config.baseUrl;
68
54
  const provider = normalizeProvider(config.provider);
69
- return PROVIDER_DEFAULT_BASE_URLS[provider];
55
+ return (defaultBaseUrlFor(provider) ?? PROVIDER_DEFAULT_BASE_URLS[provider]);
56
+ }
57
+ /**
58
+ * Resolve the effective runtime model for a full app config
59
+ * (per-provider saved key + catalog defaults). Prefer this over reading
60
+ * `config.model` directly — it never inherits the previous provider's key/URL.
61
+ */
62
+ export function resolveRuntimeModel(appConfig) {
63
+ const eff = resolveEffectiveModel(appConfig);
64
+ return {
65
+ provider: eff.provider,
66
+ model: eff.model,
67
+ apiKey: eff.apiKey,
68
+ baseUrl: eff.baseUrl,
69
+ api: eff.api,
70
+ };
70
71
  }
71
72
  export function createModelClient(config) {
73
+ if (!(config.model || '').trim()) {
74
+ throw new Error(`No model selected for provider "${normalizeProvider(config.provider)}". ` +
75
+ `Pick one from the provider's live catalog with 'musonda model setup', ` +
76
+ `or switch directly with 'musonda model <provider>/<model-id>'.`);
77
+ }
72
78
  const kind = resolveApiKind(config);
73
79
  const effective = {
74
80
  ...config,
@@ -80,4 +86,25 @@ export function createModelClient(config) {
80
86
  }
81
87
  return new ChatCompletionsClient(effective);
82
88
  }
89
+ /**
90
+ * Stand-in client used when no model id has been selected yet (e.g. tests
91
+ * that exercise non-model subsystems, or a gateway started before setup).
92
+ * Construction never throws; the friendly error surfaces only if a message
93
+ * is actually processed. Real entry points (`start gateway`, `cli`) fail
94
+ * fast via `assertModelSelected` instead.
95
+ */
96
+ export function createUnconfiguredModelClient(config) {
97
+ const provider = normalizeProvider(config.provider);
98
+ const message = `No model selected for provider "${provider}". ` +
99
+ `Pick one from the provider's live catalog with 'musonda model setup', ` +
100
+ `or switch directly with 'musonda model <provider>/<model-id>'.`;
101
+ return {
102
+ getModelName: () => '',
103
+ getProviderName: () => provider,
104
+ generate: async () => {
105
+ throw new Error(message);
106
+ },
107
+ checkReadiness: async () => ({ ready: false, reason: 'model_unavailable' }),
108
+ };
109
+ }
83
110
  //# sourceMappingURL=modelFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modelFactory.js","sourceRoot":"","sources":["../../src/agent/modelFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modelFactory.js","sourceRoot":"","sources":["../../src/agent/modelFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Musonda Unified Model Registry — single source of truth for providers & models.
3
+ *
4
+ * Model ids are NEVER hardcoded here. They always come from the provider's own
5
+ * `/models` endpoint catalog (`fetchAvailableModels`), which every
6
+ * OpenAI-compatible provider exposes. The only thing persisted per provider is
7
+ * what the user chose plus a cache of the last live catalog seen
8
+ * (`knownModels`), used only when the endpoint is temporarily unreachable.
9
+ *
10
+ * Keys are stored PER PROVIDER (config.modelProviders + provider env vars) so
11
+ * switching models never leaks or demands another key.
12
+ */
13
+ export interface ProviderDefinition {
14
+ /** Canonical id, e.g. "openai", "ollama". */
15
+ id: string;
16
+ /** Human label shown in pickers. */
17
+ label: string;
18
+ /** Default base URL (undefined = provider SDK default, e.g. OpenAI). */
19
+ defaultBaseUrl?: string;
20
+ /** True when no API key is ever needed (local runtimes). */
21
+ keyless?: boolean;
22
+ /** Env vars checked (in order) for this provider's key. */
23
+ keyEnvVars: string[];
24
+ /** Where to get a key. */
25
+ keyUrl?: string;
26
+ /** Suggested API dialect. */
27
+ apiHint: 'auto' | 'chat' | 'responses';
28
+ /** Short hint shown during setup. */
29
+ hint?: string;
30
+ }
31
+ export declare const PROVIDERS: ProviderDefinition[];
32
+ /** Canonicalize any user-typed provider name. Unknown names pass through (custom endpoints). */
33
+ export declare function normalizeProvider(raw?: string): string;
34
+ export declare function getProviderDef(provider: string): ProviderDefinition | undefined;
35
+ export declare function providerNeedsKey(provider: string): boolean;
36
+ export declare function defaultBaseUrlFor(provider: string): string | undefined;
37
+ export interface ProviderEntry {
38
+ apiKey?: string;
39
+ model?: string;
40
+ baseUrl?: string;
41
+ api?: string;
42
+ /**
43
+ * Last live `/models` catalog seen for this provider. Displayed only when
44
+ * the endpoint is temporarily unreachable — never a hardcoded list.
45
+ */
46
+ knownModels?: string[];
47
+ knownModelsAt?: number;
48
+ }
49
+ export declare function getRegistry(config: any): Record<string, ProviderEntry>;
50
+ /** Last live catalog seen for a provider (empty when never fetched). */
51
+ export declare function getKnownModels(config: any, provider: string): string[];
52
+ /** Cache a live catalog (caller must save config afterwards). */
53
+ export declare function saveKnownModels(config: any, provider: string, models: string[]): void;
54
+ /** Key lookup order: explicit → saved registry → active config (same provider) → provider env → generic MODEL_API_KEY. */
55
+ export declare function resolveProviderKey(config: any, provider: string, explicit?: string): {
56
+ key: string;
57
+ source: 'flag' | 'saved' | 'active' | 'env' | 'none';
58
+ };
59
+ export interface EffectiveModel {
60
+ provider: string;
61
+ model: string;
62
+ apiKey: string;
63
+ keySource: 'flag' | 'saved' | 'active' | 'env' | 'none';
64
+ baseUrl?: string;
65
+ api: string;
66
+ }
67
+ /**
68
+ * Single resolution path for "what model are we actually using?".
69
+ * Target provider's credentials are NEVER inherited from the previous provider:
70
+ * baseUrl/key/api fall back to the target's saved entry → env → catalog default.
71
+ * The model id is ONLY ever the user's saved choice (or '' when none picked yet).
72
+ */
73
+ export declare function resolveEffectiveModel(config: any): EffectiveModel;
74
+ /**
75
+ * Persist a provider switch atomically: saves the per-provider entry AND
76
+ * points the active model at it. Never carries the old provider's
77
+ * baseUrl/apiKey/api across.
78
+ */
79
+ export declare function applyModelSwitch(config: any, target: {
80
+ provider: string;
81
+ model: string;
82
+ apiKey?: string;
83
+ baseUrl?: string;
84
+ api?: string;
85
+ knownModels?: string[];
86
+ }): EffectiveModel;
87
+ export type ModelsFetchReason = 'ok' | 'no-key' | 'no-endpoint' | 'unauthorized' | 'unreachable';
88
+ /**
89
+ * Throw a friendly, actionable error when no model id has been selected yet.
90
+ * Used at gateway/CLI startup so a missing model never surfaces as a cryptic
91
+ * provider 404.
92
+ */
93
+ export declare function assertModelSelected(config: any): {
94
+ provider: string;
95
+ model: string;
96
+ };
97
+ /**
98
+ * List models straight from the provider's own endpoint catalog
99
+ * (`GET <baseUrl>/models`, the endpoint every OpenAI-compatible provider
100
+ * exposes). Returns an empty list (with a reason) when the catalog cannot be
101
+ * reached — callers then fall back to the cached catalog or ask the user to
102
+ * type the model id. Nothing is ever invented.
103
+ */
104
+ export declare function fetchAvailableModels(provider: string, opts?: {
105
+ apiKey?: string;
106
+ baseUrl?: string;
107
+ timeoutMs?: number;
108
+ }): Promise<{
109
+ models: string[];
110
+ live: boolean;
111
+ reason: ModelsFetchReason;
112
+ }>;