@bike4mind/cli 0.2.5-feat-cli-dynamic-model-fetching.17089 → 0.2.5-feat-cli-dynamic-model-fetching.17090

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 (2) hide show
  1. package/dist/index.js +28 -14
  2. package/package.json +6 -6
package/dist/index.js CHANGED
@@ -690,19 +690,24 @@ function buildConfigItems(availableModels) {
690
690
  label: model.name,
691
691
  value: model.id
692
692
  }));
693
- return [
694
- // Model selection - first item (most important)
695
- {
693
+ const items = [];
694
+ if (modelOptions.length > 0) {
695
+ items.push({
696
696
  key: "model",
697
697
  label: "Model",
698
698
  type: "select",
699
699
  options: modelOptions,
700
- getValue: (config) => config.defaultModel,
700
+ getValue: (config) => {
701
+ const modelExists = modelOptions.some((opt) => opt.value === config.defaultModel);
702
+ return modelExists ? config.defaultModel : modelOptions[0]?.value ?? config.defaultModel;
703
+ },
701
704
  setValue: (config, value) => ({
702
705
  ...config,
703
706
  defaultModel: value
704
707
  })
705
- },
708
+ });
709
+ }
710
+ items.push(
706
711
  {
707
712
  key: "maxIterations",
708
713
  label: "Max Iterations",
@@ -790,7 +795,8 @@ function buildConfigItems(availableModels) {
790
795
  }
791
796
  })
792
797
  }
793
- ];
798
+ );
799
+ return items;
794
800
  }
795
801
  function ConfigEditor({ config, availableModels, onSave, onClose }) {
796
802
  const [selectedIndex, setSelectedIndex] = useState2(0);
@@ -799,8 +805,8 @@ function ConfigEditor({ config, availableModels, onSave, onClose }) {
799
805
  const [isSaving, setIsSaving] = useState2(false);
800
806
  const configItems = useMemo2(() => buildConfigItems(availableModels), [availableModels]);
801
807
  const hasChanges = useMemo2(() => {
802
- return JSON.stringify(config.preferences) !== JSON.stringify(editedConfig.preferences);
803
- }, [config.preferences, editedConfig.preferences]);
808
+ return JSON.stringify(config.preferences) !== JSON.stringify(editedConfig.preferences) || config.defaultModel !== editedConfig.defaultModel;
809
+ }, [config.preferences, editedConfig.preferences, config.defaultModel, editedConfig.defaultModel]);
804
810
  const handleSaveAndClose = async () => {
805
811
  if (hasChanges) {
806
812
  try {
@@ -9250,17 +9256,25 @@ var ServerLlmBackend = class {
9250
9256
  try {
9251
9257
  logger.debug("[ServerLlmBackend] Fetching models from /api/models");
9252
9258
  const response = await this.apiClient.get("/api/models");
9259
+ if (!response || typeof response !== "object" || !Array.isArray(response.models)) {
9260
+ logger.warn("[ServerLlmBackend] Invalid API response format, using fallback models");
9261
+ logger.info("\u26A0\uFE0F Using fallback model list (API returned invalid format)");
9262
+ return this.getFallbackModels();
9263
+ }
9253
9264
  const filteredModels = response.models.filter((model) => model.type === "text" && model.supportsTools === true);
9254
9265
  logger.debug(`[ServerLlmBackend] Fetched ${filteredModels.length} CLI-compatible models`);
9255
9266
  if (filteredModels.length === 0) {
9256
9267
  logger.warn("[ServerLlmBackend] No CLI-compatible models found from API, using fallback");
9268
+ logger.info("\u26A0\uFE0F Using fallback model list (no CLI-compatible models available)");
9257
9269
  return this.getFallbackModels();
9258
9270
  }
9271
+ logger.info(`\u{1F4CB} Loaded ${filteredModels.length} models from server`);
9259
9272
  return filteredModels;
9260
9273
  } catch (error) {
9261
9274
  logger.warn(
9262
9275
  `[ServerLlmBackend] Failed to fetch models from API, using fallback: ${error instanceof Error ? error.message : String(error)}`
9263
9276
  );
9277
+ logger.info("\u26A0\uFE0F Using fallback model list (API unavailable)");
9264
9278
  return this.getFallbackModels();
9265
9279
  }
9266
9280
  }
@@ -9453,7 +9467,7 @@ import { isAxiosError as isAxiosError2 } from "axios";
9453
9467
  // package.json
9454
9468
  var package_default = {
9455
9469
  name: "@bike4mind/cli",
9456
- version: "0.2.5-feat-cli-dynamic-model-fetching.17089+db1b07944",
9470
+ version: "0.2.5-feat-cli-dynamic-model-fetching.17090+9a474f275",
9457
9471
  type: "module",
9458
9472
  description: "Interactive CLI tool for Bike4Mind with ReAct agents",
9459
9473
  license: "UNLICENSED",
@@ -9555,10 +9569,10 @@ var package_default = {
9555
9569
  },
9556
9570
  devDependencies: {
9557
9571
  "@bike4mind/agents": "0.1.0",
9558
- "@bike4mind/common": "2.37.1-feat-cli-dynamic-model-fetching.17089+db1b07944",
9559
- "@bike4mind/mcp": "1.19.6-feat-cli-dynamic-model-fetching.17089+db1b07944",
9560
- "@bike4mind/services": "2.32.2-feat-cli-dynamic-model-fetching.17089+db1b07944",
9561
- "@bike4mind/utils": "2.1.1-feat-cli-dynamic-model-fetching.17089+db1b07944",
9572
+ "@bike4mind/common": "2.37.1-feat-cli-dynamic-model-fetching.17090+9a474f275",
9573
+ "@bike4mind/mcp": "1.19.6-feat-cli-dynamic-model-fetching.17090+9a474f275",
9574
+ "@bike4mind/services": "2.32.2-feat-cli-dynamic-model-fetching.17090+9a474f275",
9575
+ "@bike4mind/utils": "2.1.1-feat-cli-dynamic-model-fetching.17090+9a474f275",
9562
9576
  "@types/diff": "^5.0.9",
9563
9577
  "@types/jsonwebtoken": "^9.0.4",
9564
9578
  "@types/node": "^22.9.0",
@@ -9570,7 +9584,7 @@ var package_default = {
9570
9584
  typescript: "^5.9.3",
9571
9585
  vitest: "^3.2.4"
9572
9586
  },
9573
- gitHead: "db1b079442c65e5ec9a8c27df0190d14e6950889"
9587
+ gitHead: "9a474f27597e2e7625a73e2dc0436ae1e4f5d84e"
9574
9588
  };
9575
9589
 
9576
9590
  // src/config/constants.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bike4mind/cli",
3
- "version": "0.2.5-feat-cli-dynamic-model-fetching.17089+db1b07944",
3
+ "version": "0.2.5-feat-cli-dynamic-model-fetching.17090+9a474f275",
4
4
  "type": "module",
5
5
  "description": "Interactive CLI tool for Bike4Mind with ReAct agents",
6
6
  "license": "UNLICENSED",
@@ -102,10 +102,10 @@
102
102
  },
103
103
  "devDependencies": {
104
104
  "@bike4mind/agents": "0.1.0",
105
- "@bike4mind/common": "2.37.1-feat-cli-dynamic-model-fetching.17089+db1b07944",
106
- "@bike4mind/mcp": "1.19.6-feat-cli-dynamic-model-fetching.17089+db1b07944",
107
- "@bike4mind/services": "2.32.2-feat-cli-dynamic-model-fetching.17089+db1b07944",
108
- "@bike4mind/utils": "2.1.1-feat-cli-dynamic-model-fetching.17089+db1b07944",
105
+ "@bike4mind/common": "2.37.1-feat-cli-dynamic-model-fetching.17090+9a474f275",
106
+ "@bike4mind/mcp": "1.19.6-feat-cli-dynamic-model-fetching.17090+9a474f275",
107
+ "@bike4mind/services": "2.32.2-feat-cli-dynamic-model-fetching.17090+9a474f275",
108
+ "@bike4mind/utils": "2.1.1-feat-cli-dynamic-model-fetching.17090+9a474f275",
109
109
  "@types/diff": "^5.0.9",
110
110
  "@types/jsonwebtoken": "^9.0.4",
111
111
  "@types/node": "^22.9.0",
@@ -117,5 +117,5 @@
117
117
  "typescript": "^5.9.3",
118
118
  "vitest": "^3.2.4"
119
119
  },
120
- "gitHead": "db1b079442c65e5ec9a8c27df0190d14e6950889"
120
+ "gitHead": "9a474f27597e2e7625a73e2dc0436ae1e4f5d84e"
121
121
  }