moflo 4.8.21 → 4.8.22

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 (260) hide show
  1. package/.claude/agents/browser/browser-agent.yaml +182 -182
  2. package/.claude/agents/core/coder.md +265 -265
  3. package/.claude/agents/core/planner.md +167 -167
  4. package/.claude/agents/core/researcher.md +189 -189
  5. package/.claude/agents/core/reviewer.md +325 -325
  6. package/.claude/agents/core/tester.md +318 -318
  7. package/.claude/agents/database-specialist.yaml +21 -21
  8. package/.claude/agents/dual-mode/codex-coordinator.md +224 -224
  9. package/.claude/agents/dual-mode/codex-worker.md +211 -211
  10. package/.claude/agents/dual-mode/dual-orchestrator.md +291 -291
  11. package/.claude/agents/github/code-review-swarm.md +537 -537
  12. package/.claude/agents/github/github-modes.md +172 -172
  13. package/.claude/agents/github/issue-tracker.md +318 -318
  14. package/.claude/agents/github/multi-repo-swarm.md +552 -552
  15. package/.claude/agents/github/pr-manager.md +190 -190
  16. package/.claude/agents/github/project-board-sync.md +508 -508
  17. package/.claude/agents/github/release-manager.md +366 -366
  18. package/.claude/agents/github/release-swarm.md +582 -582
  19. package/.claude/agents/github/repo-architect.md +397 -397
  20. package/.claude/agents/github/swarm-issue.md +572 -572
  21. package/.claude/agents/github/swarm-pr.md +427 -427
  22. package/.claude/agents/github/sync-coordinator.md +451 -451
  23. package/.claude/agents/github/workflow-automation.md +634 -634
  24. package/.claude/agents/goal/code-goal-planner.md +445 -445
  25. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +129 -129
  26. package/.claude/agents/hive-mind/queen-coordinator.md +202 -202
  27. package/.claude/agents/hive-mind/scout-explorer.md +241 -241
  28. package/.claude/agents/hive-mind/swarm-memory-manager.md +192 -192
  29. package/.claude/agents/hive-mind/worker-specialist.md +216 -216
  30. package/.claude/agents/index.yaml +17 -17
  31. package/.claude/agents/neural/safla-neural.md +73 -73
  32. package/.claude/agents/project-coordinator.yaml +15 -15
  33. package/.claude/agents/python-specialist.yaml +21 -21
  34. package/.claude/agents/reasoning/goal-planner.md +72 -72
  35. package/.claude/agents/security-auditor.yaml +20 -20
  36. package/.claude/agents/swarm/adaptive-coordinator.md +395 -395
  37. package/.claude/agents/swarm/hierarchical-coordinator.md +326 -326
  38. package/.claude/agents/swarm/mesh-coordinator.md +391 -391
  39. package/.claude/agents/templates/migration-plan.md +745 -745
  40. package/.claude/agents/typescript-specialist.yaml +21 -21
  41. package/.claude/checkpoints/1767754460.json +8 -8
  42. package/.claude/commands/agents/agent-spawning.md +28 -28
  43. package/.claude/commands/github/github-modes.md +146 -146
  44. package/.claude/commands/github/github-swarm.md +121 -121
  45. package/.claude/commands/github/issue-tracker.md +291 -291
  46. package/.claude/commands/github/pr-manager.md +169 -169
  47. package/.claude/commands/github/release-manager.md +337 -337
  48. package/.claude/commands/github/repo-architect.md +366 -366
  49. package/.claude/commands/github/sync-coordinator.md +300 -300
  50. package/.claude/commands/memory/neural.md +47 -47
  51. package/.claude/commands/sparc/analyzer.md +51 -51
  52. package/.claude/commands/sparc/architect.md +53 -53
  53. package/.claude/commands/sparc/ask.md +97 -97
  54. package/.claude/commands/sparc/batch-executor.md +54 -54
  55. package/.claude/commands/sparc/code.md +89 -89
  56. package/.claude/commands/sparc/coder.md +54 -54
  57. package/.claude/commands/sparc/debug.md +83 -83
  58. package/.claude/commands/sparc/debugger.md +54 -54
  59. package/.claude/commands/sparc/designer.md +53 -53
  60. package/.claude/commands/sparc/devops.md +109 -109
  61. package/.claude/commands/sparc/docs-writer.md +80 -80
  62. package/.claude/commands/sparc/documenter.md +54 -54
  63. package/.claude/commands/sparc/innovator.md +54 -54
  64. package/.claude/commands/sparc/integration.md +83 -83
  65. package/.claude/commands/sparc/mcp.md +117 -117
  66. package/.claude/commands/sparc/memory-manager.md +54 -54
  67. package/.claude/commands/sparc/optimizer.md +54 -54
  68. package/.claude/commands/sparc/orchestrator.md +131 -131
  69. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -83
  70. package/.claude/commands/sparc/refinement-optimization-mode.md +83 -83
  71. package/.claude/commands/sparc/researcher.md +54 -54
  72. package/.claude/commands/sparc/reviewer.md +54 -54
  73. package/.claude/commands/sparc/security-review.md +80 -80
  74. package/.claude/commands/sparc/sparc-modes.md +174 -174
  75. package/.claude/commands/sparc/sparc.md +111 -111
  76. package/.claude/commands/sparc/spec-pseudocode.md +80 -80
  77. package/.claude/commands/sparc/supabase-admin.md +348 -348
  78. package/.claude/commands/sparc/swarm-coordinator.md +54 -54
  79. package/.claude/commands/sparc/tdd.md +54 -54
  80. package/.claude/commands/sparc/tester.md +54 -54
  81. package/.claude/commands/sparc/tutorial.md +79 -79
  82. package/.claude/commands/sparc/workflow-manager.md +54 -54
  83. package/.claude/commands/sparc.md +166 -166
  84. package/.claude/commands/swarm/analysis.md +95 -95
  85. package/.claude/commands/swarm/development.md +96 -96
  86. package/.claude/commands/swarm/examples.md +168 -168
  87. package/.claude/commands/swarm/maintenance.md +102 -102
  88. package/.claude/commands/swarm/optimization.md +117 -117
  89. package/.claude/commands/swarm/research.md +136 -136
  90. package/.claude/commands/swarm/testing.md +131 -131
  91. package/.claude/commands/workflows/development.md +77 -77
  92. package/.claude/commands/workflows/research.md +62 -62
  93. package/.claude/guidance/moflo-bootstrap.md +126 -126
  94. package/.claude/guidance/shipped/agent-bootstrap.md +126 -126
  95. package/.claude/guidance/shipped/guidance-memory-strategy.md +262 -262
  96. package/.claude/guidance/shipped/memory-strategy.md +204 -204
  97. package/.claude/guidance/shipped/moflo.md +668 -653
  98. package/.claude/guidance/shipped/task-swarm-integration.md +441 -441
  99. package/.claude/helpers/intelligence.cjs +207 -207
  100. package/.claude/helpers/statusline.cjs +851 -851
  101. package/.claude/settings.local.json +18 -0
  102. package/.claude/skills/fl/SKILL.md +583 -583
  103. package/.claude/skills/flo/SKILL.md +583 -583
  104. package/.claude/skills/github-code-review/SKILL.md +1140 -1140
  105. package/.claude/skills/github-multi-repo/SKILL.md +874 -874
  106. package/.claude/skills/github-project-management/SKILL.md +1277 -1277
  107. package/.claude/skills/github-release-management/SKILL.md +1081 -1081
  108. package/.claude/skills/github-workflow-automation/SKILL.md +1065 -1065
  109. package/.claude/skills/hive-mind-advanced/SKILL.md +712 -712
  110. package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
  111. package/.claude/skills/performance-analysis/SKILL.md +563 -563
  112. package/.claude/skills/sparc-methodology/SKILL.md +1115 -1115
  113. package/.claude/skills/swarm-advanced/SKILL.md +973 -973
  114. package/.claude/workflow-state.json +4 -4
  115. package/LICENSE +21 -21
  116. package/README.md +685 -685
  117. package/bin/cli.js +0 -0
  118. package/bin/gate-hook.mjs +50 -50
  119. package/bin/gate.cjs +138 -138
  120. package/bin/generate-code-map.mjs +775 -775
  121. package/bin/hook-handler.cjs +83 -83
  122. package/bin/hooks.mjs +656 -656
  123. package/bin/index-guidance.mjs +892 -892
  124. package/bin/index-tests.mjs +709 -709
  125. package/bin/lib/process-manager.mjs +243 -243
  126. package/bin/lib/registry-cleanup.cjs +41 -41
  127. package/bin/prompt-hook.mjs +72 -72
  128. package/bin/semantic-search.mjs +472 -472
  129. package/bin/session-start-launcher.mjs +238 -238
  130. package/bin/setup-project.mjs +250 -250
  131. package/package.json +123 -123
  132. package/src/@claude-flow/cli/README.md +452 -452
  133. package/src/@claude-flow/cli/bin/cli.js +180 -180
  134. package/src/@claude-flow/cli/bin/preinstall.cjs +2 -2
  135. package/src/@claude-flow/cli/dist/src/commands/completions.js +409 -409
  136. package/src/@claude-flow/cli/dist/src/commands/doctor.js +5 -1
  137. package/src/@claude-flow/cli/dist/src/commands/embeddings.js +25 -25
  138. package/src/@claude-flow/cli/dist/src/commands/github.js +61 -61
  139. package/src/@claude-flow/cli/dist/src/commands/hive-mind.js +90 -90
  140. package/src/@claude-flow/cli/dist/src/commands/hooks.js +9 -9
  141. package/src/@claude-flow/cli/dist/src/commands/ruvector/import.js +14 -14
  142. package/src/@claude-flow/cli/dist/src/commands/ruvector/setup.js +624 -624
  143. package/src/@claude-flow/cli/dist/src/config/moflo-config.d.ts +3 -0
  144. package/src/@claude-flow/cli/dist/src/config/moflo-config.js +101 -91
  145. package/src/@claude-flow/cli/dist/src/index.d.ts +5 -0
  146. package/src/@claude-flow/cli/dist/src/index.js +44 -0
  147. package/src/@claude-flow/cli/dist/src/init/claudemd-generator.d.ts +29 -29
  148. package/src/@claude-flow/cli/dist/src/init/claudemd-generator.js +43 -43
  149. package/src/@claude-flow/cli/dist/src/init/executor.js +453 -453
  150. package/src/@claude-flow/cli/dist/src/init/helpers-generator.js +482 -482
  151. package/src/@claude-flow/cli/dist/src/init/moflo-init.d.ts +30 -30
  152. package/src/@claude-flow/cli/dist/src/init/moflo-init.js +140 -140
  153. package/src/@claude-flow/cli/dist/src/init/statusline-generator.js +876 -876
  154. package/src/@claude-flow/cli/dist/src/memory/memory-initializer.js +371 -371
  155. package/src/@claude-flow/cli/dist/src/runtime/headless.js +28 -28
  156. package/src/@claude-flow/cli/dist/src/services/container-worker-pool.d.ts +197 -0
  157. package/src/@claude-flow/cli/dist/src/services/container-worker-pool.js +584 -0
  158. package/src/@claude-flow/cli/dist/src/services/daemon-lock.d.ts +14 -0
  159. package/src/@claude-flow/cli/dist/src/services/daemon-lock.js +1 -1
  160. package/src/@claude-flow/cli/dist/src/services/headless-worker-executor.js +84 -84
  161. package/src/@claude-flow/cli/package.json +1 -1
  162. package/src/@claude-flow/guidance/README.md +1195 -1195
  163. package/src/@claude-flow/guidance/package.json +198 -198
  164. package/src/@claude-flow/memory/README.md +587 -587
  165. package/src/@claude-flow/memory/dist/agent-memory-scope.test.js +4 -7
  166. package/src/@claude-flow/memory/dist/agentdb-backend.d.ts +2 -0
  167. package/src/@claude-flow/memory/dist/agentdb-backend.js +28 -26
  168. package/src/@claude-flow/memory/dist/auto-memory-bridge.test.js +36 -39
  169. package/src/@claude-flow/memory/dist/benchmark.test.js +1 -1
  170. package/src/@claude-flow/memory/dist/controller-registry.test.js +43 -0
  171. package/src/@claude-flow/memory/dist/database-provider.d.ts +2 -2
  172. package/src/@claude-flow/memory/dist/database-provider.js +6 -3
  173. package/src/@claude-flow/memory/dist/database-provider.test.js +1 -3
  174. package/src/@claude-flow/memory/dist/hybrid-backend.d.ts +245 -0
  175. package/src/@claude-flow/memory/dist/hybrid-backend.js +569 -0
  176. package/src/@claude-flow/memory/dist/hybrid-backend.test.d.ts +8 -0
  177. package/src/@claude-flow/memory/dist/hybrid-backend.test.js +320 -0
  178. package/src/@claude-flow/memory/dist/index.d.ts +3 -0
  179. package/src/@claude-flow/memory/dist/index.js +3 -0
  180. package/src/@claude-flow/memory/dist/sqlite-backend.d.ts +121 -0
  181. package/src/@claude-flow/memory/dist/sqlite-backend.js +572 -0
  182. package/src/@claude-flow/memory/dist/sqljs-backend.d.ts +4 -3
  183. package/src/@claude-flow/memory/dist/sqljs-backend.js +31 -30
  184. package/src/@claude-flow/memory/package.json +44 -44
  185. package/src/@claude-flow/shared/README.md +323 -323
  186. package/src/@claude-flow/shared/dist/core/config/defaults.js +1 -1
  187. package/src/@claude-flow/shared/dist/core/config/loader.js +1 -1
  188. package/src/@claude-flow/shared/dist/core/config/schema.js +1 -1
  189. package/src/@claude-flow/shared/dist/events/event-store.js +34 -50
  190. package/src/@claude-flow/shared/dist/events/event-store.test.js +4 -8
  191. package/src/@claude-flow/shared/dist/hooks/executor.js +4 -7
  192. package/src/@claude-flow/shared/dist/hooks/safety/file-organization.js +1 -1
  193. package/src/@claude-flow/shared/dist/hooks/safety/git-commit.js +3 -3
  194. package/src/@claude-flow/shared/dist/hooks/verify-exports.test.js +6 -6
  195. package/src/@claude-flow/shared/dist/utils/secure-logger.js +1 -1
  196. package/src/README.md +493 -493
  197. package/src/@claude-flow/guidance/dist/adversarial.d.ts +0 -284
  198. package/src/@claude-flow/guidance/dist/adversarial.js +0 -572
  199. package/src/@claude-flow/guidance/dist/analyzer.d.ts +0 -530
  200. package/src/@claude-flow/guidance/dist/analyzer.js +0 -2518
  201. package/src/@claude-flow/guidance/dist/artifacts.d.ts +0 -283
  202. package/src/@claude-flow/guidance/dist/artifacts.js +0 -356
  203. package/src/@claude-flow/guidance/dist/authority.d.ts +0 -290
  204. package/src/@claude-flow/guidance/dist/authority.js +0 -558
  205. package/src/@claude-flow/guidance/dist/capabilities.d.ts +0 -209
  206. package/src/@claude-flow/guidance/dist/capabilities.js +0 -485
  207. package/src/@claude-flow/guidance/dist/coherence.d.ts +0 -233
  208. package/src/@claude-flow/guidance/dist/coherence.js +0 -372
  209. package/src/@claude-flow/guidance/dist/compiler.d.ts +0 -87
  210. package/src/@claude-flow/guidance/dist/compiler.js +0 -419
  211. package/src/@claude-flow/guidance/dist/conformance-kit.d.ts +0 -225
  212. package/src/@claude-flow/guidance/dist/conformance-kit.js +0 -629
  213. package/src/@claude-flow/guidance/dist/continue-gate.d.ts +0 -214
  214. package/src/@claude-flow/guidance/dist/continue-gate.js +0 -353
  215. package/src/@claude-flow/guidance/dist/crypto-utils.d.ts +0 -17
  216. package/src/@claude-flow/guidance/dist/crypto-utils.js +0 -24
  217. package/src/@claude-flow/guidance/dist/evolution.d.ts +0 -282
  218. package/src/@claude-flow/guidance/dist/evolution.js +0 -500
  219. package/src/@claude-flow/guidance/dist/gates.d.ts +0 -79
  220. package/src/@claude-flow/guidance/dist/gates.js +0 -302
  221. package/src/@claude-flow/guidance/dist/gateway.d.ts +0 -206
  222. package/src/@claude-flow/guidance/dist/gateway.js +0 -452
  223. package/src/@claude-flow/guidance/dist/generators.d.ts +0 -153
  224. package/src/@claude-flow/guidance/dist/generators.js +0 -682
  225. package/src/@claude-flow/guidance/dist/headless.d.ts +0 -177
  226. package/src/@claude-flow/guidance/dist/headless.js +0 -342
  227. package/src/@claude-flow/guidance/dist/hooks.d.ts +0 -109
  228. package/src/@claude-flow/guidance/dist/hooks.js +0 -347
  229. package/src/@claude-flow/guidance/dist/index.d.ts +0 -205
  230. package/src/@claude-flow/guidance/dist/index.js +0 -321
  231. package/src/@claude-flow/guidance/dist/ledger.d.ts +0 -162
  232. package/src/@claude-flow/guidance/dist/ledger.js +0 -375
  233. package/src/@claude-flow/guidance/dist/manifest-validator.d.ts +0 -289
  234. package/src/@claude-flow/guidance/dist/manifest-validator.js +0 -838
  235. package/src/@claude-flow/guidance/dist/memory-gate.d.ts +0 -222
  236. package/src/@claude-flow/guidance/dist/memory-gate.js +0 -382
  237. package/src/@claude-flow/guidance/dist/meta-governance.d.ts +0 -265
  238. package/src/@claude-flow/guidance/dist/meta-governance.js +0 -348
  239. package/src/@claude-flow/guidance/dist/optimizer.d.ts +0 -104
  240. package/src/@claude-flow/guidance/dist/optimizer.js +0 -329
  241. package/src/@claude-flow/guidance/dist/persistence.d.ts +0 -189
  242. package/src/@claude-flow/guidance/dist/persistence.js +0 -464
  243. package/src/@claude-flow/guidance/dist/proof.d.ts +0 -185
  244. package/src/@claude-flow/guidance/dist/proof.js +0 -238
  245. package/src/@claude-flow/guidance/dist/retriever.d.ts +0 -116
  246. package/src/@claude-flow/guidance/dist/retriever.js +0 -394
  247. package/src/@claude-flow/guidance/dist/ruvbot-integration.d.ts +0 -370
  248. package/src/@claude-flow/guidance/dist/ruvbot-integration.js +0 -738
  249. package/src/@claude-flow/guidance/dist/temporal.d.ts +0 -426
  250. package/src/@claude-flow/guidance/dist/temporal.js +0 -658
  251. package/src/@claude-flow/guidance/dist/trust.d.ts +0 -283
  252. package/src/@claude-flow/guidance/dist/trust.js +0 -473
  253. package/src/@claude-flow/guidance/dist/truth-anchors.d.ts +0 -276
  254. package/src/@claude-flow/guidance/dist/truth-anchors.js +0 -488
  255. package/src/@claude-flow/guidance/dist/types.d.ts +0 -378
  256. package/src/@claude-flow/guidance/dist/types.js +0 -10
  257. package/src/@claude-flow/guidance/dist/uncertainty.d.ts +0 -372
  258. package/src/@claude-flow/guidance/dist/uncertainty.js +0 -619
  259. package/src/@claude-flow/guidance/dist/wasm-kernel.d.ts +0 -48
  260. package/src/@claude-flow/guidance/dist/wasm-kernel.js +0 -158
@@ -1,347 +0,0 @@
1
- /**
2
- * Guidance Hook Integration Layer
3
- *
4
- * Wires the EnforcementGates and ShardRetriever into the Claude Flow V3
5
- * hook lifecycle. Each guidance concern is registered as a hook that
6
- * participates in the standard HookRegistry event flow.
7
- *
8
- * Hook mappings:
9
- * PreCommand -> EnforcementGates.evaluateCommand() (destructive ops + secrets)
10
- * PreToolUse -> EnforcementGates.evaluateToolUse() (tool allowlist + secrets)
11
- * PreEdit -> EnforcementGates.evaluateEdit() (diff size + secrets)
12
- * PreTask -> ShardRetriever.retrieve() (inject relevant shards)
13
- * PostTask -> RunLedger.finalizeEvent() (record run completion)
14
- *
15
- * @module @claude-flow/guidance/hooks
16
- */
17
- import { HookEvent, HookPriority, } from '@claude-flow/hooks';
18
- // ============================================================================
19
- // Gate-Result -> Hook-Result Mapping
20
- // ============================================================================
21
- /**
22
- * Convert an array of GateResults into a single HookResult.
23
- *
24
- * Severity ordering: block > require-confirmation > warn > allow.
25
- * The most restrictive decision drives the hook outcome.
26
- */
27
- function gateResultsToHookResult(gateResults) {
28
- if (gateResults.length === 0) {
29
- return { success: true };
30
- }
31
- const severityOrder = {
32
- block: 3,
33
- 'require-confirmation': 2,
34
- warn: 1,
35
- allow: 0,
36
- };
37
- // Sort by severity descending to find the most restrictive
38
- const sorted = [...gateResults].sort((a, b) => severityOrder[b.decision] - severityOrder[a.decision]);
39
- const worst = sorted[0];
40
- // Collect all warnings and reasons
41
- const allWarnings = [];
42
- const allReasons = [];
43
- for (const result of gateResults) {
44
- allReasons.push(`[${result.gateName}] ${result.reason}`);
45
- if (result.remediation) {
46
- allWarnings.push(`[${result.gateName}] ${result.remediation}`);
47
- }
48
- }
49
- switch (worst.decision) {
50
- case 'block':
51
- return {
52
- success: false,
53
- abort: true,
54
- error: allReasons.join(' | '),
55
- message: allReasons.join('\n'),
56
- warnings: allWarnings.length > 0 ? allWarnings : undefined,
57
- data: {
58
- gateDecision: 'block',
59
- gateResults: gateResults.map(r => ({
60
- gate: r.gateName,
61
- decision: r.decision,
62
- reason: r.reason,
63
- })),
64
- },
65
- };
66
- case 'require-confirmation':
67
- return {
68
- success: false,
69
- abort: true,
70
- message: allReasons.join('\n'),
71
- warnings: allWarnings.length > 0 ? allWarnings : undefined,
72
- data: {
73
- gateDecision: 'require-confirmation',
74
- gateResults: gateResults.map(r => ({
75
- gate: r.gateName,
76
- decision: r.decision,
77
- reason: r.reason,
78
- })),
79
- },
80
- };
81
- case 'warn':
82
- return {
83
- success: true,
84
- message: allReasons.join('\n'),
85
- warnings: allWarnings.length > 0 ? allWarnings : allReasons,
86
- data: {
87
- gateDecision: 'warn',
88
- gateResults: gateResults.map(r => ({
89
- gate: r.gateName,
90
- decision: r.decision,
91
- reason: r.reason,
92
- })),
93
- },
94
- };
95
- default:
96
- return { success: true };
97
- }
98
- }
99
- // ============================================================================
100
- // Guidance Hook Provider
101
- // ============================================================================
102
- /**
103
- * Provides guidance enforcement hooks for the V3 hook system.
104
- *
105
- * Registers hooks on a HookRegistry that wire each lifecycle event
106
- * (PreCommand, PreToolUse, PreEdit, PreTask, PostTask) to the
107
- * appropriate guidance subsystem (gates, retriever, ledger).
108
- */
109
- export class GuidanceHookProvider {
110
- gates;
111
- retriever;
112
- ledger;
113
- /** IDs of hooks registered by this provider, for cleanup */
114
- hookIds = [];
115
- /** Active run events keyed by task ID, for PostTask finalization */
116
- activeRuns = new Map();
117
- constructor(gates, retriever, ledger) {
118
- this.gates = gates;
119
- this.retriever = retriever;
120
- this.ledger = ledger;
121
- }
122
- /**
123
- * Register all guidance hooks on the given registry.
124
- *
125
- * Returns the array of generated hook IDs for tracking.
126
- */
127
- registerAll(registry) {
128
- this.hookIds = [];
129
- // 1. PreCommand -> gate enforcement (Critical priority)
130
- this.hookIds.push(registry.register(HookEvent.PreCommand, (ctx) => this.handlePreCommand(ctx), HookPriority.Critical, {
131
- name: 'guidance-gate-pre-command',
132
- description: 'Evaluates commands for destructive ops and secrets',
133
- }));
134
- // 2. PreToolUse -> gate enforcement (Critical priority)
135
- this.hookIds.push(registry.register(HookEvent.PreToolUse, (ctx) => this.handlePreToolUse(ctx), HookPriority.Critical, {
136
- name: 'guidance-gate-pre-tool-use',
137
- description: 'Evaluates tool usage against allowlist and checks for secrets',
138
- }));
139
- // 3. PreEdit -> gate enforcement (High priority)
140
- this.hookIds.push(registry.register(HookEvent.PreEdit, (ctx) => this.handlePreEdit(ctx), HookPriority.High, {
141
- name: 'guidance-gate-pre-edit',
142
- description: 'Evaluates file edits for diff size and secrets',
143
- }));
144
- // 4. PreTask -> shard retrieval (Normal priority)
145
- this.hookIds.push(registry.register(HookEvent.PreTask, (ctx) => this.handlePreTask(ctx), HookPriority.Normal, {
146
- name: 'guidance-retriever-pre-task',
147
- description: 'Retrieves relevant guidance shards at task start',
148
- }));
149
- // 5. PostTask -> ledger finalization (Normal priority)
150
- this.hookIds.push(registry.register(HookEvent.PostTask, (ctx) => this.handlePostTask(ctx), HookPriority.Normal, {
151
- name: 'guidance-ledger-post-task',
152
- description: 'Finalizes the run event in the ledger on task completion',
153
- }));
154
- return [...this.hookIds];
155
- }
156
- /**
157
- * Unregister all hooks previously registered by this provider.
158
- */
159
- unregisterAll(registry) {
160
- for (const id of this.hookIds) {
161
- registry.unregister(id);
162
- }
163
- this.hookIds = [];
164
- }
165
- /**
166
- * Get the IDs of all registered hooks.
167
- */
168
- getHookIds() {
169
- return [...this.hookIds];
170
- }
171
- /**
172
- * Get the active run event for a given task ID (if any).
173
- */
174
- getActiveRun(taskId) {
175
- return this.activeRuns.get(taskId);
176
- }
177
- // ==========================================================================
178
- // Hook Handlers
179
- // ==========================================================================
180
- /**
181
- * PreCommand handler: evaluate command through destructive ops and secrets gates.
182
- */
183
- handlePreCommand(ctx) {
184
- const command = ctx.command?.raw;
185
- if (!command) {
186
- return { success: true };
187
- }
188
- const gateResults = this.gates.evaluateCommand(command);
189
- return gateResultsToHookResult(gateResults);
190
- }
191
- /**
192
- * PreToolUse handler: evaluate tool usage against allowlist and check params for secrets.
193
- */
194
- handlePreToolUse(ctx) {
195
- const toolName = ctx.tool?.name;
196
- if (!toolName) {
197
- return { success: true };
198
- }
199
- const params = ctx.tool?.parameters ?? {};
200
- const gateResults = this.gates.evaluateToolUse(toolName, params);
201
- return gateResultsToHookResult(gateResults);
202
- }
203
- /**
204
- * PreEdit handler: evaluate file edit for diff size and secrets.
205
- *
206
- * Extracts the file path from context. The content to scan comes from
207
- * metadata.content or is synthesized from available context. The diff
208
- * line count defaults to metadata.diffLines or 0.
209
- */
210
- handlePreEdit(ctx) {
211
- const filePath = ctx.file?.path;
212
- if (!filePath) {
213
- return { success: true };
214
- }
215
- const content = ctx.metadata?.content ?? '';
216
- const diffLines = ctx.metadata?.diffLines ?? 0;
217
- const gateResults = this.gates.evaluateEdit(filePath, content, diffLines);
218
- return gateResultsToHookResult(gateResults);
219
- }
220
- /**
221
- * PreTask handler: classify intent and retrieve relevant guidance shards.
222
- *
223
- * Creates a new RunEvent in the active runs map for PostTask finalization.
224
- * Returns the retrieved policy text and shards as hook data.
225
- */
226
- async handlePreTask(ctx) {
227
- const taskId = ctx.task?.id;
228
- const taskDescription = ctx.task?.description;
229
- if (!taskId || !taskDescription) {
230
- return { success: true };
231
- }
232
- try {
233
- // Classify intent
234
- const { intent, confidence } = this.retriever.classifyIntent(taskDescription);
235
- // Retrieve relevant shards
236
- let retrievalResult = null;
237
- try {
238
- retrievalResult = await this.retriever.retrieve({
239
- taskDescription,
240
- intent,
241
- });
242
- }
243
- catch {
244
- // Retriever may not have a loaded bundle -- degrade gracefully
245
- }
246
- // Create a run event for ledger tracking
247
- const guidanceHash = retrievalResult?.constitution?.hash ?? 'unknown';
248
- const runEvent = this.ledger.createEvent(taskId, intent, guidanceHash);
249
- if (retrievalResult) {
250
- runEvent.retrievedRuleIds = retrievalResult.shards.map(s => s.shard.rule.id);
251
- }
252
- this.activeRuns.set(taskId, runEvent);
253
- return {
254
- success: true,
255
- message: retrievalResult
256
- ? `Retrieved ${retrievalResult.shards.length} guidance shard(s) for intent "${intent}" (confidence: ${(confidence * 100).toFixed(0)}%)`
257
- : `Classified intent as "${intent}" (confidence: ${(confidence * 100).toFixed(0)}%). No policy bundle loaded.`,
258
- data: {
259
- intent,
260
- confidence,
261
- policyText: retrievalResult?.policyText ?? null,
262
- shardCount: retrievalResult?.shards.length ?? 0,
263
- contradictionsResolved: retrievalResult?.contradictionsResolved ?? 0,
264
- retrievalLatencyMs: retrievalResult?.latencyMs ?? 0,
265
- },
266
- };
267
- }
268
- catch (error) {
269
- return {
270
- success: false,
271
- error: error instanceof Error ? error.message : String(error),
272
- message: 'Failed to retrieve guidance shards for task',
273
- };
274
- }
275
- }
276
- /**
277
- * PostTask handler: finalize the run event in the ledger.
278
- *
279
- * Looks up the active run by task ID, populates completion metadata,
280
- * and calls ledger.finalizeEvent().
281
- */
282
- handlePostTask(ctx) {
283
- const taskId = ctx.task?.id;
284
- if (!taskId) {
285
- return { success: true };
286
- }
287
- const runEvent = this.activeRuns.get(taskId);
288
- if (!runEvent) {
289
- return {
290
- success: true,
291
- message: `No active run event found for task "${taskId}". Skipping finalization.`,
292
- };
293
- }
294
- try {
295
- // Populate additional metadata from context if available
296
- if (ctx.task?.status) {
297
- runEvent.outcomeAccepted = ctx.task.status === 'completed';
298
- }
299
- if (ctx.metadata?.toolsUsed && Array.isArray(ctx.metadata.toolsUsed)) {
300
- runEvent.toolsUsed = ctx.metadata.toolsUsed;
301
- }
302
- if (ctx.metadata?.filesTouched && Array.isArray(ctx.metadata.filesTouched)) {
303
- runEvent.filesTouched = ctx.metadata.filesTouched;
304
- }
305
- // Finalize the event in the ledger
306
- this.ledger.finalizeEvent(runEvent);
307
- this.activeRuns.delete(taskId);
308
- return {
309
- success: true,
310
- message: `Run event finalized for task "${taskId}" (duration: ${runEvent.durationMs}ms)`,
311
- data: {
312
- eventId: runEvent.eventId,
313
- taskId: runEvent.taskId,
314
- intent: runEvent.intent,
315
- durationMs: runEvent.durationMs,
316
- violationCount: runEvent.violations.length,
317
- },
318
- };
319
- }
320
- catch (error) {
321
- return {
322
- success: false,
323
- error: error instanceof Error ? error.message : String(error),
324
- message: `Failed to finalize run event for task "${taskId}"`,
325
- };
326
- }
327
- }
328
- }
329
- // ============================================================================
330
- // Factory
331
- // ============================================================================
332
- /**
333
- * Create a GuidanceHookProvider and optionally register it on a registry.
334
- *
335
- * @param gates - The enforcement gates instance
336
- * @param retriever - The shard retriever instance
337
- * @param ledger - The run ledger instance
338
- * @param registry - Optional registry to auto-register on
339
- * @returns The provider and (if registry was given) the hook IDs
340
- */
341
- export function createGuidanceHooks(gates, retriever, ledger, registry) {
342
- const provider = new GuidanceHookProvider(gates, retriever, ledger);
343
- const hookIds = registry ? provider.registerAll(registry) : [];
344
- return { provider, hookIds };
345
- }
346
- export { gateResultsToHookResult };
347
- //# sourceMappingURL=hooks.js.map
@@ -1,205 +0,0 @@
1
- /**
2
- * @claude-flow/guidance - Guidance Control Plane
3
- *
4
- * Sits beside Claude Code (not inside it) to:
5
- * 1. Compile CLAUDE.md into constitution + shards + manifest
6
- * 2. Retrieve task-relevant shards at runtime via intent classification
7
- * 3. Enforce non-negotiables through hook gates
8
- * 4. Log every run to a ledger with evaluators
9
- * 5. Evolve the rule set through an optimizer loop
10
- *
11
- * Architecture:
12
- * - Root CLAUDE.md → Repo constitution (rare changes)
13
- * - CLAUDE.local.md → Overlay / experiment sandbox (frequent changes)
14
- * - Optimizer → Promotes winning local rules to root
15
- *
16
- * Integration with Claude Code:
17
- * - Headless mode (claude -p --output-format json) for automated testing
18
- * - Hook system for enforcement gates
19
- * - RuVector/HNSW for semantic shard retrieval
20
- *
21
- * @module @claude-flow/guidance
22
- */
23
- import { RunLedger } from './ledger.js';
24
- import { OptimizerLoop } from './optimizer.js';
25
- import { HeadlessRunner } from './headless.js';
26
- export type { RiskClass, ToolClass, TaskIntent, GuidanceRule, RuleShard, Constitution, RuleManifest, PolicyBundle, RetrievalRequest, RetrievalResult, GateDecision, GateResult, GateConfig, RunEvent, Violation, EvaluatorResult, ViolationRanking, RuleChange, ABTestResult, OptimizationMetrics, RuleADR, GuidanceControlPlaneConfig, ControlPlaneStatus, } from './types.js';
27
- export { GuidanceCompiler, createCompiler } from './compiler.js';
28
- export type { CompilerConfig } from './compiler.js';
29
- export { ShardRetriever, createRetriever, HashEmbeddingProvider } from './retriever.js';
30
- export type { IEmbeddingProvider } from './retriever.js';
31
- export { EnforcementGates, createGates } from './gates.js';
32
- export { GuidanceHookProvider, createGuidanceHooks, gateResultsToHookResult, } from './hooks.js';
33
- export { RunLedger, createLedger, TestsPassEvaluator, ForbiddenCommandEvaluator, ForbiddenDependencyEvaluator, ViolationRateEvaluator, DiffQualityEvaluator, } from './ledger.js';
34
- export type { IEvaluator } from './ledger.js';
35
- export { OptimizerLoop, createOptimizer } from './optimizer.js';
36
- export type { OptimizerConfig } from './optimizer.js';
37
- export { PersistentLedger, EventStore, createPersistentLedger, createEventStore, } from './persistence.js';
38
- export type { PersistenceConfig, StorageStats } from './persistence.js';
39
- export { HeadlessRunner, createHeadlessRunner, ProcessExecutor, createComplianceSuite, } from './headless.js';
40
- export type { TestTask, TaskAssertion, TaskRunResult, HeadlessOutput, SuiteRunSummary, ICommandExecutor, } from './headless.js';
41
- export { DeterministicToolGateway, createToolGateway } from './gateway.js';
42
- export type { ToolSchema, Budget, IdempotencyRecord, GatewayDecision, ToolGatewayConfig, } from './gateway.js';
43
- export { ArtifactLedger, createArtifactLedger } from './artifacts.js';
44
- export type { ArtifactKind, Artifact, ArtifactLineage, ArtifactVerification, ArtifactSearchQuery, ArtifactStats, ArtifactLedgerConfig, RecordArtifactParams, SerializedArtifactLedger, } from './artifacts.js';
45
- export { EvolutionPipeline, createEvolutionPipeline } from './evolution.js';
46
- export type { ChangeProposalKind, ProposalStatus, RiskAssessment, ChangeProposal, DecisionDiff, SimulationResult, RolloutStage, StagedRollout, EvolutionHistoryEntry, TraceEvaluator, EvolutionPipelineConfig, } from './evolution.js';
47
- export { ManifestValidator, ConformanceSuite, createManifestValidator, createConformanceSuite, } from './manifest-validator.js';
48
- export type { AgentCellManifest, ValidationResult, ValidationError, ValidationWarning, GoldenTrace, GoldenTraceEvent, ConformanceResult, } from './manifest-validator.js';
49
- export { ProofChain, createProofChain } from './proof.js';
50
- export type { ToolCallRecord, MemoryOperation, MemoryLineageEntry, ProofEnvelopeMetadata, ProofEnvelope, SerializedProofChain, } from './proof.js';
51
- export { MemoryWriteGate, createMemoryWriteGate, createMemoryEntry, } from './memory-gate.js';
52
- export type { MemoryAuthority, MemoryEntry, WriteDecision, MemoryWriteGateConfig, } from './memory-gate.js';
53
- export { CoherenceScheduler, EconomicGovernor, createCoherenceScheduler, createEconomicGovernor, } from './coherence.js';
54
- export type { CoherenceScore, CoherenceThresholds, PrivilegeLevel, BudgetUsage, CoherenceSchedulerConfig, EconomicGovernorConfig, } from './coherence.js';
55
- export { CapabilityAlgebra, createCapabilityAlgebra } from './capabilities.js';
56
- export type { CapabilityScope, CapabilityConstraint, Attestation, Capability, CapabilityCheckResult, } from './capabilities.js';
57
- export { SimulatedRuntime, MemoryClerkCell, ConformanceRunner, createMemoryClerkCell, createConformanceRunner, } from './conformance-kit.js';
58
- export type { TraceEvent as CellTraceEvent, CellRunResult, CellRuntime, AgentCell, SimulatedRuntimeConfig, ConformanceTestResult, ReplayTestResult, } from './conformance-kit.js';
59
- export { RuvBotGuidanceBridge, AIDefenceGate, RuvBotMemoryAdapter, createRuvBotBridge, createAIDefenceGate, createRuvBotMemoryAdapter, } from './ruvbot-integration.js';
60
- export type { RuvBotInstance, RuvBotAIDefenceGuard, RuvBotMemory, AIDefenceThreat, AIDefenceResult, AIDefenceGateConfig, RuvBotBridgeConfig, RuvBotEvent, } from './ruvbot-integration.js';
61
- export { MetaGovernor, createMetaGovernor } from './meta-governance.js';
62
- export type { InvariantCheckResult, GovernanceState, ConstitutionalInvariant, AmendmentChange, Amendment, OptimizerConstraint, OptimizerAction, OptimizerValidation, InvariantReport, MetaGovernanceConfig, } from './meta-governance.js';
63
- export { ThreatDetector, CollusionDetector, MemoryQuorum, createThreatDetector, createCollusionDetector, createMemoryQuorum, } from './adversarial.js';
64
- export type { ThreatCategory, ThreatSignal, DetectionPattern, CollusionReport, MemoryProposal, QuorumResult, ThreatDetectorConfig, CollusionDetectorConfig, MemoryQuorumConfig, } from './adversarial.js';
65
- export { ContinueGate, createContinueGate } from './continue-gate.js';
66
- export type { ContinueGateConfig, StepContext, ContinueDecision, } from './continue-gate.js';
67
- export { getKernel, isWasmAvailable, resetKernel, } from './wasm-kernel.js';
68
- export type { WasmKernel, BatchOp, BatchResult, } from './wasm-kernel.js';
69
- export { generateClaudeMd, generateClaudeLocalMd, generateSkillMd, generateAgentMd, generateAgentIndex, scaffold, } from './generators.js';
70
- export type { ProjectProfile, LocalProfile, SkillDefinition, AgentDefinition, ScaffoldOptions, ScaffoldResult, } from './generators.js';
71
- export { analyze, benchmark, autoOptimize, optimizeForSize, headlessBenchmark, validateEffect, abBenchmark, getDefaultABTasks, formatReport, formatBenchmark, } from './analyzer.js';
72
- export type { AnalysisResult, AnalysisMetrics, DimensionScore, Suggestion, BenchmarkResult, ContextSize, OptimizeOptions, HeadlessBenchmarkResult, HeadlessTaskResult, IHeadlessExecutor, IContentAwareExecutor, ValidationAssertion, ValidationTask, ValidationTaskResult, ValidationRun, CorrelationResult, ValidationReport, ABTaskClass, ABTask, ABGatePattern, ABTaskResult, ABMetrics, ABReport, } from './analyzer.js';
73
- export { TrustAccumulator, TrustLedger as TrustScoreLedger, TrustSystem, getTrustBasedRateLimit, createTrustAccumulator, createTrustSystem, } from './trust.js';
74
- export type { TrustTier, GateOutcome, TrustConfig, TrustRecord, TrustSnapshot, } from './trust.js';
75
- export { TruthAnchorStore, TruthResolver, createTruthAnchorStore, createTruthResolver, } from './truth-anchors.js';
76
- export type { TruthSourceKind, TruthAnchor, TruthAnchorConfig, AnchorParams, TruthAnchorQuery, VerifyAllResult, ConflictResolution, } from './truth-anchors.js';
77
- export { UncertaintyLedger, UncertaintyAggregator, createUncertaintyLedger, createUncertaintyAggregator, } from './uncertainty.js';
78
- export type { BeliefStatus, ConfidenceInterval, Belief, UncertaintyConfig, } from './uncertainty.js';
79
- export { TemporalStore, TemporalReasoner, createTemporalStore, createTemporalReasoner, } from './temporal.js';
80
- export type { TemporalStatus, ValidityWindow, TemporalAssertion, TemporalTimeline, TemporalChange, TemporalConfig, } from './temporal.js';
81
- export { AuthorityGate, IrreversibilityClassifier, createAuthorityGate, createIrreversibilityClassifier, isHigherAuthority, getAuthorityHierarchy, } from './authority.js';
82
- export type { AuthorityLevel, IrreversibilityClass, ProofLevel, AuthorityScope, HumanIntervention, AuthorityCheckResult, IrreversibilityResult, AuthorityGateConfig, IrreversibilityClassifierConfig, } from './authority.js';
83
- import type { PolicyBundle, GuidanceControlPlaneConfig, ControlPlaneStatus, RetrievalRequest, RetrievalResult, GateResult, RunEvent, EvaluatorResult, TaskIntent, Violation } from './types.js';
84
- /**
85
- * The main Guidance Control Plane
86
- *
87
- * Orchestrates all components:
88
- * - Compiler: CLAUDE.md → PolicyBundle
89
- * - Retriever: PolicyBundle → task-relevant shards
90
- * - Gates: enforcement hooks
91
- * - Ledger: run logging + evaluation
92
- * - Optimizer: rule evolution
93
- * - Headless: automated testing
94
- */
95
- export declare class GuidanceControlPlane {
96
- private config;
97
- private compiler;
98
- private retriever;
99
- private gates;
100
- private ledger;
101
- private optimizer;
102
- private headless;
103
- private bundle;
104
- private initialized;
105
- constructor(config?: Partial<GuidanceControlPlaneConfig>);
106
- /**
107
- * Initialize the control plane
108
- *
109
- * 1. Read and compile guidance files
110
- * 2. Load shards into retriever
111
- * 3. Configure gates
112
- * 4. Set up headless runner if enabled
113
- */
114
- initialize(): Promise<void>;
115
- /**
116
- * Compile guidance files (can be called independently)
117
- */
118
- compile(rootContent: string, localContent?: string): Promise<PolicyBundle>;
119
- /**
120
- * Retrieve relevant guidance for a task
121
- *
122
- * This is the main entry point called at task start.
123
- * Returns the constitution + relevant shards.
124
- */
125
- retrieveForTask(request: RetrievalRequest): Promise<RetrievalResult>;
126
- /**
127
- * Evaluate a command through enforcement gates
128
- */
129
- evaluateCommand(command: string): GateResult[];
130
- /**
131
- * Evaluate a tool use through enforcement gates
132
- */
133
- evaluateToolUse(toolName: string, params: Record<string, unknown>): GateResult[];
134
- /**
135
- * Evaluate a file edit through enforcement gates
136
- */
137
- evaluateEdit(filePath: string, content: string, diffLines: number): GateResult[];
138
- /**
139
- * Start a run event for tracking
140
- */
141
- startRun(taskId: string, intent: TaskIntent): RunEvent;
142
- /**
143
- * Record a violation during a run
144
- */
145
- recordViolation(event: RunEvent, violation: Violation): void;
146
- /**
147
- * Finalize a run and evaluate it
148
- */
149
- finalizeRun(event: RunEvent): Promise<EvaluatorResult[]>;
150
- /**
151
- * Run the optimization cycle
152
- */
153
- optimize(): Promise<{
154
- promoted: string[];
155
- demoted: string[];
156
- adrsCreated: number;
157
- }>;
158
- /**
159
- * Get control plane status
160
- */
161
- getStatus(): ControlPlaneStatus;
162
- /**
163
- * Get the current policy bundle
164
- */
165
- getBundle(): PolicyBundle | null;
166
- /**
167
- * Get the run ledger
168
- */
169
- getLedger(): RunLedger;
170
- /**
171
- * Get the optimizer
172
- */
173
- getOptimizer(): OptimizerLoop;
174
- /**
175
- * Get the headless runner
176
- */
177
- getHeadlessRunner(): HeadlessRunner | null;
178
- /**
179
- * Get metrics for benefit tracking
180
- */
181
- getMetrics(): {
182
- violationRatePer10Tasks: number;
183
- selfCorrectionRate: number;
184
- reworkLinesAvg: number;
185
- clarifyingQuestionsAvg: number;
186
- taskCount: number;
187
- topViolations: Array<{
188
- ruleId: string;
189
- frequency: number;
190
- cost: number;
191
- }>;
192
- };
193
- private readGuidanceFile;
194
- private ensureInitialized;
195
- }
196
- /**
197
- * Create a guidance control plane instance
198
- */
199
- export declare function createGuidanceControlPlane(config?: Partial<GuidanceControlPlaneConfig>): GuidanceControlPlane;
200
- /**
201
- * Quick setup: create and initialize the control plane
202
- */
203
- export declare function initializeGuidanceControlPlane(config?: Partial<GuidanceControlPlaneConfig>): Promise<GuidanceControlPlane>;
204
- export default GuidanceControlPlane;
205
- //# sourceMappingURL=index.d.ts.map