@winspan/claude-forge 8.54.4 → 9.2.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 +649 -33
- package/README.md +154 -16
- package/dist/catalogs/agents.json +72 -0
- package/dist/catalogs/skills.json +194 -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/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/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 +669 -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 +10 -1
- 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 +50 -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 +66 -0
- package/dist/cli/commands/knowledge.d.ts.map +1 -0
- package/dist/cli/commands/knowledge.js +897 -0
- package/dist/cli/commands/knowledge.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +0 -12
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +11 -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.map +1 -1
- package/dist/cli/commands/skills.js +14 -128
- 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 +3 -2
- 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 +26 -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 +14 -13
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +20 -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 +765 -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 +82 -0
- package/dist/core/diagnostics/entropy-checks.d.ts.map +1 -0
- package/dist/core/diagnostics/entropy-checks.js +395 -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/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/governance/global-inject.d.ts +60 -0
- package/dist/core/governance/global-inject.d.ts.map +1 -0
- package/dist/core/governance/global-inject.js +129 -0
- package/dist/core/governance/global-inject.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 +14 -3
- package/dist/core/queue/index.js.map +1 -1
- package/dist/core/storage/base.d.ts +158 -0
- package/dist/core/storage/base.d.ts.map +1 -1
- package/dist/core/storage/base.js +570 -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/decisions.d.ts +362 -0
- package/dist/core/storage/decisions.d.ts.map +1 -0
- package/dist/core/storage/decisions.js +502 -0
- package/dist/core/storage/decisions.js.map +1 -0
- package/dist/core/storage/events.d.ts +112 -8
- package/dist/core/storage/events.d.ts.map +1 -1
- package/dist/core/storage/events.js +390 -39
- package/dist/core/storage/events.js.map +1 -1
- package/dist/core/storage/feedback.d.ts +131 -0
- package/dist/core/storage/feedback.d.ts.map +1 -0
- package/dist/core/storage/feedback.js +187 -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 +28 -0
- package/dist/core/storage/injections.d.ts.map +1 -1
- package/dist/core/storage/injections.js +62 -5
- package/dist/core/storage/injections.js.map +1 -1
- package/dist/core/storage/knowledge.d.ts +106 -0
- package/dist/core/storage/knowledge.d.ts.map +1 -0
- package/dist/core/storage/knowledge.js +202 -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 +117 -0
- package/dist/core/storage/pipeline-rollup.d.ts.map +1 -0
- package/dist/core/storage/pipeline-rollup.js +471 -0
- package/dist/core/storage/pipeline-rollup.js.map +1 -0
- package/dist/core/storage/routing.d.ts +16 -3
- package/dist/core/storage/routing.d.ts.map +1 -1
- package/dist/core/storage/routing.js +39 -8
- package/dist/core/storage/routing.js.map +1 -1
- package/dist/core/storage/rows.d.ts +50 -7
- package/dist/core/storage/rows.d.ts.map +1 -1
- package/dist/core/storage/schema.sql +302 -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 +351 -15
- package/dist/core/storage/sessions.js.map +1 -1
- package/dist/core/storage/skills.d.ts +1 -0
- package/dist/core/storage/skills.d.ts.map +1 -1
- package/dist/core/storage/skills.js +21 -6
- package/dist/core/storage/skills.js.map +1 -1
- package/dist/core/storage/sqlite.d.ts +253 -20
- package/dist/core/storage/sqlite.d.ts.map +1 -1
- package/dist/core/storage/sqlite.js +425 -16
- package/dist/core/storage/sqlite.js.map +1 -1
- package/dist/core/storage/tasks.d.ts +474 -2
- package/dist/core/storage/tasks.d.ts.map +1 -1
- package/dist/core/storage/tasks.js +1213 -18
- 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/storage/workflow-recommendations.d.ts +124 -0
- package/dist/core/storage/workflow-recommendations.d.ts.map +1 -0
- package/dist/core/storage/workflow-recommendations.js +274 -0
- package/dist/core/storage/workflow-recommendations.js.map +1 -0
- package/dist/core/types.d.ts +112 -17
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +12 -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 +92 -0
- package/dist/core/utils/binary-paths.d.ts.map +1 -0
- package/dist/core/utils/binary-paths.js +166 -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-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 +41 -0
- package/dist/core/utils/time.d.ts.map +1 -1
- package/dist/core/utils/time.js +114 -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 +137 -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 +49 -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 +58 -4
- package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
- package/dist/daemon/handlers/post-tool-use.js +261 -8
- package/dist/daemon/handlers/post-tool-use.js.map +1 -1
- package/dist/daemon/handlers/pre-tool-use.d.ts +156 -0
- package/dist/daemon/handlers/pre-tool-use.d.ts.map +1 -0
- package/dist/daemon/handlers/pre-tool-use.js +585 -0
- package/dist/daemon/handlers/pre-tool-use.js.map +1 -0
- package/dist/daemon/handlers/stop.d.ts +35 -7
- package/dist/daemon/handlers/stop.d.ts.map +1 -1
- package/dist/daemon/handlers/stop.js +157 -8
- package/dist/daemon/handlers/stop.js.map +1 -1
- package/dist/daemon/handlers/user-prompt.d.ts +36 -14
- package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt.js +135 -48
- package/dist/daemon/handlers/user-prompt.js.map +1 -1
- 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.map +1 -1
- package/dist/daemon/index.js +471 -43
- 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 +692 -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 +170 -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/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 +203 -0
- package/dist/daemon/services/decision-hint.d.ts.map +1 -0
- package/dist/daemon/services/decision-hint.js +487 -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 +123 -0
- package/dist/daemon/services/event-ttl-sweep.js.map +1 -0
- package/dist/daemon/services/experience-extractor.d.ts +67 -0
- package/dist/daemon/services/experience-extractor.d.ts.map +1 -0
- package/dist/daemon/services/experience-extractor.js +323 -0
- package/dist/daemon/services/experience-extractor.js.map +1 -0
- package/dist/daemon/services/feedback-aggregator.d.ts +179 -0
- package/dist/daemon/services/feedback-aggregator.d.ts.map +1 -0
- package/dist/daemon/services/feedback-aggregator.js +455 -0
- package/dist/daemon/services/feedback-aggregator.js.map +1 -0
- package/dist/daemon/services/heartbeat-writer.d.ts +55 -0
- package/dist/daemon/services/heartbeat-writer.d.ts.map +1 -0
- package/dist/daemon/services/heartbeat-writer.js +111 -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 +140 -0
- package/dist/daemon/services/kb-injector.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 +219 -1
- package/dist/daemon/services/task-segmenter.d.ts.map +1 -1
- package/dist/daemon/services/task-segmenter.js +481 -17
- package/dist/daemon/services/task-segmenter.js.map +1 -1
- package/dist/daemon/services/violation-reporter.d.ts +130 -0
- package/dist/daemon/services/violation-reporter.d.ts.map +1 -0
- package/dist/daemon/services/violation-reporter.js +339 -0
- package/dist/daemon/services/violation-reporter.js.map +1 -0
- 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/templates/agents/claudemd-writer.md +101 -0
- package/dist/daemon/templates/agents/coder.md +105 -0
- package/dist/daemon/templates/agents/decision-maker.md +460 -0
- package/dist/daemon/templates/agents/doc-reviewer.md +115 -0
- package/dist/daemon/templates/agents/harness-debug-full.md +114 -0
- package/dist/daemon/templates/agents/harness-hotfix.md +99 -0
- package/dist/daemon/templates/agents/hybrid-feature-with-safety.md +104 -0
- package/dist/daemon/templates/agents/knowledge-builder.md +119 -0
- package/dist/daemon/templates/agents/patch-applier.md +144 -0
- package/dist/daemon/templates/agents/planner.md +165 -0
- package/dist/daemon/templates/agents/refactor-specialist.md +98 -0
- package/dist/daemon/templates/agents/skill-distiller.md +113 -0
- package/dist/daemon/templates/agents/task-boundary-classifier.md +64 -0
- package/dist/daemon/templates/agents/verify-agent.md +136 -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 +24 -10
- 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 +937 -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 +73 -0
- package/dist/knowledge/constants.d.ts.map +1 -0
- package/dist/knowledge/constants.js +93 -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/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 +228 -0
- package/dist/knowledge/prompt.d.ts.map +1 -0
- package/dist/knowledge/prompt.js +404 -0
- package/dist/knowledge/prompt.js.map +1 -0
- package/dist/knowledge/query.d.ts +105 -0
- package/dist/knowledge/query.d.ts.map +1 -0
- package/dist/knowledge/query.js +341 -0
- package/dist/knowledge/query.js.map +1 -0
- package/dist/knowledge/repo-map.d.ts +91 -0
- package/dist/knowledge/repo-map.d.ts.map +1 -0
- package/dist/knowledge/repo-map.js +408 -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 +288 -0
- package/dist/knowledge/validator.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +222 -1
- 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/claude-cli-resolver.d.ts +26 -0
- package/dist/skills/distill/claude-cli-resolver.d.ts.map +1 -0
- package/dist/skills/distill/claude-cli-resolver.js +115 -0
- package/dist/skills/distill/claude-cli-resolver.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 +491 -0
- package/dist/skills/distilled/distilled-architecture-decision.md +173 -0
- package/dist/skills/distilled/distilled-creator.md +178 -0
- package/dist/skills/distilled/distilled-db-schema-design.md +245 -0
- package/dist/skills/distilled/distilled-defi-amm-security.md +293 -0
- package/dist/skills/distilled/distilled-executing-plans.md +113 -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-spec-driven-design.md +193 -0
- package/dist/skills/distilled/distilled-systematic-debugging.md +306 -0
- package/dist/skills/distilled/distilled-verification-before-completion.md +203 -0
- package/dist/skills/keyword-score.d.ts +29 -0
- package/dist/skills/keyword-score.d.ts.map +1 -0
- package/dist/skills/keyword-score.js +54 -0
- package/dist/skills/keyword-score.js.map +1 -0
- package/dist/skills/registry.d.ts +64 -20
- package/dist/skills/registry.d.ts.map +1 -1
- package/dist/skills/registry.js +102 -105
- package/dist/skills/registry.js.map +1 -1
- package/dist/skills/tools/pipeline-suggest.js +14 -14
- package/dist/skills/tools/skill-invoke.d.ts +1 -1
- package/dist/skills/tools/skill-invoke.js +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/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/events.d.ts.map +1 -1
- package/dist/web/routes/events.js +24 -0
- 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 +783 -2
- package/dist/web/routes/insights.js.map +1 -1
- package/dist/web/routes/knowledge.d.ts +16 -0
- package/dist/web/routes/knowledge.d.ts.map +1 -0
- package/dist/web/routes/knowledge.js +661 -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 +37 -0
- package/dist/web/routes/pipeline.d.ts.map +1 -0
- package/dist/web/routes/pipeline.js +149 -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 +6 -1
- 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 +9 -1
- 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/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/task-timeline.d.ts +102 -0
- package/dist/web/routes/task-timeline.d.ts.map +1 -0
- package/dist/web/routes/task-timeline.js +274 -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 +355 -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 +111 -0
- package/dist/web/routes/violations.js.map +1 -0
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +79 -19
- package/dist/web/server.js.map +1 -1
- 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 +125 -0
- package/dist/web/services/distill-manager.d.ts.map +1 -0
- package/dist/web/services/distill-manager.js +308 -0
- package/dist/web/services/distill-manager.js.map +1 -0
- package/dist/web/static/assets/AgentContentPage-DkeRNxok.js +2 -0
- package/dist/web/static/assets/AgentContentPage-DkeRNxok.js.map +1 -0
- package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js +2 -0
- package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js.map +1 -0
- package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js +3 -0
- package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js.map +1 -0
- package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js +2 -0
- package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js.map +1 -0
- package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js +2 -0
- package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js.map +1 -0
- package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js +2 -0
- package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js.map +1 -0
- package/dist/web/static/assets/DriftTab-DqpepOhI.js +2 -0
- package/dist/web/static/assets/DriftTab-DqpepOhI.js.map +1 -0
- package/dist/web/static/assets/HealthHomePage-CN6zNIie.js +3 -0
- package/dist/web/static/assets/HealthHomePage-CN6zNIie.js.map +1 -0
- package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js +2 -0
- package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js.map +1 -0
- package/dist/web/static/assets/MarkdownRenderer-DZmTl-8J.js +3 -0
- package/dist/web/static/assets/MarkdownRenderer-DZmTl-8J.js.map +1 -0
- package/dist/web/static/assets/NotFound-BQPh0vaF.js +2 -0
- package/dist/web/static/assets/NotFound-BQPh0vaF.js.map +1 -0
- package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js +2 -0
- package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js.map +1 -0
- package/dist/web/static/assets/SettingsPage-oLJBNzQj.js +2 -0
- package/dist/web/static/assets/SettingsPage-oLJBNzQj.js.map +1 -0
- package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js +2 -0
- package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js.map +1 -0
- package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js +2 -0
- package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js.map +1 -0
- package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js +2 -0
- package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js.map +1 -0
- package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js +6 -0
- package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js.map +1 -0
- package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js +3 -0
- package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js.map +1 -0
- package/dist/web/static/assets/arco-Bhi3a6Qp.js +14 -0
- package/dist/web/static/assets/arco-Bhi3a6Qp.js.map +1 -0
- package/dist/web/static/assets/arco-DFQA6dO_.css +1 -0
- package/dist/web/static/assets/charts-BuHQWDbQ.js +37 -0
- package/dist/web/static/assets/charts-BuHQWDbQ.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-7bl3kbcx.css +1 -0
- package/dist/web/static/assets/index-BIYnq1Dx.js +4 -0
- package/dist/web/static/assets/index-BIYnq1Dx.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/outcome-DUn1NjlC.js +2 -0
- package/dist/web/static/assets/outcome-DUn1NjlC.js.map +1 -0
- package/dist/web/static/assets/query-S6X1S7K9.js +2 -0
- package/dist/web/static/assets/{query-C99w429o.js.map → query-S6X1S7K9.js.map} +1 -1
- package/dist/web/static/assets/{react-router-r79dBVy4.js → react-router-JVUrkhdd.js} +3 -3
- package/dist/web/static/assets/{react-router-r79dBVy4.js.map → react-router-JVUrkhdd.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-BkZfCDsz.js +6 -0
- package/dist/web/static/assets/syntax-highlighter-BkZfCDsz.js.map +1 -0
- package/dist/web/static/assets/useTabsParam-k8qte_0C.js +2 -0
- package/dist/web/static/assets/useTabsParam-k8qte_0C.js.map +1 -0
- package/dist/web/static/assets/vendor-DWgdB1eY.js +65 -0
- package/dist/web/static/assets/vendor-DWgdB1eY.js.map +1 -0
- package/dist/web/static/index.html +12 -8
- package/package.json +14 -3
- 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/task-title-BhOcemuR.js +0 -2
- package/dist/web/static/assets/task-title-BhOcemuR.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,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorkflowRecommendationsOperations — workflow_recommendations 表读写 (v9.x Phase 5)
|
|
3
|
+
*
|
|
4
|
+
* Phase 5 fact table for UserPromptSubmitHandler step 5 (workflow recommender).
|
|
5
|
+
* Writes are issued by `WorkflowRecommender` on every prompt where a workflow
|
|
6
|
+
* rule matches. The Phase 5 feature flag `workflow_recommender.enabled`
|
|
7
|
+
* (default OFF) gates whether the recommender even runs — when the flag is
|
|
8
|
+
* OFF no rows are written and no PreToolUse mismatch denies happen.
|
|
9
|
+
*
|
|
10
|
+
* outcome state machine (see schema.sql):
|
|
11
|
+
* pending ──spawn matching──▶ accepted
|
|
12
|
+
* ──spawn w/ bypass──▶ bypassed
|
|
13
|
+
* ──user "skip"────▶ rejected
|
|
14
|
+
* ──Stop hook fires──▶ ignored
|
|
15
|
+
*
|
|
16
|
+
* 设计要点(仿 tool-intercepts.ts 模式):
|
|
17
|
+
* - 所有 timestamp 字段 ISO 8601 字符串(同 events 表)
|
|
18
|
+
* - matched_keywords 通过 JSON.stringify(string[]) 序列化;为 null 表示
|
|
19
|
+
* fallback rule(如 bmad-default 没有显式 keyword 匹配)
|
|
20
|
+
* - `since` 用 ISO 字符串比较(SQLite 文本时间戳天然支持 lexicographic order)
|
|
21
|
+
* - update 操作冪等;同一 id 重复 mark 不抛错(最后一次 outcome 生效)
|
|
22
|
+
*/
|
|
23
|
+
import { decodeToolInput } from './codec/tool-input-codec.js';
|
|
24
|
+
export class WorkflowRecommendationsOperations {
|
|
25
|
+
db;
|
|
26
|
+
constructor(db) {
|
|
27
|
+
this.db = db;
|
|
28
|
+
}
|
|
29
|
+
/** Insert a new row; returns the assigned id. outcome defaults to 'pending'. */
|
|
30
|
+
writeRecommendation(record) {
|
|
31
|
+
const matched = record.matched_keywords && record.matched_keywords.length > 0
|
|
32
|
+
? JSON.stringify(record.matched_keywords)
|
|
33
|
+
: null;
|
|
34
|
+
const result = this.db
|
|
35
|
+
.prepare(`INSERT INTO workflow_recommendations (
|
|
36
|
+
session_id, timestamp, rule_id, matched_keywords,
|
|
37
|
+
recommended_workflow, recommended_agent_type, reason,
|
|
38
|
+
outcome, source
|
|
39
|
+
) VALUES (
|
|
40
|
+
@session_id, @timestamp, @rule_id, @matched_keywords,
|
|
41
|
+
@recommended_workflow, @recommended_agent_type, @reason,
|
|
42
|
+
@outcome, @source
|
|
43
|
+
)`)
|
|
44
|
+
.run({
|
|
45
|
+
session_id: record.session_id,
|
|
46
|
+
timestamp: record.timestamp,
|
|
47
|
+
rule_id: record.rule_id,
|
|
48
|
+
matched_keywords: matched,
|
|
49
|
+
recommended_workflow: record.recommended_workflow,
|
|
50
|
+
recommended_agent_type: record.recommended_agent_type,
|
|
51
|
+
reason: record.reason ?? null,
|
|
52
|
+
outcome: record.outcome ?? 'pending',
|
|
53
|
+
source: record.source ?? 'workflow_classifier',
|
|
54
|
+
});
|
|
55
|
+
return Number(result.lastInsertRowid);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Filter rows. Results are ordered by `timestamp DESC` so callers wanting
|
|
59
|
+
* "the most recent pending" can take `[0]`.
|
|
60
|
+
*/
|
|
61
|
+
queryRecommendations(filter = {}) {
|
|
62
|
+
const conditions = [];
|
|
63
|
+
const params = [];
|
|
64
|
+
if (filter.session_id) {
|
|
65
|
+
conditions.push('session_id = ?');
|
|
66
|
+
params.push(filter.session_id);
|
|
67
|
+
}
|
|
68
|
+
if (filter.outcome) {
|
|
69
|
+
conditions.push('outcome = ?');
|
|
70
|
+
params.push(filter.outcome);
|
|
71
|
+
}
|
|
72
|
+
if (filter.rule_id) {
|
|
73
|
+
conditions.push('rule_id = ?');
|
|
74
|
+
params.push(filter.rule_id);
|
|
75
|
+
}
|
|
76
|
+
if (filter.source) {
|
|
77
|
+
conditions.push('source = ?');
|
|
78
|
+
params.push(filter.source);
|
|
79
|
+
}
|
|
80
|
+
if (filter.since) {
|
|
81
|
+
conditions.push('timestamp >= ?');
|
|
82
|
+
params.push(filter.since);
|
|
83
|
+
}
|
|
84
|
+
const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
|
|
85
|
+
const limit = filter.limit ?? 100;
|
|
86
|
+
params.push(limit);
|
|
87
|
+
const sql = `SELECT * FROM workflow_recommendations ${where} ORDER BY timestamp DESC LIMIT ?`;
|
|
88
|
+
return this.db.prepare(sql).all(...params);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Mark a single recommendation row's outcome. `outcome_at` is stamped with
|
|
92
|
+
* the current ISO timestamp; callers MAY override via the optional arg.
|
|
93
|
+
*/
|
|
94
|
+
updateOutcome(id, outcome, outcome_at) {
|
|
95
|
+
const ts = outcome_at ?? new Date().toISOString();
|
|
96
|
+
this.db
|
|
97
|
+
.prepare(`UPDATE workflow_recommendations
|
|
98
|
+
SET outcome = ?, outcome_at = ?
|
|
99
|
+
WHERE id = ?`)
|
|
100
|
+
.run(outcome, ts, id);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Bulk-mark every still-pending row for a session as 'ignored'. Used by
|
|
104
|
+
* StopHandler at session end so dashboards don't carry forever-pending rows.
|
|
105
|
+
* Returns the number of rows updated.
|
|
106
|
+
*/
|
|
107
|
+
markPendingIgnoredBySession(session_id, outcome_at) {
|
|
108
|
+
const ts = outcome_at ?? new Date().toISOString();
|
|
109
|
+
const result = this.db
|
|
110
|
+
.prepare(`UPDATE workflow_recommendations
|
|
111
|
+
SET outcome = 'ignored', outcome_at = ?
|
|
112
|
+
WHERE session_id = ? AND outcome = 'pending'`)
|
|
113
|
+
.run(ts, session_id);
|
|
114
|
+
return Number(result.changes);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Bulk-mark every still-pending row for a session as 'rejected'. Used by
|
|
118
|
+
* UserPromptHandler when the user prompt contains explicit override
|
|
119
|
+
* keywords ("skip workflow" / "不要 harness" / etc.).
|
|
120
|
+
*/
|
|
121
|
+
markPendingRejectedBySession(session_id, outcome_at) {
|
|
122
|
+
const ts = outcome_at ?? new Date().toISOString();
|
|
123
|
+
const result = this.db
|
|
124
|
+
.prepare(`UPDATE workflow_recommendations
|
|
125
|
+
SET outcome = 'rejected', outcome_at = ?
|
|
126
|
+
WHERE session_id = ? AND outcome = 'pending'`)
|
|
127
|
+
.run(ts, session_id);
|
|
128
|
+
return Number(result.changes);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Phase 2d pipeline-view batch helper. Pulls every workflow_recommendations
|
|
132
|
+
* row for the given session IDs in a single `IN (?,?,...)` query, ordered
|
|
133
|
+
* ASC by timestamp so the rollup layer can scan forward.
|
|
134
|
+
*/
|
|
135
|
+
queryBySessions(sessionIds) {
|
|
136
|
+
if (sessionIds.length === 0)
|
|
137
|
+
return [];
|
|
138
|
+
const placeholders = sessionIds.map(() => '?').join(',');
|
|
139
|
+
const sql = `SELECT * FROM workflow_recommendations
|
|
140
|
+
WHERE session_id IN (${placeholders})
|
|
141
|
+
ORDER BY timestamp ASC`;
|
|
142
|
+
return this.db.prepare(sql).all(...sessionIds);
|
|
143
|
+
}
|
|
144
|
+
/** Convenience: how many rows for this session (any outcome). */
|
|
145
|
+
countBySession(session_id) {
|
|
146
|
+
const row = this.db
|
|
147
|
+
.prepare(`SELECT COUNT(*) AS c FROM workflow_recommendations WHERE session_id = ?`)
|
|
148
|
+
.get(session_id);
|
|
149
|
+
return row.c;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Kanban-board projection (v9.x post-Phase 5).
|
|
153
|
+
*
|
|
154
|
+
* Returns one row per recommendation with the joined session outcome,
|
|
155
|
+
* the first user_prompt for that session, the most recent Task spawn's
|
|
156
|
+
* subagent_type, plus a comma-list of KB page names that were injected
|
|
157
|
+
* for the same session. The web layer buckets these into 4 lanes
|
|
158
|
+
* (prompted / recommended / spawned / done).
|
|
159
|
+
*
|
|
160
|
+
* Pure-SQL join — keeps the per-row cost flat instead of N round-trips
|
|
161
|
+
* from the route layer. `windowDays` is clamped by the caller; `project`
|
|
162
|
+
* is an exact match (NULL-safe via "x OR 1=1" pattern when omitted).
|
|
163
|
+
*/
|
|
164
|
+
queryAgentBoardCards(opts) {
|
|
165
|
+
const limit = Math.min(Math.max(opts.limit ?? 80, 1), 500);
|
|
166
|
+
const sinceMs = Date.now() - opts.windowDays * 86400_000;
|
|
167
|
+
const since = new Date(sinceMs).toISOString();
|
|
168
|
+
const params = [since];
|
|
169
|
+
let projectFilter = '';
|
|
170
|
+
if (opts.projectPath) {
|
|
171
|
+
projectFilter = 'AND s.project_path = ?';
|
|
172
|
+
params.push(opts.projectPath);
|
|
173
|
+
}
|
|
174
|
+
params.push(limit);
|
|
175
|
+
// Top-level SQL: every column EXCEPT spawn_subagent_type (which used a
|
|
176
|
+
// correlated `json_extract(e.tool_input, ...)` sub-SELECT incompatible
|
|
177
|
+
// with the gzip codec). We populate spawn_subagent_type in JS via a
|
|
178
|
+
// single batched fetch of candidate PostToolUse Task/Agent events for
|
|
179
|
+
// every (session, rec_timestamp) pair, then pick the earliest per rec.
|
|
180
|
+
const sql = `
|
|
181
|
+
SELECT
|
|
182
|
+
wf.id AS rec_id,
|
|
183
|
+
wf.session_id AS session_id,
|
|
184
|
+
wf.timestamp AS timestamp,
|
|
185
|
+
wf.recommended_agent_type AS recommended_agent_type,
|
|
186
|
+
wf.recommended_workflow AS recommended_workflow,
|
|
187
|
+
wf.outcome AS rec_outcome,
|
|
188
|
+
wf.outcome_at AS outcome_at,
|
|
189
|
+
wf.reason AS reason,
|
|
190
|
+
wf.rule_id AS rule_id,
|
|
191
|
+
wf.matched_keywords AS matched_keywords,
|
|
192
|
+
s.first_prompt AS first_prompt,
|
|
193
|
+
s.start_time AS session_start,
|
|
194
|
+
COALESCE(s.end_time, s.last_event_time, s.start_time) AS session_end,
|
|
195
|
+
s.outcome AS session_outcome,
|
|
196
|
+
s.project_path AS project_path,
|
|
197
|
+
(SELECT GROUP_CONCAT(inj.metadata_json, '||')
|
|
198
|
+
FROM injections inj
|
|
199
|
+
WHERE inj.session_id = wf.session_id
|
|
200
|
+
AND inj.source_handler = 'UserPromptSubmitHandler:kb') AS kb_meta_concat
|
|
201
|
+
FROM workflow_recommendations wf
|
|
202
|
+
LEFT JOIN sessions s ON s.session_id = wf.session_id
|
|
203
|
+
WHERE wf.timestamp >= ?
|
|
204
|
+
${projectFilter}
|
|
205
|
+
ORDER BY wf.timestamp DESC
|
|
206
|
+
LIMIT ?
|
|
207
|
+
`;
|
|
208
|
+
const baseRows = this.db.prepare(sql).all(...params);
|
|
209
|
+
if (baseRows.length === 0)
|
|
210
|
+
return baseRows;
|
|
211
|
+
// ── spawn_subagent_type via codec (JS-side) ────────────────────────
|
|
212
|
+
//
|
|
213
|
+
// Strategy: pull every PostToolUse Task/Agent event (with raw tool_input)
|
|
214
|
+
// for the candidate sessions within the recommendation window, then for
|
|
215
|
+
// each recommendation row find the earliest event whose timestamp >= rec
|
|
216
|
+
// timestamp and decode its tool_input.subagent_type. Single SELECT + JS
|
|
217
|
+
// walk; avoids N correlated queries.
|
|
218
|
+
const sessionIdSet = new Set(baseRows.map(r => r.session_id));
|
|
219
|
+
const sessionIds = Array.from(sessionIdSet);
|
|
220
|
+
const sessionPh = sessionIds.map(() => '?').join(',');
|
|
221
|
+
const spawnEvents = this.db.prepare(`
|
|
222
|
+
SELECT session_id, timestamp, tool_input FROM events
|
|
223
|
+
WHERE session_id IN (${sessionPh})
|
|
224
|
+
AND hook_type = 'PostToolUse'
|
|
225
|
+
AND tool_name IN ('Task', 'Agent')
|
|
226
|
+
AND tool_input IS NOT NULL
|
|
227
|
+
ORDER BY session_id, timestamp ASC
|
|
228
|
+
`).all(...sessionIds);
|
|
229
|
+
// Bucket by session for the per-rec earliest-after lookup.
|
|
230
|
+
const eventsBySession = new Map();
|
|
231
|
+
for (const ev of spawnEvents) {
|
|
232
|
+
let list = eventsBySession.get(ev.session_id);
|
|
233
|
+
if (!list) {
|
|
234
|
+
list = [];
|
|
235
|
+
eventsBySession.set(ev.session_id, list);
|
|
236
|
+
}
|
|
237
|
+
list.push(ev);
|
|
238
|
+
}
|
|
239
|
+
for (const rec of baseRows) {
|
|
240
|
+
const events = eventsBySession.get(rec.session_id);
|
|
241
|
+
if (!events || events.length === 0) {
|
|
242
|
+
rec.spawn_subagent_type = null;
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
// events are pre-sorted ASC by timestamp; find the first one >= rec.timestamp
|
|
246
|
+
let chosen = null;
|
|
247
|
+
for (const ev of events) {
|
|
248
|
+
if (ev.timestamp >= rec.timestamp) {
|
|
249
|
+
chosen = ev;
|
|
250
|
+
break;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
if (!chosen) {
|
|
254
|
+
rec.spawn_subagent_type = null;
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
257
|
+
try {
|
|
258
|
+
const decoded = decodeToolInput(chosen.tool_input);
|
|
259
|
+
if (decoded && typeof decoded === 'object' && !Array.isArray(decoded)) {
|
|
260
|
+
const v = decoded.subagent_type;
|
|
261
|
+
rec.spawn_subagent_type = typeof v === 'string' ? v : null;
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
rec.spawn_subagent_type = null;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
catch {
|
|
268
|
+
rec.spawn_subagent_type = null;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return baseRows;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=workflow-recommendations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-recommendations.js","sourceRoot":"","sources":["../../../src/core/storage/workflow-recommendations.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -93,13 +93,113 @@ export declare function isUserPromptSubmit(e: ForgeEvent): e is UserPromptSubmit
|
|
|
93
93
|
export declare function isNotification(e: ForgeEvent): e is NotificationEvent & ForgeEvent;
|
|
94
94
|
export declare function isStop(e: ForgeEvent): e is StopEvent & ForgeEvent;
|
|
95
95
|
/**
|
|
96
|
-
*
|
|
96
|
+
* Closed enum of agent identifiers the IntentEngine is allowed to suggest.
|
|
97
|
+
*
|
|
98
|
+
* - The first 8 names map 1:1 to `.claude/agents/<name>.md` files shipped in
|
|
99
|
+
* the repo. Adding a new agent requires updating BOTH this enum AND the
|
|
100
|
+
* `.claude/agents/` directory; the startup check enforces the sync.
|
|
101
|
+
* - `'Explore'` and `'general-purpose'` are Claude Code built-ins — they have
|
|
102
|
+
* no `.md` file but are valid `subagent_type` values.
|
|
103
|
+
* - `'none'` covers workflow_type ∈ {'meta', 'explore'} where no agent should
|
|
104
|
+
* be spawned (main thread handles the prompt directly).
|
|
105
|
+
*/
|
|
106
|
+
export type SuggestedAgent = 'coder' | 'planner' | 'decision-maker' | 'refactor-specialist' | 'harness-hotfix' | 'harness-debug-full' | 'hybrid-feature-with-safety' | 'doc-reviewer' | 'verify-agent' | 'Explore' | 'general-purpose' | 'none';
|
|
107
|
+
/** All agent names that MUST have a corresponding `.claude/agents/*.md` file. */
|
|
108
|
+
export declare const REQUIRED_AGENT_FILES: readonly SuggestedAgent[];
|
|
109
|
+
/** Coarse workflow buckets returned by the IntentEngine. */
|
|
110
|
+
export type WorkflowType = 'bmad' | 'harness-hotfix' | 'harness-debug' | 'refactor' | 'hybrid' | 'explore' | 'meta';
|
|
111
|
+
/**
|
|
112
|
+
* Fallback layer that produced an IntentClassification. `L1` means the LLM
|
|
113
|
+
* main path succeeded; `L2`-`L6` denote progressive degradation. Persisted
|
|
114
|
+
* in `injections.source_handler` as `UserPromptSubmitHandler:intent_fallback:L{N}`
|
|
115
|
+
* (or `UserPromptSubmitHandler:intent` for L1) so dashboards can chart the
|
|
116
|
+
* health of the LLM path vs. fallback usage.
|
|
117
|
+
*/
|
|
118
|
+
export type FallbackLayer = 'L1' | 'L2' | 'L3' | 'L4' | 'L5' | 'L6';
|
|
119
|
+
export interface IntentClassification {
|
|
120
|
+
/** ≤80 char summary in the prompt's primary language. */
|
|
121
|
+
intent_summary: string;
|
|
122
|
+
workflow_type: WorkflowType;
|
|
123
|
+
/** 0..1; lower values trigger fallback voting (see spec §3.4.1). */
|
|
124
|
+
confidence: number;
|
|
125
|
+
suggested_agent: SuggestedAgent;
|
|
126
|
+
/** ≤200 char human-readable reasoning, surfaced in the dashboard. */
|
|
127
|
+
reasoning: string;
|
|
128
|
+
/** Tokens extracted from the prompt; threaded into the KB query. */
|
|
129
|
+
keywords: string[];
|
|
130
|
+
/** Which layer produced this result. Always set by IntentEngine. */
|
|
131
|
+
layer: FallbackLayer;
|
|
132
|
+
/** Optional structured diagnostics for the dashboard. */
|
|
133
|
+
metadata?: Record<string, unknown>;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Result returned by `SpecApproval.verify()` — the UserPromptHandler maps each
|
|
137
|
+
* outcome to a different systemMessage. `'ok'` is the only happy path; all
|
|
138
|
+
* others surface a hint and let downstream pipeline steps run normally.
|
|
139
|
+
*/
|
|
140
|
+
export type SpecApprovalOutcome = 'ok' | 'not_found' | 'expired' | 'already_approved' | 'wrong_session';
|
|
141
|
+
export interface SpecApprovalResult {
|
|
142
|
+
outcome: SpecApprovalOutcome;
|
|
143
|
+
/**
|
|
144
|
+
* C1 (spec 0854): normalised SpecLikeRow carried from the decisions
|
|
145
|
+
* kind='spec' row. Exposes the field names (spec_path/token/intent_json/
|
|
146
|
+
* status) the formatters key off.
|
|
147
|
+
*/
|
|
148
|
+
row?: SpecApprovalRowLike;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* The subset of fields the approval formatter + spec-gate consume from an
|
|
152
|
+
* approval row. decisions' SpecLikeRow satisfies this (C1). Declared here (not
|
|
153
|
+
* importing SpecLikeRow from storage) to keep core/types.ts free of
|
|
154
|
+
* storage-layer imports.
|
|
155
|
+
*/
|
|
156
|
+
export interface SpecApprovalRowLike {
|
|
157
|
+
spec_path: string;
|
|
158
|
+
token: string;
|
|
159
|
+
intent_json: string;
|
|
160
|
+
status: string;
|
|
161
|
+
approved_at?: string | null;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Claude Code hook-specific output sub-types.
|
|
165
|
+
*
|
|
166
|
+
* Spec 1944 (decision-hint chain fix, 2026-05-28): UserPromptSubmit hooks must
|
|
167
|
+
* write injection text under `hookSpecificOutput.additionalContext` for the
|
|
168
|
+
* main thread to see it — the top-level `systemMessage` is silently dropped by
|
|
169
|
+
* Claude Code on the UserPromptSubmit path. PreToolUse keeps its own sub-type
|
|
170
|
+
* with `permissionDecision` + `permissionDecisionReason`.
|
|
171
|
+
*
|
|
172
|
+
* See https://docs.claude.com/en/docs/claude-code/hooks
|
|
173
|
+
*/
|
|
174
|
+
export interface UserPromptSubmitHookOutput {
|
|
175
|
+
hookEventName: 'UserPromptSubmit';
|
|
176
|
+
additionalContext: string;
|
|
177
|
+
}
|
|
178
|
+
export interface PreToolUseHookOutput {
|
|
179
|
+
hookEventName: 'PreToolUse';
|
|
180
|
+
permissionDecision: 'allow' | 'deny' | 'ask' | 'defer';
|
|
181
|
+
permissionDecisionReason?: string;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Hook execution result.
|
|
185
|
+
*
|
|
186
|
+
* Spec 1944: `hookSpecificOutput` carries the protocol-compliant payload.
|
|
187
|
+
* Existing top-level `systemMessage` / `additionalContext` are retained for
|
|
188
|
+
* backward compat and for PreToolUse paths that still use them; new
|
|
189
|
+
* UserPromptSubmit injections SHOULD double-fill `hookSpecificOutput` (R7
|
|
190
|
+
* mitigation) so older Claude Code releases still see the text via the
|
|
191
|
+
* legacy field while compliant releases pick up the new shape.
|
|
97
192
|
*/
|
|
98
193
|
export interface HookResult {
|
|
99
194
|
allow: boolean;
|
|
100
195
|
reason?: string;
|
|
196
|
+
/**
|
|
197
|
+
* @deprecated UserPromptSubmit path: silently dropped by Claude Code; use
|
|
198
|
+
* `hookSpecificOutput.additionalContext` instead. PreToolUse still honors it.
|
|
199
|
+
*/
|
|
101
200
|
systemMessage?: string;
|
|
102
201
|
additionalContext?: string;
|
|
202
|
+
hookSpecificOutput?: UserPromptSubmitHookOutput | PreToolUseHookOutput;
|
|
103
203
|
}
|
|
104
204
|
/**
|
|
105
205
|
* Security configuration
|
|
@@ -112,14 +212,19 @@ export interface SecurityConfig {
|
|
|
112
212
|
}
|
|
113
213
|
/**
|
|
114
214
|
* Configuration structure
|
|
215
|
+
*
|
|
216
|
+
* D R-D (2026-05-29, spec 0902 / decision f5a5b030): the legacy `ai.*` group
|
|
217
|
+
* + `skill_matching.api_key` field were removed from this interface. All AI
|
|
218
|
+
* flows (CLAUDE.md generation, Knowledge build, Patch preview, Skill
|
|
219
|
+
* distillation, IntentEngine) now shell out to the local `claude` CLI
|
|
220
|
+
* subprocess (sub-spec A/B/C R-B + D R-A/R-B), which uses the user's Claude
|
|
221
|
+
* Code OAuth keychain — daemon does not hold an `ANTHROPIC_API_KEY` any more.
|
|
222
|
+
*
|
|
223
|
+
* `ConfigManager.get()` silently ignores any `ai:` / `skill_matching:` block
|
|
224
|
+
* left in `~/.claude-forge/config.yaml`; daemon startup still emits a
|
|
225
|
+
* deprecation warn pointing users to delete them.
|
|
115
226
|
*/
|
|
116
227
|
export interface ForgeConfig {
|
|
117
|
-
ai: {
|
|
118
|
-
api_key: string;
|
|
119
|
-
model: string;
|
|
120
|
-
base_url?: string;
|
|
121
|
-
provider: string;
|
|
122
|
-
};
|
|
123
228
|
storage: {
|
|
124
229
|
path: string;
|
|
125
230
|
max_size_mb: number;
|
|
@@ -128,16 +233,6 @@ export interface ForgeConfig {
|
|
|
128
233
|
enabled: boolean;
|
|
129
234
|
port: number;
|
|
130
235
|
};
|
|
131
|
-
/**
|
|
132
|
-
* @deprecated Use `ai.api_key` instead. This field is kept for backward
|
|
133
|
-
* compatibility with config.yaml files generated by older `cf init` runs;
|
|
134
|
-
* daemon currently falls back to it when `ai.api_key` is empty. Will be
|
|
135
|
-
* removed in a future major release.
|
|
136
|
-
*/
|
|
137
|
-
skill_matching?: {
|
|
138
|
-
/** @deprecated Use top-level `ai.api_key`. */
|
|
139
|
-
api_key?: string;
|
|
140
|
-
};
|
|
141
236
|
security?: SecurityConfig;
|
|
142
237
|
}
|
|
143
238
|
export {};
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.js
CHANGED
|
@@ -22,4 +22,16 @@ export function isNotification(e) {
|
|
|
22
22
|
export function isStop(e) {
|
|
23
23
|
return e.hook_type === 'Stop';
|
|
24
24
|
}
|
|
25
|
+
/** All agent names that MUST have a corresponding `.claude/agents/*.md` file. */
|
|
26
|
+
export const REQUIRED_AGENT_FILES = [
|
|
27
|
+
'coder',
|
|
28
|
+
'planner',
|
|
29
|
+
'decision-maker',
|
|
30
|
+
'refactor-specialist',
|
|
31
|
+
'harness-hotfix',
|
|
32
|
+
'harness-debug-full',
|
|
33
|
+
'hybrid-feature-with-safety',
|
|
34
|
+
'doc-reviewer',
|
|
35
|
+
'verify-agent',
|
|
36
|
+
];
|
|
25
37
|
//# sourceMappingURL=types.js.map
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AA4GA,4EAA4E;AAC5E,6EAA6E;AAC7E,qEAAqE;AACrE,4DAA4D;AAE5D,MAAM,UAAU,YAAY,CAAC,CAAa;IACxC,OAAO,CAAC,CAAC,SAAS,KAAK,YAAY;WAC9B,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;WAC/B,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAa;IACzC,OAAO,CAAC,CAAC,SAAS,KAAK,aAAa;WAC/B,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;WAC/B,CAAC,CAAC,UAAU,KAAK,SAAS;WAC1B,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAAa;IAC9C,OAAO,CAAC,CAAC,SAAS,KAAK,kBAAkB,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAa;IAC1C,OAAO,CAAC,CAAC,SAAS,KAAK,cAAc,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,CAAa;IAClC,OAAO,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC;AAChC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AA4GA,4EAA4E;AAC5E,6EAA6E;AAC7E,qEAAqE;AACrE,4DAA4D;AAE5D,MAAM,UAAU,YAAY,CAAC,CAAa;IACxC,OAAO,CAAC,CAAC,SAAS,KAAK,YAAY;WAC9B,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;WAC/B,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAa;IACzC,OAAO,CAAC,CAAC,SAAS,KAAK,aAAa;WAC/B,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;WAC/B,CAAC,CAAC,UAAU,KAAK,SAAS;WAC1B,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAAa;IAC9C,OAAO,CAAC,CAAC,SAAS,KAAK,kBAAkB,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAa;IAC1C,OAAO,CAAC,CAAC,SAAS,KAAK,cAAc,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,CAAa;IAClC,OAAO,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC;AAChC,CAAC;AAiCD,iFAAiF;AACjF,MAAM,CAAC,MAAM,oBAAoB,GAA8B;IAC7D,OAAO;IACP,SAAS;IACT,gBAAgB;IAChB,qBAAqB;IACrB,gBAAgB;IAChB,oBAAoB;IACpB,4BAA4B;IAC5B,cAAc;IACd,cAAc;CACN,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timestamped backup-directory utility.
|
|
3
|
+
*
|
|
4
|
+
* Several apply-style flows need to materialise a timestamped backup
|
|
5
|
+
* directory before overwriting files in place:
|
|
6
|
+
* • `src/knowledge/builder.ts` (applyPages) — .forge-knowledge/
|
|
7
|
+
*
|
|
8
|
+
* Shared shape:
|
|
9
|
+
* 1. Compute a timestamp slug from `new Date()`.
|
|
10
|
+
* 2. Resolve the path `baseDir/<slug>` — if it already exists, append
|
|
11
|
+
* `-2`, `-3`, ... until an unused name is found.
|
|
12
|
+
* 3. `mkdir -p` the resolved path.
|
|
13
|
+
* 4. Return the path so the caller can copy whatever files it wants into
|
|
14
|
+
* it (the actual copy logic stays at the call site because the two
|
|
15
|
+
* consumers have different file-selection rules).
|
|
16
|
+
*
|
|
17
|
+
* Step 2 is optional via `conflictSuffix: 'never'` for call sites whose
|
|
18
|
+
* current behavior was "no collision handling, just mkdir -p" — preserves
|
|
19
|
+
* pre-refactor byte-identical output.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Default timestamp slug formatter: local-time `YYYYMMDD-HHMM`.
|
|
23
|
+
*
|
|
24
|
+
* Local (not UTC) by design — matches the post-revert decision in commit
|
|
25
|
+
* 640d271a so backup directory names line up with the developer's wall clock.
|
|
26
|
+
*/
|
|
27
|
+
export declare function defaultTimestampSlug(now?: Date): string;
|
|
28
|
+
export interface CreateTimestampedBackupOptions {
|
|
29
|
+
/** Directory under which the timestamped backup dir is created. */
|
|
30
|
+
baseDir: string;
|
|
31
|
+
/**
|
|
32
|
+
* How to produce the slug string. Default: {@link defaultTimestampSlug}.
|
|
33
|
+
* Pass a custom function to mirror legacy formats (e.g. ISO-replace in
|
|
34
|
+
* knowledge/builder.ts before unification).
|
|
35
|
+
*/
|
|
36
|
+
tsFormatter?: () => string;
|
|
37
|
+
/**
|
|
38
|
+
* Collision handling:
|
|
39
|
+
* • `'suffix'` (default) — if `baseDir/<slug>` exists, try
|
|
40
|
+
* `baseDir/<slug>-2`, `-3`, ... until an unused name is found.
|
|
41
|
+
* • `'never'` — skip the collision probe; just mkdir -p the bare slug
|
|
42
|
+
* path. Use this when the caller's pre-refactor behavior was to
|
|
43
|
+
* merge into an existing directory of the same timestamp (e.g.
|
|
44
|
+
* `knowledge/builder.ts` historical behavior).
|
|
45
|
+
*/
|
|
46
|
+
conflictSuffix?: 'suffix' | 'never';
|
|
47
|
+
/**
|
|
48
|
+
* If false, only the path/slug is computed — no `mkdir` is performed.
|
|
49
|
+
* Defaults to `true`. Set false when the caller wants to defer directory
|
|
50
|
+
* creation until it actually has something to copy (matches
|
|
51
|
+
* `knowledge/builder.ts:applyPages` historical "lazy mkdir" behavior).
|
|
52
|
+
*
|
|
53
|
+
* Note: when `mkdir: false` and `conflictSuffix: 'suffix'`, the collision
|
|
54
|
+
* probe still runs against the filesystem so the returned slug still
|
|
55
|
+
* dodges existing directories.
|
|
56
|
+
*/
|
|
57
|
+
mkdir?: boolean;
|
|
58
|
+
}
|
|
59
|
+
export interface CreateTimestampedBackupResult {
|
|
60
|
+
/** Absolute (or caller-relative) path of the newly created backup directory. */
|
|
61
|
+
path: string;
|
|
62
|
+
/** The slug actually used (after any `-2/-3` suffix resolution). */
|
|
63
|
+
slug: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Resolve + create a timestamped backup directory under `baseDir`.
|
|
67
|
+
*
|
|
68
|
+
* The caller copies whatever files it wants into `result.path` afterwards.
|
|
69
|
+
* Returns the resolved path and final slug. Throws on `fs.mkdir` failure
|
|
70
|
+
* (does NOT swallow filesystem errors).
|
|
71
|
+
*/
|
|
72
|
+
export declare function createTimestampedBackup(options: CreateTimestampedBackupOptions): Promise<CreateTimestampedBackupResult>;
|
|
73
|
+
/**
|
|
74
|
+
* Synchronous counterpart of {@link createTimestampedBackup} for call sites
|
|
75
|
+
* that must remain non-async (e.g. `knowledge/builder.ts:applyPages`).
|
|
76
|
+
*
|
|
77
|
+
* Behavior is identical to the async version, just uses `existsSync` +
|
|
78
|
+
* `mkdirSync` instead of `fs.access` / `fs.mkdir`.
|
|
79
|
+
*/
|
|
80
|
+
export declare function createTimestampedBackupSync(options: CreateTimestampedBackupOptions): CreateTimestampedBackupResult;
|
|
81
|
+
//# sourceMappingURL=backup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../../src/core/utils/backup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,IAAiB,GAAG,MAAM,CAOnE;AAED,MAAM,WAAW,8BAA8B;IAC7C,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,MAAM,CAAC;IAC3B;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACpC;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,6BAA6B,CAAC,CA6BxC;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,8BAA8B,GACtC,6BAA6B,CAqB/B"}
|