@cogitator-ai/cli 0.3.16 → 0.4.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 (73) hide show
  1. package/README.md +159 -510
  2. package/dist/commands/assistant.d.ts +13 -0
  3. package/dist/commands/assistant.d.ts.map +1 -1
  4. package/dist/commands/assistant.js +64 -58
  5. package/dist/commands/assistant.js.map +1 -1
  6. package/dist/commands/build.d.ts +2 -0
  7. package/dist/commands/build.d.ts.map +1 -1
  8. package/dist/commands/build.js +114 -59
  9. package/dist/commands/build.js.map +1 -1
  10. package/dist/commands/daemon.d.ts.map +1 -1
  11. package/dist/commands/daemon.js +223 -262
  12. package/dist/commands/daemon.js.map +1 -1
  13. package/dist/commands/deploy.d.ts.map +1 -1
  14. package/dist/commands/deploy.js +80 -42
  15. package/dist/commands/deploy.js.map +1 -1
  16. package/dist/commands/init.d.ts +44 -0
  17. package/dist/commands/init.d.ts.map +1 -1
  18. package/dist/commands/init.js +334 -265
  19. package/dist/commands/init.js.map +1 -1
  20. package/dist/commands/logs.d.ts +1 -0
  21. package/dist/commands/logs.d.ts.map +1 -1
  22. package/dist/commands/logs.js +8 -4
  23. package/dist/commands/logs.js.map +1 -1
  24. package/dist/commands/models.d.ts +1 -1
  25. package/dist/commands/models.d.ts.map +1 -1
  26. package/dist/commands/models.js +83 -93
  27. package/dist/commands/models.js.map +1 -1
  28. package/dist/commands/run.d.ts +4 -1
  29. package/dist/commands/run.d.ts.map +1 -1
  30. package/dist/commands/run.js +151 -128
  31. package/dist/commands/run.js.map +1 -1
  32. package/dist/commands/skill.d.ts +17 -0
  33. package/dist/commands/skill.d.ts.map +1 -1
  34. package/dist/commands/skill.js +203 -81
  35. package/dist/commands/skill.js.map +1 -1
  36. package/dist/commands/status.d.ts.map +1 -1
  37. package/dist/commands/status.js +20 -24
  38. package/dist/commands/status.js.map +1 -1
  39. package/dist/commands/up.d.ts +4 -0
  40. package/dist/commands/up.d.ts.map +1 -1
  41. package/dist/commands/up.js +182 -130
  42. package/dist/commands/up.js.map +1 -1
  43. package/dist/commands/wizard.d.ts +6 -0
  44. package/dist/commands/wizard.d.ts.map +1 -1
  45. package/dist/commands/wizard.js +301 -267
  46. package/dist/commands/wizard.js.map +1 -1
  47. package/dist/index.js +8 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/utils/daemon.d.ts +37 -0
  50. package/dist/utils/daemon.d.ts.map +1 -0
  51. package/dist/utils/daemon.js +194 -0
  52. package/dist/utils/daemon.js.map +1 -0
  53. package/dist/utils/docker.d.ts +9 -0
  54. package/dist/utils/docker.d.ts.map +1 -1
  55. package/dist/utils/docker.js +67 -12
  56. package/dist/utils/docker.js.map +1 -1
  57. package/dist/utils/env.d.ts +7 -0
  58. package/dist/utils/env.d.ts.map +1 -0
  59. package/dist/utils/env.js +41 -0
  60. package/dist/utils/env.js.map +1 -0
  61. package/dist/utils/module-loader.d.ts +5 -0
  62. package/dist/utils/module-loader.d.ts.map +1 -0
  63. package/dist/utils/module-loader.js +52 -0
  64. package/dist/utils/module-loader.js.map +1 -0
  65. package/dist/utils/ollama.d.ts +20 -0
  66. package/dist/utils/ollama.d.ts.map +1 -0
  67. package/dist/utils/ollama.js +111 -0
  68. package/dist/utils/ollama.js.map +1 -0
  69. package/dist/utils/provider-models.d.ts +13 -0
  70. package/dist/utils/provider-models.d.ts.map +1 -0
  71. package/dist/utils/provider-models.js +78 -0
  72. package/dist/utils/provider-models.js.map +1 -0
  73. package/package.json +8 -8
@@ -0,0 +1,20 @@
1
+ export declare const DEFAULT_OLLAMA_URL = "http://localhost:11434";
2
+ export interface OllamaModelInfo {
3
+ name: string;
4
+ size: number;
5
+ modified_at: string;
6
+ }
7
+ export interface OllamaPullProgress {
8
+ status: string;
9
+ completed?: number;
10
+ total?: number;
11
+ }
12
+ export interface OllamaRequestOptions {
13
+ apiKey?: string;
14
+ timeoutMs?: number;
15
+ }
16
+ export declare function resolveOllamaUrl(env?: Record<string, string | undefined>, configured?: string): string;
17
+ export declare function listOllamaModels(baseUrl: string, options?: OllamaRequestOptions): Promise<OllamaModelInfo[]>;
18
+ export declare function readNdjson(stream: ReadableStream<Uint8Array>): AsyncGenerator<unknown>;
19
+ export declare function pullOllamaModel(baseUrl: string, model: string, onProgress: (progress: OllamaPullProgress) => void, options?: Pick<OllamaRequestOptions, 'apiKey'>): Promise<void>;
20
+ //# sourceMappingURL=ollama.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/utils/ollama.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAKR;AAsBD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,eAAe,EAAE,CAAC,CAa5B;AAED,wBAAuB,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAgC7F;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,EAClD,OAAO,GAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAM,GACjD,OAAO,CAAC,IAAI,CAAC,CAiCf"}
@@ -0,0 +1,111 @@
1
+ export const DEFAULT_OLLAMA_URL = 'http://localhost:11434';
2
+ export function resolveOllamaUrl(env = process.env, configured) {
3
+ const raw = configured?.trim() || env.OLLAMA_URL?.trim() || env.OLLAMA_HOST?.trim();
4
+ if (!raw)
5
+ return DEFAULT_OLLAMA_URL;
6
+ const withScheme = /^https?:\/\//i.test(raw) ? raw : `http://${raw}`;
7
+ return withScheme.replace(/\/+$/, '');
8
+ }
9
+ function buildHeaders(apiKey, json) {
10
+ const headers = {};
11
+ if (json)
12
+ headers['Content-Type'] = 'application/json';
13
+ if (apiKey)
14
+ headers.Authorization = `Bearer ${apiKey}`;
15
+ return headers;
16
+ }
17
+ function isRecord(value) {
18
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
19
+ }
20
+ function toModelInfo(value) {
21
+ if (!isRecord(value) || typeof value.name !== 'string')
22
+ return null;
23
+ return {
24
+ name: value.name,
25
+ size: typeof value.size === 'number' ? value.size : 0,
26
+ modified_at: typeof value.modified_at === 'string' ? value.modified_at : '',
27
+ };
28
+ }
29
+ export async function listOllamaModels(baseUrl, options = {}) {
30
+ const res = await fetch(`${baseUrl}/api/tags`, {
31
+ headers: buildHeaders(options.apiKey, false),
32
+ signal: AbortSignal.timeout(options.timeoutMs ?? 5000),
33
+ });
34
+ if (!res.ok) {
35
+ throw new Error(`Ollama responded with HTTP ${res.status} at ${baseUrl}`);
36
+ }
37
+ const data = await res.json();
38
+ if (!isRecord(data) || !Array.isArray(data.models)) {
39
+ throw new Error(`Unexpected response from ${baseUrl}/api/tags`);
40
+ }
41
+ return data.models.map(toModelInfo).filter((m) => m !== null);
42
+ }
43
+ export async function* readNdjson(stream) {
44
+ const reader = stream.getReader();
45
+ const decoder = new TextDecoder();
46
+ let buffer = '';
47
+ const parseLine = (line) => {
48
+ const trimmed = line.trim();
49
+ if (!trimmed)
50
+ return undefined;
51
+ return JSON.parse(trimmed);
52
+ };
53
+ try {
54
+ while (true) {
55
+ const { done, value } = await reader.read();
56
+ if (done)
57
+ break;
58
+ buffer += decoder.decode(value, { stream: true });
59
+ let newline = buffer.indexOf('\n');
60
+ while (newline >= 0) {
61
+ const parsed = parseLine(buffer.slice(0, newline));
62
+ buffer = buffer.slice(newline + 1);
63
+ if (parsed !== undefined)
64
+ yield parsed;
65
+ newline = buffer.indexOf('\n');
66
+ }
67
+ }
68
+ buffer += decoder.decode();
69
+ const last = parseLine(buffer);
70
+ if (last !== undefined)
71
+ yield last;
72
+ }
73
+ finally {
74
+ reader.releaseLock();
75
+ }
76
+ }
77
+ export async function pullOllamaModel(baseUrl, model, onProgress, options = {}) {
78
+ const res = await fetch(`${baseUrl}/api/pull`, {
79
+ method: 'POST',
80
+ headers: buildHeaders(options.apiKey, true),
81
+ body: JSON.stringify({ model, stream: true }),
82
+ });
83
+ if (!res.ok) {
84
+ const detail = await res.text().catch(() => '');
85
+ throw new Error(`Failed to pull ${model}: HTTP ${res.status}${detail ? ` — ${detail}` : ''}`);
86
+ }
87
+ if (!res.body) {
88
+ throw new Error(`Failed to pull ${model}: empty response body`);
89
+ }
90
+ let sawSuccess = false;
91
+ for await (const event of readNdjson(res.body)) {
92
+ if (!isRecord(event))
93
+ continue;
94
+ if (typeof event.error === 'string') {
95
+ throw new Error(`Failed to pull ${model}: ${event.error}`);
96
+ }
97
+ if (typeof event.status !== 'string')
98
+ continue;
99
+ if (event.status === 'success')
100
+ sawSuccess = true;
101
+ onProgress({
102
+ status: event.status,
103
+ completed: typeof event.completed === 'number' ? event.completed : undefined,
104
+ total: typeof event.total === 'number' ? event.total : undefined,
105
+ });
106
+ }
107
+ if (!sawSuccess) {
108
+ throw new Error(`Failed to pull ${model}: stream ended before completion`);
109
+ }
110
+ }
111
+ //# sourceMappingURL=ollama.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/utils/ollama.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAmB3D,MAAM,UAAU,gBAAgB,CAC9B,MAA0C,OAAO,CAAC,GAAG,EACrD,UAAmB;IAEnB,MAAM,GAAG,GAAG,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IACpF,IAAI,CAAC,GAAG;QAAE,OAAO,kBAAkB,CAAC;IACpC,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC;IACrE,OAAO,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,YAAY,CAAC,MAA0B,EAAE,IAAa;IAC7D,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,IAAI;QAAE,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;IACvD,IAAI,MAAM;QAAE,OAAO,CAAC,aAAa,GAAG,UAAU,MAAM,EAAE,CAAC;IACvD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACpE,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrD,WAAW,EAAE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;KAC5E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,UAAgC,EAAE;IAElC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,WAAW,EAAE;QAC7C,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;QAC5C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;KACvD,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,MAAM,OAAO,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,IAAI,GAAY,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,WAAW,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,UAAU,CAAC,MAAkC;IAClE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,MAAM,SAAS,GAAG,CAAC,IAAY,EAAW,EAAE;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;IACxC,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAElD,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO,OAAO,IAAI,CAAC,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;gBACnD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACnC,IAAI,MAAM,KAAK,SAAS;oBAAE,MAAM,MAAM,CAAC;gBACvC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC;IACrC,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,KAAa,EACb,UAAkD,EAClD,UAAgD,EAAE;IAElD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,WAAW,EAAE;QAC7C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;QAC3C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KAC9C,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,UAAU,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,uBAAuB,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAC/B,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;YAAE,SAAS;QAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,UAAU,GAAG,IAAI,CAAC;QAClD,UAAU,CAAC;YACT,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC5E,KAAK,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACjE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,kCAAkC,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type SetupProvider = 'anthropic' | 'openai' | 'google' | 'ollama';
2
+ export interface ModelOption {
3
+ label: string;
4
+ value: string;
5
+ hint?: string;
6
+ }
7
+ export declare const API_KEY_ENV: Record<Exclude<SetupProvider, 'ollama'>, string>;
8
+ export declare const FALLBACK_MODELS: Record<SetupProvider, ModelOption[]>;
9
+ export declare function isSetupProvider(value: string): value is SetupProvider;
10
+ export declare function withProviderPrefix(provider: SetupProvider, modelId: string): string;
11
+ export declare function fetchProviderModels(provider: Exclude<SetupProvider, 'ollama'>): Promise<ModelOption[]>;
12
+ export declare function fetchOllamaModelOptions(baseUrl: string, apiKey?: string): Promise<ModelOption[]>;
13
+ //# sourceMappingURL=provider-models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-models.d.ts","sourceRoot":"","sources":["../../src/utils/provider-models.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,MAAM,CAIxE,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,WAAW,EAAE,CAoBhE,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,aAAa,CAErE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnF;AAOD,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,GACzC,OAAO,CAAC,WAAW,EAAE,CAAC,CAwBxB;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,EAAE,CAAC,CAYxB"}
@@ -0,0 +1,78 @@
1
+ import { ModelRegistry } from '@cogitator-ai/models';
2
+ import { listOllamaModels } from './ollama.js';
3
+ export const API_KEY_ENV = {
4
+ anthropic: 'ANTHROPIC_API_KEY',
5
+ openai: 'OPENAI_API_KEY',
6
+ google: 'GOOGLE_API_KEY',
7
+ };
8
+ export const FALLBACK_MODELS = {
9
+ anthropic: [
10
+ { label: 'Claude Sonnet 4', value: 'anthropic/claude-sonnet-4-20250514' },
11
+ { label: 'Claude Opus 4', value: 'anthropic/claude-opus-4-20250514' },
12
+ { label: 'Claude Haiku 3.5', value: 'anthropic/claude-3-5-haiku-20241022' },
13
+ ],
14
+ openai: [
15
+ { label: 'GPT-4o', value: 'openai/gpt-4o' },
16
+ { label: 'GPT-4o mini', value: 'openai/gpt-4o-mini' },
17
+ { label: 'o3-mini', value: 'openai/o3-mini' },
18
+ ],
19
+ google: [
20
+ { label: 'Gemini 2.5 Flash', value: 'google/gemini-2.5-flash' },
21
+ { label: 'Gemini 2.5 Pro', value: 'google/gemini-2.5-pro' },
22
+ ],
23
+ ollama: [
24
+ { label: 'Llama 3.1 8B', value: 'ollama/llama3.1:8b' },
25
+ { label: 'Gemma 3 4B', value: 'ollama/gemma3:4b' },
26
+ { label: 'Mistral 7B', value: 'ollama/mistral:7b' },
27
+ ],
28
+ };
29
+ export function isSetupProvider(value) {
30
+ return value === 'anthropic' || value === 'openai' || value === 'google' || value === 'ollama';
31
+ }
32
+ export function withProviderPrefix(provider, modelId) {
33
+ return modelId.startsWith(`${provider}/`) ? modelId : `${provider}/${modelId}`;
34
+ }
35
+ function formatBytes(bytes) {
36
+ if (bytes < 1024 * 1024 * 1024)
37
+ return `${(bytes / (1024 * 1024)).toFixed(0)} MB`;
38
+ return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
39
+ }
40
+ export async function fetchProviderModels(provider) {
41
+ try {
42
+ const registry = new ModelRegistry({ fallbackToBuiltin: true });
43
+ await registry.initialize();
44
+ let models = registry.listModels({
45
+ provider,
46
+ supportsTools: true,
47
+ excludeDeprecated: true,
48
+ });
49
+ if (provider === 'google') {
50
+ models = models.filter((m) => m.id.includes('gemini'));
51
+ }
52
+ if (models.length === 0)
53
+ return FALLBACK_MODELS[provider];
54
+ return models.map((m) => ({
55
+ label: m.displayName,
56
+ value: withProviderPrefix(provider, m.id),
57
+ }));
58
+ }
59
+ catch {
60
+ return FALLBACK_MODELS[provider];
61
+ }
62
+ }
63
+ export async function fetchOllamaModelOptions(baseUrl, apiKey) {
64
+ try {
65
+ const models = await listOllamaModels(baseUrl, { apiKey });
66
+ if (models.length === 0)
67
+ return FALLBACK_MODELS.ollama;
68
+ return models.map((m) => ({
69
+ label: m.name,
70
+ value: `ollama/${m.name}`,
71
+ hint: m.size > 0 ? formatBytes(m.size) : undefined,
72
+ }));
73
+ }
74
+ catch {
75
+ return FALLBACK_MODELS.ollama;
76
+ }
77
+ }
78
+ //# sourceMappingURL=provider-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-models.js","sourceRoot":"","sources":["../../src/utils/provider-models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAU/C,MAAM,CAAC,MAAM,WAAW,GAAqD;IAC3E,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAyC;IACnE,SAAS,EAAE;QACT,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,oCAAoC,EAAE;QACzE,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,kCAAkC,EAAE;QACrE,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,qCAAqC,EAAE;KAC5E;IACD,MAAM,EAAE;QACN,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE;QAC3C,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,oBAAoB,EAAE;QACrD,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE;KAC9C;IACD,MAAM,EAAE;QACN,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,yBAAyB,EAAE;QAC/D,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,uBAAuB,EAAE;KAC5D;IACD,MAAM,EAAE;QACN,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,oBAAoB,EAAE;QACtD,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE;QAClD,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAE;KACpD;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAuB,EAAE,OAAe;IACzE,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,OAAO,EAAE,CAAC;AACjF,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAClF,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAA0C;IAE1C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAE5B,IAAI,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;YAC/B,QAAQ;YACR,aAAa,EAAE,IAAI;YACnB,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;QAEH,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE1D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxB,KAAK,EAAE,CAAC,CAAC,WAAW;YACpB,KAAK,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAe,EACf,MAAe;IAEf,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,eAAe,CAAC,MAAM,CAAC;QACvD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxB,KAAK,EAAE,CAAC,CAAC,IAAI;YACb,KAAK,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE;YACzB,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SACnD,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,eAAe,CAAC,MAAM,CAAC;IAChC,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogitator-ai/cli",
3
- "version": "0.3.16",
3
+ "version": "0.4.0",
4
4
  "description": "CLI for Cogitator AI Agent Runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -23,13 +23,13 @@
23
23
  "commander": "^12.0.0",
24
24
  "ora": "^9.3.0",
25
25
  "yaml": "^2.8.2",
26
- "@cogitator-ai/channels": "0.2.5",
27
- "@cogitator-ai/core": "0.19.4",
26
+ "@cogitator-ai/channels": "0.3.0",
27
+ "@cogitator-ai/memory": "0.7.0",
28
+ "@cogitator-ai/types": "0.23.0",
29
+ "@cogitator-ai/core": "0.20.0",
28
30
  "@cogitator-ai/models": "17.1.9",
29
- "@cogitator-ai/config": "0.5.6",
30
- "@cogitator-ai/types": "0.22.3",
31
- "@cogitator-ai/memory": "0.6.22",
32
- "@cogitator-ai/deploy": "0.1.9"
31
+ "@cogitator-ai/deploy": "0.2.0",
32
+ "@cogitator-ai/config": "0.6.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^25.0.10",
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "license": "MIT",
49
49
  "scripts": {
50
- "build": "tsc",
50
+ "build": "tsc && tsx ../../scripts/fix-esm-imports.ts .",
51
51
  "dev": "tsc --watch",
52
52
  "clean": "rm -rf dist",
53
53
  "typecheck": "tsc --noEmit",