@winspan/claude-forge 8.54.4 → 9.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DEVELOPMENT.md +649 -33
- package/README.md +154 -16
- package/dist/catalogs/agents.json +72 -0
- package/dist/catalogs/skills.json +194 -0
- package/dist/claudemd/claudemd-generator.d.ts +45 -45
- package/dist/claudemd/claudemd-generator.d.ts.map +1 -1
- package/dist/claudemd/claudemd-generator.js +128 -449
- package/dist/claudemd/claudemd-generator.js.map +1 -1
- package/dist/claudemd/index.d.ts +14 -4
- package/dist/claudemd/index.d.ts.map +1 -1
- package/dist/claudemd/index.js +15 -4
- package/dist/claudemd/index.js.map +1 -1
- package/dist/claudemd/resume-manager.d.ts.map +1 -1
- package/dist/claudemd/resume-manager.js +37 -9
- package/dist/claudemd/resume-manager.js.map +1 -1
- package/dist/claudemd/templates/swarm-protocol.md +35 -186
- package/dist/claudemd/violations-manager.d.ts +40 -0
- package/dist/claudemd/violations-manager.d.ts.map +1 -0
- package/dist/claudemd/violations-manager.js +106 -0
- package/dist/claudemd/violations-manager.js.map +1 -0
- package/dist/cli/commands/admin.d.ts +15 -0
- package/dist/cli/commands/admin.d.ts.map +1 -0
- package/dist/cli/commands/admin.js +177 -0
- package/dist/cli/commands/admin.js.map +1 -0
- package/dist/cli/commands/agents.d.ts +18 -0
- package/dist/cli/commands/agents.d.ts.map +1 -0
- package/dist/cli/commands/agents.js +160 -0
- package/dist/cli/commands/agents.js.map +1 -0
- package/dist/cli/commands/bypass.d.ts +18 -0
- package/dist/cli/commands/bypass.d.ts.map +1 -0
- package/dist/cli/commands/bypass.js +87 -0
- package/dist/cli/commands/bypass.js.map +1 -0
- package/dist/cli/commands/claudemd.d.ts +60 -0
- package/dist/cli/commands/claudemd.d.ts.map +1 -1
- package/dist/cli/commands/claudemd.js +174 -37
- package/dist/cli/commands/claudemd.js.map +1 -1
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/config.js +94 -1
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/daemon.d.ts +39 -0
- package/dist/cli/commands/daemon.d.ts.map +1 -1
- package/dist/cli/commands/daemon.js +167 -20
- package/dist/cli/commands/daemon.js.map +1 -1
- package/dist/cli/commands/decisions.d.ts +129 -0
- package/dist/cli/commands/decisions.d.ts.map +1 -0
- package/dist/cli/commands/decisions.js +669 -0
- package/dist/cli/commands/decisions.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +29 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +124 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/entropy.d.ts +35 -0
- package/dist/cli/commands/entropy.d.ts.map +1 -0
- package/dist/cli/commands/entropy.js +121 -0
- package/dist/cli/commands/entropy.js.map +1 -0
- package/dist/cli/commands/executions.d.ts +1 -0
- package/dist/cli/commands/executions.d.ts.map +1 -1
- package/dist/cli/commands/executions.js +10 -1
- package/dist/cli/commands/executions.js.map +1 -1
- package/dist/cli/commands/fix.d.ts +31 -0
- package/dist/cli/commands/fix.d.ts.map +1 -0
- package/dist/cli/commands/fix.js +108 -0
- package/dist/cli/commands/fix.js.map +1 -0
- package/dist/cli/commands/governance.d.ts +21 -0
- package/dist/cli/commands/governance.d.ts.map +1 -0
- package/dist/cli/commands/governance.js +60 -0
- package/dist/cli/commands/governance.js.map +1 -0
- package/dist/cli/commands/init.d.ts +27 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +158 -146
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/insights-goal-check.d.ts +50 -0
- package/dist/cli/commands/insights-goal-check.d.ts.map +1 -0
- package/dist/cli/commands/insights-goal-check.js +318 -0
- package/dist/cli/commands/insights-goal-check.js.map +1 -0
- package/dist/cli/commands/insights.d.ts +15 -0
- package/dist/cli/commands/insights.d.ts.map +1 -0
- package/dist/cli/commands/insights.js +127 -0
- package/dist/cli/commands/insights.js.map +1 -0
- package/dist/cli/commands/knowledge.d.ts +66 -0
- package/dist/cli/commands/knowledge.d.ts.map +1 -0
- package/dist/cli/commands/knowledge.js +897 -0
- package/dist/cli/commands/knowledge.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +0 -12
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +11 -5
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/menu.d.ts.map +1 -1
- package/dist/cli/commands/menu.js +10 -184
- package/dist/cli/commands/menu.js.map +1 -1
- package/dist/cli/commands/project.d.ts +98 -0
- package/dist/cli/commands/project.d.ts.map +1 -0
- package/dist/cli/commands/project.js +382 -0
- package/dist/cli/commands/project.js.map +1 -0
- package/dist/cli/commands/skills.d.ts.map +1 -1
- package/dist/cli/commands/skills.js +14 -128
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/spec.d.ts +40 -0
- package/dist/cli/commands/spec.d.ts.map +1 -0
- package/dist/cli/commands/spec.js +49 -0
- package/dist/cli/commands/spec.js.map +1 -0
- package/dist/cli/commands/stats.d.ts.map +1 -1
- package/dist/cli/commands/stats.js +3 -2
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +17 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/trace.d.ts.map +1 -1
- package/dist/cli/commands/trace.js +4 -9
- package/dist/cli/commands/trace.js.map +1 -1
- package/dist/cli/commands/violations.d.ts +14 -0
- package/dist/cli/commands/violations.d.ts.map +1 -0
- package/dist/cli/commands/violations.js +43 -0
- package/dist/cli/commands/violations.js.map +1 -0
- package/dist/cli/index.js +26 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/hook-manager.d.ts +1 -1
- package/dist/cli/init/hook-manager.d.ts.map +1 -1
- package/dist/cli/init/hook-manager.js +6 -0
- package/dist/cli/init/hook-manager.js.map +1 -1
- package/dist/cli/utils/resolve-session.d.ts +32 -0
- package/dist/cli/utils/resolve-session.d.ts.map +1 -0
- package/dist/cli/utils/resolve-session.js +39 -0
- package/dist/cli/utils/resolve-session.js.map +1 -0
- package/dist/core/config.d.ts +4 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +11 -23
- package/dist/core/config.js.map +1 -1
- package/dist/core/constants.d.ts +14 -13
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +20 -13
- package/dist/core/constants.js.map +1 -1
- package/dist/core/diagnostics/checks.d.ts +151 -0
- package/dist/core/diagnostics/checks.d.ts.map +1 -0
- package/dist/core/diagnostics/checks.js +765 -0
- package/dist/core/diagnostics/checks.js.map +1 -0
- package/dist/core/diagnostics/daemon-status.d.ts +77 -0
- package/dist/core/diagnostics/daemon-status.d.ts.map +1 -0
- package/dist/core/diagnostics/daemon-status.js +113 -0
- package/dist/core/diagnostics/daemon-status.js.map +1 -0
- package/dist/core/diagnostics/entropy-checks.d.ts +82 -0
- package/dist/core/diagnostics/entropy-checks.d.ts.map +1 -0
- package/dist/core/diagnostics/entropy-checks.js +395 -0
- package/dist/core/diagnostics/entropy-checks.js.map +1 -0
- package/dist/core/diagnostics/fix-runner.d.ts +54 -0
- package/dist/core/diagnostics/fix-runner.d.ts.map +1 -0
- package/dist/core/diagnostics/fix-runner.js +90 -0
- package/dist/core/diagnostics/fix-runner.js.map +1 -0
- package/dist/core/diagnostics/knip-runner.d.ts +49 -0
- package/dist/core/diagnostics/knip-runner.d.ts.map +1 -0
- package/dist/core/diagnostics/knip-runner.js +100 -0
- package/dist/core/diagnostics/knip-runner.js.map +1 -0
- package/dist/core/diagnostics/markers.d.ts +96 -0
- package/dist/core/diagnostics/markers.d.ts.map +1 -0
- package/dist/core/diagnostics/markers.js +153 -0
- package/dist/core/diagnostics/markers.js.map +1 -0
- package/dist/core/governance/global-inject.d.ts +60 -0
- package/dist/core/governance/global-inject.d.ts.map +1 -0
- package/dist/core/governance/global-inject.js +129 -0
- package/dist/core/governance/global-inject.js.map +1 -0
- package/dist/core/queue/index.d.ts +16 -3
- package/dist/core/queue/index.d.ts.map +1 -1
- package/dist/core/queue/index.js +14 -3
- package/dist/core/queue/index.js.map +1 -1
- package/dist/core/storage/base.d.ts +158 -0
- package/dist/core/storage/base.d.ts.map +1 -1
- package/dist/core/storage/base.js +570 -0
- package/dist/core/storage/base.js.map +1 -1
- package/dist/core/storage/codec/tool-input-codec.d.ts +93 -0
- package/dist/core/storage/codec/tool-input-codec.d.ts.map +1 -0
- package/dist/core/storage/codec/tool-input-codec.js +159 -0
- package/dist/core/storage/codec/tool-input-codec.js.map +1 -0
- package/dist/core/storage/decisions.d.ts +362 -0
- package/dist/core/storage/decisions.d.ts.map +1 -0
- package/dist/core/storage/decisions.js +502 -0
- package/dist/core/storage/decisions.js.map +1 -0
- package/dist/core/storage/events.d.ts +112 -8
- package/dist/core/storage/events.d.ts.map +1 -1
- package/dist/core/storage/events.js +390 -39
- package/dist/core/storage/events.js.map +1 -1
- package/dist/core/storage/feedback.d.ts +131 -0
- package/dist/core/storage/feedback.d.ts.map +1 -0
- package/dist/core/storage/feedback.js +187 -0
- package/dist/core/storage/feedback.js.map +1 -0
- package/dist/core/storage/forge-config.d.ts +40 -0
- package/dist/core/storage/forge-config.d.ts.map +1 -0
- package/dist/core/storage/forge-config.js +65 -0
- package/dist/core/storage/forge-config.js.map +1 -0
- package/dist/core/storage/injections.d.ts +28 -0
- package/dist/core/storage/injections.d.ts.map +1 -1
- package/dist/core/storage/injections.js +62 -5
- package/dist/core/storage/injections.js.map +1 -1
- package/dist/core/storage/knowledge.d.ts +106 -0
- package/dist/core/storage/knowledge.d.ts.map +1 -0
- package/dist/core/storage/knowledge.js +202 -0
- package/dist/core/storage/knowledge.js.map +1 -0
- package/dist/core/storage/maintenance.d.ts +36 -9
- package/dist/core/storage/maintenance.d.ts.map +1 -1
- package/dist/core/storage/maintenance.js +56 -24
- package/dist/core/storage/maintenance.js.map +1 -1
- package/dist/core/storage/pipeline-rollup.d.ts +117 -0
- package/dist/core/storage/pipeline-rollup.d.ts.map +1 -0
- package/dist/core/storage/pipeline-rollup.js +471 -0
- package/dist/core/storage/pipeline-rollup.js.map +1 -0
- package/dist/core/storage/routing.d.ts +16 -3
- package/dist/core/storage/routing.d.ts.map +1 -1
- package/dist/core/storage/routing.js +39 -8
- package/dist/core/storage/routing.js.map +1 -1
- package/dist/core/storage/rows.d.ts +50 -7
- package/dist/core/storage/rows.d.ts.map +1 -1
- package/dist/core/storage/schema.sql +302 -23
- package/dist/core/storage/sessions.d.ts +136 -0
- package/dist/core/storage/sessions.d.ts.map +1 -1
- package/dist/core/storage/sessions.js +351 -15
- package/dist/core/storage/sessions.js.map +1 -1
- package/dist/core/storage/skills.d.ts +1 -0
- package/dist/core/storage/skills.d.ts.map +1 -1
- package/dist/core/storage/skills.js +21 -6
- package/dist/core/storage/skills.js.map +1 -1
- package/dist/core/storage/sqlite.d.ts +253 -20
- package/dist/core/storage/sqlite.d.ts.map +1 -1
- package/dist/core/storage/sqlite.js +425 -16
- package/dist/core/storage/sqlite.js.map +1 -1
- package/dist/core/storage/tasks.d.ts +474 -2
- package/dist/core/storage/tasks.d.ts.map +1 -1
- package/dist/core/storage/tasks.js +1213 -18
- package/dist/core/storage/tasks.js.map +1 -1
- package/dist/core/storage/tool-intercepts.d.ts +69 -0
- package/dist/core/storage/tool-intercepts.d.ts.map +1 -0
- package/dist/core/storage/tool-intercepts.js +116 -0
- package/dist/core/storage/tool-intercepts.js.map +1 -0
- package/dist/core/storage/workflow-recommendations.d.ts +124 -0
- package/dist/core/storage/workflow-recommendations.d.ts.map +1 -0
- package/dist/core/storage/workflow-recommendations.js +274 -0
- package/dist/core/storage/workflow-recommendations.js.map +1 -0
- package/dist/core/types.d.ts +112 -17
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +12 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/utils/backup.d.ts +81 -0
- package/dist/core/utils/backup.d.ts.map +1 -0
- package/dist/core/utils/backup.js +98 -0
- package/dist/core/utils/backup.js.map +1 -0
- package/dist/core/utils/binary-paths.d.ts +92 -0
- package/dist/core/utils/binary-paths.d.ts.map +1 -0
- package/dist/core/utils/binary-paths.js +166 -0
- package/dist/core/utils/binary-paths.js.map +1 -0
- package/dist/core/utils/bypass-token.d.ts +75 -0
- package/dist/core/utils/bypass-token.d.ts.map +1 -0
- package/dist/core/utils/bypass-token.js +133 -0
- package/dist/core/utils/bypass-token.js.map +1 -0
- package/dist/core/utils/cc-builtin-agents.d.ts +3 -0
- package/dist/core/utils/cc-builtin-agents.d.ts.map +1 -0
- package/dist/core/utils/cc-builtin-agents.js +29 -0
- package/dist/core/utils/cc-builtin-agents.js.map +1 -0
- package/dist/core/utils/claude-cli-spawn.d.ts +106 -0
- package/dist/core/utils/claude-cli-spawn.d.ts.map +1 -0
- package/dist/core/utils/claude-cli-spawn.js +219 -0
- package/dist/core/utils/claude-cli-spawn.js.map +1 -0
- package/dist/core/utils/forge-resume-block.d.ts.map +1 -1
- package/dist/core/utils/forge-resume-block.js +3 -2
- package/dist/core/utils/forge-resume-block.js.map +1 -1
- package/dist/core/utils/logger.d.ts +15 -3
- package/dist/core/utils/logger.d.ts.map +1 -1
- package/dist/core/utils/logger.js +20 -2
- package/dist/core/utils/logger.js.map +1 -1
- package/dist/core/utils/noise-prompt.d.ts +97 -0
- package/dist/core/utils/noise-prompt.d.ts.map +1 -0
- package/dist/core/utils/noise-prompt.js +127 -0
- package/dist/core/utils/noise-prompt.js.map +1 -0
- package/dist/core/utils/path.d.ts +0 -4
- package/dist/core/utils/path.d.ts.map +1 -1
- package/dist/core/utils/path.js +0 -7
- package/dist/core/utils/path.js.map +1 -1
- package/dist/core/utils/time.d.ts +41 -0
- package/dist/core/utils/time.d.ts.map +1 -1
- package/dist/core/utils/time.js +114 -0
- package/dist/core/utils/time.js.map +1 -1
- package/dist/daemon/agent-sync.d.ts +24 -0
- package/dist/daemon/agent-sync.d.ts.map +1 -0
- package/dist/daemon/agent-sync.js +114 -0
- package/dist/daemon/agent-sync.js.map +1 -0
- package/dist/daemon/config-store.d.ts +55 -0
- package/dist/daemon/config-store.d.ts.map +1 -0
- package/dist/daemon/config-store.js +137 -0
- package/dist/daemon/config-store.js.map +1 -0
- package/dist/daemon/event-parser.d.ts +22 -0
- package/dist/daemon/event-parser.d.ts.map +1 -1
- package/dist/daemon/event-parser.js +49 -3
- package/dist/daemon/event-parser.js.map +1 -1
- package/dist/daemon/handlers/history-exporter.d.ts.map +1 -1
- package/dist/daemon/handlers/history-exporter.js +9 -8
- package/dist/daemon/handlers/history-exporter.js.map +1 -1
- package/dist/daemon/handlers/post-tool-use.d.ts +58 -4
- package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
- package/dist/daemon/handlers/post-tool-use.js +261 -8
- package/dist/daemon/handlers/post-tool-use.js.map +1 -1
- package/dist/daemon/handlers/pre-tool-use.d.ts +156 -0
- package/dist/daemon/handlers/pre-tool-use.d.ts.map +1 -0
- package/dist/daemon/handlers/pre-tool-use.js +585 -0
- package/dist/daemon/handlers/pre-tool-use.js.map +1 -0
- package/dist/daemon/handlers/stop.d.ts +35 -7
- package/dist/daemon/handlers/stop.d.ts.map +1 -1
- package/dist/daemon/handlers/stop.js +157 -8
- package/dist/daemon/handlers/stop.js.map +1 -1
- package/dist/daemon/handlers/user-prompt.d.ts +36 -14
- package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt.js +135 -48
- package/dist/daemon/handlers/user-prompt.js.map +1 -1
- package/dist/daemon/hook-sync.d.ts.map +1 -1
- package/dist/daemon/hook-sync.js +2 -1
- package/dist/daemon/hook-sync.js.map +1 -1
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +471 -43
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/lifecycle.d.ts +48 -1
- package/dist/daemon/lifecycle.d.ts.map +1 -1
- package/dist/daemon/lifecycle.js +98 -2
- package/dist/daemon/lifecycle.js.map +1 -1
- package/dist/daemon/router.d.ts +4 -1
- package/dist/daemon/router.d.ts.map +1 -1
- package/dist/daemon/router.js +4 -2
- package/dist/daemon/router.js.map +1 -1
- package/dist/daemon/rules/defaults.d.ts +20 -0
- package/dist/daemon/rules/defaults.d.ts.map +1 -0
- package/dist/daemon/rules/defaults.js +692 -0
- package/dist/daemon/rules/defaults.js.map +1 -0
- package/dist/daemon/rules/registry.d.ts +47 -0
- package/dist/daemon/rules/registry.d.ts.map +1 -0
- package/dist/daemon/rules/registry.js +84 -0
- package/dist/daemon/rules/registry.js.map +1 -0
- package/dist/daemon/rules/types.d.ts +170 -0
- package/dist/daemon/rules/types.d.ts.map +1 -0
- package/dist/daemon/rules/types.js +15 -0
- package/dist/daemon/rules/types.js.map +1 -0
- package/dist/daemon/rules/whitelist.d.ts +101 -0
- package/dist/daemon/rules/whitelist.d.ts.map +1 -0
- package/dist/daemon/rules/whitelist.js +210 -0
- package/dist/daemon/rules/whitelist.js.map +1 -0
- package/dist/daemon/rules/workflow-defaults.d.ts +52 -0
- package/dist/daemon/rules/workflow-defaults.d.ts.map +1 -0
- package/dist/daemon/rules/workflow-defaults.js +521 -0
- package/dist/daemon/rules/workflow-defaults.js.map +1 -0
- package/dist/daemon/server.d.ts +11 -1
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +7 -1
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/services/context-injector.d.ts +34 -0
- package/dist/daemon/services/context-injector.d.ts.map +1 -0
- package/dist/daemon/services/context-injector.js +61 -0
- package/dist/daemon/services/context-injector.js.map +1 -0
- package/dist/daemon/services/decision-hint.d.ts +203 -0
- package/dist/daemon/services/decision-hint.d.ts.map +1 -0
- package/dist/daemon/services/decision-hint.js +487 -0
- package/dist/daemon/services/decision-hint.js.map +1 -0
- package/dist/daemon/services/event-ttl-sweep.d.ts +86 -0
- package/dist/daemon/services/event-ttl-sweep.d.ts.map +1 -0
- package/dist/daemon/services/event-ttl-sweep.js +123 -0
- package/dist/daemon/services/event-ttl-sweep.js.map +1 -0
- package/dist/daemon/services/experience-extractor.d.ts +67 -0
- package/dist/daemon/services/experience-extractor.d.ts.map +1 -0
- package/dist/daemon/services/experience-extractor.js +323 -0
- package/dist/daemon/services/experience-extractor.js.map +1 -0
- package/dist/daemon/services/feedback-aggregator.d.ts +179 -0
- package/dist/daemon/services/feedback-aggregator.d.ts.map +1 -0
- package/dist/daemon/services/feedback-aggregator.js +455 -0
- package/dist/daemon/services/feedback-aggregator.js.map +1 -0
- package/dist/daemon/services/heartbeat-writer.d.ts +55 -0
- package/dist/daemon/services/heartbeat-writer.d.ts.map +1 -0
- package/dist/daemon/services/heartbeat-writer.js +111 -0
- package/dist/daemon/services/heartbeat-writer.js.map +1 -0
- package/dist/daemon/services/idle-session-sweeper.d.ts +61 -0
- package/dist/daemon/services/idle-session-sweeper.d.ts.map +1 -0
- package/dist/daemon/services/idle-session-sweeper.js +94 -0
- package/dist/daemon/services/idle-session-sweeper.js.map +1 -0
- package/dist/daemon/services/idle-task-budget.d.ts +50 -0
- package/dist/daemon/services/idle-task-budget.d.ts.map +1 -0
- package/dist/daemon/services/idle-task-budget.js +72 -0
- package/dist/daemon/services/idle-task-budget.js.map +1 -0
- package/dist/daemon/services/intercept-revive.d.ts +60 -0
- package/dist/daemon/services/intercept-revive.d.ts.map +1 -0
- package/dist/daemon/services/intercept-revive.js +86 -0
- package/dist/daemon/services/intercept-revive.js.map +1 -0
- package/dist/daemon/services/intercept-rollback-guard.d.ts +105 -0
- package/dist/daemon/services/intercept-rollback-guard.d.ts.map +1 -0
- package/dist/daemon/services/intercept-rollback-guard.js +152 -0
- package/dist/daemon/services/intercept-rollback-guard.js.map +1 -0
- package/dist/daemon/services/intercept-timeout-sweeper.d.ts +58 -0
- package/dist/daemon/services/intercept-timeout-sweeper.d.ts.map +1 -0
- package/dist/daemon/services/intercept-timeout-sweeper.js +83 -0
- package/dist/daemon/services/intercept-timeout-sweeper.js.map +1 -0
- package/dist/daemon/services/kb-injector.d.ts +57 -0
- package/dist/daemon/services/kb-injector.d.ts.map +1 -0
- package/dist/daemon/services/kb-injector.js +140 -0
- package/dist/daemon/services/kb-injector.js.map +1 -0
- package/dist/daemon/services/outcome-classification-service.d.ts +49 -0
- package/dist/daemon/services/outcome-classification-service.d.ts.map +1 -0
- package/dist/daemon/services/outcome-classification-service.js +214 -0
- package/dist/daemon/services/outcome-classification-service.js.map +1 -0
- package/dist/daemon/services/outcome-classifier.d.ts +136 -0
- package/dist/daemon/services/outcome-classifier.d.ts.map +1 -0
- package/dist/daemon/services/outcome-classifier.js +178 -0
- package/dist/daemon/services/outcome-classifier.js.map +1 -0
- package/dist/daemon/services/outcome-nudge.d.ts +107 -0
- package/dist/daemon/services/outcome-nudge.d.ts.map +1 -0
- package/dist/daemon/services/outcome-nudge.js +242 -0
- package/dist/daemon/services/outcome-nudge.js.map +1 -0
- package/dist/daemon/services/spec-approval.d.ts +127 -0
- package/dist/daemon/services/spec-approval.d.ts.map +1 -0
- package/dist/daemon/services/spec-approval.js +216 -0
- package/dist/daemon/services/spec-approval.js.map +1 -0
- package/dist/daemon/services/spec-gate.d.ts +54 -0
- package/dist/daemon/services/spec-gate.d.ts.map +1 -0
- package/dist/daemon/services/spec-gate.js +113 -0
- package/dist/daemon/services/spec-gate.js.map +1 -0
- package/dist/daemon/services/task-boundary-classifier.d.ts +78 -0
- package/dist/daemon/services/task-boundary-classifier.d.ts.map +1 -0
- package/dist/daemon/services/task-boundary-classifier.js +202 -0
- package/dist/daemon/services/task-boundary-classifier.js.map +1 -0
- package/dist/daemon/services/task-segmenter.d.ts +219 -1
- package/dist/daemon/services/task-segmenter.d.ts.map +1 -1
- package/dist/daemon/services/task-segmenter.js +481 -17
- package/dist/daemon/services/task-segmenter.js.map +1 -1
- package/dist/daemon/services/violation-reporter.d.ts +130 -0
- package/dist/daemon/services/violation-reporter.d.ts.map +1 -0
- package/dist/daemon/services/violation-reporter.js +339 -0
- package/dist/daemon/services/violation-reporter.js.map +1 -0
- package/dist/daemon/skill-sync.d.ts +7 -2
- package/dist/daemon/skill-sync.d.ts.map +1 -1
- package/dist/daemon/skill-sync.js +114 -9
- package/dist/daemon/skill-sync.js.map +1 -1
- package/dist/daemon/templates/agents/claudemd-writer.md +101 -0
- package/dist/daemon/templates/agents/coder.md +105 -0
- package/dist/daemon/templates/agents/decision-maker.md +460 -0
- package/dist/daemon/templates/agents/doc-reviewer.md +115 -0
- package/dist/daemon/templates/agents/harness-debug-full.md +114 -0
- package/dist/daemon/templates/agents/harness-hotfix.md +99 -0
- package/dist/daemon/templates/agents/hybrid-feature-with-safety.md +104 -0
- package/dist/daemon/templates/agents/knowledge-builder.md +119 -0
- package/dist/daemon/templates/agents/patch-applier.md +144 -0
- package/dist/daemon/templates/agents/planner.md +165 -0
- package/dist/daemon/templates/agents/refactor-specialist.md +98 -0
- package/dist/daemon/templates/agents/skill-distiller.md +113 -0
- package/dist/daemon/templates/agents/task-boundary-classifier.md +64 -0
- package/dist/daemon/templates/agents/verify-agent.md +136 -0
- package/dist/daemon/utils/inject-block.d.ts +39 -0
- package/dist/daemon/utils/inject-block.d.ts.map +1 -0
- package/dist/daemon/utils/inject-block.js +25 -0
- package/dist/daemon/utils/inject-block.js.map +1 -0
- package/dist/hooks/hook-lib.sh +8 -0
- package/dist/hooks/notification.sh +19 -8
- package/dist/hooks/post-tool-use.sh +41 -23
- package/dist/hooks/pre-tool-use.sh +54 -23
- package/dist/hooks/session-start.sh +68 -0
- package/dist/hooks/stop.sh +24 -10
- package/dist/hooks/user-prompt-submit.sh +37 -21
- package/dist/knowledge/adapters/go-adapter.d.ts +65 -0
- package/dist/knowledge/adapters/go-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/go-adapter.js +294 -0
- package/dist/knowledge/adapters/go-adapter.js.map +1 -0
- package/dist/knowledge/adapters/index.d.ts +41 -0
- package/dist/knowledge/adapters/index.d.ts.map +1 -0
- package/dist/knowledge/adapters/index.js +71 -0
- package/dist/knowledge/adapters/index.js.map +1 -0
- package/dist/knowledge/adapters/java-adapter.d.ts +66 -0
- package/dist/knowledge/adapters/java-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/java-adapter.js +260 -0
- package/dist/knowledge/adapters/java-adapter.js.map +1 -0
- package/dist/knowledge/adapters/js-vue-adapter.d.ts +56 -0
- package/dist/knowledge/adapters/js-vue-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/js-vue-adapter.js +203 -0
- package/dist/knowledge/adapters/js-vue-adapter.js.map +1 -0
- package/dist/knowledge/adapters/kotlin-adapter.d.ts +55 -0
- package/dist/knowledge/adapters/kotlin-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/kotlin-adapter.js +209 -0
- package/dist/knowledge/adapters/kotlin-adapter.js.map +1 -0
- package/dist/knowledge/adapters/monorepo-adapter.d.ts +77 -0
- package/dist/knowledge/adapters/monorepo-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/monorepo-adapter.js +170 -0
- package/dist/knowledge/adapters/monorepo-adapter.js.map +1 -0
- package/dist/knowledge/adapters/python-adapter.d.ts +89 -0
- package/dist/knowledge/adapters/python-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/python-adapter.js +358 -0
- package/dist/knowledge/adapters/python-adapter.js.map +1 -0
- package/dist/knowledge/adapters/rust-adapter.d.ts +73 -0
- package/dist/knowledge/adapters/rust-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/rust-adapter.js +329 -0
- package/dist/knowledge/adapters/rust-adapter.js.map +1 -0
- package/dist/knowledge/adapters/types.d.ts +99 -0
- package/dist/knowledge/adapters/types.d.ts.map +1 -0
- package/dist/knowledge/adapters/types.js +17 -0
- package/dist/knowledge/adapters/types.js.map +1 -0
- package/dist/knowledge/adapters/typescript-adapter.d.ts +57 -0
- package/dist/knowledge/adapters/typescript-adapter.d.ts.map +1 -0
- package/dist/knowledge/adapters/typescript-adapter.js +171 -0
- package/dist/knowledge/adapters/typescript-adapter.js.map +1 -0
- package/dist/knowledge/audit-applier.d.ts +70 -0
- package/dist/knowledge/audit-applier.d.ts.map +1 -0
- package/dist/knowledge/audit-applier.js +251 -0
- package/dist/knowledge/audit-applier.js.map +1 -0
- package/dist/knowledge/builder.d.ts +261 -0
- package/dist/knowledge/builder.d.ts.map +1 -0
- package/dist/knowledge/builder.js +937 -0
- package/dist/knowledge/builder.js.map +1 -0
- package/dist/knowledge/cli-provider.d.ts +151 -0
- package/dist/knowledge/cli-provider.d.ts.map +1 -0
- package/dist/knowledge/cli-provider.js +313 -0
- package/dist/knowledge/cli-provider.js.map +1 -0
- package/dist/knowledge/constants.d.ts +73 -0
- package/dist/knowledge/constants.d.ts.map +1 -0
- package/dist/knowledge/constants.js +93 -0
- package/dist/knowledge/constants.js.map +1 -0
- package/dist/knowledge/cross-module.d.ts +139 -0
- package/dist/knowledge/cross-module.d.ts.map +1 -0
- package/dist/knowledge/cross-module.js +370 -0
- package/dist/knowledge/cross-module.js.map +1 -0
- package/dist/knowledge/git-hooks.d.ts +67 -0
- package/dist/knowledge/git-hooks.d.ts.map +1 -0
- package/dist/knowledge/git-hooks.js +258 -0
- package/dist/knowledge/git-hooks.js.map +1 -0
- package/dist/knowledge/module-hash.d.ts +88 -0
- package/dist/knowledge/module-hash.d.ts.map +1 -0
- package/dist/knowledge/module-hash.js +162 -0
- package/dist/knowledge/module-hash.js.map +1 -0
- package/dist/knowledge/project-detector.d.ts +101 -0
- package/dist/knowledge/project-detector.d.ts.map +1 -0
- package/dist/knowledge/project-detector.js +223 -0
- package/dist/knowledge/project-detector.js.map +1 -0
- package/dist/knowledge/prompt.d.ts +228 -0
- package/dist/knowledge/prompt.d.ts.map +1 -0
- package/dist/knowledge/prompt.js +404 -0
- package/dist/knowledge/prompt.js.map +1 -0
- package/dist/knowledge/query.d.ts +105 -0
- package/dist/knowledge/query.d.ts.map +1 -0
- package/dist/knowledge/query.js +341 -0
- package/dist/knowledge/query.js.map +1 -0
- package/dist/knowledge/repo-map.d.ts +91 -0
- package/dist/knowledge/repo-map.d.ts.map +1 -0
- package/dist/knowledge/repo-map.js +408 -0
- package/dist/knowledge/repo-map.js.map +1 -0
- package/dist/knowledge/tools/index.d.ts +14 -0
- package/dist/knowledge/tools/index.d.ts.map +1 -0
- package/dist/knowledge/tools/index.js +11 -0
- package/dist/knowledge/tools/index.js.map +1 -0
- package/dist/knowledge/tools/knowledge-get-page.d.ts +46 -0
- package/dist/knowledge/tools/knowledge-get-page.d.ts.map +1 -0
- package/dist/knowledge/tools/knowledge-get-page.js +101 -0
- package/dist/knowledge/tools/knowledge-get-page.js.map +1 -0
- package/dist/knowledge/tools/knowledge-query.d.ts +77 -0
- package/dist/knowledge/tools/knowledge-query.d.ts.map +1 -0
- package/dist/knowledge/tools/knowledge-query.js +104 -0
- package/dist/knowledge/tools/knowledge-query.js.map +1 -0
- package/dist/knowledge/tools/repo-map-lookup.d.ts +45 -0
- package/dist/knowledge/tools/repo-map-lookup.d.ts.map +1 -0
- package/dist/knowledge/tools/repo-map-lookup.js +82 -0
- package/dist/knowledge/tools/repo-map-lookup.js.map +1 -0
- package/dist/knowledge/types.d.ts +269 -0
- package/dist/knowledge/types.d.ts.map +1 -0
- package/dist/knowledge/types.js +10 -0
- package/dist/knowledge/types.js.map +1 -0
- package/dist/knowledge/validator.d.ts +90 -0
- package/dist/knowledge/validator.d.ts.map +1 -0
- package/dist/knowledge/validator.js +288 -0
- package/dist/knowledge/validator.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +222 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/skills/builtin-skills.d.ts +35 -0
- package/dist/skills/builtin-skills.d.ts.map +1 -0
- package/dist/skills/builtin-skills.js +68 -0
- package/dist/skills/builtin-skills.js.map +1 -0
- package/dist/skills/distill/attribution.d.ts +59 -0
- package/dist/skills/distill/attribution.d.ts.map +1 -0
- package/dist/skills/distill/attribution.js +101 -0
- package/dist/skills/distill/attribution.js.map +1 -0
- package/dist/skills/distill/claude-cli-resolver.d.ts +26 -0
- package/dist/skills/distill/claude-cli-resolver.d.ts.map +1 -0
- package/dist/skills/distill/claude-cli-resolver.js +115 -0
- package/dist/skills/distill/claude-cli-resolver.js.map +1 -0
- package/dist/skills/distill/distiller.d.ts +161 -0
- package/dist/skills/distill/distiller.d.ts.map +1 -0
- package/dist/skills/distill/distiller.js +461 -0
- package/dist/skills/distill/distiller.js.map +1 -0
- package/dist/skills/distill/index.d.ts +223 -0
- package/dist/skills/distill/index.d.ts.map +1 -0
- package/dist/skills/distill/index.js +466 -0
- package/dist/skills/distill/index.js.map +1 -0
- package/dist/skills/distill/project-anchor-guard.d.ts +116 -0
- package/dist/skills/distill/project-anchor-guard.d.ts.map +1 -0
- package/dist/skills/distill/project-anchor-guard.js +334 -0
- package/dist/skills/distill/project-anchor-guard.js.map +1 -0
- package/dist/skills/distill/topic-deduper.d.ts +77 -0
- package/dist/skills/distill/topic-deduper.d.ts.map +1 -0
- package/dist/skills/distill/topic-deduper.js +119 -0
- package/dist/skills/distill/topic-deduper.js.map +1 -0
- package/dist/skills/distill/upstream-fetcher.d.ts +71 -0
- package/dist/skills/distill/upstream-fetcher.d.ts.map +1 -0
- package/dist/skills/distill/upstream-fetcher.js +202 -0
- package/dist/skills/distill/upstream-fetcher.js.map +1 -0
- package/dist/skills/distilled/distilled-api-design.md +491 -0
- package/dist/skills/distilled/distilled-architecture-decision.md +173 -0
- package/dist/skills/distilled/distilled-creator.md +178 -0
- package/dist/skills/distilled/distilled-db-schema-design.md +245 -0
- package/dist/skills/distilled/distilled-defi-amm-security.md +293 -0
- package/dist/skills/distilled/distilled-executing-plans.md +113 -0
- package/dist/skills/distilled/distilled-harness-engineering.md +242 -0
- package/dist/skills/distilled/distilled-karpathy-guidelines.md +104 -0
- package/dist/skills/distilled/distilled-performance-optimization.md +175 -0
- package/dist/skills/distilled/distilled-spec-driven-design.md +193 -0
- package/dist/skills/distilled/distilled-systematic-debugging.md +306 -0
- package/dist/skills/distilled/distilled-verification-before-completion.md +203 -0
- package/dist/skills/keyword-score.d.ts +29 -0
- package/dist/skills/keyword-score.d.ts.map +1 -0
- package/dist/skills/keyword-score.js +54 -0
- package/dist/skills/keyword-score.js.map +1 -0
- package/dist/skills/registry.d.ts +64 -20
- package/dist/skills/registry.d.ts.map +1 -1
- package/dist/skills/registry.js +102 -105
- package/dist/skills/registry.js.map +1 -1
- package/dist/skills/tools/pipeline-suggest.js +14 -14
- package/dist/skills/tools/skill-invoke.d.ts +1 -1
- package/dist/skills/tools/skill-invoke.js +1 -1
- package/dist/web/routes/agent-content.d.ts +30 -0
- package/dist/web/routes/agent-content.d.ts.map +1 -0
- package/dist/web/routes/agent-content.js +139 -0
- package/dist/web/routes/agent-content.js.map +1 -0
- package/dist/web/routes/decisions.d.ts +15 -0
- package/dist/web/routes/decisions.d.ts.map +1 -0
- package/dist/web/routes/decisions.js +181 -0
- package/dist/web/routes/decisions.js.map +1 -0
- package/dist/web/routes/diagnostics.d.ts +61 -0
- package/dist/web/routes/diagnostics.d.ts.map +1 -0
- package/dist/web/routes/diagnostics.js +203 -0
- package/dist/web/routes/diagnostics.js.map +1 -0
- package/dist/web/routes/events.d.ts.map +1 -1
- package/dist/web/routes/events.js +24 -0
- package/dist/web/routes/events.js.map +1 -1
- package/dist/web/routes/health.d.ts +33 -0
- package/dist/web/routes/health.d.ts.map +1 -0
- package/dist/web/routes/health.js +37 -0
- package/dist/web/routes/health.js.map +1 -0
- package/dist/web/routes/insights.d.ts +0 -5
- package/dist/web/routes/insights.d.ts.map +1 -1
- package/dist/web/routes/insights.js +783 -2
- package/dist/web/routes/insights.js.map +1 -1
- package/dist/web/routes/knowledge.d.ts +16 -0
- package/dist/web/routes/knowledge.d.ts.map +1 -0
- package/dist/web/routes/knowledge.js +661 -0
- package/dist/web/routes/knowledge.js.map +1 -0
- package/dist/web/routes/patch.d.ts +60 -1
- package/dist/web/routes/patch.d.ts.map +1 -1
- package/dist/web/routes/patch.js +170 -64
- package/dist/web/routes/patch.js.map +1 -1
- package/dist/web/routes/pipeline.d.ts +37 -0
- package/dist/web/routes/pipeline.d.ts.map +1 -0
- package/dist/web/routes/pipeline.js +149 -0
- package/dist/web/routes/pipeline.js.map +1 -0
- package/dist/web/routes/rules.d.ts.map +1 -1
- package/dist/web/routes/rules.js +6 -1
- package/dist/web/routes/rules.js.map +1 -1
- package/dist/web/routes/sessions.d.ts.map +1 -1
- package/dist/web/routes/sessions.js +9 -1
- package/dist/web/routes/sessions.js.map +1 -1
- package/dist/web/routes/skill-content.d.ts +30 -0
- package/dist/web/routes/skill-content.d.ts.map +1 -0
- package/dist/web/routes/skill-content.js +117 -0
- package/dist/web/routes/skill-content.js.map +1 -0
- package/dist/web/routes/skills-distill.d.ts +29 -0
- package/dist/web/routes/skills-distill.d.ts.map +1 -0
- package/dist/web/routes/skills-distill.js +552 -0
- package/dist/web/routes/skills-distill.js.map +1 -0
- package/dist/web/routes/skills.js +7 -7
- package/dist/web/routes/skills.js.map +1 -1
- package/dist/web/routes/task-timeline.d.ts +102 -0
- package/dist/web/routes/task-timeline.d.ts.map +1 -0
- package/dist/web/routes/task-timeline.js +274 -0
- package/dist/web/routes/task-timeline.js.map +1 -0
- package/dist/web/routes/tasks.d.ts.map +1 -1
- package/dist/web/routes/tasks.js +355 -8
- package/dist/web/routes/tasks.js.map +1 -1
- package/dist/web/routes/trace.d.ts.map +1 -1
- package/dist/web/routes/trace.js +3 -2
- package/dist/web/routes/trace.js.map +1 -1
- package/dist/web/routes/types.d.ts +0 -4
- package/dist/web/routes/types.d.ts.map +1 -1
- package/dist/web/routes/types.js +1 -1
- package/dist/web/routes/types.js.map +1 -1
- package/dist/web/routes/violations.d.ts +14 -0
- package/dist/web/routes/violations.d.ts.map +1 -0
- package/dist/web/routes/violations.js +111 -0
- package/dist/web/routes/violations.js.map +1 -0
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +79 -19
- package/dist/web/server.js.map +1 -1
- package/dist/web/services/build-manager.d.ts +72 -0
- package/dist/web/services/build-manager.d.ts.map +1 -0
- package/dist/web/services/build-manager.js +189 -0
- package/dist/web/services/build-manager.js.map +1 -0
- package/dist/web/services/distill-manager.d.ts +125 -0
- package/dist/web/services/distill-manager.d.ts.map +1 -0
- package/dist/web/services/distill-manager.js +308 -0
- package/dist/web/services/distill-manager.js.map +1 -0
- package/dist/web/static/assets/AgentContentPage-DkeRNxok.js +2 -0
- package/dist/web/static/assets/AgentContentPage-DkeRNxok.js.map +1 -0
- package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js +2 -0
- package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js.map +1 -0
- package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js +3 -0
- package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js.map +1 -0
- package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js +2 -0
- package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js.map +1 -0
- package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js +2 -0
- package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js.map +1 -0
- package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js +2 -0
- package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js.map +1 -0
- package/dist/web/static/assets/DriftTab-DqpepOhI.js +2 -0
- package/dist/web/static/assets/DriftTab-DqpepOhI.js.map +1 -0
- package/dist/web/static/assets/HealthHomePage-CN6zNIie.js +3 -0
- package/dist/web/static/assets/HealthHomePage-CN6zNIie.js.map +1 -0
- package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js +2 -0
- package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js.map +1 -0
- package/dist/web/static/assets/MarkdownRenderer-DZmTl-8J.js +3 -0
- package/dist/web/static/assets/MarkdownRenderer-DZmTl-8J.js.map +1 -0
- package/dist/web/static/assets/NotFound-BQPh0vaF.js +2 -0
- package/dist/web/static/assets/NotFound-BQPh0vaF.js.map +1 -0
- package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js +2 -0
- package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js.map +1 -0
- package/dist/web/static/assets/SettingsPage-oLJBNzQj.js +2 -0
- package/dist/web/static/assets/SettingsPage-oLJBNzQj.js.map +1 -0
- package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js +2 -0
- package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js.map +1 -0
- package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js +2 -0
- package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js.map +1 -0
- package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js +2 -0
- package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js.map +1 -0
- package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js +6 -0
- package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js.map +1 -0
- package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js +3 -0
- package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js.map +1 -0
- package/dist/web/static/assets/arco-Bhi3a6Qp.js +14 -0
- package/dist/web/static/assets/arco-Bhi3a6Qp.js.map +1 -0
- package/dist/web/static/assets/arco-DFQA6dO_.css +1 -0
- package/dist/web/static/assets/charts-BuHQWDbQ.js +37 -0
- package/dist/web/static/assets/charts-BuHQWDbQ.js.map +1 -0
- package/dist/web/static/assets/date-fns-sbWH3_uq.js +2 -0
- package/dist/web/static/assets/date-fns-sbWH3_uq.js.map +1 -0
- package/dist/web/static/assets/index-7bl3kbcx.css +1 -0
- package/dist/web/static/assets/index-BIYnq1Dx.js +4 -0
- package/dist/web/static/assets/index-BIYnq1Dx.js.map +1 -0
- package/dist/web/static/assets/lucide-CnlPQoG8.js +72 -0
- package/dist/web/static/assets/lucide-CnlPQoG8.js.map +1 -0
- package/dist/web/static/assets/outcome-DUn1NjlC.js +2 -0
- package/dist/web/static/assets/outcome-DUn1NjlC.js.map +1 -0
- package/dist/web/static/assets/query-S6X1S7K9.js +2 -0
- package/dist/web/static/assets/{query-C99w429o.js.map → query-S6X1S7K9.js.map} +1 -1
- package/dist/web/static/assets/{react-router-r79dBVy4.js → react-router-JVUrkhdd.js} +3 -3
- package/dist/web/static/assets/{react-router-r79dBVy4.js.map → react-router-JVUrkhdd.js.map} +1 -1
- package/dist/web/static/assets/react-vendor-tkvCrao7.js +57 -0
- package/dist/web/static/assets/react-vendor-tkvCrao7.js.map +1 -0
- package/dist/web/static/assets/syntax-highlighter-BkZfCDsz.js +6 -0
- package/dist/web/static/assets/syntax-highlighter-BkZfCDsz.js.map +1 -0
- package/dist/web/static/assets/useTabsParam-k8qte_0C.js +2 -0
- package/dist/web/static/assets/useTabsParam-k8qte_0C.js.map +1 -0
- package/dist/web/static/assets/vendor-DWgdB1eY.js +65 -0
- package/dist/web/static/assets/vendor-DWgdB1eY.js.map +1 -0
- package/dist/web/static/index.html +12 -8
- package/package.json +14 -3
- package/dist/core/ai/provider.d.ts +0 -63
- package/dist/core/ai/provider.d.ts.map +0 -1
- package/dist/core/ai/provider.js +0 -241
- package/dist/core/ai/provider.js.map +0 -1
- package/dist/core/ai/types.d.ts +0 -43
- package/dist/core/ai/types.d.ts.map +0 -1
- package/dist/core/ai/types.js +0 -5
- package/dist/core/ai/types.js.map +0 -1
- package/dist/core/storage/token-usage.d.ts +0 -36
- package/dist/core/storage/token-usage.d.ts.map +0 -1
- package/dist/core/storage/token-usage.js +0 -59
- package/dist/core/storage/token-usage.js.map +0 -1
- package/dist/core/utils/token-tracker.d.ts +0 -39
- package/dist/core/utils/token-tracker.d.ts.map +0 -1
- package/dist/core/utils/token-tracker.js +0 -69
- package/dist/core/utils/token-tracker.js.map +0 -1
- package/dist/skills/index.d.ts +0 -3
- package/dist/skills/index.d.ts.map +0 -1
- package/dist/skills/index.js +0 -3
- package/dist/skills/index.js.map +0 -1
- package/dist/skills/matcher.d.ts +0 -26
- package/dist/skills/matcher.d.ts.map +0 -1
- package/dist/skills/matcher.js +0 -113
- package/dist/skills/matcher.js.map +0 -1
- package/dist/skills/official/code-simplifier.md +0 -52
- package/dist/skills/official/find-skills.md +0 -142
- package/dist/skills/official/official-api-design.md +0 -30
- package/dist/skills/official/official-architecture-decision.md +0 -41
- package/dist/skills/official/official-bmad.md +0 -118
- package/dist/skills/official/official-db-schema-design.md +0 -34
- package/dist/skills/official/official-debug.md +0 -25
- package/dist/skills/official/official-doc-driven.md +0 -31
- package/dist/skills/official/official-harness-engineering.md +0 -108
- package/dist/skills/official/official-openspec.md +0 -89
- package/dist/skills/official/official-performance-optimization.md +0 -30
- package/dist/skills/official/official-pr-review.md +0 -35
- package/dist/skills/official/official-release-checklist.md +0 -30
- package/dist/skills/official/official-security-hardening.md +0 -32
- package/dist/skills/official/official-spec-driven-design.md +0 -31
- package/dist/skills/official/planning-with-files.md +0 -241
- package/dist/skills/official/ui-ux-pro-max.md +0 -105
- package/dist/skills/official/webapp-testing.md +0 -96
- package/dist/skills/official-skills.d.ts +0 -26
- package/dist/skills/official-skills.d.ts.map +0 -1
- package/dist/skills/official-skills.js +0 -74
- package/dist/skills/official-skills.js.map +0 -1
- package/dist/skills/semantic-matcher.d.ts +0 -60
- package/dist/skills/semantic-matcher.d.ts.map +0 -1
- package/dist/skills/semantic-matcher.js +0 -192
- package/dist/skills/semantic-matcher.js.map +0 -1
- package/dist/skills/upgrade-engine.d.ts +0 -93
- package/dist/skills/upgrade-engine.d.ts.map +0 -1
- package/dist/skills/upgrade-engine.js +0 -447
- package/dist/skills/upgrade-engine.js.map +0 -1
- package/dist/skills/upgrade-prompt.d.ts +0 -20
- package/dist/skills/upgrade-prompt.d.ts.map +0 -1
- package/dist/skills/upgrade-prompt.js +0 -75
- package/dist/skills/upgrade-prompt.js.map +0 -1
- package/dist/web/routes/ai.d.ts +0 -10
- package/dist/web/routes/ai.d.ts.map +0 -1
- package/dist/web/routes/ai.js +0 -186
- package/dist/web/routes/ai.js.map +0 -1
- package/dist/web/routes/token-usage.d.ts +0 -7
- package/dist/web/routes/token-usage.d.ts.map +0 -1
- package/dist/web/routes/token-usage.js +0 -18
- package/dist/web/routes/token-usage.js.map +0 -1
- package/dist/web/ssrf-guard.d.ts +0 -35
- package/dist/web/ssrf-guard.d.ts.map +0 -1
- package/dist/web/ssrf-guard.js +0 -93
- package/dist/web/ssrf-guard.js.map +0 -1
- package/dist/web/static/assets/AIConfig-CdDWzJyO.js +0 -2
- package/dist/web/static/assets/AIConfig-CdDWzJyO.js.map +0 -1
- package/dist/web/static/assets/Dashboard-CoEmmIDt.js +0 -2
- package/dist/web/static/assets/Dashboard-CoEmmIDt.js.map +0 -1
- package/dist/web/static/assets/Drawer-DdRTzlLB.js +0 -2
- package/dist/web/static/assets/Drawer-DdRTzlLB.js.map +0 -1
- package/dist/web/static/assets/Events-DrIq1SUS.js +0 -2
- package/dist/web/static/assets/Events-DrIq1SUS.js.map +0 -1
- package/dist/web/static/assets/Reports-DFBM3MDK.js +0 -2
- package/dist/web/static/assets/Reports-DFBM3MDK.js.map +0 -1
- package/dist/web/static/assets/SearchInput-qCj_jAcf.js +0 -2
- package/dist/web/static/assets/SearchInput-qCj_jAcf.js.map +0 -1
- package/dist/web/static/assets/SessionDetail-CCzwdoT7.js +0 -2
- package/dist/web/static/assets/SessionDetail-CCzwdoT7.js.map +0 -1
- package/dist/web/static/assets/Sessions-FfLYkAw9.js +0 -2
- package/dist/web/static/assets/Sessions-FfLYkAw9.js.map +0 -1
- package/dist/web/static/assets/Skills-C8Gvs3Qa.js +0 -2
- package/dist/web/static/assets/Skills-C8Gvs3Qa.js.map +0 -1
- package/dist/web/static/assets/TaskDetail-BS8pYhaR.js +0 -2
- package/dist/web/static/assets/TaskDetail-BS8pYhaR.js.map +0 -1
- package/dist/web/static/assets/Tasks-CyuhizG8.js +0 -2
- package/dist/web/static/assets/Tasks-CyuhizG8.js.map +0 -1
- package/dist/web/static/assets/charts-CLrM0_uM.js +0 -37
- package/dist/web/static/assets/charts-CLrM0_uM.js.map +0 -1
- package/dist/web/static/assets/date-fns-CZ_bHujz.js +0 -2
- package/dist/web/static/assets/date-fns-CZ_bHujz.js.map +0 -1
- package/dist/web/static/assets/export-L_VBD2p1.js +0 -4
- package/dist/web/static/assets/export-L_VBD2p1.js.map +0 -1
- package/dist/web/static/assets/index-CBX47X8l.js +0 -3
- package/dist/web/static/assets/index-CBX47X8l.js.map +0 -1
- package/dist/web/static/assets/index-DjIoMdoR.css +0 -1
- package/dist/web/static/assets/lucide-Bs_edTLa.js +0 -232
- package/dist/web/static/assets/lucide-Bs_edTLa.js.map +0 -1
- package/dist/web/static/assets/query-C99w429o.js +0 -2
- package/dist/web/static/assets/react-vendor-CSp-GLFF.js +0 -49
- package/dist/web/static/assets/react-vendor-CSp-GLFF.js.map +0 -1
- package/dist/web/static/assets/syntax-highlighter-44FakypI.js +0 -9
- package/dist/web/static/assets/syntax-highlighter-44FakypI.js.map +0 -1
- package/dist/web/static/assets/task-title-BhOcemuR.js +0 -2
- package/dist/web/static/assets/task-title-BhOcemuR.js.map +0 -1
- package/dist/web/static/assets/time-Bxuk0M-C.js +0 -2
- package/dist/web/static/assets/time-Bxuk0M-C.js.map +0 -1
- package/dist/web/static/assets/vendor-CMMjVdZs.js +0 -64
- package/dist/web/static/assets/vendor-CMMjVdZs.js.map +0 -1
|
@@ -3,16 +3,81 @@ import { logger } from '../../core/utils/logger.js';
|
|
|
3
3
|
import { timestampToMs } from '../../core/utils/time.js';
|
|
4
4
|
import { truncateSessionId } from '../../core/utils/session.js';
|
|
5
5
|
import { truncateString } from '../../core/utils/format.js';
|
|
6
|
+
import { isNoisePrompt, classifyPromptKind } from '../../core/utils/noise-prompt.js';
|
|
6
7
|
const NEW_TASK_KEYWORDS = [
|
|
7
8
|
'帮我', '实现', '修复', '添加', '重构', '优化', '创建', '删除',
|
|
8
9
|
'升级', '迁移', '部署', '配置', '设计', '提交', '推送',
|
|
9
10
|
'fix', 'add', 'implement', 'refactor', 'create', 'delete', 'deploy',
|
|
10
11
|
];
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* decision c6613590 P0 缺陷 A: continuation/ack tokens — the SINGLE source of
|
|
14
|
+
* truth for "is this prompt a pure continuation/ack?", consumed by
|
|
15
|
+
* {@link isContinuationPrompt}, which in turn is used by BOTH the smart-window
|
|
16
|
+
* resume gate (processPrompt) AND the active-task boundary (shouldStartNewTask).
|
|
17
|
+
*
|
|
18
|
+
* This deliberately TIGHT list replaces the retired `CONTINUE_KEYWORDS` table:
|
|
19
|
+
* the easily-collided substrings ('这个'/'那个'/'它'/'不是'/'不对') are REMOVED
|
|
20
|
+
* because they fire inside ordinary questions:
|
|
21
|
+
* • "现在全链路是不是都顺了?" contains '不是'
|
|
22
|
+
* • "这个任务怎么又丢了?" contains '这个'
|
|
23
|
+
* Those are NEW questions, not continuations, yet the old substring match
|
|
24
|
+
* resumed a stale task and merged them in. The resume gate now also requires
|
|
25
|
+
* the prompt to be SHORT and ack-dominated (see isContinuationPrompt) so a
|
|
26
|
+
* long sentence that merely happens to contain '好的'/'可以' isn't swallowed.
|
|
27
|
+
*/
|
|
28
|
+
const ACK_CONTINUE_KEYWORDS = [
|
|
29
|
+
'继续', '然后', '还有', '另外',
|
|
30
|
+
'好的', '可以', '是的', '对', '改一下',
|
|
31
|
+
'ok', 'go', 'yes', 'continue', '批准', '同意',
|
|
14
32
|
];
|
|
15
|
-
|
|
33
|
+
/**
|
|
34
|
+
* decision c6613590 P0 缺陷 A: max trimmed length for a prompt to even be
|
|
35
|
+
* considered a pure continuation/ack. Real acks ("继续" / "好的,这样可以" /
|
|
36
|
+
* "对对对" / "好的可以这样做") are all short; the false-positive questions
|
|
37
|
+
* ("现在全链路是不是都顺了?知识库、skill都正常了吗", "这个任务怎么又丢了?
|
|
38
|
+
* 老是丢数据不行啊") are well past this. 16 chars comfortably covers the
|
|
39
|
+
* real acks in the safety-net fixtures while excluding the merge bugs.
|
|
40
|
+
*/
|
|
41
|
+
const ACK_MAX_LEN = 16;
|
|
42
|
+
/**
|
|
43
|
+
* spec 1713 (2026-05-28) §10.2: hard "reset" markers — an EXPLICIT user signal
|
|
44
|
+
* that they're starting a different topic, not a heuristic. Kept deliberately
|
|
45
|
+
* tiny so it never false-fires on normal continuations. These force a new task
|
|
46
|
+
* synchronously regardless of the time gap.
|
|
47
|
+
*/
|
|
48
|
+
const RESET_KEYWORDS = [
|
|
49
|
+
'首先', '换个话题', '新问题', '换个',
|
|
50
|
+
'another question', 'new topic', 'new task',
|
|
51
|
+
];
|
|
52
|
+
/**
|
|
53
|
+
* spec 1713 §10.2 / §3: synchronous hard-window fallback (minutes). Catches the
|
|
54
|
+
* obvious "user walked away for >5 min" case as an explicit boundary signal.
|
|
55
|
+
*/
|
|
56
|
+
const HARD_TIME_WINDOW_MIN = 5;
|
|
57
|
+
// Threshold for forcing a new task purely based on inactivity.
|
|
58
|
+
// Raised from 10→30 (2026-05-25) to accommodate long background-agent runs
|
|
59
|
+
// (spawn-and-wait flows of 15-30 min are common). With linkEvent() now also
|
|
60
|
+
// updating lastTime on every tool call, this constant primarily acts as a
|
|
61
|
+
// fallback for sessions where the user genuinely walked away >30 min.
|
|
62
|
+
const TASK_SWITCH_MINUTES = 30;
|
|
63
|
+
// B+ smart window resume: reuse TASK_SWITCH_MINUTES as the look-back window
|
|
64
|
+
// so resume threshold == idle-split threshold (both 30min).
|
|
65
|
+
const TASK_RESUME_WINDOW_MS = TASK_SWITCH_MINUTES * 60 * 1000;
|
|
66
|
+
/**
|
|
67
|
+
* Task-tracking overhaul (2026-05-27 spec §3.3 / §R4).
|
|
68
|
+
*
|
|
69
|
+
* Bug 3 orphan recovery window. When linkEvent fires without an active
|
|
70
|
+
* task (e.g. Stop already closed it but sub-agent PostToolUse is still
|
|
71
|
+
* landing), we attach the event to the most recently completed task on
|
|
72
|
+
* the session IF it ended within this window. Default 5 min — short
|
|
73
|
+
* enough to avoid cross-task mis-attribution, long enough to absorb
|
|
74
|
+
* typical async sub-agent tool flushes (observed 1-4 min in production).
|
|
75
|
+
*
|
|
76
|
+
* Exported as `const` (not env-tunable) on purpose: changing it changes
|
|
77
|
+
* KPI semantics and should be a code review event. R4 mitigation: pure
|
|
78
|
+
* attachment, end_time is NOT updated by the fallback path (Q3).
|
|
79
|
+
*/
|
|
80
|
+
export const ORPHAN_RECOVERY_WINDOW_MS = 5 * 60_000;
|
|
16
81
|
export class TaskSegmenter {
|
|
17
82
|
storage;
|
|
18
83
|
currentTasks = new Map();
|
|
@@ -20,38 +85,197 @@ export class TaskSegmenter {
|
|
|
20
85
|
this.storage = storage;
|
|
21
86
|
}
|
|
22
87
|
processPrompt(sessionId, prompt, timestamp, eventId) {
|
|
88
|
+
return this.processPromptWithBoundary(sessionId, prompt, timestamp, eventId).taskId;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* decision 265f59d5: same synchronous best-effort segmentation as
|
|
92
|
+
* {@link processPrompt}, but also reports whether the result was an AMBIGUOUS
|
|
93
|
+
* merge so the daemon can enqueue an async LLM re-attribution. The hot path is
|
|
94
|
+
* unchanged — this returns immediately; the LLM call (if any) is the caller's
|
|
95
|
+
* fire-and-forget responsibility.
|
|
96
|
+
*/
|
|
97
|
+
processPromptWithBoundary(sessionId, prompt, timestamp, eventId) {
|
|
23
98
|
const key = sessionId;
|
|
24
|
-
const current = this.
|
|
99
|
+
const current = this.getTrustedCurrent(key);
|
|
25
100
|
const now = timestampToMs(timestamp);
|
|
101
|
+
// spec b1480935 (2026-06-01 Option A): every prompt creates a task. The
|
|
102
|
+
// previous noise short-circuit is gone — callback / image / system
|
|
103
|
+
// envelopes now surface as their own task rows with `task_kind != 'user'`
|
|
104
|
+
// so Web can show them muted instead of swallowing them. This fixes the
|
|
105
|
+
// bug where a `<task-notification>` envelope on a session without an
|
|
106
|
+
// active task would be silently dropped (or worse, "recover" a stale
|
|
107
|
+
// completed task and turn it into an events black hole).
|
|
108
|
+
//
|
|
109
|
+
// Key invariant (OQ #2): NON-user tasks NEVER enter `currentTasks` map
|
|
110
|
+
// so a real user prompt immediately following a callback always starts
|
|
111
|
+
// its own task, never gets absorbed by the callback row.
|
|
112
|
+
const kind = classifyPromptKind(prompt);
|
|
113
|
+
if (kind !== 'user') {
|
|
114
|
+
// Callback / image / system envelope. Create its own task row but DO
|
|
115
|
+
// NOT touch `currentTasks` (so continuation logic ignores it) and DO
|
|
116
|
+
// NOT close any active user task (the human is still working).
|
|
117
|
+
const taskId = this.createTask(sessionId, prompt, timestamp, kind);
|
|
118
|
+
if (eventId)
|
|
119
|
+
this.storage.linkEventToTask(taskId, eventId);
|
|
120
|
+
logger.debug(`[TaskSegmenter] Non-user task created kind=${kind} ${truncateString(taskId, 8)} (session=${truncateSessionId(sessionId)})`);
|
|
121
|
+
return { taskId };
|
|
122
|
+
}
|
|
26
123
|
if (!current || this.shouldStartNewTask(prompt, now, current)) {
|
|
27
124
|
if (current) {
|
|
28
125
|
this.storage.updateTask(current.id, { status: 'completed', end_time: timestamp });
|
|
29
126
|
}
|
|
30
|
-
|
|
127
|
+
// B+ smart window resume: when no active task, check for a recently-completed
|
|
128
|
+
// task within TASK_RESUME_WINDOW_MS (30min). Uses findCompletedTaskForOrphanSmart
|
|
129
|
+
// (spec §3.A) which also guards against cross-topic mis-attribution via the
|
|
130
|
+
// "no newer task started in the gap" predicate. Only fires when current==null;
|
|
131
|
+
// when shouldStartNewTask triggered with an existing current, we've already
|
|
132
|
+
// moved on intentionally.
|
|
133
|
+
//
|
|
134
|
+
// Issue #1 fix (2026-05-29 task-lost): require POSITIVE continuation evidence
|
|
135
|
+
// (isContinuationPrompt) before resuming. The old gate "absence of NEW_TASK_KEYWORDS"
|
|
136
|
+
// resumed nearly every keyword-free follow-up prompt ("搞一个新文件存放对比说明",
|
|
137
|
+
// "前面的属性也加上注释说明"), merging dozens of distinct user intents into one
|
|
138
|
+
// mega-task spanning hours/days. Real-world impact: session b832930b on
|
|
139
|
+
// 2026-05-28 had task e559c003 accumulate 91 events / 12 hours / 7 distinct
|
|
140
|
+
// user prompts before finally being closed — the user saw "task lost" because
|
|
141
|
+
// each new question failed to surface as a new task card. Now resume only
|
|
142
|
+
// fires when the user explicitly signals continuation ("继续/然后/对/可以/..."),
|
|
143
|
+
// which is the actual semantic the smart-window was intended to capture.
|
|
144
|
+
if (!current && isContinuationPrompt(prompt)) {
|
|
145
|
+
const eventTsIso = timestamp ?? new Date().toISOString();
|
|
146
|
+
const candidate = this.storage.findCompletedTaskForOrphanSmart({
|
|
147
|
+
session_id: sessionId,
|
|
148
|
+
event_ts_iso: eventTsIso,
|
|
149
|
+
});
|
|
150
|
+
if (candidate && candidate.end_time) {
|
|
151
|
+
const gapMs = Date.parse(eventTsIso) - Date.parse(candidate.end_time);
|
|
152
|
+
if (gapMs <= TASK_RESUME_WINDOW_MS) {
|
|
153
|
+
this.storage.resumeTask(candidate.id);
|
|
154
|
+
this.currentTasks.set(key, { id: candidate.id, lastTime: now });
|
|
155
|
+
if (eventId)
|
|
156
|
+
this.storage.linkEventToTask(candidate.id, eventId);
|
|
157
|
+
logger.info(`[TaskSegmenter] Resumed task ${truncateString(candidate.id, 8)} (gap=${Math.round(gapMs / 60000)} min, session=${truncateSessionId(sessionId)})`);
|
|
158
|
+
return { taskId: candidate.id };
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
const taskId = this.createTask(sessionId, prompt, timestamp, 'user');
|
|
31
163
|
this.currentTasks.set(key, { id: taskId, lastTime: now });
|
|
32
164
|
if (eventId)
|
|
33
165
|
this.storage.linkEventToTask(taskId, eventId);
|
|
34
|
-
return taskId;
|
|
166
|
+
return { taskId };
|
|
35
167
|
}
|
|
168
|
+
// Continuation: attach to the current task.
|
|
36
169
|
current.lastTime = now;
|
|
37
170
|
if (eventId)
|
|
38
171
|
this.storage.linkEventToTask(current.id, eventId);
|
|
39
|
-
|
|
172
|
+
// decision 265f59d5: detect the AMBIGUOUS merge. We merged into the active
|
|
173
|
+
// task, but if the prompt is neither a clear ack (isContinuationPrompt) nor
|
|
174
|
+
// carries a NEW_TASK_KEYWORD, the lexical signal was inconclusive — flag it
|
|
175
|
+
// for the async LLM classifier. Hard signals (5-min / RESET / agent-return)
|
|
176
|
+
// already routed to the new-task branch above, so reaching here means none
|
|
177
|
+
// fired. We require a real eventId (nothing to re-attribute otherwise).
|
|
178
|
+
const ambiguous = eventId !== undefined &&
|
|
179
|
+
!isContinuationPrompt(prompt) &&
|
|
180
|
+
!NEW_TASK_KEYWORDS.some(kw => prompt.includes(kw));
|
|
181
|
+
return {
|
|
182
|
+
taskId: current.id,
|
|
183
|
+
...(ambiguous
|
|
184
|
+
? {
|
|
185
|
+
ambiguous: {
|
|
186
|
+
sessionId,
|
|
187
|
+
mergedTaskId: current.id,
|
|
188
|
+
eventId,
|
|
189
|
+
prompt,
|
|
190
|
+
timestamp,
|
|
191
|
+
},
|
|
192
|
+
}
|
|
193
|
+
: {}),
|
|
194
|
+
};
|
|
40
195
|
}
|
|
41
|
-
|
|
42
|
-
|
|
196
|
+
/**
|
|
197
|
+
* Attach a non-prompt event (PostToolUse / PreToolUse / Stop / spawn …) to the
|
|
198
|
+
* session's currently-open task and refresh `lastTime`.
|
|
199
|
+
*
|
|
200
|
+
* Refreshing `lastTime` here is the critical part of the long-flow fix
|
|
201
|
+
* (2026-05-25): without it, `shouldStartNewTask` only sees the gap between
|
|
202
|
+
* user prompts, so a 20-minute background-agent run with hundreds of tool
|
|
203
|
+
* calls looks identical to the user walking away. The next prompt then trips
|
|
204
|
+
* `TASK_SWITCH_MINUTES` and the post-spawn work gets re-attributed to a
|
|
205
|
+
* brand-new task — exactly the symptom seen in task 36471706.
|
|
206
|
+
*
|
|
207
|
+
* `timestamp` is optional for backward compatibility; callers that already
|
|
208
|
+
* know the event timestamp should pass it (we trust hook timestamps more
|
|
209
|
+
* than wall-clock here because event delivery can be queued/replayed).
|
|
210
|
+
*/
|
|
211
|
+
linkEvent(sessionId, eventId, timestamp, opts) {
|
|
212
|
+
const current = this.getTrustedCurrent(sessionId);
|
|
43
213
|
if (current) {
|
|
44
214
|
this.storage.linkEventToTask(current.id, eventId);
|
|
215
|
+
current.lastTime = timestamp ? timestampToMs(timestamp) : Date.now();
|
|
216
|
+
// spec 1713 §10.2 sub-agent boundary: a completed Task tool-call means a
|
|
217
|
+
// sub-agent just returned. Arm the one-shot flag so the NEXT user prompt
|
|
218
|
+
// starts a fresh task (the post-spawn work and the follow-up question are
|
|
219
|
+
// almost always distinct intents). Cleared on consume in
|
|
220
|
+
// shouldStartNewTaskHard.
|
|
221
|
+
if (opts?.hookType === 'PostToolUse' && opts?.toolName === 'Task') {
|
|
222
|
+
current.agentJustReturned = true;
|
|
223
|
+
}
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
// Task-tracking deep fix (spec 1551 §3.A): smart-window orphan recovery.
|
|
227
|
+
// Primary path: smart algorithm finds the most recently completed task
|
|
228
|
+
// with no newer task blocking the gap (no fixed 5-min cap).
|
|
229
|
+
// Fallback: if smart SQL fails or returns null, fall back to the old
|
|
230
|
+
// ORPHAN_RECOVERY_WINDOW_MS=5min path (Q4 = retain as defensive fallback).
|
|
231
|
+
//
|
|
232
|
+
// Q3 (spec §11): do NOT update task.end_time — pure attachment only.
|
|
233
|
+
// Updating end_time would stretch duration KPI for every orphan.
|
|
234
|
+
const eventTsIso = timestamp ?? new Date().toISOString();
|
|
235
|
+
// Primary: smart window (no fixed time cap)
|
|
236
|
+
let recovered = this.storage.findCompletedTaskForOrphanSmart({
|
|
237
|
+
session_id: sessionId,
|
|
238
|
+
event_ts_iso: eventTsIso,
|
|
239
|
+
});
|
|
240
|
+
// Fallback: legacy 5-min window (Q4 — retained for SQL error resilience)
|
|
241
|
+
if (!recovered) {
|
|
242
|
+
recovered = this.storage.findRecentCompletedTaskForOrphan({
|
|
243
|
+
session_id: sessionId,
|
|
244
|
+
event_ts_iso: eventTsIso,
|
|
245
|
+
sinceMs: ORPHAN_RECOVERY_WINDOW_MS,
|
|
246
|
+
});
|
|
247
|
+
if (recovered) {
|
|
248
|
+
logger.debug(`[TaskSegmenter] Orphan-recovery (5min fallback): attached event to ` +
|
|
249
|
+
`${truncateString(recovered.id, 8)} (session=${truncateSessionId(sessionId)})`);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
if (recovered) {
|
|
253
|
+
this.storage.attachEventToTask(recovered.id, eventId);
|
|
254
|
+
logger.debug(`[TaskSegmenter] Orphan-recovery (smart-window): attached event to ` +
|
|
255
|
+
`${truncateString(recovered.id, 8)} (session=${truncateSessionId(sessionId)})`);
|
|
45
256
|
}
|
|
46
257
|
}
|
|
47
258
|
/**
|
|
48
259
|
* 从数据库恢复 session 的 active 任务到内存 Map。
|
|
49
260
|
* 用于 daemon 重启后内存丢失场景的 lazy 恢复。
|
|
50
261
|
* 找不到 active 任务时返回 null(不报错)。
|
|
262
|
+
*
|
|
263
|
+
* spec b1480935 (2026-06-01 Option A): only `task_kind='user'` tasks are
|
|
264
|
+
* eligible — callback / image / system rows MUST NOT be re-installed as
|
|
265
|
+
* the session's "current task" or every subsequent event would attach
|
|
266
|
+
* to an envelope row. The legacy `!is_noise` guard is preserved as a
|
|
267
|
+
* fallback for rows where backfill hasn't yet promoted task_kind.
|
|
268
|
+
*
|
|
269
|
+
* Orphan-event robustness fix (2026-06-01): switched from
|
|
270
|
+
* `queryTasks(limit:5).find(...)` to a DIRECT `getActiveUserTask()` SQL
|
|
271
|
+
* lookup. The old path took the most-recent 5 rows THEN filtered — on a
|
|
272
|
+
* high-task-count session a burst of newer agent-callback / completed rows
|
|
273
|
+
* pushed the active user task out of the top-5, so `.find()` returned null
|
|
274
|
+
* and every event after it orphaned. The direct query applies the predicate
|
|
275
|
+
* at the DB layer with no LIMIT truncation.
|
|
51
276
|
*/
|
|
52
277
|
recoverActiveTask(sessionId) {
|
|
53
|
-
const
|
|
54
|
-
const activeTask = tasks.find(t => t.status === 'active');
|
|
278
|
+
const activeTask = this.storage.getActiveUserTask(sessionId);
|
|
55
279
|
if (!activeTask)
|
|
56
280
|
return null;
|
|
57
281
|
const anchor = activeTask.end_time ?? activeTask.start_time;
|
|
@@ -61,6 +285,100 @@ export class TaskSegmenter {
|
|
|
61
285
|
logger.info(`[TaskSegmenter] Recovered active task ${truncateString(activeTask.id, 8)} for session ${truncateSessionId(sessionId)} from DB`);
|
|
62
286
|
return entry;
|
|
63
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* Orphan-event robustness fix (2026-06-01): proactively re-populate the
|
|
290
|
+
* in-memory `currentTasks` map from the DB at daemon startup.
|
|
291
|
+
*
|
|
292
|
+
* Problem: after a daemon restart `currentTasks` is empty, so every event
|
|
293
|
+
* relies on per-event lazy `recoverActiveTask`. During the restart window a
|
|
294
|
+
* burst of buffered + replayed events arrives; any whose recovery heuristic
|
|
295
|
+
* doesn't fire (e.g. the orphan-recovery smart window finds no completed
|
|
296
|
+
* task) gets dropped. Hydrating up-front means those events hit the fast
|
|
297
|
+
* `currentTasks.get()` path instead.
|
|
298
|
+
*
|
|
299
|
+
* Idempotent + fault-tolerant: safe to call multiple times (it overwrites
|
|
300
|
+
* with the same DB-derived state) and never throws — a query failure logs
|
|
301
|
+
* and leaves the map untouched so the daemon still starts.
|
|
302
|
+
*
|
|
303
|
+
* @returns number of sessions hydrated (useful for the startup log line).
|
|
304
|
+
*/
|
|
305
|
+
hydrateActiveTasks() {
|
|
306
|
+
try {
|
|
307
|
+
const rows = this.storage.queryActiveUserTaskSessions();
|
|
308
|
+
let count = 0;
|
|
309
|
+
for (const row of rows) {
|
|
310
|
+
if (!row.session_id || !row.task_id)
|
|
311
|
+
continue;
|
|
312
|
+
this.currentTasks.set(row.session_id, {
|
|
313
|
+
id: row.task_id,
|
|
314
|
+
lastTime: timestampToMs(row.start_time),
|
|
315
|
+
});
|
|
316
|
+
count += 1;
|
|
317
|
+
}
|
|
318
|
+
if (count > 0) {
|
|
319
|
+
logger.info(`[TaskSegmenter] Hydrated ${count} active user task(s) from DB on startup`);
|
|
320
|
+
}
|
|
321
|
+
return count;
|
|
322
|
+
}
|
|
323
|
+
catch (err) {
|
|
324
|
+
logger.warn(`[TaskSegmenter] hydrateActiveTasks failed (non-fatal): ${err}`);
|
|
325
|
+
return 0;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* decision c6613590 P0 缺陷 B: trusted map-hit accessor.
|
|
330
|
+
*
|
|
331
|
+
* The in-memory `currentTasks` map can hold a DANGLING pointer to a task the
|
|
332
|
+
* stale-task GC (daemon/index.ts `completeStaleActiveTasks`) already flipped
|
|
333
|
+
* to status='completed' in the DB. The old code trusted any map hit blindly,
|
|
334
|
+
* so a new prompt / late event would `linkEventToTask` onto that completed
|
|
335
|
+
* row — advancing its end_time and merging independent prompts into a stale
|
|
336
|
+
* task.
|
|
337
|
+
*
|
|
338
|
+
* Two defences run together (spec: "两个都修最稳"):
|
|
339
|
+
* 1. daemon evicts GC'd ids from the map (see {@link evictTasks}); but a
|
|
340
|
+
* daemon that never restarts can still race the 5-min GC tick.
|
|
341
|
+
* 2. THIS guard PK-rechecks `status='active'` before trusting a map hit.
|
|
342
|
+
* If the row is no longer active, we drop the stale entry and fall back
|
|
343
|
+
* to `recoverActiveTask` (DB-authoritative). This makes the map a cache,
|
|
344
|
+
* never an authority, for the active-task invariant.
|
|
345
|
+
*/
|
|
346
|
+
getTrustedCurrent(sessionId) {
|
|
347
|
+
const cached = this.currentTasks.get(sessionId);
|
|
348
|
+
if (cached) {
|
|
349
|
+
if (this.storage.isTaskActive(cached.id))
|
|
350
|
+
return cached;
|
|
351
|
+
// Dangling pointer to a GC'd / closed task — evict and re-derive from DB.
|
|
352
|
+
this.currentTasks.delete(sessionId);
|
|
353
|
+
logger.debug(`[TaskSegmenter] Dropped stale currentTasks entry ${truncateString(cached.id, 8)} ` +
|
|
354
|
+
`(no longer active in DB, session=${truncateSessionId(sessionId)})`);
|
|
355
|
+
}
|
|
356
|
+
return this.recoverActiveTask(sessionId);
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* decision c6613590 P0 缺陷 B: evict the given task ids from the in-memory
|
|
360
|
+
* `currentTasks` map. Called by the daemon's stale-task GC after it flips
|
|
361
|
+
* those tasks to 'completed' in the DB, so the map never keeps a dangling
|
|
362
|
+
* pointer that drags a closed task's end_time forward.
|
|
363
|
+
*
|
|
364
|
+
* Keyed by sessionId (the map's key), but we also verify the mapped task id
|
|
365
|
+
* matches before deleting — a session whose active task was already replaced
|
|
366
|
+
* by a newer one must NOT have its live entry evicted just because an older
|
|
367
|
+
* task on the same session was GC'd.
|
|
368
|
+
*
|
|
369
|
+
* @returns number of map entries actually evicted (for the daemon log line).
|
|
370
|
+
*/
|
|
371
|
+
evictTasks(closed) {
|
|
372
|
+
let evicted = 0;
|
|
373
|
+
for (const { id, session_id } of closed) {
|
|
374
|
+
const entry = this.currentTasks.get(session_id);
|
|
375
|
+
if (entry && entry.id === id) {
|
|
376
|
+
this.currentTasks.delete(session_id);
|
|
377
|
+
evicted += 1;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
return evicted;
|
|
381
|
+
}
|
|
64
382
|
getCurrentTaskId(sessionId) {
|
|
65
383
|
return this.currentTasks.get(sessionId)?.id ?? null;
|
|
66
384
|
}
|
|
@@ -74,21 +392,84 @@ export class TaskSegmenter {
|
|
|
74
392
|
});
|
|
75
393
|
this.currentTasks.delete(sessionId);
|
|
76
394
|
}
|
|
395
|
+
/**
|
|
396
|
+
* Boundary decision for the synchronous path.
|
|
397
|
+
*
|
|
398
|
+
* spec 1713 (2026-05-28) introduced the hard-signal boundary
|
|
399
|
+
* ({@link shouldStartNewTaskHard}); spec b1480935 (2026-06-01) kept the
|
|
400
|
+
* legacy keyword heuristic for the live daemon. We UNION the two so the
|
|
401
|
+
* decision is the strictly-more-eager of the pair: a new task starts if
|
|
402
|
+
* EITHER an explicit hard signal fires (5-min window / RESET_KEYWORDS /
|
|
403
|
+
* sub-agent return) OR the legacy keyword heuristic asks for it. This keeps
|
|
404
|
+
* every previously-passing keyword case green while satisfying the spec-1713
|
|
405
|
+
* hard-signal contract. The async classifier (when wired) corrects any
|
|
406
|
+
* over- or under-split after the fact.
|
|
407
|
+
*/
|
|
77
408
|
shouldStartNewTask(prompt, now, current) {
|
|
409
|
+
// Hard signals first — these consume the agentJustReturned flag.
|
|
410
|
+
if (this.shouldStartNewTaskHard(prompt, now, current))
|
|
411
|
+
return true;
|
|
412
|
+
// Legacy keyword heuristic (spec b1480935 live contract).
|
|
78
413
|
const minutesDiff = (now - current.lastTime) / 60000;
|
|
79
414
|
if (minutesDiff > TASK_SWITCH_MINUTES)
|
|
80
415
|
return true;
|
|
81
|
-
|
|
82
|
-
|
|
416
|
+
// decision c6613590 P0 缺陷 A (verify follow-up): the continuation gate here
|
|
417
|
+
// MUST use the SAME tightened predicate as the smart-window resume path
|
|
418
|
+
// (isContinuationPrompt), not a raw CONTINUE_KEYWORDS substring match. The
|
|
419
|
+
// old `CONTINUE_KEYWORDS.some(kw => prompt.includes(kw))` fired on '不是'/
|
|
420
|
+
// '这个'/'它' inside ordinary active-window follow-up questions
|
|
421
|
+
// ("现在全链路是不是都顺了…", "这个任务怎么又丢了…"), returning false here
|
|
422
|
+
// and merging those distinct prompts into the still-active task. Single
|
|
423
|
+
// source of truth: both the resume gate (processPrompt) and this active-task
|
|
424
|
+
// boundary now defer to isContinuationPrompt (length gate ≤16 +
|
|
425
|
+
// ACK_CONTINUE_KEYWORDS), so there is no second substring matcher to drift.
|
|
426
|
+
if (isContinuationPrompt(prompt))
|
|
83
427
|
return false;
|
|
84
428
|
const hasNewTask = NEW_TASK_KEYWORDS.some(kw => prompt.includes(kw));
|
|
85
429
|
return hasNewTask;
|
|
86
430
|
}
|
|
87
|
-
|
|
431
|
+
/**
|
|
432
|
+
* spec 1713 §10.2: the hard-signal boundary. Returns true when an OBJECTIVE
|
|
433
|
+
* marker says "new task":
|
|
434
|
+
* 1. a sub-agent just returned (agentJustReturned flag) → consumes the flag
|
|
435
|
+
* 2. gap > HARD_TIME_WINDOW_MIN (5 min)
|
|
436
|
+
* 3. an explicit RESET_KEYWORD appears in the prompt
|
|
437
|
+
*
|
|
438
|
+
* Pure of keyword *heuristics* (NEW_TASK_KEYWORDS) — those live in the legacy
|
|
439
|
+
* path. Mutates `current.agentJustReturned` (clears it) by design: the flag
|
|
440
|
+
* is a one-shot that only forces the immediately-following prompt.
|
|
441
|
+
*/
|
|
442
|
+
shouldStartNewTaskHard(prompt, now, current) {
|
|
443
|
+
if (current.agentJustReturned) {
|
|
444
|
+
current.agentJustReturned = false; // one-shot — clear on consume
|
|
445
|
+
return true;
|
|
446
|
+
}
|
|
447
|
+
const minutesDiff = (now - current.lastTime) / 60000;
|
|
448
|
+
if (minutesDiff > HARD_TIME_WINDOW_MIN)
|
|
449
|
+
return true;
|
|
450
|
+
if (RESET_KEYWORDS.some(kw => prompt.includes(kw)))
|
|
451
|
+
return true;
|
|
452
|
+
return false;
|
|
453
|
+
}
|
|
454
|
+
createTask(sessionId, prompt, timestamp, kind) {
|
|
88
455
|
const taskId = randomUUID();
|
|
89
456
|
const title = this.extractTitle(prompt);
|
|
90
|
-
|
|
91
|
-
|
|
457
|
+
// spec b1480935 (2026-06-01): is_noise is now deprecated. We KEEP writing
|
|
458
|
+
// it during the transition window so any consumer that hasn't switched to
|
|
459
|
+
// task_kind yet still sees the right value (a callback row is is_noise=1
|
|
460
|
+
// AND task_kind='agent-callback'). The boolean comes from the same
|
|
461
|
+
// heuristic for backward compat — envelope/short titles still get is_noise=1.
|
|
462
|
+
const isNoise = computeIsNoise(title) || kind !== 'user';
|
|
463
|
+
this.storage.writeTask({
|
|
464
|
+
id: taskId,
|
|
465
|
+
session_id: sessionId,
|
|
466
|
+
title,
|
|
467
|
+
start_time: timestamp,
|
|
468
|
+
is_noise: isNoise,
|
|
469
|
+
task_kind: kind,
|
|
470
|
+
});
|
|
471
|
+
logger.info(`[TaskSegmenter] New task kind=${kind} "${title}" (${truncateString(taskId, 8)})` +
|
|
472
|
+
(isNoise ? ' [noise]' : ''));
|
|
92
473
|
return taskId;
|
|
93
474
|
}
|
|
94
475
|
extractTitle(prompt) {
|
|
@@ -99,4 +480,87 @@ export class TaskSegmenter {
|
|
|
99
480
|
return truncateString(firstLine, 60);
|
|
100
481
|
}
|
|
101
482
|
}
|
|
483
|
+
/**
|
|
484
|
+
* Task-tracking overhaul (2026-05-27 spec §3.2).
|
|
485
|
+
*
|
|
486
|
+
* Compute the is_noise flag for a freshly-extracted task title. Three
|
|
487
|
+
* heuristics, all conservative — the goal is to drop obvious envelope /
|
|
488
|
+
* sub-3-char / slash-command noise WITHOUT eating real user prompts:
|
|
489
|
+
*
|
|
490
|
+
* • length(trim(title)) < 3 — sub-3-char titles ('好的'=2, 'ok'=2,
|
|
491
|
+
* single CJK char). Note: spec §3.2 lists '好的' as expected-noise
|
|
492
|
+
* and '推送吧'=3 as expected-real; this matches.
|
|
493
|
+
* • title matches one of NOISE_PROMPT_PREFIXES (envelope tags emitted
|
|
494
|
+
* by the framework on UserPromptSubmit).
|
|
495
|
+
* • title is a single-word slash command (`/help`, `/login`, …) — the
|
|
496
|
+
* user didn't actually start a new task, they fired a CC slash menu.
|
|
497
|
+
*
|
|
498
|
+
* What this DOES NOT flag (intentional — spec §3.2):
|
|
499
|
+
* - Semantic acknowledgements like '批准' / 'approve' / 'ok' / '可以'.
|
|
500
|
+
* Those titles should never reach createTask once SpecGate.handle
|
|
501
|
+
* Approval is wired in Step 6. If they DO arrive in the meantime
|
|
502
|
+
* (e.g. test seeds, legacy bug, race), Web shows them so the user
|
|
503
|
+
* can spot the regression rather than silently dropping them.
|
|
504
|
+
*
|
|
505
|
+
* Exported for unit-test reuse; the production caller is
|
|
506
|
+
* TaskSegmenter.createTask above.
|
|
507
|
+
*/
|
|
508
|
+
export function computeIsNoise(title) {
|
|
509
|
+
const trimmed = title.trim();
|
|
510
|
+
if (trimmed.length === 0)
|
|
511
|
+
return true;
|
|
512
|
+
if (trimmed.length < 3)
|
|
513
|
+
return true;
|
|
514
|
+
// Envelope detection reuses the canonical isNoisePrompt utility so the
|
|
515
|
+
// prefix list stays a single source of truth (see core/utils/noise-prompt.ts).
|
|
516
|
+
if (isNoisePrompt(trimmed))
|
|
517
|
+
return true;
|
|
518
|
+
// Single-word slash command (starts with /, contains no whitespace).
|
|
519
|
+
if (trimmed.startsWith('/') && !/\s/.test(trimmed))
|
|
520
|
+
return true;
|
|
521
|
+
return false;
|
|
522
|
+
}
|
|
523
|
+
/**
|
|
524
|
+
* True if the prompt is actually a tool-generated envelope (task-notification,
|
|
525
|
+
* system-reminder, image attachment, etc.) rather than a real human prompt.
|
|
526
|
+
*
|
|
527
|
+
* Thin wrapper over the canonical {@link isNoisePrompt} (core/utils). Kept
|
|
528
|
+
* as a named export so existing imports stay stable; each consumer's
|
|
529
|
+
* "what to do with noise" decision still lives at the call site (spec-gate
|
|
530
|
+
* skips auto-spec, here we skip task creation).
|
|
531
|
+
*/
|
|
532
|
+
export function isNoisePromptForSegmenter(prompt) {
|
|
533
|
+
return isNoisePrompt(prompt);
|
|
534
|
+
}
|
|
535
|
+
/**
|
|
536
|
+
* True if the prompt is a genuine short continuation / acknowledgement
|
|
537
|
+
* ("继续" / "好的,这样可以" / "对对对" / "ok" / "批准" …) that should resume
|
|
538
|
+
* a recently-completed task via the B+ smart-window gate.
|
|
539
|
+
*
|
|
540
|
+
* decision c6613590 P0 缺陷 A — the old implementation (and the now-retired
|
|
541
|
+
* `CONTINUE_KEYWORDS` table) was `CONTINUE_KEYWORDS.some(kw => prompt.includes(kw))`,
|
|
542
|
+
* a pure SUBSTRING match.
|
|
543
|
+
* Because the keyword list contained '不是' / '这个' / '那个' / '它' / '不对',
|
|
544
|
+
* ordinary NEW questions were mis-classified as continuations and merged into
|
|
545
|
+
* a stale task:
|
|
546
|
+
* • "现在全链路是不是都顺了?知识库、skill都正常了吗" → '不是' matched
|
|
547
|
+
* • "这个任务怎么又丢了?老是丢数据不行啊" → '这个' matched
|
|
548
|
+
*
|
|
549
|
+
* The fix has two layers, BOTH must hold:
|
|
550
|
+
* 1. Length gate — the trimmed prompt must be ≤ ACK_MAX_LEN. A genuine ack
|
|
551
|
+
* is short; a multi-clause question is not.
|
|
552
|
+
* 2. Ack-token presence — an ACK_CONTINUE_KEYWORD (collision-prone tokens
|
|
553
|
+
* removed) must appear in the (short) prompt.
|
|
554
|
+
*
|
|
555
|
+
* This keeps every real ack a continuation ("继续"/"好的,这样可以"/"对对对"/
|
|
556
|
+
* "好的可以这样做") while the two real-world merge bugs above now return false
|
|
557
|
+
* and correctly start a new task. Exported for unit-test reuse.
|
|
558
|
+
*/
|
|
559
|
+
export function isContinuationPrompt(prompt) {
|
|
560
|
+
const trimmed = prompt.trim();
|
|
561
|
+
if (trimmed.length === 0 || trimmed.length > ACK_MAX_LEN)
|
|
562
|
+
return false;
|
|
563
|
+
const lower = trimmed.toLowerCase();
|
|
564
|
+
return ACK_CONTINUE_KEYWORDS.some(kw => lower.includes(kw.toLowerCase()));
|
|
565
|
+
}
|
|
102
566
|
//# sourceMappingURL=task-segmenter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-segmenter.js","sourceRoot":"","sources":["../../../src/daemon/services/task-segmenter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-segmenter.js","sourceRoot":"","sources":["../../../src/daemon/services/task-segmenter.ts"],"names":[],"mappings":"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"}
|