@openinference/cli 0.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.
Files changed (47) hide show
  1. package/data/models.json +1259 -0
  2. package/dist/chat-repl.d.ts +3 -0
  3. package/dist/chat-repl.d.ts.map +1 -0
  4. package/dist/chat-repl.js +35 -0
  5. package/dist/chat-repl.js.map +1 -0
  6. package/dist/chat.d.ts +9 -0
  7. package/dist/chat.d.ts.map +1 -0
  8. package/dist/chat.js +51 -0
  9. package/dist/chat.js.map +1 -0
  10. package/dist/config.d.ts +11 -0
  11. package/dist/config.d.ts.map +1 -0
  12. package/dist/config.js +32 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/data/models.json +1259 -0
  15. package/dist/hardware.d.ts +13 -0
  16. package/dist/hardware.d.ts.map +1 -0
  17. package/dist/hardware.js +61 -0
  18. package/dist/hardware.js.map +1 -0
  19. package/dist/index.d.ts +3 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +153 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/ollama.d.ts +14 -0
  24. package/dist/ollama.d.ts.map +1 -0
  25. package/dist/ollama.js +189 -0
  26. package/dist/ollama.js.map +1 -0
  27. package/dist/prompt.d.ts +4 -0
  28. package/dist/prompt.d.ts.map +1 -0
  29. package/dist/prompt.js +44 -0
  30. package/dist/prompt.js.map +1 -0
  31. package/dist/recommend-run.d.ts +9 -0
  32. package/dist/recommend-run.d.ts.map +1 -0
  33. package/dist/recommend-run.js +34 -0
  34. package/dist/recommend-run.js.map +1 -0
  35. package/dist/recommend.d.ts +20 -0
  36. package/dist/recommend.d.ts.map +1 -0
  37. package/dist/recommend.js +71 -0
  38. package/dist/recommend.js.map +1 -0
  39. package/dist/setup.d.ts +13 -0
  40. package/dist/setup.d.ts.map +1 -0
  41. package/dist/setup.js +119 -0
  42. package/dist/setup.js.map +1 -0
  43. package/dist/start.d.ts +13 -0
  44. package/dist/start.d.ts.map +1 -0
  45. package/dist/start.js +32 -0
  46. package/dist/start.js.map +1 -0
  47. package/package.json +33 -0
@@ -0,0 +1,3 @@
1
+ import { type ChatOptions } from './chat';
2
+ export declare function runChatRepl(opts?: ChatOptions): Promise<void>;
3
+ //# sourceMappingURL=chat-repl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-repl.d.ts","sourceRoot":"","sources":["../src/chat-repl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAMnD,wBAAsB,WAAW,CAAC,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBvE"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runChatRepl = runChatRepl;
7
+ const node_readline_1 = __importDefault(require("node:readline"));
8
+ const chat_1 = require("./chat");
9
+ function ask(rl, prompt) {
10
+ return new Promise((resolve) => rl.question(prompt, resolve));
11
+ }
12
+ async function runChatRepl(opts = {}) {
13
+ const rl = node_readline_1.default.createInterface({ input: process.stdin, output: process.stdout });
14
+ console.log(' Ask anything. Type /quit to exit.\n');
15
+ try {
16
+ while (true) {
17
+ const line = (await ask(rl, 'you › ')).trim();
18
+ if (!line || line === '/quit' || line === '/exit')
19
+ break;
20
+ try {
21
+ process.stdout.write('\n …\n\n');
22
+ const reply = await (0, chat_1.runChat)(line, opts);
23
+ console.log(`ai › ${reply}\n`);
24
+ }
25
+ catch (e) {
26
+ const msg = e instanceof Error ? e.message : String(e);
27
+ console.error(` (error: ${msg})\n`);
28
+ }
29
+ }
30
+ }
31
+ finally {
32
+ rl.close();
33
+ }
34
+ }
35
+ //# sourceMappingURL=chat-repl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-repl.js","sourceRoot":"","sources":["../src/chat-repl.ts"],"names":[],"mappings":";;;;;AAQA,kCAsBC;AA9BD,kEAAqC;AAErC,iCAAmD;AAEnD,SAAS,GAAG,CAAC,EAAsB,EAAE,MAAc;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAChE,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,OAAoB,EAAE;IACtD,MAAM,EAAE,GAAG,uBAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEtF,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO;gBAAE,MAAM;YAEzD,IAAI,CAAC;gBACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAClC,MAAM,KAAK,GAAG,MAAM,IAAA,cAAO,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvD,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
package/dist/chat.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ export type ChatOptions = {
2
+ model?: string;
3
+ ollamaUrl?: string;
4
+ /** Skip trying to start local `ollama serve` (use with --docker / remote URL). */
5
+ remote?: boolean;
6
+ };
7
+ export declare function runChat(message: string, opts?: ChatOptions): Promise<string>;
8
+ export declare function listInstalledModels(ollamaUrl?: string): Promise<string[]>;
9
+ //# sourceMappingURL=chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoCtF;AAED,wBAAsB,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAc/E"}
package/dist/chat.js ADDED
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runChat = runChat;
4
+ exports.listInstalledModels = listInstalledModels;
5
+ const config_1 = require("./config");
6
+ const ollama_1 = require("./ollama");
7
+ async function runChat(message, opts = {}) {
8
+ const cfg = (0, config_1.loadConfig)();
9
+ const model = opts.model ?? cfg?.model;
10
+ const base = (0, ollama_1.resolveOllamaUrl)(opts.ollamaUrl);
11
+ if (!model) {
12
+ throw new Error('No model configured. Run: oi setup');
13
+ }
14
+ if (!(await (0, ollama_1.pingOllama)(base))) {
15
+ if (opts.remote || base !== 'http://127.0.0.1:11434') {
16
+ throw new Error(`Ollama not reachable at ${base}. Check --ollama-url or OLLAMA_URL.`);
17
+ }
18
+ await (0, ollama_1.ensureHostOllamaRunning)(base);
19
+ }
20
+ const res = await fetch(`${base}/api/chat`, {
21
+ method: 'POST',
22
+ headers: { 'content-type': 'application/json' },
23
+ body: JSON.stringify({
24
+ model,
25
+ messages: [{ role: 'user', content: message }],
26
+ stream: false,
27
+ }),
28
+ signal: AbortSignal.timeout(300_000),
29
+ });
30
+ if (!res.ok) {
31
+ const text = await res.text().catch(() => '');
32
+ throw new Error(`Chat failed (${res.status}): ${text || res.statusText}`);
33
+ }
34
+ const body = (await res.json());
35
+ const content = body.message?.content?.trim();
36
+ if (!content)
37
+ throw new Error('Empty response from Ollama');
38
+ return content;
39
+ }
40
+ async function listInstalledModels(ollamaUrl) {
41
+ const base = (0, ollama_1.resolveOllamaUrl)(ollamaUrl);
42
+ if (!(await (0, ollama_1.pingOllama)(base))) {
43
+ throw new Error(`Ollama not reachable at ${base}. Set --ollama-url or OLLAMA_URL (e.g. http://ollama:11434 on Docker).`);
44
+ }
45
+ const res = await fetch(`${base}/api/tags`, { signal: AbortSignal.timeout(15_000) });
46
+ if (!res.ok)
47
+ throw new Error(`Could not list models (${res.status})`);
48
+ const body = (await res.json());
49
+ return (body.models ?? []).map((m) => m.name).sort();
50
+ }
51
+ //# sourceMappingURL=chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":";;AAcA,0BAoCC;AAED,kDAcC;AAlED,qCAAsC;AACtC,qCAIkB;AASX,KAAK,UAAU,OAAO,CAAC,OAAe,EAAE,OAAoB,EAAE;IACnE,MAAM,GAAG,GAAG,IAAA,mBAAU,GAAE,CAAC;IACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE,KAAK,CAAC;IACvC,MAAM,IAAI,GAAG,IAAA,yBAAgB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE9C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,wBAAwB,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,qCAAqC,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,IAAA,gCAAuB,EAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,WAAW,EAAE;QAC1C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK;YACL,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;YAC9C,MAAM,EAAE,KAAK;SACd,CAAC;QACF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;KACrC,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,MAAM,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuC,CAAC;IACtE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC5D,OAAO,OAAO,CAAC;AACjB,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,SAAkB;IAC1D,MAAM,IAAI,GAAG,IAAA,yBAAgB,EAAC,SAAS,CAAC,CAAC;IAEzC,IAAI,CAAC,CAAC,MAAM,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,2BAA2B,IAAI,wEAAwE,CACxG,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,WAAW,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrF,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoC,CAAC;IACnE,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACvD,CAAC"}
@@ -0,0 +1,11 @@
1
+ export type SavedConfig = {
2
+ ollamaUrl: string;
3
+ model: string;
4
+ modelName: string;
5
+ setupAt: string;
6
+ };
7
+ export declare function configDir(): string;
8
+ export declare function configPath(): string;
9
+ export declare function saveConfig(cfg: SavedConfig): void;
10
+ export declare function loadConfig(): SavedConfig | null;
11
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,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"}
package/dist/config.js ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.configDir = configDir;
7
+ exports.configPath = configPath;
8
+ exports.saveConfig = saveConfig;
9
+ exports.loadConfig = loadConfig;
10
+ const node_fs_1 = __importDefault(require("node:fs"));
11
+ const node_os_1 = __importDefault(require("node:os"));
12
+ const node_path_1 = __importDefault(require("node:path"));
13
+ function configDir() {
14
+ return node_path_1.default.join(node_os_1.default.homedir(), '.openinference');
15
+ }
16
+ function configPath() {
17
+ return node_path_1.default.join(configDir(), 'config.json');
18
+ }
19
+ function saveConfig(cfg) {
20
+ node_fs_1.default.mkdirSync(configDir(), { recursive: true });
21
+ node_fs_1.default.writeFileSync(configPath(), JSON.stringify(cfg, null, 2) + '\n', 'utf8');
22
+ }
23
+ function loadConfig() {
24
+ try {
25
+ const raw = node_fs_1.default.readFileSync(configPath(), 'utf8');
26
+ return JSON.parse(raw);
27
+ }
28
+ catch {
29
+ return null;
30
+ }
31
+ }
32
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;AAWA,8BAEC;AAED,gCAEC;AAED,gCAGC;AAED,gCAOC;AA/BD,sDAAyB;AACzB,sDAAyB;AACzB,0DAA6B;AAS7B,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"}