@winspan/claude-forge 8.54.3 → 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 +155 -17
- 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-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 -73
- package/dist/skills/official-skills.js.map +0 -1
- package/dist/skills/semantic-matcher.d.ts +0 -60
- package/dist/skills/semantic-matcher.d.ts.map +0 -1
- package/dist/skills/semantic-matcher.js +0 -192
- package/dist/skills/semantic-matcher.js.map +0 -1
- package/dist/skills/upgrade-engine.d.ts +0 -93
- package/dist/skills/upgrade-engine.d.ts.map +0 -1
- package/dist/skills/upgrade-engine.js +0 -447
- package/dist/skills/upgrade-engine.js.map +0 -1
- package/dist/skills/upgrade-prompt.d.ts +0 -20
- package/dist/skills/upgrade-prompt.d.ts.map +0 -1
- package/dist/skills/upgrade-prompt.js +0 -75
- package/dist/skills/upgrade-prompt.js.map +0 -1
- package/dist/web/routes/ai.d.ts +0 -10
- package/dist/web/routes/ai.d.ts.map +0 -1
- package/dist/web/routes/ai.js +0 -186
- package/dist/web/routes/ai.js.map +0 -1
- package/dist/web/routes/token-usage.d.ts +0 -7
- package/dist/web/routes/token-usage.d.ts.map +0 -1
- package/dist/web/routes/token-usage.js +0 -18
- package/dist/web/routes/token-usage.js.map +0 -1
- package/dist/web/ssrf-guard.d.ts +0 -35
- package/dist/web/ssrf-guard.d.ts.map +0 -1
- package/dist/web/ssrf-guard.js +0 -93
- package/dist/web/ssrf-guard.js.map +0 -1
- package/dist/web/static/assets/AIConfig-CdDWzJyO.js +0 -2
- package/dist/web/static/assets/AIConfig-CdDWzJyO.js.map +0 -1
- package/dist/web/static/assets/Dashboard-CoEmmIDt.js +0 -2
- package/dist/web/static/assets/Dashboard-CoEmmIDt.js.map +0 -1
- package/dist/web/static/assets/Drawer-DdRTzlLB.js +0 -2
- package/dist/web/static/assets/Drawer-DdRTzlLB.js.map +0 -1
- package/dist/web/static/assets/Events-DrIq1SUS.js +0 -2
- package/dist/web/static/assets/Events-DrIq1SUS.js.map +0 -1
- package/dist/web/static/assets/Reports-DFBM3MDK.js +0 -2
- package/dist/web/static/assets/Reports-DFBM3MDK.js.map +0 -1
- package/dist/web/static/assets/SearchInput-qCj_jAcf.js +0 -2
- package/dist/web/static/assets/SearchInput-qCj_jAcf.js.map +0 -1
- package/dist/web/static/assets/SessionDetail-CCzwdoT7.js +0 -2
- package/dist/web/static/assets/SessionDetail-CCzwdoT7.js.map +0 -1
- package/dist/web/static/assets/Sessions-FfLYkAw9.js +0 -2
- package/dist/web/static/assets/Sessions-FfLYkAw9.js.map +0 -1
- package/dist/web/static/assets/Skills-C8Gvs3Qa.js +0 -2
- package/dist/web/static/assets/Skills-C8Gvs3Qa.js.map +0 -1
- package/dist/web/static/assets/TaskDetail-BS8pYhaR.js +0 -2
- package/dist/web/static/assets/TaskDetail-BS8pYhaR.js.map +0 -1
- package/dist/web/static/assets/Tasks-CyuhizG8.js +0 -2
- package/dist/web/static/assets/Tasks-CyuhizG8.js.map +0 -1
- package/dist/web/static/assets/charts-CLrM0_uM.js +0 -37
- package/dist/web/static/assets/charts-CLrM0_uM.js.map +0 -1
- package/dist/web/static/assets/date-fns-CZ_bHujz.js +0 -2
- package/dist/web/static/assets/date-fns-CZ_bHujz.js.map +0 -1
- package/dist/web/static/assets/export-L_VBD2p1.js +0 -4
- package/dist/web/static/assets/export-L_VBD2p1.js.map +0 -1
- package/dist/web/static/assets/index-CBX47X8l.js +0 -3
- package/dist/web/static/assets/index-CBX47X8l.js.map +0 -1
- package/dist/web/static/assets/index-DjIoMdoR.css +0 -1
- package/dist/web/static/assets/lucide-Bs_edTLa.js +0 -232
- package/dist/web/static/assets/lucide-Bs_edTLa.js.map +0 -1
- package/dist/web/static/assets/query-C99w429o.js +0 -2
- package/dist/web/static/assets/react-vendor-CSp-GLFF.js +0 -49
- package/dist/web/static/assets/react-vendor-CSp-GLFF.js.map +0 -1
- package/dist/web/static/assets/syntax-highlighter-44FakypI.js +0 -9
- package/dist/web/static/assets/syntax-highlighter-44FakypI.js.map +0 -1
- package/dist/web/static/assets/task-title-BhOcemuR.js +0 -2
- package/dist/web/static/assets/task-title-BhOcemuR.js.map +0 -1
- package/dist/web/static/assets/time-Bxuk0M-C.js +0 -2
- package/dist/web/static/assets/time-Bxuk0M-C.js.map +0 -1
- package/dist/web/static/assets/vendor-CMMjVdZs.js +0 -64
- package/dist/web/static/assets/vendor-CMMjVdZs.js.map +0 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file knowledge-query.ts
|
|
3
|
+
* MCP tool: `knowledge_query`
|
|
4
|
+
*
|
|
5
|
+
* Wrap `queryKnowledge` from `../query.ts` with an MCP-friendly contract:
|
|
6
|
+
* - Structured input parameters with sensible defaults
|
|
7
|
+
* - Friendly degradation when KB is not built (`ok: true, pages: [], kb_not_built: true`)
|
|
8
|
+
* - Preview truncation when `include_content` is false
|
|
9
|
+
*
|
|
10
|
+
* See `docs/design/2026-05-19/1100-knowledge-mcp-tools-spec.md` §2.1.
|
|
11
|
+
*/
|
|
12
|
+
import type { RepoMapSymbol } from '../repo-map.js';
|
|
13
|
+
import type { SQLiteStorage } from '../../core/storage/sqlite.js';
|
|
14
|
+
export interface KnowledgeQueryParams {
|
|
15
|
+
/** Free-text query (min 1 char). */
|
|
16
|
+
query: string;
|
|
17
|
+
/** Max number of page hits to return (1-10, default 3). */
|
|
18
|
+
max_results?: number;
|
|
19
|
+
/** Whether to also return repo-map symbol hits (default true). */
|
|
20
|
+
include_repo_map?: boolean;
|
|
21
|
+
/** Whether to return full markdown content (default false; only preview is returned). */
|
|
22
|
+
include_content?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface KnowledgeQueryPageHit {
|
|
25
|
+
name: string;
|
|
26
|
+
title: string;
|
|
27
|
+
score: number;
|
|
28
|
+
matched_keywords: string[];
|
|
29
|
+
matched_in: ('title' | 'content' | 'refs')[];
|
|
30
|
+
/** Page kind: 'module' (modules/X.md) or 'cross' (root-level cross-module page). */
|
|
31
|
+
kind: 'module' | 'cross';
|
|
32
|
+
/** First ~500 chars of markdown. Present when `include_content=false`. */
|
|
33
|
+
preview?: string;
|
|
34
|
+
/** Full markdown. Present when `include_content=true`. */
|
|
35
|
+
content?: string;
|
|
36
|
+
refs_count: number;
|
|
37
|
+
generated_at: string;
|
|
38
|
+
source_hash: string;
|
|
39
|
+
}
|
|
40
|
+
export interface KnowledgeQueryResult {
|
|
41
|
+
ok: true;
|
|
42
|
+
query: string;
|
|
43
|
+
total_pages_scanned: number;
|
|
44
|
+
pages: KnowledgeQueryPageHit[];
|
|
45
|
+
/** Present when `include_repo_map=true` and at least one symbol matched. */
|
|
46
|
+
repo_map_hits?: RepoMapSymbol[];
|
|
47
|
+
/** Present only when KB is not built. */
|
|
48
|
+
kb_not_built?: true;
|
|
49
|
+
/** Free-text hint accompanying `kb_not_built` or no-token situations. */
|
|
50
|
+
hint?: string;
|
|
51
|
+
/** Free-text note used when the query tokenises to nothing. */
|
|
52
|
+
note?: string;
|
|
53
|
+
}
|
|
54
|
+
/** Optional execution context (forward-compatible with future storage / session needs). */
|
|
55
|
+
export interface KnowledgeQueryContext {
|
|
56
|
+
projectRoot?: string;
|
|
57
|
+
sessionId?: string;
|
|
58
|
+
/**
|
|
59
|
+
* Optional storage handle for telemetry (v9.5+).
|
|
60
|
+
*
|
|
61
|
+
* When supplied, the inner `queryKnowledge` call appends a row to
|
|
62
|
+
* `kb_query_log`. MCP wrapper passes it through (since v0 P0 fix); other
|
|
63
|
+
* callers (daemon-internal / unit tests) may omit it. Failures swallowed
|
|
64
|
+
* fail-silent — telemetry MUST NEVER break the query.
|
|
65
|
+
*/
|
|
66
|
+
storage?: SQLiteStorage;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Run a keyword search against the local KB.
|
|
70
|
+
*
|
|
71
|
+
* Returns `ok: true` even when the KB is missing or nothing matched — callers
|
|
72
|
+
* should treat empty `pages` as a normal outcome, not an error.
|
|
73
|
+
*
|
|
74
|
+
* @throws when the underlying file IO blows up (rare; caught by the MCP layer).
|
|
75
|
+
*/
|
|
76
|
+
export declare function knowledgeQuery(params: KnowledgeQueryParams, context?: KnowledgeQueryContext): Promise<KnowledgeQueryResult>;
|
|
77
|
+
//# sourceMappingURL=knowledge-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-query.d.ts","sourceRoot":"","sources":["../../../src/knowledge/tools/knowledge-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AASlE,MAAM,WAAW,oBAAoB;IACnC,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IAEd,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,yFAAyF;IACzF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,EAAE,CAAC,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC;IAC7C,oFAAoF;IACpF,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,4EAA4E;IAC5E,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAChC,yCAAyC;IACzC,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,2FAA2F;AAC3F,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAMD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC,CAmF/B"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file knowledge-query.ts
|
|
3
|
+
* MCP tool: `knowledge_query`
|
|
4
|
+
*
|
|
5
|
+
* Wrap `queryKnowledge` from `../query.ts` with an MCP-friendly contract:
|
|
6
|
+
* - Structured input parameters with sensible defaults
|
|
7
|
+
* - Friendly degradation when KB is not built (`ok: true, pages: [], kb_not_built: true`)
|
|
8
|
+
* - Preview truncation when `include_content` is false
|
|
9
|
+
*
|
|
10
|
+
* See `docs/design/2026-05-19/1100-knowledge-mcp-tools-spec.md` §2.1.
|
|
11
|
+
*/
|
|
12
|
+
import path from 'node:path';
|
|
13
|
+
import fs from 'node:fs';
|
|
14
|
+
import { queryKnowledge } from '../query.js';
|
|
15
|
+
import * as K from '../constants.js';
|
|
16
|
+
import { logger } from '../../core/utils/logger.js';
|
|
17
|
+
/** Length of the page-preview snippet returned when `include_content=false`. */
|
|
18
|
+
const PREVIEW_BYTES = 500;
|
|
19
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
20
|
+
// Implementation
|
|
21
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
22
|
+
/**
|
|
23
|
+
* Run a keyword search against the local KB.
|
|
24
|
+
*
|
|
25
|
+
* Returns `ok: true` even when the KB is missing or nothing matched — callers
|
|
26
|
+
* should treat empty `pages` as a normal outcome, not an error.
|
|
27
|
+
*
|
|
28
|
+
* @throws when the underlying file IO blows up (rare; caught by the MCP layer).
|
|
29
|
+
*/
|
|
30
|
+
export async function knowledgeQuery(params, context = {}) {
|
|
31
|
+
const projectRoot = context.projectRoot ?? process.cwd();
|
|
32
|
+
const kbDir = path.join(projectRoot, K.KB_DIRNAME);
|
|
33
|
+
const maxResults = params.max_results ?? 3;
|
|
34
|
+
const includeRepoMap = params.include_repo_map !== false; // default true
|
|
35
|
+
const includeContent = params.include_content === true; // default false
|
|
36
|
+
logger.info(`[knowledge_query] query="${params.query}" max=${maxResults} repo_map=${includeRepoMap} content=${includeContent}` +
|
|
37
|
+
(context.sessionId ? ` session=${context.sessionId}` : ''));
|
|
38
|
+
// ── Friendly degradation when KB is not built ──────────────────────────────
|
|
39
|
+
if (!fs.existsSync(kbDir)) {
|
|
40
|
+
return {
|
|
41
|
+
ok: true,
|
|
42
|
+
query: params.query,
|
|
43
|
+
total_pages_scanned: 0,
|
|
44
|
+
pages: [],
|
|
45
|
+
kb_not_built: true,
|
|
46
|
+
hint: 'Knowledge base not built. Run: cf knowledge build --apply',
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
const inner = await queryKnowledge(params.query, {
|
|
50
|
+
projectRoot,
|
|
51
|
+
maxResults,
|
|
52
|
+
includeRepoMap,
|
|
53
|
+
storage: context.storage,
|
|
54
|
+
});
|
|
55
|
+
// ── Tokeniser yielded nothing (e.g. only stop-words) ───────────────────────
|
|
56
|
+
if (inner.pages.length === 0 && inner.total_pages_scanned > 0) {
|
|
57
|
+
// Distinguish "nothing matched" (still ok) from "no tokens at all".
|
|
58
|
+
// We can't tell here whether tokenisation succeeded; but since `pages=[]`
|
|
59
|
+
// and total_pages_scanned > 0 is a normal "no hits" outcome, we only add
|
|
60
|
+
// a hint if the raw query collapses to all-whitespace / single-char.
|
|
61
|
+
const trimmed = params.query.trim();
|
|
62
|
+
if (trimmed.length < 2) {
|
|
63
|
+
return {
|
|
64
|
+
ok: true,
|
|
65
|
+
query: params.query,
|
|
66
|
+
total_pages_scanned: inner.total_pages_scanned,
|
|
67
|
+
pages: [],
|
|
68
|
+
note: 'query yielded no tokens (too short or all stop-words)',
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// ── Shape page hits ────────────────────────────────────────────────────────
|
|
73
|
+
const pages = inner.pages.map((hit) => {
|
|
74
|
+
const base = {
|
|
75
|
+
name: hit.page.name,
|
|
76
|
+
title: hit.page.title,
|
|
77
|
+
score: hit.score,
|
|
78
|
+
matched_keywords: hit.matched_keywords,
|
|
79
|
+
matched_in: hit.matched_in,
|
|
80
|
+
kind: hit.page.name.includes('/') ? 'module' : 'cross',
|
|
81
|
+
refs_count: hit.page.refs.length,
|
|
82
|
+
generated_at: hit.page.generated_at,
|
|
83
|
+
source_hash: hit.page.source_hash,
|
|
84
|
+
};
|
|
85
|
+
if (includeContent) {
|
|
86
|
+
base.content = hit.page.content;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
base.preview = hit.page.content.slice(0, PREVIEW_BYTES);
|
|
90
|
+
}
|
|
91
|
+
return base;
|
|
92
|
+
});
|
|
93
|
+
const result = {
|
|
94
|
+
ok: true,
|
|
95
|
+
query: params.query,
|
|
96
|
+
total_pages_scanned: inner.total_pages_scanned,
|
|
97
|
+
pages,
|
|
98
|
+
};
|
|
99
|
+
if (includeRepoMap && inner.repo_map_hits && inner.repo_map_hits.length > 0) {
|
|
100
|
+
result.repo_map_hits = inner.repo_map_hits;
|
|
101
|
+
}
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=knowledge-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-query.js","sourceRoot":"","sources":["../../../src/knowledge/tools/knowledge-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file repo-map-lookup.ts
|
|
3
|
+
* MCP tool: `repo_map_lookup`
|
|
4
|
+
*
|
|
5
|
+
* Look up repo-map symbols by exact name, substring, or module prefix.
|
|
6
|
+
*
|
|
7
|
+
* See spec §2.3.
|
|
8
|
+
*/
|
|
9
|
+
import { type RepoMapSymbol, type RepoMapSymbolKind } from '../repo-map.js';
|
|
10
|
+
export interface RepoMapLookupParams {
|
|
11
|
+
/** Exact symbol name (e.g. "SocketServer.start"). */
|
|
12
|
+
symbol?: string;
|
|
13
|
+
/** Case-insensitive substring of symbol name. */
|
|
14
|
+
symbol_contains?: string;
|
|
15
|
+
/** `src/<module>/` prefix filter (e.g. "daemon"). */
|
|
16
|
+
module?: string;
|
|
17
|
+
/** Restrict to a specific symbol kind. */
|
|
18
|
+
kind?: RepoMapSymbolKind;
|
|
19
|
+
/** Max results (1-50, default 20). */
|
|
20
|
+
max_results?: number;
|
|
21
|
+
}
|
|
22
|
+
export type RepoMapLookupMode = 'symbol_exact' | 'symbol_contains' | 'module';
|
|
23
|
+
export type RepoMapLookupResult = {
|
|
24
|
+
ok: true;
|
|
25
|
+
mode: RepoMapLookupMode;
|
|
26
|
+
total: number;
|
|
27
|
+
truncated: boolean;
|
|
28
|
+
symbols: RepoMapSymbol[];
|
|
29
|
+
repo_map_meta: {
|
|
30
|
+
generated_at: string;
|
|
31
|
+
source_hash: string;
|
|
32
|
+
file_count: number;
|
|
33
|
+
symbol_count: number;
|
|
34
|
+
};
|
|
35
|
+
} | {
|
|
36
|
+
ok: false;
|
|
37
|
+
error: 'repo_map_not_built' | 'invalid_params';
|
|
38
|
+
hint?: string;
|
|
39
|
+
};
|
|
40
|
+
export interface RepoMapLookupContext {
|
|
41
|
+
projectRoot?: string;
|
|
42
|
+
sessionId?: string;
|
|
43
|
+
}
|
|
44
|
+
export declare function repoMapLookup(params: RepoMapLookupParams, context?: RepoMapLookupContext): Promise<RepoMapLookupResult>;
|
|
45
|
+
//# sourceMappingURL=repo-map-lookup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-map-lookup.d.ts","sourceRoot":"","sources":["../../../src/knowledge/tools/repo-map-lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAUxB,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,iBAAiB,GAAG,QAAQ,CAAC;AAE9E,MAAM,MAAM,mBAAmB,GAC3B;IACE,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,aAAa,EAAE;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,oBAAoB,GAAG,gBAAgB,CAAC;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAkE9B"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file repo-map-lookup.ts
|
|
3
|
+
* MCP tool: `repo_map_lookup`
|
|
4
|
+
*
|
|
5
|
+
* Look up repo-map symbols by exact name, substring, or module prefix.
|
|
6
|
+
*
|
|
7
|
+
* See spec §2.3.
|
|
8
|
+
*/
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
import { loadRepoMap, lookupSymbol, filterByModule, } from '../repo-map.js';
|
|
11
|
+
import * as K from '../constants.js';
|
|
12
|
+
import { logger } from '../../core/utils/logger.js';
|
|
13
|
+
const DEFAULT_MAX_RESULTS = 20;
|
|
14
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
15
|
+
// Implementation
|
|
16
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
17
|
+
export async function repoMapLookup(params, context = {}) {
|
|
18
|
+
const projectRoot = context.projectRoot ?? process.cwd();
|
|
19
|
+
const kbDir = path.join(projectRoot, K.KB_DIRNAME);
|
|
20
|
+
const maxResults = params.max_results ?? DEFAULT_MAX_RESULTS;
|
|
21
|
+
logger.info(`[repo_map_lookup] symbol="${params.symbol ?? ''}" contains="${params.symbol_contains ?? ''}" module="${params.module ?? ''}" kind=${params.kind ?? '-'} max=${maxResults}` +
|
|
22
|
+
(context.sessionId ? ` session=${context.sessionId}` : ''));
|
|
23
|
+
// ── At-least-one-query-param guard (also enforced by zod refine at MCP layer)
|
|
24
|
+
if (!params.symbol && !params.symbol_contains && !params.module) {
|
|
25
|
+
return {
|
|
26
|
+
ok: false,
|
|
27
|
+
error: 'invalid_params',
|
|
28
|
+
hint: 'Provide at least one of symbol / symbol_contains / module',
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const repoMap = loadRepoMap(kbDir);
|
|
32
|
+
if (!repoMap) {
|
|
33
|
+
return {
|
|
34
|
+
ok: false,
|
|
35
|
+
error: 'repo_map_not_built',
|
|
36
|
+
hint: 'Run: cf knowledge build --apply',
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
// ── Decide mode (priority: symbol > symbol_contains > module) ─────────────
|
|
40
|
+
let mode;
|
|
41
|
+
let candidates;
|
|
42
|
+
if (params.symbol) {
|
|
43
|
+
mode = 'symbol_exact';
|
|
44
|
+
const hit = lookupSymbol(repoMap, params.symbol);
|
|
45
|
+
candidates = hit ? [hit] : [];
|
|
46
|
+
}
|
|
47
|
+
else if (params.symbol_contains) {
|
|
48
|
+
mode = 'symbol_contains';
|
|
49
|
+
const needle = params.symbol_contains.toLowerCase();
|
|
50
|
+
candidates = repoMap.symbols.filter((s) => s.name.toLowerCase().includes(needle));
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
// module
|
|
54
|
+
mode = 'module';
|
|
55
|
+
candidates = filterByModule(repoMap, params.module);
|
|
56
|
+
}
|
|
57
|
+
// ── Optional kind filter ──────────────────────────────────────────────────
|
|
58
|
+
if (params.kind) {
|
|
59
|
+
candidates = candidates.filter((s) => s.kind === params.kind);
|
|
60
|
+
}
|
|
61
|
+
// ── Truncate ──────────────────────────────────────────────────────────────
|
|
62
|
+
const totalBeforeTruncate = candidates.length;
|
|
63
|
+
const symbols = candidates.slice(0, maxResults);
|
|
64
|
+
const truncated = totalBeforeTruncate > symbols.length;
|
|
65
|
+
return {
|
|
66
|
+
ok: true,
|
|
67
|
+
mode,
|
|
68
|
+
total: totalBeforeTruncate,
|
|
69
|
+
truncated,
|
|
70
|
+
symbols,
|
|
71
|
+
repo_map_meta: extractMeta(repoMap),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function extractMeta(repoMap) {
|
|
75
|
+
return {
|
|
76
|
+
generated_at: repoMap.generated_at,
|
|
77
|
+
source_hash: repoMap.source_hash,
|
|
78
|
+
file_count: repoMap.file_count,
|
|
79
|
+
symbol_count: repoMap.symbol_count,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=repo-map-lookup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-map-lookup.js","sourceRoot":"","sources":["../../../src/knowledge/tools/repo-map-lookup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file types.ts
|
|
3
|
+
* Knowledge Base (KB) shared type definitions.
|
|
4
|
+
*
|
|
5
|
+
* Two-layer architecture:
|
|
6
|
+
* - Static layer → RepoMap / RepoMapSymbol (TypeScript Compiler API)
|
|
7
|
+
* - AI layer → KBPage / KBMeta (LLM-compiled markdown)
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* A single symbol (class, function, method, etc.) extracted from the source
|
|
11
|
+
* tree by the TypeScript Compiler API.
|
|
12
|
+
*
|
|
13
|
+
* `file` is always relative to the project's `src/` directory so that paths
|
|
14
|
+
* remain portable across machines.
|
|
15
|
+
*/
|
|
16
|
+
export interface RepoMapSymbol {
|
|
17
|
+
/** File path relative to `src/` (e.g. `daemon/handlers/tool-use.ts`). */
|
|
18
|
+
file: string;
|
|
19
|
+
/** 1-based line number where the symbol declaration starts. */
|
|
20
|
+
line: number;
|
|
21
|
+
/** Symbol kind as recognised by the TypeScript Compiler API. */
|
|
22
|
+
kind: 'class' | 'function' | 'method' | 'interface' | 'type' | 'const' | 'enum';
|
|
23
|
+
/**
|
|
24
|
+
* Fully-qualified symbol name.
|
|
25
|
+
* Methods are written as `ClassName.methodName` (e.g. `SocketServer.start`).
|
|
26
|
+
*/
|
|
27
|
+
name: string;
|
|
28
|
+
/** Complete type signature without the body (e.g. `function start(port: number): Promise<void>`). */
|
|
29
|
+
signature: string;
|
|
30
|
+
/** Whether the symbol carries an `export` modifier. */
|
|
31
|
+
exports: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Leading JSDoc comment, if present.
|
|
34
|
+
* Truncated to 200 characters to keep the repo-map compact.
|
|
35
|
+
*/
|
|
36
|
+
docComment?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The complete repo-map produced by a single static-analysis run.
|
|
40
|
+
*
|
|
41
|
+
* Stored as `.forge-knowledge/repo-map.json`. A new map is generated
|
|
42
|
+
* whenever the git HEAD changes (detected via `source_hash`).
|
|
43
|
+
*/
|
|
44
|
+
export interface RepoMap {
|
|
45
|
+
/** Format version. */
|
|
46
|
+
version: '1.0';
|
|
47
|
+
/** ISO-8601 datetime when this map was generated. */
|
|
48
|
+
generated_at: string;
|
|
49
|
+
/** `git rev-parse --short HEAD` at generation time. */
|
|
50
|
+
source_hash: string;
|
|
51
|
+
/** All symbols found across the scanned files. */
|
|
52
|
+
symbols: RepoMapSymbol[];
|
|
53
|
+
/** Total number of source files scanned. */
|
|
54
|
+
file_count: number;
|
|
55
|
+
/** Total number of symbols extracted. */
|
|
56
|
+
symbol_count: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* A source-code reference embedded inside a KB page.
|
|
60
|
+
*
|
|
61
|
+
* References anchor KB content to exact file locations so that staleness
|
|
62
|
+
* can be detected when the underlying code changes.
|
|
63
|
+
*/
|
|
64
|
+
export interface KBRef {
|
|
65
|
+
/** File path relative to project root (e.g. `src/daemon/server.ts`). */
|
|
66
|
+
file: string;
|
|
67
|
+
/** 1-based starting line number. */
|
|
68
|
+
lineStart: number;
|
|
69
|
+
/** 1-based ending line number (inclusive), if the reference spans a range. */
|
|
70
|
+
lineEnd?: number;
|
|
71
|
+
/**
|
|
72
|
+
* Qualified symbol name at this location (e.g. `SocketServer.start`).
|
|
73
|
+
* Populated when the reference was resolved against the repo-map.
|
|
74
|
+
*/
|
|
75
|
+
symbol?: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* A single AI-compiled knowledge page.
|
|
79
|
+
*
|
|
80
|
+
* Pages live under `.forge-knowledge/modules/<name>` or as root pages
|
|
81
|
+
* like `.forge-knowledge/overview.md`.
|
|
82
|
+
*
|
|
83
|
+
* The `name` field doubles as the page's unique key and its relative path
|
|
84
|
+
* within `.forge-knowledge/` (e.g. `modules/daemon.md`).
|
|
85
|
+
*/
|
|
86
|
+
export interface KBPage {
|
|
87
|
+
/** Relative path within `.forge-knowledge/` (e.g. `modules/daemon.md`). */
|
|
88
|
+
name: string;
|
|
89
|
+
/** Human-readable page title (e.g. `Daemon Module`). */
|
|
90
|
+
title: string;
|
|
91
|
+
/** Full page content as markdown. */
|
|
92
|
+
content: string;
|
|
93
|
+
/** Source-code references cited in the content. */
|
|
94
|
+
refs: KBRef[];
|
|
95
|
+
/** ISO-8601 datetime when this page was generated. */
|
|
96
|
+
generated_at: string;
|
|
97
|
+
/** `git rev-parse --short HEAD` when this page was generated. */
|
|
98
|
+
source_hash: string;
|
|
99
|
+
/** Identifier of the AI model that compiled this page (e.g. `claude-sonnet-4-6`). */
|
|
100
|
+
ai_model?: string;
|
|
101
|
+
/**
|
|
102
|
+
* Audit status of this page against the current source tree.
|
|
103
|
+
* - `ok` – all refs resolve and line-content matches.
|
|
104
|
+
* - `stale` – one or more refs have drifted or the source hash differs.
|
|
105
|
+
* - `error` – page file is unreadable or structurally invalid.
|
|
106
|
+
*/
|
|
107
|
+
audit_status?: 'ok' | 'stale' | 'error';
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Top-level metadata file stored at `.forge-knowledge/.meta.json`.
|
|
111
|
+
*
|
|
112
|
+
* Acts as an index over all KB pages so that staleness checks and incremental
|
|
113
|
+
* rebuilds can be performed without reading every page file.
|
|
114
|
+
*/
|
|
115
|
+
export interface KBMeta {
|
|
116
|
+
/** Format version. */
|
|
117
|
+
version: '1.0';
|
|
118
|
+
/** ISO-8601 datetime when this metadata was last written. */
|
|
119
|
+
generated_at: string;
|
|
120
|
+
/** `git rev-parse --short HEAD` at the time of the last full build. */
|
|
121
|
+
source_hash: string;
|
|
122
|
+
/**
|
|
123
|
+
* Per-page metadata keyed by the page's `name` field
|
|
124
|
+
* (e.g. `"modules/daemon.md"`).
|
|
125
|
+
*/
|
|
126
|
+
pages: Record<string, {
|
|
127
|
+
/** Source files that were fed to the AI when compiling this page. */
|
|
128
|
+
source_files: string[];
|
|
129
|
+
/**
|
|
130
|
+
* Module content fingerprint at page-generation time.
|
|
131
|
+
*
|
|
132
|
+
* v9.1+: SHA-256 (truncated 12 chars) of the module's source files —
|
|
133
|
+
* computed by `computeModuleHash` in module-hash.ts. Drives the
|
|
134
|
+
* incremental-build cache: a matching hash means the module's source
|
|
135
|
+
* has not changed and AI compilation can be skipped.
|
|
136
|
+
*
|
|
137
|
+
* v9.0 legacy values are git short hashes (`git rev-parse --short HEAD`);
|
|
138
|
+
* they will never match a v9.1+ content hash, triggering a one-time
|
|
139
|
+
* full rebuild on first upgrade. This is the expected migration path.
|
|
140
|
+
*
|
|
141
|
+
* Special sentinels:
|
|
142
|
+
* - `'unknown'` — page compiled but AI returned no usable output
|
|
143
|
+
* (transient; overwritten by writeMetadata's
|
|
144
|
+
* failure-protection branch).
|
|
145
|
+
* - `'build-failed'` — AI compilation failed AND no prior hash was
|
|
146
|
+
* available; guarantees the next build retries.
|
|
147
|
+
*/
|
|
148
|
+
source_hash: string;
|
|
149
|
+
/** AI model identifier used to compile this page. */
|
|
150
|
+
ai_model: string;
|
|
151
|
+
/** Number of `KBRef` entries in the page. */
|
|
152
|
+
refs_count: number;
|
|
153
|
+
/** Audit status as of the last `cf kb audit` run. */
|
|
154
|
+
audit_status: 'ok' | 'stale' | 'error';
|
|
155
|
+
}>;
|
|
156
|
+
}
|
|
157
|
+
/** Severity level for a validation diagnostic. */
|
|
158
|
+
export type ValidationSeverity = 'error' | 'warn' | 'info';
|
|
159
|
+
/**
|
|
160
|
+
* A single diagnostic issue produced by reference validation.
|
|
161
|
+
*/
|
|
162
|
+
export interface ValidationIssue {
|
|
163
|
+
/** Issue severity. */
|
|
164
|
+
severity: ValidationSeverity;
|
|
165
|
+
/** Human-readable description of the issue. */
|
|
166
|
+
msg: string;
|
|
167
|
+
/**
|
|
168
|
+
* Zero-based index into `KBPage.refs` that triggered this issue.
|
|
169
|
+
* Absent for page-level (non-ref) diagnostics.
|
|
170
|
+
*/
|
|
171
|
+
refIndex?: number;
|
|
172
|
+
/** Source file path implicated in the issue, if applicable. */
|
|
173
|
+
file?: string;
|
|
174
|
+
/** Line number implicated in the issue, if applicable. */
|
|
175
|
+
line?: number;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* The aggregated result of validating all `KBRef` entries in a single page.
|
|
179
|
+
*/
|
|
180
|
+
export interface ValidationResult {
|
|
181
|
+
/** `true` when no `error`-severity issues were found. */
|
|
182
|
+
valid: boolean;
|
|
183
|
+
/** All issues discovered during validation, sorted by severity. */
|
|
184
|
+
issues: ValidationIssue[];
|
|
185
|
+
/** Total number of refs examined. */
|
|
186
|
+
refsTotal: number;
|
|
187
|
+
/** Number of refs that resolved cleanly. */
|
|
188
|
+
refsValid: number;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* The full report produced by `cf kb build`.
|
|
192
|
+
*
|
|
193
|
+
* In `dry-run` mode the report is written to
|
|
194
|
+
* `~/.claude-forge/knowledge-build-report.md` but no page files are touched.
|
|
195
|
+
* In `apply` mode the pages are written to `.forge-knowledge/` and the report
|
|
196
|
+
* is also persisted for auditing.
|
|
197
|
+
*/
|
|
198
|
+
export interface BuildReport {
|
|
199
|
+
/** Whether the build was a preview or a live run. */
|
|
200
|
+
mode: 'dry-run' | 'apply';
|
|
201
|
+
/** ISO-8601 datetime when the build ran. */
|
|
202
|
+
generated_at: string;
|
|
203
|
+
/** AI model used to compile pages. */
|
|
204
|
+
ai_model: string;
|
|
205
|
+
/** Per-page results. */
|
|
206
|
+
pages: Array<{
|
|
207
|
+
/** Page name (same as `KBPage.name`). */
|
|
208
|
+
name: string;
|
|
209
|
+
/** The compiled page content and metadata. */
|
|
210
|
+
page: KBPage;
|
|
211
|
+
/** Reference-validation result for this page. */
|
|
212
|
+
validation: ValidationResult;
|
|
213
|
+
/**
|
|
214
|
+
* `true` when validation passed and the page is safe to write to disk.
|
|
215
|
+
* Always `false` in `dry-run` mode.
|
|
216
|
+
*/
|
|
217
|
+
ready_to_apply: boolean;
|
|
218
|
+
}>;
|
|
219
|
+
/** Total number of pages processed. */
|
|
220
|
+
total_pages: number;
|
|
221
|
+
/** Total number of refs across all pages. */
|
|
222
|
+
total_refs: number;
|
|
223
|
+
/** Total number of validation issues (all severities). */
|
|
224
|
+
total_issues: number;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* The result returned by a KB query (used by `cf kb query` and the spawn-agent
|
|
228
|
+
* context-injection path).
|
|
229
|
+
*/
|
|
230
|
+
export interface QueryResult {
|
|
231
|
+
/** KB pages that matched the query. */
|
|
232
|
+
pages: KBPage[];
|
|
233
|
+
/**
|
|
234
|
+
* Repo-map symbols that matched the query terms (populated when the static
|
|
235
|
+
* layer is also searched).
|
|
236
|
+
*/
|
|
237
|
+
repo_map_hits?: RepoMapSymbol[];
|
|
238
|
+
/** The original query string. */
|
|
239
|
+
query: string;
|
|
240
|
+
/**
|
|
241
|
+
* Strategy used to match results.
|
|
242
|
+
* - `keyword` – simple full-text substring match.
|
|
243
|
+
* - `pageindex` – page-name / title index lookup.
|
|
244
|
+
* - `hybrid` – combined keyword + pageindex.
|
|
245
|
+
*/
|
|
246
|
+
match_strategy: 'keyword' | 'pageindex' | 'hybrid';
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* The result returned after attempting to install the `post-commit` git hook
|
|
250
|
+
* for automatic KB staleness marking.
|
|
251
|
+
*/
|
|
252
|
+
export interface GitHookInstallResult {
|
|
253
|
+
/**
|
|
254
|
+
* What action was taken:
|
|
255
|
+
* - `created` – hook file did not exist; a new file was created.
|
|
256
|
+
* - `appended` – hook file existed; our snippet was appended.
|
|
257
|
+
* - `already-installed` – our marker was already present; nothing changed.
|
|
258
|
+
* - `skipped-non-git` – the current directory is not a git repository.
|
|
259
|
+
*/
|
|
260
|
+
action: 'created' | 'appended' | 'already-installed' | 'skipped-non-git';
|
|
261
|
+
/** Absolute path to the hook file. */
|
|
262
|
+
hookPath: string;
|
|
263
|
+
/**
|
|
264
|
+
* `true` when an existing user hook was detected and preserved (hook was
|
|
265
|
+
* appended rather than overwritten).
|
|
266
|
+
*/
|
|
267
|
+
preserved_user_hook?: boolean;
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/knowledge/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file types.ts
|
|
3
|
+
* Knowledge Base (KB) shared type definitions.
|
|
4
|
+
*
|
|
5
|
+
* Two-layer architecture:
|
|
6
|
+
* - Static layer → RepoMap / RepoMapSymbol (TypeScript Compiler API)
|
|
7
|
+
* - AI layer → KBPage / KBMeta (LLM-compiled markdown)
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/knowledge/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|