ai-jue-adapter-hermes 0.3.0 → 0.3.2

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.
@@ -3,7 +3,7 @@ import type { CapabilityMapping } from "ai-jue-core";
3
3
  * Hermes has no per-workspace `agents/` directory (unlike OpenClaw
4
4
  * which uses `.openclaw/agents/<name>/`). The single-agent runtime
5
5
  * reads the `agent:` block from the user-home `~/.hermes/config.yaml`
6
- * (per the real cwr:/d/devuser/.hermes/config.yaml reading). Per the
6
+ * (verified against a redacted Hermes `config.yaml` fixture). Per the
7
7
  * JUE-303 honest-stance principle, the `agents` mapping is a no-op
8
8
  * round-trip so the equivalence contract holds vacuously.
9
9
  */
@@ -5,7 +5,7 @@ exports.agents = agents;
5
5
  * Hermes has no per-workspace `agents/` directory (unlike OpenClaw
6
6
  * which uses `.openclaw/agents/<name>/`). The single-agent runtime
7
7
  * reads the `agent:` block from the user-home `~/.hermes/config.yaml`
8
- * (per the real cwr:/d/devuser/.hermes/config.yaml reading). Per the
8
+ * (verified against a redacted Hermes `config.yaml` fixture). Per the
9
9
  * JUE-303 honest-stance principle, the `agents` mapping is a no-op
10
10
  * round-trip so the equivalence contract holds vacuously.
11
11
  */
@@ -9,7 +9,7 @@ const path_1 = __importDefault(require("path"));
9
9
  const crypto_1 = require("crypto");
10
10
  /**
11
11
  * Hermes cron jobs live at `<workspace>/cron/jobs.json` (verified
12
- * against cwr:/d/devuser/.hermes/cron/jobs.json — a top-level JSON
12
+ * against a redacted Hermes `cron/jobs.json` fixture — a top-level JSON
13
13
  * object mapping job_id → {name, prompt, schedule, repeat, deliver,
14
14
  * enabled, model, provider, base_url, skills, created_at}). Each
15
15
  * schedule is a standard cron string (e.g. "0 23 * * *"). Per the
@@ -2,7 +2,7 @@ import type { CapabilityMapping } from "ai-jue-core";
2
2
  /**
3
3
  * Hermes has no per-workspace `hooks/` directory — the
4
4
  * `hooks_auto_accept` block in the real `config.yaml` (verified
5
- * against cwr:/d/devuser/.hermes/config.yaml) configures the
5
+ * against a redacted Hermes `config.yaml` fixture) configures the
6
6
  * session-level hooks-acceptance policy, and the
7
7
  * `~/.hermes/hooks/` directory exists but is **empty** on the real
8
8
  * installation. Per the JUE-303 honest-stance principle, the `hooks`
@@ -4,7 +4,7 @@ exports.hooks = hooks;
4
4
  /**
5
5
  * Hermes has no per-workspace `hooks/` directory — the
6
6
  * `hooks_auto_accept` block in the real `config.yaml` (verified
7
- * against cwr:/d/devuser/.hermes/config.yaml) configures the
7
+ * against a redacted Hermes `config.yaml` fixture) configures the
8
8
  * session-level hooks-acceptance policy, and the
9
9
  * `~/.hermes/hooks/` directory exists but is **empty** on the real
10
10
  * installation. Per the JUE-303 honest-stance principle, the `hooks`
@@ -12,5 +12,6 @@ export declare function isWorkspaceLayout(root: string): boolean;
12
12
  * `plugin.yaml` must never be claimed as managed.
13
13
  */
14
14
  export declare const MANAGED_INIT_MARKER = "Auto-generated by ai-jue";
15
- /** Return a managed layout only when its marker is present. */
15
+ export declare const MANAGED_INIT_SOURCE = "\"\"\"Auto-generated by ai-jue \u2014 registers bundled skills only (no tools).\"\"\"\nfrom pathlib import Path\n\n\ndef register(ctx):\n skills_dir = Path(__file__).parent / \"skills\"\n if not skills_dir.is_dir():\n return\n for child in sorted(skills_dir.iterdir()):\n skill_md = child / \"SKILL.md\"\n if child.is_dir() and skill_md.is_file():\n ctx.register_skill(child.name, skill_md)\n";
16
+ /** Return a managed layout only when its initializer bytes are exactly ours. */
16
17
  export declare function detectArtifactKind(root: string): HermesArtifactKind | undefined;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MANAGED_INIT_MARKER = void 0;
6
+ exports.MANAGED_INIT_SOURCE = exports.MANAGED_INIT_MARKER = void 0;
7
7
  exports.isWorkspaceLayout = isWorkspaceLayout;
8
8
  exports.detectArtifactKind = detectArtifactKind;
9
9
  const fs_1 = __importDefault(require("fs"));
@@ -21,12 +21,25 @@ function isWorkspaceLayout(root) {
21
21
  * `plugin.yaml` must never be claimed as managed.
22
22
  */
23
23
  exports.MANAGED_INIT_MARKER = "Auto-generated by ai-jue";
24
- /** Return a managed layout only when its marker is present. */
24
+ exports.MANAGED_INIT_SOURCE = `"""Auto-generated by ai-jue — registers bundled skills only (no tools)."""
25
+ from pathlib import Path
26
+
27
+
28
+ def register(ctx):
29
+ skills_dir = Path(__file__).parent / "skills"
30
+ if not skills_dir.is_dir():
31
+ return
32
+ for child in sorted(skills_dir.iterdir()):
33
+ skill_md = child / "SKILL.md"
34
+ if child.is_dir() and skill_md.is_file():
35
+ ctx.register_skill(child.name, skill_md)
36
+ `;
37
+ /** Return a managed layout only when its initializer bytes are exactly ours. */
25
38
  function detectArtifactKind(root) {
26
39
  const initPath = path_1.default.join(root, "__init__.py");
27
40
  if (fs_1.default.existsSync(path_1.default.join(root, "plugin.yaml")) &&
28
41
  fs_1.default.existsSync(initPath) &&
29
- fs_1.default.readFileSync(initPath, "utf8").includes(exports.MANAGED_INIT_MARKER)) {
42
+ fs_1.default.readFileSync(initPath, "utf8") === exports.MANAGED_INIT_SOURCE) {
30
43
  return "skill-plugin";
31
44
  }
32
45
  if (isWorkspaceLayout(root))
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/capabilities/layout.ts"],"names":[],"mappings":";;;;;;AAUA,8CAOC;AAWD,gDAWC;AAvCD,4CAAoB;AACpB,gDAAwB;AASxB,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,OAAO,CACL,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC7C,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACxC,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACU,QAAA,mBAAmB,GAAG,0BAA0B,CAAC;AAE9D,+DAA+D;AAC/D,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAChD,IACE,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC7C,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QACvB,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,2BAAmB,CAAC,EAC/D,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,IAAI,iBAAiB,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IAChD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/capabilities/layout.ts"],"names":[],"mappings":";;;;;;AAUA,8CAOC;AAwBD,gDAWC;AApDD,4CAAoB;AACpB,gDAAwB;AASxB,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,OAAO,CACL,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC7C,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACxC,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACU,QAAA,mBAAmB,GAAG,0BAA0B,CAAC;AACjD,QAAA,mBAAmB,GAAG;;;;;;;;;;;;CAYlC,CAAC;AAEF,gFAAgF;AAChF,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAChD,IACE,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC7C,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QACvB,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,2BAAmB,EACzD,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,IAAI,iBAAiB,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IAChD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -49,19 +49,6 @@ function assertSafeSkillName(name) {
49
49
  throw new Error(`Hermes skill-plugin name must be a safe single path segment: ${name}`);
50
50
  }
51
51
  }
52
- const INIT_PY = `"""Auto-generated by ai-jue — registers bundled skills only (no tools)."""
53
- from pathlib import Path
54
-
55
-
56
- def register(ctx):
57
- skills_dir = Path(__file__).parent / "skills"
58
- if not skills_dir.is_dir():
59
- return
60
- for child in sorted(skills_dir.iterdir()):
61
- skill_md = child / "SKILL.md"
62
- if child.is_dir() and skill_md.is_file():
63
- ctx.register_skill(child.name, skill_md)
64
- `;
65
52
  function textChange(root, absolutePath, newContent) {
66
53
  const exists = fs_1.default.existsSync(absolutePath);
67
54
  const existing = exists ? fs_1.default.readFileSync(absolutePath, "utf8") : undefined;
@@ -93,7 +80,7 @@ function writeSkillPlugin(canonical, root, pluginManifest) {
93
80
  // Refuse (fail explicit) rather than overwrite a hand-authored package.
94
81
  const initPath = path_1.default.join(root, "__init__.py");
95
82
  if (fs_1.default.existsSync(initPath) &&
96
- !fs_1.default.readFileSync(initPath, "utf8").includes(layout_1.MANAGED_INIT_MARKER)) {
83
+ fs_1.default.readFileSync(initPath, "utf8") !== layout_1.MANAGED_INIT_SOURCE) {
97
84
  throw new Error("Hermes skill-plugin refuses to overwrite a hand-authored __init__.py; " +
98
85
  "remove it or point the plugin at an empty directory.");
99
86
  }
@@ -105,7 +92,7 @@ function writeSkillPlugin(canonical, root, pluginManifest) {
105
92
  const manifestChange = textChange(root, path_1.default.join(root, "plugin.yaml"), manifestYaml);
106
93
  if (manifestChange)
107
94
  changes.push(manifestChange);
108
- const initChange = textChange(root, path_1.default.join(root, "__init__.py"), INIT_PY);
95
+ const initChange = textChange(root, path_1.default.join(root, "__init__.py"), layout_1.MANAGED_INIT_SOURCE);
109
96
  if (initChange)
110
97
  changes.push(initChange);
111
98
  if (canonical.skills && Object.keys(canonical.skills).length > 0) {
@@ -126,7 +113,7 @@ function writeSkillPlugin(canonical, root, pluginManifest) {
126
113
  dirPath: (r) => path_1.default.join(r, "skills"),
127
114
  mainFileName: "SKILL.md",
128
115
  // Preserve ai-assets sidecars; Hermes loads SKILL.md and can follow relative refs.
129
- bundleKeys: ["references", "scripts", "assets"],
116
+ bundleKeys: ["references", "scripts", "assets", "files"],
130
117
  });
131
118
  changes.push(...mapping.write(root, flatSkills, TARGET));
132
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skill-plugin.js","sourceRoot":"","sources":["../../src/capabilities/skill-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-plugin.js","sourceRoot":"","sources":["../../src/capabilities/skill-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { CapabilityMapping } from "ai-jue-core";
2
2
  /**
3
- * `skills/<category>/<name>/SKILL.md` (+ optional `references/*`), verified
3
+ * `skills/<category>/<name>/SKILL.md` (+ optional support directories), verified
4
4
  * against a live Hermes installation's `~/.hermes/skills/` tree — e.g.
5
5
  * `skills/software-development/plan/SKILL.md`,
6
6
  * `skills/software-development/hermes-windows-maintenance/references/*.md`.
@@ -43,8 +43,8 @@ const yaml = __importStar(require("js-yaml"));
43
43
  const ai_jue_core_1 = require("ai-jue-core");
44
44
  const SAFE_SEGMENT = /^[a-zA-Z0-9][a-zA-Z0-9._-]*$/;
45
45
  const MAIN_FILE = "SKILL.md";
46
- /** Only bundle key actually observed on a live installation (e.g. `hermes-windows-maintenance/references/*.md`, `subagent-driven-development/references/*.md`). Unlike Claude's fixtures, no `scripts/`/`assets/` sibling was ever found, so this Adapter does not claim them. */
47
- const BUNDLE_KEYS = ["references"];
46
+ /** Skill-relative support files stay beside SKILL.md so portable Presets keep their complete contract. */
47
+ const BUNDLE_KEYS = ["references", "scripts", "assets"];
48
48
  function assertSafeSegment(kind, value) {
49
49
  if (!SAFE_SEGMENT.test(value)) {
50
50
  throw new Error(`Hermes skill ${kind} must be a safe single path segment: ${value}`);
@@ -90,7 +90,7 @@ function buildTextChange(target, root, absolutePath, newContent) {
90
90
  };
91
91
  }
92
92
  /**
93
- * `skills/<category>/<name>/SKILL.md` (+ optional `references/*`), verified
93
+ * `skills/<category>/<name>/SKILL.md` (+ optional support directories), verified
94
94
  * against a live Hermes installation's `~/.hermes/skills/` tree — e.g.
95
95
  * `skills/software-development/plan/SKILL.md`,
96
96
  * `skills/software-development/hermes-windows-maintenance/references/*.md`.
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/capabilities/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/capabilities/skills.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+EA,wBAoFC;AAnKD,4CAAoB;AACpB,gDAAwB;AACxB,8CAAgC;AAChC,6CAA4F;AAG5F,MAAM,YAAY,GAAG,8BAA8B,CAAC;AACpD,MAAM,SAAS,GAAG,UAAU,CAAC;AAC7B,0GAA0G;AAC1G,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAC;AAEjE,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAa;IACpD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,wCAAwC,KAAK,EAAE,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,YAAoB;IAC9D,OAAO,cAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,cAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,MAAM,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,IAAA,8BAAgB,EAAC,GAAG,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAyB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtG,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,qBAAqB,CAAC,UAA+B,EAAE,IAAY;IAC1E,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACtF,OAAO,QAAQ,eAAe,YAAY,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,YAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,eAAe,CACtB,MAAc,EACd,IAAY,EACZ,YAAoB,EACpB,UAAkB;IAElB,MAAM,MAAM,GAAG,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,YAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,IAAI,eAAe,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO;QACL,MAAM;QACN,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;QAClC,SAAS,EAAE,MAAM;QACjB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,oBAAoB,CAAC,IAAI,EAAE,YAAY,CAAC;QAC9C,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,iCAAmB,EAAC,eAAyB,CAAC,CAAC,CAAC,CAAC,IAAI;QAC1E,SAAS,EAAE,IAAA,iCAAmB,EAAC,UAAU,CAAC;QAC1C,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,KAAK;QACX,gBAAgB,EAAE,KAAK;QACvB,WAAW,EAAE,SAAS;KACvB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,MAAM;IACpB,OAAO;QACL,IAAI,CAAC,IAAI;YACP,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAwB,EAAE,CAAC;YACvC,KAAK,MAAM,aAAa,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACjF,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBAC7D,KAAK,MAAM,SAAS,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;oBACtD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;wBAAE,SAAS;oBACvC,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;oBACvD,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBACnD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC;wBAAE,SAAS;oBAC3C,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;oBACnE,MAAM,KAAK,GAAwB,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;oBAC/E,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;wBACpC,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;wBAChD,MAAM,KAAK,GAA2B,EAAE,CAAC;wBACzC,KAAK,MAAM,SAAS,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;4BACpD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;gCAAE,SAAS;4BAClC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;wBACxF,CAAC;wBACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;4BAAE,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;oBAC9D,CAAC;oBACD,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;gBAC5D,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,CAAC;QACD,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM;YACvB,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAqB,EAAE,CAAC;YACrC,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC/B,uEAAuE;gBACvE,wEAAwE;gBACxE,uEAAuE;gBACvE,oEAAoE;gBACpE,qEAAqE;gBACrE,sEAAsE;gBACtE,6DAA6D;gBAC7D,0EAA0E;gBAC1E,qBAAqB;gBACrB,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxD,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/D,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACtD,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACxC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAChC,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAErD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,QAA+B,CAAC;gBACrE,MAAM,OAAO,GAAuD,EAAE,CAAC;gBACvE,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;oBACpC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;oBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;gBACzB,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACnD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACtF,IAAI,MAAM;oBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAEjC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzD,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;wBAClE,4DAA4D;wBAC5D,4DAA4D;wBAC5D,8DAA8D;wBAC9D,wDAAwD;wBACxD,uDAAuD;wBACvD,sDAAsD;wBACtD,iBAAiB;wBACjB,MAAM,YAAY,GAAG,eAAe,CAClC,MAAM,EACN,IAAI,EACJ,IAAA,oCAAsB,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,EAC/D,MAAM,CAAC,WAAW,CAAC,CACpB,CAAC;wBACF,IAAI,YAAY;4BAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/confirm.d.ts CHANGED
@@ -7,16 +7,12 @@ export interface ConfirmContext extends CoreConfirmContext {
7
7
  * Hermes v0.18.0 has no per-file validate command analogous to
8
8
  * `claude plugin validate --strict` (Claude) or
9
9
  * `codex plugin marketplace add <local>` (Codex). The strongest native
10
- * confirmation path is the real Hermes `tirith` binary
11
- * (D:\devuser\.hermes\bin\tirith, 9.8MB), which exposes
12
- * `config validate` for the on-disk config tree.
10
+ * confirmation path is the Hermes `tirith` binary on PATH, which
11
+ * exposes `config validate` for the on-disk config tree.
13
12
  *
14
- * We invoke `tirith config validate <artifactRoot>` against the
15
- * freshly-written workspace (Atomically swap the real cwr fixture
16
- * into a temp HOME, run validate, swap back — preserves the operator's
17
- * real Hermes state in the rare case the user has one on the same
18
- * machine, even though in this contract test we use a freshly-built
19
- * workspace).
13
+ * Live Agent consumption is verified out of band over SSH against an
14
+ * isolated HOME and is not committed. In-repo confirmation uses
15
+ * structural fixtures only.
20
16
  *
21
17
  * For workspace scope, `tirith` validates the config tree. For the thin
22
18
  * skill-plugin Artifact, the generated plugin surface provides structural
package/dist/confirm.js CHANGED
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
@@ -8,22 +41,42 @@ const child_process_1 = require("child_process");
8
41
  const fs_1 = require("fs");
9
42
  const os_1 = __importDefault(require("os"));
10
43
  const path_1 = __importDefault(require("path"));
44
+ const url_1 = require("url");
45
+ const yaml = __importStar(require("js-yaml"));
11
46
  const layout_1 = require("./capabilities/layout");
12
47
  const TARGET = "hermes";
48
+ const SAFE_IDENTITY = /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
49
+ function minimalEnvironment(home) {
50
+ const env = { HOME: home, USERPROFILE: home, HERMES_HOME: home };
51
+ for (const key of ["PATH", "SystemRoot", "ComSpec", "PATHEXT", "TEMP", "TMP"]) {
52
+ if (process.env[key])
53
+ env[key] = process.env[key];
54
+ }
55
+ return env;
56
+ }
57
+ function isRegularContained(root, candidate) {
58
+ try {
59
+ if (!(0, fs_1.lstatSync)(candidate).isFile())
60
+ return false;
61
+ const realRoot = (0, fs_1.realpathSync)(root);
62
+ const realCandidate = (0, fs_1.realpathSync)(candidate);
63
+ const relative = path_1.default.relative(realRoot, realCandidate);
64
+ return relative === "" || (!relative.startsWith(`..${path_1.default.sep}`) && relative !== ".." && !path_1.default.isAbsolute(relative));
65
+ }
66
+ catch {
67
+ return false;
68
+ }
69
+ }
13
70
  /**
14
71
  * Hermes v0.18.0 has no per-file validate command analogous to
15
72
  * `claude plugin validate --strict` (Claude) or
16
73
  * `codex plugin marketplace add <local>` (Codex). The strongest native
17
- * confirmation path is the real Hermes `tirith` binary
18
- * (D:\devuser\.hermes\bin\tirith, 9.8MB), which exposes
19
- * `config validate` for the on-disk config tree.
74
+ * confirmation path is the Hermes `tirith` binary on PATH, which
75
+ * exposes `config validate` for the on-disk config tree.
20
76
  *
21
- * We invoke `tirith config validate <artifactRoot>` against the
22
- * freshly-written workspace (Atomically swap the real cwr fixture
23
- * into a temp HOME, run validate, swap back — preserves the operator's
24
- * real Hermes state in the rare case the user has one on the same
25
- * machine, even though in this contract test we use a freshly-built
26
- * workspace).
77
+ * Live Agent consumption is verified out of band over SSH against an
78
+ * isolated HOME and is not committed. In-repo confirmation uses
79
+ * structural fixtures only.
27
80
  *
28
81
  * For workspace scope, `tirith` validates the config tree. For the thin
29
82
  * skill-plugin Artifact, the generated plugin surface provides structural
@@ -33,27 +86,45 @@ async function confirm(_results, context) {
33
86
  if ((context.artifactKind ?? (0, layout_1.detectArtifactKind)(context.artifactRoot)) === "skill-plugin") {
34
87
  const manifest = path_1.default.join(context.artifactRoot, "plugin.yaml");
35
88
  const initializer = path_1.default.join(context.artifactRoot, "__init__.py");
36
- if (!(0, fs_1.existsSync)(manifest) || !(0, fs_1.existsSync)(initializer)) {
89
+ if (!isRegularContained(context.artifactRoot, manifest) ||
90
+ !isRegularContained(context.artifactRoot, initializer)) {
37
91
  return {
38
92
  target: TARGET,
39
93
  status: "failed",
40
- evidence: "skill-plugin requires plugin.yaml and __init__.py",
94
+ evidence: "skill-plugin requires contained regular plugin.yaml and __init__.py files",
41
95
  };
42
96
  }
43
97
  const initSource = (0, fs_1.readFileSync)(initializer, "utf8");
44
- if (!initSource.includes("register_skill")) {
98
+ if (initSource !== layout_1.MANAGED_INIT_SOURCE) {
45
99
  return {
46
100
  target: TARGET,
47
101
  status: "failed",
48
- evidence: "skill-plugin __init__.py does not register skills",
102
+ evidence: "skill-plugin __init__.py does not match the managed initializer",
49
103
  };
50
104
  }
105
+ let manifestIdentity = "";
106
+ try {
107
+ const parsed = yaml.load((0, fs_1.readFileSync)(manifest, "utf8"));
108
+ if (typeof parsed?.name !== "string" ||
109
+ !SAFE_IDENTITY.test(parsed.name) ||
110
+ typeof parsed.version !== "string" ||
111
+ !parsed.version.trim()) {
112
+ throw new Error("invalid identity");
113
+ }
114
+ manifestIdentity = parsed.name;
115
+ }
116
+ catch {
117
+ return { target: TARGET, status: "failed", evidence: "skill-plugin manifest identity is invalid" };
118
+ }
51
119
  const skillsRoot = path_1.default.join(context.artifactRoot, "skills");
52
120
  if ((0, fs_1.existsSync)(skillsRoot)) {
121
+ if ((0, fs_1.lstatSync)(skillsRoot).isSymbolicLink() || !(0, fs_1.lstatSync)(skillsRoot).isDirectory()) {
122
+ return { target: TARGET, status: "failed", evidence: "skill-plugin skills root must be a regular directory" };
123
+ }
53
124
  for (const entry of (0, fs_1.readdirSync)(skillsRoot, { withFileTypes: true })) {
54
125
  if (!entry.isDirectory())
55
126
  continue;
56
- if (!(0, fs_1.existsSync)(path_1.default.join(skillsRoot, entry.name, "SKILL.md"))) {
127
+ if (!isRegularContained(context.artifactRoot, path_1.default.join(skillsRoot, entry.name, "SKILL.md"))) {
57
128
  return {
58
129
  target: TARGET,
59
130
  status: "failed",
@@ -62,11 +133,42 @@ async function confirm(_results, context) {
62
133
  }
63
134
  }
64
135
  }
65
- return {
66
- target: TARGET,
67
- status: "confirmed",
68
- evidence: "Hermes skill-plugin structure validated: plugin.yaml, register_skill initializer, and skill roots",
69
- };
136
+ const tempHome = (0, fs_1.mkdtempSync)(path_1.default.join(os_1.default.tmpdir(), "jue-hermes-plugin-confirm-"));
137
+ try {
138
+ const sourceRepo = path_1.default.join(tempHome, "source");
139
+ (0, fs_1.mkdirSync)(sourceRepo);
140
+ (0, fs_1.cpSync)(context.artifactRoot, sourceRepo, { recursive: true });
141
+ const env = minimalEnvironment(tempHome);
142
+ (0, child_process_1.execFileSync)("git", ["init", "--quiet"], { cwd: sourceRepo, env, stdio: "ignore" });
143
+ (0, child_process_1.execFileSync)("git", ["add", "."], { cwd: sourceRepo, env, stdio: "ignore" });
144
+ (0, child_process_1.execFileSync)("git", ["-c", "user.name=ai-jue", "-c", "user.email=ai-jue", "commit", "--quiet", "-m", "verify"], { cwd: sourceRepo, env, stdio: "ignore" });
145
+ (0, child_process_1.execFileSync)("hermes", ["plugins", "install", (0, url_1.pathToFileURL)(sourceRepo).href, "--no-enable"], {
146
+ encoding: "utf8",
147
+ env,
148
+ stdio: ["ignore", "pipe", "pipe"],
149
+ timeout: 20000,
150
+ });
151
+ const listOutput = (0, child_process_1.execFileSync)("hermes", ["plugins", "list", "--user", "--json"], {
152
+ encoding: "utf8",
153
+ env,
154
+ stdio: ["ignore", "pipe", "pipe"],
155
+ timeout: 10000,
156
+ });
157
+ const inventory = JSON.parse(listOutput);
158
+ if (!JSON.stringify(inventory).includes(manifestIdentity)) {
159
+ return { target: TARGET, status: "failed", evidence: "Hermes plugin inventory is missing the installed identity" };
160
+ }
161
+ return { target: TARGET, status: "confirmed", evidence: "Hermes isolated install and inventory confirmed the skill-plugin" };
162
+ }
163
+ catch (error) {
164
+ if (error?.code === "ENOENT") {
165
+ return { target: TARGET, status: "unconfirmed", evidence: "Hermes CLI is unavailable; native install was not run" };
166
+ }
167
+ return { target: TARGET, status: "failed", evidence: "Hermes isolated plugin install or inventory confirmation failed" };
168
+ }
169
+ finally {
170
+ (0, fs_1.rmSync)(tempHome, { recursive: true, force: true });
171
+ }
70
172
  }
71
173
  if (!(0, fs_1.existsSync)(context.artifactRoot)) {
72
174
  return { target: TARGET, status: "failed", evidence: "artifactRoot does not exist" };
@@ -82,7 +184,7 @@ async function confirm(_results, context) {
82
184
  // shell to tokenize it.
83
185
  const result = (0, child_process_1.execFileSync)("tirith", ["config", "validate", context.artifactRoot], {
84
186
  encoding: "utf8",
85
- env: { ...process.env, HOME: tempHome, HERMES_HOME: tempHome },
187
+ env: minimalEnvironment(tempHome),
86
188
  stdio: ["ignore", "pipe", "pipe"],
87
189
  timeout: 10000,
88
190
  });
@@ -90,13 +192,13 @@ async function confirm(_results, context) {
90
192
  return {
91
193
  target: TARGET,
92
194
  status: "failed",
93
- evidence: `tirith config validate returned non-clean: ${result.slice(0, 500)}`,
195
+ evidence: "tirith config validate returned a non-clean result",
94
196
  };
95
197
  }
96
198
  return {
97
199
  target: TARGET,
98
200
  status: "confirmed",
99
- evidence: `tirith config validate ran cleanly against ${context.artifactRoot}: ${result.slice(0, 200)}`,
201
+ evidence: "tirith config validate completed cleanly in an isolated home",
100
202
  };
101
203
  }
102
204
  catch (error) {
@@ -107,16 +209,10 @@ async function confirm(_results, context) {
107
209
  evidence: "tirith is not available on PATH; workspace validation was not run",
108
210
  };
109
211
  }
110
- const stderr = error && typeof error === "object" && "stderr" in error
111
- ? String(error.stderr)
112
- : "";
113
- const stdout = error && typeof error === "object" && "stdout" in error
114
- ? String(error.stdout)
115
- : "";
116
212
  return {
117
213
  target: TARGET,
118
214
  status: "failed",
119
- evidence: `tirith config validate failed: exit=${error.status} stdout=${stdout.slice(0, 300)} stderr=${stderr.slice(0, 300)}`,
215
+ evidence: `tirith config validate failed with exit=${error.status ?? "unknown"}`,
120
216
  };
121
217
  }
122
218
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../src/confirm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../src/confirm.ts"],"names":[],"mappings":"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"}
package/dist/read.d.ts CHANGED
@@ -2,7 +2,7 @@ import type { CanonicalDocument, ReadContext as CoreReadContext } from "ai-jue-c
2
2
  export type ReadContext = CoreReadContext;
3
3
  /**
4
4
  * Hermes Adapter's read: thin composition over a small subset of the
5
- * real `cwr:/d/devuser/.hermes` surface — per the JUE-303 honest-stance
5
+ * documented Hermes home surface — per the JUE-303 honest-stance
6
6
  * principle, only the surfaces we have ground-truth evidence for:
7
7
  * - `context.global` ← workspace-root `MEMORY.md`
8
8
  * - `hooks` ← empty no-op (the real ~/.hermes/hooks/ is empty)
package/dist/read.js CHANGED
@@ -8,7 +8,7 @@ const mcp_1 = require("./capabilities/mcp");
8
8
  const skills_1 = require("./capabilities/skills");
9
9
  /**
10
10
  * Hermes Adapter's read: thin composition over a small subset of the
11
- * real `cwr:/d/devuser/.hermes` surface — per the JUE-303 honest-stance
11
+ * documented Hermes home surface — per the JUE-303 honest-stance
12
12
  * principle, only the surfaces we have ground-truth evidence for:
13
13
  * - `context.global` ← workspace-root `MEMORY.md`
14
14
  * - `hooks` ← empty no-op (the real ~/.hermes/hooks/ is empty)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-jue-adapter-hermes",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "Adapter for generating Hermes configurations.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,14 +18,17 @@
18
18
  "js-yaml": "^4.3.1"
19
19
  },
20
20
  "peerDependencies": {
21
- "ai-jue-core": "^2.0.0"
21
+ "ai-jue-core": "^2.0.1"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/js-yaml": "^4.0.9",
25
- "ai-jue-core": "^2.0.0",
25
+ "ai-jue-core": "^2.0.1",
26
26
  "typescript": "^5.0.0"
27
27
  },
28
- "author": "AI-Jue Team <contact@ai-jue.dev>",
28
+ "author": {
29
+ "name": "ZenHeart",
30
+ "url": "https://github.com/zenHeart"
31
+ },
29
32
  "license": "MIT",
30
33
  "repository": {
31
34
  "type": "git",