@winspan/claude-forge 8.54.4 → 9.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DEVELOPMENT.md +723 -46
- package/README.md +166 -21
- package/dist/catalogs/agents.json +67 -0
- package/dist/catalogs/skills.json +306 -0
- package/dist/claudemd/claudemd-generator.d.ts +45 -45
- package/dist/claudemd/claudemd-generator.d.ts.map +1 -1
- package/dist/claudemd/claudemd-generator.js +128 -449
- package/dist/claudemd/claudemd-generator.js.map +1 -1
- package/dist/claudemd/index.d.ts +14 -4
- package/dist/claudemd/index.d.ts.map +1 -1
- package/dist/claudemd/index.js +15 -4
- package/dist/claudemd/index.js.map +1 -1
- package/dist/claudemd/resume-manager.d.ts.map +1 -1
- package/dist/claudemd/resume-manager.js +37 -9
- package/dist/claudemd/resume-manager.js.map +1 -1
- package/dist/claudemd/templates/swarm-protocol.md +35 -186
- package/dist/claudemd/violations-manager.d.ts +40 -0
- package/dist/claudemd/violations-manager.d.ts.map +1 -0
- package/dist/claudemd/violations-manager.js +106 -0
- package/dist/claudemd/violations-manager.js.map +1 -0
- package/dist/cli/commands/admin.d.ts +15 -0
- package/dist/cli/commands/admin.d.ts.map +1 -0
- package/dist/cli/commands/admin.js +177 -0
- package/dist/cli/commands/admin.js.map +1 -0
- package/dist/cli/commands/agent.d.ts +169 -0
- package/dist/cli/commands/agent.d.ts.map +1 -0
- package/dist/cli/commands/agent.js +690 -0
- package/dist/cli/commands/agent.js.map +1 -0
- package/dist/cli/commands/agents.d.ts +18 -0
- package/dist/cli/commands/agents.d.ts.map +1 -0
- package/dist/cli/commands/agents.js +160 -0
- package/dist/cli/commands/agents.js.map +1 -0
- package/dist/cli/commands/bypass.d.ts +18 -0
- package/dist/cli/commands/bypass.d.ts.map +1 -0
- package/dist/cli/commands/bypass.js +87 -0
- package/dist/cli/commands/bypass.js.map +1 -0
- package/dist/cli/commands/claudemd.d.ts +60 -0
- package/dist/cli/commands/claudemd.d.ts.map +1 -1
- package/dist/cli/commands/claudemd.js +174 -37
- package/dist/cli/commands/claudemd.js.map +1 -1
- package/dist/cli/commands/codegraph.d.ts +17 -0
- package/dist/cli/commands/codegraph.d.ts.map +1 -0
- package/dist/cli/commands/codegraph.js +263 -0
- package/dist/cli/commands/codegraph.js.map +1 -0
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/config.js +94 -1
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/daemon.d.ts +39 -0
- package/dist/cli/commands/daemon.d.ts.map +1 -1
- package/dist/cli/commands/daemon.js +167 -20
- package/dist/cli/commands/daemon.js.map +1 -1
- package/dist/cli/commands/decisions.d.ts +129 -0
- package/dist/cli/commands/decisions.d.ts.map +1 -0
- package/dist/cli/commands/decisions.js +706 -0
- package/dist/cli/commands/decisions.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +29 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +124 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/entropy.d.ts +35 -0
- package/dist/cli/commands/entropy.d.ts.map +1 -0
- package/dist/cli/commands/entropy.js +121 -0
- package/dist/cli/commands/entropy.js.map +1 -0
- package/dist/cli/commands/executions.d.ts +1 -0
- package/dist/cli/commands/executions.d.ts.map +1 -1
- package/dist/cli/commands/executions.js +12 -2
- package/dist/cli/commands/executions.js.map +1 -1
- package/dist/cli/commands/fix.d.ts +31 -0
- package/dist/cli/commands/fix.d.ts.map +1 -0
- package/dist/cli/commands/fix.js +108 -0
- package/dist/cli/commands/fix.js.map +1 -0
- package/dist/cli/commands/governance.d.ts +21 -0
- package/dist/cli/commands/governance.d.ts.map +1 -0
- package/dist/cli/commands/governance.js +60 -0
- package/dist/cli/commands/governance.js.map +1 -0
- package/dist/cli/commands/init.d.ts +27 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +158 -146
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/insights-goal-check.d.ts +54 -0
- package/dist/cli/commands/insights-goal-check.d.ts.map +1 -0
- package/dist/cli/commands/insights-goal-check.js +318 -0
- package/dist/cli/commands/insights-goal-check.js.map +1 -0
- package/dist/cli/commands/insights.d.ts +15 -0
- package/dist/cli/commands/insights.d.ts.map +1 -0
- package/dist/cli/commands/insights.js +127 -0
- package/dist/cli/commands/insights.js.map +1 -0
- package/dist/cli/commands/knowledge.d.ts +117 -0
- package/dist/cli/commands/knowledge.d.ts.map +1 -0
- package/dist/cli/commands/knowledge.js +1070 -0
- package/dist/cli/commands/knowledge.js.map +1 -0
- package/dist/cli/commands/loop.d.ts +95 -0
- package/dist/cli/commands/loop.d.ts.map +1 -0
- package/dist/cli/commands/loop.js +408 -0
- package/dist/cli/commands/loop.js.map +1 -0
- package/dist/cli/commands/maintenance.d.ts +33 -0
- package/dist/cli/commands/maintenance.d.ts.map +1 -0
- package/dist/cli/commands/maintenance.js +75 -0
- package/dist/cli/commands/maintenance.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +22 -11
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +93 -5
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/menu.d.ts.map +1 -1
- package/dist/cli/commands/menu.js +10 -184
- package/dist/cli/commands/menu.js.map +1 -1
- package/dist/cli/commands/project.d.ts +98 -0
- package/dist/cli/commands/project.d.ts.map +1 -0
- package/dist/cli/commands/project.js +382 -0
- package/dist/cli/commands/project.js.map +1 -0
- package/dist/cli/commands/skills.d.ts +131 -0
- package/dist/cli/commands/skills.d.ts.map +1 -1
- package/dist/cli/commands/skills.js +404 -118
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/spec.d.ts +40 -0
- package/dist/cli/commands/spec.d.ts.map +1 -0
- package/dist/cli/commands/spec.js +49 -0
- package/dist/cli/commands/spec.js.map +1 -0
- package/dist/cli/commands/stats.d.ts.map +1 -1
- package/dist/cli/commands/stats.js +11 -3
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +17 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/trace.d.ts.map +1 -1
- package/dist/cli/commands/trace.js +4 -9
- package/dist/cli/commands/trace.js.map +1 -1
- package/dist/cli/commands/violations.d.ts +14 -0
- package/dist/cli/commands/violations.d.ts.map +1 -0
- package/dist/cli/commands/violations.js +43 -0
- package/dist/cli/commands/violations.js.map +1 -0
- package/dist/cli/index.js +34 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/hook-manager.d.ts +1 -1
- package/dist/cli/init/hook-manager.d.ts.map +1 -1
- package/dist/cli/init/hook-manager.js +6 -0
- package/dist/cli/init/hook-manager.js.map +1 -1
- package/dist/cli/utils/resolve-session.d.ts +32 -0
- package/dist/cli/utils/resolve-session.d.ts.map +1 -0
- package/dist/cli/utils/resolve-session.js +39 -0
- package/dist/cli/utils/resolve-session.js.map +1 -0
- package/dist/core/config.d.ts +4 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +11 -23
- package/dist/core/config.js.map +1 -1
- package/dist/core/constants.d.ts +51 -13
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +63 -13
- package/dist/core/constants.js.map +1 -1
- package/dist/core/diagnostics/checks.d.ts +151 -0
- package/dist/core/diagnostics/checks.d.ts.map +1 -0
- package/dist/core/diagnostics/checks.js +766 -0
- package/dist/core/diagnostics/checks.js.map +1 -0
- package/dist/core/diagnostics/daemon-status.d.ts +77 -0
- package/dist/core/diagnostics/daemon-status.d.ts.map +1 -0
- package/dist/core/diagnostics/daemon-status.js +113 -0
- package/dist/core/diagnostics/daemon-status.js.map +1 -0
- package/dist/core/diagnostics/entropy-checks.d.ts +83 -0
- package/dist/core/diagnostics/entropy-checks.d.ts.map +1 -0
- package/dist/core/diagnostics/entropy-checks.js +400 -0
- package/dist/core/diagnostics/entropy-checks.js.map +1 -0
- package/dist/core/diagnostics/fix-runner.d.ts +54 -0
- package/dist/core/diagnostics/fix-runner.d.ts.map +1 -0
- package/dist/core/diagnostics/fix-runner.js +90 -0
- package/dist/core/diagnostics/fix-runner.js.map +1 -0
- package/dist/core/diagnostics/heartbeat-reader.d.ts +28 -0
- package/dist/core/diagnostics/heartbeat-reader.d.ts.map +1 -0
- package/dist/core/diagnostics/heartbeat-reader.js +50 -0
- package/dist/core/diagnostics/heartbeat-reader.js.map +1 -0
- package/dist/core/diagnostics/knip-runner.d.ts +49 -0
- package/dist/core/diagnostics/knip-runner.d.ts.map +1 -0
- package/dist/core/diagnostics/knip-runner.js +100 -0
- package/dist/core/diagnostics/knip-runner.js.map +1 -0
- package/dist/core/diagnostics/markers.d.ts +96 -0
- package/dist/core/diagnostics/markers.d.ts.map +1 -0
- package/dist/core/diagnostics/markers.js +153 -0
- package/dist/core/diagnostics/markers.js.map +1 -0
- package/dist/core/event-fields.d.ts +27 -0
- package/dist/core/event-fields.d.ts.map +1 -1
- package/dist/core/event-fields.js +43 -0
- package/dist/core/event-fields.js.map +1 -1
- package/dist/core/governance/global-inject.d.ts +90 -0
- package/dist/core/governance/global-inject.d.ts.map +1 -0
- package/dist/core/governance/global-inject.js +184 -0
- package/dist/core/governance/global-inject.js.map +1 -0
- package/dist/core/insights/agent-anchor-guard.d.ts +77 -0
- package/dist/core/insights/agent-anchor-guard.d.ts.map +1 -0
- package/dist/core/insights/agent-anchor-guard.js +119 -0
- package/dist/core/insights/agent-anchor-guard.js.map +1 -0
- package/dist/core/insights/agent-distill-context.d.ts +55 -0
- package/dist/core/insights/agent-distill-context.d.ts.map +1 -0
- package/dist/core/insights/agent-distill-context.js +146 -0
- package/dist/core/insights/agent-distill-context.js.map +1 -0
- package/dist/core/insights/agent-distill-spawn.d.ts +56 -0
- package/dist/core/insights/agent-distill-spawn.d.ts.map +1 -0
- package/dist/core/insights/agent-distill-spawn.js +179 -0
- package/dist/core/insights/agent-distill-spawn.js.map +1 -0
- package/dist/core/insights/agent-drift.d.ts +66 -0
- package/dist/core/insights/agent-drift.d.ts.map +1 -0
- package/dist/core/insights/agent-drift.js +109 -0
- package/dist/core/insights/agent-drift.js.map +1 -0
- package/dist/core/insights/agent-evolution-sources.d.ts +21 -0
- package/dist/core/insights/agent-evolution-sources.d.ts.map +1 -0
- package/dist/core/insights/agent-evolution-sources.js +36 -0
- package/dist/core/insights/agent-evolution-sources.js.map +1 -0
- package/dist/core/insights/agent-health.d.ts +142 -0
- package/dist/core/insights/agent-health.d.ts.map +1 -0
- package/dist/core/insights/agent-health.js +296 -0
- package/dist/core/insights/agent-health.js.map +1 -0
- package/dist/core/insights/agent-patch-apply.d.ts +45 -0
- package/dist/core/insights/agent-patch-apply.d.ts.map +1 -0
- package/dist/core/insights/agent-patch-apply.js +165 -0
- package/dist/core/insights/agent-patch-apply.js.map +1 -0
- package/dist/core/insights/agent-suggest.d.ts +128 -0
- package/dist/core/insights/agent-suggest.d.ts.map +1 -0
- package/dist/core/insights/agent-suggest.js +284 -0
- package/dist/core/insights/agent-suggest.js.map +1 -0
- package/dist/core/insights/coverage-tiers.d.ts +46 -0
- package/dist/core/insights/coverage-tiers.d.ts.map +1 -0
- package/dist/core/insights/coverage-tiers.js +95 -0
- package/dist/core/insights/coverage-tiers.js.map +1 -0
- package/dist/core/insights/experience-extractor.d.ts +60 -0
- package/dist/core/insights/experience-extractor.d.ts.map +1 -0
- package/dist/core/insights/experience-extractor.js +319 -0
- package/dist/core/insights/experience-extractor.js.map +1 -0
- package/dist/core/insights/violation-reporter.d.ts +149 -0
- package/dist/core/insights/violation-reporter.d.ts.map +1 -0
- package/dist/core/insights/violation-reporter.js +391 -0
- package/dist/core/insights/violation-reporter.js.map +1 -0
- package/dist/core/loop/loop-engine.d.ts +140 -0
- package/dist/core/loop/loop-engine.d.ts.map +1 -0
- package/dist/core/loop/loop-engine.js +266 -0
- package/dist/core/loop/loop-engine.js.map +1 -0
- package/dist/core/queue/index.d.ts +16 -3
- package/dist/core/queue/index.d.ts.map +1 -1
- package/dist/core/queue/index.js +16 -4
- package/dist/core/queue/index.js.map +1 -1
- package/dist/core/storage/base.d.ts +317 -0
- package/dist/core/storage/base.d.ts.map +1 -1
- package/dist/core/storage/base.js +1093 -0
- package/dist/core/storage/base.js.map +1 -1
- package/dist/core/storage/codec/tool-input-codec.d.ts +93 -0
- package/dist/core/storage/codec/tool-input-codec.d.ts.map +1 -0
- package/dist/core/storage/codec/tool-input-codec.js +159 -0
- package/dist/core/storage/codec/tool-input-codec.js.map +1 -0
- package/dist/core/storage/codegraph-types.d.ts +79 -0
- package/dist/core/storage/codegraph-types.d.ts.map +1 -0
- package/dist/core/storage/codegraph-types.js +14 -0
- package/dist/core/storage/codegraph-types.js.map +1 -0
- package/dist/core/storage/codegraph.d.ts +186 -0
- package/dist/core/storage/codegraph.d.ts.map +1 -0
- package/dist/core/storage/codegraph.js +452 -0
- package/dist/core/storage/codegraph.js.map +1 -0
- package/dist/core/storage/decisions.d.ts +387 -0
- package/dist/core/storage/decisions.d.ts.map +1 -0
- package/dist/core/storage/decisions.js +534 -0
- package/dist/core/storage/decisions.js.map +1 -0
- package/dist/core/storage/events.d.ts +239 -8
- package/dist/core/storage/events.d.ts.map +1 -1
- package/dist/core/storage/events.js +705 -39
- package/dist/core/storage/events.js.map +1 -1
- package/dist/core/storage/feedback.d.ts +111 -0
- package/dist/core/storage/feedback.d.ts.map +1 -0
- package/dist/core/storage/feedback.js +186 -0
- package/dist/core/storage/feedback.js.map +1 -0
- package/dist/core/storage/forge-config.d.ts +40 -0
- package/dist/core/storage/forge-config.d.ts.map +1 -0
- package/dist/core/storage/forge-config.js +65 -0
- package/dist/core/storage/forge-config.js.map +1 -0
- package/dist/core/storage/injections.d.ts +68 -0
- package/dist/core/storage/injections.d.ts.map +1 -1
- package/dist/core/storage/injections.js +131 -5
- package/dist/core/storage/injections.js.map +1 -1
- package/dist/core/storage/knowledge.d.ts +332 -0
- package/dist/core/storage/knowledge.d.ts.map +1 -0
- package/dist/core/storage/knowledge.js +589 -0
- package/dist/core/storage/knowledge.js.map +1 -0
- package/dist/core/storage/maintenance.d.ts +36 -9
- package/dist/core/storage/maintenance.d.ts.map +1 -1
- package/dist/core/storage/maintenance.js +56 -24
- package/dist/core/storage/maintenance.js.map +1 -1
- package/dist/core/storage/pipeline-rollup.d.ts +111 -0
- package/dist/core/storage/pipeline-rollup.d.ts.map +1 -0
- package/dist/core/storage/pipeline-rollup.js +432 -0
- package/dist/core/storage/pipeline-rollup.js.map +1 -0
- package/dist/core/storage/routing.d.ts +50 -3
- package/dist/core/storage/routing.d.ts.map +1 -1
- package/dist/core/storage/routing.js +131 -10
- package/dist/core/storage/routing.js.map +1 -1
- package/dist/core/storage/rows.d.ts +31 -8
- package/dist/core/storage/rows.d.ts.map +1 -1
- package/dist/core/storage/schema.sql +367 -23
- package/dist/core/storage/sessions.d.ts +136 -0
- package/dist/core/storage/sessions.d.ts.map +1 -1
- package/dist/core/storage/sessions.js +352 -15
- package/dist/core/storage/sessions.js.map +1 -1
- package/dist/core/storage/skills.d.ts +160 -0
- package/dist/core/storage/skills.d.ts.map +1 -1
- package/dist/core/storage/skills.js +368 -7
- package/dist/core/storage/skills.js.map +1 -1
- package/dist/core/storage/sqlite.d.ts +309 -20
- package/dist/core/storage/sqlite.d.ts.map +1 -1
- package/dist/core/storage/sqlite.js +523 -16
- package/dist/core/storage/sqlite.js.map +1 -1
- package/dist/core/storage/tasks.d.ts +744 -2
- package/dist/core/storage/tasks.d.ts.map +1 -1
- package/dist/core/storage/tasks.js +1691 -17
- package/dist/core/storage/tasks.js.map +1 -1
- package/dist/core/storage/tool-intercepts.d.ts +69 -0
- package/dist/core/storage/tool-intercepts.d.ts.map +1 -0
- package/dist/core/storage/tool-intercepts.js +116 -0
- package/dist/core/storage/tool-intercepts.js.map +1 -0
- package/dist/core/types.d.ts +136 -18
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +10 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/utils/backup.d.ts +81 -0
- package/dist/core/utils/backup.d.ts.map +1 -0
- package/dist/core/utils/backup.js +98 -0
- package/dist/core/utils/backup.js.map +1 -0
- package/dist/core/utils/binary-paths.d.ts +124 -0
- package/dist/core/utils/binary-paths.d.ts.map +1 -0
- package/dist/core/utils/binary-paths.js +218 -0
- package/dist/core/utils/binary-paths.js.map +1 -0
- package/dist/core/utils/bypass-token.d.ts +75 -0
- package/dist/core/utils/bypass-token.d.ts.map +1 -0
- package/dist/core/utils/bypass-token.js +133 -0
- package/dist/core/utils/bypass-token.js.map +1 -0
- package/dist/core/utils/cc-builtin-agents.d.ts +3 -0
- package/dist/core/utils/cc-builtin-agents.d.ts.map +1 -0
- package/dist/core/utils/cc-builtin-agents.js +29 -0
- package/dist/core/utils/cc-builtin-agents.js.map +1 -0
- package/dist/core/utils/claude-cli-resolver.d.ts +26 -0
- package/dist/core/utils/claude-cli-resolver.d.ts.map +1 -0
- package/dist/core/utils/claude-cli-resolver.js +115 -0
- package/dist/core/utils/claude-cli-resolver.js.map +1 -0
- package/dist/core/utils/claude-cli-spawn.d.ts +106 -0
- package/dist/core/utils/claude-cli-spawn.d.ts.map +1 -0
- package/dist/core/utils/claude-cli-spawn.js +219 -0
- package/dist/core/utils/claude-cli-spawn.js.map +1 -0
- package/dist/core/utils/forge-resume-block.d.ts.map +1 -1
- package/dist/core/utils/forge-resume-block.js +3 -2
- package/dist/core/utils/forge-resume-block.js.map +1 -1
- package/dist/core/utils/logger.d.ts +15 -3
- package/dist/core/utils/logger.d.ts.map +1 -1
- package/dist/core/utils/logger.js +20 -2
- package/dist/core/utils/logger.js.map +1 -1
- package/dist/core/utils/noise-prompt.d.ts +97 -0
- package/dist/core/utils/noise-prompt.d.ts.map +1 -0
- package/dist/core/utils/noise-prompt.js +127 -0
- package/dist/core/utils/noise-prompt.js.map +1 -0
- package/dist/core/utils/path.d.ts +0 -4
- package/dist/core/utils/path.d.ts.map +1 -1
- package/dist/core/utils/path.js +0 -7
- package/dist/core/utils/path.js.map +1 -1
- package/dist/core/utils/time.d.ts +67 -0
- package/dist/core/utils/time.d.ts.map +1 -1
- package/dist/core/utils/time.js +147 -0
- package/dist/core/utils/time.js.map +1 -1
- package/dist/daemon/agent-sync.d.ts +24 -0
- package/dist/daemon/agent-sync.d.ts.map +1 -0
- package/dist/daemon/agent-sync.js +114 -0
- package/dist/daemon/agent-sync.js.map +1 -0
- package/dist/daemon/config-store.d.ts +55 -0
- package/dist/daemon/config-store.d.ts.map +1 -0
- package/dist/daemon/config-store.js +146 -0
- package/dist/daemon/config-store.js.map +1 -0
- package/dist/daemon/event-parser.d.ts +22 -0
- package/dist/daemon/event-parser.d.ts.map +1 -1
- package/dist/daemon/event-parser.js +54 -3
- package/dist/daemon/event-parser.js.map +1 -1
- package/dist/daemon/handlers/history-exporter.d.ts.map +1 -1
- package/dist/daemon/handlers/history-exporter.js +9 -8
- package/dist/daemon/handlers/history-exporter.js.map +1 -1
- package/dist/daemon/handlers/post-tool-use.d.ts +66 -4
- package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
- package/dist/daemon/handlers/post-tool-use.js +221 -8
- package/dist/daemon/handlers/post-tool-use.js.map +1 -1
- package/dist/daemon/handlers/pre-tool-use.d.ts +181 -0
- package/dist/daemon/handlers/pre-tool-use.d.ts.map +1 -0
- package/dist/daemon/handlers/pre-tool-use.js +618 -0
- package/dist/daemon/handlers/pre-tool-use.js.map +1 -0
- package/dist/daemon/handlers/stop.d.ts +55 -7
- package/dist/daemon/handlers/stop.d.ts.map +1 -1
- package/dist/daemon/handlers/stop.js +245 -8
- package/dist/daemon/handlers/stop.js.map +1 -1
- package/dist/daemon/handlers/user-prompt.d.ts +51 -14
- package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt.js +223 -95
- package/dist/daemon/handlers/user-prompt.js.map +1 -1
- package/dist/daemon/handlers/violation-content-backfill.d.ts +76 -0
- package/dist/daemon/handlers/violation-content-backfill.d.ts.map +1 -0
- package/dist/daemon/handlers/violation-content-backfill.js +167 -0
- package/dist/daemon/handlers/violation-content-backfill.js.map +1 -0
- package/dist/daemon/hook-sync.d.ts.map +1 -1
- package/dist/daemon/hook-sync.js +2 -1
- package/dist/daemon/hook-sync.js.map +1 -1
- package/dist/daemon/index.d.ts +19 -0
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +439 -86
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/lifecycle.d.ts +48 -1
- package/dist/daemon/lifecycle.d.ts.map +1 -1
- package/dist/daemon/lifecycle.js +98 -2
- package/dist/daemon/lifecycle.js.map +1 -1
- package/dist/daemon/router.d.ts +4 -1
- package/dist/daemon/router.d.ts.map +1 -1
- package/dist/daemon/router.js +4 -2
- package/dist/daemon/router.js.map +1 -1
- package/dist/daemon/rules/defaults.d.ts +20 -0
- package/dist/daemon/rules/defaults.d.ts.map +1 -0
- package/dist/daemon/rules/defaults.js +779 -0
- package/dist/daemon/rules/defaults.js.map +1 -0
- package/dist/daemon/rules/registry.d.ts +47 -0
- package/dist/daemon/rules/registry.d.ts.map +1 -0
- package/dist/daemon/rules/registry.js +84 -0
- package/dist/daemon/rules/registry.js.map +1 -0
- package/dist/daemon/rules/types.d.ts +176 -0
- package/dist/daemon/rules/types.d.ts.map +1 -0
- package/dist/daemon/rules/types.js +15 -0
- package/dist/daemon/rules/types.js.map +1 -0
- package/dist/daemon/rules/whitelist.d.ts +101 -0
- package/dist/daemon/rules/whitelist.d.ts.map +1 -0
- package/dist/daemon/rules/whitelist.js +210 -0
- package/dist/daemon/rules/whitelist.js.map +1 -0
- package/dist/daemon/rules/workflow-defaults.d.ts +52 -0
- package/dist/daemon/rules/workflow-defaults.d.ts.map +1 -0
- package/dist/daemon/rules/workflow-defaults.js +521 -0
- package/dist/daemon/rules/workflow-defaults.js.map +1 -0
- package/dist/daemon/server.d.ts +11 -1
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +7 -1
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/services/codegraph-sync.d.ts +94 -0
- package/dist/daemon/services/codegraph-sync.d.ts.map +1 -0
- package/dist/daemon/services/codegraph-sync.js +159 -0
- package/dist/daemon/services/codegraph-sync.js.map +1 -0
- package/dist/daemon/services/context-injector.d.ts +34 -0
- package/dist/daemon/services/context-injector.d.ts.map +1 -0
- package/dist/daemon/services/context-injector.js +61 -0
- package/dist/daemon/services/context-injector.js.map +1 -0
- package/dist/daemon/services/decision-hint.d.ts +240 -0
- package/dist/daemon/services/decision-hint.d.ts.map +1 -0
- package/dist/daemon/services/decision-hint.js +562 -0
- package/dist/daemon/services/decision-hint.js.map +1 -0
- package/dist/daemon/services/event-ttl-sweep.d.ts +86 -0
- package/dist/daemon/services/event-ttl-sweep.d.ts.map +1 -0
- package/dist/daemon/services/event-ttl-sweep.js +124 -0
- package/dist/daemon/services/event-ttl-sweep.js.map +1 -0
- package/dist/daemon/services/feedback-aggregator.d.ts +167 -0
- package/dist/daemon/services/feedback-aggregator.d.ts.map +1 -0
- package/dist/daemon/services/feedback-aggregator.js +415 -0
- package/dist/daemon/services/feedback-aggregator.js.map +1 -0
- package/dist/daemon/services/heartbeat-writer.d.ts +46 -0
- package/dist/daemon/services/heartbeat-writer.d.ts.map +1 -0
- package/dist/daemon/services/heartbeat-writer.js +82 -0
- package/dist/daemon/services/heartbeat-writer.js.map +1 -0
- package/dist/daemon/services/idle-session-sweeper.d.ts +61 -0
- package/dist/daemon/services/idle-session-sweeper.d.ts.map +1 -0
- package/dist/daemon/services/idle-session-sweeper.js +94 -0
- package/dist/daemon/services/idle-session-sweeper.js.map +1 -0
- package/dist/daemon/services/idle-task-budget.d.ts +50 -0
- package/dist/daemon/services/idle-task-budget.d.ts.map +1 -0
- package/dist/daemon/services/idle-task-budget.js +72 -0
- package/dist/daemon/services/idle-task-budget.js.map +1 -0
- package/dist/daemon/services/intercept-revive.d.ts +60 -0
- package/dist/daemon/services/intercept-revive.d.ts.map +1 -0
- package/dist/daemon/services/intercept-revive.js +86 -0
- package/dist/daemon/services/intercept-revive.js.map +1 -0
- package/dist/daemon/services/intercept-rollback-guard.d.ts +105 -0
- package/dist/daemon/services/intercept-rollback-guard.d.ts.map +1 -0
- package/dist/daemon/services/intercept-rollback-guard.js +152 -0
- package/dist/daemon/services/intercept-rollback-guard.js.map +1 -0
- package/dist/daemon/services/intercept-timeout-sweeper.d.ts +58 -0
- package/dist/daemon/services/intercept-timeout-sweeper.d.ts.map +1 -0
- package/dist/daemon/services/intercept-timeout-sweeper.js +83 -0
- package/dist/daemon/services/intercept-timeout-sweeper.js.map +1 -0
- package/dist/daemon/services/kb-injector.d.ts +57 -0
- package/dist/daemon/services/kb-injector.d.ts.map +1 -0
- package/dist/daemon/services/kb-injector.js +148 -0
- package/dist/daemon/services/kb-injector.js.map +1 -0
- package/dist/daemon/services/kb-rebuild-scheduler.d.ts +95 -0
- package/dist/daemon/services/kb-rebuild-scheduler.d.ts.map +1 -0
- package/dist/daemon/services/kb-rebuild-scheduler.js +149 -0
- package/dist/daemon/services/kb-rebuild-scheduler.js.map +1 -0
- package/dist/daemon/services/loop-hint.d.ts +139 -0
- package/dist/daemon/services/loop-hint.d.ts.map +1 -0
- package/dist/daemon/services/loop-hint.js +272 -0
- package/dist/daemon/services/loop-hint.js.map +1 -0
- package/dist/daemon/services/outcome-classification-service.d.ts +49 -0
- package/dist/daemon/services/outcome-classification-service.d.ts.map +1 -0
- package/dist/daemon/services/outcome-classification-service.js +214 -0
- package/dist/daemon/services/outcome-classification-service.js.map +1 -0
- package/dist/daemon/services/outcome-classifier.d.ts +136 -0
- package/dist/daemon/services/outcome-classifier.d.ts.map +1 -0
- package/dist/daemon/services/outcome-classifier.js +178 -0
- package/dist/daemon/services/outcome-classifier.js.map +1 -0
- package/dist/daemon/services/outcome-nudge.d.ts +107 -0
- package/dist/daemon/services/outcome-nudge.d.ts.map +1 -0
- package/dist/daemon/services/outcome-nudge.js +242 -0
- package/dist/daemon/services/outcome-nudge.js.map +1 -0
- package/dist/daemon/services/spec-approval.d.ts +127 -0
- package/dist/daemon/services/spec-approval.d.ts.map +1 -0
- package/dist/daemon/services/spec-approval.js +216 -0
- package/dist/daemon/services/spec-approval.js.map +1 -0
- package/dist/daemon/services/spec-gate.d.ts +54 -0
- package/dist/daemon/services/spec-gate.d.ts.map +1 -0
- package/dist/daemon/services/spec-gate.js +113 -0
- package/dist/daemon/services/spec-gate.js.map +1 -0
- package/dist/daemon/services/task-boundary-classifier.d.ts +78 -0
- package/dist/daemon/services/task-boundary-classifier.d.ts.map +1 -0
- package/dist/daemon/services/task-boundary-classifier.js +202 -0
- package/dist/daemon/services/task-boundary-classifier.js.map +1 -0
- package/dist/daemon/services/task-segmenter.d.ts +230 -1
- package/dist/daemon/services/task-segmenter.d.ts.map +1 -1
- package/dist/daemon/services/task-segmenter.js +527 -17
- package/dist/daemon/services/task-segmenter.js.map +1 -1
- package/dist/daemon/skill-sync.d.ts +7 -2
- package/dist/daemon/skill-sync.d.ts.map +1 -1
- package/dist/daemon/skill-sync.js +114 -9
- package/dist/daemon/skill-sync.js.map +1 -1
- package/dist/daemon/startup/maintenance-schedulers.d.ts +68 -0
- package/dist/daemon/startup/maintenance-schedulers.d.ts.map +1 -0
- package/dist/daemon/startup/maintenance-schedulers.js +294 -0
- package/dist/daemon/startup/maintenance-schedulers.js.map +1 -0
- package/dist/daemon/templates/agents/agent-retro-distiller.md +106 -0
- package/dist/daemon/templates/agents/claudemd-writer.md +102 -0
- package/dist/daemon/templates/agents/coder.md +262 -0
- package/dist/daemon/templates/agents/decision-maker.md +546 -0
- package/dist/daemon/templates/agents/doc-reviewer.md +118 -0
- package/dist/daemon/templates/agents/harness-debug-full.md +196 -0
- package/dist/daemon/templates/agents/knowledge-builder.md +120 -0
- package/dist/daemon/templates/agents/patch-applier.md +145 -0
- package/dist/daemon/templates/agents/planner.md +217 -0
- package/dist/daemon/templates/agents/safety-net-implementer.md +278 -0
- package/dist/daemon/templates/agents/skill-distiller.md +114 -0
- package/dist/daemon/templates/agents/task-boundary-classifier.md +65 -0
- package/dist/daemon/templates/agents/verify-agent.md +259 -0
- package/dist/daemon/utils/inject-block.d.ts +39 -0
- package/dist/daemon/utils/inject-block.d.ts.map +1 -0
- package/dist/daemon/utils/inject-block.js +25 -0
- package/dist/daemon/utils/inject-block.js.map +1 -0
- package/dist/hooks/hook-lib.sh +8 -0
- package/dist/hooks/notification.sh +19 -8
- package/dist/hooks/post-tool-use.sh +41 -23
- package/dist/hooks/pre-tool-use.sh +54 -23
- package/dist/hooks/session-start.sh +68 -0
- package/dist/hooks/stop.sh +31 -11
- package/dist/hooks/user-prompt-submit.sh +37 -21
- package/dist/knowledge/adapters/go-adapter.d.ts +65 -0
- package/dist/knowledge/adapters/go-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/go-adapter.js +294 -0
- package/dist/knowledge/adapters/go-adapter.js.map +1 -0
- package/dist/knowledge/adapters/index.d.ts +41 -0
- package/dist/knowledge/adapters/index.d.ts.map +1 -0
- package/dist/knowledge/adapters/index.js +71 -0
- package/dist/knowledge/adapters/index.js.map +1 -0
- package/dist/knowledge/adapters/java-adapter.d.ts +66 -0
- package/dist/knowledge/adapters/java-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/java-adapter.js +260 -0
- package/dist/knowledge/adapters/java-adapter.js.map +1 -0
- package/dist/knowledge/adapters/js-vue-adapter.d.ts +56 -0
- package/dist/knowledge/adapters/js-vue-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/js-vue-adapter.js +203 -0
- package/dist/knowledge/adapters/js-vue-adapter.js.map +1 -0
- package/dist/knowledge/adapters/kotlin-adapter.d.ts +55 -0
- package/dist/knowledge/adapters/kotlin-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/kotlin-adapter.js +209 -0
- package/dist/knowledge/adapters/kotlin-adapter.js.map +1 -0
- package/dist/knowledge/adapters/monorepo-adapter.d.ts +77 -0
- package/dist/knowledge/adapters/monorepo-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/monorepo-adapter.js +170 -0
- package/dist/knowledge/adapters/monorepo-adapter.js.map +1 -0
- package/dist/knowledge/adapters/python-adapter.d.ts +89 -0
- package/dist/knowledge/adapters/python-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/python-adapter.js +358 -0
- package/dist/knowledge/adapters/python-adapter.js.map +1 -0
- package/dist/knowledge/adapters/rust-adapter.d.ts +73 -0
- package/dist/knowledge/adapters/rust-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/rust-adapter.js +329 -0
- package/dist/knowledge/adapters/rust-adapter.js.map +1 -0
- package/dist/knowledge/adapters/types.d.ts +99 -0
- package/dist/knowledge/adapters/types.d.ts.map +1 -0
- package/dist/knowledge/adapters/types.js +17 -0
- package/dist/knowledge/adapters/types.js.map +1 -0
- package/dist/knowledge/adapters/typescript-adapter.d.ts +57 -0
- package/dist/knowledge/adapters/typescript-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/typescript-adapter.js +171 -0
- package/dist/knowledge/adapters/typescript-adapter.js.map +1 -0
- package/dist/knowledge/audit-applier.d.ts +70 -0
- package/dist/knowledge/audit-applier.d.ts.map +1 -0
- package/dist/knowledge/audit-applier.js +251 -0
- package/dist/knowledge/audit-applier.js.map +1 -0
- package/dist/knowledge/builder.d.ts +261 -0
- package/dist/knowledge/builder.d.ts.map +1 -0
- package/dist/knowledge/builder.js +966 -0
- package/dist/knowledge/builder.js.map +1 -0
- package/dist/knowledge/cli-provider.d.ts +151 -0
- package/dist/knowledge/cli-provider.d.ts.map +1 -0
- package/dist/knowledge/cli-provider.js +313 -0
- package/dist/knowledge/cli-provider.js.map +1 -0
- package/dist/knowledge/constants.d.ts +78 -0
- package/dist/knowledge/constants.d.ts.map +1 -0
- package/dist/knowledge/constants.js +98 -0
- package/dist/knowledge/constants.js.map +1 -0
- package/dist/knowledge/cross-module.d.ts +139 -0
- package/dist/knowledge/cross-module.d.ts.map +1 -0
- package/dist/knowledge/cross-module.js +370 -0
- package/dist/knowledge/cross-module.js.map +1 -0
- package/dist/knowledge/git-hooks.d.ts +67 -0
- package/dist/knowledge/git-hooks.d.ts.map +1 -0
- package/dist/knowledge/git-hooks.js +258 -0
- package/dist/knowledge/git-hooks.js.map +1 -0
- package/dist/knowledge/graph/edge-extractor.d.ts +45 -0
- package/dist/knowledge/graph/edge-extractor.d.ts.map +1 -0
- package/dist/knowledge/graph/edge-extractor.js +242 -0
- package/dist/knowledge/graph/edge-extractor.js.map +1 -0
- package/dist/knowledge/graph/impact.d.ts +73 -0
- package/dist/knowledge/graph/impact.d.ts.map +1 -0
- package/dist/knowledge/graph/impact.js +94 -0
- package/dist/knowledge/graph/impact.js.map +1 -0
- package/dist/knowledge/graph/types.d.ts +22 -0
- package/dist/knowledge/graph/types.d.ts.map +1 -0
- package/dist/knowledge/graph/types.js +13 -0
- package/dist/knowledge/graph/types.js.map +1 -0
- package/dist/knowledge/module-hash.d.ts +88 -0
- package/dist/knowledge/module-hash.d.ts.map +1 -0
- package/dist/knowledge/module-hash.js +162 -0
- package/dist/knowledge/module-hash.js.map +1 -0
- package/dist/knowledge/project-detector.d.ts +101 -0
- package/dist/knowledge/project-detector.d.ts.map +1 -0
- package/dist/knowledge/project-detector.js +223 -0
- package/dist/knowledge/project-detector.js.map +1 -0
- package/dist/knowledge/prompt.d.ts +237 -0
- package/dist/knowledge/prompt.d.ts.map +1 -0
- package/dist/knowledge/prompt.js +416 -0
- package/dist/knowledge/prompt.js.map +1 -0
- package/dist/knowledge/query.d.ts +118 -0
- package/dist/knowledge/query.d.ts.map +1 -0
- package/dist/knowledge/query.js +438 -0
- package/dist/knowledge/query.js.map +1 -0
- package/dist/knowledge/repo-map.d.ts +97 -0
- package/dist/knowledge/repo-map.d.ts.map +1 -0
- package/dist/knowledge/repo-map.js +447 -0
- package/dist/knowledge/repo-map.js.map +1 -0
- package/dist/knowledge/tools/index.d.ts +14 -0
- package/dist/knowledge/tools/index.d.ts.map +1 -0
- package/dist/knowledge/tools/index.js +11 -0
- package/dist/knowledge/tools/index.js.map +1 -0
- package/dist/knowledge/tools/knowledge-get-page.d.ts +46 -0
- package/dist/knowledge/tools/knowledge-get-page.d.ts.map +1 -0
- package/dist/knowledge/tools/knowledge-get-page.js +101 -0
- package/dist/knowledge/tools/knowledge-get-page.js.map +1 -0
- package/dist/knowledge/tools/knowledge-query.d.ts +77 -0
- package/dist/knowledge/tools/knowledge-query.d.ts.map +1 -0
- package/dist/knowledge/tools/knowledge-query.js +104 -0
- package/dist/knowledge/tools/knowledge-query.js.map +1 -0
- package/dist/knowledge/tools/repo-map-lookup.d.ts +45 -0
- package/dist/knowledge/tools/repo-map-lookup.d.ts.map +1 -0
- package/dist/knowledge/tools/repo-map-lookup.js +82 -0
- package/dist/knowledge/tools/repo-map-lookup.js.map +1 -0
- package/dist/knowledge/types.d.ts +269 -0
- package/dist/knowledge/types.d.ts.map +1 -0
- package/dist/knowledge/types.js +10 -0
- package/dist/knowledge/types.js.map +1 -0
- package/dist/knowledge/validator.d.ts +90 -0
- package/dist/knowledge/validator.d.ts.map +1 -0
- package/dist/knowledge/validator.js +355 -0
- package/dist/knowledge/validator.js.map +1 -0
- package/dist/mcp/server.d.ts +64 -8
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +448 -12
- package/dist/mcp/server.js.map +1 -1
- package/dist/skills/builtin-skills.d.ts +35 -0
- package/dist/skills/builtin-skills.d.ts.map +1 -0
- package/dist/skills/builtin-skills.js +68 -0
- package/dist/skills/builtin-skills.js.map +1 -0
- package/dist/skills/distill/attribution.d.ts +59 -0
- package/dist/skills/distill/attribution.d.ts.map +1 -0
- package/dist/skills/distill/attribution.js +101 -0
- package/dist/skills/distill/attribution.js.map +1 -0
- package/dist/skills/distill/distiller.d.ts +161 -0
- package/dist/skills/distill/distiller.d.ts.map +1 -0
- package/dist/skills/distill/distiller.js +461 -0
- package/dist/skills/distill/distiller.js.map +1 -0
- package/dist/skills/distill/index.d.ts +223 -0
- package/dist/skills/distill/index.d.ts.map +1 -0
- package/dist/skills/distill/index.js +466 -0
- package/dist/skills/distill/index.js.map +1 -0
- package/dist/skills/distill/project-anchor-guard.d.ts +116 -0
- package/dist/skills/distill/project-anchor-guard.d.ts.map +1 -0
- package/dist/skills/distill/project-anchor-guard.js +334 -0
- package/dist/skills/distill/project-anchor-guard.js.map +1 -0
- package/dist/skills/distill/topic-deduper.d.ts +77 -0
- package/dist/skills/distill/topic-deduper.d.ts.map +1 -0
- package/dist/skills/distill/topic-deduper.js +119 -0
- package/dist/skills/distill/topic-deduper.js.map +1 -0
- package/dist/skills/distill/upstream-fetcher.d.ts +71 -0
- package/dist/skills/distill/upstream-fetcher.d.ts.map +1 -0
- package/dist/skills/distill/upstream-fetcher.js +202 -0
- package/dist/skills/distill/upstream-fetcher.js.map +1 -0
- package/dist/skills/distilled/distilled-api-design.md +495 -0
- package/dist/skills/distilled/distilled-architecture-decision.md +173 -0
- package/dist/skills/distilled/distilled-brainstorming.md +79 -0
- package/dist/skills/distilled/distilled-brand-guidelines.md +86 -0
- package/dist/skills/distilled/distilled-canvas-design.md +128 -0
- package/dist/skills/distilled/distilled-claude-api.md +185 -0
- package/dist/skills/distilled/distilled-creator.md +181 -0
- package/dist/skills/distilled/distilled-db-schema-design.md +245 -0
- package/dist/skills/distilled/distilled-dispatching-parallel-agents.md +136 -0
- package/dist/skills/distilled/distilled-doc-coauthoring.md +144 -0
- package/dist/skills/distilled/distilled-docx.md +231 -0
- package/dist/skills/distilled/distilled-executing-plans.md +148 -0
- package/dist/skills/distilled/distilled-finishing-a-development-branch.md +213 -0
- package/dist/skills/distilled/distilled-frontend-design.md +118 -0
- package/dist/skills/distilled/distilled-harness-engineering.md +242 -0
- package/dist/skills/distilled/distilled-karpathy-guidelines.md +104 -0
- package/dist/skills/distilled/distilled-performance-optimization.md +175 -0
- package/dist/skills/distilled/distilled-receiving-code-review.md +185 -0
- package/dist/skills/distilled/distilled-spec-driven-design.md +193 -0
- package/dist/skills/distilled/distilled-subagent-driven-development.md +124 -0
- package/dist/skills/distilled/distilled-systematic-debugging.md +154 -0
- package/dist/skills/distilled/distilled-test-driven-development.md +432 -0
- package/dist/skills/distilled/distilled-using-superpowers.md +134 -0
- package/dist/skills/distilled/distilled-verification-before-completion.md +213 -0
- package/dist/skills/distilled/distilled-writing-skills.md +175 -0
- package/dist/skills/registry.d.ts +55 -51
- package/dist/skills/registry.d.ts.map +1 -1
- package/dist/skills/registry.js +82 -196
- package/dist/skills/registry.js.map +1 -1
- package/dist/skills/tools/pipeline-suggest.js +14 -14
- package/dist/skills/tools/pipeline-suggest.js.map +1 -1
- package/dist/skills/tools/skill-invoke.d.ts +3 -2
- package/dist/skills/tools/skill-invoke.d.ts.map +1 -1
- package/dist/skills/tools/skill-invoke.js +4 -2
- package/dist/skills/tools/skill-invoke.js.map +1 -1
- package/dist/web/analytics/anti-pattern-detector.d.ts.map +1 -1
- package/dist/web/analytics/anti-pattern-detector.js +6 -1
- package/dist/web/analytics/anti-pattern-detector.js.map +1 -1
- package/dist/web/analytics/drift-detector.d.ts +6 -0
- package/dist/web/analytics/drift-detector.d.ts.map +1 -1
- package/dist/web/analytics/drift-detector.js +15 -8
- package/dist/web/analytics/drift-detector.js.map +1 -1
- package/dist/web/analytics/weekly-report.d.ts +13 -0
- package/dist/web/analytics/weekly-report.d.ts.map +1 -1
- package/dist/web/analytics/weekly-report.js +17 -3
- package/dist/web/analytics/weekly-report.js.map +1 -1
- package/dist/web/routes/_helpers.d.ts +31 -0
- package/dist/web/routes/_helpers.d.ts.map +1 -1
- package/dist/web/routes/_helpers.js +33 -0
- package/dist/web/routes/_helpers.js.map +1 -1
- package/dist/web/routes/agent-content.d.ts +30 -0
- package/dist/web/routes/agent-content.d.ts.map +1 -0
- package/dist/web/routes/agent-content.js +139 -0
- package/dist/web/routes/agent-content.js.map +1 -0
- package/dist/web/routes/agent-distill.d.ts +49 -0
- package/dist/web/routes/agent-distill.d.ts.map +1 -0
- package/dist/web/routes/agent-distill.js +526 -0
- package/dist/web/routes/agent-distill.js.map +1 -0
- package/dist/web/routes/config.d.ts +56 -0
- package/dist/web/routes/config.d.ts.map +1 -0
- package/dist/web/routes/config.js +243 -0
- package/dist/web/routes/config.js.map +1 -0
- package/dist/web/routes/decisions.d.ts +15 -0
- package/dist/web/routes/decisions.d.ts.map +1 -0
- package/dist/web/routes/decisions.js +181 -0
- package/dist/web/routes/decisions.js.map +1 -0
- package/dist/web/routes/diagnostics.d.ts +61 -0
- package/dist/web/routes/diagnostics.d.ts.map +1 -0
- package/dist/web/routes/diagnostics.js +203 -0
- package/dist/web/routes/diagnostics.js.map +1 -0
- package/dist/web/routes/error-handler.d.ts +0 -4
- package/dist/web/routes/error-handler.d.ts.map +1 -1
- package/dist/web/routes/error-handler.js +0 -8
- package/dist/web/routes/error-handler.js.map +1 -1
- package/dist/web/routes/events.d.ts.map +1 -1
- package/dist/web/routes/events.js +26 -1
- package/dist/web/routes/events.js.map +1 -1
- package/dist/web/routes/health.d.ts +33 -0
- package/dist/web/routes/health.d.ts.map +1 -0
- package/dist/web/routes/health.js +37 -0
- package/dist/web/routes/health.js.map +1 -0
- package/dist/web/routes/insights.d.ts +0 -5
- package/dist/web/routes/insights.d.ts.map +1 -1
- package/dist/web/routes/insights.js +0 -0
- package/dist/web/routes/insights.js.map +1 -1
- package/dist/web/routes/knowledge.d.ts +57 -0
- package/dist/web/routes/knowledge.d.ts.map +1 -0
- package/dist/web/routes/knowledge.js +772 -0
- package/dist/web/routes/knowledge.js.map +1 -0
- package/dist/web/routes/patch.d.ts +60 -1
- package/dist/web/routes/patch.d.ts.map +1 -1
- package/dist/web/routes/patch.js +170 -64
- package/dist/web/routes/patch.js.map +1 -1
- package/dist/web/routes/pipeline.d.ts +28 -0
- package/dist/web/routes/pipeline.d.ts.map +1 -0
- package/dist/web/routes/pipeline.js +145 -0
- package/dist/web/routes/pipeline.js.map +1 -0
- package/dist/web/routes/rules.d.ts.map +1 -1
- package/dist/web/routes/rules.js +26 -7
- package/dist/web/routes/rules.js.map +1 -1
- package/dist/web/routes/sessions.d.ts.map +1 -1
- package/dist/web/routes/sessions.js +17 -8
- package/dist/web/routes/sessions.js.map +1 -1
- package/dist/web/routes/skill-content.d.ts +30 -0
- package/dist/web/routes/skill-content.d.ts.map +1 -0
- package/dist/web/routes/skill-content.js +117 -0
- package/dist/web/routes/skill-content.js.map +1 -0
- package/dist/web/routes/skill-stats.d.ts.map +1 -1
- package/dist/web/routes/skill-stats.js +153 -16
- package/dist/web/routes/skill-stats.js.map +1 -1
- package/dist/web/routes/skills-distill.d.ts +29 -0
- package/dist/web/routes/skills-distill.d.ts.map +1 -0
- package/dist/web/routes/skills-distill.js +552 -0
- package/dist/web/routes/skills-distill.js.map +1 -0
- package/dist/web/routes/skills.js +7 -7
- package/dist/web/routes/skills.js.map +1 -1
- package/dist/web/routes/stats.d.ts.map +1 -1
- package/dist/web/routes/stats.js +2 -1
- package/dist/web/routes/stats.js.map +1 -1
- package/dist/web/routes/task-timeline.d.ts +178 -0
- package/dist/web/routes/task-timeline.d.ts.map +1 -0
- package/dist/web/routes/task-timeline.js +530 -0
- package/dist/web/routes/task-timeline.js.map +1 -0
- package/dist/web/routes/tasks.d.ts.map +1 -1
- package/dist/web/routes/tasks.js +377 -8
- package/dist/web/routes/tasks.js.map +1 -1
- package/dist/web/routes/trace.d.ts.map +1 -1
- package/dist/web/routes/trace.js +3 -2
- package/dist/web/routes/trace.js.map +1 -1
- package/dist/web/routes/types.d.ts +0 -4
- package/dist/web/routes/types.d.ts.map +1 -1
- package/dist/web/routes/types.js +1 -1
- package/dist/web/routes/types.js.map +1 -1
- package/dist/web/routes/violations.d.ts +14 -0
- package/dist/web/routes/violations.d.ts.map +1 -0
- package/dist/web/routes/violations.js +112 -0
- package/dist/web/routes/violations.js.map +1 -0
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +99 -19
- package/dist/web/server.js.map +1 -1
- package/dist/web/services/agent-distill-manager.d.ts +122 -0
- package/dist/web/services/agent-distill-manager.d.ts.map +1 -0
- package/dist/web/services/agent-distill-manager.js +397 -0
- package/dist/web/services/agent-distill-manager.js.map +1 -0
- package/dist/web/services/build-manager.d.ts +72 -0
- package/dist/web/services/build-manager.d.ts.map +1 -0
- package/dist/web/services/build-manager.js +189 -0
- package/dist/web/services/build-manager.js.map +1 -0
- package/dist/web/services/distill-manager.d.ts +172 -0
- package/dist/web/services/distill-manager.d.ts.map +1 -0
- package/dist/web/services/distill-manager.js +411 -0
- package/dist/web/services/distill-manager.js.map +1 -0
- package/dist/web/static/assets/AgentDetailPage-DlUeA1sX.js +2 -0
- package/dist/web/static/assets/AgentDetailPage-DlUeA1sX.js.map +1 -0
- package/dist/web/static/assets/AgentDistillRunPage-Cybo4bii.js +3 -0
- package/dist/web/static/assets/AgentDistillRunPage-Cybo4bii.js.map +1 -0
- package/dist/web/static/assets/AgentsPage-Qd9FExLG.js +2 -0
- package/dist/web/static/assets/AgentsPage-Qd9FExLG.js.map +1 -0
- package/dist/web/static/assets/DaemonHealthPage-DTSVqtrI.js +2 -0
- package/dist/web/static/assets/DaemonHealthPage-DTSVqtrI.js.map +1 -0
- package/dist/web/static/assets/DecisionDetailPage-b4BA8dhc.js +2 -0
- package/dist/web/static/assets/DecisionDetailPage-b4BA8dhc.js.map +1 -0
- package/dist/web/static/assets/DecisionsPage-a3NRo_T7.js +2 -0
- package/dist/web/static/assets/DecisionsPage-a3NRo_T7.js.map +1 -0
- package/dist/web/static/assets/DiagnosticsPage-DIVdiIQG.js +2 -0
- package/dist/web/static/assets/DiagnosticsPage-DIVdiIQG.js.map +1 -0
- package/dist/web/static/assets/DistillDetailPage-U6a3l2iP.js +4 -0
- package/dist/web/static/assets/DistillDetailPage-U6a3l2iP.js.map +1 -0
- package/dist/web/static/assets/DistillPage-O7BHtRN8.js +2 -0
- package/dist/web/static/assets/DistillPage-O7BHtRN8.js.map +1 -0
- package/dist/web/static/assets/DistillRunPage-D1JuRWWr.js +2 -0
- package/dist/web/static/assets/DistillRunPage-D1JuRWWr.js.map +1 -0
- package/dist/web/static/assets/GlobalScopeHint-Q3wTJx3F.js +2 -0
- package/dist/web/static/assets/GlobalScopeHint-Q3wTJx3F.js.map +1 -0
- package/dist/web/static/assets/IssueDetailPage-BDfrtk2C.js +2 -0
- package/dist/web/static/assets/IssueDetailPage-BDfrtk2C.js.map +1 -0
- package/dist/web/static/assets/IssuesPage-SKmhlCrw.js +2 -0
- package/dist/web/static/assets/IssuesPage-SKmhlCrw.js.map +1 -0
- package/dist/web/static/assets/KbDetailPage-Yna86Na8.js +2 -0
- package/dist/web/static/assets/KbDetailPage-Yna86Na8.js.map +1 -0
- package/dist/web/static/assets/KbHitsPage-Cljl7H9p.js +2 -0
- package/dist/web/static/assets/KbHitsPage-Cljl7H9p.js.map +1 -0
- package/dist/web/static/assets/MarkdownRenderer-DlDQNihj.js +3 -0
- package/dist/web/static/assets/MarkdownRenderer-DlDQNihj.js.map +1 -0
- package/dist/web/static/assets/NotFound-LMzbP51V.js +2 -0
- package/dist/web/static/assets/NotFound-LMzbP51V.js.map +1 -0
- package/dist/web/static/assets/SettingsPage-DzoK4PKg.js +2 -0
- package/dist/web/static/assets/SettingsPage-DzoK4PKg.js.map +1 -0
- package/dist/web/static/assets/SkillDetailPage-BuBJJ_NX.js +2 -0
- package/dist/web/static/assets/SkillDetailPage-BuBJJ_NX.js.map +1 -0
- package/dist/web/static/assets/SkillsPage-aojkJpBc.js +2 -0
- package/dist/web/static/assets/SkillsPage-aojkJpBc.js.map +1 -0
- package/dist/web/static/assets/TaskDetailPage-1ckxnGhw.js +4 -0
- package/dist/web/static/assets/TaskDetailPage-1ckxnGhw.js.map +1 -0
- package/dist/web/static/assets/TasksHubPage-C2PLh3eg.js +6 -0
- package/dist/web/static/assets/TasksHubPage-C2PLh3eg.js.map +1 -0
- package/dist/web/static/assets/WorkplacePage-DHrp5VxS.js +2 -0
- package/dist/web/static/assets/WorkplacePage-DHrp5VxS.js.map +1 -0
- package/dist/web/static/assets/arco-DFQA6dO_.css +1 -0
- package/dist/web/static/assets/arco-DV6xCLhr.js +14 -0
- package/dist/web/static/assets/arco-DV6xCLhr.js.map +1 -0
- package/dist/web/static/assets/charts-BSV4cyC4.js +37 -0
- package/dist/web/static/assets/charts-BSV4cyC4.js.map +1 -0
- package/dist/web/static/assets/date-fns-sbWH3_uq.js +2 -0
- package/dist/web/static/assets/date-fns-sbWH3_uq.js.map +1 -0
- package/dist/web/static/assets/index-B_v_MKlb.css +1 -0
- package/dist/web/static/assets/index-DileOOE4.js +4 -0
- package/dist/web/static/assets/index-DileOOE4.js.map +1 -0
- package/dist/web/static/assets/lucide-CnlPQoG8.js +72 -0
- package/dist/web/static/assets/lucide-CnlPQoG8.js.map +1 -0
- package/dist/web/static/assets/markdown-CA7ePUts.js +30 -0
- package/dist/web/static/assets/markdown-CA7ePUts.js.map +1 -0
- package/dist/web/static/assets/outcome-BKGy9azt.js +2 -0
- package/dist/web/static/assets/outcome-BKGy9azt.js.map +1 -0
- package/dist/web/static/assets/query-CgCOpYWf.js +2 -0
- package/dist/web/static/assets/{query-C99w429o.js.map → query-CgCOpYWf.js.map} +1 -1
- package/dist/web/static/assets/{react-router-r79dBVy4.js → react-router-Cxmg8RuL.js} +3 -3
- package/dist/web/static/assets/{react-router-r79dBVy4.js.map → react-router-Cxmg8RuL.js.map} +1 -1
- package/dist/web/static/assets/react-vendor-tkvCrao7.js +57 -0
- package/dist/web/static/assets/react-vendor-tkvCrao7.js.map +1 -0
- package/dist/web/static/assets/syntax-highlighter-BDYycNja.js +6 -0
- package/dist/web/static/assets/syntax-highlighter-BDYycNja.js.map +1 -0
- package/dist/web/static/assets/useAgentStats-B-uTgqBd.js +2 -0
- package/dist/web/static/assets/useAgentStats-B-uTgqBd.js.map +1 -0
- package/dist/web/static/assets/useDecisions-D-G2Ft5T.js +2 -0
- package/dist/web/static/assets/useDecisions-D-G2Ft5T.js.map +1 -0
- package/dist/web/static/assets/useDistill-21dZkXlT.js +3 -0
- package/dist/web/static/assets/useDistill-21dZkXlT.js.map +1 -0
- package/dist/web/static/assets/useEffectiveProject-DQiyX54y.js +2 -0
- package/dist/web/static/assets/useEffectiveProject-DQiyX54y.js.map +1 -0
- package/dist/web/static/assets/useIssuesFeed-CFiyQkAL.js +2 -0
- package/dist/web/static/assets/useIssuesFeed-CFiyQkAL.js.map +1 -0
- package/dist/web/static/assets/useKbHits-xKXWgqh9.js +2 -0
- package/dist/web/static/assets/useKbHits-xKXWgqh9.js.map +1 -0
- package/dist/web/static/assets/useSkillStats-B5hbIwdf.js +2 -0
- package/dist/web/static/assets/useSkillStats-B5hbIwdf.js.map +1 -0
- package/dist/web/static/assets/vendor-DS-q4Eyc.js +36 -0
- package/dist/web/static/assets/vendor-DS-q4Eyc.js.map +1 -0
- package/dist/web/static/index.html +12 -8
- package/package.json +18 -5
- package/dist/core/ai/provider.d.ts +0 -63
- package/dist/core/ai/provider.d.ts.map +0 -1
- package/dist/core/ai/provider.js +0 -241
- package/dist/core/ai/provider.js.map +0 -1
- package/dist/core/ai/types.d.ts +0 -43
- package/dist/core/ai/types.d.ts.map +0 -1
- package/dist/core/ai/types.js +0 -5
- package/dist/core/ai/types.js.map +0 -1
- package/dist/core/storage/token-usage.d.ts +0 -36
- package/dist/core/storage/token-usage.d.ts.map +0 -1
- package/dist/core/storage/token-usage.js +0 -59
- package/dist/core/storage/token-usage.js.map +0 -1
- package/dist/core/utils/token-tracker.d.ts +0 -39
- package/dist/core/utils/token-tracker.d.ts.map +0 -1
- package/dist/core/utils/token-tracker.js +0 -69
- package/dist/core/utils/token-tracker.js.map +0 -1
- package/dist/skills/index.d.ts +0 -3
- package/dist/skills/index.d.ts.map +0 -1
- package/dist/skills/index.js +0 -3
- package/dist/skills/index.js.map +0 -1
- package/dist/skills/matcher.d.ts +0 -26
- package/dist/skills/matcher.d.ts.map +0 -1
- package/dist/skills/matcher.js +0 -113
- package/dist/skills/matcher.js.map +0 -1
- package/dist/skills/official/code-simplifier.md +0 -52
- package/dist/skills/official/find-skills.md +0 -142
- package/dist/skills/official/official-api-design.md +0 -30
- package/dist/skills/official/official-architecture-decision.md +0 -41
- package/dist/skills/official/official-bmad.md +0 -118
- package/dist/skills/official/official-db-schema-design.md +0 -34
- package/dist/skills/official/official-debug.md +0 -25
- package/dist/skills/official/official-doc-driven.md +0 -31
- package/dist/skills/official/official-harness-engineering.md +0 -108
- package/dist/skills/official/official-openspec.md +0 -89
- package/dist/skills/official/official-performance-optimization.md +0 -30
- package/dist/skills/official/official-pr-review.md +0 -35
- package/dist/skills/official/official-release-checklist.md +0 -30
- package/dist/skills/official/official-security-hardening.md +0 -32
- package/dist/skills/official/official-spec-driven-design.md +0 -31
- package/dist/skills/official/planning-with-files.md +0 -241
- package/dist/skills/official/ui-ux-pro-max.md +0 -105
- package/dist/skills/official/webapp-testing.md +0 -96
- package/dist/skills/official-skills.d.ts +0 -26
- package/dist/skills/official-skills.d.ts.map +0 -1
- package/dist/skills/official-skills.js +0 -74
- package/dist/skills/official-skills.js.map +0 -1
- package/dist/skills/semantic-matcher.d.ts +0 -60
- package/dist/skills/semantic-matcher.d.ts.map +0 -1
- package/dist/skills/semantic-matcher.js +0 -192
- package/dist/skills/semantic-matcher.js.map +0 -1
- package/dist/skills/upgrade-engine.d.ts +0 -93
- package/dist/skills/upgrade-engine.d.ts.map +0 -1
- package/dist/skills/upgrade-engine.js +0 -447
- package/dist/skills/upgrade-engine.js.map +0 -1
- package/dist/skills/upgrade-prompt.d.ts +0 -20
- package/dist/skills/upgrade-prompt.d.ts.map +0 -1
- package/dist/skills/upgrade-prompt.js +0 -75
- package/dist/skills/upgrade-prompt.js.map +0 -1
- package/dist/web/routes/ai.d.ts +0 -10
- package/dist/web/routes/ai.d.ts.map +0 -1
- package/dist/web/routes/ai.js +0 -186
- package/dist/web/routes/ai.js.map +0 -1
- package/dist/web/routes/token-usage.d.ts +0 -7
- package/dist/web/routes/token-usage.d.ts.map +0 -1
- package/dist/web/routes/token-usage.js +0 -18
- package/dist/web/routes/token-usage.js.map +0 -1
- package/dist/web/ssrf-guard.d.ts +0 -35
- package/dist/web/ssrf-guard.d.ts.map +0 -1
- package/dist/web/ssrf-guard.js +0 -93
- package/dist/web/ssrf-guard.js.map +0 -1
- package/dist/web/static/assets/AIConfig-CdDWzJyO.js +0 -2
- package/dist/web/static/assets/AIConfig-CdDWzJyO.js.map +0 -1
- package/dist/web/static/assets/Dashboard-CoEmmIDt.js +0 -2
- package/dist/web/static/assets/Dashboard-CoEmmIDt.js.map +0 -1
- package/dist/web/static/assets/Drawer-DdRTzlLB.js +0 -2
- package/dist/web/static/assets/Drawer-DdRTzlLB.js.map +0 -1
- package/dist/web/static/assets/Events-DrIq1SUS.js +0 -2
- package/dist/web/static/assets/Events-DrIq1SUS.js.map +0 -1
- package/dist/web/static/assets/Reports-DFBM3MDK.js +0 -2
- package/dist/web/static/assets/Reports-DFBM3MDK.js.map +0 -1
- package/dist/web/static/assets/SearchInput-qCj_jAcf.js +0 -2
- package/dist/web/static/assets/SearchInput-qCj_jAcf.js.map +0 -1
- package/dist/web/static/assets/SessionDetail-CCzwdoT7.js +0 -2
- package/dist/web/static/assets/SessionDetail-CCzwdoT7.js.map +0 -1
- package/dist/web/static/assets/Sessions-FfLYkAw9.js +0 -2
- package/dist/web/static/assets/Sessions-FfLYkAw9.js.map +0 -1
- package/dist/web/static/assets/Skills-C8Gvs3Qa.js +0 -2
- package/dist/web/static/assets/Skills-C8Gvs3Qa.js.map +0 -1
- package/dist/web/static/assets/TaskDetail-BS8pYhaR.js +0 -2
- package/dist/web/static/assets/TaskDetail-BS8pYhaR.js.map +0 -1
- package/dist/web/static/assets/Tasks-CyuhizG8.js +0 -2
- package/dist/web/static/assets/Tasks-CyuhizG8.js.map +0 -1
- package/dist/web/static/assets/charts-CLrM0_uM.js +0 -37
- package/dist/web/static/assets/charts-CLrM0_uM.js.map +0 -1
- package/dist/web/static/assets/date-fns-CZ_bHujz.js +0 -2
- package/dist/web/static/assets/date-fns-CZ_bHujz.js.map +0 -1
- package/dist/web/static/assets/export-L_VBD2p1.js +0 -4
- package/dist/web/static/assets/export-L_VBD2p1.js.map +0 -1
- package/dist/web/static/assets/index-CBX47X8l.js +0 -3
- package/dist/web/static/assets/index-CBX47X8l.js.map +0 -1
- package/dist/web/static/assets/index-DjIoMdoR.css +0 -1
- package/dist/web/static/assets/lucide-Bs_edTLa.js +0 -232
- package/dist/web/static/assets/lucide-Bs_edTLa.js.map +0 -1
- package/dist/web/static/assets/query-C99w429o.js +0 -2
- package/dist/web/static/assets/react-vendor-CSp-GLFF.js +0 -49
- package/dist/web/static/assets/react-vendor-CSp-GLFF.js.map +0 -1
- package/dist/web/static/assets/syntax-highlighter-44FakypI.js +0 -9
- package/dist/web/static/assets/syntax-highlighter-44FakypI.js.map +0 -1
- package/dist/web/static/assets/time-Bxuk0M-C.js +0 -2
- package/dist/web/static/assets/time-Bxuk0M-C.js.map +0 -1
- package/dist/web/static/assets/vendor-CMMjVdZs.js +0 -64
- package/dist/web/static/assets/vendor-CMMjVdZs.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/daemon/rules/defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RuleRegistry — pluggable rule loader + matching engine (v9.x Phase 1).
|
|
3
|
+
*
|
|
4
|
+
* Day-1 shape supports the `RuleKind` discriminator so Phase 5 (workflow
|
|
5
|
+
* recommender) can plug `workflow_recommend` rules into the SAME registry
|
|
6
|
+
* with a different consumer (UserPromptHandler).
|
|
7
|
+
*
|
|
8
|
+
* Design notes:
|
|
9
|
+
* • Rules are loaded once at construction time (defaults + caller-supplied
|
|
10
|
+
* overrides). No hot-reload — restart the daemon to pick up new defaults.
|
|
11
|
+
* • Matchers are pure functions; the engine does NOT swallow throws —
|
|
12
|
+
* a misbehaving rule should be obvious in dev (handlers wrap the call
|
|
13
|
+
* in try/catch as a backstop).
|
|
14
|
+
* • `findFirstMatch` returns the FIRST rule whose match() returns true.
|
|
15
|
+
* Rule order in `defaultRules` is the precedence (deny > warn).
|
|
16
|
+
*/
|
|
17
|
+
import type { ToolInputFields } from '../../core/types.js';
|
|
18
|
+
import type { Rule, RuleContext, ToolInterceptRule, WorkflowRecommendRule, WorkflowMatchResult } from './types.js';
|
|
19
|
+
export declare class RuleRegistry {
|
|
20
|
+
private rules;
|
|
21
|
+
constructor(extra?: Rule[]);
|
|
22
|
+
/** All rules (any kind). Used by Phase 5 once workflow_recommend rules land. */
|
|
23
|
+
all(): Rule[];
|
|
24
|
+
/** Filter rules to the tool_intercept bucket; used by PreToolUseHandler. */
|
|
25
|
+
getToolInterceptRules(toolName?: string): ToolInterceptRule[];
|
|
26
|
+
/**
|
|
27
|
+
* Phase 5: filter to workflow_recommend rules. Used by UserPromptHandler
|
|
28
|
+
* step 5 (workflow recommender).
|
|
29
|
+
*/
|
|
30
|
+
getWorkflowRules(): WorkflowRecommendRule[];
|
|
31
|
+
/**
|
|
32
|
+
* First rule that fires for the given tool input + context. Returns
|
|
33
|
+
* `undefined` when no rule matches. The handler then decides how to
|
|
34
|
+
* surface the rule (deny / warn / dry_run).
|
|
35
|
+
*/
|
|
36
|
+
findFirstMatch(toolName: string, input: ToolInputFields, ctx: RuleContext): ToolInterceptRule | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Phase 5: first workflow rule that fires for a prompt. Returns the rule
|
|
39
|
+
* plus the match result (matched_keywords + reason) so callers can persist
|
|
40
|
+
* both without re-running the matcher.
|
|
41
|
+
*/
|
|
42
|
+
findFirstWorkflowMatch(prompt: string, ctx: RuleContext): {
|
|
43
|
+
rule: WorkflowRecommendRule;
|
|
44
|
+
match: WorkflowMatchResult;
|
|
45
|
+
} | undefined;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/daemon/rules/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EACV,IAAI,EACJ,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAIpB,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,KAAK,GAAE,IAAI,EAAO;IAI9B,gFAAgF;IAChF,GAAG,IAAI,IAAI,EAAE;IAIb,4EAA4E;IAC5E,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAc7D;;;OAGG;IACH,gBAAgB,IAAI,qBAAqB,EAAE;IAM3C;;;;OAIG;IACH,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,WAAW,GACf,iBAAiB,GAAG,SAAS;IAOhC;;;;OAIG;IACH,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,WAAW,GACf;QAAE,IAAI,EAAE,qBAAqB,CAAC;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAE,GAAG,SAAS;CAO3E"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RuleRegistry — pluggable rule loader + matching engine (v9.x Phase 1).
|
|
3
|
+
*
|
|
4
|
+
* Day-1 shape supports the `RuleKind` discriminator so Phase 5 (workflow
|
|
5
|
+
* recommender) can plug `workflow_recommend` rules into the SAME registry
|
|
6
|
+
* with a different consumer (UserPromptHandler).
|
|
7
|
+
*
|
|
8
|
+
* Design notes:
|
|
9
|
+
* • Rules are loaded once at construction time (defaults + caller-supplied
|
|
10
|
+
* overrides). No hot-reload — restart the daemon to pick up new defaults.
|
|
11
|
+
* • Matchers are pure functions; the engine does NOT swallow throws —
|
|
12
|
+
* a misbehaving rule should be obvious in dev (handlers wrap the call
|
|
13
|
+
* in try/catch as a backstop).
|
|
14
|
+
* • `findFirstMatch` returns the FIRST rule whose match() returns true.
|
|
15
|
+
* Rule order in `defaultRules` is the precedence (deny > warn).
|
|
16
|
+
*/
|
|
17
|
+
import { defaultRules } from './defaults.js';
|
|
18
|
+
import { defaultWorkflowRules } from './workflow-defaults.js';
|
|
19
|
+
export class RuleRegistry {
|
|
20
|
+
rules;
|
|
21
|
+
constructor(extra = []) {
|
|
22
|
+
this.rules = [...defaultRules, ...defaultWorkflowRules, ...extra];
|
|
23
|
+
}
|
|
24
|
+
/** All rules (any kind). Used by Phase 5 once workflow_recommend rules land. */
|
|
25
|
+
all() {
|
|
26
|
+
return this.rules;
|
|
27
|
+
}
|
|
28
|
+
/** Filter rules to the tool_intercept bucket; used by PreToolUseHandler. */
|
|
29
|
+
getToolInterceptRules(toolName) {
|
|
30
|
+
const intercept = this.rules.filter((r) => r.kind === 'tool_intercept');
|
|
31
|
+
if (toolName === undefined)
|
|
32
|
+
return intercept;
|
|
33
|
+
// Spec 1944: `tool` may be a string or string[]. Treat the latter as
|
|
34
|
+
// "matches any of these tool names" so a single rule can guard several
|
|
35
|
+
// mutating tools (e.g. decision-hint-pending → Task/Edit/Write/Bash).
|
|
36
|
+
return intercept.filter((r) => {
|
|
37
|
+
if (Array.isArray(r.tool))
|
|
38
|
+
return r.tool.includes(toolName);
|
|
39
|
+
return r.tool === toolName;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Phase 5: filter to workflow_recommend rules. Used by UserPromptHandler
|
|
44
|
+
* step 5 (workflow recommender).
|
|
45
|
+
*/
|
|
46
|
+
getWorkflowRules() {
|
|
47
|
+
return this.rules.filter((r) => r.kind === 'workflow_recommend');
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* First rule that fires for the given tool input + context. Returns
|
|
51
|
+
* `undefined` when no rule matches. The handler then decides how to
|
|
52
|
+
* surface the rule (deny / warn / dry_run).
|
|
53
|
+
*/
|
|
54
|
+
findFirstMatch(toolName, input, ctx) {
|
|
55
|
+
for (const rule of this.getToolInterceptRules(toolName)) {
|
|
56
|
+
if (rule.match(input, ctx))
|
|
57
|
+
return rule;
|
|
58
|
+
}
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Phase 5: first workflow rule that fires for a prompt. Returns the rule
|
|
63
|
+
* plus the match result (matched_keywords + reason) so callers can persist
|
|
64
|
+
* both without re-running the matcher.
|
|
65
|
+
*/
|
|
66
|
+
findFirstWorkflowMatch(prompt, ctx) {
|
|
67
|
+
for (const rule of this.getWorkflowRules()) {
|
|
68
|
+
const m = safeWorkflowMatch(rule, prompt, ctx);
|
|
69
|
+
if (m)
|
|
70
|
+
return { rule, match: m };
|
|
71
|
+
}
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/** Wrap match() so a misbehaving rule doesn't tank the whole step-5 walk. */
|
|
76
|
+
function safeWorkflowMatch(rule, prompt, ctx) {
|
|
77
|
+
try {
|
|
78
|
+
return rule.match(prompt, ctx);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/daemon/rules/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,OAAO,YAAY;IACf,KAAK,CAAS;IAEtB,YAAY,QAAgB,EAAE;QAC5B,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,oBAAoB,EAAE,GAAG,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,gFAAgF;IAChF,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,4EAA4E;IAC5E,qBAAqB,CAAC,QAAiB;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CACjC,CAAC,CAAC,EAA0B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAC3D,CAAC;QACF,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC7C,qEAAqE;QACrE,uEAAuE;QACvE,sEAAsE;QACtE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC5D,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB,CACnE,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,cAAc,CACZ,QAAgB,EAChB,KAAsB,EACtB,GAAgB;QAEhB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC1C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CACpB,MAAc,EACd,GAAgB;QAEhB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED,6EAA6E;AAC7E,SAAS,iBAAiB,CACxB,IAA2B,EAC3B,MAAc,EACd,GAAgB;IAEhB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rule types — shared by Phase 1 (tool_intercept) and Phase 5 (workflow_recommend).
|
|
3
|
+
*
|
|
4
|
+
* The `RuleKind` discriminator is intentional from day 1 so a single
|
|
5
|
+
* `RuleRegistry` can host both rule families with no schema break later:
|
|
6
|
+
*
|
|
7
|
+
* • Phase 1: `PreToolUseHandler` filters to `kind='tool_intercept'`.
|
|
8
|
+
* • Phase 5: `UserPromptHandler` (workflow recommender) filters to
|
|
9
|
+
* `kind='workflow_recommend'` (added in a later commit).
|
|
10
|
+
*
|
|
11
|
+
* Add a new union member here when introducing a new rule family — the
|
|
12
|
+
* `Rule` union type forces all downstream switch/filter sites to update.
|
|
13
|
+
*/
|
|
14
|
+
import type { ToolInputFields } from '../../core/types.js';
|
|
15
|
+
export type RuleKind = 'tool_intercept' | 'workflow_recommend';
|
|
16
|
+
export type ToolInterceptDecision = 'deny' | 'warn' | 'ask';
|
|
17
|
+
/**
|
|
18
|
+
* Per-event context surfaced to rule matchers. The fields are intentionally
|
|
19
|
+
* narrow — anything richer (session history, KB hits) should be pre-computed
|
|
20
|
+
* in the handler and threaded through here rather than letting rules reach
|
|
21
|
+
* back into storage.
|
|
22
|
+
*/
|
|
23
|
+
export interface RuleContext {
|
|
24
|
+
session_id: string;
|
|
25
|
+
project_path: string;
|
|
26
|
+
/** UNIX ms of the pre-tool event for relative-time checks (e.g. "agent fired in last 30s"). */
|
|
27
|
+
timestamp_ms: number;
|
|
28
|
+
/**
|
|
29
|
+
* True if the session has invoked the Agent tool (i.e. spawned a subagent)
|
|
30
|
+
* within the recent observation window (`PreToolUseHandler` decides the
|
|
31
|
+
* window — currently 30 s). Used to RELAX rules that should not fire from
|
|
32
|
+
* inside an already-spawned agent context (CLAUDE.md §"主线程查 KB" 例外).
|
|
33
|
+
*/
|
|
34
|
+
recent_agent_spawn: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Audit #4 fix (2026-06-09): number of sub-agents currently IN-FLIGHT for
|
|
37
|
+
* this session (agent-depth). Claude Code sub-agents SHARE the main thread's
|
|
38
|
+
* `session_id`, so any file edits a spawned `coder` makes get attributed to
|
|
39
|
+
* the same session — tripping the session-level multi-file HARD threshold
|
|
40
|
+
* even though the main thread never touched a file. The 6 deny rows audited
|
|
41
|
+
* were all this false-positive class.
|
|
42
|
+
*
|
|
43
|
+
* Computed purely daemon-side from the event stream:
|
|
44
|
+
* depth = (# PreToolUse Task spawns) − (# PostToolUse Task completions)
|
|
45
|
+
* within the recent window. `depth >= 1` means an authorized sub-agent is
|
|
46
|
+
* doing legitimate multi-file work → the multi-file HARD rule EXEMPTS it
|
|
47
|
+
* (this RELAXES a known false positive; it adds no new hard constraint).
|
|
48
|
+
*
|
|
49
|
+
* Optional + defaults to 0 so older callers / tests that don't set it keep
|
|
50
|
+
* the legacy behaviour (treat as "main thread, depth 0").
|
|
51
|
+
*/
|
|
52
|
+
active_agent_depth?: number;
|
|
53
|
+
/**
|
|
54
|
+
* Set of distinct file paths the session has Edited / Written so far.
|
|
55
|
+
* Computed lazily by the handler from events; populated for Edit/Write
|
|
56
|
+
* threshold rules. May be empty for sessions where no edits have happened.
|
|
57
|
+
*/
|
|
58
|
+
edited_files: Set<string>;
|
|
59
|
+
/**
|
|
60
|
+
* P0-1 fix (2026-05-27): per-file timestamp of the LAST Edit/Write the
|
|
61
|
+
* session has observed. Used by `edit-multi-file-hard` to filter out files
|
|
62
|
+
* that were already edited BEFORE the most recent agent spawn — these are
|
|
63
|
+
* sub-agent edits whose count we shouldn't hold against the main thread's
|
|
64
|
+
* post-coordination actions.
|
|
65
|
+
*
|
|
66
|
+
* Optional + readonly to keep the older `edited_files` field untouched for
|
|
67
|
+
* callers that don't need timing data. `ts` is ISO 8601.
|
|
68
|
+
*/
|
|
69
|
+
edited_files_with_ts?: ReadonlyArray<{
|
|
70
|
+
path: string;
|
|
71
|
+
ts: string;
|
|
72
|
+
}>;
|
|
73
|
+
/**
|
|
74
|
+
* P0-1 fix (2026-05-27): ISO timestamp of the most recent PreToolUse
|
|
75
|
+
* Task/Agent event within the F6 5-min window. `null` when no spawn was
|
|
76
|
+
* observed in-window. Combined with `edited_files_with_ts` to relax the
|
|
77
|
+
* HARD multi-file rule when ALL pre-spawn edits should be excluded.
|
|
78
|
+
*/
|
|
79
|
+
last_spawn_ts?: string | null;
|
|
80
|
+
/**
|
|
81
|
+
* Raw user prompt text for the most recent UserPromptSubmit in the session,
|
|
82
|
+
* if known. Used by rules that want to RELAX deny → warn when the prompt
|
|
83
|
+
* declares an explicit intent (e.g. "修复 hook 协议错误" for `edit-hook-script`).
|
|
84
|
+
* Empty string means "unknown / not available".
|
|
85
|
+
*/
|
|
86
|
+
recent_prompt: string;
|
|
87
|
+
/**
|
|
88
|
+
* v9.x Phase 2 (2026-05-26): `question_default_bmad.enforce` feature flag
|
|
89
|
+
* snapshot. PreToolUseHandler reads ConfigStore once per event so the
|
|
90
|
+
* `task-question-needs-bmad` rule can stay synchronous.
|
|
91
|
+
*
|
|
92
|
+
* Default `false` during the 7-day dry_run window after 2026-05-26. When
|
|
93
|
+
* `false`, RULE_TASK_QUESTION_NEEDS_BMAD short-circuits its match() to
|
|
94
|
+
* `false` — the soft recommend layer still fires (via
|
|
95
|
+
* `bmad-question-default` in workflow-defaults), so we still measure
|
|
96
|
+
* triggering rate without blocking the user.
|
|
97
|
+
*/
|
|
98
|
+
question_default_bmad_enforce?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* f47c2c90 (2026-06-17): `inline_edit_no_spawn.enabled` feature flag snapshot.
|
|
101
|
+
* Default false (gray-rollout OFF). PreToolUseHandler reads ConfigStore once
|
|
102
|
+
* per event so the `inline-edit-no-spawn` / `inline-write-no-spawn` warn rules
|
|
103
|
+
* stay synchronous. When false (or undefined), those rules short-circuit
|
|
104
|
+
* match() to false — no dry_run row even, mirroring
|
|
105
|
+
* `question_default_bmad_enforce`. warn-level only, NEVER deny (CLAUDE.md
|
|
106
|
+
* mechanical-block layer removed; daemon only records).
|
|
107
|
+
*/
|
|
108
|
+
inline_edit_no_spawn_enabled?: boolean;
|
|
109
|
+
}
|
|
110
|
+
/** Base discriminator shared by every rule kind. */
|
|
111
|
+
export interface RuleBase {
|
|
112
|
+
/** Stable identifier; serialised into `tool_intercepts.rule_id`. */
|
|
113
|
+
id: string;
|
|
114
|
+
kind: RuleKind;
|
|
115
|
+
description: string;
|
|
116
|
+
/** Optional pointer back into CLAUDE.md / docs so the user can find the rule narrative. */
|
|
117
|
+
claudemdRef?: string;
|
|
118
|
+
/**
|
|
119
|
+
* Phase 2c safety-net #4: observation window. ISO 8601 timestamp.
|
|
120
|
+
* Before this instant, the rule is force-demoted to `decision='dry_run'`
|
|
121
|
+
* even if `pre_tool_intercept.enabled='true'`. Lets newly added rules ride
|
|
122
|
+
* along for 24h without blocking real tool calls so the user can review
|
|
123
|
+
* the dry_run rows in `tool_intercepts` before committing.
|
|
124
|
+
*
|
|
125
|
+
* Unset / past → rule fires normally.
|
|
126
|
+
*/
|
|
127
|
+
observation_until?: string;
|
|
128
|
+
}
|
|
129
|
+
export interface ToolInterceptRule extends RuleBase {
|
|
130
|
+
kind: 'tool_intercept';
|
|
131
|
+
/**
|
|
132
|
+
* Tool name(s) this rule binds to.
|
|
133
|
+
*
|
|
134
|
+
* Spec 1944 (decision-hint chain fix, 2026-05-28): widened from `string` to
|
|
135
|
+
* `string | string[]` so a single rule can guard several mutating tools
|
|
136
|
+
* (`['Task', 'Edit', 'Write', 'Bash']` — the original need was
|
|
137
|
+
* `decision-hint-pending`). Existing rules that only care about one tool
|
|
138
|
+
* keep using a bare string; the registry handles both shapes.
|
|
139
|
+
*/
|
|
140
|
+
tool: string | string[];
|
|
141
|
+
match: (input: ToolInputFields, ctx: RuleContext) => boolean;
|
|
142
|
+
decision: ToolInterceptDecision;
|
|
143
|
+
/** Free-form text shown to the AI when the rule fires; should END with bypass instructions. */
|
|
144
|
+
hint: (input: ToolInputFields, ctx: RuleContext) => string;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Phase 5 workflow-recommendation rule (D4=strict). UserPromptHandler step 5
|
|
148
|
+
* iterates `getWorkflowRules()` and picks the FIRST rule whose `match()`
|
|
149
|
+
* returns non-null. Order in `defaultWorkflowRules` is the precedence
|
|
150
|
+
* (specific rules before fallbacks).
|
|
151
|
+
*
|
|
152
|
+
* Why `match()` returns a richer object than a boolean: we want to log the
|
|
153
|
+
* actual keywords/files that triggered the match into
|
|
154
|
+
* `workflow_recommendations.matched_keywords` so the dashboard can answer
|
|
155
|
+
* "why was X recommended" without re-running the matcher.
|
|
156
|
+
*/
|
|
157
|
+
export type WorkflowName = 'BMAD' | 'harness-hotfix' | 'harness-debug-full' | 'refactor-specialist' | 'hybrid-feature-with-safety' | 'no-spawn';
|
|
158
|
+
export interface WorkflowMatchResult {
|
|
159
|
+
/** Tokens / phrases / file paths from the prompt that triggered the match. */
|
|
160
|
+
matched_keywords: string[];
|
|
161
|
+
/**
|
|
162
|
+
* Human-readable explanation rendered into the injection block + persisted
|
|
163
|
+
* to `workflow_recommendations.reason`. SHOULD reference CLAUDE.md anchor.
|
|
164
|
+
*/
|
|
165
|
+
reason: string;
|
|
166
|
+
}
|
|
167
|
+
export interface WorkflowRecommendRule extends RuleBase {
|
|
168
|
+
kind: 'workflow_recommend';
|
|
169
|
+
/** Returns `null` if the rule did not fire. */
|
|
170
|
+
match: (prompt: string, ctx: RuleContext) => WorkflowMatchResult | null;
|
|
171
|
+
recommended_workflow: WorkflowName;
|
|
172
|
+
/** Must match a `.claude/agents/<name>.md` filename (without the .md). */
|
|
173
|
+
recommended_agent_type: string;
|
|
174
|
+
}
|
|
175
|
+
export type Rule = ToolInterceptRule | WorkflowRecommendRule;
|
|
176
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/daemon/rules/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,MAAM,QAAQ,GAAG,gBAAgB,GAAG,oBAAoB,CAAC;AAC/D,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,+FAA+F;IAC/F,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;;;;;;;;;;;;;;;OAgBG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B;;;;;;;;;OASG;IACH,oBAAoB,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;;OAKG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;OAUG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;;;;;;;;OAQG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC;AAED,oDAAoD;AACpD,MAAM,WAAW,QAAQ;IACvB,oEAAoE;IACpE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD,IAAI,EAAE,gBAAgB,CAAC;IACvB;;;;;;;;OAQG;IACH,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,KAAK,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC;IAC7D,QAAQ,EAAE,qBAAqB,CAAC;IAChC,+FAA+F;IAC/F,IAAI,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,KAAK,MAAM,CAAC;CAC5D;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,gBAAgB,GAChB,oBAAoB,GACpB,qBAAqB,GACrB,4BAA4B,GAC5B,UAAU,CAAC;AAEf,MAAM,WAAW,mBAAmB;IAClC,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAsB,SAAQ,QAAQ;IACrD,IAAI,EAAE,oBAAoB,CAAC;IAC3B,+CAA+C;IAC/C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,KAAK,mBAAmB,GAAG,IAAI,CAAC;IACxE,oBAAoB,EAAE,YAAY,CAAC;IACnC,0EAA0E;IAC1E,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,MAAM,IAAI,GAAG,iBAAiB,GAAG,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rule types — shared by Phase 1 (tool_intercept) and Phase 5 (workflow_recommend).
|
|
3
|
+
*
|
|
4
|
+
* The `RuleKind` discriminator is intentional from day 1 so a single
|
|
5
|
+
* `RuleRegistry` can host both rule families with no schema break later:
|
|
6
|
+
*
|
|
7
|
+
* • Phase 1: `PreToolUseHandler` filters to `kind='tool_intercept'`.
|
|
8
|
+
* • Phase 5: `UserPromptHandler` (workflow recommender) filters to
|
|
9
|
+
* `kind='workflow_recommend'` (added in a later commit).
|
|
10
|
+
*
|
|
11
|
+
* Add a new union member here when introducing a new rule family — the
|
|
12
|
+
* `Rule` union type forces all downstream switch/filter sites to update.
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/daemon/rules/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enforcement bypass whitelist (Phase 2c safety-net #1).
|
|
3
|
+
*
|
|
4
|
+
* Tools / Bash command prefixes that ALWAYS pass PreToolUseHandler without
|
|
5
|
+
* touching the rule engine. Used as an "early-exit" gate before
|
|
6
|
+
* RuleRegistry.findFirstMatch so:
|
|
7
|
+
* • Read / Glob / Grep never write `tool_intercepts` rows (noise reduction)
|
|
8
|
+
* • Project-essential commands (`cf bypass`, `npm test`, `node`, etc.) keep
|
|
9
|
+
* working after the user flips `pre_tool_intercept.enabled=true` (otherwise
|
|
10
|
+
* the very command needed to disable enforcement would be denied — a
|
|
11
|
+
* "install-time deadlock").
|
|
12
|
+
*
|
|
13
|
+
* Two whitelist tracks:
|
|
14
|
+
* 1. `tools` — exact ToolName match (case-sensitive, as emitted by
|
|
15
|
+
* Claude Code). Currently only the read-only triplet.
|
|
16
|
+
* 2. `bashReadOnly` — pure read-only shell commands (ls/cat/git status…).
|
|
17
|
+
* 3. `bashProjectEssential` — non-read-only but mandatory for the project to
|
|
18
|
+
* function (cf CLI itself, npm/tsc/vitest, scripts).
|
|
19
|
+
*
|
|
20
|
+
* Bash matching uses a STRICT prefix check on the lowercased command. To avoid
|
|
21
|
+
* trivial bypass (`ls; rm -rf /` would match `ls` prefix), any command
|
|
22
|
+
* containing a shell metacharacter (see `hasShellInjectionMetachar`) is refused
|
|
23
|
+
* whitelist treatment.
|
|
24
|
+
*/
|
|
25
|
+
import type { ToolInputFields } from '../../core/types.js';
|
|
26
|
+
import type { ConfigStore } from '../config-store.js';
|
|
27
|
+
/** Config key holding the comma-separated per-project disable list (Phase D). */
|
|
28
|
+
export declare const PROJECT_DISABLED_PREFIXES_KEY = "pre_tool_intercept.disabled_project_prefixes";
|
|
29
|
+
/**
|
|
30
|
+
* injection-guard (2026-06-05) — true when `cmd` contains a shell metacharacter
|
|
31
|
+
* that could chain a second command past a prefix-based whitelist. See
|
|
32
|
+
* `SHELL_INJECTION_METACHAR` for the exact set and rationale.
|
|
33
|
+
*/
|
|
34
|
+
export declare function hasShellInjectionMetachar(cmd: string): boolean;
|
|
35
|
+
export declare const ENFORCEMENT_BYPASS_WHITELIST: {
|
|
36
|
+
/** Tool names that bypass enforcement unconditionally. */
|
|
37
|
+
readonly tools: Set<string>;
|
|
38
|
+
/**
|
|
39
|
+
* Read-only Bash command prefixes. Match is case-insensitive against the
|
|
40
|
+
* trimmed command. Order is irrelevant — `Array.some` covers all.
|
|
41
|
+
*/
|
|
42
|
+
readonly bashReadOnly: readonly ["ls", "cat", "head", "tail", "find", "git status", "git log", "git diff", "git show", "git blame", "gh pr view", "gh issue view", "wc", "file", "stat", "tree", "pwd", "which", "echo"];
|
|
43
|
+
/**
|
|
44
|
+
* Project-essential Bash command prefixes. Not strictly read-only but
|
|
45
|
+
* required for the user's normal workflow (CLI itself, testing, build).
|
|
46
|
+
* Without these, flipping enforcement ON would brick the install:
|
|
47
|
+
* • `cf` denied → user can't `cf config set pre_tool_intercept.enabled false`
|
|
48
|
+
* • `npm test` denied → no way to verify changes
|
|
49
|
+
* • `node` / `npx` denied → tooling stalls
|
|
50
|
+
*
|
|
51
|
+
* Note the trailing space on `cf ` / `node ` etc. — bare `cf` (no args) is
|
|
52
|
+
* still allowed because the trimmed command equals `cf` (length 2) and would
|
|
53
|
+
* be matched by `'cf '` only if we use a more lenient check. We deliberately
|
|
54
|
+
* include both `'cf '` and `'cf\t'` so tab-separated invocations also match;
|
|
55
|
+
* the bare-token edge case is rare and not worth special-casing.
|
|
56
|
+
*/
|
|
57
|
+
readonly bashProjectEssential: readonly ["cf ", "cf\t", "claude-forge ", "npm test", "npm run", "npm install", "npm ci", "npm --", "node ", "node --", "npx ", "vitest", "tsc", "./scripts/dev-daemon.sh", "./scripts/"];
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Returns `true` when the (toolName, input) pair is whitelisted and the
|
|
61
|
+
* PreToolUseHandler should early-exit (no rule lookup, no row written).
|
|
62
|
+
*
|
|
63
|
+
* Bash early-exit honors a safety guard: any command containing a shell
|
|
64
|
+
* metacharacter (`hasShellInjectionMetachar`: `; & | $ \` > < \n`) is REJECTED
|
|
65
|
+
* from the whitelist even when the first token would otherwise match, to defeat
|
|
66
|
+
* trivial bypass like `ls; rm -rf ~` or substitution like `cat $(rm rf)`.
|
|
67
|
+
*/
|
|
68
|
+
export declare function isWhitelisted(toolName: string, input: ToolInputFields): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* 8-in-1 Phase D (2026-05-27): per-project intercept disable.
|
|
71
|
+
*
|
|
72
|
+
* Returns true when the project path falls under one of the user-configured
|
|
73
|
+
* disabled prefixes (comma-separated `forge_config` key). PreToolUseHandler
|
|
74
|
+
* calls this BEFORE `isWhitelisted` — projects on the disabled list skip the
|
|
75
|
+
* rule engine entirely (and never write `tool_intercepts` rows).
|
|
76
|
+
*
|
|
77
|
+
* Empty / unset config → returns false (default behaviour unchanged).
|
|
78
|
+
*
|
|
79
|
+
* Path matching:
|
|
80
|
+
* • String `startsWith` (case-sensitive).
|
|
81
|
+
* • Empty prefixes (multiple commas, trailing comma) are ignored.
|
|
82
|
+
* • A trailing `/` on either side is NOT required — but users SHOULD
|
|
83
|
+
* include one when there's ambiguity (e.g. `/Users/me/proj` would also
|
|
84
|
+
* match `/Users/me/proj-fork`; use `/Users/me/proj/` to anchor).
|
|
85
|
+
*
|
|
86
|
+
* Failures (storage read throws) degrade silently to `false` — better to
|
|
87
|
+
* keep enforcement on than crash the pipeline.
|
|
88
|
+
*/
|
|
89
|
+
export declare function isProjectInterceptDisabled(projectPath: string, configStore: ConfigStore): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Daemon-startup self-test (called from src/daemon/index.ts).
|
|
92
|
+
*
|
|
93
|
+
* Hard-coded assertions that must hold for the project to be usable after
|
|
94
|
+
* enforcement is enabled. If any of these fail, the daemon refuses to start —
|
|
95
|
+
* better to fail loudly at boot than brick the install on first user command.
|
|
96
|
+
*
|
|
97
|
+
* Throws on first failed assertion with a message identifying the broken
|
|
98
|
+
* whitelist entry. Callers should treat the throw as fatal.
|
|
99
|
+
*/
|
|
100
|
+
export declare function assertWhitelistInvariants(): void;
|
|
101
|
+
//# sourceMappingURL=whitelist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whitelist.d.ts","sourceRoot":"","sources":["../../../src/daemon/rules/whitelist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,iFAAiF;AACjF,eAAO,MAAM,6BAA6B,iDACM,CAAC;AA2BjD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,eAAO,MAAM,4BAA4B;IACvC,0DAA0D;;IAG1D;;;OAGG;;IASH;;;;;;;;;;;;;OAaG;;CAUK,CAAC;AAEX;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAoB/E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,GACvB,OAAO,CAUT;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CA4ChD"}
|