@miller-tech/uap 1.22.0 → 1.26.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.
Files changed (91) hide show
  1. package/README.md +65 -21
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/benchmarks/token-throughput.d.ts +53 -53
  4. package/dist/bin/cli.js +88 -5
  5. package/dist/bin/cli.js.map +1 -1
  6. package/dist/bin/llama-server-optimize.js +0 -0
  7. package/dist/bin/policy.js +0 -0
  8. package/dist/cli/agent.js +1 -1
  9. package/dist/cli/agent.js.map +1 -1
  10. package/dist/cli/droids.d.ts +21 -1
  11. package/dist/cli/droids.d.ts.map +1 -1
  12. package/dist/cli/droids.js +142 -0
  13. package/dist/cli/droids.js.map +1 -1
  14. package/dist/cli/expert-route.d.ts +11 -0
  15. package/dist/cli/expert-route.d.ts.map +1 -0
  16. package/dist/cli/expert-route.js +67 -0
  17. package/dist/cli/expert-route.js.map +1 -0
  18. package/dist/cli/harness.d.ts +24 -0
  19. package/dist/cli/harness.d.ts.map +1 -0
  20. package/dist/cli/harness.js +84 -0
  21. package/dist/cli/harness.js.map +1 -0
  22. package/dist/cli/hooks.d.ts +13 -2
  23. package/dist/cli/hooks.d.ts.map +1 -1
  24. package/dist/cli/hooks.js +333 -3
  25. package/dist/cli/hooks.js.map +1 -1
  26. package/dist/cli/ideate.d.ts +18 -0
  27. package/dist/cli/ideate.d.ts.map +1 -0
  28. package/dist/cli/ideate.js +148 -0
  29. package/dist/cli/ideate.js.map +1 -0
  30. package/dist/cli/patterns.js +55 -0
  31. package/dist/cli/patterns.js.map +1 -1
  32. package/dist/cli/setup.d.ts.map +1 -1
  33. package/dist/cli/setup.js +14 -1
  34. package/dist/cli/setup.js.map +1 -1
  35. package/dist/coordination/capability-router.d.ts +1 -1
  36. package/dist/coordination/capability-router.d.ts.map +1 -1
  37. package/dist/coordination/capability-router.js +132 -0
  38. package/dist/coordination/capability-router.js.map +1 -1
  39. package/dist/coordination/expert-orchestrator.d.ts +66 -0
  40. package/dist/coordination/expert-orchestrator.d.ts.map +1 -0
  41. package/dist/coordination/expert-orchestrator.js +150 -0
  42. package/dist/coordination/expert-orchestrator.js.map +1 -0
  43. package/dist/coordination/service.d.ts +8 -1
  44. package/dist/coordination/service.d.ts.map +1 -1
  45. package/dist/coordination/service.js +18 -4
  46. package/dist/coordination/service.js.map +1 -1
  47. package/dist/mcp-router/experts/registry.d.ts +54 -0
  48. package/dist/mcp-router/experts/registry.d.ts.map +1 -0
  49. package/dist/mcp-router/experts/registry.js +143 -0
  50. package/dist/mcp-router/experts/registry.js.map +1 -0
  51. package/dist/mcp-router/index.d.ts +2 -0
  52. package/dist/mcp-router/index.d.ts.map +1 -1
  53. package/dist/mcp-router/index.js +1 -0
  54. package/dist/mcp-router/index.js.map +1 -1
  55. package/dist/mcp-router/server.d.ts.map +1 -1
  56. package/dist/mcp-router/server.js +16 -0
  57. package/dist/mcp-router/server.js.map +1 -1
  58. package/dist/mcp-router/tools/execute.d.ts.map +1 -1
  59. package/dist/mcp-router/tools/execute.js +40 -0
  60. package/dist/mcp-router/tools/execute.js.map +1 -1
  61. package/dist/models/planner.d.ts +7 -1
  62. package/dist/models/planner.d.ts.map +1 -1
  63. package/dist/models/planner.js +61 -0
  64. package/dist/models/planner.js.map +1 -1
  65. package/dist/models/types.d.ts +14 -12
  66. package/dist/models/types.d.ts.map +1 -1
  67. package/dist/models/types.js.map +1 -1
  68. package/dist/observability/halo-exporter.d.ts +86 -0
  69. package/dist/observability/halo-exporter.d.ts.map +1 -0
  70. package/dist/observability/halo-exporter.js +139 -0
  71. package/dist/observability/halo-exporter.js.map +1 -0
  72. package/dist/telemetry/session-telemetry.d.ts.map +1 -1
  73. package/dist/telemetry/session-telemetry.js +7 -0
  74. package/dist/telemetry/session-telemetry.js.map +1 -1
  75. package/dist/types/config.d.ts +170 -170
  76. package/docs/architecture/EXPERT_STACK.md +137 -0
  77. package/docs/architecture/PLATFORM_GATING.md +68 -0
  78. package/docs/reference/EXPERT_DROIDS.md +219 -0
  79. package/package.json +1 -1
  80. package/templates/hooks/pre-tool-use-edit-write.sh +29 -8
  81. package/templates/hooks/uap-policy-gate-hermes.sh +42 -0
  82. package/tools/agents/scripts/anthropic_proxy.py +166 -30
  83. package/tools/agents/tests/test_attractor_detection.py +213 -0
  84. package/dist/utils/baseline-metrics.d.ts +0 -21
  85. package/dist/utils/baseline-metrics.d.ts.map +0 -1
  86. package/dist/utils/baseline-metrics.js +0 -111
  87. package/dist/utils/baseline-metrics.js.map +0 -1
  88. package/tools/agents/__pycache__/claude_local_agent.cpython-313.pyc +0 -0
  89. package/tools/agents/__pycache__/opencode_uap_agent.cpython-313.pyc +0 -0
  90. package/tools/agents/scripts/__pycache__/anthropic_proxy.cpython-313.pyc +0 -0
  91. package/tools/agents/tests/__pycache__/test_anthropic_proxy_streaming.cpython-313-pytest-9.0.2.pyc +0 -0
package/dist/cli/hooks.js CHANGED
@@ -1,10 +1,13 @@
1
1
  import chalk from 'chalk';
2
2
  import { existsSync, mkdirSync, copyFileSync, readFileSync, writeFileSync, chmodSync } from 'fs';
3
3
  import { join, dirname } from 'path';
4
+ import { homedir } from 'os';
4
5
  import { fileURLToPath } from 'url';
6
+ import yaml from 'js-yaml';
5
7
  const __filename = fileURLToPath(import.meta.url);
6
8
  const __dirname = dirname(__filename);
7
- const ALL_TARGETS = [
9
+ // Single source of truth for supported platforms.
10
+ export const ALL_TARGETS = [
8
11
  'claude',
9
12
  'factory',
10
13
  'cursor',
@@ -13,6 +16,7 @@ const ALL_TARGETS = [
13
16
  'codex',
14
17
  'forgecode',
15
18
  'omp',
19
+ 'hermes',
16
20
  ];
17
21
  function normalizeTarget(target) {
18
22
  if (!target)
@@ -21,10 +25,19 @@ function normalizeTarget(target) {
21
25
  return 'claude';
22
26
  return target;
23
27
  }
28
+ // Project-local platforms. Hermes is excluded from the default install loop
29
+ // because its config is GLOBAL (~/.hermes) — installing it requires the
30
+ // explicit `-t hermes` so a project-level `uap hooks install` never silently
31
+ // writes the user's global Hermes config. status/doctor still report all.
32
+ const PROJECT_TARGETS = ALL_TARGETS.filter((t) => t !== 'hermes');
24
33
  export async function hooksCommand(action, options = {}) {
25
34
  const cwd = options.projectDir || process.cwd();
26
35
  const normalized = normalizeTarget(options.target);
27
- const targets = normalized ? [normalized] : ALL_TARGETS;
36
+ const targets = normalized
37
+ ? [normalized]
38
+ : action === 'install'
39
+ ? PROJECT_TARGETS
40
+ : ALL_TARGETS;
28
41
  switch (action) {
29
42
  case 'install':
30
43
  for (const target of targets) {
@@ -36,6 +49,9 @@ export async function hooksCommand(action, options = {}) {
36
49
  await showHooksStatusForTarget(cwd, target);
37
50
  }
38
51
  break;
52
+ case 'doctor':
53
+ hooksDoctor(cwd, targets);
54
+ break;
39
55
  }
40
56
  }
41
57
  function getTemplateHooksDir() {
@@ -65,6 +81,10 @@ function copyHookScripts(targetHooksDir) {
65
81
  'post-compact.sh',
66
82
  'stop.sh',
67
83
  'session-end.sh',
84
+ // The DB-driven policy gate (policies.db + .policy-tools/*.py). Without it,
85
+ // every platform that registers `uap-policy-gate.sh` in its settings points
86
+ // at a script that was never placed → the gate silently no-ops.
87
+ 'uap-policy-gate.sh',
68
88
  ];
69
89
  for (const file of hookFiles) {
70
90
  const src = join(templateHooksDir, file);
@@ -242,15 +262,23 @@ async function installFactoryHooks(cwd) {
242
262
  ],
243
263
  PreToolUse: [
244
264
  {
245
- matcher: 'Edit|Write',
265
+ matcher: 'Edit|Write|MultiEdit',
246
266
  hooks: [
247
267
  { type: 'command', command: '"$FACTORY_PROJECT_DIR"/.factory/hooks/pre-tool-use-edit-write.sh' },
268
+ { type: 'command', command: '"$FACTORY_PROJECT_DIR"/.factory/hooks/uap-policy-gate.sh' },
248
269
  ],
249
270
  },
250
271
  {
251
272
  matcher: 'Bash',
252
273
  hooks: [
253
274
  { type: 'command', command: '"$FACTORY_PROJECT_DIR"/.factory/hooks/pre-tool-use-bash.sh' },
275
+ { type: 'command', command: '"$FACTORY_PROJECT_DIR"/.factory/hooks/uap-policy-gate.sh' },
276
+ ],
277
+ },
278
+ {
279
+ matcher: 'Task|Agent|ToolSearch|ExitPlanMode',
280
+ hooks: [
281
+ { type: 'command', command: '"$FACTORY_PROJECT_DIR"/.factory/hooks/uap-policy-gate.sh' },
254
282
  ],
255
283
  },
256
284
  ],
@@ -430,6 +458,9 @@ async function installOpencodeHooks(cwd) {
430
458
  mkdirSync(pluginDir, { recursive: true });
431
459
  console.log(chalk.dim(` Created ${pluginDir}`));
432
460
  }
461
+ // The plugin's tool.execute.before gate shells out to uap-policy-gate.sh,
462
+ // so the hook scripts (incl. the gate) must be present under .opencode/hooks.
463
+ copyHookScripts(join(cwd, '.opencode', 'hooks'));
433
464
  const dbPath = './agents/data/memory/short_term.db';
434
465
  const coordDbPath = './agents/data/coordination/coordination.db';
435
466
  const pluginContent = [
@@ -475,6 +506,21 @@ async function installOpencodeHooks(cwd) {
475
506
  ' }',
476
507
  ' },',
477
508
  '',
509
+ ' // Pre-tool-use policy gate. OpenCode aborts the tool call when this',
510
+ ' // hook throws, so a blocked verdict (exit 2) becomes a hard block.',
511
+ ' "tool.execute.before": async (input, output) => {',
512
+ ' try {',
513
+ ' const payload = JSON.stringify({ tool_name: input.tool, tool_input: (output && output.args) || {} })',
514
+ ' const res = await $`echo ${payload} | bash .opencode/hooks/uap-policy-gate.sh`.quiet().nothrow()',
515
+ ' if (res.exitCode === 2) {',
516
+ ' const reason = (res.stderr.toString() || res.stdout.toString()).trim()',
517
+ ' throw new Error("[UAP policy blocked] " + reason)',
518
+ ' }',
519
+ ' } catch (e) {',
520
+ ' if (e instanceof Error && e.message.indexOf("[UAP policy blocked]") === 0) throw e',
521
+ ' }',
522
+ ' },',
523
+ '',
478
524
  ' "experimental.session.compacting": async (_input, output) => {',
479
525
  ' try {',
480
526
  ' const timestamp = new Date().toISOString()',
@@ -542,6 +588,7 @@ async function installCodexHooks(cwd) {
542
588
  '',
543
589
  'The following enforcement hooks are installed and run automatically:',
544
590
  '',
591
+ '- **uap-policy-gate.sh** - DB-driven policy gate (policies.db + .policy-tools/*.py)',
545
592
  '- **pre-tool-use-edit-write.sh** - Blocks edits outside worktree directories',
546
593
  '- **pre-tool-use-bash.sh** - Blocks dangerous commands (force push, terraform apply, etc)',
547
594
  '- **post-tool-use-edit-write.sh** - Runs build gate + backup reminder after edits',
@@ -549,6 +596,13 @@ async function installCodexHooks(cwd) {
549
596
  '- **stop.sh** - Completion gate checklist + session cleanup',
550
597
  '- **session-end.sh** - Agent deregistration + backup retention',
551
598
  '',
599
+ '> **Gating note (Codex):** Codex CLI has no native pre-tool-use *hook event*,',
600
+ '> so it cannot auto-run these scripts before every tool the way Claude Code does.',
601
+ '> Policy gating is enforced two ways: (1) **hard** for tools routed through the',
602
+ '> UAP MCP server (`[mcp_servers.uap]` below) — `execute_tool` runs the PolicyGate;',
603
+ '> (2) **advisory** for Codex-native edit/bash — run `bash .codex/hooks/uap-policy-gate.sh`',
604
+ '> per the lifecycle above. `uap hooks doctor` reports Codex as MCP-gated.',
605
+ '',
552
606
  '## Memory System',
553
607
  '',
554
608
  'UAP provides persistent memory across sessions. Use these commands:',
@@ -903,6 +957,8 @@ async function installOmpHooks(cwd) {
903
957
  'pre-compact.sh',
904
958
  'pre-tool-use-edit-write.sh',
905
959
  'pre-tool-use-bash.sh',
960
+ 'uap-policy-gate.sh',
961
+ 'loop-protection.sh',
906
962
  ];
907
963
  for (const file of preHookFiles) {
908
964
  const src = join(getTemplateHooksDir(), file);
@@ -948,6 +1004,8 @@ async function installOmpHooks(cwd) {
948
1004
  policyEnforcement: true,
949
1005
  hooks: {
950
1006
  preSession: '.uap/omp/hooks/pre/session-start.sh',
1007
+ // Backs the policyEnforcement flag above — the DB-driven policy gate.
1008
+ preToolUsePolicyGate: '.uap/omp/hooks/pre/uap-policy-gate.sh',
951
1009
  preToolUseEditWrite: '.uap/omp/hooks/pre/pre-tool-use-edit-write.sh',
952
1010
  preToolUseBash: '.uap/omp/hooks/pre/pre-tool-use-bash.sh',
953
1011
  preCompact: '.uap/omp/hooks/pre/pre-compact.sh',
@@ -974,6 +1032,117 @@ async function installOmpHooks(cwd) {
974
1032
  chalk.gray(' (links hooks and dashboard to omp)'));
975
1033
  }
976
1034
  // --- Dispatcher ---
1035
+ // --- Hermes Agent (NousResearch) ---
1036
+ /** Resolve the Hermes config home ($HERMES_HOME or ~/.hermes). */
1037
+ function hermesHome() {
1038
+ return process.env.HERMES_HOME || join(homedir(), '.hermes');
1039
+ }
1040
+ /** Add an entry to a Hermes hook-event array, de-duped by command. */
1041
+ function mergeHermesHook(existing, entry) {
1042
+ const arr = Array.isArray(existing) ? existing : [];
1043
+ if (arr.some((e) => e && e.command === entry.command))
1044
+ return arr;
1045
+ return [...arr, entry];
1046
+ }
1047
+ /**
1048
+ * Hermes Agent uses a GLOBAL config at ~/.hermes/config.yaml (not project-local).
1049
+ * Hermes hooks are fail-open and Claude-Code-compatible: `pre_tool_call` blocks
1050
+ * via a stdout `{"decision":"block"}` JSON, which our uap-policy-gate-hermes.sh
1051
+ * wrapper emits. Memory injection rides `pre_llm_call` (cache-safe). Droids are
1052
+ * surfaced via a skills bridge + the UAP MCP `experts.<name>` tools.
1053
+ */
1054
+ async function installHermesHooks(_cwd) {
1055
+ console.log(chalk.bold('\n Installing UAP Hooks for Hermes Agent (NousResearch)\n'));
1056
+ if (!ensureTemplateHooksExist())
1057
+ return;
1058
+ const home = hermesHome();
1059
+ const agentHooksDir = join(home, 'agent-hooks');
1060
+ copyHookScripts(agentHooksDir);
1061
+ // Hermes-specific gate (translates exit-2 → stdout block JSON; fail-open-safe).
1062
+ const hermesGateSrc = join(getTemplateHooksDir(), 'uap-policy-gate-hermes.sh');
1063
+ const hermesGateDest = join(agentHooksDir, 'uap-policy-gate-hermes.sh');
1064
+ if (existsSync(hermesGateSrc)) {
1065
+ copyFileSync(hermesGateSrc, hermesGateDest);
1066
+ chmodSync(hermesGateDest, 0o755);
1067
+ console.log(chalk.green(' + agent-hooks/uap-policy-gate-hermes.sh'));
1068
+ }
1069
+ else {
1070
+ console.log(chalk.yellow(' - uap-policy-gate-hermes.sh (template not found)'));
1071
+ }
1072
+ // Merge into ~/.hermes/config.yaml (preserve existing keys).
1073
+ const configPath = join(home, 'config.yaml');
1074
+ let config = {};
1075
+ if (existsSync(configPath)) {
1076
+ try {
1077
+ config = yaml.load(readFileSync(configPath, 'utf-8')) || {};
1078
+ }
1079
+ catch {
1080
+ console.log(chalk.yellow(' ~ config.yaml unparseable — merging into a fresh document'));
1081
+ }
1082
+ }
1083
+ const hooks = config.hooks || {};
1084
+ hooks.pre_tool_call = mergeHermesHook(hooks.pre_tool_call, {
1085
+ matcher: 'write_file|patch|edit|terminal|bash|run|apply',
1086
+ command: hermesGateDest,
1087
+ timeout: 15,
1088
+ });
1089
+ hooks.on_session_start = mergeHermesHook(hooks.on_session_start, {
1090
+ command: join(agentHooksDir, 'session-start.sh'),
1091
+ });
1092
+ config.hooks = hooks;
1093
+ const mcp = config.mcp_servers || {};
1094
+ if (!mcp.uap) {
1095
+ mcp.uap = { command: 'uap', args: ['mcp-router', 'start'], enabled: true };
1096
+ }
1097
+ config.mcp_servers = mcp;
1098
+ // Droid bridge: a skills external dir + an index skill pointing at UAP experts.
1099
+ const skills = config.skills || {};
1100
+ const skillsDir = join(home, 'uap-skills');
1101
+ const extDirs = Array.isArray(skills.external_dirs) ? skills.external_dirs : [];
1102
+ if (!extDirs.includes(skillsDir))
1103
+ extDirs.push(skillsDir);
1104
+ skills.external_dirs = extDirs;
1105
+ config.skills = skills;
1106
+ writeFileSync(configPath, yaml.dump(config, { lineWidth: 100 }));
1107
+ console.log(chalk.green(' + config.yaml (pre_tool_call gate, on_session_start, mcp_servers.uap, skills)'));
1108
+ // Write the droid→skill bridge so Hermes can discover UAP experts.
1109
+ const expertSkillDir = join(skillsDir, 'uap-experts');
1110
+ mkdirSync(expertSkillDir, { recursive: true });
1111
+ const bridge = [
1112
+ '---',
1113
+ 'name: uap-experts',
1114
+ 'description: Consult UAP expert droids (architecture, security, testing, review, planning) for specialized guidance.',
1115
+ 'metadata:',
1116
+ ' hermes:',
1117
+ ' tags: [uap, experts, review, architecture]',
1118
+ 'version: 1',
1119
+ '---',
1120
+ '# UAP Expert Droids',
1121
+ '',
1122
+ 'UAP ships a roster of expert droids. Hermes has no per-file persona registry,',
1123
+ 'so consult them through UAP instead of defining them as personalities:',
1124
+ '',
1125
+ '- `uap expert-route "<task>"` — get the recommended expert chain for a task.',
1126
+ '- Via the UAP MCP server (`mcp_servers.uap`): `discover_tools "<need>"` then',
1127
+ ' `execute_tool experts.<droid> { context }` to consult a specific expert',
1128
+ ' (e.g. `experts.architect-reviewer`, `experts.security-auditor`).',
1129
+ '',
1130
+ '## When to Use',
1131
+ 'Before non-trivial design, review, or release work — route to the matching expert.',
1132
+ '',
1133
+ '## Verification',
1134
+ 'Run `uap droids list` to see the available experts.',
1135
+ '',
1136
+ ].join('\n');
1137
+ writeFileSync(join(expertSkillDir, 'SKILL.md'), bridge);
1138
+ console.log(chalk.green(' + uap-skills/uap-experts/SKILL.md (droid bridge)'));
1139
+ console.log(chalk.bold.green('\n Hermes Agent hooks installed successfully!'));
1140
+ console.log(chalk.dim(' Config: ') + chalk.cyan(configPath) + '\n' +
1141
+ chalk.dim(' Note: Hermes prompts once to approve each hook command (stored in\n') +
1142
+ chalk.dim(' ~/.hermes/shell-hooks-allowlist.json). Approve the UAP gate, or set\n') +
1143
+ chalk.dim(' hooks_auto_accept: true in config.yaml. Hermes hooks are fail-open —\n') +
1144
+ chalk.dim(' the UAP gate always emits a decision JSON so real blocks are enforced.\n'));
1145
+ }
977
1146
  async function installHooksForTarget(cwd, target) {
978
1147
  switch (target) {
979
1148
  case 'claude':
@@ -992,6 +1161,8 @@ async function installHooksForTarget(cwd, target) {
992
1161
  return installForgeCodeHooks(cwd);
993
1162
  case 'omp':
994
1163
  return installOmpHooks(cwd);
1164
+ case 'hermes':
1165
+ return installHermesHooks(cwd);
995
1166
  }
996
1167
  }
997
1168
  const HOOK_FILES = [
@@ -1172,6 +1343,165 @@ async function showHooksStatusForTarget(cwd, target) {
1172
1343
  return showForgecodeStatus(cwd);
1173
1344
  case 'omp':
1174
1345
  return showOmpStatus(cwd);
1346
+ case 'hermes':
1347
+ return showHermesStatus(cwd);
1348
+ }
1349
+ }
1350
+ function fileIncludes(path, needle) {
1351
+ try {
1352
+ return existsSync(path) && readFileSync(path, 'utf-8').includes(needle);
1353
+ }
1354
+ catch {
1355
+ return false;
1356
+ }
1357
+ }
1358
+ /** Audit one platform's policy-gate coverage. */
1359
+ export function auditPlatform(cwd, target) {
1360
+ const P = (p) => join(cwd, p);
1361
+ const gate = 'uap-policy-gate.sh';
1362
+ switch (target) {
1363
+ case 'claude':
1364
+ case 'vscode': {
1365
+ const cfg = P('.claude/settings.local.json');
1366
+ return {
1367
+ platform: target, tier: 'gateable',
1368
+ scriptPresent: existsSync(P('.claude/hooks/' + gate)),
1369
+ wired: fileIncludes(cfg, gate),
1370
+ note: 'PreToolUse in .claude/settings.local.json',
1371
+ };
1372
+ }
1373
+ case 'cursor':
1374
+ return {
1375
+ platform: target, tier: 'gateable',
1376
+ scriptPresent: existsSync(P('.cursor/hooks/' + gate)),
1377
+ wired: fileIncludes(P('.cursor/hooks.json'), gate),
1378
+ note: 'preToolUse in .cursor/hooks.json',
1379
+ };
1380
+ case 'factory':
1381
+ return {
1382
+ platform: target, tier: 'gateable',
1383
+ scriptPresent: existsSync(P('.factory/hooks/' + gate)),
1384
+ wired: fileIncludes(P('.factory/settings.local.json'), gate),
1385
+ note: 'PreToolUse in .factory/settings.local.json',
1386
+ };
1387
+ case 'opencode':
1388
+ return {
1389
+ platform: target, tier: 'gateable',
1390
+ scriptPresent: existsSync(P('.opencode/hooks/' + gate)),
1391
+ wired: fileIncludes(P('.opencode/plugin/uap-session-hooks.ts'), 'tool.execute.before'),
1392
+ note: 'tool.execute.before in .opencode plugin (throws to block)',
1393
+ };
1394
+ case 'omp':
1395
+ return {
1396
+ platform: target, tier: 'gateable',
1397
+ scriptPresent: existsSync(P('.uap/omp/hooks/pre/' + gate)),
1398
+ wired: fileIncludes(P('.uap/omp/settings.json'), 'preToolUsePolicyGate'),
1399
+ note: 'preToolUsePolicyGate in .uap/omp/settings.json',
1400
+ };
1401
+ case 'hermes': {
1402
+ const home = hermesHome();
1403
+ // Hermes config is global and opt-in. If Hermes isn't set up on this
1404
+ // machine at all, report it as optional rather than a hard gap.
1405
+ if (!existsSync(home)) {
1406
+ return {
1407
+ platform: target, tier: 'advisory',
1408
+ scriptPresent: false, wired: false,
1409
+ note: 'not configured (opt-in: uap hooks install -t hermes)',
1410
+ };
1411
+ }
1412
+ let wired = false;
1413
+ const cfg = join(home, 'config.yaml');
1414
+ if (existsSync(cfg)) {
1415
+ try {
1416
+ const c = yaml.load(readFileSync(cfg, 'utf-8')) || {};
1417
+ const hooks = c.hooks || {};
1418
+ const pre = Array.isArray(hooks.pre_tool_call) ? hooks.pre_tool_call : [];
1419
+ wired = pre.some((e) => typeof e?.command === 'string' && String(e.command).includes('uap-policy-gate'));
1420
+ }
1421
+ catch { /* unparseable */ }
1422
+ }
1423
+ return {
1424
+ platform: target, tier: 'gateable',
1425
+ scriptPresent: existsSync(join(home, 'agent-hooks', 'uap-policy-gate-hermes.sh')),
1426
+ wired,
1427
+ note: 'pre_tool_call in ~/.hermes/config.yaml (global)',
1428
+ };
1429
+ }
1430
+ case 'codex':
1431
+ return {
1432
+ platform: target, tier: 'mcp',
1433
+ scriptPresent: existsSync(P('.codex/hooks/' + gate)),
1434
+ wired: fileIncludes(P('.codex/config.toml'), '[mcp_servers.uap]'),
1435
+ note: 'MCP-gated only — no native pre-tool hook event for codex edit/bash',
1436
+ };
1437
+ case 'forgecode':
1438
+ return {
1439
+ platform: target, tier: 'advisory',
1440
+ scriptPresent: existsSync(P('.forge/forgecode.plugin.sh')),
1441
+ wired: false,
1442
+ note: 'advisory — ForgeCode plugin injects policy context, no pre-tool block path',
1443
+ };
1175
1444
  }
1176
1445
  }
1446
+ /** `uap hooks doctor` — print a gating-coverage matrix; exit non-zero on gaps. */
1447
+ function hooksDoctor(cwd, targets) {
1448
+ console.log(chalk.bold('\n UAP Policy-Gate Coverage (hooks doctor)\n'));
1449
+ const rows = targets.map((t) => auditPlatform(cwd, t));
1450
+ for (const r of rows) {
1451
+ let mark;
1452
+ if (r.tier === 'gateable') {
1453
+ mark = r.scriptPresent && r.wired ? chalk.green('✅ gated') : chalk.red('❌ GAP');
1454
+ }
1455
+ else if (r.tier === 'mcp') {
1456
+ mark = r.scriptPresent && r.wired ? chalk.yellow('⚠️ MCP-gated') : chalk.red('❌ GAP');
1457
+ }
1458
+ else {
1459
+ mark = chalk.yellow('⚠️ advisory');
1460
+ }
1461
+ console.log(` ${mark} ${chalk.bold(r.platform.padEnd(10))} ${chalk.dim(r.note)}`);
1462
+ if (r.tier === 'gateable' && !(r.scriptPresent && r.wired)) {
1463
+ const reason = !r.scriptPresent ? 'gate script not installed' : 'gate not wired in config';
1464
+ console.log(` ${chalk.red('→ ' + reason)} (run: uap hooks install -t ${r.platform})`);
1465
+ }
1466
+ }
1467
+ const failures = rows.filter((r) => r.tier === 'gateable' && !(r.scriptPresent && r.wired));
1468
+ console.log('');
1469
+ if (failures.length > 0) {
1470
+ console.log(chalk.red.bold(` ${failures.length} platform(s) missing required gating.\n`));
1471
+ process.exitCode = 1;
1472
+ }
1473
+ else {
1474
+ console.log(chalk.green.bold(' All gateable platforms have the policy gate installed and wired.'));
1475
+ console.log(chalk.dim(' (codex = MCP-gated; forgecode = advisory — harness limits)\n'));
1476
+ }
1477
+ }
1478
+ async function showHermesStatus(_cwd) {
1479
+ console.log(chalk.bold('\n Hermes Agent Hooks Status\n'));
1480
+ const home = hermesHome();
1481
+ const configPath = join(home, 'config.yaml');
1482
+ const gate = join(home, 'agent-hooks', 'uap-policy-gate-hermes.sh');
1483
+ const gateStatus = existsSync(gate) ? chalk.green('installed') : chalk.red('missing');
1484
+ console.log(` ${gateStatus} agent-hooks/uap-policy-gate-hermes.sh`);
1485
+ let wired = false;
1486
+ if (existsSync(configPath)) {
1487
+ try {
1488
+ const cfg = yaml.load(readFileSync(configPath, 'utf-8')) || {};
1489
+ const hooks = cfg.hooks || {};
1490
+ const pre = Array.isArray(hooks.pre_tool_call)
1491
+ ? hooks.pre_tool_call
1492
+ : [];
1493
+ wired = pre.some((e) => typeof e?.command === 'string' && String(e.command).includes('uap-policy-gate'));
1494
+ }
1495
+ catch {
1496
+ /* unparseable */
1497
+ }
1498
+ }
1499
+ const cfgStatus = !existsSync(configPath)
1500
+ ? chalk.red('missing')
1501
+ : wired
1502
+ ? chalk.green('gate wired (pre_tool_call)')
1503
+ : chalk.yellow('present, gate NOT wired');
1504
+ console.log(` ${cfgStatus} ${configPath}`);
1505
+ console.log('');
1506
+ }
1177
1507
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/cli/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/cli/hooks.ts"],"names":[],"mappings":"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"}