@openinference/cli 1.1.1 → 1.3.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/README.md +1 -0
- package/data/models.json +4 -2
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +51 -0
- package/dist/config.js.map +1 -1
- package/dist/data/models.json +4 -2
- package/dist/hardware.d.ts +4 -0
- package/dist/hardware.d.ts.map +1 -1
- package/dist/hardware.js +19 -7
- package/dist/hardware.js.map +1 -1
- package/dist/index.js +20 -1
- package/dist/index.js.map +1 -1
- package/dist/linereader.d.ts +73 -0
- package/dist/linereader.d.ts.map +1 -0
- package/dist/linereader.js +375 -0
- package/dist/linereader.js.map +1 -0
- package/dist/manage.d.ts +5 -0
- package/dist/manage.d.ts.map +1 -1
- package/dist/manage.js +77 -0
- package/dist/manage.js.map +1 -1
- package/dist/ollama.d.ts +10 -0
- package/dist/ollama.d.ts.map +1 -1
- package/dist/ollama.js +56 -4
- package/dist/ollama.js.map +1 -1
- package/dist/prompt.d.ts +18 -6
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +136 -52
- package/dist/prompt.js.map +1 -1
- package/dist/recommend-run.d.ts.map +1 -1
- package/dist/recommend-run.js +8 -3
- package/dist/recommend-run.js.map +1 -1
- package/dist/recommend.d.ts +5 -3
- package/dist/recommend.d.ts.map +1 -1
- package/dist/recommend.js +12 -7
- package/dist/recommend.js.map +1 -1
- package/dist/setup.d.ts +4 -1
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +98 -36
- package/dist/setup.js.map +1 -1
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +143 -41
- package/dist/shell.js.map +1 -1
- package/dist/use-cases.d.ts.map +1 -1
- package/dist/use-cases.js +5 -22
- package/dist/use-cases.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -43,6 +43,7 @@ npx @openinference/cli -y
|
|
|
43
43
|
| `oi browse` | Browse filtered catalog |
|
|
44
44
|
| `oi use <model>` | Switch model (pulls if needed) |
|
|
45
45
|
| `oi pull <model>` | Download another model |
|
|
46
|
+
| `oi rm <model>` | Delete a model and free disk space |
|
|
46
47
|
| `oi chat` | Chat with active model |
|
|
47
48
|
| `oi models` | List downloaded models |
|
|
48
49
|
| `oi storage` | Where Ollama stores files |
|
package/data/models.json
CHANGED
|
@@ -357,7 +357,8 @@
|
|
|
357
357
|
"useCase": "code small",
|
|
358
358
|
"categories": [
|
|
359
359
|
"coding"
|
|
360
|
-
]
|
|
360
|
+
],
|
|
361
|
+
"verified": true
|
|
361
362
|
},
|
|
362
363
|
{
|
|
363
364
|
"id": "wizardcoder:3b",
|
|
@@ -596,7 +597,8 @@
|
|
|
596
597
|
"useCase": "code small",
|
|
597
598
|
"categories": [
|
|
598
599
|
"coding"
|
|
599
|
-
]
|
|
600
|
+
],
|
|
601
|
+
"verified": true
|
|
600
602
|
},
|
|
601
603
|
{
|
|
602
604
|
"id": "deepseek-r1:7b",
|
package/dist/config.d.ts
CHANGED
|
@@ -11,4 +11,10 @@ export declare function configPath(): string;
|
|
|
11
11
|
export declare function saveConfig(cfg: SavedConfig): void;
|
|
12
12
|
export declare function loadConfig(): SavedConfig | null;
|
|
13
13
|
export declare function setActiveModel(modelId: string, modelName: string): void;
|
|
14
|
+
/** Remove the saved config entirely (e.g. the active model was deleted). */
|
|
15
|
+
export declare function clearConfig(): void;
|
|
16
|
+
export declare function loadCrashedModels(): string[];
|
|
17
|
+
export declare function recordCrashedModel(id: string): void;
|
|
18
|
+
/** Forget a crash — call when a model later verifies successfully. */
|
|
19
|
+
export declare function clearCrashedModel(id: string): void;
|
|
14
20
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GAAG,OAAO,aAAa,EAAE,SAAS,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAGjD;AAED,wBAAgB,UAAU,IAAI,WAAW,GAAG,IAAI,CAO/C;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAIvE"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GAAG,OAAO,aAAa,EAAE,SAAS,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAGjD;AAED,wBAAgB,UAAU,IAAI,WAAW,GAAG,IAAI,CAO/C;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAIvE;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,IAAI,IAAI,CAMlC;AASD,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAO5C;AAWD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAKnD;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAIlD"}
|
package/dist/config.js
CHANGED
|
@@ -8,6 +8,10 @@ exports.configPath = configPath;
|
|
|
8
8
|
exports.saveConfig = saveConfig;
|
|
9
9
|
exports.loadConfig = loadConfig;
|
|
10
10
|
exports.setActiveModel = setActiveModel;
|
|
11
|
+
exports.clearConfig = clearConfig;
|
|
12
|
+
exports.loadCrashedModels = loadCrashedModels;
|
|
13
|
+
exports.recordCrashedModel = recordCrashedModel;
|
|
14
|
+
exports.clearCrashedModel = clearCrashedModel;
|
|
11
15
|
const node_os_1 = __importDefault(require("node:os"));
|
|
12
16
|
const node_path_1 = __importDefault(require("node:path"));
|
|
13
17
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
@@ -36,4 +40,51 @@ function setActiveModel(modelId, modelName) {
|
|
|
36
40
|
throw new Error('Not set up yet. Run: oi');
|
|
37
41
|
saveConfig({ ...cfg, model: modelId, modelName });
|
|
38
42
|
}
|
|
43
|
+
/** Remove the saved config entirely (e.g. the active model was deleted). */
|
|
44
|
+
function clearConfig() {
|
|
45
|
+
try {
|
|
46
|
+
node_fs_1.default.rmSync(configPath());
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
/* nothing to clear */
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// ── crashed-model memory ────────────────────────────────
|
|
53
|
+
// Models that pulled fine but failed the smoke test on THIS machine. We stop
|
|
54
|
+
// recommending them so the wizard can't loop on the same broken pick.
|
|
55
|
+
function crashedPath() {
|
|
56
|
+
return node_path_1.default.join(configDir(), 'crashed.json');
|
|
57
|
+
}
|
|
58
|
+
function loadCrashedModels() {
|
|
59
|
+
try {
|
|
60
|
+
const arr = JSON.parse(node_fs_1.default.readFileSync(crashedPath(), 'utf8'));
|
|
61
|
+
return Array.isArray(arr) ? arr.filter((x) => typeof x === 'string') : [];
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function saveCrashedModels(ids) {
|
|
68
|
+
try {
|
|
69
|
+
node_fs_1.default.mkdirSync(configDir(), { recursive: true });
|
|
70
|
+
node_fs_1.default.writeFileSync(crashedPath(), JSON.stringify(ids, null, 2) + '\n', 'utf8');
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
/* crash memory is best-effort */
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function recordCrashedModel(id) {
|
|
77
|
+
const set = new Set(loadCrashedModels());
|
|
78
|
+
if (set.has(id))
|
|
79
|
+
return;
|
|
80
|
+
set.add(id);
|
|
81
|
+
saveCrashedModels([...set]);
|
|
82
|
+
}
|
|
83
|
+
/** Forget a crash — call when a model later verifies successfully. */
|
|
84
|
+
function clearCrashedModel(id) {
|
|
85
|
+
const set = new Set(loadCrashedModels());
|
|
86
|
+
if (!set.delete(id))
|
|
87
|
+
return;
|
|
88
|
+
saveCrashedModels([...set]);
|
|
89
|
+
}
|
|
39
90
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;AAcA,8BAEC;AAED,gCAEC;AAED,gCAGC;AAED,gCAOC;AAED,wCAIC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;AAcA,8BAEC;AAED,gCAEC;AAED,gCAGC;AAED,gCAOC;AAED,wCAIC;AAGD,kCAMC;AASD,8CAOC;AAWD,gDAKC;AAGD,8CAIC;AAxFD,sDAAyB;AACzB,0DAA6B;AAC7B,sDAAyB;AAYzB,SAAgB,SAAS;IACvB,OAAO,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;AACnD,CAAC;AAED,SAAgB,UAAU;IACxB,OAAO,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,UAAU,CAAC,GAAgB;IACzC,iBAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,iBAAE,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED,SAAgB,UAAU;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,iBAAE,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,cAAc,CAAC,OAAe,EAAE,SAAiB;IAC/D,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACrD,UAAU,CAAC,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,4EAA4E;AAC5E,SAAgB,WAAW;IACzB,IAAI,CAAC;QACH,iBAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;AACH,CAAC;AAED,2DAA2D;AAC3D,6EAA6E;AAC7E,sEAAsE;AACtE,SAAS,WAAW;IAClB,OAAO,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,cAAc,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,iBAAiB;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAY,CAAC;QAC1E,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAa;IACtC,IAAI,CAAC;QACH,iBAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,iBAAE,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB,CAAC,EAAU;IAC3C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACzC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO;IACxB,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACZ,iBAAiB,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,sEAAsE;AACtE,SAAgB,iBAAiB,CAAC,EAAU;IAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAAE,OAAO;IAC5B,iBAAiB,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC9B,CAAC"}
|
package/dist/data/models.json
CHANGED
|
@@ -357,7 +357,8 @@
|
|
|
357
357
|
"useCase": "code small",
|
|
358
358
|
"categories": [
|
|
359
359
|
"coding"
|
|
360
|
-
]
|
|
360
|
+
],
|
|
361
|
+
"verified": true
|
|
361
362
|
},
|
|
362
363
|
{
|
|
363
364
|
"id": "wizardcoder:3b",
|
|
@@ -596,7 +597,8 @@
|
|
|
596
597
|
"useCase": "code small",
|
|
597
598
|
"categories": [
|
|
598
599
|
"coding"
|
|
599
|
-
]
|
|
600
|
+
],
|
|
601
|
+
"verified": true
|
|
600
602
|
},
|
|
601
603
|
{
|
|
602
604
|
"id": "deepseek-r1:7b",
|
package/dist/hardware.d.ts
CHANGED
|
@@ -2,7 +2,10 @@ export type HardwareProfile = {
|
|
|
2
2
|
ramGb: number;
|
|
3
3
|
cpuCores: number;
|
|
4
4
|
vramGb: number;
|
|
5
|
+
/** A GPU is physically present (any VRAM). Used for display. */
|
|
5
6
|
hasGpu: boolean;
|
|
7
|
+
/** The GPU has enough VRAM to offload models. Used for all sizing decisions. */
|
|
8
|
+
gpuUsable: boolean;
|
|
6
9
|
gpuName: string | null;
|
|
7
10
|
platform: NodeJS.Platform;
|
|
8
11
|
osLabel: string;
|
|
@@ -10,6 +13,7 @@ export type HardwareProfile = {
|
|
|
10
13
|
/** Usable memory budget for model weights (GB). */
|
|
11
14
|
budgetGb: number;
|
|
12
15
|
};
|
|
16
|
+
export declare function detectDiskFreeGb(): number;
|
|
13
17
|
export declare function detectHardware(): HardwareProfile;
|
|
14
18
|
export declare function formatHardware(hw: HardwareProfile): string;
|
|
15
19
|
export declare function ollamaModelsPath(): string;
|
package/dist/hardware.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hardware.d.ts","sourceRoot":"","sources":["../src/hardware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hardware.d.ts","sourceRoot":"","sources":["../src/hardware.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,MAAM,EAAE,OAAO,CAAC;IAChB,gFAAgF;IAChF,SAAS,EAAE,OAAO,CAAC;IACnB,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;AA0BF,wBAAgB,gBAAgB,IAAI,MAAM,CAsBzC;AAwBD,wBAAgB,cAAc,IAAI,eAAe,CAqBhD;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,eAAe,GAAG,MAAM,CAM1D;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
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.detectDiskFreeGb = detectDiskFreeGb;
|
|
6
7
|
exports.detectHardware = detectHardware;
|
|
7
8
|
exports.formatHardware = formatHardware;
|
|
8
9
|
exports.ollamaModelsPath = ollamaModelsPath;
|
|
@@ -11,6 +12,9 @@ const node_fs_1 = __importDefault(require("node:fs"));
|
|
|
11
12
|
const node_os_1 = __importDefault(require("node:os"));
|
|
12
13
|
const node_path_1 = __importDefault(require("node:path"));
|
|
13
14
|
const node_child_process_1 = require("node:child_process");
|
|
15
|
+
/** Minimum VRAM (GB) for a GPU to actually help run models. Below this,
|
|
16
|
+
* Ollama falls back to CPU, so a tiny GPU shouldn't change the budget. */
|
|
17
|
+
const MIN_USEFUL_VRAM_GB = 4;
|
|
14
18
|
function roundGb(bytes) {
|
|
15
19
|
return Math.round((bytes / 1024 ** 3) * 10) / 10;
|
|
16
20
|
}
|
|
@@ -65,13 +69,15 @@ function osLabel() {
|
|
|
65
69
|
return `macOS ${rel}`;
|
|
66
70
|
return `${type} ${rel}`;
|
|
67
71
|
}
|
|
68
|
-
function memoryBudgetGb(ramGb,
|
|
72
|
+
function memoryBudgetGb(ramGb, gpuUsable, vramGb) {
|
|
69
73
|
// Scale OS reserve for small cloud VMs (e.g. AWS 4 GB → reports ~3.7 GB)
|
|
70
74
|
const headroom = ramGb <= 4 ? 1.2 : ramGb <= 6 ? 2 : ramGb <= 8 ? 2.5 : 4;
|
|
71
75
|
const ramBudget = Math.max(0.35, ramGb - headroom);
|
|
72
|
-
|
|
76
|
+
// A usable GPU can only *raise* the ceiling (full offload up to VRAM).
|
|
77
|
+
// It must never drop below what the CPU alone could run.
|
|
78
|
+
if (gpuUsable && vramGb > 0) {
|
|
73
79
|
const vramBudget = Math.max(0, vramGb - 0.5);
|
|
74
|
-
return Math.max(vramBudget, ramBudget
|
|
80
|
+
return Math.max(vramBudget, ramBudget);
|
|
75
81
|
}
|
|
76
82
|
return ramBudget;
|
|
77
83
|
}
|
|
@@ -80,13 +86,15 @@ function detectHardware() {
|
|
|
80
86
|
const cpuCores = node_os_1.default.cpus().length;
|
|
81
87
|
const { vramGb, name } = detectVram();
|
|
82
88
|
const hasGpu = vramGb > 0;
|
|
89
|
+
const gpuUsable = vramGb >= MIN_USEFUL_VRAM_GB;
|
|
83
90
|
const diskFreeGb = detectDiskFreeGb();
|
|
84
|
-
const budgetGb = memoryBudgetGb(ramGb,
|
|
91
|
+
const budgetGb = memoryBudgetGb(ramGb, gpuUsable, vramGb);
|
|
85
92
|
return {
|
|
86
93
|
ramGb,
|
|
87
94
|
cpuCores,
|
|
88
95
|
vramGb,
|
|
89
96
|
hasGpu,
|
|
97
|
+
gpuUsable,
|
|
90
98
|
gpuName: name,
|
|
91
99
|
platform: process.platform,
|
|
92
100
|
osLabel: osLabel(),
|
|
@@ -95,9 +103,13 @@ function detectHardware() {
|
|
|
95
103
|
};
|
|
96
104
|
}
|
|
97
105
|
function formatHardware(hw) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
106
|
+
let gpu;
|
|
107
|
+
if (!hw.hasGpu)
|
|
108
|
+
gpu = 'CPU inference';
|
|
109
|
+
else if (hw.gpuUsable)
|
|
110
|
+
gpu = `${hw.gpuName ?? 'GPU'} (${hw.vramGb} GB VRAM)`;
|
|
111
|
+
else
|
|
112
|
+
gpu = `${hw.gpuName ?? 'GPU'} (${hw.vramGb} GB — too small, using CPU)`;
|
|
101
113
|
return `${hw.ramGb} GB RAM · ${hw.cpuCores} cores · ${gpu}`;
|
|
102
114
|
}
|
|
103
115
|
function ollamaModelsPath() {
|
package/dist/hardware.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hardware.js","sourceRoot":"","sources":["../src/hardware.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"hardware.js","sourceRoot":"","sources":["../src/hardware.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -100,7 +100,7 @@ setupCmd.action(async (opts) => {
|
|
|
100
100
|
program
|
|
101
101
|
.command('recommend')
|
|
102
102
|
.description('Preview recommendations (no install)')
|
|
103
|
-
.option('-n, --limit <n>', 'number of results', '
|
|
103
|
+
.option('-n, --limit <n>', 'number of results', '5')
|
|
104
104
|
.option('--use-case <id>', 'coding | chat | pdfs | writing | image | research')
|
|
105
105
|
.option('--all', 'full catalog')
|
|
106
106
|
.action((opts) => {
|
|
@@ -189,6 +189,25 @@ program
|
|
|
189
189
|
fail(e);
|
|
190
190
|
}
|
|
191
191
|
});
|
|
192
|
+
program
|
|
193
|
+
.command('rm <model>')
|
|
194
|
+
.alias('remove')
|
|
195
|
+
.description('Delete a downloaded model and free disk space')
|
|
196
|
+
.option('-y, --yes', 'skip confirmation')
|
|
197
|
+
.option(urlOption.flags, urlOption.description)
|
|
198
|
+
.option('--docker', 'remote Ollama')
|
|
199
|
+
.action(async (model, opts) => {
|
|
200
|
+
try {
|
|
201
|
+
await (0, manage_1.runRemove)(model, {
|
|
202
|
+
ollamaUrl: opts.ollamaUrl,
|
|
203
|
+
docker: opts.docker,
|
|
204
|
+
yes: Boolean(opts.yes),
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
catch (e) {
|
|
208
|
+
fail(e);
|
|
209
|
+
}
|
|
210
|
+
});
|
|
192
211
|
program
|
|
193
212
|
.command('models')
|
|
194
213
|
.description('List downloaded models')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AACpC,qCAAsC;AACtC,mCAAmC;AACnC,mDAA2E;AAC3E,iCAAsD;AACtD,2CAA0C;AAC1C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export type Suggestion = {
|
|
2
|
+
value: string;
|
|
3
|
+
label: string;
|
|
4
|
+
hint?: string;
|
|
5
|
+
/** When true, accepting this item (Enter) runs it immediately; otherwise it
|
|
6
|
+
* just fills the buffer so the user can continue (e.g. add an argument). */
|
|
7
|
+
submit?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type ReaderConfig = {
|
|
10
|
+
/** Colored prompt string (may contain ANSI). */
|
|
11
|
+
prompt: string;
|
|
12
|
+
/** Visible width of the prompt (excluding ANSI codes). */
|
|
13
|
+
promptWidth: number;
|
|
14
|
+
/** Live suggestions for the current buffer; empty array hides the menu. */
|
|
15
|
+
suggest: (buffer: string) => Suggestion[];
|
|
16
|
+
/** Command history, oldest first. */
|
|
17
|
+
history: string[];
|
|
18
|
+
/** Max menu rows to show. */
|
|
19
|
+
maxRows?: number;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* A minimal line editor with a live drop-down suggestion menu (Claude-Code
|
|
23
|
+
* style). Supports inline editing (←/→/Home/End/Backspace), history (↑/↓ when
|
|
24
|
+
* the menu is closed), and Tab/Enter to accept a suggestion.
|
|
25
|
+
*
|
|
26
|
+
* Falls back to plain readline when stdin is not a TTY or OI_SIMPLE is set.
|
|
27
|
+
*/
|
|
28
|
+
export declare class LineReader {
|
|
29
|
+
private cfg;
|
|
30
|
+
private buf;
|
|
31
|
+
private cursor;
|
|
32
|
+
private menu;
|
|
33
|
+
private sel;
|
|
34
|
+
private histIdx;
|
|
35
|
+
private prevTop;
|
|
36
|
+
private onKey?;
|
|
37
|
+
private resolve?;
|
|
38
|
+
constructor(cfg: ReaderConfig);
|
|
39
|
+
private get cols();
|
|
40
|
+
private get maxRows();
|
|
41
|
+
question(): Promise<string | null>;
|
|
42
|
+
/** Fallback: plain readline question (pipes, non-TTY, OI_SIMPLE). */
|
|
43
|
+
private questionSimple;
|
|
44
|
+
private cleanup;
|
|
45
|
+
private commit;
|
|
46
|
+
private handleKey;
|
|
47
|
+
private refreshMenu;
|
|
48
|
+
private accept;
|
|
49
|
+
private historyPrev;
|
|
50
|
+
private historyNext;
|
|
51
|
+
private renderItem;
|
|
52
|
+
/** Box width + the horizontally-scrolled slice of the buffer that is visible. */
|
|
53
|
+
private window;
|
|
54
|
+
private render;
|
|
55
|
+
}
|
|
56
|
+
export type Choice<T> = {
|
|
57
|
+
value: T;
|
|
58
|
+
label: string;
|
|
59
|
+
hint?: string;
|
|
60
|
+
};
|
|
61
|
+
export type SelectConfig<T> = {
|
|
62
|
+
title: string;
|
|
63
|
+
choices: Choice<T>[];
|
|
64
|
+
/** Footer hint; defaults to navigation help. */
|
|
65
|
+
hint?: string;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Arrow-key list selector (↑/↓ to move, Enter to choose, 1-9 as shortcuts,
|
|
69
|
+
* Ctrl+C to cancel). Falls back to a numbered prompt when stdin is not a TTY
|
|
70
|
+
* or OI_SIMPLE is set. Returns the chosen value, or null if cancelled.
|
|
71
|
+
*/
|
|
72
|
+
export declare function select<T>(cfg: SelectConfig<T>): Promise<T | null>;
|
|
73
|
+
//# sourceMappingURL=linereader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linereader.d.ts","sourceRoot":"","sources":["../src/linereader.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;iFAC6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;IAC1C,qCAAqC;IACrC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAyBF;;;;;;GAMG;AACH,qBAAa,UAAU;IAUT,OAAO,CAAC,GAAG;IATvB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,KAAK,CAAC,CAAsC;IACpD,OAAO,CAAC,OAAO,CAAC,CAA6B;gBAEzB,GAAG,EAAE,YAAY;IAIrC,OAAO,KAAK,IAAI,GAEf;IAED,OAAO,KAAK,OAAO,GAElB;IAED,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyBlC,qEAAqE;IACrE,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,SAAS;IAsGjB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,UAAU;IAIlB,iFAAiF;IACjF,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,MAAM;CA+Bf;AAUD,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAuEjE"}
|