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.
- package/.claude/agents/browser/browser-agent.yaml +182 -182
- package/.claude/agents/core/coder.md +265 -265
- package/.claude/agents/core/planner.md +167 -167
- package/.claude/agents/core/researcher.md +189 -189
- package/.claude/agents/core/reviewer.md +325 -325
- package/.claude/agents/core/tester.md +318 -318
- package/.claude/agents/database-specialist.yaml +21 -21
- package/.claude/agents/dual-mode/codex-coordinator.md +224 -224
- package/.claude/agents/dual-mode/codex-worker.md +211 -211
- package/.claude/agents/dual-mode/dual-orchestrator.md +291 -291
- package/.claude/agents/github/code-review-swarm.md +537 -537
- package/.claude/agents/github/github-modes.md +172 -172
- package/.claude/agents/github/issue-tracker.md +318 -318
- package/.claude/agents/github/multi-repo-swarm.md +552 -552
- package/.claude/agents/github/pr-manager.md +190 -190
- package/.claude/agents/github/project-board-sync.md +508 -508
- package/.claude/agents/github/release-manager.md +366 -366
- package/.claude/agents/github/release-swarm.md +582 -582
- package/.claude/agents/github/repo-architect.md +397 -397
- package/.claude/agents/github/swarm-issue.md +572 -572
- package/.claude/agents/github/swarm-pr.md +427 -427
- package/.claude/agents/github/sync-coordinator.md +451 -451
- package/.claude/agents/github/workflow-automation.md +634 -634
- package/.claude/agents/goal/code-goal-planner.md +445 -445
- package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +129 -129
- package/.claude/agents/hive-mind/queen-coordinator.md +202 -202
- package/.claude/agents/hive-mind/scout-explorer.md +241 -241
- package/.claude/agents/hive-mind/swarm-memory-manager.md +192 -192
- package/.claude/agents/hive-mind/worker-specialist.md +216 -216
- package/.claude/agents/index.yaml +17 -17
- package/.claude/agents/neural/safla-neural.md +73 -73
- package/.claude/agents/project-coordinator.yaml +15 -15
- package/.claude/agents/python-specialist.yaml +21 -21
- package/.claude/agents/reasoning/goal-planner.md +72 -72
- package/.claude/agents/security-auditor.yaml +20 -20
- package/.claude/agents/swarm/adaptive-coordinator.md +395 -395
- package/.claude/agents/swarm/hierarchical-coordinator.md +326 -326
- package/.claude/agents/swarm/mesh-coordinator.md +391 -391
- package/.claude/agents/templates/migration-plan.md +745 -745
- package/.claude/agents/typescript-specialist.yaml +21 -21
- package/.claude/checkpoints/1767754460.json +8 -8
- package/.claude/commands/agents/agent-spawning.md +28 -28
- package/.claude/commands/github/github-modes.md +146 -146
- package/.claude/commands/github/github-swarm.md +121 -121
- package/.claude/commands/github/issue-tracker.md +291 -291
- package/.claude/commands/github/pr-manager.md +169 -169
- package/.claude/commands/github/release-manager.md +337 -337
- package/.claude/commands/github/repo-architect.md +366 -366
- package/.claude/commands/github/sync-coordinator.md +300 -300
- package/.claude/commands/memory/neural.md +47 -47
- package/.claude/commands/sparc/analyzer.md +51 -51
- package/.claude/commands/sparc/architect.md +53 -53
- package/.claude/commands/sparc/ask.md +97 -97
- package/.claude/commands/sparc/batch-executor.md +54 -54
- package/.claude/commands/sparc/code.md +89 -89
- package/.claude/commands/sparc/coder.md +54 -54
- package/.claude/commands/sparc/debug.md +83 -83
- package/.claude/commands/sparc/debugger.md +54 -54
- package/.claude/commands/sparc/designer.md +53 -53
- package/.claude/commands/sparc/devops.md +109 -109
- package/.claude/commands/sparc/docs-writer.md +80 -80
- package/.claude/commands/sparc/documenter.md +54 -54
- package/.claude/commands/sparc/innovator.md +54 -54
- package/.claude/commands/sparc/integration.md +83 -83
- package/.claude/commands/sparc/mcp.md +117 -117
- package/.claude/commands/sparc/memory-manager.md +54 -54
- package/.claude/commands/sparc/optimizer.md +54 -54
- package/.claude/commands/sparc/orchestrator.md +131 -131
- package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -83
- package/.claude/commands/sparc/refinement-optimization-mode.md +83 -83
- package/.claude/commands/sparc/researcher.md +54 -54
- package/.claude/commands/sparc/reviewer.md +54 -54
- package/.claude/commands/sparc/security-review.md +80 -80
- package/.claude/commands/sparc/sparc-modes.md +174 -174
- package/.claude/commands/sparc/sparc.md +111 -111
- package/.claude/commands/sparc/spec-pseudocode.md +80 -80
- package/.claude/commands/sparc/supabase-admin.md +348 -348
- package/.claude/commands/sparc/swarm-coordinator.md +54 -54
- package/.claude/commands/sparc/tdd.md +54 -54
- package/.claude/commands/sparc/tester.md +54 -54
- package/.claude/commands/sparc/tutorial.md +79 -79
- package/.claude/commands/sparc/workflow-manager.md +54 -54
- package/.claude/commands/sparc.md +166 -166
- package/.claude/commands/swarm/analysis.md +95 -95
- package/.claude/commands/swarm/development.md +96 -96
- package/.claude/commands/swarm/examples.md +168 -168
- package/.claude/commands/swarm/maintenance.md +102 -102
- package/.claude/commands/swarm/optimization.md +117 -117
- package/.claude/commands/swarm/research.md +136 -136
- package/.claude/commands/swarm/testing.md +131 -131
- package/.claude/commands/workflows/development.md +77 -77
- package/.claude/commands/workflows/research.md +62 -62
- package/.claude/guidance/moflo-bootstrap.md +126 -126
- package/.claude/guidance/shipped/agent-bootstrap.md +126 -126
- package/.claude/guidance/shipped/guidance-memory-strategy.md +262 -262
- package/.claude/guidance/shipped/memory-strategy.md +204 -204
- package/.claude/guidance/shipped/moflo.md +668 -653
- package/.claude/guidance/shipped/task-swarm-integration.md +441 -441
- package/.claude/helpers/intelligence.cjs +207 -207
- package/.claude/helpers/statusline.cjs +851 -851
- package/.claude/settings.local.json +18 -0
- package/.claude/skills/fl/SKILL.md +583 -583
- package/.claude/skills/flo/SKILL.md +583 -583
- package/.claude/skills/github-code-review/SKILL.md +1140 -1140
- package/.claude/skills/github-multi-repo/SKILL.md +874 -874
- package/.claude/skills/github-project-management/SKILL.md +1277 -1277
- package/.claude/skills/github-release-management/SKILL.md +1081 -1081
- package/.claude/skills/github-workflow-automation/SKILL.md +1065 -1065
- package/.claude/skills/hive-mind-advanced/SKILL.md +712 -712
- package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
- package/.claude/skills/performance-analysis/SKILL.md +563 -563
- package/.claude/skills/sparc-methodology/SKILL.md +1115 -1115
- package/.claude/skills/swarm-advanced/SKILL.md +973 -973
- package/.claude/workflow-state.json +4 -4
- package/LICENSE +21 -21
- package/README.md +685 -685
- package/bin/cli.js +0 -0
- package/bin/gate-hook.mjs +50 -50
- package/bin/gate.cjs +138 -138
- package/bin/generate-code-map.mjs +775 -775
- package/bin/hook-handler.cjs +83 -83
- package/bin/hooks.mjs +656 -656
- package/bin/index-guidance.mjs +892 -892
- package/bin/index-tests.mjs +709 -709
- package/bin/lib/process-manager.mjs +243 -243
- package/bin/lib/registry-cleanup.cjs +41 -41
- package/bin/prompt-hook.mjs +72 -72
- package/bin/semantic-search.mjs +472 -472
- package/bin/session-start-launcher.mjs +238 -238
- package/bin/setup-project.mjs +250 -250
- package/package.json +123 -123
- package/src/@claude-flow/cli/README.md +452 -452
- package/src/@claude-flow/cli/bin/cli.js +180 -180
- package/src/@claude-flow/cli/bin/preinstall.cjs +2 -2
- package/src/@claude-flow/cli/dist/src/commands/completions.js +409 -409
- package/src/@claude-flow/cli/dist/src/commands/doctor.js +5 -1
- package/src/@claude-flow/cli/dist/src/commands/embeddings.js +25 -25
- package/src/@claude-flow/cli/dist/src/commands/github.js +61 -61
- package/src/@claude-flow/cli/dist/src/commands/hive-mind.js +90 -90
- package/src/@claude-flow/cli/dist/src/commands/hooks.js +9 -9
- package/src/@claude-flow/cli/dist/src/commands/ruvector/import.js +14 -14
- package/src/@claude-flow/cli/dist/src/commands/ruvector/setup.js +624 -624
- package/src/@claude-flow/cli/dist/src/config/moflo-config.d.ts +3 -0
- package/src/@claude-flow/cli/dist/src/config/moflo-config.js +101 -91
- package/src/@claude-flow/cli/dist/src/index.d.ts +5 -0
- package/src/@claude-flow/cli/dist/src/index.js +44 -0
- package/src/@claude-flow/cli/dist/src/init/claudemd-generator.d.ts +29 -29
- package/src/@claude-flow/cli/dist/src/init/claudemd-generator.js +43 -43
- package/src/@claude-flow/cli/dist/src/init/executor.js +453 -453
- package/src/@claude-flow/cli/dist/src/init/helpers-generator.js +482 -482
- package/src/@claude-flow/cli/dist/src/init/moflo-init.d.ts +30 -30
- package/src/@claude-flow/cli/dist/src/init/moflo-init.js +140 -140
- package/src/@claude-flow/cli/dist/src/init/statusline-generator.js +876 -876
- package/src/@claude-flow/cli/dist/src/memory/memory-initializer.js +371 -371
- package/src/@claude-flow/cli/dist/src/runtime/headless.js +28 -28
- package/src/@claude-flow/cli/dist/src/services/container-worker-pool.d.ts +197 -0
- package/src/@claude-flow/cli/dist/src/services/container-worker-pool.js +584 -0
- package/src/@claude-flow/cli/dist/src/services/daemon-lock.d.ts +14 -0
- package/src/@claude-flow/cli/dist/src/services/daemon-lock.js +1 -1
- package/src/@claude-flow/cli/dist/src/services/headless-worker-executor.js +84 -84
- package/src/@claude-flow/cli/package.json +1 -1
- package/src/@claude-flow/guidance/README.md +1195 -1195
- package/src/@claude-flow/guidance/package.json +198 -198
- package/src/@claude-flow/memory/README.md +587 -587
- package/src/@claude-flow/memory/dist/agent-memory-scope.test.js +4 -7
- package/src/@claude-flow/memory/dist/agentdb-backend.d.ts +2 -0
- package/src/@claude-flow/memory/dist/agentdb-backend.js +28 -26
- package/src/@claude-flow/memory/dist/auto-memory-bridge.test.js +36 -39
- package/src/@claude-flow/memory/dist/benchmark.test.js +1 -1
- package/src/@claude-flow/memory/dist/controller-registry.test.js +43 -0
- package/src/@claude-flow/memory/dist/database-provider.d.ts +2 -2
- package/src/@claude-flow/memory/dist/database-provider.js +6 -3
- package/src/@claude-flow/memory/dist/database-provider.test.js +1 -3
- package/src/@claude-flow/memory/dist/hybrid-backend.d.ts +245 -0
- package/src/@claude-flow/memory/dist/hybrid-backend.js +569 -0
- package/src/@claude-flow/memory/dist/hybrid-backend.test.d.ts +8 -0
- package/src/@claude-flow/memory/dist/hybrid-backend.test.js +320 -0
- package/src/@claude-flow/memory/dist/index.d.ts +3 -0
- package/src/@claude-flow/memory/dist/index.js +3 -0
- package/src/@claude-flow/memory/dist/sqlite-backend.d.ts +121 -0
- package/src/@claude-flow/memory/dist/sqlite-backend.js +572 -0
- package/src/@claude-flow/memory/dist/sqljs-backend.d.ts +4 -3
- package/src/@claude-flow/memory/dist/sqljs-backend.js +31 -30
- package/src/@claude-flow/memory/package.json +44 -44
- package/src/@claude-flow/shared/README.md +323 -323
- package/src/@claude-flow/shared/dist/core/config/defaults.js +1 -1
- package/src/@claude-flow/shared/dist/core/config/loader.js +1 -1
- package/src/@claude-flow/shared/dist/core/config/schema.js +1 -1
- package/src/@claude-flow/shared/dist/events/event-store.js +34 -50
- package/src/@claude-flow/shared/dist/events/event-store.test.js +4 -8
- package/src/@claude-flow/shared/dist/hooks/executor.js +4 -7
- package/src/@claude-flow/shared/dist/hooks/safety/file-organization.js +1 -1
- package/src/@claude-flow/shared/dist/hooks/safety/git-commit.js +3 -3
- package/src/@claude-flow/shared/dist/hooks/verify-exports.test.js +6 -6
- package/src/@claude-flow/shared/dist/utils/secure-logger.js +1 -1
- package/src/README.md +493 -493
- package/src/@claude-flow/guidance/dist/adversarial.d.ts +0 -284
- package/src/@claude-flow/guidance/dist/adversarial.js +0 -572
- package/src/@claude-flow/guidance/dist/analyzer.d.ts +0 -530
- package/src/@claude-flow/guidance/dist/analyzer.js +0 -2518
- package/src/@claude-flow/guidance/dist/artifacts.d.ts +0 -283
- package/src/@claude-flow/guidance/dist/artifacts.js +0 -356
- package/src/@claude-flow/guidance/dist/authority.d.ts +0 -290
- package/src/@claude-flow/guidance/dist/authority.js +0 -558
- package/src/@claude-flow/guidance/dist/capabilities.d.ts +0 -209
- package/src/@claude-flow/guidance/dist/capabilities.js +0 -485
- package/src/@claude-flow/guidance/dist/coherence.d.ts +0 -233
- package/src/@claude-flow/guidance/dist/coherence.js +0 -372
- package/src/@claude-flow/guidance/dist/compiler.d.ts +0 -87
- package/src/@claude-flow/guidance/dist/compiler.js +0 -419
- package/src/@claude-flow/guidance/dist/conformance-kit.d.ts +0 -225
- package/src/@claude-flow/guidance/dist/conformance-kit.js +0 -629
- package/src/@claude-flow/guidance/dist/continue-gate.d.ts +0 -214
- package/src/@claude-flow/guidance/dist/continue-gate.js +0 -353
- package/src/@claude-flow/guidance/dist/crypto-utils.d.ts +0 -17
- package/src/@claude-flow/guidance/dist/crypto-utils.js +0 -24
- package/src/@claude-flow/guidance/dist/evolution.d.ts +0 -282
- package/src/@claude-flow/guidance/dist/evolution.js +0 -500
- package/src/@claude-flow/guidance/dist/gates.d.ts +0 -79
- package/src/@claude-flow/guidance/dist/gates.js +0 -302
- package/src/@claude-flow/guidance/dist/gateway.d.ts +0 -206
- package/src/@claude-flow/guidance/dist/gateway.js +0 -452
- package/src/@claude-flow/guidance/dist/generators.d.ts +0 -153
- package/src/@claude-flow/guidance/dist/generators.js +0 -682
- package/src/@claude-flow/guidance/dist/headless.d.ts +0 -177
- package/src/@claude-flow/guidance/dist/headless.js +0 -342
- package/src/@claude-flow/guidance/dist/hooks.d.ts +0 -109
- package/src/@claude-flow/guidance/dist/hooks.js +0 -347
- package/src/@claude-flow/guidance/dist/index.d.ts +0 -205
- package/src/@claude-flow/guidance/dist/index.js +0 -321
- package/src/@claude-flow/guidance/dist/ledger.d.ts +0 -162
- package/src/@claude-flow/guidance/dist/ledger.js +0 -375
- package/src/@claude-flow/guidance/dist/manifest-validator.d.ts +0 -289
- package/src/@claude-flow/guidance/dist/manifest-validator.js +0 -838
- package/src/@claude-flow/guidance/dist/memory-gate.d.ts +0 -222
- package/src/@claude-flow/guidance/dist/memory-gate.js +0 -382
- package/src/@claude-flow/guidance/dist/meta-governance.d.ts +0 -265
- package/src/@claude-flow/guidance/dist/meta-governance.js +0 -348
- package/src/@claude-flow/guidance/dist/optimizer.d.ts +0 -104
- package/src/@claude-flow/guidance/dist/optimizer.js +0 -329
- package/src/@claude-flow/guidance/dist/persistence.d.ts +0 -189
- package/src/@claude-flow/guidance/dist/persistence.js +0 -464
- package/src/@claude-flow/guidance/dist/proof.d.ts +0 -185
- package/src/@claude-flow/guidance/dist/proof.js +0 -238
- package/src/@claude-flow/guidance/dist/retriever.d.ts +0 -116
- package/src/@claude-flow/guidance/dist/retriever.js +0 -394
- package/src/@claude-flow/guidance/dist/ruvbot-integration.d.ts +0 -370
- package/src/@claude-flow/guidance/dist/ruvbot-integration.js +0 -738
- package/src/@claude-flow/guidance/dist/temporal.d.ts +0 -426
- package/src/@claude-flow/guidance/dist/temporal.js +0 -658
- package/src/@claude-flow/guidance/dist/trust.d.ts +0 -283
- package/src/@claude-flow/guidance/dist/trust.js +0 -473
- package/src/@claude-flow/guidance/dist/truth-anchors.d.ts +0 -276
- package/src/@claude-flow/guidance/dist/truth-anchors.js +0 -488
- package/src/@claude-flow/guidance/dist/types.d.ts +0 -378
- package/src/@claude-flow/guidance/dist/types.js +0 -10
- package/src/@claude-flow/guidance/dist/uncertainty.d.ts +0 -372
- package/src/@claude-flow/guidance/dist/uncertainty.js +0 -619
- package/src/@claude-flow/guidance/dist/wasm-kernel.d.ts +0 -48
- 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
|