agenticros 0.3.0 → 0.3.3

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 (45) hide show
  1. package/README.md +15 -5
  2. package/dist/__tests__/codex-config.test.d.ts +2 -0
  3. package/dist/__tests__/codex-config.test.d.ts.map +1 -0
  4. package/dist/__tests__/codex-config.test.js +76 -0
  5. package/dist/__tests__/codex-config.test.js.map +1 -0
  6. package/dist/__tests__/hermes-config.test.d.ts +2 -0
  7. package/dist/__tests__/hermes-config.test.d.ts.map +1 -0
  8. package/dist/__tests__/hermes-config.test.js +88 -0
  9. package/dist/__tests__/hermes-config.test.js.map +1 -0
  10. package/dist/commands/codex.d.ts +18 -0
  11. package/dist/commands/codex.d.ts.map +1 -0
  12. package/dist/commands/codex.js +99 -0
  13. package/dist/commands/codex.js.map +1 -0
  14. package/dist/commands/doctor.d.ts.map +1 -1
  15. package/dist/commands/doctor.js +38 -1
  16. package/dist/commands/doctor.js.map +1 -1
  17. package/dist/commands/hermes.d.ts +14 -0
  18. package/dist/commands/hermes.d.ts.map +1 -0
  19. package/dist/commands/hermes.js +84 -0
  20. package/dist/commands/hermes.js.map +1 -0
  21. package/dist/commands/init.d.ts +3 -1
  22. package/dist/commands/init.d.ts.map +1 -1
  23. package/dist/commands/init.js +46 -1
  24. package/dist/commands/init.js.map +1 -1
  25. package/dist/commands/skills.js +2 -2
  26. package/dist/commands/skills.js.map +1 -1
  27. package/dist/index.js +39 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/menu.js +1 -1
  30. package/dist/menu.js.map +1 -1
  31. package/dist/util/codex-config.d.ts +56 -0
  32. package/dist/util/codex-config.d.ts.map +1 -0
  33. package/dist/util/codex-config.js +326 -0
  34. package/dist/util/codex-config.js.map +1 -0
  35. package/dist/util/hermes-config.d.ts +51 -0
  36. package/dist/util/hermes-config.d.ts.map +1 -0
  37. package/dist/util/hermes-config.js +277 -0
  38. package/dist/util/hermes-config.js.map +1 -0
  39. package/package.json +4 -1
  40. package/runtime/BUNDLE.json +1 -1
  41. package/runtime/README.md +104 -14
  42. package/runtime/docs/cli.md +50 -3
  43. package/runtime/packages/agenticros-claude-code/README.md +53 -8
  44. package/runtime/packages/agenticros-claude-code/package.json +11 -1
  45. package/runtime/packages/core/README.md +12 -2
package/README.md CHANGED
@@ -3,13 +3,15 @@
3
3
  > agentic AI for ROS-powered robots
4
4
 
5
5
  `agenticros` is the unified command-line tool for AgenticROS — bring up a real
6
- robot or a simulated one, drive it from Claude Code / OpenClaw, and keep your
7
- workspace healthy from a single binary.
6
+ robot or a simulated one, drive it from Claude Code, OpenAI Codex, Hermes Agent, or OpenClaw,
7
+ and keep your workspace healthy from a single binary.
8
8
 
9
9
  ```bash
10
10
  # Brand new machine: one command end-to-end
11
- npx agenticros init # workspace + plugin + API key + doctor
11
+ npx agenticros init # workspace + plugin + Codex/Hermes MCP + API key + doctor
12
12
  agenticros # interactive menu
13
+ agenticros codex setup # register AgenticROS MCP for OpenAI Codex CLI
14
+ agenticros hermes setup # register AgenticROS MCP for Hermes Agent
13
15
  agenticros up real # bring up the real-robot stack
14
16
  agenticros up sim-amr # bring up a simulated 2-wheel AMR
15
17
  agenticros up sim-arm # bring up a simulated 6-DOF arm
@@ -53,13 +55,17 @@ Three ways, listed easiest first:
53
55
  | `agenticros up sim-arm` | Bring up the simulated 6-DOF arm (UR5e-shaped, per-joint position control). |
54
56
  | `agenticros down` | Stop everything we started. |
55
57
  | `agenticros doctor` | Coloured health-check table; `--json` for CI. |
58
+ | `agenticros codex setup` | Register AgenticROS MCP in `~/.codex/config.toml` (or `--project`). |
59
+ | `agenticros codex doctor` | Validate Codex MCP config paths and namespace policy. |
60
+ | `agenticros hermes setup` | Register AgenticROS MCP in `~/.hermes/config.yaml`. |
61
+ | `agenticros hermes doctor` | Validate Hermes MCP config paths and namespace policy. |
56
62
  | `agenticros status` | Snapshot of running components + last mode. |
57
63
  | `agenticros logs [target]` | Tail `camera` / `mcp` / `sim` / `rosbridge` / `gateway`. |
58
64
  | `agenticros config [show\|set\|edit\|reset]` | Read or edit `~/.agenticros/config.json`. |
59
65
  | `agenticros create-skill <slug>` | Scaffold a new skill package in cwd. |
60
66
  | `agenticros publish` | Publish skill in cwd to skills.agenticros.com. |
61
67
  | `agenticros skills dev` | Local skill dev harness (`npm run dev` in skill repos). |
62
- | `agenticros skills install <owner/skill>` | Install from the marketplace. |
68
+ | `agenticros skills install <owner/skill>` | Install from the marketplace (e.g. `chrismatthieu/followme`). |
63
69
  | `agenticros --help` | Full help text. |
64
70
 
65
71
  ## How `init` works
@@ -73,7 +79,9 @@ walks through:
73
79
  4. OpenClaw plugin install (`scripts/setup_gateway_plugin.sh`)
74
80
  5. Robot config (namespace, transport mode, sample `~/.agenticros/config.json`)
75
81
  6. OpenAI API key (paste once → `scripts/configure_agenticros.sh`)
76
- 7. Final `agenticros doctor` summary
82
+ 7. Codex MCP config (optional — `~/.codex/config.toml` and project `.codex/config.toml`)
83
+ 8. Hermes MCP config (optional — `~/.hermes/config.yaml`)
84
+ 9. Final `agenticros doctor` summary
77
85
 
78
86
  Every step is **idempotent**: it checks doctor first and skips the work if
79
87
  nothing is missing. Use `agenticros init --force` to redo everything.
@@ -82,6 +90,8 @@ nothing is missing. Use `agenticros init --force` to redo everything.
82
90
 
83
91
  - `~/.agenticros/config.json` — AgenticROS runtime config (transport mode,
84
92
  robot namespace, safety limits, teleop defaults). Edited via `agenticros config`.
93
+ - `~/.codex/config.toml` — OpenAI Codex CLI MCP servers (written by `agenticros codex setup`).
94
+ - `~/.hermes/config.yaml` — Hermes Agent MCP servers (written by `agenticros hermes setup`).
85
95
  - `~/.agenticros/cli-state.json` — CLI's own state (last mode, last namespace,
86
96
  for the menu's "(yesterday)" hint).
87
97
  - `~/agenticros/` — the install dir when invoked via `npx`. Contains a copy of
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=codex-config.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-config.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/codex-config.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,76 @@
1
+ import { mkdtempSync, writeFileSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { describe, it } from "node:test";
5
+ import assert from "node:assert/strict";
6
+ import { buildAgenticrosMcpTomlBlock, readCodexAgenticrosConfig, upsertAgenticrosBlock, validateCodexAgenticrosConfig, } from "../util/codex-config.js";
7
+ describe("codex-config", () => {
8
+ it("buildAgenticrosMcpTomlBlock uses absolute path and empty namespace", () => {
9
+ const block = buildAgenticrosMcpTomlBlock("/opt/agenticros/dist/index.js");
10
+ assert.match(block, /node \/opt\/agenticros\/dist\/index.js/);
11
+ assert.match(block, /AGENTICROS_ROBOT_NAMESPACE = ""/);
12
+ assert.match(block, /startup_timeout_sec = 30/);
13
+ });
14
+ it("upsertAgenticrosBlock replaces existing agenticros section", () => {
15
+ const existing = `[mcp_servers.other]
16
+ command = "echo"
17
+
18
+ [mcp_servers.agenticros]
19
+ command = "node"
20
+ args = ["relative/path.js"]
21
+
22
+ [mcp_servers.agenticros.env]
23
+ AGENTICROS_ROBOT_NAMESPACE = "robot123"
24
+ `;
25
+ const block = buildAgenticrosMcpTomlBlock("/abs/index.js");
26
+ const merged = upsertAgenticrosBlock(existing, block);
27
+ assert.match(merged, /\[mcp_servers.other\]/);
28
+ assert.match(merged, /\/abs\/index.js/);
29
+ assert.doesNotMatch(merged, /relative\/path\.js/);
30
+ assert.match(merged, /AGENTICROS_ROBOT_NAMESPACE = ""/);
31
+ });
32
+ it("readCodexAgenticrosConfig parses sh -c args", () => {
33
+ const dir = mkdtempSync(join(tmpdir(), "agenticros-codex-"));
34
+ const path = join(dir, "config.toml");
35
+ writeFileSync(path, `[mcp_servers.agenticros]
36
+ command = "sh"
37
+ args = ["-c", "node /tmp/index.js 2>>/tmp/agenticros-mcp.log"]
38
+ enabled = true
39
+
40
+ [mcp_servers.agenticros.env]
41
+ AGENTICROS_ROBOT_NAMESPACE = ""
42
+ `);
43
+ const cfg = readCodexAgenticrosConfig(path);
44
+ assert.equal(cfg.command, "sh");
45
+ assert.deepEqual(cfg.args, ["-c", "node /tmp/index.js 2>>/tmp/agenticros-mcp.log"]);
46
+ assert.equal(cfg.env?.["AGENTICROS_ROBOT_NAMESPACE"], "");
47
+ assert.equal(cfg.enabled, true);
48
+ });
49
+ it("validateCodexAgenticrosConfig flags relative paths and hardcoded namespace", () => {
50
+ const cfg = {
51
+ configPath: "/tmp/config.toml",
52
+ exists: true,
53
+ command: "sh",
54
+ args: ["-c", "node packages/agenticros-claude-code/dist/index.js"],
55
+ env: { AGENTICROS_ROBOT_NAMESPACE: "robotabc" },
56
+ };
57
+ const v = validateCodexAgenticrosConfig(cfg, "/abs/index.js");
58
+ assert.equal(v.ok, false);
59
+ assert.ok(v.issues.some((i) => i.message.includes("relative")));
60
+ assert.ok(v.issues.some((i) => i.message.includes("hardcoded")));
61
+ });
62
+ it("validateCodexAgenticrosConfig passes for correct absolute config", () => {
63
+ const cfg = {
64
+ configPath: "/tmp/config.toml",
65
+ exists: true,
66
+ command: "sh",
67
+ args: ["-c", "node /abs/index.js 2>>/tmp/agenticros-mcp.log"],
68
+ env: { AGENTICROS_ROBOT_NAMESPACE: "" },
69
+ enabled: true,
70
+ };
71
+ const v = validateCodexAgenticrosConfig(cfg, "/abs/index.js");
72
+ assert.equal(v.ok, true);
73
+ assert.equal(v.issues.length, 0);
74
+ });
75
+ });
76
+ //# sourceMappingURL=codex-config.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-config.test.js","sourceRoot":"","sources":["../../src/__tests__/codex-config.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=hermes-config.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes-config.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/hermes-config.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,88 @@
1
+ import { mkdtempSync, writeFileSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { describe, it } from "node:test";
5
+ import assert from "node:assert/strict";
6
+ import { buildAgenticrosMcpYamlBlock, readHermesAgenticrosConfig, upsertAgenticrosBlock, validateHermesAgenticrosConfig, } from "../util/hermes-config.js";
7
+ describe("hermes-config", () => {
8
+ it("buildAgenticrosMcpYamlBlock uses absolute path and empty namespace", () => {
9
+ const block = buildAgenticrosMcpYamlBlock("/opt/agenticros/dist/index.js");
10
+ assert.match(block, /args: \["\/opt\/agenticros\/dist\/index.js"\]/);
11
+ assert.match(block, /AGENTICROS_ROBOT_NAMESPACE: ""/);
12
+ assert.match(block, /connect_timeout: 60/);
13
+ assert.match(block, /timeout: 120/);
14
+ });
15
+ it("upsertAgenticrosBlock replaces existing agenticros section", () => {
16
+ const existing = `llm:
17
+ provider: openrouter
18
+
19
+ mcp_servers:
20
+ other:
21
+ command: "echo"
22
+ agenticros:
23
+ command: "node"
24
+ args: ["relative/path.js"]
25
+ env:
26
+ AGENTICROS_ROBOT_NAMESPACE: "robot123"
27
+ `;
28
+ const block = buildAgenticrosMcpYamlBlock("/abs/index.js");
29
+ const merged = upsertAgenticrosBlock(existing, block);
30
+ assert.match(merged, /llm:/);
31
+ assert.match(merged, /other:/);
32
+ assert.match(merged, /\/abs\/index.js/);
33
+ assert.doesNotMatch(merged, /relative\/path\.js/);
34
+ assert.match(merged, /AGENTICROS_ROBOT_NAMESPACE: ""/);
35
+ });
36
+ it("upsertAgenticrosBlock appends mcp_servers when missing", () => {
37
+ const existing = "llm:\n provider: ollama\n";
38
+ const block = buildAgenticrosMcpYamlBlock("/abs/index.js");
39
+ const merged = upsertAgenticrosBlock(existing, block);
40
+ assert.match(merged, /mcp_servers:/);
41
+ assert.match(merged, /\/abs\/index.js/);
42
+ });
43
+ it("readHermesAgenticrosConfig parses stdio args and env", () => {
44
+ const dir = mkdtempSync(join(tmpdir(), "agenticros-hermes-"));
45
+ const path = join(dir, "config.yaml");
46
+ writeFileSync(path, `mcp_servers:
47
+ agenticros:
48
+ command: "node"
49
+ args: ["/tmp/index.js"]
50
+ env:
51
+ AGENTICROS_ROBOT_NAMESPACE: ""
52
+ connect_timeout: 60
53
+ timeout: 120
54
+ `);
55
+ const cfg = readHermesAgenticrosConfig(path);
56
+ assert.equal(cfg.command, "node");
57
+ assert.deepEqual(cfg.args, ["/tmp/index.js"]);
58
+ assert.equal(cfg.env?.["AGENTICROS_ROBOT_NAMESPACE"], "");
59
+ assert.equal(cfg.connectTimeout, 60);
60
+ assert.equal(cfg.timeout, 120);
61
+ });
62
+ it("validateHermesAgenticrosConfig flags relative paths and hardcoded namespace", () => {
63
+ const cfg = {
64
+ configPath: "/tmp/config.yaml",
65
+ exists: true,
66
+ command: "node",
67
+ args: ["packages/agenticros-claude-code/dist/index.js"],
68
+ env: { AGENTICROS_ROBOT_NAMESPACE: "robotabc" },
69
+ };
70
+ const v = validateHermesAgenticrosConfig(cfg, "/abs/index.js");
71
+ assert.equal(v.ok, false);
72
+ assert.ok(v.issues.some((i) => i.message.includes("relative")));
73
+ assert.ok(v.issues.some((i) => i.message.includes("hardcoded")));
74
+ });
75
+ it("validateHermesAgenticrosConfig passes for correct absolute config", () => {
76
+ const cfg = {
77
+ configPath: "/tmp/config.yaml",
78
+ exists: true,
79
+ command: "node",
80
+ args: ["/abs/index.js"],
81
+ env: { AGENTICROS_ROBOT_NAMESPACE: "" },
82
+ };
83
+ const v = validateHermesAgenticrosConfig(cfg, "/abs/index.js");
84
+ assert.equal(v.ok, true);
85
+ assert.equal(v.issues.length, 0);
86
+ });
87
+ });
88
+ //# sourceMappingURL=hermes-config.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes-config.test.js","sourceRoot":"","sources":["../../src/__tests__/hermes-config.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * `agenticros codex` — configure OpenAI Codex CLI to use the AgenticROS MCP server.
3
+ */
4
+ import { type CodexConfigScope } from "../util/codex-config.js";
5
+ export interface CodexSetupOptions {
6
+ scope?: CodexConfigScope;
7
+ /** Skip interactive confirmation when codex CLI is missing. */
8
+ yes?: boolean;
9
+ /** Suppress the section header (e.g. when called from `agenticros init`). */
10
+ quiet?: boolean;
11
+ }
12
+ export interface CodexDoctorOptions {
13
+ json?: boolean;
14
+ }
15
+ export declare function codexOnPath(): Promise<boolean>;
16
+ export declare function codexSetupCommand(opts?: CodexSetupOptions): Promise<void>;
17
+ export declare function codexDoctorCommand(opts?: CodexDoctorOptions): Promise<number>;
18
+ //# sourceMappingURL=codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/commands/codex.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EACL,KAAK,gBAAgB,EAOtB,MAAM,yBAAyB,CAAC;AAKjC,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAOpD;AAED,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCnF;AAED,wBAAsB,kBAAkB,CAAC,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuDvF"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * `agenticros codex` — configure OpenAI Codex CLI to use the AgenticROS MCP server.
3
+ */
4
+ import { execa } from "execa";
5
+ import { globalCodexConfigPath, projectCodexConfigPath, readCodexAgenticrosConfig, resolveCodexConfigPath, validateCodexAgenticrosConfig, writeCodexAgenticrosConfig, } from "../util/codex-config.js";
6
+ import { findMcpEntry } from "../util/mcp-discovery.js";
7
+ import { getCliPaths } from "../util/paths.js";
8
+ import { colors, header, info, ok, warn, err } from "../util/logger.js";
9
+ export async function codexOnPath() {
10
+ try {
11
+ const { exitCode } = await execa("codex", ["--version"], { reject: false });
12
+ return exitCode === 0;
13
+ }
14
+ catch {
15
+ return false;
16
+ }
17
+ }
18
+ export async function codexSetupCommand(opts = {}) {
19
+ if (!opts.quiet) {
20
+ header("Configure Codex MCP");
21
+ }
22
+ const mcpEntry = findMcpEntry();
23
+ if (!mcpEntry) {
24
+ err("AgenticROS MCP server is not built.");
25
+ info("Run `pnpm --filter @agenticros/claude-code build` or `agenticros init` first.");
26
+ process.exit(1);
27
+ }
28
+ const scope = opts.scope ?? "global";
29
+ const configPath = resolveCodexConfigPath(scope);
30
+ writeCodexAgenticrosConfig(configPath, mcpEntry, { namespace: "" });
31
+ ok(`Wrote Codex MCP config (${scope}): ${configPath}`);
32
+ info(`MCP server: ${mcpEntry}`);
33
+ const hasCodex = await codexOnPath();
34
+ if (hasCodex) {
35
+ info("Codex CLI detected. Verify in a Codex session with `/mcp` — you should see `agenticros` connected.");
36
+ }
37
+ else {
38
+ warn("Codex CLI not found on PATH.");
39
+ info("Install from https://developers.openai.com/codex/ then run `/mcp` in a Codex session.");
40
+ }
41
+ if (scope === "global") {
42
+ dimHint("Tip: for a repo-scoped config instead, run `agenticros codex setup --project` from the project root.");
43
+ }
44
+ }
45
+ export async function codexDoctorCommand(opts = {}) {
46
+ const paths = getCliPaths();
47
+ const mcpEntry = findMcpEntry();
48
+ const candidates = [
49
+ { label: "global", path: globalCodexConfigPath() },
50
+ ];
51
+ if (paths.repoRoot) {
52
+ candidates.push({ label: "project", path: projectCodexConfigPath(paths.repoRoot) });
53
+ }
54
+ const results = candidates.map((c) => {
55
+ const cfg = readCodexAgenticrosConfig(c.path);
56
+ const validation = validateCodexAgenticrosConfig(cfg, mcpEntry);
57
+ return { ...c, cfg, validation };
58
+ });
59
+ if (opts.json) {
60
+ process.stdout.write(`${JSON.stringify({ results, mcpEntry }, null, 2)}\n`);
61
+ const anyRed = results.some((r) => r.validation.issues.some((i) => i.severity === "red"));
62
+ return anyRed ? 1 : 0;
63
+ }
64
+ header("Codex MCP doctor");
65
+ if (!mcpEntry) {
66
+ err("MCP server not built.");
67
+ return 1;
68
+ }
69
+ info(`Expected MCP entry: ${mcpEntry}\n`);
70
+ let exitCode = 0;
71
+ for (const r of results) {
72
+ process.stdout.write(`${colors.bold(r.label)} (${r.path})\n`);
73
+ if (!r.cfg.exists) {
74
+ process.stdout.write(` ${colors.yellow("○")} Config file not present\n`);
75
+ process.stdout.write(` ${colors.dim("→ Run `agenticros codex setup" + (r.label === "project" ? " --project" : "") + "`")}\n`);
76
+ if (r.label === "global")
77
+ exitCode = 1;
78
+ continue;
79
+ }
80
+ if (r.validation.ok) {
81
+ process.stdout.write(` ${colors.green("✓")} agenticros MCP configured correctly\n`);
82
+ continue;
83
+ }
84
+ for (const issue of r.validation.issues) {
85
+ const icon = issue.severity === "red" ? colors.red("✗") : colors.yellow("○");
86
+ process.stdout.write(` ${icon} ${issue.message}\n`);
87
+ if (issue.hint) {
88
+ process.stdout.write(` ${colors.dim("→ " + issue.hint)}\n`);
89
+ }
90
+ if (issue.severity === "red")
91
+ exitCode = 1;
92
+ }
93
+ }
94
+ return exitCode;
95
+ }
96
+ function dimHint(message) {
97
+ process.stdout.write(`${colors.dim(message)}\n`);
98
+ }
99
+ //# sourceMappingURL=codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/commands/codex.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkBH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BxE;AAED,sFAAsF;AACtF,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAGrD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAwX7D"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAsBH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BxE;AAED,sFAAsF;AACtF,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAGrD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CA6Z7D"}
@@ -16,6 +16,10 @@ import { colors, header, ok, warn, err, info } from "../util/logger.js";
16
16
  import { activeConfigPath, profilesDir, readActiveMode } from "../util/profiles.js";
17
17
  import { ensureToolsAlsoAllow, readAgenticrosContractTools, readOpenclawConfig, } from "../util/openclaw-config.js";
18
18
  import { listSkills } from "../util/skills.js";
19
+ import { buildCodexDoctorChecks } from "../util/codex-config.js";
20
+ import { buildHermesDoctorChecks } from "../util/hermes-config.js";
21
+ import { findMcpEntry } from "../util/mcp-discovery.js";
22
+ import { hermesOnPath } from "./hermes.js";
19
23
  export async function doctorCommand(opts) {
20
24
  const report = await runDoctorChecks();
21
25
  if (opts.json) {
@@ -200,10 +204,43 @@ export async function runDoctorChecks() {
200
204
  : `AGENTICROS_ROBOT_NAMESPACE env overrides config (set to '${envNs}')`,
201
205
  severity: shadowsSim ? "red" : "yellow",
202
206
  hint: shadowsSim
203
- ? "Unset that env var (or set it to \"\" in .mcp.json / claude_desktop_config.json) so the active mode profile drives the namespace."
207
+ ? "Unset that env var (or set it to \"\" in .mcp.json / ~/.codex/config.toml / claude_desktop_config.json) so the active mode profile drives the namespace."
204
208
  : "Fine for real-robot mode if the value matches your robot's namespace.",
205
209
  });
206
210
  }
211
+ // Codex CLI MCP config.
212
+ const mcpEntry = findMcpEntry();
213
+ checks.push(...buildCodexDoctorChecks(mcpEntry, paths.repoRoot));
214
+ try {
215
+ const { exitCode } = await execa("codex", ["--version"], { reject: false });
216
+ checks.push({
217
+ id: "codex-cli",
218
+ label: exitCode === 0 ? "Codex CLI installed" : "Codex CLI not detected",
219
+ severity: exitCode === 0 ? "green" : "yellow",
220
+ hint: exitCode === 0
221
+ ? undefined
222
+ : "Install from https://developers.openai.com/codex/ then run `agenticros codex setup`.",
223
+ });
224
+ }
225
+ catch {
226
+ checks.push({
227
+ id: "codex-cli",
228
+ label: "Codex CLI not detected",
229
+ severity: "yellow",
230
+ hint: "Install from https://developers.openai.com/codex/ then run `agenticros codex setup`.",
231
+ });
232
+ }
233
+ // Hermes Agent MCP config.
234
+ checks.push(...buildHermesDoctorChecks(mcpEntry));
235
+ const hasHermes = await hermesOnPath();
236
+ checks.push({
237
+ id: "hermes-cli",
238
+ label: hasHermes ? "Hermes CLI installed" : "Hermes CLI not detected",
239
+ severity: hasHermes ? "green" : "yellow",
240
+ hint: hasHermes
241
+ ? undefined
242
+ : "Install from https://github.com/NousResearch/hermes-agent then run `agenticros hermes setup`.",
243
+ });
207
244
  // OpenAI key.
208
245
  const home = process.env["HOME"] ?? "";
209
246
  const authFile = join(home, ".openclaw", "agents", "main", "agent", "auth-profiles.json");
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `agenticros hermes` — configure Hermes Agent to use the AgenticROS MCP server.
3
+ */
4
+ export interface HermesSetupOptions {
5
+ /** Suppress the section header (e.g. when called from `agenticros init`). */
6
+ quiet?: boolean;
7
+ }
8
+ export interface HermesDoctorOptions {
9
+ json?: boolean;
10
+ }
11
+ export declare function hermesOnPath(): Promise<boolean>;
12
+ export declare function hermesSetupCommand(opts?: HermesSetupOptions): Promise<void>;
13
+ export declare function hermesDoctorCommand(opts?: HermesDoctorOptions): Promise<number>;
14
+ //# sourceMappingURL=hermes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes.d.ts","sourceRoot":"","sources":["../../src/commands/hermes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAYrD;AAED,wBAAsB,kBAAkB,CAAC,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BrF;AAED,wBAAsB,mBAAmB,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4CzF"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * `agenticros hermes` — configure Hermes Agent to use the AgenticROS MCP server.
3
+ */
4
+ import { execa } from "execa";
5
+ import { globalHermesConfigPath, readHermesAgenticrosConfig, validateHermesAgenticrosConfig, writeHermesAgenticrosConfig, } from "../util/hermes-config.js";
6
+ import { findMcpEntry } from "../util/mcp-discovery.js";
7
+ import { colors, header, info, ok, warn, err } from "../util/logger.js";
8
+ export async function hermesOnPath() {
9
+ try {
10
+ const { exitCode } = await execa("hermes", ["--version"], { reject: false });
11
+ return exitCode === 0;
12
+ }
13
+ catch {
14
+ try {
15
+ const { exitCode } = await execa("hermes", ["--help"], { reject: false });
16
+ return exitCode === 0;
17
+ }
18
+ catch {
19
+ return false;
20
+ }
21
+ }
22
+ }
23
+ export async function hermesSetupCommand(opts = {}) {
24
+ if (!opts.quiet) {
25
+ header("Configure Hermes MCP");
26
+ }
27
+ const mcpEntry = findMcpEntry();
28
+ if (!mcpEntry) {
29
+ err("AgenticROS MCP server is not built.");
30
+ info("Run `pnpm --filter @agenticros/claude-code build` or `agenticros init` first.");
31
+ process.exit(1);
32
+ }
33
+ const configPath = globalHermesConfigPath();
34
+ writeHermesAgenticrosConfig(configPath, mcpEntry, { namespace: "" });
35
+ ok(`Wrote Hermes MCP config: ${configPath}`);
36
+ info(`MCP server: ${mcpEntry}`);
37
+ const hasHermes = await hermesOnPath();
38
+ if (hasHermes) {
39
+ info("Hermes CLI detected. Reload MCP with `/reload-mcp` in Hermes, or run `hermes mcp test agenticros`.");
40
+ }
41
+ else {
42
+ warn("Hermes CLI not found on PATH.");
43
+ info("Install from https://github.com/NousResearch/hermes-agent then run `/reload-mcp`.");
44
+ }
45
+ }
46
+ export async function hermesDoctorCommand(opts = {}) {
47
+ const mcpEntry = findMcpEntry();
48
+ const configPath = globalHermesConfigPath();
49
+ const cfg = readHermesAgenticrosConfig(configPath);
50
+ const validation = validateHermesAgenticrosConfig(cfg, mcpEntry);
51
+ if (opts.json) {
52
+ process.stdout.write(`${JSON.stringify({ configPath, cfg, validation, mcpEntry }, null, 2)}\n`);
53
+ const anyRed = validation.issues.some((i) => i.severity === "red");
54
+ return anyRed || !cfg.exists ? 1 : 0;
55
+ }
56
+ header("Hermes MCP doctor");
57
+ if (!mcpEntry) {
58
+ err("MCP server not built.");
59
+ return 1;
60
+ }
61
+ info(`Expected MCP entry: ${mcpEntry}\n`);
62
+ process.stdout.write(`${colors.bold("global")} (${configPath})\n`);
63
+ if (!cfg.exists) {
64
+ process.stdout.write(` ${colors.yellow("○")} Config file not present\n`);
65
+ process.stdout.write(` ${colors.dim("→ Run `agenticros hermes setup`")}\n`);
66
+ return 1;
67
+ }
68
+ if (validation.ok) {
69
+ process.stdout.write(` ${colors.green("✓")} agenticros MCP configured correctly\n`);
70
+ return 0;
71
+ }
72
+ let exitCode = 0;
73
+ for (const issue of validation.issues) {
74
+ const icon = issue.severity === "red" ? colors.red("✗") : colors.yellow("○");
75
+ process.stdout.write(` ${icon} ${issue.message}\n`);
76
+ if (issue.hint) {
77
+ process.stdout.write(` ${colors.dim("→ " + issue.hint)}\n`);
78
+ }
79
+ if (issue.severity === "red")
80
+ exitCode = 1;
81
+ }
82
+ return exitCode;
83
+ }
84
+ //# sourceMappingURL=hermes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes.js","sourceRoot":"","sources":["../../src/commands/hermes.ts"],"names":[],"mappings":"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"}