@chimerai/cli 0.2.97 → 0.2.99

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.
@@ -1 +1 @@
1
- {"version":3,"file":"api-routes.d.ts","sourceRoot":"","sources":["../../src/templates/api-routes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAuGhD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAoGlD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAmEhD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAsFlD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAoH/C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAkG7C;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CA0H/C;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CAgDvD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAQ5C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CA+D5C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA0E9C;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAyC9C;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAwBpD;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CAmCvD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CA+EnD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CA8BjD"}
1
+ {"version":3,"file":"api-routes.d.ts","sourceRoot":"","sources":["../../src/templates/api-routes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAuGhD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAoGlD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAmEhD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAsFlD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAoH/C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAkG7C;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CA0H/C;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CAgDvD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAQ5C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAwE5C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA0E9C;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAyC9C;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAwBpD;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CAmCvD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CA+EnD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CA8BjD"}
@@ -858,6 +858,7 @@ export async function GET() {
858
858
  id: true,
859
859
  name: true,
860
860
  type: true,
861
+ config: true,
861
862
  },
862
863
  },
863
864
  },
@@ -875,18 +876,26 @@ export async function GET() {
875
876
  return caps.includes('chat') || caps.includes('vision') || caps.length === 0;
876
877
  });
877
878
 
878
- const result = chatModels.map((m: any) => ({
879
- id: m.id,
880
- modelId: m.modelId,
881
- name: m.name,
882
- providerId: m.providerId,
883
- providerType: m.provider.type,
884
- contextWindow: m.contextWindow || 0,
885
- inputCost: m.inputCost || 0,
886
- outputCost: m.outputCost || 0,
887
- capabilities: m.capabilities || [],
888
- provider: m.provider,
889
- }));
879
+ const result = chatModels.map((m: any) => {
880
+ // Resolve provider's configured default model (stored in config.defaultModel)
881
+ const providerConfig = typeof m.provider.config === 'string'
882
+ ? (() => { try { return JSON.parse(m.provider.config); } catch { return {}; } })()
883
+ : (m.provider.config || {});
884
+ const isProviderDefault = !!providerConfig.defaultModel && providerConfig.defaultModel === m.modelId;
885
+ return {
886
+ id: m.id,
887
+ modelId: m.modelId,
888
+ name: m.name,
889
+ providerId: m.providerId,
890
+ providerType: m.provider.type,
891
+ contextWindow: m.contextWindow || 0,
892
+ inputCost: m.inputCost || 0,
893
+ outputCost: m.outputCost || 0,
894
+ capabilities: m.capabilities || [],
895
+ provider: m.provider,
896
+ isProviderDefault,
897
+ };
898
+ });
890
899
 
891
900
  return NextResponse.json(result);
892
901
  } catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/templates/chat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAqI/C;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAuLzC;AAED;;;;GAIG;AACH,wBAAgB,sCAAsC,IAAI,MAAM,CAwa/D;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAwEnD;AAMD;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAkb5C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAuQ5C;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAwH1C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CA+O5C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA+D9C;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,CAyGxD"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/templates/chat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAqI/C;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAuLzC;AAED;;;;GAIG;AACH,wBAAgB,sCAAsC,IAAI,MAAM,CAwa/D;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAwEnD;AAMD;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAob5C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAuQ5C;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAwH1C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CA+O5C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA+D9C;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,CAyGxD"}
@@ -978,7 +978,9 @@ export function useChat(options: UseChatOptions = {}): UseChatReturn {
978
978
  const modelList = Array.isArray(data) ? data : data.models || [];
979
979
  setModels(modelList);
980
980
  if (modelList.length > 0 && !selectedModelId) {
981
- setSelectedModelId(modelList[0].id);
981
+ // Prefer provider's configured default model, fall back to first in list
982
+ const defaultModel = modelList.find((m: any) => m.isProviderDefault) || modelList[0];
983
+ setSelectedModelId(defaultModel.id);
982
984
  }
983
985
  }
984
986
  } catch (err) {
@@ -4,7 +4,7 @@
4
4
  */
5
5
  /**
6
6
  * Generates the Model Providers management page
7
- * Self-contained — no external @chimerai/* imports needed
7
+ * Self-contained no external @chimerai/* imports needed
8
8
  * @returns TypeScript/JSX content for app/dashboard/providers/page.tsx
9
9
  */
10
10
  export declare function generateModelProvidersPage(): string;
@@ -9,7 +9,7 @@ exports.generatePromptManagementPage = generatePromptManagementPage;
9
9
  exports.generatePromptSelector = generatePromptSelector;
10
10
  /**
11
11
  * Generates the Model Providers management page
12
- * Self-contained — no external @chimerai/* imports needed
12
+ * Self-contained no external @chimerai/* imports needed
13
13
  * @returns TypeScript/JSX content for app/dashboard/providers/page.tsx
14
14
  */
15
15
  function generateModelProvidersPage() {
@@ -156,7 +156,7 @@ export default function ProvidersPage() {
156
156
  await fetchProviders();
157
157
  }
158
158
  } catch {
159
- // Sync failed silently — models will appear on next manual sync
159
+ // Sync failed silently models will appear on next manual sync
160
160
  } finally {
161
161
  setSyncing(prev => ({ ...prev, [id]: false }));
162
162
  }
@@ -241,7 +241,7 @@ export default function ProvidersPage() {
241
241
  <select value={formData.defaultModel}
242
242
  onChange={e => setFormData(f => ({ ...f, defaultModel: e.target.value }))}
243
243
  className="w-full px-3 py-2 border dark:border-gray-600 rounded-lg dark:bg-gray-700 dark:text-white">
244
- <option value="">— Select a model —</option>
244
+ <option value="">— Select a model —</option>
245
245
  {editingModels
246
246
  .filter(m => !m.capabilities || m.capabilities.length === 0 || m.capabilities.some(c => ['chat', 'completion'].includes(c)))
247
247
  .map(m => <option key={m.id} value={m.modelId}>{m.name || m.modelId}</option>)}
@@ -297,7 +297,7 @@ export default function ProvidersPage() {
297
297
  )}
298
298
  {testResults[provider.id] && (
299
299
  <div className={\`text-sm p-2 rounded mb-3 \${testResults[provider.id].success ? 'bg-green-50 dark:bg-green-900/20 text-green-700 dark:text-green-300' : 'bg-red-50 dark:bg-red-900/20 text-red-700 dark:text-red-300'}\`}>
300
- {testResults[provider.id].success ? \`✓ Connected (\${testResults[provider.id].responseTime}ms)\` : \`✗ \${testResults[provider.id].errorMessage}\`}
300
+ {testResults[provider.id].success ? \`✓ Connected (\${testResults[provider.id].responseTime}ms)\` : \`✗ \${testResults[provider.id].errorMessage}\`}
301
301
  </div>
302
302
  )}
303
303
  <div className="flex gap-2 mt-3 pt-3 border-t dark:border-gray-700">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chimerai/cli",
3
- "version": "0.2.97",
3
+ "version": "0.2.99",
4
4
  "description": "CLI wizard for ChimerAI starter kit — scaffold auth, RBAC, AI chat, billing and more into any Next.js project",
5
5
  "main": "./dist/index.js",
6
6
  "bin": {