oh-my-codex 0.12.6 → 0.13.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/Cargo.lock +5 -5
- package/Cargo.toml +1 -1
- package/README.md +1 -0
- package/crates/omx-explore/src/main.rs +300 -3
- package/dist/adapt/__tests__/foundation.test.d.ts +2 -0
- package/dist/adapt/__tests__/foundation.test.d.ts.map +1 -0
- package/dist/adapt/__tests__/foundation.test.js +171 -0
- package/dist/adapt/__tests__/foundation.test.js.map +1 -0
- package/dist/adapt/__tests__/hermes.test.d.ts +2 -0
- package/dist/adapt/__tests__/hermes.test.d.ts.map +1 -0
- package/dist/adapt/__tests__/hermes.test.js +137 -0
- package/dist/adapt/__tests__/hermes.test.js.map +1 -0
- package/dist/adapt/contracts.d.ts +157 -0
- package/dist/adapt/contracts.d.ts.map +1 -0
- package/dist/adapt/contracts.js +10 -0
- package/dist/adapt/contracts.js.map +1 -0
- package/dist/adapt/hermes.d.ts +83 -0
- package/dist/adapt/hermes.d.ts.map +1 -0
- package/dist/adapt/hermes.js +371 -0
- package/dist/adapt/hermes.js.map +1 -0
- package/dist/adapt/index.d.ts +14 -0
- package/dist/adapt/index.d.ts.map +1 -0
- package/dist/adapt/index.js +293 -0
- package/dist/adapt/index.js.map +1 -0
- package/dist/adapt/openclaw.d.ts +7 -0
- package/dist/adapt/openclaw.d.ts.map +1 -0
- package/dist/adapt/openclaw.js +299 -0
- package/dist/adapt/openclaw.js.map +1 -0
- package/dist/adapt/paths.d.ts +3 -0
- package/dist/adapt/paths.d.ts.map +1 -0
- package/dist/adapt/paths.js +15 -0
- package/dist/adapt/paths.js.map +1 -0
- package/dist/adapt/registry.d.ts +4 -0
- package/dist/adapt/registry.d.ts.map +1 -0
- package/dist/adapt/registry.js +48 -0
- package/dist/adapt/registry.js.map +1 -0
- package/dist/cli/__tests__/adapt-help.test.d.ts +2 -0
- package/dist/cli/__tests__/adapt-help.test.d.ts.map +1 -0
- package/dist/cli/__tests__/adapt-help.test.js +39 -0
- package/dist/cli/__tests__/adapt-help.test.js.map +1 -0
- package/dist/cli/__tests__/adapt.test.d.ts +2 -0
- package/dist/cli/__tests__/adapt.test.d.ts.map +1 -0
- package/dist/cli/__tests__/adapt.test.js +62 -0
- package/dist/cli/__tests__/adapt.test.js.map +1 -0
- package/dist/cli/__tests__/cleanup.test.js +61 -2
- package/dist/cli/__tests__/cleanup.test.js.map +1 -1
- package/dist/cli/__tests__/doctor-warning-copy.test.js +85 -0
- package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
- package/dist/cli/__tests__/explore-windows-diagnostics.test.d.ts +2 -0
- package/dist/cli/__tests__/explore-windows-diagnostics.test.d.ts.map +1 -0
- package/dist/cli/__tests__/explore-windows-diagnostics.test.js +17 -0
- package/dist/cli/__tests__/explore-windows-diagnostics.test.js.map +1 -0
- package/dist/cli/__tests__/explore.test.js +69 -0
- package/dist/cli/__tests__/explore.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +170 -8
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/nested-help-routing.test.js +1 -0
- package/dist/cli/__tests__/nested-help-routing.test.js.map +1 -1
- package/dist/cli/__tests__/ralph-prd-deep-interview.test.js +5 -0
- package/dist/cli/__tests__/ralph-prd-deep-interview.test.js.map +1 -1
- package/dist/cli/__tests__/ralph-prd-smoke.test.d.ts +2 -0
- package/dist/cli/__tests__/ralph-prd-smoke.test.d.ts.map +1 -0
- package/dist/cli/__tests__/ralph-prd-smoke.test.js +167 -0
- package/dist/cli/__tests__/ralph-prd-smoke.test.js.map +1 -0
- package/dist/cli/__tests__/ralph.test.js +103 -1
- package/dist/cli/__tests__/ralph.test.js.map +1 -1
- package/dist/cli/__tests__/setup-skills-overwrite.test.js +60 -0
- package/dist/cli/__tests__/setup-skills-overwrite.test.js.map +1 -1
- package/dist/cli/adapt.d.ts +6 -0
- package/dist/cli/adapt.d.ts.map +1 -0
- package/dist/cli/adapt.js +135 -0
- package/dist/cli/adapt.js.map +1 -0
- package/dist/cli/cleanup.d.ts +3 -1
- package/dist/cli/cleanup.d.ts.map +1 -1
- package/dist/cli/cleanup.js +57 -6
- package/dist/cli/cleanup.js.map +1 -1
- package/dist/cli/doctor.d.ts +6 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +72 -3
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/explore.d.ts +2 -0
- package/dist/cli/explore.d.ts.map +1 -1
- package/dist/cli/explore.js +14 -0
- package/dist/cli/explore.js.map +1 -1
- package/dist/cli/index.d.ts +4 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +50 -18
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/ralph.d.ts +3 -1
- package/dist/cli/ralph.d.ts.map +1 -1
- package/dist/cli/ralph.js +83 -0
- package/dist/cli/ralph.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +4 -2
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/tmux-hook.d.ts.map +1 -1
- package/dist/cli/tmux-hook.js +2 -1
- package/dist/cli/tmux-hook.js.map +1 -1
- package/dist/config/__tests__/codex-hooks.test.js +26 -2
- package/dist/config/__tests__/codex-hooks.test.js.map +1 -1
- package/dist/config/codex-hooks.d.ts +2 -1
- package/dist/config/codex-hooks.d.ts.map +1 -1
- package/dist/config/codex-hooks.js +23 -2
- package/dist/config/codex-hooks.js.map +1 -1
- package/dist/hooks/__tests__/keyword-detector.test.js +32 -0
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +2 -1
- package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-modules.test.js +6 -0
- package/dist/hooks/__tests__/notify-hook-modules.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js +124 -0
- package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +2 -1
- package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +1 -1
- package/dist/hooks/__tests__/prompt-guidance-contract.test.js +10 -1
- package/dist/hooks/__tests__/prompt-guidance-contract.test.js.map +1 -1
- package/dist/hooks/extensibility/sdk/tmux.d.ts.map +1 -1
- package/dist/hooks/extensibility/sdk/tmux.js +2 -1
- package/dist/hooks/extensibility/sdk/tmux.js.map +1 -1
- package/dist/hooks/keyword-detector.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.js +12 -3
- package/dist/hooks/keyword-detector.js.map +1 -1
- package/dist/hooks/prompt-guidance-contract.d.ts.map +1 -1
- package/dist/hooks/prompt-guidance-contract.js +2 -0
- package/dist/hooks/prompt-guidance-contract.js.map +1 -1
- package/dist/hud/__tests__/hud-tmux-injection.test.js +5 -0
- package/dist/hud/__tests__/hud-tmux-injection.test.js.map +1 -1
- package/dist/hud/__tests__/state.test.js +116 -0
- package/dist/hud/__tests__/state.test.js.map +1 -1
- package/dist/hud/index.d.ts +1 -1
- package/dist/hud/index.d.ts.map +1 -1
- package/dist/hud/index.js +5 -3
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/reconcile.js +1 -1
- package/dist/hud/reconcile.js.map +1 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +6 -5
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/tmux.d.ts +1 -1
- package/dist/hud/tmux.d.ts.map +1 -1
- package/dist/hud/tmux.js +9 -3
- package/dist/hud/tmux.js.map +1 -1
- package/dist/mcp/__tests__/bootstrap.test.js +1 -1
- package/dist/mcp/__tests__/bootstrap.test.js.map +1 -1
- package/dist/mcp/__tests__/state-paths.test.js +23 -1
- package/dist/mcp/__tests__/state-paths.test.js.map +1 -1
- package/dist/mcp/bootstrap.d.ts +1 -1
- package/dist/mcp/bootstrap.d.ts.map +1 -1
- package/dist/mcp/bootstrap.js +3 -11
- package/dist/mcp/bootstrap.js.map +1 -1
- package/dist/mcp/state-paths.d.ts.map +1 -1
- package/dist/mcp/state-paths.js +18 -0
- package/dist/mcp/state-paths.js.map +1 -1
- package/dist/modes/__tests__/base-tmux-pane.test.js +1 -1
- package/dist/modes/__tests__/base-tmux-pane.test.js.map +1 -1
- package/dist/notifications/__tests__/config.test.js +38 -1
- package/dist/notifications/__tests__/config.test.js.map +1 -1
- package/dist/notifications/__tests__/tmux-detector.test.js +1 -1
- package/dist/notifications/__tests__/tmux-detector.test.js.map +1 -1
- package/dist/notifications/tmux-detector.d.ts +1 -0
- package/dist/notifications/tmux-detector.d.ts.map +1 -1
- package/dist/notifications/tmux-detector.js +6 -3
- package/dist/notifications/tmux-detector.js.map +1 -1
- package/dist/notifications/tmux.d.ts.map +1 -1
- package/dist/notifications/tmux.js +20 -38
- package/dist/notifications/tmux.js.map +1 -1
- package/dist/openclaw/__tests__/config.test.js +97 -10
- package/dist/openclaw/__tests__/config.test.js.map +1 -1
- package/dist/openclaw/config.d.ts +19 -1
- package/dist/openclaw/config.d.ts.map +1 -1
- package/dist/openclaw/config.js +220 -20
- package/dist/openclaw/config.js.map +1 -1
- package/dist/planning/artifacts.d.ts +7 -0
- package/dist/planning/artifacts.d.ts.map +1 -1
- package/dist/planning/artifacts.js +18 -4
- package/dist/planning/artifacts.js.map +1 -1
- package/dist/scripts/__tests__/codex-native-hook.test.js +748 -11
- package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
- package/dist/scripts/codex-native-hook.d.ts.map +1 -1
- package/dist/scripts/codex-native-hook.js +71 -31
- package/dist/scripts/codex-native-hook.js.map +1 -1
- package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
- package/dist/scripts/codex-native-pre-post.js +336 -0
- package/dist/scripts/codex-native-pre-post.js.map +1 -1
- package/dist/scripts/notify-hook/auto-nudge.d.ts +1 -0
- package/dist/scripts/notify-hook/auto-nudge.d.ts.map +1 -1
- package/dist/scripts/notify-hook/auto-nudge.js +10 -2
- package/dist/scripts/notify-hook/auto-nudge.js.map +1 -1
- package/dist/scripts/notify-hook/team-worker.js +1 -1
- package/dist/scripts/notify-hook/team-worker.js.map +1 -1
- package/dist/scripts/notify-hook/tmux-injection.d.ts.map +1 -1
- package/dist/scripts/notify-hook/tmux-injection.js +78 -4
- package/dist/scripts/notify-hook/tmux-injection.js.map +1 -1
- package/dist/scripts/tmux-hook-engine.d.ts.map +1 -1
- package/dist/scripts/tmux-hook-engine.js +9 -7
- package/dist/scripts/tmux-hook-engine.js.map +1 -1
- package/dist/state/__tests__/operations.test.js +38 -0
- package/dist/state/__tests__/operations.test.js.map +1 -1
- package/dist/state/__tests__/workflow-transition.test.js +2 -0
- package/dist/state/__tests__/workflow-transition.test.js.map +1 -1
- package/dist/state/skill-active.d.ts +1 -1
- package/dist/state/skill-active.d.ts.map +1 -1
- package/dist/state/skill-active.js +8 -4
- package/dist/state/skill-active.js.map +1 -1
- package/dist/state/workflow-transition-reconcile.js +1 -1
- package/dist/state/workflow-transition-reconcile.js.map +1 -1
- package/dist/state/workflow-transition.js +3 -3
- package/dist/state/workflow-transition.js.map +1 -1
- package/dist/team/__tests__/leader-activity.test.js +28 -0
- package/dist/team/__tests__/leader-activity.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +42 -0
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/worktree.test.js +29 -0
- package/dist/team/__tests__/worktree.test.js.map +1 -1
- package/dist/team/leader-activity.d.ts.map +1 -1
- package/dist/team/leader-activity.js +23 -1
- package/dist/team/leader-activity.js.map +1 -1
- package/dist/team/worktree.d.ts.map +1 -1
- package/dist/team/worktree.js +17 -1
- package/dist/team/worktree.js.map +1 -1
- package/dist/utils/__tests__/paths.test.js +6 -1
- package/dist/utils/__tests__/paths.test.js.map +1 -1
- package/dist/utils/__tests__/platform-command.test.js +19 -1
- package/dist/utils/__tests__/platform-command.test.js.map +1 -1
- package/dist/utils/paths.d.ts +2 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +4 -0
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/platform-command.d.ts +1 -0
- package/dist/utils/platform-command.d.ts.map +1 -1
- package/dist/utils/platform-command.js +40 -23
- package/dist/utils/platform-command.js.map +1 -1
- package/dist/verification/__tests__/explore-harness-release-workflow.test.js +1 -1
- package/dist/verification/__tests__/pr-check-workflow.test.d.ts +2 -0
- package/dist/verification/__tests__/pr-check-workflow.test.d.ts.map +1 -0
- package/dist/verification/__tests__/pr-check-workflow.test.js +27 -0
- package/dist/verification/__tests__/pr-check-workflow.test.js.map +1 -0
- package/package.json +1 -1
- package/skills/ralph/SKILL.md +7 -0
- package/skills/ralph-init/SKILL.md +2 -1
- package/src/scripts/__tests__/codex-native-hook.test.ts +970 -94
- package/src/scripts/codex-native-hook.ts +109 -26
- package/src/scripts/codex-native-pre-post.ts +376 -0
- package/src/scripts/notify-hook/auto-nudge.ts +12 -2
- package/src/scripts/notify-hook/team-worker.ts +1 -1
- package/src/scripts/notify-hook/tmux-injection.ts +93 -3
- package/src/scripts/tmux-hook-engine.ts +9 -7
- package/templates/AGENTS.md +3 -1
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, it } from "node:test";
|
|
2
|
+
import assert from "node:assert/strict";
|
|
3
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
4
|
+
import { mkdtemp, rm } from "node:fs/promises";
|
|
5
|
+
import { tmpdir } from "node:os";
|
|
6
|
+
import { join } from "node:path";
|
|
7
|
+
import { buildAdaptDoctorReportForTarget, buildAdaptEnvelopeForTarget, buildAdaptProbeReportForTarget, buildAdaptStatusReportForTarget, initAdaptFoundationForTarget, } from "../index.js";
|
|
8
|
+
let tempDir;
|
|
9
|
+
let hermesRoot;
|
|
10
|
+
let hermesHome;
|
|
11
|
+
let processCwdFixtureBase;
|
|
12
|
+
let processCwdFixtureRoot;
|
|
13
|
+
let suppliedCwd;
|
|
14
|
+
let originalCwd;
|
|
15
|
+
const originalEnv = {
|
|
16
|
+
root: process.env.OMX_ADAPT_HERMES_ROOT,
|
|
17
|
+
home: process.env.HERMES_HOME,
|
|
18
|
+
};
|
|
19
|
+
function writeHermesFixture(options = {}) {
|
|
20
|
+
const { withRoot = true, withGatewayRuntime = false, withStateDb = false, } = options;
|
|
21
|
+
if (withRoot) {
|
|
22
|
+
mkdirSync(join(hermesRoot, "acp_adapter"), { recursive: true });
|
|
23
|
+
mkdirSync(join(hermesRoot, "gateway"), { recursive: true });
|
|
24
|
+
mkdirSync(join(hermesRoot, "docs"), { recursive: true });
|
|
25
|
+
mkdirSync(join(hermesRoot, "acp_registry"), { recursive: true });
|
|
26
|
+
writeFileSync(join(hermesRoot, "acp_adapter", "server.py"), "# acp server\n");
|
|
27
|
+
writeFileSync(join(hermesRoot, "acp_adapter", "session.py"), "# acp session\n");
|
|
28
|
+
writeFileSync(join(hermesRoot, "acp_adapter", "events.py"), "# acp events\n");
|
|
29
|
+
writeFileSync(join(hermesRoot, "acp_adapter", "entry.py"), "# acp entry\n");
|
|
30
|
+
writeFileSync(join(hermesRoot, "gateway", "status.py"), "# gateway status\n");
|
|
31
|
+
writeFileSync(join(hermesRoot, "gateway", "hooks.py"), "# gateway hooks\n");
|
|
32
|
+
writeFileSync(join(hermesRoot, "docs", "acp-setup.md"), "# acp setup\n");
|
|
33
|
+
writeFileSync(join(hermesRoot, "hermes_state.py"), "# hermes state store\n");
|
|
34
|
+
}
|
|
35
|
+
if (withGatewayRuntime) {
|
|
36
|
+
mkdirSync(hermesHome, { recursive: true });
|
|
37
|
+
writeFileSync(join(hermesHome, "gateway.pid"), JSON.stringify({ pid: 1234, kind: "hermes-gateway", argv: ["hermes", "gateway"] }));
|
|
38
|
+
writeFileSync(join(hermesHome, "gateway_state.json"), JSON.stringify({
|
|
39
|
+
gateway_state: "running",
|
|
40
|
+
active_agents: 2,
|
|
41
|
+
updated_at: "2026-04-14T14:00:00.000Z",
|
|
42
|
+
platforms: {
|
|
43
|
+
telegram: { state: "connected", updated_at: "2026-04-14T14:00:00.000Z" },
|
|
44
|
+
},
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
if (withStateDb) {
|
|
48
|
+
mkdirSync(hermesHome, { recursive: true });
|
|
49
|
+
writeFileSync(join(hermesHome, "state.db"), "SQLite format 3\u0000 sessions messages");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
beforeEach(async () => {
|
|
53
|
+
tempDir = await mkdtemp(join(tmpdir(), "omx-adapt-hermes-"));
|
|
54
|
+
suppliedCwd = join(tempDir, "sandbox", "worktree");
|
|
55
|
+
hermesRoot = join(tempDir, "hermes-runtime");
|
|
56
|
+
hermesHome = join(tempDir, "hermes-home");
|
|
57
|
+
originalCwd = process.cwd();
|
|
58
|
+
processCwdFixtureBase = await mkdtemp(join(tmpdir(), "omx-adapt-hermes-process-cwd-"));
|
|
59
|
+
processCwdFixtureRoot = join(processCwdFixtureBase, "hermes-codex-skill-omx-aware-prd", "external", "hermes-agent");
|
|
60
|
+
process.env.OMX_ADAPT_HERMES_ROOT = hermesRoot;
|
|
61
|
+
process.env.HERMES_HOME = hermesHome;
|
|
62
|
+
});
|
|
63
|
+
afterEach(async () => {
|
|
64
|
+
if (originalEnv.root === undefined) {
|
|
65
|
+
delete process.env.OMX_ADAPT_HERMES_ROOT;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
process.env.OMX_ADAPT_HERMES_ROOT = originalEnv.root;
|
|
69
|
+
}
|
|
70
|
+
if (originalEnv.home === undefined) {
|
|
71
|
+
delete process.env.HERMES_HOME;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
process.env.HERMES_HOME = originalEnv.home;
|
|
75
|
+
}
|
|
76
|
+
process.chdir(originalCwd);
|
|
77
|
+
if (processCwdFixtureBase && existsSync(processCwdFixtureBase)) {
|
|
78
|
+
await rm(processCwdFixtureBase, { recursive: true, force: true });
|
|
79
|
+
}
|
|
80
|
+
if (tempDir && existsSync(tempDir)) {
|
|
81
|
+
await rm(tempDir, { recursive: true, force: true });
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
describe("hermes adapter integration", () => {
|
|
85
|
+
it("degrades gracefully when Hermes runtime evidence is absent", async () => {
|
|
86
|
+
const probe = await buildAdaptProbeReportForTarget(tempDir, "hermes", new Date("2026-04-14T00:00:00.000Z"));
|
|
87
|
+
const status = await buildAdaptStatusReportForTarget(tempDir, "hermes", new Date("2026-04-14T00:00:00.000Z"));
|
|
88
|
+
const doctor = await buildAdaptDoctorReportForTarget(tempDir, "hermes", new Date("2026-04-14T00:00:00.000Z"));
|
|
89
|
+
assert.equal(probe.targetRuntime.state, "unavailable");
|
|
90
|
+
assert.equal(status.targetRuntime.state, "unavailable");
|
|
91
|
+
assert.match(doctor.issues.map((issue) => issue.code).join(","), /hermes_runtime_missing/);
|
|
92
|
+
});
|
|
93
|
+
it("anchors sibling-default Hermes discovery to the supplied cwd for programmatic probes", async () => {
|
|
94
|
+
delete process.env.OMX_ADAPT_HERMES_ROOT;
|
|
95
|
+
delete process.env.HERMES_HOME;
|
|
96
|
+
mkdirSync(join(processCwdFixtureRoot, "acp_adapter"), { recursive: true });
|
|
97
|
+
writeFileSync(join(processCwdFixtureRoot, "acp_adapter", "server.py"), "# unrelated sibling runtime\n");
|
|
98
|
+
const unrelatedProcessCwd = join(processCwdFixtureBase, "workspace");
|
|
99
|
+
mkdirSync(unrelatedProcessCwd, { recursive: true });
|
|
100
|
+
process.chdir(unrelatedProcessCwd);
|
|
101
|
+
const tempSiblingRoot = join(suppliedCwd, "..", "hermes-codex-skill-omx-aware-prd", "external", "hermes-agent");
|
|
102
|
+
const probe = await buildAdaptProbeReportForTarget(suppliedCwd, "hermes", new Date("2026-04-14T00:00:00.000Z"));
|
|
103
|
+
assert.equal(probe.targetRuntime.state, "unavailable");
|
|
104
|
+
assert.equal(probe.targetRuntime.evidence?.hermesRoot, tempSiblingRoot);
|
|
105
|
+
assert.notEqual(probe.targetRuntime.evidence?.hermesRoot, processCwdFixtureRoot);
|
|
106
|
+
assert.match(probe.targetRuntime.detail, new RegExp(tempSiblingRoot.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")));
|
|
107
|
+
});
|
|
108
|
+
it("reports Hermes capability evidence asymmetrically in the envelope", async () => {
|
|
109
|
+
writeHermesFixture({ withRoot: true, withStateDb: true });
|
|
110
|
+
const envelope = await buildAdaptEnvelopeForTarget(tempDir, "hermes", new Date("2026-04-14T00:00:00.000Z"));
|
|
111
|
+
assert.equal(envelope.targetRuntime?.state, "degraded");
|
|
112
|
+
assert.ok(envelope.bootstrap);
|
|
113
|
+
assert.match(envelope.bootstrap?.summary ?? "", /bootstrap metadata/i);
|
|
114
|
+
assert.deepEqual([...new Set(envelope.capabilities.map((capability) => capability.ownership))].sort(), ["omx-owned", "shared-contract", "target-observed"]);
|
|
115
|
+
assert.equal(envelope.capabilities.find((capability) => capability.id === "persistent-session-observation")?.status, "ready");
|
|
116
|
+
assert.equal(envelope.capabilities.find((capability) => capability.id === "acp-envelope-bridge")?.status, "ready");
|
|
117
|
+
});
|
|
118
|
+
it("synthesizes running status from Hermes gateway and session-store evidence", async () => {
|
|
119
|
+
writeHermesFixture({ withRoot: true, withGatewayRuntime: true, withStateDb: true });
|
|
120
|
+
const status = await buildAdaptStatusReportForTarget(tempDir, "hermes", new Date("2026-04-14T00:00:00.000Z"));
|
|
121
|
+
assert.equal(status.targetRuntime.state, "running");
|
|
122
|
+
assert.match(status.targetRuntime.detail, /connected platforms: telegram/i);
|
|
123
|
+
});
|
|
124
|
+
it("keeps Hermes init writes inside OMX-owned adapter paths", async () => {
|
|
125
|
+
writeHermesFixture({ withRoot: true, withGatewayRuntime: true, withStateDb: true });
|
|
126
|
+
const result = await initAdaptFoundationForTarget(tempDir, "hermes", true, new Date("2026-04-14T00:00:00.000Z"));
|
|
127
|
+
assert.equal(result.write, true);
|
|
128
|
+
assert.equal(result.wrotePaths.length, 2);
|
|
129
|
+
assert.equal(existsSync(join(tempDir, ".omx", "state")), false);
|
|
130
|
+
assert.equal(existsSync(join(hermesHome, "gateway_state.json")), true);
|
|
131
|
+
assert.equal(existsSync(join(hermesHome, "state.db")), true);
|
|
132
|
+
const persistedEnvelope = JSON.parse(readFileSync(result.envelope.adapterPaths.envelopePath, "utf-8"));
|
|
133
|
+
assert.equal(persistedEnvelope.targetRuntime?.state, "running");
|
|
134
|
+
assert.ok((persistedEnvelope.bootstrap?.commands ?? []).includes("hermes acp"));
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
//# sourceMappingURL=hermes.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hermes.test.js","sourceRoot":"","sources":["../../../src/adapt/__tests__/hermes.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
export declare const ADAPT_SCHEMA_VERSION = "1.0";
|
|
2
|
+
export declare const ADAPT_TARGETS: readonly ["openclaw", "hermes"];
|
|
3
|
+
export type AdaptTarget = (typeof ADAPT_TARGETS)[number];
|
|
4
|
+
export declare const ADAPT_SUBCOMMANDS: readonly ["probe", "status", "init", "envelope", "doctor"];
|
|
5
|
+
export type AdaptSubcommand = (typeof ADAPT_SUBCOMMANDS)[number];
|
|
6
|
+
export type AdaptCapabilityOwnership = "omx-owned" | "shared-contract" | "target-observed";
|
|
7
|
+
export type AdaptCapabilityStatus = "ready" | "stub" | "unsupported";
|
|
8
|
+
export interface AdaptCapabilityReport {
|
|
9
|
+
id: string;
|
|
10
|
+
label: string;
|
|
11
|
+
ownership: AdaptCapabilityOwnership;
|
|
12
|
+
status: AdaptCapabilityStatus;
|
|
13
|
+
summary: string;
|
|
14
|
+
}
|
|
15
|
+
export interface AdaptTargetDescriptor {
|
|
16
|
+
target: AdaptTarget;
|
|
17
|
+
displayName: string;
|
|
18
|
+
summary: string;
|
|
19
|
+
followupHint: string;
|
|
20
|
+
capabilities: AdaptCapabilityReport[];
|
|
21
|
+
}
|
|
22
|
+
export interface AdaptPathSet {
|
|
23
|
+
adapterRoot: string;
|
|
24
|
+
configPath: string;
|
|
25
|
+
envelopePath: string;
|
|
26
|
+
reportsDir: string;
|
|
27
|
+
probeReportPath: string;
|
|
28
|
+
statusReportPath: string;
|
|
29
|
+
}
|
|
30
|
+
export interface AdaptPlanningLink {
|
|
31
|
+
prdPath: string | null;
|
|
32
|
+
testSpecPaths: string[];
|
|
33
|
+
deepInterviewSpecPaths: string[];
|
|
34
|
+
summary: string;
|
|
35
|
+
}
|
|
36
|
+
export interface AdaptOpenClawGatewayObservation {
|
|
37
|
+
name: string;
|
|
38
|
+
type: "http" | "command";
|
|
39
|
+
configured: boolean;
|
|
40
|
+
commandGateRequired: boolean;
|
|
41
|
+
commandGateEnabled: boolean;
|
|
42
|
+
timeoutMs: number | null;
|
|
43
|
+
}
|
|
44
|
+
export interface AdaptOpenClawHookObservation {
|
|
45
|
+
event: string;
|
|
46
|
+
gateway: string | null;
|
|
47
|
+
gatewayType: "http" | "command" | null;
|
|
48
|
+
status: "wired" | "blocked" | "unmapped";
|
|
49
|
+
detail: string;
|
|
50
|
+
}
|
|
51
|
+
export interface AdaptOpenClawMetadata {
|
|
52
|
+
observedState: "configured" | "degraded" | "disabled" | "missing-config" | "invalid-config" | "not-configured";
|
|
53
|
+
observedDetail: string;
|
|
54
|
+
config: {
|
|
55
|
+
activationGateEnabled: boolean;
|
|
56
|
+
commandGateEnabled: boolean;
|
|
57
|
+
configPath: string;
|
|
58
|
+
configExists: boolean;
|
|
59
|
+
source: string | null;
|
|
60
|
+
explicitConfigPresent: boolean;
|
|
61
|
+
aliasConfigPresent: boolean;
|
|
62
|
+
aliasSources: Array<"custom_cli_command" | "custom_webhook_command">;
|
|
63
|
+
explicitOverridesAliases: boolean;
|
|
64
|
+
warnings: string[];
|
|
65
|
+
};
|
|
66
|
+
gateways: AdaptOpenClawGatewayObservation[];
|
|
67
|
+
hooks: AdaptOpenClawHookObservation[];
|
|
68
|
+
lifecycleBridge: Array<{
|
|
69
|
+
omxEvent: string;
|
|
70
|
+
openclawEvent: string;
|
|
71
|
+
}>;
|
|
72
|
+
bootstrap?: {
|
|
73
|
+
adapterConfigPath: string;
|
|
74
|
+
envelopePath: string;
|
|
75
|
+
reportPaths: string[];
|
|
76
|
+
planningArtifactPaths: string[];
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export interface AdaptEnvelope {
|
|
80
|
+
schemaVersion: string;
|
|
81
|
+
generatedAt: string;
|
|
82
|
+
target: AdaptTarget;
|
|
83
|
+
displayName: string;
|
|
84
|
+
summary: string;
|
|
85
|
+
adapterPaths: AdaptPathSet;
|
|
86
|
+
planning: AdaptPlanningLink;
|
|
87
|
+
capabilities: AdaptCapabilityReport[];
|
|
88
|
+
constraints: string[];
|
|
89
|
+
targetRuntime?: AdaptRuntimeObservation;
|
|
90
|
+
bootstrap?: AdaptBootstrapMetadata;
|
|
91
|
+
openclaw?: AdaptOpenClawMetadata;
|
|
92
|
+
}
|
|
93
|
+
export interface AdaptRuntimeObservation {
|
|
94
|
+
state: string;
|
|
95
|
+
detail: string;
|
|
96
|
+
evidence?: Record<string, unknown>;
|
|
97
|
+
}
|
|
98
|
+
export interface AdaptBootstrapMetadata {
|
|
99
|
+
summary: string;
|
|
100
|
+
eventBridge: string[];
|
|
101
|
+
commands: string[];
|
|
102
|
+
nextSteps: string[];
|
|
103
|
+
}
|
|
104
|
+
export interface AdaptProbeReport {
|
|
105
|
+
schemaVersion: string;
|
|
106
|
+
timestamp: string;
|
|
107
|
+
target: AdaptTarget;
|
|
108
|
+
phase: "foundation";
|
|
109
|
+
summary: string;
|
|
110
|
+
adapterPaths: AdaptPathSet;
|
|
111
|
+
planning: AdaptPlanningLink;
|
|
112
|
+
capabilities: AdaptCapabilityReport[];
|
|
113
|
+
targetRuntime: AdaptRuntimeObservation;
|
|
114
|
+
openclaw?: AdaptOpenClawMetadata;
|
|
115
|
+
nextSteps: string[];
|
|
116
|
+
}
|
|
117
|
+
export interface AdaptStatusReport {
|
|
118
|
+
schemaVersion: string;
|
|
119
|
+
timestamp: string;
|
|
120
|
+
target: AdaptTarget;
|
|
121
|
+
phase: "foundation";
|
|
122
|
+
summary: string;
|
|
123
|
+
adapter: {
|
|
124
|
+
state: "initialized" | "not-initialized";
|
|
125
|
+
detail: string;
|
|
126
|
+
configPath: string;
|
|
127
|
+
envelopePath: string;
|
|
128
|
+
};
|
|
129
|
+
targetRuntime: AdaptRuntimeObservation;
|
|
130
|
+
planning: AdaptPlanningLink;
|
|
131
|
+
capabilities: AdaptCapabilityReport[];
|
|
132
|
+
openclaw?: AdaptOpenClawMetadata;
|
|
133
|
+
}
|
|
134
|
+
export interface AdaptDoctorIssue {
|
|
135
|
+
code: string;
|
|
136
|
+
message: string;
|
|
137
|
+
}
|
|
138
|
+
export interface AdaptDoctorReport {
|
|
139
|
+
schemaVersion: string;
|
|
140
|
+
timestamp: string;
|
|
141
|
+
target: AdaptTarget;
|
|
142
|
+
phase: "foundation";
|
|
143
|
+
summary: string;
|
|
144
|
+
issues: AdaptDoctorIssue[];
|
|
145
|
+
nextSteps: string[];
|
|
146
|
+
}
|
|
147
|
+
export interface AdaptInitResult {
|
|
148
|
+
schemaVersion: string;
|
|
149
|
+
timestamp: string;
|
|
150
|
+
target: AdaptTarget;
|
|
151
|
+
write: boolean;
|
|
152
|
+
summary: string;
|
|
153
|
+
previewPaths: string[];
|
|
154
|
+
wrotePaths: string[];
|
|
155
|
+
envelope: AdaptEnvelope;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/adapt/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/adapt/contracts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAU,CAAC;AAG7D,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,OAAO;IACP,QAAQ;IACR,MAAM;IACN,UAAU;IACV,QAAQ;CACC,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { type AdaptBootstrapMetadata, type AdaptCapabilityReport, type AdaptEnvelope, type AdaptProbeReport, type AdaptRuntimeObservation, type AdaptStatusReport } from "./contracts.js";
|
|
2
|
+
interface HermesGatewayRuntimeFile {
|
|
3
|
+
gateway_state?: string;
|
|
4
|
+
exit_reason?: string | null;
|
|
5
|
+
restart_requested?: boolean;
|
|
6
|
+
active_agents?: number;
|
|
7
|
+
updated_at?: string;
|
|
8
|
+
platforms?: Record<string, {
|
|
9
|
+
state?: string;
|
|
10
|
+
error_code?: string | null;
|
|
11
|
+
error_message?: string | null;
|
|
12
|
+
updated_at?: string;
|
|
13
|
+
}>;
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
}
|
|
16
|
+
interface HermesPidRecord {
|
|
17
|
+
pid?: number;
|
|
18
|
+
kind?: string;
|
|
19
|
+
argv?: string[];
|
|
20
|
+
start_time?: number;
|
|
21
|
+
[key: string]: unknown;
|
|
22
|
+
}
|
|
23
|
+
interface HermesEvidence {
|
|
24
|
+
hermesRoot: string;
|
|
25
|
+
hermesHome: string;
|
|
26
|
+
sources: {
|
|
27
|
+
root: "override" | "sibling-default";
|
|
28
|
+
home: "env" | "default";
|
|
29
|
+
};
|
|
30
|
+
sourceRuntime: {
|
|
31
|
+
present: boolean;
|
|
32
|
+
acp: {
|
|
33
|
+
present: boolean;
|
|
34
|
+
files: string[];
|
|
35
|
+
missing: string[];
|
|
36
|
+
};
|
|
37
|
+
gateway: {
|
|
38
|
+
present: boolean;
|
|
39
|
+
files: string[];
|
|
40
|
+
missing: string[];
|
|
41
|
+
};
|
|
42
|
+
docs: {
|
|
43
|
+
present: boolean;
|
|
44
|
+
files: string[];
|
|
45
|
+
missing: string[];
|
|
46
|
+
};
|
|
47
|
+
stateStore: {
|
|
48
|
+
present: boolean;
|
|
49
|
+
path: string;
|
|
50
|
+
};
|
|
51
|
+
acpRegistry: {
|
|
52
|
+
present: boolean;
|
|
53
|
+
path: string;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
installed: boolean;
|
|
57
|
+
runtimeFiles: {
|
|
58
|
+
gatewayPidPath: string;
|
|
59
|
+
gatewayStatePath: string;
|
|
60
|
+
stateDbPath: string;
|
|
61
|
+
gatewayPidReadable: boolean;
|
|
62
|
+
gatewayStateReadable: boolean;
|
|
63
|
+
stateDbReadable: boolean;
|
|
64
|
+
stateDbExists: boolean;
|
|
65
|
+
};
|
|
66
|
+
gateway: {
|
|
67
|
+
pidRecord: HermesPidRecord | null;
|
|
68
|
+
runtimeRecord: HermesGatewayRuntimeFile | null;
|
|
69
|
+
live: boolean;
|
|
70
|
+
connectedPlatforms: string[];
|
|
71
|
+
stale: boolean;
|
|
72
|
+
};
|
|
73
|
+
resumable: boolean;
|
|
74
|
+
}
|
|
75
|
+
export declare function collectHermesEvidence(cwd?: string): Promise<HermesEvidence>;
|
|
76
|
+
export declare function buildHermesCapabilityOverrides(capabilities: AdaptCapabilityReport[], evidence: HermesEvidence): AdaptCapabilityReport[];
|
|
77
|
+
export declare function buildHermesBootstrapMetadata(evidence: HermesEvidence): AdaptBootstrapMetadata;
|
|
78
|
+
export declare function buildHermesRuntimeObservation(evidence: HermesEvidence): AdaptRuntimeObservation;
|
|
79
|
+
export declare function applyHermesEnvelope(envelope: AdaptEnvelope, evidence: HermesEvidence): AdaptEnvelope;
|
|
80
|
+
export declare function applyHermesProbe(report: AdaptProbeReport, evidence: HermesEvidence): AdaptProbeReport;
|
|
81
|
+
export declare function applyHermesStatus(report: AdaptStatusReport, evidence: HermesEvidence): AdaptStatusReport;
|
|
82
|
+
export {};
|
|
83
|
+
//# sourceMappingURL=hermes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hermes.d.ts","sourceRoot":"","sources":["../../src/adapt/hermes.ts"],"names":[],"mappings":"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"}
|