omniharness-cli 0.1.44 → 0.1.45

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 CHANGED
@@ -11,8 +11,15 @@ npm install -g omniharness-cli
11
11
  omniharness # launch the TUI in the current working directory
12
12
  ```
13
13
 
14
- `omniharness update` self-updates to the latest release; `omniharness --version`
15
- prints the installed version. Everything else happens inside the TUI.
14
+ | Command | |
15
+ |---|---|
16
+ | `omniharness` | launch the interactive TUI |
17
+ | `omniharness doctor` | check the gateway connection + auth, safely (key is masked) |
18
+ | `omniharness models` | list the routing catalog — combos, `auto/*`, providers |
19
+ | `omniharness update` | self-update to the latest npm release |
20
+ | `omniharness --version` / `--help` | version / usage |
21
+
22
+ Everything else happens inside the TUI.
16
23
 
17
24
  ## Connect to OmniRoute
18
25
 
package/dist/cli.js CHANGED
@@ -5,6 +5,8 @@ import { createMastraEngine } from './agent/mastraEngine.js';
5
5
  import { TerminalInterface } from './ui/terminalInterface.js';
6
6
  import { ownVersion, runUpdate } from './update.js';
7
7
  import { readActiveCombo } from './config/settings.js';
8
+ import { OmniRouteClient } from './config/omniRoute.js';
9
+ import { doctor, helpText, models } from './doctor.js';
8
10
  const ALT_ENTER = '\x1b[?1049h\x1b[H';
9
11
  const ALT_LEAVE = '\x1b[?1049l';
10
12
  /** Plain-text transcript flushed to the primary buffer on exit — the audit trail. */
@@ -29,6 +31,27 @@ if (command === 'update') {
29
31
  else if (command === '--version' || command === '-v' || command === 'version') {
30
32
  console.log(`omniharness ${ownVersion()}`);
31
33
  }
34
+ else if (command === '--help' || command === '-h' || command === 'help') {
35
+ console.log(helpText(ownVersion()));
36
+ }
37
+ else if (command === 'doctor') {
38
+ void (async () => {
39
+ const report = await doctor(new OmniRouteClient());
40
+ console.log(report.lines.join('\n'));
41
+ process.exitCode = report.ok ? 0 : 1;
42
+ })();
43
+ }
44
+ else if (command === 'models') {
45
+ void (async () => {
46
+ try {
47
+ console.log((await models(new OmniRouteClient())).join('\n'));
48
+ }
49
+ catch (error) {
50
+ console.error(`omniharness models: ${error instanceof Error ? error.message : String(error)}`);
51
+ process.exitCode = 1;
52
+ }
53
+ })();
54
+ }
32
55
  else {
33
56
  void (async () => {
34
57
  const saved = await readActiveCombo();
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":";;AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,MAAM,SAAS,GAAG,mBAAmB,CAAC;AACtC,MAAM,SAAS,GAAG,aAAa,CAAC;AAEhC,qFAAqF;AACrF,SAAS,cAAc,CAAC,QAAmC;IACzD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAClC,MAAM,KAAK,GAA2C;QACpD,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;QACvE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO;KACjD,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;QACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,WAAW,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEhC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;IACzB,OAAO,CAAC,QAAQ,GAAG,SAAS,EAAE,CAAC;AACjC,CAAC;KAAM,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,eAAe,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;KAAM,CAAC;IACN,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACxF,4EAA4E;QAC5E,8EAA8E;QAC9E,2DAA2D;QAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;QAC1C,IAAI,GAAG;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzC,6EAA6E;QAC7E,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,KAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM,GAAI,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC;YACH,MAAM,aAAa,EAAE,CAAC;QACxB,CAAC;gBAAS,CAAC;YACT,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAChC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * `omniharness doctor` / `models` / `help` — the non-TUI subcommands.
3
+ *
4
+ * Pure and injectable: `doctor` and `models` take a structural client plus an
5
+ * env map so they can be exercised without a live gateway.
6
+ */
7
+ export interface DoctorClient {
8
+ readonly endpoint: string;
9
+ listModels(): Promise<readonly string[]>;
10
+ listCombos(): Promise<readonly {
11
+ name: string;
12
+ strategy?: string;
13
+ }[]>;
14
+ }
15
+ /** Never print a key: `OMNIROUTE_API_KEY` becomes `key_<last4>` or `not set`. */
16
+ export declare function maskKey(value: string | undefined): string;
17
+ export interface DoctorReport {
18
+ ok: boolean;
19
+ lines: readonly string[];
20
+ }
21
+ /**
22
+ * Check the gateway connection without mutating anything: endpoint, auth
23
+ * status, and whether the model/combo catalog is reachable.
24
+ */
25
+ export declare function doctor(client: DoctorClient, env?: Record<string, string | undefined>): Promise<DoctorReport>;
26
+ /** `omniharness models` — the routing catalog, combos first. */
27
+ export declare function models(client: DoctorClient): Promise<readonly string[]>;
28
+ export declare function helpText(version: string): string;
package/dist/doctor.js ADDED
@@ -0,0 +1,92 @@
1
+ /**
2
+ * `omniharness doctor` / `models` / `help` — the non-TUI subcommands.
3
+ *
4
+ * Pure and injectable: `doctor` and `models` take a structural client plus an
5
+ * env map so they can be exercised without a live gateway.
6
+ */
7
+ /** Never print a key: `OMNIROUTE_API_KEY` becomes `key_<last4>` or `not set`. */
8
+ export function maskKey(value) {
9
+ const key = (value ?? '').trim();
10
+ if (key === '')
11
+ return 'not set';
12
+ return key.length <= 4 ? 'key_****' : `key_${key.slice(-4)}`;
13
+ }
14
+ /**
15
+ * Check the gateway connection without mutating anything: endpoint, auth
16
+ * status, and whether the model/combo catalog is reachable.
17
+ */
18
+ export async function doctor(client, env = process.env) {
19
+ const lines = [];
20
+ lines.push(`endpoint ${client.endpoint}`);
21
+ lines.push(`api key ${maskKey(env.OMNIROUTE_API_KEY)}`);
22
+ lines.push(`mgmt token ${maskKey(env.OMNIROUTE_MGMT_TOKEN)}${(env.OMNIROUTE_MGMT_TOKEN ?? '').trim() !== '' ? ' — MCP tools enabled' : ''}`);
23
+ let ok = true;
24
+ try {
25
+ const models = await client.listModels();
26
+ const autos = models.filter((id) => id.startsWith('auto/')).length;
27
+ lines.push(`catalog reachable · ${models.length} models (${autos} auto/*)`);
28
+ }
29
+ catch (reason) {
30
+ ok = false;
31
+ lines.push(`catalog UNREACHABLE · ${reason instanceof Error ? reason.message : String(reason)}`);
32
+ }
33
+ try {
34
+ const combos = await client.listCombos();
35
+ lines.push(`combos ${combos.length} configured${combos.length > 0 ? ` · ${combos.slice(0, 4).map((c) => c.name).join(', ')}${combos.length > 4 ? ' …' : ''}` : ''}`);
36
+ }
37
+ catch (reason) {
38
+ lines.push(`combos unavailable · ${reason instanceof Error ? reason.message : String(reason)}`);
39
+ }
40
+ lines.push('');
41
+ lines.push(ok ? 'ok — the gateway is reachable.' : 'FAILED — could not reach the gateway. Check OMNIROUTE_URL and that OmniRoute is running.');
42
+ return { ok, lines };
43
+ }
44
+ /** `omniharness models` — the routing catalog, combos first. */
45
+ export async function models(client) {
46
+ const out = [];
47
+ try {
48
+ const combos = await client.listCombos();
49
+ if (combos.length > 0) {
50
+ out.push('your combos');
51
+ for (const combo of combos)
52
+ out.push(` ${combo.name}${combo.strategy ? ` · ${combo.strategy}` : ''}`);
53
+ }
54
+ }
55
+ catch { /* combos are best-effort */ }
56
+ const ids = await client.listModels();
57
+ const autos = [...new Set(ids.filter((id) => id.startsWith('auto/')))].sort();
58
+ const rest = [...new Set(ids.filter((id) => !id.startsWith('auto/')))].sort();
59
+ if (autos.length > 0) {
60
+ out.push('auto engine');
61
+ for (const id of autos)
62
+ out.push(` ${id}`);
63
+ }
64
+ if (rest.length > 0) {
65
+ out.push(`providers (${rest.length})`);
66
+ for (const id of rest)
67
+ out.push(` ${id}`);
68
+ }
69
+ return out;
70
+ }
71
+ export function helpText(version) {
72
+ return [
73
+ `omniharness ${version} — the agent harness built for OmniRoute`,
74
+ '',
75
+ 'USAGE',
76
+ ' omniharness launch the interactive TUI in the current directory',
77
+ ' omniharness doctor check the gateway connection and auth, safely',
78
+ ' omniharness models list the routing catalog (combos + auto/* + providers)',
79
+ ' omniharness update self-update to the latest npm release',
80
+ ' omniharness --version print the installed version',
81
+ ' omniharness --help show this message',
82
+ '',
83
+ 'ENVIRONMENT',
84
+ ' OMNIROUTE_URL gateway endpoint (default http://localhost:20128)',
85
+ ' OMNIROUTE_API_KEY Authorization: Bearer <key> — held in memory only',
86
+ ' OMNIROUTE_MGMT_TOKEN management token (manage scope) — enables MCP tool discovery',
87
+ '',
88
+ 'In the TUI: Ctrl+E cycles mode (plan · build · research · crazy),',
89
+ 'Shift+Tab cycles permissions (manual · accept edits · bypass), /help for the rest.',
90
+ ].join('\n');
91
+ }
92
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omniharness-cli",
3
- "version": "0.1.44",
3
+ "version": "0.1.45",
4
4
  "description": "OmniHarness — local-first agent orchestration harness for OmniRoute.",
5
5
  "license": "MIT",
6
6
  "type": "module",