@motebit/sdk 2.3.0 → 2.4.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/models.d.ts CHANGED
@@ -108,4 +108,18 @@ export type LocalServerSuggestedModel = (typeof LOCAL_SERVER_SUGGESTED_MODELS)[n
108
108
  */
109
109
  export type OllamaSuggestedModel = LocalServerSuggestedModel;
110
110
  export type ProxyModel = (typeof PROXY_MODELS)[number];
111
+ /** Best-effort vendor attribution for a model id. Registry membership
112
+ * first, then naming-signature heuristics for ids the registry hasn't
113
+ * caught up to (new dated releases must not brick startup — an
114
+ * `"unknown"` verdict is deliberately permissive). */
115
+ export declare function modelVendorHint(model: string): "anthropic" | "openai" | "google" | "deepseek" | "groq" | "local" | "unknown";
116
+ /**
117
+ * Pre-flight admission: may `model` be served by `provider`?
118
+ * Permissive where honesty demands it — `local-server` runs whatever the
119
+ * user's server hosts, the proxy routes multiple vendors, and an
120
+ * `"unknown"` vendor hint never blocks (the registry lags new releases).
121
+ * It answers `false` only for a KNOWN cross-vendor mismatch — exactly
122
+ * the class that fails opaquely at the API otherwise.
123
+ */
124
+ export declare function providerAcceptsModel(provider: string, model: string): boolean;
111
125
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AASA,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,gFAInB,CAAC;AAEX,uFAAuF;AACvF,eAAO,MAAM,aAAa,sDAAuD,CAAC;AAElF,sFAAsF;AACtF,eAAO,MAAM,aAAa,0EAIhB,CAAC;AAEX;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,4BAA6B,CAAC;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,WAAW,6DAA8D,CAAC;AAEvF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,6BAA6B,gGAShC,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,gGAAgC,CAAC;AAErE,wEAAwE;AACxE,eAAO,MAAM,YAAY,0LAUf,CAAC;AAIX,+BAA+B;AAC/B,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAE3D,4BAA4B;AAC5B,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD,4BAA4B;AAC5B,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAE5D,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,aAAuB,CAAC;AAE/D,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AAIvD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/D,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AACvF;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,CAAC;AAC7D,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AASA,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,gFAInB,CAAC;AAEX,uFAAuF;AACvF,eAAO,MAAM,aAAa,sDAAuD,CAAC;AAElF,sFAAsF;AACtF,eAAO,MAAM,aAAa,0EAIhB,CAAC;AAEX;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,4BAA6B,CAAC;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,WAAW,6DAA8D,CAAC;AAEvF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,6BAA6B,gGAShC,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,gGAAgC,CAAC;AAErE,wEAAwE;AACxE,eAAO,MAAM,YAAY,0LAUf,CAAC;AAIX,+BAA+B;AAC/B,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAE3D,4BAA4B;AAC5B,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD,4BAA4B;AAC5B,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAE5D,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,aAAuB,CAAC;AAE/D,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AAIvD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/D,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AACvF;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,CAAC;AAC7D,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAavD;;;uDAGuD;AACvD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,GACZ,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAc/E;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAO7E"}
package/dist/models.js CHANGED
@@ -132,4 +132,63 @@ export const DEFAULT_OLLAMA_MODEL = "llama3.2";
132
132
  export const DEFAULT_LOCAL_SERVER_MODEL = DEFAULT_OLLAMA_MODEL;
133
133
  /** Default proxy model (used when no model is specified). */
134
134
  export const DEFAULT_PROXY_MODEL = "claude-sonnet-4-6";
135
+ // === Provider ↔ model coherence ===
136
+ //
137
+ // Born live, 2026-07-06: `--provider anthropic` with a config-resident
138
+ // `default_model: llama3.2:latest` composed an Anthropic provider around
139
+ // an Ollama model id — the banner printed the illegal pairing and the
140
+ // failure deferred to the first API call. The intelligence-pluggability
141
+ // contract's first commitment is PRE-FLIGHT admission: the selected
142
+ // model must fit the selected provider BEFORE any turn runs. These two
143
+ // helpers are that check's canonical home (the registry already knows
144
+ // the vendors).
145
+ /** Best-effort vendor attribution for a model id. Registry membership
146
+ * first, then naming-signature heuristics for ids the registry hasn't
147
+ * caught up to (new dated releases must not brick startup — an
148
+ * `"unknown"` verdict is deliberately permissive). */
149
+ export function modelVendorHint(model) {
150
+ const m = model.trim().toLowerCase();
151
+ if (ANTHROPIC_MODELS.includes(m))
152
+ return "anthropic";
153
+ if (OPENAI_MODELS.includes(m))
154
+ return "openai";
155
+ if (GOOGLE_MODELS.includes(m))
156
+ return "google";
157
+ if (DEEPSEEK_MODELS.includes(m))
158
+ return "deepseek";
159
+ if (GROQ_MODELS.includes(m))
160
+ return "groq";
161
+ if (m.startsWith("claude"))
162
+ return "anthropic";
163
+ if (m.startsWith("gpt-") || /^o[0-9]/.test(m))
164
+ return "openai";
165
+ if (m.startsWith("gemini"))
166
+ return "google";
167
+ if (m.startsWith("deepseek"))
168
+ return "deepseek";
169
+ // Ollama-style tags and the common local families.
170
+ if (m.includes(":") || /^(llama|mistral|qwen|phi|gemma|smollm)/.test(m))
171
+ return "local";
172
+ return "unknown";
173
+ }
174
+ /**
175
+ * Pre-flight admission: may `model` be served by `provider`?
176
+ * Permissive where honesty demands it — `local-server` runs whatever the
177
+ * user's server hosts, the proxy routes multiple vendors, and an
178
+ * `"unknown"` vendor hint never blocks (the registry lags new releases).
179
+ * It answers `false` only for a KNOWN cross-vendor mismatch — exactly
180
+ * the class that fails opaquely at the API otherwise.
181
+ */
182
+ export function providerAcceptsModel(provider, model) {
183
+ if (provider === "local-server" || provider === "ollama")
184
+ return true;
185
+ const hint = modelVendorHint(model);
186
+ if (hint === "unknown")
187
+ return true;
188
+ if (provider === "proxy")
189
+ return hint === "anthropic" || hint === "openai" || hint === "google";
190
+ if (provider === "groq")
191
+ return hint === "groq" || hint === "local"; // groq serves open models
192
+ return hint === provider;
193
+ }
135
194
  //# sourceMappingURL=models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,EAAE;AACF,oEAAoE;AACpE,sGAAsG;AACtG,4EAA4E;AAC5E,EAAE;AACF,kDAAkD;AAClD,yEAAyE;AAEzE,iFAAiF;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,iBAAiB;IACjB,mBAAmB;IACnB,2BAA2B;CACnB,CAAC;AAEX,uFAAuF;AACvF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,cAAc,EAAE,cAAc,CAAU,CAAC;AAElF,sFAAsF;AACtF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,gBAAgB;IAChB,kBAAkB;IAClB,uBAAuB;CACf,CAAC;AAEX;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,eAAe,CAAU,CAAC;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,yBAAyB,EAAE,qBAAqB,CAAU,CAAC;AAEvF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,UAAU;IACV,UAAU;IACV,QAAQ;IACR,SAAS;IACT,WAAW;IACX,QAAQ;IACR,MAAM;IACN,OAAO;CACC,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,6BAA6B,CAAC;AAErE,wEAAwE;AACxE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,iBAAiB;IACjB,mBAAmB;IACnB,2BAA2B;IAC3B,SAAS;IACT,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,uBAAuB;CACf,CAAC;AAEX,yBAAyB;AAEzB,+BAA+B;AAC/B,MAAM,CAAC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAE3D,4BAA4B;AAC5B,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAEnD,4BAA4B;AAC5B,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAe,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAE5D,qEAAqE;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,oBAAoB,CAAC;AAE/D,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@motebit/sdk",
3
- "version": "2.3.0",
3
+ "version": "2.4.0",
4
4
  "description": "Developer contract for building Motebit-powered agents, services, and integrations — stable types, adapter interfaces, governance config. Re-exports @motebit/protocol.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -47,7 +47,7 @@
47
47
  "access": "public"
48
48
  },
49
49
  "dependencies": {
50
- "@motebit/protocol": "3.9.0"
50
+ "@motebit/protocol": "3.10.0"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/node": "^22.0.0",