@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
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
* injections.ts — injections
|
|
15
15
|
* routing.ts — routing_events + experiment_assignments
|
|
16
16
|
* skills.ts — skill_invocations + workflow 聚合
|
|
17
|
-
* token-usage.ts — token_usage
|
|
18
17
|
* maintenance.ts — 清理 / VACUUM
|
|
19
18
|
*/
|
|
20
19
|
import { EventEmitter } from 'node:events';
|
|
@@ -25,9 +24,14 @@ import { TaskOperations } from './tasks.js';
|
|
|
25
24
|
import { InjectionOperations } from './injections.js';
|
|
26
25
|
import { RoutingOperations } from './routing.js';
|
|
27
26
|
import { SkillOperations } from './skills.js';
|
|
28
|
-
import { TokenUsageOperations } from './token-usage.js';
|
|
29
27
|
import { MaintenanceOperations } from './maintenance.js';
|
|
28
|
+
import { KnowledgeOperations } from './knowledge.js';
|
|
29
|
+
import { ForgeConfigOperations } from './forge-config.js';
|
|
30
|
+
import { ToolInterceptsOperations } from './tool-intercepts.js';
|
|
31
|
+
import { DecisionsOperations } from './decisions.js';
|
|
32
|
+
import { FeedbackOperations } from './feedback.js';
|
|
30
33
|
import { logger } from '../utils/logger.js';
|
|
34
|
+
export { toSpecLikeRow, DECISION_OUTCOMES } from './decisions.js';
|
|
31
35
|
export class SQLiteStorage extends EventEmitter {
|
|
32
36
|
base;
|
|
33
37
|
events;
|
|
@@ -36,8 +40,12 @@ export class SQLiteStorage extends EventEmitter {
|
|
|
36
40
|
injections;
|
|
37
41
|
routing;
|
|
38
42
|
skills;
|
|
39
|
-
tokenUsage;
|
|
40
43
|
maintenance;
|
|
44
|
+
knowledge;
|
|
45
|
+
forgeConfig;
|
|
46
|
+
toolIntercepts;
|
|
47
|
+
decisions;
|
|
48
|
+
feedback;
|
|
41
49
|
constructor(dbPath) {
|
|
42
50
|
super();
|
|
43
51
|
this.base = new SQLiteBase(dbPath);
|
|
@@ -48,8 +56,12 @@ export class SQLiteStorage extends EventEmitter {
|
|
|
48
56
|
this.injections = new InjectionOperations(db);
|
|
49
57
|
this.routing = new RoutingOperations(db);
|
|
50
58
|
this.skills = new SkillOperations(db);
|
|
51
|
-
this.tokenUsage = new TokenUsageOperations(db);
|
|
52
59
|
this.maintenance = new MaintenanceOperations(db, dbPath);
|
|
60
|
+
this.knowledge = new KnowledgeOperations(db);
|
|
61
|
+
this.forgeConfig = new ForgeConfigOperations(db);
|
|
62
|
+
this.toolIntercepts = new ToolInterceptsOperations(db);
|
|
63
|
+
this.decisions = new DecisionsOperations(db);
|
|
64
|
+
this.feedback = new FeedbackOperations(db);
|
|
53
65
|
}
|
|
54
66
|
// ── Database accessors ─────────────────────────────────────────────────
|
|
55
67
|
/** @internal 见 SQLiteBase.getDatabase 注释。Routes/Handlers/Analytics 禁止调用。 */
|
|
@@ -60,10 +72,26 @@ export class SQLiteStorage extends EventEmitter {
|
|
|
60
72
|
queryEvents(filter) {
|
|
61
73
|
return this.events.queryEvents(filter);
|
|
62
74
|
}
|
|
75
|
+
/** Point lookup of a single event by event_id (used by pipeline ?event_id). */
|
|
76
|
+
getEventById(eventId) { return this.events.getEventById(eventId); }
|
|
77
|
+
/** Backfill ai_response (plain text, NOT gzip) for a violation window — spec 1446. */
|
|
78
|
+
updateEventAiResponse(eventId, text) { this.events.updateEventAiResponse(eventId, text); }
|
|
79
|
+
/** Inline-edit (PostToolUse Edit/Write/NotebookEdit) rows for a session in an ISO window — spec 1446. */
|
|
80
|
+
queryInlineEditEvents(opts) {
|
|
81
|
+
return this.events.queryInlineEditEvents(opts);
|
|
82
|
+
}
|
|
63
83
|
countEvents(filter) { return this.events.countEvents(filter); }
|
|
64
84
|
searchEvents(filter) {
|
|
65
85
|
return this.events.searchEvents(filter);
|
|
66
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* audit F5 — slim event reader for /api/insights/timeline. Drops
|
|
89
|
+
* `tool_output` + `ai_response` from the SELECT to keep MB-scale PostToolUse
|
|
90
|
+
* rows out of the response payload. See EventOperations.queryEventsTimeline.
|
|
91
|
+
*/
|
|
92
|
+
queryEventsTimeline(filter) {
|
|
93
|
+
return this.events.queryEventsTimeline(filter);
|
|
94
|
+
}
|
|
67
95
|
// ── H2: Event aggregates (前 routes/handlers/analytics 越权 SQL) ──
|
|
68
96
|
countAllEvents() { return this.events.countAllEvents(); }
|
|
69
97
|
aggregateToolUsage(opts) {
|
|
@@ -81,6 +109,26 @@ export class SQLiteStorage extends EventEmitter {
|
|
|
81
109
|
aggregateToolUsageBySession(session_id) {
|
|
82
110
|
return this.events.aggregateToolUsageBySession(session_id);
|
|
83
111
|
}
|
|
112
|
+
aggregateAgentSpawns(opts) {
|
|
113
|
+
return this.events.aggregateAgentSpawns(opts);
|
|
114
|
+
}
|
|
115
|
+
/** decision c425f26f: cross-task workflow spawns grouped by decision_id. */
|
|
116
|
+
queryWorkflowSpawnsByDecisionId(decisionId) {
|
|
117
|
+
return this.events.queryWorkflowSpawnsByDecisionId(decisionId);
|
|
118
|
+
}
|
|
119
|
+
/** decision c425f26f: resolve a task's home decision_id (plaintext column, no gzip). */
|
|
120
|
+
queryTaskDecisionId(taskId) {
|
|
121
|
+
return this.events.queryTaskDecisionId(taskId);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* decision c425f26f (user ruling #3): re-runnable backfill of the plaintext
|
|
125
|
+
* events.decision_id / subagent_type columns. Boot-time runs the gated variant
|
|
126
|
+
* automatically; this exposes the engine for `cf maintenance backfill-spawn-fields`.
|
|
127
|
+
* Returns the number of rows updated.
|
|
128
|
+
*/
|
|
129
|
+
backfillEventsDecisionId() {
|
|
130
|
+
return this.base.backfillEventsDecisionId();
|
|
131
|
+
}
|
|
84
132
|
countActiveDays(opts) {
|
|
85
133
|
return this.events.countActiveDays(opts);
|
|
86
134
|
}
|
|
@@ -99,6 +147,21 @@ export class SQLiteStorage extends EventEmitter {
|
|
|
99
147
|
queryEventsByTimeRange(opts) {
|
|
100
148
|
return this.events.queryEventsByTimeRange(opts);
|
|
101
149
|
}
|
|
150
|
+
// ── Event TTL sweep ops (db-size optimization 2026-05-26) ──────────────
|
|
151
|
+
/**
|
|
152
|
+
* NULL out `tool_input` for events older than `cutoffIso`, capped to `maxRows`
|
|
153
|
+
* per call. See EventOperations.expireToolInputBatch.
|
|
154
|
+
*/
|
|
155
|
+
expireToolInputBatch(cutoffIso, maxRows) {
|
|
156
|
+
return this.events.expireToolInputBatch(cutoffIso, maxRows);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* DELETE events older than `cutoffIso` (plus orphan task_events), capped to
|
|
160
|
+
* `maxRows`. See EventOperations.deleteEventsByCutoff.
|
|
161
|
+
*/
|
|
162
|
+
deleteEventsByCutoff(cutoffIso, maxRows) {
|
|
163
|
+
return this.events.deleteEventsByCutoff(cutoffIso, maxRows);
|
|
164
|
+
}
|
|
102
165
|
// ── Session operations ─────────────────────────────────────────────────
|
|
103
166
|
upsertSession(event) { this.sessions.upsertSession(event); }
|
|
104
167
|
querySessions(filter = {}) {
|
|
@@ -106,6 +169,10 @@ export class SQLiteStorage extends EventEmitter {
|
|
|
106
169
|
}
|
|
107
170
|
getSession(id) { return this.sessions.getSession(id); }
|
|
108
171
|
getSessionByPrefix(idPrefix) { return this.sessions.getSessionByPrefix(idPrefix); }
|
|
172
|
+
/** Phase 3 timeline endpoint: session row + rollup metric columns + outcome. */
|
|
173
|
+
getSessionWithMetrics(idOrPrefix) {
|
|
174
|
+
return this.sessions.getSessionWithMetrics(idOrPrefix);
|
|
175
|
+
}
|
|
109
176
|
// ── H2: Session aggregates ──
|
|
110
177
|
countAllSessions() { return this.sessions.countAllSessions(); }
|
|
111
178
|
aggregateDailySessionCounts(opts) {
|
|
@@ -117,24 +184,118 @@ export class SQLiteStorage extends EventEmitter {
|
|
|
117
184
|
countSessionsByRange(opts) {
|
|
118
185
|
return this.sessions.countSessionsByRange(opts);
|
|
119
186
|
}
|
|
187
|
+
updateSessionOutcome(sessionId, updates) {
|
|
188
|
+
this.sessions.updateSessionOutcome(sessionId, updates);
|
|
189
|
+
}
|
|
190
|
+
/** Phase 9.5 idle-session sweeper input. */
|
|
191
|
+
queryIdleUnclassifiedSessions(cutoffIso, limit) {
|
|
192
|
+
return this.sessions.queryIdleUnclassifiedSessions(cutoffIso, limit);
|
|
193
|
+
}
|
|
194
|
+
updateSessionMetrics(sessionId, updates) {
|
|
195
|
+
this.sessions.updateSessionMetrics(sessionId, updates);
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Session-centric agent board projection (v2). See SessionOperations.queryAgentBoardSessions.
|
|
199
|
+
*/
|
|
200
|
+
queryAgentBoardSessions(opts) {
|
|
201
|
+
return this.sessions.queryAgentBoardSessions(opts);
|
|
202
|
+
}
|
|
120
203
|
// ── Injection operations ───────────────────────────────────────────────
|
|
121
204
|
writeInjection(injection) { this.injections.writeInjection(injection); }
|
|
122
205
|
queryInjections(filter = {}) {
|
|
123
206
|
return this.injections.queryInjections(filter);
|
|
124
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Phase 2 metrics rollup helper. Count injections for one session, optionally
|
|
210
|
+
* filtered by source_handler (e.g. 'UserPromptSubmitHandler:kb' → KB injects).
|
|
211
|
+
*/
|
|
212
|
+
countInjectionsBySessionByHandler(session_id, source_handler) {
|
|
213
|
+
return this.injections.countBySession(session_id, source_handler);
|
|
214
|
+
}
|
|
215
|
+
/** Phase 2d pipeline-view batch helper. See InjectionOperations.queryBySessions. */
|
|
216
|
+
queryInjectionsBySessions(sessionIds) {
|
|
217
|
+
return this.injections.queryBySessions(sessionIds);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* KB 采纳 telemetry(decision 148f7a0a)。
|
|
221
|
+
* See InjectionOperations.writeKbInjectionAdoption.
|
|
222
|
+
*/
|
|
223
|
+
writeKbInjectionAdoption(session_id, adopted_at) {
|
|
224
|
+
return this.injections.writeKbInjectionAdoption(session_id, adopted_at);
|
|
225
|
+
}
|
|
226
|
+
/** KB 采纳率读路径(decision 148f7a0a)。See InjectionOperations.countKbAdoption. */
|
|
227
|
+
countKbAdoption(sinceIso) {
|
|
228
|
+
return this.injections.countKbAdoption(sinceIso);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* LOOP HINT 采纳 telemetry(decision e7d13697, Option C)。
|
|
232
|
+
* See InjectionOperations.writeLoopHintAdoption.
|
|
233
|
+
*/
|
|
234
|
+
writeLoopHintAdoption(session_id, adopted_at) {
|
|
235
|
+
return this.injections.writeLoopHintAdoption(session_id, adopted_at);
|
|
236
|
+
}
|
|
237
|
+
/** LOOP HINT 采纳率读路径(decision e7d13697)。See InjectionOperations.countLoopHintAdoption. */
|
|
238
|
+
countLoopHintAdoption(sinceIso) {
|
|
239
|
+
return this.injections.countLoopHintAdoption(sinceIso);
|
|
240
|
+
}
|
|
125
241
|
// ── Task operations ─────────────────────────────────────────────────
|
|
126
242
|
writeTask(task) {
|
|
127
243
|
this.tasks.writeTask(task);
|
|
128
244
|
}
|
|
245
|
+
/** decision f47c2c90 (二期B): idempotent parent link. See TaskOperations.setTaskParent. */
|
|
246
|
+
setTaskParent(taskId, parentTaskId) {
|
|
247
|
+
this.tasks.setTaskParent(taskId, parentTaskId);
|
|
248
|
+
}
|
|
249
|
+
/** decision f47c2c90 (二期B): triple-gate parent candidate lookup. See TaskOperations.getMostRecentUserTaskBefore. */
|
|
250
|
+
getMostRecentUserTaskBefore(opts) {
|
|
251
|
+
return this.tasks.getMostRecentUserTaskBefore(opts);
|
|
252
|
+
}
|
|
253
|
+
/** decision f47c2c90 (二期B): parent-chain spawn aggregation. See TaskOperations.queryParentTaskChainSpawns. */
|
|
254
|
+
queryParentTaskChainSpawns(anchorTaskId) {
|
|
255
|
+
return this.tasks.queryParentTaskChainSpawns(anchorTaskId);
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* decision ed5c3e93 (per-turn human input): read plaintext UserPromptSubmit
|
|
259
|
+
* user_prompt rows for a set of tasks. See TaskOperations.queryUserPromptsByTaskIds.
|
|
260
|
+
*/
|
|
261
|
+
queryUserPromptsByTaskIds(taskIds) {
|
|
262
|
+
return this.tasks.queryUserPromptsByTaskIds(taskIds);
|
|
263
|
+
}
|
|
129
264
|
updateTask(taskId, updates) {
|
|
130
265
|
this.tasks.updateTask(taskId, updates);
|
|
131
266
|
}
|
|
132
267
|
linkEventToTask(taskId, eventId) {
|
|
133
268
|
this.tasks.linkEventToTask(taskId, eventId);
|
|
134
269
|
}
|
|
270
|
+
/**
|
|
271
|
+
* Task-tracking overhaul (2026-05-27 spec §3.3 Q3): pure-attachment
|
|
272
|
+
* variant — see TaskOperations.attachEventToTask.
|
|
273
|
+
*/
|
|
274
|
+
attachEventToTask(taskId, eventId) {
|
|
275
|
+
this.tasks.attachEventToTask(taskId, eventId);
|
|
276
|
+
}
|
|
135
277
|
queryTasks(filter = {}) {
|
|
136
278
|
return this.tasks.queryTasks(filter);
|
|
137
279
|
}
|
|
280
|
+
/**
|
|
281
|
+
* Orphan-event robustness fix (2026-06-01): direct active-user-task lookup.
|
|
282
|
+
* See TaskOperations.getActiveUserTask.
|
|
283
|
+
*/
|
|
284
|
+
getActiveUserTask(sessionId) {
|
|
285
|
+
return this.tasks.getActiveUserTask(sessionId);
|
|
286
|
+
}
|
|
287
|
+
/** decision c6613590 P0 缺陷 B: PK active-status check. See TaskOperations.isTaskActive. */
|
|
288
|
+
isTaskActive(taskId) {
|
|
289
|
+
return this.tasks.isTaskActive(taskId);
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Orphan-event robustness fix (2026-06-01): all sessions with an active user
|
|
293
|
+
* task — drives TaskSegmenter.hydrateActiveTasks. See
|
|
294
|
+
* TaskOperations.queryActiveUserTaskSessions.
|
|
295
|
+
*/
|
|
296
|
+
queryActiveUserTaskSessions() {
|
|
297
|
+
return this.tasks.queryActiveUserTaskSessions();
|
|
298
|
+
}
|
|
138
299
|
queryTasksFiltered(filter = {}) {
|
|
139
300
|
return this.tasks.queryTasksFiltered(filter);
|
|
140
301
|
}
|
|
@@ -146,21 +307,145 @@ export class SQLiteStorage extends EventEmitter {
|
|
|
146
307
|
return this.tasks.countTasksByRange(opts);
|
|
147
308
|
}
|
|
148
309
|
getTaskEventIds(taskId) { return this.tasks.getTaskEventIds(taskId); }
|
|
310
|
+
queryTaskIdsByEventIds(eventIds) {
|
|
311
|
+
return this.tasks.queryTaskIdsByEventIds(eventIds);
|
|
312
|
+
}
|
|
313
|
+
// ── decision 265f59d5: LLM task-boundary re-attribution ──
|
|
314
|
+
getTaskUserPrompts(taskId, limit) {
|
|
315
|
+
return this.tasks.getTaskUserPrompts(taskId, limit);
|
|
316
|
+
}
|
|
317
|
+
isLlmClassified(taskId) {
|
|
318
|
+
return this.tasks.isLlmClassified(taskId);
|
|
319
|
+
}
|
|
320
|
+
markLlmClassified(taskId, atIso) {
|
|
321
|
+
this.tasks.markLlmClassified(taskId, atIso);
|
|
322
|
+
}
|
|
323
|
+
reattributePromptToNewTask(opts) {
|
|
324
|
+
return this.tasks.reattributePromptToNewTask(opts);
|
|
325
|
+
}
|
|
149
326
|
completeStaleActiveTasks(idleMinutes) {
|
|
150
327
|
return this.tasks.completeStaleActiveTasks(idleMinutes);
|
|
151
328
|
}
|
|
329
|
+
/** E2E link fix (P1, 2026-05-25): tasks left unclassified by TaskSegmenter. */
|
|
330
|
+
queryIdleUnclassifiedTasks(sessionId) {
|
|
331
|
+
return this.tasks.queryIdleUnclassifiedTasks(sessionId);
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Outcome classifier (spec 1100 v2): count a task's Edit/Write intent
|
|
335
|
+
* events — drives the `edit_intent_count` signal (success vs answered split).
|
|
336
|
+
*/
|
|
337
|
+
countEditIntentEventsByTask(taskId) {
|
|
338
|
+
return this.tasks.countEditIntentEventsByTask(taskId);
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Outcome classifier (spec 1100 v2): count a SESSION's Edit/Write intent
|
|
342
|
+
* events — session-level `edit_intent_count` signal.
|
|
343
|
+
*/
|
|
344
|
+
countEditIntentEventsBySession(sessionId) {
|
|
345
|
+
return this.events.countEditIntentEventsBySession(sessionId);
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Task-tracking overhaul (2026-05-27 spec §3.3) — Bug 3 orphan recovery.
|
|
349
|
+
* See TaskOperations.findRecentCompletedTaskForOrphan.
|
|
350
|
+
*/
|
|
351
|
+
findRecentCompletedTaskForOrphan(opts) {
|
|
352
|
+
return this.tasks.findRecentCompletedTaskForOrphan(opts);
|
|
353
|
+
}
|
|
152
354
|
getTask(taskId) {
|
|
153
355
|
return this.tasks.getTask(taskId);
|
|
154
356
|
}
|
|
357
|
+
/** Task-tracking deep fix (2026-05-27 spec §3.A): smart orphan-recovery without a fixed window. */
|
|
358
|
+
findCompletedTaskForOrphanSmart(opts) {
|
|
359
|
+
return this.tasks.findCompletedTaskForOrphanSmart(opts);
|
|
360
|
+
}
|
|
155
361
|
queryEventsByTaskId(taskId, opts) {
|
|
156
362
|
return this.tasks.queryEventsByTaskId(taskId, opts);
|
|
157
363
|
}
|
|
364
|
+
/** Task-tracking deep fix (2026-05-27 spec §5.C): UNION fallback query with linked field. */
|
|
365
|
+
queryEventsByTaskIdWithFallback(taskId, opts) {
|
|
366
|
+
return this.tasks.queryEventsByTaskIdWithFallback(taskId, opts);
|
|
367
|
+
}
|
|
368
|
+
/** spec 1551 §6.D: Orphan stats for dry-run display. */
|
|
369
|
+
queryOrphanStats() {
|
|
370
|
+
return this.tasks.queryOrphanStats();
|
|
371
|
+
}
|
|
372
|
+
/** spec 1551 §6.D: Sample attachable pairs for dry-run display. */
|
|
373
|
+
sampleAttachablePairs(limit) {
|
|
374
|
+
return this.tasks.sampleAttachablePairs(limit);
|
|
375
|
+
}
|
|
376
|
+
/** spec 1551 §6.D.3: Apply backfill atomically. Returns rows inserted. */
|
|
377
|
+
backfillOrphans() {
|
|
378
|
+
return this.tasks.backfillOrphans();
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* B+ spec: 30min smart window 续命 — reactivate a completed task.
|
|
382
|
+
* Sets status='active', end_time=NULL. start_time is not touched.
|
|
383
|
+
* See TaskOperations.resumeTask.
|
|
384
|
+
*/
|
|
385
|
+
resumeTask(taskId) {
|
|
386
|
+
this.tasks.resumeTask(taskId);
|
|
387
|
+
}
|
|
158
388
|
queryInjectionsByTaskId(taskId) {
|
|
159
389
|
return this.tasks.queryInjectionsByTaskId(taskId);
|
|
160
390
|
}
|
|
161
391
|
querySkillInvocationsByTaskWindow(taskId, opts) {
|
|
162
392
|
return this.tasks.querySkillInvocationsByTaskWindow(taskId, opts);
|
|
163
393
|
}
|
|
394
|
+
/** Agent 主动 pull 的 KB(任务窗内,按 project+时间窗+reason scope)。See TaskOperations.queryTaskKbPulls. */
|
|
395
|
+
queryTaskKbPulls(taskId, opts) {
|
|
396
|
+
return this.tasks.queryTaskKbPulls(taskId, opts);
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Task-centric agent board projection (v3). See TaskOperations.queryAgentBoardTasks.
|
|
400
|
+
*/
|
|
401
|
+
queryAgentBoardTasks(opts) {
|
|
402
|
+
return this.tasks.queryAgentBoardTasks(opts);
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Agent Board v3 — unbounded count companion (2026-05-26).
|
|
406
|
+
* Drives the "总任务数 (7d)" KPI without the lane LIMIT clipping the value.
|
|
407
|
+
*/
|
|
408
|
+
countAgentBoardTasks(opts) {
|
|
409
|
+
return this.tasks.countAgentBoardTasks(opts);
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Agent Board prompt-rows projection (decision b509fd91, 2026-06-08).
|
|
413
|
+
* One row = one user-prompt event; group_id = its task. See
|
|
414
|
+
* TaskOperations.queryAgentBoardPromptRows.
|
|
415
|
+
*/
|
|
416
|
+
queryAgentBoardPromptRows(opts) {
|
|
417
|
+
return this.tasks.queryAgentBoardPromptRows(opts);
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Unbounded prompt-row count companion (decision b509fd91). Drives the list
|
|
421
|
+
* paginator's total when ?rows=prompt. See countAgentBoardPromptRows.
|
|
422
|
+
*/
|
|
423
|
+
countAgentBoardPromptRows(opts) {
|
|
424
|
+
return this.tasks.countAgentBoardPromptRows(opts);
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Window-level distinct-task aggregates for the prompt-rows list view
|
|
428
|
+
* (2026-06-10 KPI 分页假象 fix). Same WHERE 口径 as countAgentBoardPromptRows;
|
|
429
|
+
* drives "总任务数 / 失败 / 平均时长" KPIs + outcome tab counts unbounded by
|
|
430
|
+
* the page LIMIT. See TaskOperations.queryAgentBoardPromptWindowAggregates.
|
|
431
|
+
*/
|
|
432
|
+
queryAgentBoardPromptWindowAggregates(opts) {
|
|
433
|
+
return this.tasks.queryAgentBoardPromptWindowAggregates(opts);
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* v6 Batch 1 (spec 1750 § B1-3): trivial task counter for DaemonObserverBadge.
|
|
437
|
+
* Counts `tasks WHERE is_noise=1 AND start_time >= sinceIso`.
|
|
438
|
+
*/
|
|
439
|
+
countTrivialTasksSince(sinceIso) {
|
|
440
|
+
return this.tasks.countTrivialTasksSince(sinceIso);
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Daily commit + task activity over a window. Drives /api/insights/commit-activity
|
|
444
|
+
* and HealthHomePage 30d Commit calendar without the agent-board LIMIT undercount.
|
|
445
|
+
*/
|
|
446
|
+
queryCommitActivityDaily(opts) {
|
|
447
|
+
return this.tasks.queryCommitActivityDaily(opts);
|
|
448
|
+
}
|
|
164
449
|
// ── Routing events ─────────────────────────────────────────────────────
|
|
165
450
|
writeRoutingEvent(record) {
|
|
166
451
|
return this.routing.writeRoutingEvent(record);
|
|
@@ -180,12 +465,20 @@ export class SQLiteStorage extends EventEmitter {
|
|
|
180
465
|
queryPendingRoutingEvents(ageMs) {
|
|
181
466
|
return this.routing.queryPendingRoutingEvents(ageMs);
|
|
182
467
|
}
|
|
468
|
+
/** Phase 2d pipeline-view batch helper. See RoutingOperations.queryBySessions. */
|
|
469
|
+
queryRoutingEventsBySessions(sessionIds) {
|
|
470
|
+
return this.routing.queryBySessions(sessionIds);
|
|
471
|
+
}
|
|
183
472
|
getRecentRoutingEvent(sessionId) {
|
|
184
473
|
return this.routing.getRecentRoutingEvent(sessionId);
|
|
185
474
|
}
|
|
186
475
|
getRecentPendingRoutingEvent(sessionId) {
|
|
187
476
|
return this.routing.getRecentPendingRoutingEvent(sessionId);
|
|
188
477
|
}
|
|
478
|
+
/** P3 (audit e888352d): re-label this session's still-pending routing rows as 'none' at Stop. */
|
|
479
|
+
markPendingRoutingEventsResolved(sessionId) {
|
|
480
|
+
return this.routing.markPendingRoutingEventsResolved(sessionId);
|
|
481
|
+
}
|
|
189
482
|
// ── Experiment assignments ─────────────────────────────────────────────
|
|
190
483
|
getExperimentAssignment(sessionId, experimentId) {
|
|
191
484
|
return this.routing.getExperimentAssignment(sessionId, experimentId);
|
|
@@ -196,26 +489,31 @@ export class SQLiteStorage extends EventEmitter {
|
|
|
196
489
|
queryExperimentStats(experimentId) {
|
|
197
490
|
return this.routing.queryExperimentStats(experimentId);
|
|
198
491
|
}
|
|
199
|
-
// ── Token usage ────────────────────────────────────────────────────────
|
|
200
|
-
writeTokenUsage(params) {
|
|
201
|
-
this.tokenUsage.writeTokenUsage(params);
|
|
202
|
-
}
|
|
203
|
-
getTokenUsageBySession(session_id) {
|
|
204
|
-
return this.tokenUsage.getTokenUsageBySession(session_id);
|
|
205
|
-
}
|
|
206
|
-
listTokenUsage(filter = {}) {
|
|
207
|
-
return this.tokenUsage.listTokenUsage(filter);
|
|
208
|
-
}
|
|
209
492
|
// ── Skill invocations ──────────────────────────────────────────────────
|
|
210
493
|
writeSkillInvocation(row) {
|
|
211
494
|
this.skills.writeSkillInvocation(row);
|
|
212
495
|
}
|
|
496
|
+
// decision 39839e30 Part 2: one-shot project_path back-fill seam (also run at
|
|
497
|
+
// boot by base.backfillSkillInvocationsProjectPathIfNeeded).
|
|
498
|
+
backfillSkillInvocationProjectPath() {
|
|
499
|
+
return this.skills.backfillSkillInvocationProjectPath();
|
|
500
|
+
}
|
|
213
501
|
querySkillInvocations(filter = {}) {
|
|
214
502
|
return this.skills.querySkillInvocations(filter);
|
|
215
503
|
}
|
|
216
504
|
aggregateSkillInvocationsBySkill(filter) {
|
|
217
505
|
return this.skills.aggregateSkillInvocationsBySkill(filter);
|
|
218
506
|
}
|
|
507
|
+
// ── audit #2 (decision f61b8a0c): injected vs really-invoked split ──
|
|
508
|
+
aggregateSkillInjectVsInvoke(filter) {
|
|
509
|
+
return this.skills.aggregateSkillInjectVsInvoke(filter);
|
|
510
|
+
}
|
|
511
|
+
countRealSkillCalls(filter) {
|
|
512
|
+
return this.skills.countRealSkillCalls(filter);
|
|
513
|
+
}
|
|
514
|
+
countGenuineSkillInvocations(filter) {
|
|
515
|
+
return this.skills.countGenuineSkillInvocations(filter);
|
|
516
|
+
}
|
|
219
517
|
queryWorkflowProgress(filter = {}) {
|
|
220
518
|
return this.skills.queryWorkflowProgress(filter);
|
|
221
519
|
}
|
|
@@ -230,14 +528,223 @@ export class SQLiteStorage extends EventEmitter {
|
|
|
230
528
|
queryDistinctSkillIdsBySession(session_id) {
|
|
231
529
|
return this.skills.queryDistinctSkillIdsBySession(session_id);
|
|
232
530
|
}
|
|
531
|
+
// ── Skill usefulness feedback (decision d24cd3a2 P0) ──
|
|
532
|
+
writeSkillUsefulness(args) {
|
|
533
|
+
return this.skills.writeSkillUsefulness(args);
|
|
534
|
+
}
|
|
535
|
+
aggregateSkillUsefulness(filter = {}) {
|
|
536
|
+
return this.skills.aggregateSkillUsefulness(filter);
|
|
537
|
+
}
|
|
538
|
+
// decision 234f1ad4 Phase 1: (agent,skill) pairing usefulness (reason-prefix proxy key).
|
|
539
|
+
aggregateSkillUsefulnessByAgent(filter = {}) {
|
|
540
|
+
return this.skills.aggregateSkillUsefulnessByAgent(filter);
|
|
541
|
+
}
|
|
233
542
|
// ── Maintenance ────────────────────────────────────────────────────────
|
|
234
|
-
/** @deprecated 仅清 events 表。新代码请用 `cleanOldData(days)`。 */
|
|
235
|
-
cleanOldEvents(daysToKeep = 30) { return this.maintenance.cleanOldEvents(daysToKeep); }
|
|
236
543
|
cleanOldData(daysToKeep = 30) {
|
|
237
544
|
return this.maintenance.cleanOldData(daysToKeep);
|
|
238
545
|
}
|
|
239
546
|
runMaintenance(maxSizeMb) { this.maintenance.runMaintenance(maxSizeMb); }
|
|
240
547
|
vacuum() { this.maintenance.vacuum(); }
|
|
548
|
+
/**
|
|
549
|
+
* Reclaim up to `maxPages` free pages from the auto_vacuum=INCREMENTAL
|
|
550
|
+
* freelist. See MaintenanceOperations.incrementalVacuum.
|
|
551
|
+
*/
|
|
552
|
+
incrementalVacuum(maxPages = 1000) {
|
|
553
|
+
return this.maintenance.incrementalVacuum(maxPages);
|
|
554
|
+
}
|
|
555
|
+
// ── KB Telemetry (v9.5) ────────────────────────────────────────────────
|
|
556
|
+
writeKbQueryLog(entry) {
|
|
557
|
+
this.knowledge.writeKbQueryLog(entry);
|
|
558
|
+
}
|
|
559
|
+
queryKbQueryLog(filter) {
|
|
560
|
+
return this.knowledge.queryKbQueryLog(filter);
|
|
561
|
+
}
|
|
562
|
+
// ── KB usefulness feedback (decision 096309e4 batch 1 item ①) ──
|
|
563
|
+
writeKbUsefulness(args) {
|
|
564
|
+
return this.knowledge.writeKbUsefulness(args);
|
|
565
|
+
}
|
|
566
|
+
aggregateKbUsefulness(filter = {}) {
|
|
567
|
+
return this.knowledge.aggregateKbUsefulness(filter);
|
|
568
|
+
}
|
|
569
|
+
// decision 234f1ad4 Phase 1: per-agent KB usefulness (reason-prefix proxy key).
|
|
570
|
+
aggregateKbUsefulnessByAgent(filter = {}) {
|
|
571
|
+
return this.knowledge.aggregateKbUsefulnessByAgent(filter);
|
|
572
|
+
}
|
|
573
|
+
queryKbStats(projectPath) {
|
|
574
|
+
return this.knowledge.queryKbStats(projectPath);
|
|
575
|
+
}
|
|
576
|
+
queryAgentKbPulls(filter) {
|
|
577
|
+
return this.knowledge.queryAgentKbPulls(filter);
|
|
578
|
+
}
|
|
579
|
+
/** Genuine agent KB pull count for the「KB 调用」KPI (decision 64d37b1d). */
|
|
580
|
+
countAgentKbPulls(filter) {
|
|
581
|
+
return this.knowledge.countAgentKbPulls(filter);
|
|
582
|
+
}
|
|
583
|
+
queryKbCitedPages(filter) {
|
|
584
|
+
return this.knowledge.queryKbCitedPages(filter);
|
|
585
|
+
}
|
|
586
|
+
writeKbBuildLog(entry) {
|
|
587
|
+
this.knowledge.writeKbBuildLog(entry);
|
|
588
|
+
}
|
|
589
|
+
updateKbBuildLog(buildId, updates) {
|
|
590
|
+
this.knowledge.updateKbBuildLog(buildId, updates);
|
|
591
|
+
}
|
|
592
|
+
queryLastKbBuild(projectPath) {
|
|
593
|
+
return this.knowledge.queryLastKbBuild(projectPath);
|
|
594
|
+
}
|
|
595
|
+
listKnownProjectPaths() {
|
|
596
|
+
return this.knowledge.listKnownProjectPaths();
|
|
597
|
+
}
|
|
598
|
+
queryLastEventAtPerProject() {
|
|
599
|
+
return this.knowledge.queryLastEventAtPerProject();
|
|
600
|
+
}
|
|
601
|
+
queryKbUsageStats(projectPath, days) {
|
|
602
|
+
return this.knowledge.queryKbUsageStats(projectPath, days);
|
|
603
|
+
}
|
|
604
|
+
// ── Forge Config (v9.x Phase 0 feature flags) ──────────────────────────
|
|
605
|
+
readConfig(key) { return this.forgeConfig.readConfig(key); }
|
|
606
|
+
writeConfig(key, value) { this.forgeConfig.writeConfig(key, value); }
|
|
607
|
+
writeConfigIfMissing(key, value) {
|
|
608
|
+
return this.forgeConfig.writeConfigIfMissing(key, value);
|
|
609
|
+
}
|
|
610
|
+
listConfig() { return this.forgeConfig.listConfig(); }
|
|
611
|
+
deleteConfig(key) { return this.forgeConfig.deleteConfig(key); }
|
|
612
|
+
// ── Tool Intercepts (v9.x Phase 1 PreToolUse rules) ────────────────────
|
|
613
|
+
writeToolIntercept(record) {
|
|
614
|
+
return this.toolIntercepts.writeToolIntercept(record);
|
|
615
|
+
}
|
|
616
|
+
queryToolIntercepts(filter = {}) {
|
|
617
|
+
return this.toolIntercepts.queryToolIntercepts(filter);
|
|
618
|
+
}
|
|
619
|
+
countToolIntercepts(session_id) {
|
|
620
|
+
return this.toolIntercepts.countToolIntercepts(session_id);
|
|
621
|
+
}
|
|
622
|
+
/**
|
|
623
|
+
* Phase 2 metrics rollup alias. Same as countToolIntercepts but matches the
|
|
624
|
+
* "countXBySession" naming convention used by other Phase 2 helpers.
|
|
625
|
+
*/
|
|
626
|
+
countToolInterceptsBySession(session_id) {
|
|
627
|
+
return this.toolIntercepts.countToolIntercepts(session_id);
|
|
628
|
+
}
|
|
629
|
+
/** audit F4: PostToolUse back-fills obeyed/override on a prior deny row. */
|
|
630
|
+
updateToolInterceptOutcome(id, outcome) {
|
|
631
|
+
this.toolIntercepts.updateOutcome(id, outcome);
|
|
632
|
+
}
|
|
633
|
+
/** Phase 2d pipeline-view batch helper. See ToolInterceptsOperations.queryBySessions. */
|
|
634
|
+
queryToolInterceptsBySessions(sessionIds) {
|
|
635
|
+
return this.toolIntercepts.queryBySessions(sessionIds);
|
|
636
|
+
}
|
|
637
|
+
// ── Workflow Recommendations — retired 2026-06-10 (decision fe6f98cd).
|
|
638
|
+
// The `workflow_recommendations` table is preserved in existing DBs for
|
|
639
|
+
// audit; all facade read/write methods were deleted with their consumers.
|
|
640
|
+
// ── Decisions (decision-flow-overhaul 2026-05-28) ──────────────────────
|
|
641
|
+
writeDecision(record) {
|
|
642
|
+
return this.decisions.writeDecision(record);
|
|
643
|
+
}
|
|
644
|
+
getDecision(id) {
|
|
645
|
+
return this.decisions.getDecision(id);
|
|
646
|
+
}
|
|
647
|
+
updateDecision(id, update) {
|
|
648
|
+
this.decisions.updateDecision(id, update);
|
|
649
|
+
}
|
|
650
|
+
/**
|
|
651
|
+
* Back-fill a decision's implementation outcome (decision-maker optimization
|
|
652
|
+
* Batch 1.1, decision a5d5a85b). Independent of approval status; throws on an
|
|
653
|
+
* invalid outcome value.
|
|
654
|
+
*/
|
|
655
|
+
writeDecisionOutcome(id, outcome) {
|
|
656
|
+
this.decisions.writeDecisionOutcome(id, outcome);
|
|
657
|
+
}
|
|
658
|
+
approveDecision(id, approved_by, approved_at_iso, options) {
|
|
659
|
+
this.decisions.approveDecision(id, approved_by, approved_at_iso, options);
|
|
660
|
+
}
|
|
661
|
+
bypassDecision(id, approved_by) {
|
|
662
|
+
this.decisions.bypassDecision(id, approved_by);
|
|
663
|
+
}
|
|
664
|
+
expireOldDecisions(now_iso) {
|
|
665
|
+
return this.decisions.expireOldRows(now_iso);
|
|
666
|
+
}
|
|
667
|
+
getMostRecentPendingDecision(session_id, within_seconds, project_path) {
|
|
668
|
+
return this.decisions.getMostRecentPending(session_id, within_seconds, project_path);
|
|
669
|
+
}
|
|
670
|
+
listDecisions(filter) {
|
|
671
|
+
return this.decisions.listDecisions(filter);
|
|
672
|
+
}
|
|
673
|
+
/**
|
|
674
|
+
* v6 Batch 1 (spec 1750 § B1-3): hint counter for DaemonObserverBadge.
|
|
675
|
+
* Counts `decisions WHERE created_at >= sinceIso`.
|
|
676
|
+
*/
|
|
677
|
+
countDecisionsSince(sinceIso) {
|
|
678
|
+
return this.decisions.countDecisionsSince(sinceIso);
|
|
679
|
+
}
|
|
680
|
+
/**
|
|
681
|
+
* Option B (decision b95e0956, 2026-05-29) — continuation detection helper.
|
|
682
|
+
* Returns the N most-recent resolved decisions for a session, newest-first.
|
|
683
|
+
*/
|
|
684
|
+
listRecentResolvedDecisions(session_id, limit) {
|
|
685
|
+
return this.decisions.listRecentResolved(session_id, limit);
|
|
686
|
+
}
|
|
687
|
+
/**
|
|
688
|
+
* outcome-backfill soft-gate (decision 1ac6fc31, 2026-06-04) — resolved
|
|
689
|
+
* decisions for a session/project whose outcome has not been back-filled.
|
|
690
|
+
* Backs the OutcomeNudge soft-gate (Option A threshold + degraded Option B).
|
|
691
|
+
*/
|
|
692
|
+
listResolvedUnfilledDecisions(session_id, project_path) {
|
|
693
|
+
return this.decisions.listResolvedUnfilled(session_id, project_path);
|
|
694
|
+
}
|
|
695
|
+
// ── Spec-kind facade (C1, 2026-06-02 — absorbs pending_specs) ──────────
|
|
696
|
+
registerSpec(record) {
|
|
697
|
+
return this.decisions.registerSpec(record);
|
|
698
|
+
}
|
|
699
|
+
findSpecByTokenAndSession(token, session_id) {
|
|
700
|
+
return this.decisions.findSpecByTokenAndSession(token, session_id);
|
|
701
|
+
}
|
|
702
|
+
findSpecByPath(spec_path) {
|
|
703
|
+
return this.decisions.findSpecByPath(spec_path);
|
|
704
|
+
}
|
|
705
|
+
markSpecApproved(id, approved_at_iso) {
|
|
706
|
+
this.decisions.markSpecApproved(id, approved_at_iso);
|
|
707
|
+
}
|
|
708
|
+
listSpecsBySessionPending(session_id, limit) {
|
|
709
|
+
return this.decisions.listSpecsBySessionPending(session_id, limit);
|
|
710
|
+
}
|
|
711
|
+
querySpecsBySessions(sessionIds) {
|
|
712
|
+
return this.decisions.querySpecsBySessions(sessionIds);
|
|
713
|
+
}
|
|
714
|
+
expireOldSpecs(now_iso) {
|
|
715
|
+
return this.decisions.expireOldSpecs(now_iso);
|
|
716
|
+
}
|
|
717
|
+
// ── Feedback / Weekly-Report Aggregates (F-medium #1, 2026-05-26) ─────
|
|
718
|
+
// Down-sunk from FeedbackAggregator. Aggregator now consumes these facade
|
|
719
|
+
// methods instead of calling getDatabase() directly. Keeps base.ts:402-413
|
|
720
|
+
// contract intact (no db.prepare outside Operations).
|
|
721
|
+
queryInterceptObeyedSummary(sinceIso, projectPath) {
|
|
722
|
+
return this.feedback.queryInterceptObeyedSummary(sinceIso, projectPath);
|
|
723
|
+
}
|
|
724
|
+
queryInterceptDecisionCounts(sinceIso) {
|
|
725
|
+
return this.feedback.queryInterceptDecisionCounts(sinceIso);
|
|
726
|
+
}
|
|
727
|
+
queryTopInterceptRuleViolations(sinceIso, limit) {
|
|
728
|
+
return this.feedback.queryTopInterceptRuleViolations(sinceIso, limit);
|
|
729
|
+
}
|
|
730
|
+
queryInterceptRuleAggregates(sinceIso) {
|
|
731
|
+
return this.feedback.queryInterceptRuleAggregates(sinceIso);
|
|
732
|
+
}
|
|
733
|
+
countKbInjections(sinceIso, projectPath) {
|
|
734
|
+
return this.feedback.countKbInjections(sinceIso, projectPath);
|
|
735
|
+
}
|
|
736
|
+
queryKbInjectionMetadata(sinceIso) {
|
|
737
|
+
return this.feedback.queryKbInjectionMetadata(sinceIso);
|
|
738
|
+
}
|
|
739
|
+
queryTopSkillInvocations(sinceMillis, limit) {
|
|
740
|
+
return this.feedback.queryTopSkillInvocations(sinceMillis, limit);
|
|
741
|
+
}
|
|
742
|
+
querySkillAggregates(sinceMillis) {
|
|
743
|
+
return this.feedback.querySkillAggregates(sinceMillis);
|
|
744
|
+
}
|
|
745
|
+
querySessionOutcomeDistribution(sinceIso, projectPath) {
|
|
746
|
+
return this.feedback.querySessionOutcomeDistribution(sinceIso, projectPath);
|
|
747
|
+
}
|
|
241
748
|
close() {
|
|
242
749
|
try {
|
|
243
750
|
this.base.getDatabase().close();
|