@openinference/cli 1.0.0 → 1.0.3

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.
@@ -13,6 +13,6 @@ export type HardwareProfile = {
13
13
  export declare function detectHardware(): HardwareProfile;
14
14
  export declare function formatHardware(hw: HardwareProfile): string;
15
15
  export declare function ollamaModelsPath(): string;
16
- /** Model fits if RAM budget ok and ~1.2× download size fits on disk (with 2 GB headroom). */
16
+ /** Model fits if download size + reserve fits on disk. Tighter reserve on small disks. */
17
17
  export declare function fitsDisk(modelSizeMb: number, diskFreeGb: number): boolean;
18
18
  //# sourceMappingURL=hardware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hardware.d.ts","sourceRoot":"","sources":["../src/hardware.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AA0DF,wBAAgB,cAAc,IAAI,eAAe,CAuBhD;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,eAAe,GAAG,MAAM,CAK1D;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,6FAA6F;AAC7F,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAIzE"}
1
+ {"version":3,"file":"hardware.d.ts","sourceRoot":"","sources":["../src/hardware.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAsEF,wBAAgB,cAAc,IAAI,eAAe,CAmBhD;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,eAAe,GAAG,MAAM,CAK1D;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,0FAA0F;AAC1F,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAKzE"}
package/dist/hardware.js CHANGED
@@ -65,16 +65,23 @@ function osLabel() {
65
65
  return `macOS ${rel}`;
66
66
  return `${type} ${rel}`;
67
67
  }
68
+ function memoryBudgetGb(ramGb, hasGpu, vramGb) {
69
+ // Scale OS reserve for small cloud VMs (e.g. AWS 4 GB → reports ~3.7 GB)
70
+ const headroom = ramGb <= 4 ? 1.2 : ramGb <= 6 ? 2 : ramGb <= 8 ? 2.5 : 4;
71
+ const ramBudget = Math.max(0.35, ramGb - headroom);
72
+ if (hasGpu && vramGb > 0) {
73
+ const vramBudget = Math.max(0, vramGb - 0.5);
74
+ return Math.max(vramBudget, ramBudget * 0.6);
75
+ }
76
+ return ramBudget;
77
+ }
68
78
  function detectHardware() {
69
79
  const ramGb = roundGb(node_os_1.default.totalmem());
70
80
  const cpuCores = node_os_1.default.cpus().length;
71
81
  const { vramGb, name } = detectVram();
72
82
  const hasGpu = vramGb > 0;
73
83
  const diskFreeGb = detectDiskFreeGb();
74
- const osHeadroom = 4;
75
- const vramBudget = hasGpu ? Math.max(0, vramGb - 1) : 0;
76
- const ramBudget = Math.max(0, ramGb - osHeadroom);
77
- const budgetGb = hasGpu ? Math.max(vramBudget, ramBudget * 0.6) : ramBudget;
84
+ const budgetGb = memoryBudgetGb(ramGb, hasGpu, vramGb);
78
85
  return {
79
86
  ramGb,
80
87
  cpuCores,
@@ -96,11 +103,12 @@ function formatHardware(hw) {
96
103
  function ollamaModelsPath() {
97
104
  return node_path_1.default.join(node_os_1.default.homedir(), '.ollama', 'models');
98
105
  }
99
- /** Model fits if RAM budget ok and ~1.2× download size fits on disk (with 2 GB headroom). */
106
+ /** Model fits if download size + reserve fits on disk. Tighter reserve on small disks. */
100
107
  function fitsDisk(modelSizeMb, diskFreeGb) {
101
108
  if (diskFreeGb <= 0)
102
109
  return true;
103
- const needGb = modelSizeMb / 1024 + 2;
110
+ const reserveGb = diskFreeGb < 15 ? 0.8 : 2;
111
+ const needGb = modelSizeMb / 1024 + reserveGb;
104
112
  return diskFreeGb >= needGb;
105
113
  }
106
114
  //# sourceMappingURL=hardware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hardware.js","sourceRoot":"","sources":["../src/hardware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hardware.js","sourceRoot":"","sources":["../src/hardware.ts"],"names":[],"mappings":";;;;;AAsFA,wCAmBC;AAED,wCAKC;AAED,4CAEC;AAGD,4BAKC;AA5HD,sDAAyB;AACzB,sDAAyB;AACzB,0DAA6B;AAC7B,2DAA+C;AAe/C,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AACnD,CAAC;AAED,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAA,8BAAS,EAAC,YAAY,EAAE,CAAC,+BAA+B,EAAE,+BAA+B,CAAC,EAAE;YACpG,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE;YAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;QACjD,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,IAAI,GAAG,iBAAE,CAAC,OAAO,EAAE,CAAC;IAE1B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,mBAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC;QAC9C,MAAM,EAAE,GAAG,IAAA,8BAAS,EAClB,YAAY,EACZ,CAAC,YAAY,EAAE,UAAU,EAAE,uBAAuB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,EACpF,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CACvD,CAAC;QACF,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,iBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,SAAS,OAAO;IACd,MAAM,IAAI,GAAG,iBAAE,CAAC,IAAI,EAAE,CAAC;IACvB,MAAM,GAAG,GAAG,iBAAE,CAAC,OAAO,EAAE,CAAC;IACzB,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,WAAW,GAAG,EAAE,CAAC;IACnD,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,GAAG,EAAE,CAAC;IAC7C,OAAO,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,MAAe,EAAE,MAAc;IACpE,yEAAyE;IACzE,MAAM,QAAQ,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;IAEnD,IAAI,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,cAAc;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,iBAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;IAC1B,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEvD,OAAO;QACL,KAAK;QACL,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,EAAE;QAClB,UAAU;QACV,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,EAAE;KACzC,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAAC,EAAmB;IAChD,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM;QACnB,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,IAAI,KAAK,KAAK,EAAE,CAAC,MAAM,WAAW;QACjD,CAAC,CAAC,eAAe,CAAC;IACpB,OAAO,GAAG,EAAE,CAAC,KAAK,aAAa,EAAE,CAAC,QAAQ,YAAY,GAAG,EAAE,CAAC;AAC9D,CAAC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC;AAED,0FAA0F;AAC1F,SAAgB,QAAQ,CAAC,WAAmB,EAAE,UAAkB;IAC9D,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,SAAS,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,OAAO,UAAU,IAAI,MAAM,CAAC;AAC9B,CAAC"}
package/dist/index.js CHANGED
@@ -57,7 +57,7 @@ function setupFlags(opts) {
57
57
  program
58
58
  .name('oi')
59
59
  .description('OpenInference — find, install, and chat with local open-source models')
60
- .version('1.0.0');
60
+ .version('1.0.3');
61
61
  const startCmd = program
62
62
  .command('start', { isDefault: true })
63
63
  .description('Wizard: use case → scan → pick → confirm → install → chat')
package/dist/ollama.d.ts CHANGED
@@ -10,6 +10,7 @@ export declare function ensureRemoteOllama(baseUrl: string): Promise<void>;
10
10
  export declare function pullModelHost(modelId: string): Promise<void>;
11
11
  /** Pull via Ollama HTTP API (for Docker / VM where `ollama` CLI is not on PATH). */
12
12
  export declare function pullModelRemote(baseUrl: string, modelId: string): Promise<void>;
13
+ export declare function isInferenceCrashError(msg: string): boolean;
13
14
  export declare function verifyModel(baseUrl: string, modelId: string): Promise<void>;
14
15
  export declare function listModelTags(ollamaUrl?: string): Promise<string[]>;
15
16
  //# sourceMappingURL=ollama.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../src/ollama.ts"],"names":[],"mappings":"AAKA,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAI3C;AAED,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQnE;AAED,wBAAgB,aAAa,IAAI,IAAI,CAqCpC;AAWD,2DAA2D;AAC3D,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB5E;AAED,yEAAyE;AACzE,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQvE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5D;AAID,oFAAoF;AACpF,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDrF;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBjF;AAMD,wBAAsB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAMzE"}
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../src/ollama.ts"],"names":[],"mappings":"AAKA,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAI3C;AAED,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQnE;AAED,wBAAgB,aAAa,IAAI,IAAI,CAqCpC;AAWD,2DAA2D;AAC3D,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB5E;AAED,yEAAyE;AACzE,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQvE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5D;AAID,oFAAoF;AACpF,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDrF;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BjF;AAMD,wBAAsB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAMzE"}
package/dist/ollama.js CHANGED
@@ -8,6 +8,7 @@ exports.ensureHostOllamaRunning = ensureHostOllamaRunning;
8
8
  exports.ensureRemoteOllama = ensureRemoteOllama;
9
9
  exports.pullModelHost = pullModelHost;
10
10
  exports.pullModelRemote = pullModelRemote;
11
+ exports.isInferenceCrashError = isInferenceCrashError;
11
12
  exports.verifyModel = verifyModel;
12
13
  exports.listModelTags = listModelTags;
13
14
  const node_child_process_1 = require("node:child_process");
@@ -163,6 +164,9 @@ async function pullModelRemote(baseUrl, modelId) {
163
164
  process.stdout.write('\n');
164
165
  console.log('');
165
166
  }
167
+ function isInferenceCrashError(msg) {
168
+ return /segmentation fault|process has terminated|out of memory|oom|cuda/i.test(msg);
169
+ }
166
170
  async function verifyModel(baseUrl, modelId) {
167
171
  const url = resolveOllamaUrl(baseUrl);
168
172
  console.log('Verifying model…');
@@ -179,6 +183,10 @@ async function verifyModel(baseUrl, modelId) {
179
183
  });
180
184
  if (!res.ok) {
181
185
  const text = await res.text().catch(() => '');
186
+ if (isInferenceCrashError(text)) {
187
+ throw new Error(`Model "${modelId}" crashed on this computer (usually not enough RAM for CPU inference). ` +
188
+ 'Pick a smaller model — try smollm2:135m or gemma3:1b.');
189
+ }
182
190
  throw new Error(`Model verification failed: ${res.status} ${text}`);
183
191
  }
184
192
  const body = (await res.json());
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../src/ollama.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../src/ollama.ts"],"names":[],"mappings":"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"}
package/dist/prompt.d.ts CHANGED
@@ -5,7 +5,12 @@ export declare function printHardwareScan(hw: HardwareProfile): void;
5
5
  /** Detailed list for `oi recommend` / `oi browse`. */
6
6
  export declare function printRecommendations(recs: Recommendation[]): void;
7
7
  /** Wizard step: numbered picks with recommended badge on #1. */
8
- export declare function printWizardRecommendations(recs: Recommendation[], totalFit: number): void;
8
+ export declare function printWizardRecommendations(recs: Recommendation[], totalFit: number, opts?: {
9
+ fallback?: boolean;
10
+ useCaseLabel?: string;
11
+ }): void;
12
+ export declare function askYesNo(prompt: string, defaultYes?: boolean): Promise<boolean>;
13
+ export declare function printTooSmallHelp(hw: HardwareProfile): void;
9
14
  export declare function pickRecommendation(recs: Recommendation[]): Promise<Recommendation>;
10
15
  export declare function confirmInstall(opts: {
11
16
  modelName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAalD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAc9D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAG3D;AAED,sDAAsD;AACtD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,CAWjE;AAED,gEAAgE;AAChE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQzF;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAmBxF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBnB"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAalD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAc9D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAG3D;AAED,sDAAsD;AACtD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,CAWjE;AAED,gEAAgE;AAChE,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,cAAc,EAAE,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,IAAI,CAcN;AAED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,UAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAUlF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAU3D;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAmBxF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBnB"}
package/dist/prompt.js CHANGED
@@ -37,6 +37,8 @@ exports.printHardwareResults = printHardwareResults;
37
37
  exports.printHardwareScan = printHardwareScan;
38
38
  exports.printRecommendations = printRecommendations;
39
39
  exports.printWizardRecommendations = printWizardRecommendations;
40
+ exports.askYesNo = askYesNo;
41
+ exports.printTooSmallHelp = printTooSmallHelp;
40
42
  exports.pickRecommendation = pickRecommendation;
41
43
  exports.confirmInstall = confirmInstall;
42
44
  const TIER_COLOR = {
@@ -80,8 +82,13 @@ function printRecommendations(recs) {
80
82
  console.log('');
81
83
  }
82
84
  /** Wizard step: numbered picks with recommended badge on #1. */
83
- function printWizardRecommendations(recs, totalFit) {
84
- console.log(` ${totalFit} models fit your computer for this use case. Top picks:\n`);
85
+ function printWizardRecommendations(recs, totalFit, opts) {
86
+ if (opts?.fallback) {
87
+ console.log(` ⚠ No "${opts.useCaseLabel}" models fit, but ${totalFit} small open-source models do on your hardware:\n`);
88
+ }
89
+ else {
90
+ console.log(` ${totalFit} models fit your computer for this use case. Top picks:\n`);
91
+ }
85
92
  recs.forEach((r, i) => {
86
93
  const badge = i === 0 ? ' ⭐ Recommended' : '';
87
94
  const size = formatSize(r.sizeMb);
@@ -89,6 +96,29 @@ function printWizardRecommendations(recs, totalFit) {
89
96
  });
90
97
  console.log('');
91
98
  }
99
+ async function askYesNo(prompt, defaultYes = true) {
100
+ const readline = await Promise.resolve().then(() => __importStar(require('node:readline')));
101
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
102
+ const answer = await new Promise((resolve) => {
103
+ rl.question(prompt, resolve);
104
+ });
105
+ rl.close();
106
+ const t = answer.trim().toLowerCase();
107
+ if (!t)
108
+ return defaultYes;
109
+ return !/^(n|no)$/i.test(t);
110
+ }
111
+ function printTooSmallHelp(hw) {
112
+ console.log('\n Nothing in our catalog fits this machine right now.\n');
113
+ console.log(` RAM budget: ~${hw.budgetGb} GB · Disk free: ${hw.diskFreeGb} GB\n`);
114
+ console.log(' Options:');
115
+ console.log(' • Free disk space or use a VM with 8 GB+ RAM');
116
+ console.log(' • Try a different use case (General Chat has the most tiny models)');
117
+ console.log(' • Force a tiny model: oi -y -m smollm2:135m\n');
118
+ if (hw.budgetGb < 0.5) {
119
+ console.log(' Tip: update the CLI — npm update -g @openinference/cli\n');
120
+ }
121
+ }
92
122
  async function pickRecommendation(recs) {
93
123
  if (recs.length === 0) {
94
124
  throw new Error('No models fit this machine. Free up RAM or disk, or try another use case.');
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ function runRecommend(opts = {}) {
15
15
  const useCase = opts.useCase ?? 'chat';
16
16
  const { pool, runnable } = (0, recommend_1.buildRecommendPool)(catalog, hw, useCase, opts.all);
17
17
  const limit = opts.limit ?? 10;
18
- const recs = (0, recommend_1.recommendTop)(runnable, hw.budgetGb, limit, useCase, hw.diskFreeGb);
18
+ const recs = (0, recommend_1.recommendTop)(runnable, hw.budgetGb, limit, useCase, hw.diskFreeGb, hw);
19
19
  (0, setup_1.printRecommendPreview)(recs, hw, {
20
20
  useCase,
21
21
  poolSize: pool.length,
@@ -1 +1 @@
1
- {"version":3,"file":"recommend-run.js","sourceRoot":"","sources":["../src/recommend-run.ts"],"names":[],"mappings":";;;AAYA,oCAeC;AAED,8BAEC;AA9BD,2CAA4D;AAgCnD,gGAhCA,2BAAe,OAgCA;AAAE,6FAhCA,wBAAY,OAgCA;AA/BtC,yCAA4C;AAC5C,2CAA4E;AAC5E,mCAAgD;AAQhD,SAAgB,YAAY,CAAC,OAA4B,EAAE;IACzD,MAAM,EAAE,GAAG,IAAA,yBAAc,GAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAA,uBAAW,GAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC;IACvC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAA,8BAAkB,EAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAA,wBAAY,EAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;IAEhF,IAAA,6BAAqB,EAAC,IAAI,EAAE,EAAE,EAAE;QAC9B,OAAO;QACP,QAAQ,EAAE,IAAI,CAAC,MAAM;QACrB,YAAY,EAAE,QAAQ,CAAC,MAAM;QAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,SAAS,CAAC,OAA4B,EAAE;IACtD,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"recommend-run.js","sourceRoot":"","sources":["../src/recommend-run.ts"],"names":[],"mappings":";;;AAYA,oCAeC;AAED,8BAEC;AA9BD,2CAA4D;AAgCnD,gGAhCA,2BAAe,OAgCA;AAAE,6FAhCA,wBAAY,OAgCA;AA/BtC,yCAA4C;AAC5C,2CAA4E;AAC5E,mCAAgD;AAQhD,SAAgB,YAAY,CAAC,OAA4B,EAAE;IACzD,MAAM,EAAE,GAAG,IAAA,yBAAc,GAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAA,uBAAW,GAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC;IACvC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAA,8BAAkB,EAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAA,wBAAY,EAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAEpF,IAAA,6BAAqB,EAAC,IAAI,EAAE,EAAE,EAAE;QAC9B,OAAO;QACP,QAAQ,EAAE,IAAI,CAAC,MAAM;QACrB,YAAY,EAAE,QAAQ,CAAC,MAAM;QAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,SAAS,CAAC,OAA4B,EAAE;IACtD,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC"}
@@ -22,16 +22,22 @@ export type RecommendOptions = {
22
22
  useCase?: UseCaseId;
23
23
  verifiedOnly?: boolean;
24
24
  includeEmbed?: boolean;
25
+ hw?: HardwareProfile;
25
26
  };
26
27
  export declare function loadCatalog(): CatalogModel[];
27
28
  export declare function fitTier(needGb: number, budgetGb: number): FitTier | null;
28
29
  export declare function fitLabel(fit: FitTier): string;
30
+ /** Realistic RAM Ollama needs — higher on CPU-only (llama.cpp + KV cache). */
31
+ export declare function modelRamNeed(model: CatalogModel, hw: HardwareProfile): number;
32
+ export declare function fitsHardware(model: CatalogModel, hw: HardwareProfile): FitTier | null;
29
33
  /** Filter catalog by hardware, disk, and optional verified flag. */
30
34
  export declare function filterRunnable(catalog: CatalogModel[], opts: RecommendOptions): CatalogModel[];
31
- export declare function scoreModel(model: CatalogModel, budgetGb: number, useCase?: UseCaseId): Recommendation | null;
32
- export declare function recommendTop(catalog: CatalogModel[], budgetGb: number, limit?: number, useCase?: UseCaseId, diskFreeGb?: number): Recommendation[];
35
+ export declare function scoreModel(model: CatalogModel, budgetGb: number, useCase?: UseCaseId, hw?: HardwareProfile): Recommendation | null;
36
+ export declare function recommendTop(catalog: CatalogModel[], budgetGb: number, limit?: number, useCase?: UseCaseId, diskFreeGb?: number, hw?: HardwareProfile): Recommendation[];
33
37
  export declare function buildRecommendPool(catalog: CatalogModel[], hw: HardwareProfile, useCase: UseCaseId, all?: boolean): {
34
38
  pool: CatalogModel[];
35
39
  runnable: CatalogModel[];
36
40
  };
41
+ /** All catalog models that fit RAM + disk (ignores use case). */
42
+ export declare function hardwareFittingModels(catalog: CatalogModel[], hw: HardwareProfile, all?: boolean): CatalogModel[];
37
43
  //# sourceMappingURL=recommend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recommend.d.ts","sourceRoot":"","sources":["../src/recommend.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG;IAC1C,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAQF,wBAAgB,WAAW,IAAI,YAAY,EAAE,CAG5C;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAMxE;AAcD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAE7C;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAC5B,OAAO,EAAE,YAAY,EAAE,EACvB,IAAI,EAAE,gBAAgB,GACrB,YAAY,EAAE,CAUhB;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,SAAS,GAClB,cAAc,GAAG,IAAI,CASvB;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,YAAY,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAI,EACT,OAAO,CAAC,EAAE,SAAS,EACnB,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,EAAE,CAWlB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,YAAY,EAAE,EACvB,EAAE,EAAE,eAAe,EACnB,OAAO,EAAE,SAAS,EAClB,GAAG,CAAC,EAAE,OAAO,GACZ;IAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,CAiBpD"}
1
+ {"version":3,"file":"recommend.d.ts","sourceRoot":"","sources":["../src/recommend.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG;IAC1C,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,EAAE,CAAC,EAAE,eAAe,CAAC;CACtB,CAAC;AAQF,wBAAgB,WAAW,IAAI,YAAY,EAAE,CAG5C;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAMxE;AAcD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAE7C;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,GAAG,MAAM,CAM7E;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,GAAG,OAAO,GAAG,IAAI,CAYrF;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAC5B,OAAO,EAAE,YAAY,EAAE,EACvB,IAAI,EAAE,gBAAgB,GACrB,YAAY,EAAE,CAiBhB;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,SAAS,EACnB,EAAE,CAAC,EAAE,eAAe,GACnB,cAAc,GAAG,IAAI,CAWvB;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,YAAY,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAI,EACT,OAAO,CAAC,EAAE,SAAS,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,EAAE,CAAC,EAAE,eAAe,GACnB,cAAc,EAAE,CAWlB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,YAAY,EAAE,EACvB,EAAE,EAAE,eAAe,EACnB,OAAO,EAAE,SAAS,EAClB,GAAG,CAAC,EAAE,OAAO,GACZ;IAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,CAkBpD;AAED,iEAAiE;AACjE,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,YAAY,EAAE,EACvB,EAAE,EAAE,eAAe,EACnB,GAAG,CAAC,EAAE,OAAO,GACZ,YAAY,EAAE,CAYhB"}
package/dist/recommend.js CHANGED
@@ -6,10 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.loadCatalog = loadCatalog;
7
7
  exports.fitTier = fitTier;
8
8
  exports.fitLabel = fitLabel;
9
+ exports.modelRamNeed = modelRamNeed;
10
+ exports.fitsHardware = fitsHardware;
9
11
  exports.filterRunnable = filterRunnable;
10
12
  exports.scoreModel = scoreModel;
11
13
  exports.recommendTop = recommendTop;
12
14
  exports.buildRecommendPool = buildRecommendPool;
15
+ exports.hardwareFittingModels = hardwareFittingModels;
13
16
  const node_fs_1 = __importDefault(require("node:fs"));
14
17
  const node_path_1 = __importDefault(require("node:path"));
15
18
  const use_cases_1 = require("./use-cases");
@@ -47,23 +50,51 @@ const FIT_LABEL = {
47
50
  function fitLabel(fit) {
48
51
  return FIT_LABEL[fit];
49
52
  }
53
+ /** Realistic RAM Ollama needs — higher on CPU-only (llama.cpp + KV cache). */
54
+ function modelRamNeed(model, hw) {
55
+ let need = model.ramGb;
56
+ if (!hw.hasGpu) {
57
+ need = Math.round((need * 1.35 + 0.75) * 10) / 10;
58
+ }
59
+ return need;
60
+ }
61
+ function fitsHardware(model, hw) {
62
+ const need = modelRamNeed(model, hw);
63
+ const fit = fitTier(need, hw.budgetGb);
64
+ if (!fit)
65
+ return null;
66
+ // Small CPU-only VMs: never recommend marginal or >~1B class — prevents segfaults
67
+ if (!hw.hasGpu && hw.ramGb < 8) {
68
+ if (fit === 'marginal')
69
+ return null;
70
+ if (hw.ramGb < 6 && model.ramGb > 1.25)
71
+ return null;
72
+ }
73
+ return fit;
74
+ }
50
75
  /** Filter catalog by hardware, disk, and optional verified flag. */
51
76
  function filterRunnable(catalog, opts) {
52
77
  const disk = opts.diskFreeGb ?? 0;
78
+ const hw = opts.hw;
53
79
  return catalog.filter((m) => {
54
80
  if (!opts.includeEmbed && m.kind === 'embed')
55
81
  return false;
56
82
  if (opts.verifiedOnly && !m.verified)
57
83
  return false;
58
- if (!fitTier(m.ramGb, opts.budgetGb))
84
+ if (hw) {
85
+ if (!fitsHardware(m, hw))
86
+ return false;
87
+ }
88
+ else if (!fitTier(m.ramGb, opts.budgetGb)) {
59
89
  return false;
90
+ }
60
91
  if (disk > 0 && !(0, hardware_1.fitsDisk)(m.sizeMb, disk))
61
92
  return false;
62
93
  return true;
63
94
  });
64
95
  }
65
- function scoreModel(model, budgetGb, useCase) {
66
- const fit = fitTier(model.ramGb, budgetGb);
96
+ function scoreModel(model, budgetGb, useCase, hw) {
97
+ const fit = hw ? fitsHardware(model, hw) : fitTier(model.ramGb, budgetGb);
67
98
  if (!fit)
68
99
  return null;
69
100
  let score = FIT_POINTS[fit] + model.quality * 0.35;
@@ -71,13 +102,16 @@ function scoreModel(model, budgetGb, useCase) {
71
102
  score += (0, use_cases_1.useCaseScoreBoost)(model, useCase);
72
103
  if (model.verified)
73
104
  score += 3;
105
+ // Prefer smaller models on tight CPU boxes
106
+ if (hw && !hw.hasGpu && hw.ramGb < 8)
107
+ score -= model.ramGb * 4;
74
108
  return { ...model, fit, score };
75
109
  }
76
- function recommendTop(catalog, budgetGb, limit = 5, useCase, diskFreeGb) {
77
- const pool = filterRunnable(catalog, { budgetGb, diskFreeGb, includeEmbed: false });
110
+ function recommendTop(catalog, budgetGb, limit = 5, useCase, diskFreeGb, hw) {
111
+ const pool = filterRunnable(catalog, { budgetGb, diskFreeGb, includeEmbed: false, hw });
78
112
  const scored = [];
79
113
  for (const model of pool) {
80
- const rec = scoreModel(model, budgetGb, useCase);
114
+ const rec = scoreModel(model, budgetGb, useCase, hw);
81
115
  if (rec)
82
116
  scored.push(rec);
83
117
  }
@@ -96,7 +130,23 @@ function buildRecommendPool(catalog, hw, useCase, all) {
96
130
  budgetGb: hw.budgetGb,
97
131
  diskFreeGb: hw.diskFreeGb,
98
132
  includeEmbed: false,
133
+ hw,
99
134
  });
100
135
  return { pool, runnable };
101
136
  }
137
+ /** All catalog models that fit RAM + disk (ignores use case). */
138
+ function hardwareFittingModels(catalog, hw, all) {
139
+ let pool = catalog.filter((m) => m.kind !== 'embed');
140
+ if (!all) {
141
+ const verified = pool.filter((m) => m.verified);
142
+ if (verified.length >= 10)
143
+ pool = verified;
144
+ }
145
+ return filterRunnable(pool, {
146
+ budgetGb: hw.budgetGb,
147
+ diskFreeGb: hw.diskFreeGb,
148
+ includeEmbed: false,
149
+ hw,
150
+ });
151
+ }
102
152
  //# sourceMappingURL=recommend.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recommend.js","sourceRoot":"","sources":["../src/recommend.ts"],"names":[],"mappings":";;;;;AAwCA,kCAGC;AAED,0BAMC;AAcD,4BAEC;AAGD,wCAaC;AAED,gCAaC;AAED,oCAiBC;AAED,gDAsBC;AA7ID,sDAAyB;AACzB,0DAA6B;AAG7B,2CAAiE;AACjE,yCAA4D;AA6B5D,SAAS,UAAU;IACjB,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/D,IAAI,iBAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IACjD,OAAO,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,WAAW;IACzB,MAAM,GAAG,GAAG,iBAAE,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;AAC3C,CAAC;AAED,SAAgB,OAAO,CAAC,MAAc,EAAE,QAAgB;IACtD,IAAI,MAAM,GAAG,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IAChC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACpC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,MAAM,CAAC;IACjC,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,GAA4B;IAC1C,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,EAAE;IACR,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,SAAS,GAA4B;IACzC,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,SAAgB,QAAQ,CAAC,GAAY;IACnC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,oEAAoE;AACpE,SAAgB,cAAc,CAC5B,OAAuB,EACvB,IAAsB;IAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;IAElC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3D,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QACnD,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAA,mBAAQ,EAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,UAAU,CACxB,KAAmB,EACnB,QAAgB,EAChB,OAAmB;IAEnB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACnD,IAAI,OAAO;QAAE,KAAK,IAAI,IAAA,6BAAiB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,QAAQ;QAAE,KAAK,IAAI,CAAC,CAAC;IAE/B,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAClC,CAAC;AAED,SAAgB,YAAY,CAC1B,OAAuB,EACvB,QAAgB,EAChB,KAAK,GAAG,CAAC,EACT,OAAmB,EACnB,UAAmB;IAEnB,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;IACpF,MAAM,MAAM,GAAqB,EAAE,CAAC;IAEpC,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,GAAG;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAgB,kBAAkB,CAChC,OAAuB,EACvB,EAAmB,EACnB,OAAkB,EAClB,GAAa;IAEb,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAErD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE;YAAE,IAAI,GAAG,QAAQ,CAAC;IAC7C,CAAC;IAED,IAAI,GAAG,IAAA,2BAAe,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEtC,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE;QACpC,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"recommend.js","sourceRoot":"","sources":["../src/recommend.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQlD,OAAO,EAAE,cAAc,EAAoB,MAAM,YAAY,CAAC;AAqB9D,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmIhE;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,cAAc,EAAE,EACtB,EAAE,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,EACrC,IAAI,EAAE;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAClF,IAAI,CAeN"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AASlD,OAAO,EAAE,cAAc,EAAoB,MAAM,YAAY,CAAC;AAuB9D,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAiFF,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAwHhE;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,cAAc,EAAE,EACtB,EAAE,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,EACrC,IAAI,EAAE;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAClF,IAAI,CAeN"}