@mmnto/cli 0.43.0 → 0.44.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/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +9 -9
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/bridge.d.ts.map +1 -1
- package/dist/commands/bridge.js +2 -1
- package/dist/commands/bridge.js.map +1 -1
- package/dist/commands/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +3 -5
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/docs.d.ts +1 -1
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +10 -17
- package/dist/commands/docs.js.map +1 -1
- package/dist/commands/docs.test.js +4 -0
- package/dist/commands/docs.test.js.map +1 -1
- package/dist/commands/extract.d.ts.map +1 -1
- package/dist/commands/extract.js +5 -5
- package/dist/commands/extract.js.map +1 -1
- package/dist/commands/extract.test.js +1 -1
- package/dist/commands/extract.test.js.map +1 -1
- package/dist/commands/link.d.ts.map +1 -1
- package/dist/commands/link.js +5 -6
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/lint.d.ts.map +1 -1
- package/dist/commands/lint.js +2 -1
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +2 -2
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/shield.d.ts.map +1 -1
- package/dist/commands/shield.js +4 -3
- package/dist/commands/shield.js.map +1 -1
- package/dist/commands/spec.d.ts.map +1 -1
- package/dist/commands/spec.js +2 -2
- package/dist/commands/spec.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +2 -2
- package/dist/commands/sync.js.map +1 -1
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +5 -4
- package/dist/git.js.map +1 -1
- package/dist/orchestrators/anthropic-orchestrator.d.ts.map +1 -1
- package/dist/orchestrators/anthropic-orchestrator.js +4 -5
- package/dist/orchestrators/anthropic-orchestrator.js.map +1 -1
- package/dist/orchestrators/gemini-orchestrator.d.ts.map +1 -1
- package/dist/orchestrators/gemini-orchestrator.js +4 -6
- package/dist/orchestrators/gemini-orchestrator.js.map +1 -1
- package/dist/orchestrators/ollama-orchestrator.d.ts.map +1 -1
- package/dist/orchestrators/ollama-orchestrator.js +8 -11
- package/dist/orchestrators/ollama-orchestrator.js.map +1 -1
- package/dist/orchestrators/ollama-orchestrator.test.js +13 -3
- package/dist/orchestrators/ollama-orchestrator.test.js.map +1 -1
- package/dist/orchestrators/openai-orchestrator.d.ts.map +1 -1
- package/dist/orchestrators/openai-orchestrator.js +4 -6
- package/dist/orchestrators/openai-orchestrator.js.map +1 -1
- package/dist/orchestrators/orchestrator.d.ts.map +1 -1
- package/dist/orchestrators/orchestrator.js +5 -7
- package/dist/orchestrators/orchestrator.js.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +11 -14
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGvD,sEAAsE;AACtE,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,OAAO,
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAuBA,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUhD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUhD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAiBtE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWlD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAkCpD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CA0BnE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYlE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAavD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,MAAM,CAcnF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAYlE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAazD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAgB1D"}
|
package/dist/git.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { execFileSync } from 'node:child_process';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
|
+
import { TotemGitError } from '@mmnto/totem';
|
|
3
4
|
import { IS_WIN } from './utils.js';
|
|
4
5
|
// ─── Constants ──────────────────────────────────────────
|
|
5
6
|
const GIT_COMMAND_TIMEOUT_MS = 15_000;
|
|
6
7
|
function throwIfGitMissing(err) {
|
|
7
8
|
const msg = err instanceof Error ? err.message : String(err);
|
|
8
9
|
if (msg.includes('ENOENT') || msg.includes('not found')) {
|
|
9
|
-
throw new
|
|
10
|
+
throw new TotemGitError("'git' command not found.", 'Ensure Git is installed and in your PATH.');
|
|
10
11
|
}
|
|
11
12
|
}
|
|
12
13
|
// ─── Git helpers ────────────────────────────────────────
|
|
@@ -47,7 +48,7 @@ export function getGitDiff(mode, cwd) {
|
|
|
47
48
|
catch (err) {
|
|
48
49
|
throwIfGitMissing(err);
|
|
49
50
|
const msg = err instanceof Error ? err.message : String(err);
|
|
50
|
-
throw new
|
|
51
|
+
throw new TotemGitError(`Failed to get git diff: ${msg}`, 'Check that you are inside a Git repository with at least one commit.');
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
54
|
export function getGitDiffStat(cwd) {
|
|
@@ -97,7 +98,7 @@ export function getDefaultBranch(cwd) {
|
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
100
|
}
|
|
100
|
-
throw new
|
|
101
|
+
throw new TotemGitError("Could not determine default branch. Neither 'main' nor 'master' found locally, and 'git symbolic-ref' failed.", "Run 'git remote set-head origin --auto' to configure the default branch, or pass --base explicitly.");
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
104
|
export function getGitBranchDiff(cwd, base) {
|
|
@@ -118,7 +119,7 @@ export function getGitBranchDiff(cwd, base) {
|
|
|
118
119
|
// If this was the last ref, throw
|
|
119
120
|
if (ref === refs[refs.length - 1]) {
|
|
120
121
|
const msg = err instanceof Error ? err.message : String(err);
|
|
121
|
-
throw new
|
|
122
|
+
throw new TotemGitError(`Failed to get branch diff (${baseBranch}...HEAD): ${msg}`, `Ensure the base branch '${baseBranch}' exists locally or as a remote ref. Try 'git fetch origin ${baseBranch}'.`);
|
|
122
123
|
}
|
|
123
124
|
}
|
|
124
125
|
}
|
package/dist/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,2DAA2D;AAE3D,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAEtC,SAAS,iBAAiB,CAAC,GAAY;IACrC,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrators/anthropic-orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"anthropic-orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrators/anthropic-orchestrator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AA+BvF;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CAmD7B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TotemConfigError, TotemOrchestratorError } from '@mmnto/totem';
|
|
1
2
|
import { log } from '../ui.js';
|
|
2
3
|
import { detectPackageManager, isQuotaError } from './orchestrator.js';
|
|
3
4
|
// ─── Constants ───────────────────────────────────────
|
|
@@ -18,9 +19,7 @@ async function importAnthropicSdk() {
|
|
|
18
19
|
return (await import('@anthropic-ai/sdk')).default;
|
|
19
20
|
}
|
|
20
21
|
catch {
|
|
21
|
-
throw new
|
|
22
|
-
`Install it with: ${detectPackageManager()} add @anthropic-ai/sdk\n` +
|
|
23
|
-
"Or use provider: 'shell' in your orchestrator config.");
|
|
22
|
+
throw new TotemConfigError('Anthropic SDK (@anthropic-ai/sdk) is not installed.', `Install it with: ${detectPackageManager()} add @anthropic-ai/sdk`, 'CONFIG_MISSING');
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
25
|
// ─── Anthropic API orchestrator ──────────────────────
|
|
@@ -33,7 +32,7 @@ async function importAnthropicSdk() {
|
|
|
33
32
|
export async function invokeAnthropicOrchestrator(opts) {
|
|
34
33
|
const { prompt, model, tag } = opts;
|
|
35
34
|
if (!process.env['ANTHROPIC_API_KEY']) {
|
|
36
|
-
throw new
|
|
35
|
+
throw new TotemConfigError('No Anthropic API key found.', 'Set ANTHROPIC_API_KEY in your .env file.', 'CONFIG_MISSING');
|
|
37
36
|
}
|
|
38
37
|
const Anthropic = await importAnthropicSdk();
|
|
39
38
|
const client = new Anthropic();
|
|
@@ -66,7 +65,7 @@ export async function invokeAnthropicOrchestrator(opts) {
|
|
|
66
65
|
throw err;
|
|
67
66
|
}
|
|
68
67
|
const msg = err instanceof Error ? err.message : String(err);
|
|
69
|
-
throw new
|
|
68
|
+
throw new TotemOrchestratorError(`Anthropic API call failed: ${msg}`, 'Check your ANTHROPIC_API_KEY, network connection, and model name.');
|
|
70
69
|
}
|
|
71
70
|
}
|
|
72
71
|
//# sourceMappingURL=anthropic-orchestrator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-orchestrator.js","sourceRoot":"","sources":["../../src/orchestrators/anthropic-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEvE,wDAAwD;AAExD,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC,6EAA6E;AAC7E,SAAS,YAAY,CAAC,KAAa;IACjC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,kBAAkB,CAAC;IACxD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1C,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,uDAAuD;AAEvD,KAAK,UAAU,kBAAkB;IAC/B,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"anthropic-orchestrator.js","sourceRoot":"","sources":["../../src/orchestrators/anthropic-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrators/gemini-orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gemini-orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrators/gemini-orchestrator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAuBvF;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CA4C7B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TotemConfigError, TotemOrchestratorError } from '@mmnto/totem';
|
|
1
2
|
import { log } from '../ui.js';
|
|
2
3
|
import { detectPackageManager, isQuotaError } from './orchestrator.js';
|
|
3
4
|
// ─── Constants ───────────────────────────────────────
|
|
@@ -8,9 +9,7 @@ async function importGeminiSdk() {
|
|
|
8
9
|
return await import('@google/genai');
|
|
9
10
|
}
|
|
10
11
|
catch {
|
|
11
|
-
throw new
|
|
12
|
-
`Install it with: ${detectPackageManager()} add @google/genai\n` +
|
|
13
|
-
"Or use provider: 'shell' in your orchestrator config.");
|
|
12
|
+
throw new TotemConfigError('Gemini SDK (@google/genai) is not installed.', `Install it with: ${detectPackageManager()} add @google/genai`, 'CONFIG_MISSING');
|
|
14
13
|
}
|
|
15
14
|
}
|
|
16
15
|
// ─── Gemini API orchestrator ─────────────────────────
|
|
@@ -24,8 +23,7 @@ export async function invokeGeminiOrchestrator(opts) {
|
|
|
24
23
|
const { prompt, model, tag } = opts;
|
|
25
24
|
const apiKey = process.env['GEMINI_API_KEY'] ?? process.env['GOOGLE_API_KEY'];
|
|
26
25
|
if (!apiKey) {
|
|
27
|
-
throw new
|
|
28
|
-
'Set GEMINI_API_KEY (or GOOGLE_API_KEY) in your .env file.');
|
|
26
|
+
throw new TotemConfigError('No Gemini API key found.', 'Set GEMINI_API_KEY (or GOOGLE_API_KEY) in your .env file.', 'CONFIG_MISSING');
|
|
29
27
|
}
|
|
30
28
|
const { GoogleGenAI } = await importGeminiSdk();
|
|
31
29
|
const ai = new GoogleGenAI({ apiKey });
|
|
@@ -52,7 +50,7 @@ export async function invokeGeminiOrchestrator(opts) {
|
|
|
52
50
|
throw err;
|
|
53
51
|
}
|
|
54
52
|
const msg = err instanceof Error ? err.message : String(err);
|
|
55
|
-
throw new
|
|
53
|
+
throw new TotemOrchestratorError(`Gemini API call failed: ${msg}`, 'Check your GEMINI_API_KEY, network connection, and model name.');
|
|
56
54
|
}
|
|
57
55
|
}
|
|
58
56
|
//# sourceMappingURL=gemini-orchestrator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-orchestrator.js","sourceRoot":"","sources":["../../src/orchestrators/gemini-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEvE,wDAAwD;AAExD,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAEzC,uDAAuD;AAEvD,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"gemini-orchestrator.js","sourceRoot":"","sources":["../../src/orchestrators/gemini-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAExE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEvE,wDAAwD;AAExD,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAEzC,uDAAuD;AAEvD,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,gBAAgB,CACxB,8CAA8C,EAC9C,oBAAoB,oBAAoB,EAAE,oBAAoB,EAC9D,gBAAgB,CACjB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,wDAAwD;AAExD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAA+B;IAE/B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAEpC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,gBAAgB,CACxB,0BAA0B,EAC1B,2DAA2D,EAC3D,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,eAAe,EAAE,CAAC;IAChD,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAEvC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,sDAAsD,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC;YAC/C,KAAK;YACL,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,EAAE,eAAe,EAAE,yBAAyB,EAAE;SACvD,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;QACxC,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE;YAC5B,WAAW,EAAE,QAAQ,CAAC,aAAa,EAAE,gBAAgB,IAAI,IAAI;YAC7D,YAAY,EAAE,QAAQ,CAAC,aAAa,EAAE,oBAAoB,IAAI,IAAI;YAClE,UAAU;YACV,YAAY,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,IAAI,SAAS;SAClE,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,GAAa,CAAC,IAAI,GAAG,YAAY,CAAC;YACnC,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,sBAAsB,CAC9B,2BAA2B,GAAG,EAAE,EAChC,gEAAgE,CACjE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama-orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrators/ollama-orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ollama-orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrators/ollama-orchestrator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAmBvF;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,yBAAyB,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACtE,OAAO,CAAC,kBAAkB,CAAC,CAyF7B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { TotemOrchestratorError, TotemParseError } from '@mmnto/totem';
|
|
2
3
|
import { log } from '../ui.js';
|
|
3
4
|
import { isQuotaError } from './orchestrator.js';
|
|
4
5
|
// ─── Constants ───────────────────────────────────────
|
|
@@ -46,9 +47,7 @@ export async function invokeOllamaOrchestrator(opts) {
|
|
|
46
47
|
}
|
|
47
48
|
catch (err) {
|
|
48
49
|
const msg = err instanceof Error ? err.message : String(err);
|
|
49
|
-
throw new
|
|
50
|
-
`Is Ollama running? Start it with: ollama serve\n` +
|
|
51
|
-
`Details: ${msg}`);
|
|
50
|
+
throw new TotemOrchestratorError(`Cannot connect to Ollama at ${base}. Details: ${msg}`, 'Is Ollama running? Start it with: ollama serve');
|
|
52
51
|
}
|
|
53
52
|
if (!response.ok) {
|
|
54
53
|
const errorBody = await response.text();
|
|
@@ -59,24 +58,22 @@ export async function invokeOllamaOrchestrator(opts) {
|
|
|
59
58
|
}
|
|
60
59
|
// 500 errors from Ollama are often VRAM/context exhaustion
|
|
61
60
|
if (response.status >= 500) {
|
|
62
|
-
throw new
|
|
63
|
-
(numCtx
|
|
64
|
-
|
|
65
|
-
: `Try setting a smaller numCtx in your orchestrator config to limit VRAM usage.`));
|
|
61
|
+
throw new TotemOrchestratorError(`Ollama server error (${response.status}): ${errorBody}`, numCtx
|
|
62
|
+
? `Try lowering numCtx (currently ${numCtx}) in your orchestrator config.`
|
|
63
|
+
: 'Try setting a smaller numCtx in your orchestrator config to limit VRAM usage.');
|
|
66
64
|
}
|
|
67
|
-
throw new
|
|
65
|
+
throw new TotemOrchestratorError(`Ollama API error (${response.status}): ${errorBody}`, 'Check that the model is pulled and Ollama is running correctly.');
|
|
68
66
|
}
|
|
69
67
|
let raw;
|
|
70
68
|
try {
|
|
71
69
|
raw = await response.json();
|
|
72
70
|
}
|
|
73
71
|
catch {
|
|
74
|
-
throw new
|
|
72
|
+
throw new TotemParseError('Ollama returned invalid JSON.', 'Ensure the model is fully loaded. Try: ollama pull <model>');
|
|
75
73
|
}
|
|
76
74
|
const parsed = OllamaChatResponseSchema.safeParse(raw);
|
|
77
75
|
if (!parsed.success) {
|
|
78
|
-
throw new
|
|
79
|
-
`Validation: ${parsed.error.issues.map((i) => i.message).join(', ')}`);
|
|
76
|
+
throw new TotemParseError(`Unexpected response from Ollama API. Validation: ${parsed.error.issues.map((i) => i.message).join(', ')}`, 'Ensure Ollama is up to date. Try: ollama --version');
|
|
80
77
|
}
|
|
81
78
|
const data = parsed.data;
|
|
82
79
|
const durationMs = Date.now() - startMs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama-orchestrator.js","sourceRoot":"","sources":["../../src/orchestrators/ollama-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,wDAAwD;AAExD,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAElD,uDAAuD;AAEvD,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH,uDAAuD;AAEvD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAuE;IAEvE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAErD,4CAA4C;IAC5C,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,GAAG,IAAI,WAAW,CAAC;IAE/B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,cAAc,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,IAAI,GAAG,QAAQ,mCAAmC,CAAC,CAAC;IACxF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,MAAM,IAAI,GAA4B;QACpC,KAAK;QACL,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;KAC9C,CAAC;IAEF,+CAA+C;IAC/C,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC1B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"ollama-orchestrator.js","sourceRoot":"","sources":["../../src/orchestrators/ollama-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,11 +85,18 @@ describe('invokeOllamaOrchestrator', () => {
|
|
|
85
85
|
});
|
|
86
86
|
it('suggests ollama serve in connection error', async () => {
|
|
87
87
|
mockFetch.mockRejectedValueOnce(new Error('ECONNREFUSED'));
|
|
88
|
-
await expect(invokeOllamaOrchestrator(baseOpts)).rejects.
|
|
88
|
+
await expect(invokeOllamaOrchestrator(baseOpts)).rejects.toSatisfy((err) => {
|
|
89
|
+
return (err.message.includes('Cannot connect to Ollama') &&
|
|
90
|
+
'recoveryHint' in err &&
|
|
91
|
+
err.recoveryHint.includes('ollama serve'));
|
|
92
|
+
});
|
|
89
93
|
});
|
|
90
94
|
it('throws VRAM-friendly error on 500 with numCtx', async () => {
|
|
91
95
|
mockFetch.mockResolvedValueOnce(new Response('out of memory', { status: 500 }));
|
|
92
|
-
await expect(invokeOllamaOrchestrator({ ...baseOpts, numCtx: 32768 })).rejects.
|
|
96
|
+
await expect(invokeOllamaOrchestrator({ ...baseOpts, numCtx: 32768 })).rejects.toSatisfy((err) => {
|
|
97
|
+
return ('recoveryHint' in err &&
|
|
98
|
+
err.recoveryHint.includes('lowering numCtx'));
|
|
99
|
+
});
|
|
93
100
|
});
|
|
94
101
|
it('throws QuotaError on 429 responses', async () => {
|
|
95
102
|
mockFetch.mockResolvedValueOnce(new Response('too many requests', { status: 429 }));
|
|
@@ -99,7 +106,10 @@ describe('invokeOllamaOrchestrator', () => {
|
|
|
99
106
|
});
|
|
100
107
|
it('throws VRAM-friendly error on 500 without numCtx', async () => {
|
|
101
108
|
mockFetch.mockResolvedValueOnce(new Response('out of memory', { status: 500 }));
|
|
102
|
-
await expect(invokeOllamaOrchestrator(baseOpts)).rejects.
|
|
109
|
+
await expect(invokeOllamaOrchestrator(baseOpts)).rejects.toSatisfy((err) => {
|
|
110
|
+
return ('recoveryHint' in err &&
|
|
111
|
+
err.recoveryHint.includes('smaller numCtx'));
|
|
112
|
+
});
|
|
103
113
|
});
|
|
104
114
|
it('handles missing token counts gracefully', async () => {
|
|
105
115
|
mockFetch.mockResolvedValueOnce(okResponse({ message: { content: 'no counts' }, done: true }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama-orchestrator.test.js","sourceRoot":"","sources":["../../src/orchestrators/ollama-orchestrator.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ollama-orchestrator.test.js","sourceRoot":"","sources":["../../src/orchestrators/ollama-orchestrator.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrators/openai-orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openai-orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrators/openai-orchestrator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AA6BvF;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,yBAAyB,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD,OAAO,CAAC,kBAAkB,CAAC,CAmD7B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TotemConfigError, TotemOrchestratorError } from '@mmnto/totem';
|
|
1
2
|
import { log } from '../ui.js';
|
|
2
3
|
import { detectPackageManager, isQuotaError } from './orchestrator.js';
|
|
3
4
|
// ─── Constants ───────────────────────────────────────
|
|
@@ -13,9 +14,7 @@ async function importOpenAISdk() {
|
|
|
13
14
|
return (await import('openai')).default;
|
|
14
15
|
}
|
|
15
16
|
catch {
|
|
16
|
-
throw new
|
|
17
|
-
`Install it with: ${detectPackageManager()} add openai\n` +
|
|
18
|
-
"Or use provider: 'shell' in your orchestrator config.");
|
|
17
|
+
throw new TotemConfigError('OpenAI SDK (openai) is not installed.', `Install it with: ${detectPackageManager()} add openai`, 'CONFIG_MISSING');
|
|
19
18
|
}
|
|
20
19
|
}
|
|
21
20
|
// ─── OpenAI-compatible API orchestrator ─────────────
|
|
@@ -31,8 +30,7 @@ export async function invokeOpenAIOrchestrator(opts) {
|
|
|
31
30
|
// For local servers, use a dummy key if none is set
|
|
32
31
|
const apiKey = process.env['OPENAI_API_KEY'] ?? (baseUrl ? LOCAL_DUMMY_KEY : undefined);
|
|
33
32
|
if (!apiKey) {
|
|
34
|
-
throw new
|
|
35
|
-
'Set OPENAI_API_KEY in your .env file, or add a baseUrl for local servers (Ollama, LM Studio).');
|
|
33
|
+
throw new TotemConfigError('No OpenAI API key found.', 'Set OPENAI_API_KEY in your .env file, or add a baseUrl for local servers (Ollama, LM Studio).', 'CONFIG_MISSING');
|
|
36
34
|
}
|
|
37
35
|
const OpenAI = await importOpenAISdk();
|
|
38
36
|
const client = new OpenAI({
|
|
@@ -64,7 +62,7 @@ export async function invokeOpenAIOrchestrator(opts) {
|
|
|
64
62
|
throw err;
|
|
65
63
|
}
|
|
66
64
|
const msg = err instanceof Error ? err.message : String(err);
|
|
67
|
-
throw new
|
|
65
|
+
throw new TotemOrchestratorError(`OpenAI API call failed: ${msg}`, 'Check your OPENAI_API_KEY, network connection, and model name.');
|
|
68
66
|
}
|
|
69
67
|
}
|
|
70
68
|
//# sourceMappingURL=openai-orchestrator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-orchestrator.js","sourceRoot":"","sources":["../../src/orchestrators/openai-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEvE,wDAAwD;AAExD,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC;;;GAGG;AACH,MAAM,eAAe,GAAG,aAAa,CAAC;AAEtC,uDAAuD;AAEvD,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"openai-orchestrator.js","sourceRoot":"","sources":["../../src/orchestrators/openai-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrators/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrators/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAOvE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,4EAA4E;AAC5E,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,yBAAyB,KAC/B,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAIjC;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAM7C;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAUlD;AAMD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,MAAM,GACtB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CASrC;AAOD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,MAAM,EAAE,kBAAkB,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,kBAAkB,GAC7B,oBAAoB,CAmCtB;AAwFD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CA6BjF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TotemConfigError, TotemOrchestratorError } from '@mmnto/totem';
|
|
1
2
|
import { invokeShellOrchestrator } from './shell-orchestrator.js';
|
|
2
3
|
// ─── Package manager detection (#236) ───────────────
|
|
3
4
|
/**
|
|
@@ -57,15 +58,14 @@ const MODEL_NAME_RE = /^[\w./:_-]+$/;
|
|
|
57
58
|
*/
|
|
58
59
|
export function resolveOrchestrator(rawModel, baseProvider, baseInvoke) {
|
|
59
60
|
if (rawModel.startsWith('-') || !MODEL_NAME_RE.test(rawModel)) {
|
|
60
|
-
throw new
|
|
61
|
+
throw new TotemConfigError(`Invalid model name '${rawModel}'. Model names may only contain word characters, dots, slashes, colons, underscores, and hyphens.`, 'Check your orchestrator.model config value and remove any invalid characters.', 'CONFIG_INVALID');
|
|
61
62
|
}
|
|
62
63
|
const parsed = parseModelString(rawModel, baseProvider);
|
|
63
64
|
if (parsed.provider === 'shell' && baseProvider !== 'shell') {
|
|
64
|
-
throw new
|
|
65
|
-
`The shell provider requires a 'command' template in the orchestrator config.`);
|
|
65
|
+
throw new TotemConfigError(`Cannot route to 'shell' provider from a '${baseProvider}' config. The shell provider requires a 'command' template in the orchestrator config.`, "Set provider: 'shell' and add a 'command' template in your orchestrator config.", 'CONFIG_INVALID');
|
|
66
66
|
}
|
|
67
67
|
if (!parsed.model || parsed.model.startsWith('-')) {
|
|
68
|
-
throw new
|
|
68
|
+
throw new TotemConfigError(`Invalid model name in '${rawModel}'. The model portion must not be empty or start with a hyphen.`, 'Provide a valid model name after the provider prefix, e.g. "gemini:gemini-2.5-flash-preview-05-20".', 'CONFIG_INVALID');
|
|
69
69
|
}
|
|
70
70
|
const invoke = parsed.provider === baseProvider
|
|
71
71
|
? baseInvoke
|
|
@@ -137,9 +137,7 @@ function withCliFallback(provider, sdkInvoker) {
|
|
|
137
137
|
throw err;
|
|
138
138
|
if (!(await isCliAvailable(binary))) {
|
|
139
139
|
const msg = err instanceof Error ? err.message : String(err);
|
|
140
|
-
throw new
|
|
141
|
-
`Original error: ${msg}\n` +
|
|
142
|
-
`Install the ${provider} CLI or its SDK to use this provider.`);
|
|
140
|
+
throw new TotemOrchestratorError(`CLI fallback for '${provider}' unavailable: '${binary}' not found on PATH. Original error: ${msg}`, `Install the ${provider} CLI or its SDK to use this provider.`);
|
|
143
141
|
}
|
|
144
142
|
const { log } = await import('../ui.js');
|
|
145
143
|
log.warn(opts.tag, `SDK unavailable, falling back to ${binary} CLI...`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/orchestrators/orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/orchestrators/orchestrator.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAW9D,+EAA+E;AAC/E,eAAO,MAAM,MAAM,SAA+B,CAAC;AAEnD,yCAAyC;AACzC,eAAO,MAAM,aAAa,QAAS,CAAC;AAEpC;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAiBzC;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAMzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAW9D,+EAA+E;AAC/E,eAAO,MAAM,MAAM,SAA+B,CAAC;AAEnD,yCAAyC;AACzC,eAAO,MAAM,aAAa,QAAS,CAAC;AAEpC;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAiBzC;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAMzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUrD;AAGD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AA+BhD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAwB,GACjC,OAAO,CAAC,MAAM,CAAC,CA8BjB;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,MAAM,CAaR;AAID,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAUnE;AAKD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAOvC,wBAAgB,aAAa,CAC3B,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,OAAO,GAClB,MAAM,CAqBR;AAID,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,YAAY,EAAE,EACxB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf;IAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAAC,KAAK,EAAE,YAAY,EAAE,CAAA;CAAE,CAIpD;AAKD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,YAAY,EAAE,EACvB,QAAQ,GAAE,MAAiC,EAC3C,SAAS,CAAC,EAAE,OAAO,GAClB,MAAM,CAqBR;AAID,MAAM,WAAW,sBAAsB;IACrC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAYD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,sBAAsB,CAAC;IAChC,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAyK9B"}
|
package/dist/utils.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as crypto from 'node:crypto';
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
3
|
import * as path from 'node:path';
|
|
4
|
-
import { TotemConfigSchema } from '@mmnto/totem';
|
|
4
|
+
import { TotemConfigError, TotemConfigSchema, TotemOrchestratorError } from '@mmnto/totem';
|
|
5
5
|
import { createOrchestrator, resolveOrchestrator } from './orchestrators/orchestrator.js';
|
|
6
6
|
import { bold, log } from './ui.js';
|
|
7
7
|
// ─── Shared constants ────────────────────────────────────
|
|
@@ -47,7 +47,7 @@ export async function loadConfig(configPath) {
|
|
|
47
47
|
export function resolveConfigPath(cwd) {
|
|
48
48
|
const configPath = path.join(cwd, 'totem.config.ts');
|
|
49
49
|
if (!fs.existsSync(configPath)) {
|
|
50
|
-
throw new
|
|
50
|
+
throw new TotemConfigError('No totem.config.ts found.', "Run 'totem init' to create one.", 'CONFIG_MISSING');
|
|
51
51
|
}
|
|
52
52
|
return configPath;
|
|
53
53
|
}
|
|
@@ -234,15 +234,15 @@ export async function runOrchestrator(opts) {
|
|
|
234
234
|
}
|
|
235
235
|
// Require orchestrator for LLM synthesis
|
|
236
236
|
if (!config.orchestrator) {
|
|
237
|
-
throw new
|
|
238
|
-
|
|
237
|
+
throw new TotemConfigError('No orchestrator configured.', "Add an 'orchestrator' block to totem.config.ts.\n" +
|
|
238
|
+
"Example:\n orchestrator: {\n provider: 'shell',\n command: 'gemini --model {model} -e none < {file}',\n defaultModel: 'gemini-2.5-pro',\n }", 'CONFIG_INVALID');
|
|
239
239
|
}
|
|
240
240
|
const baseProvider = config.orchestrator.provider;
|
|
241
241
|
const baseInvoke = createOrchestrator(config.orchestrator);
|
|
242
242
|
const tagKey = tag.toLowerCase();
|
|
243
243
|
const rawModel = options.model ?? config.orchestrator.overrides?.[tagKey] ?? config.orchestrator.defaultModel;
|
|
244
244
|
if (!rawModel) {
|
|
245
|
-
throw new
|
|
245
|
+
throw new TotemConfigError('No model specified.', "Provide one with --model, set a command-specific model in 'overrides', or set a 'defaultModel' in your orchestrator config.", 'CONFIG_INVALID');
|
|
246
246
|
}
|
|
247
247
|
let resolved = resolveOrchestrator(rawModel, baseProvider, baseInvoke);
|
|
248
248
|
let model = resolved.parsed.model;
|
|
@@ -302,18 +302,15 @@ export async function runOrchestrator(opts) {
|
|
|
302
302
|
catch (fallbackErr) {
|
|
303
303
|
const originalMsg = err.message;
|
|
304
304
|
const fallbackMsg = fallbackErr instanceof Error ? fallbackErr.message : String(fallbackErr);
|
|
305
|
-
throw new
|
|
306
|
-
`Primary error:\n${originalMsg}\n\n
|
|
307
|
-
`Fallback error:\n${fallbackMsg}`);
|
|
305
|
+
throw new TotemOrchestratorError(`Primary model '${rawModel}' failed and fallback model '${rawFallback}' also failed.\n\n` +
|
|
306
|
+
`Primary error:\n${originalMsg}\n\nFallback error:\n${fallbackMsg}`, 'Check API quotas and model availability, or try a different model with --model.');
|
|
308
307
|
}
|
|
309
308
|
}
|
|
310
309
|
else {
|
|
311
|
-
throw new
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
` - Inspect the prompt without calling the API: totem <command> --raw\n` +
|
|
316
|
-
` - Set a fallbackModel in totem.config.ts`);
|
|
310
|
+
throw new TotemOrchestratorError(`Quota exhausted for ${model}.`, 'Quota resets on a rolling daily window. Options:\n' +
|
|
311
|
+
' - Switch to a flash model: totem <command> --model <name>\n' +
|
|
312
|
+
' - Inspect the prompt without calling the API: totem <command> --raw\n' +
|
|
313
|
+
' - Set a fallbackModel in totem.config.ts');
|
|
317
314
|
}
|
|
318
315
|
}
|
|
319
316
|
else {
|