codingbuddy 4.0.1 → 4.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/README.md +3 -3
- package/dist/api/mcp.js +1 -2
- package/dist/api/mcp.js.map +1 -1
- package/dist/src/agent/agent-prompt.builder.js.map +1 -1
- package/dist/src/agent/agent-summary.utils.d.ts +2 -1
- package/dist/src/agent/agent.service.d.ts +2 -1
- package/dist/src/agent/agent.service.js +49 -0
- package/dist/src/agent/agent.service.js.map +1 -1
- package/dist/src/agent/agent.types.d.ts +26 -0
- package/dist/src/agent/agent.types.js +2 -10
- package/dist/src/agent/agent.types.js.map +1 -1
- package/dist/src/analyzer/analyzer.service.js +2 -4
- package/dist/src/analyzer/analyzer.service.js.map +1 -1
- package/dist/src/analyzer/code.sampler.js +4 -9
- package/dist/src/analyzer/code.sampler.js.map +1 -1
- package/dist/src/analyzer/config.analyzer.js +3 -13
- package/dist/src/analyzer/config.analyzer.js.map +1 -1
- package/dist/src/analyzer/conventions.analyzer.js +3 -11
- package/dist/src/analyzer/conventions.analyzer.js.map +1 -1
- package/dist/src/analyzer/conventions.schemas.d.ts +0 -4
- package/dist/src/analyzer/conventions.schemas.js.map +1 -1
- package/dist/src/analyzer/conventions.types.d.ts +5 -7
- package/dist/src/analyzer/conventions.types.js.map +1 -1
- package/dist/src/analyzer/directory.analyzer.d.ts +1 -1
- package/dist/src/analyzer/directory.analyzer.js +5 -23
- package/dist/src/analyzer/directory.analyzer.js.map +1 -1
- package/dist/src/analyzer/package.analyzer.js +1 -3
- package/dist/src/analyzer/package.analyzer.js.map +1 -1
- package/dist/src/app.module.js +2 -0
- package/dist/src/app.module.js.map +1 -1
- package/dist/src/checklist/checklist.schema.d.ts +2 -1
- package/dist/src/checklist/checklist.schema.js.map +1 -1
- package/dist/src/checklist/checklist.service.js.map +1 -1
- package/dist/src/checklist/checklist.types.js +1 -6
- package/dist/src/checklist/checklist.types.js.map +1 -1
- package/dist/src/cli/cli.d.ts +1 -2
- package/dist/src/cli/cli.js +9 -1
- package/dist/src/cli/cli.js.map +1 -1
- package/dist/src/cli/init/claude-settings.utils.d.ts +14 -0
- package/dist/src/cli/init/claude-settings.utils.js +74 -0
- package/dist/src/cli/init/claude-settings.utils.js.map +1 -0
- package/dist/src/cli/init/config.generator.d.ts +0 -2
- package/dist/src/cli/init/config.generator.js +0 -2
- package/dist/src/cli/init/config.generator.js.map +1 -1
- package/dist/src/cli/init/config.writer.d.ts +0 -1
- package/dist/src/cli/init/config.writer.js +0 -1
- package/dist/src/cli/init/config.writer.js.map +1 -1
- package/dist/src/cli/init/index.d.ts +2 -2
- package/dist/src/cli/init/index.js.map +1 -1
- package/dist/src/cli/init/init.command.js +13 -8
- package/dist/src/cli/init/init.command.js.map +1 -1
- package/dist/src/cli/init/init.constants.d.ts +1 -0
- package/dist/src/cli/init/init.constants.js +12 -2
- package/dist/src/cli/init/init.constants.js.map +1 -1
- package/dist/src/cli/init/init.wizard.d.ts +2 -1
- package/dist/src/cli/init/init.wizard.js +3 -8
- package/dist/src/cli/init/init.wizard.js.map +1 -1
- package/dist/src/cli/init/prompt.builder.js.map +1 -1
- package/dist/src/cli/init/prompts/basic-prompt.js.map +1 -1
- package/dist/src/cli/init/prompts/index.d.ts +3 -3
- package/dist/src/cli/init/prompts/index.js.map +1 -1
- package/dist/src/cli/init/prompts/language-prompt.js +1 -3
- package/dist/src/cli/init/prompts/language-prompt.js.map +1 -1
- package/dist/src/cli/init/prompts/model-prompt.js.map +1 -1
- package/dist/src/cli/init/prompts/tech-stack-prompt.js.map +1 -1
- package/dist/src/cli/init/prompts/test-strategy-prompt.js.map +1 -1
- package/dist/src/cli/init/summary/index.d.ts +1 -1
- package/dist/src/cli/init/summary/index.js.map +1 -1
- package/dist/src/cli/init/templates/config-renderer.js.map +1 -1
- package/dist/src/cli/init/templates/index.d.ts +1 -1
- package/dist/src/cli/init/templates/index.js.map +1 -1
- package/dist/src/cli/init/templates/template.renderer.js.map +1 -1
- package/dist/src/cli/init/templates/template.selector.js.map +1 -1
- package/dist/src/cli/run-tui.d.ts +1 -0
- package/dist/src/cli/run-tui.js +67 -0
- package/dist/src/cli/run-tui.js.map +1 -0
- package/dist/src/config/config-diff.service.js +6 -7
- package/dist/src/config/config-diff.service.js.map +1 -1
- package/dist/src/config/config.loader.d.ts +0 -2
- package/dist/src/config/config.loader.js +1 -5
- package/dist/src/config/config.loader.js.map +1 -1
- package/dist/src/config/config.schema.d.ts +0 -16
- package/dist/src/config/config.schema.js +8 -10
- package/dist/src/config/config.schema.js.map +1 -1
- package/dist/src/config/config.service.js +1 -4
- package/dist/src/config/config.service.js.map +1 -1
- package/dist/src/config/context.loader.js.map +1 -1
- package/dist/src/config/ignore.parser.js.map +1 -1
- package/dist/src/config/index.d.ts +2 -2
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/context/context-document.service.js +3 -1
- package/dist/src/context/context-document.service.js.map +1 -1
- package/dist/src/context/context-document.types.d.ts +2 -8
- package/dist/src/context/context-document.types.js +10 -16
- package/dist/src/context/context-document.types.js.map +1 -1
- package/dist/src/context/context-parser.utils.d.ts +1 -9
- package/dist/src/context/context-parser.utils.js +2 -39
- package/dist/src/context/context-parser.utils.js.map +1 -1
- package/dist/src/context/context-serializer.utils.js +1 -2
- package/dist/src/context/context-serializer.utils.js.map +1 -1
- package/dist/src/context/context.service.js +4 -16
- package/dist/src/context/context.service.js.map +1 -1
- package/dist/src/context/context.types.js +3 -17
- package/dist/src/context/context.types.js.map +1 -1
- package/dist/src/custom/custom.service.js.map +1 -1
- package/dist/src/diagnostic/diagnostic-log.service.js +1 -3
- package/dist/src/diagnostic/diagnostic-log.service.js.map +1 -1
- package/dist/src/keyword/activation-message.builder.js +2 -6
- package/dist/src/keyword/activation-message.builder.js.map +1 -1
- package/dist/src/keyword/auto-executor.js +1 -3
- package/dist/src/keyword/auto-executor.js.map +1 -1
- package/dist/src/keyword/auto-executor.types.js.map +1 -1
- package/dist/src/keyword/auto-formatter.js +2 -3
- package/dist/src/keyword/auto-formatter.js.map +1 -1
- package/dist/src/keyword/auto-prompt-builder.js +1 -3
- package/dist/src/keyword/auto-prompt-builder.js.map +1 -1
- package/dist/src/keyword/complexity-classifier.js +3 -7
- package/dist/src/keyword/complexity-classifier.js.map +1 -1
- package/dist/src/keyword/complexity-indicators.js.map +1 -1
- package/dist/src/keyword/keyword.module.js +1 -6
- package/dist/src/keyword/keyword.module.js.map +1 -1
- package/dist/src/keyword/keyword.service.d.ts +1 -0
- package/dist/src/keyword/keyword.service.js +29 -26
- package/dist/src/keyword/keyword.service.js.map +1 -1
- package/dist/src/keyword/keyword.types.d.ts +17 -4
- package/dist/src/keyword/keyword.types.js +2 -10
- package/dist/src/keyword/keyword.types.js.map +1 -1
- package/dist/src/keyword/patterns/devops.patterns.d.ts +2 -0
- package/dist/src/keyword/patterns/devops.patterns.js +56 -0
- package/dist/src/keyword/patterns/devops.patterns.js.map +1 -0
- package/dist/src/keyword/patterns/frontend.patterns.d.ts +2 -0
- package/dist/src/keyword/patterns/frontend.patterns.js +76 -0
- package/dist/src/keyword/patterns/frontend.patterns.js.map +1 -0
- package/dist/src/keyword/patterns/index.d.ts +1 -1
- package/dist/src/keyword/patterns/index.js.map +1 -1
- package/dist/src/keyword/patterns/intent-pattern-checks.js +12 -0
- package/dist/src/keyword/patterns/intent-pattern-checks.js.map +1 -1
- package/dist/src/keyword/primary-agent-resolver.d.ts +1 -1
- package/dist/src/keyword/primary-agent-resolver.js +2 -1
- package/dist/src/keyword/primary-agent-resolver.js.map +1 -1
- package/dist/src/keyword/rule-filter.js.map +1 -1
- package/dist/src/keyword/srp-template.d.ts +0 -2
- package/dist/src/keyword/srp-template.js +0 -2
- package/dist/src/keyword/srp-template.js.map +1 -1
- package/dist/src/keyword/strategies/__tests__/strategy-test.utils.js.map +1 -1
- package/dist/src/keyword/strategies/act-agent.strategy.js +14 -5
- package/dist/src/keyword/strategies/act-agent.strategy.js.map +1 -1
- package/dist/src/keyword/strategies/eval-agent.strategy.js.map +1 -1
- package/dist/src/keyword/strategies/plan-agent.strategy.js.map +1 -1
- package/dist/src/keyword/strategies/resolution-strategy.interface.d.ts +1 -0
- package/dist/src/main.js +174 -1
- package/dist/src/main.js.map +1 -1
- package/dist/src/mcp/handlers/agent.handler.d.ts +1 -0
- package/dist/src/mcp/handlers/agent.handler.js +78 -5
- package/dist/src/mcp/handlers/agent.handler.js.map +1 -1
- package/dist/src/mcp/handlers/config.handler.js.map +1 -1
- package/dist/src/mcp/handlers/context-document.handler.js +13 -20
- package/dist/src/mcp/handlers/context-document.handler.js.map +1 -1
- package/dist/src/mcp/handlers/conventions.handler.js.map +1 -1
- package/dist/src/mcp/handlers/mode.handler.d.ts +4 -1
- package/dist/src/mcp/handlers/mode.handler.js +58 -5
- package/dist/src/mcp/handlers/mode.handler.js.map +1 -1
- package/dist/src/mcp/handlers/skill.handler.js +1 -3
- package/dist/src/mcp/handlers/skill.handler.js.map +1 -1
- package/dist/src/mcp/mcp-serverless.d.ts +1 -13
- package/dist/src/mcp/mcp-serverless.js +24 -206
- package/dist/src/mcp/mcp-serverless.js.map +1 -1
- package/dist/src/mcp/mcp.controller.d.ts +6 -2
- package/dist/src/mcp/mcp.controller.js +38 -9
- package/dist/src/mcp/mcp.controller.js.map +1 -1
- package/dist/src/mcp/mcp.module.js +2 -0
- package/dist/src/mcp/mcp.module.js.map +1 -1
- package/dist/src/mcp/mcp.service.d.ts +7 -1
- package/dist/src/mcp/mcp.service.js +55 -24
- package/dist/src/mcp/mcp.service.js.map +1 -1
- package/dist/src/mcp/sse-auth.guard.d.ts +6 -0
- package/dist/src/mcp/sse-auth.guard.js +53 -0
- package/dist/src/mcp/sse-auth.guard.js.map +1 -0
- package/dist/src/model/model.resolver.js.map +1 -1
- package/dist/src/rules/agent.schema.js.map +1 -1
- package/dist/src/rules/rules-content.utils.js.map +1 -1
- package/dist/src/rules/rules.service.d.ts +1 -3
- package/dist/src/rules/rules.service.js +43 -102
- package/dist/src/rules/rules.service.js.map +1 -1
- package/dist/src/rules/rules.types.d.ts +3 -2
- package/dist/src/rules/skill.schema.d.ts +0 -5
- package/dist/src/rules/skill.schema.js +3 -3
- package/dist/src/rules/skill.schema.js.map +1 -1
- package/dist/src/shared/async.utils.d.ts +3 -2
- package/dist/src/shared/async.utils.js.map +1 -1
- package/dist/src/shared/esm-import.d.ts +1 -0
- package/dist/src/shared/esm-import.js +17 -0
- package/dist/src/shared/esm-import.js.map +1 -0
- package/dist/src/shared/file.utils.d.ts +3 -2
- package/dist/src/shared/file.utils.js +1 -2
- package/dist/src/shared/file.utils.js.map +1 -1
- package/dist/src/shared/filesystem.interface.d.ts +0 -10
- package/dist/src/shared/filesystem.interface.js +1 -10
- package/dist/src/shared/filesystem.interface.js.map +1 -1
- package/dist/src/shared/format.utils.js.map +1 -1
- package/dist/src/shared/keyword-core.d.ts +10 -0
- package/dist/src/shared/keyword-core.js +97 -0
- package/dist/src/shared/keyword-core.js.map +1 -0
- package/dist/src/shared/language.service.js.map +1 -1
- package/dist/src/shared/language.types.d.ts +2 -1
- package/dist/src/shared/lru-cache.d.ts +2 -6
- package/dist/src/shared/path.utils.d.ts +0 -1
- package/dist/src/shared/path.utils.js +1 -3
- package/dist/src/shared/path.utils.js.map +1 -1
- package/dist/src/shared/pattern-matcher.d.ts +2 -1
- package/dist/src/shared/pattern-matcher.js.map +1 -1
- package/dist/src/shared/rules-core.d.ts +28 -0
- package/dist/src/shared/rules-core.js +167 -0
- package/dist/src/shared/rules-core.js.map +1 -0
- package/dist/src/shared/security.utils.d.ts +4 -3
- package/dist/src/shared/security.utils.js +1 -2
- package/dist/src/shared/security.utils.js.map +1 -1
- package/dist/src/shared/slug.utils.js.map +1 -1
- package/dist/src/shared/tui-bundle-path.d.ts +1 -0
- package/dist/src/shared/tui-bundle-path.js +8 -0
- package/dist/src/shared/tui-bundle-path.js.map +1 -0
- package/dist/src/shared/validation.constants.d.ts +3 -3
- package/dist/src/shared/validation.constants.js +9 -6
- package/dist/src/shared/validation.constants.js.map +1 -1
- package/dist/src/shared/verbosity.types.d.ts +2 -1
- package/dist/src/shared/verbosity.types.js +1 -2
- package/dist/src/shared/verbosity.types.js.map +1 -1
- package/dist/src/skill/i18n/keywords.js +44 -318
- package/dist/src/skill/i18n/keywords.js.map +1 -1
- package/dist/src/skill/i18n/keywords.types.js.map +1 -1
- package/dist/src/skill/skill-content.utils.d.ts +0 -1
- package/dist/src/skill/skill-content.utils.js +5 -7
- package/dist/src/skill/skill-content.utils.js.map +1 -1
- package/dist/src/skill/skill-recommendation.service.js.map +1 -1
- package/dist/src/skill/skill-triggers.js.map +1 -1
- package/dist/src/state/state.service.js.map +1 -1
- package/dist/src/tui/__perf__/memory-stability.spec.d.ts +1 -0
- package/dist/src/tui/__perf__/memory-stability.spec.js +105 -0
- package/dist/src/tui/__perf__/memory-stability.spec.js.map +1 -0
- package/dist/src/tui/__perf__/rendering-performance.spec.d.ts +1 -0
- package/dist/src/tui/__perf__/rendering-performance.spec.js +166 -0
- package/dist/src/tui/__perf__/rendering-performance.spec.js.map +1 -0
- package/dist/src/tui/cli-flags.d.ts +1 -0
- package/dist/src/tui/cli-flags.js +7 -0
- package/dist/src/tui/cli-flags.js.map +1 -0
- package/dist/src/tui/components/ActivityVisualizer.d.ts +10 -0
- package/dist/src/tui/components/ActivityVisualizer.js +22 -0
- package/dist/src/tui/components/ActivityVisualizer.js.map +1 -0
- package/dist/src/tui/components/ActivityVisualizer.spec.d.ts +1 -0
- package/dist/src/tui/components/ActivityVisualizer.spec.js +45 -0
- package/dist/src/tui/components/ActivityVisualizer.spec.js.map +1 -0
- package/dist/src/tui/components/ContextSection.d.ts +7 -0
- package/dist/src/tui/components/ContextSection.js +24 -0
- package/dist/src/tui/components/ContextSection.js.map +1 -0
- package/dist/src/tui/components/FlowMap.d.ts +12 -0
- package/dist/src/tui/components/FlowMap.js +55 -0
- package/dist/src/tui/components/FlowMap.js.map +1 -0
- package/dist/src/tui/components/FlowMap.spec.d.ts +1 -0
- package/dist/src/tui/components/FlowMap.spec.js +59 -0
- package/dist/src/tui/components/FlowMap.spec.js.map +1 -0
- package/dist/src/tui/components/FocusedAgentPanel.d.ts +19 -0
- package/dist/src/tui/components/FocusedAgentPanel.js +74 -0
- package/dist/src/tui/components/FocusedAgentPanel.js.map +1 -0
- package/dist/src/tui/components/FocusedAgentPanel.spec.d.ts +1 -0
- package/dist/src/tui/components/FocusedAgentPanel.spec.js +140 -0
- package/dist/src/tui/components/FocusedAgentPanel.spec.js.map +1 -0
- package/dist/src/tui/components/HeaderBar.d.ts +12 -0
- package/dist/src/tui/components/HeaderBar.js +55 -0
- package/dist/src/tui/components/HeaderBar.js.map +1 -0
- package/dist/src/tui/components/HeaderBar.spec.d.ts +1 -0
- package/dist/src/tui/components/HeaderBar.spec.js +78 -0
- package/dist/src/tui/components/HeaderBar.spec.js.map +1 -0
- package/dist/src/tui/components/SessionTabBar.d.ts +9 -0
- package/dist/src/tui/components/SessionTabBar.js +15 -0
- package/dist/src/tui/components/SessionTabBar.js.map +1 -0
- package/dist/src/tui/components/SessionTabBar.spec.d.ts +1 -0
- package/dist/src/tui/components/SessionTabBar.spec.js +59 -0
- package/dist/src/tui/components/SessionTabBar.spec.js.map +1 -0
- package/dist/src/tui/components/StageHealthBar.d.ts +10 -0
- package/dist/src/tui/components/StageHealthBar.js +63 -0
- package/dist/src/tui/components/StageHealthBar.js.map +1 -0
- package/dist/src/tui/components/StageHealthBar.spec.d.ts +1 -0
- package/dist/src/tui/components/StageHealthBar.spec.js +63 -0
- package/dist/src/tui/components/StageHealthBar.spec.js.map +1 -0
- package/dist/src/tui/components/activity-visualizer.pure.d.ts +9 -0
- package/dist/src/tui/components/activity-visualizer.pure.js +70 -0
- package/dist/src/tui/components/activity-visualizer.pure.js.map +1 -0
- package/dist/src/tui/components/context-section.pure.d.ts +3 -0
- package/dist/src/tui/components/context-section.pure.js +38 -0
- package/dist/src/tui/components/context-section.pure.js.map +1 -0
- package/dist/src/tui/components/flow-map.pure.d.ts +26 -0
- package/dist/src/tui/components/flow-map.pure.js +263 -0
- package/dist/src/tui/components/flow-map.pure.js.map +1 -0
- package/dist/src/tui/components/focused-agent.pure.d.ts +23 -0
- package/dist/src/tui/components/focused-agent.pure.js +87 -0
- package/dist/src/tui/components/focused-agent.pure.js.map +1 -0
- package/dist/src/tui/components/grid-layout.pure.d.ts +2 -0
- package/dist/src/tui/components/grid-layout.pure.js +50 -0
- package/dist/src/tui/components/grid-layout.pure.js.map +1 -0
- package/dist/src/tui/components/header-bar.pure.d.ts +1 -0
- package/dist/src/tui/components/header-bar.pure.js +9 -0
- package/dist/src/tui/components/header-bar.pure.js.map +1 -0
- package/dist/src/tui/components/index.d.ts +12 -0
- package/dist/src/tui/components/index.js +38 -0
- package/dist/src/tui/components/index.js.map +1 -0
- package/dist/src/tui/components/session-tab-bar.pure.d.ts +9 -0
- package/dist/src/tui/components/session-tab-bar.pure.js +45 -0
- package/dist/src/tui/components/session-tab-bar.pure.js.map +1 -0
- package/dist/src/tui/components/stage-health.pure.d.ts +4 -0
- package/dist/src/tui/components/stage-health.pure.js +59 -0
- package/dist/src/tui/components/stage-health.pure.js.map +1 -0
- package/dist/src/tui/dashboard-app.d.ts +8 -0
- package/dist/src/tui/dashboard-app.js +43 -0
- package/dist/src/tui/dashboard-app.js.map +1 -0
- package/dist/src/tui/dashboard-app.spec.d.ts +1 -0
- package/dist/src/tui/dashboard-app.spec.js +136 -0
- package/dist/src/tui/dashboard-app.spec.js.map +1 -0
- package/dist/src/tui/dashboard-types.d.ts +88 -0
- package/dist/src/tui/dashboard-types.js +32 -0
- package/dist/src/tui/dashboard-types.js.map +1 -0
- package/dist/src/tui/ensure-tui-ready.d.ts +3 -0
- package/dist/src/tui/ensure-tui-ready.js +39 -0
- package/dist/src/tui/ensure-tui-ready.js.map +1 -0
- package/dist/src/tui/eventbus-ui.integration.spec.d.ts +1 -0
- package/dist/src/tui/eventbus-ui.integration.spec.js +573 -0
- package/dist/src/tui/eventbus-ui.integration.spec.js.map +1 -0
- package/dist/src/tui/events/agent-metadata.service.d.ts +16 -0
- package/dist/src/tui/events/agent-metadata.service.js +80 -0
- package/dist/src/tui/events/agent-metadata.service.js.map +1 -0
- package/dist/src/tui/events/agent-metadata.types.d.ts +11 -0
- package/dist/src/tui/events/agent-metadata.types.js +59 -0
- package/dist/src/tui/events/agent-metadata.types.js.map +1 -0
- package/dist/src/tui/events/event-bus.d.ts +13 -0
- package/dist/src/tui/events/event-bus.js +42 -0
- package/dist/src/tui/events/event-bus.js.map +1 -0
- package/dist/src/tui/events/events.module.d.ts +2 -0
- package/dist/src/tui/events/events.module.js +25 -0
- package/dist/src/tui/events/events.module.js.map +1 -0
- package/dist/src/tui/events/index.d.ts +7 -0
- package/dist/src/tui/events/index.js +19 -0
- package/dist/src/tui/events/index.js.map +1 -0
- package/dist/src/tui/events/parse-agent.d.ts +2 -0
- package/dist/src/tui/events/parse-agent.js +85 -0
- package/dist/src/tui/events/parse-agent.js.map +1 -0
- package/dist/src/tui/events/parse-tool-response.d.ts +1 -0
- package/dist/src/tui/events/parse-tool-response.js +24 -0
- package/dist/src/tui/events/parse-tool-response.js.map +1 -0
- package/dist/src/tui/events/response-event-extractor.d.ts +27 -0
- package/dist/src/tui/events/response-event-extractor.js +224 -0
- package/dist/src/tui/events/response-event-extractor.js.map +1 -0
- package/dist/src/tui/events/tui-interceptor.d.ts +16 -0
- package/dist/src/tui/events/tui-interceptor.js +160 -0
- package/dist/src/tui/events/tui-interceptor.js.map +1 -0
- package/dist/src/tui/events/types.d.ts +95 -0
- package/dist/src/tui/events/types.js +19 -0
- package/dist/src/tui/events/types.js.map +1 -0
- package/dist/src/tui/hooks/index.d.ts +8 -0
- package/dist/src/tui/hooks/index.js +17 -0
- package/dist/src/tui/hooks/index.js.map +1 -0
- package/dist/src/tui/hooks/use-clock.d.ts +1 -0
- package/dist/src/tui/hooks/use-clock.js +16 -0
- package/dist/src/tui/hooks/use-clock.js.map +1 -0
- package/dist/src/tui/hooks/use-clock.spec.d.ts +1 -0
- package/dist/src/tui/hooks/use-clock.spec.js +43 -0
- package/dist/src/tui/hooks/use-clock.spec.js.map +1 -0
- package/dist/src/tui/hooks/use-dashboard-state.d.ts +46 -0
- package/dist/src/tui/hooks/use-dashboard-state.js +249 -0
- package/dist/src/tui/hooks/use-dashboard-state.js.map +1 -0
- package/dist/src/tui/hooks/use-focus-agent.d.ts +2 -0
- package/dist/src/tui/hooks/use-focus-agent.js +26 -0
- package/dist/src/tui/hooks/use-focus-agent.js.map +1 -0
- package/dist/src/tui/hooks/use-multi-session-state.d.ts +16 -0
- package/dist/src/tui/hooks/use-multi-session-state.js +163 -0
- package/dist/src/tui/hooks/use-multi-session-state.js.map +1 -0
- package/dist/src/tui/hooks/use-terminal-size.d.ts +9 -0
- package/dist/src/tui/hooks/use-terminal-size.js +31 -0
- package/dist/src/tui/hooks/use-terminal-size.js.map +1 -0
- package/dist/src/tui/index.d.ts +20 -0
- package/dist/src/tui/index.js +43 -0
- package/dist/src/tui/index.js.map +1 -0
- package/dist/src/tui/ipc/index.d.ts +12 -0
- package/dist/src/tui/ipc/index.js +24 -0
- package/dist/src/tui/ipc/index.js.map +1 -0
- package/dist/src/tui/ipc/instance-registry.d.ts +12 -0
- package/dist/src/tui/ipc/instance-registry.js +81 -0
- package/dist/src/tui/ipc/instance-registry.js.map +1 -0
- package/dist/src/tui/ipc/ipc-bridge.d.ts +11 -0
- package/dist/src/tui/ipc/ipc-bridge.js +33 -0
- package/dist/src/tui/ipc/ipc-bridge.js.map +1 -0
- package/dist/src/tui/ipc/ipc-client.d.ts +21 -0
- package/dist/src/tui/ipc/ipc-client.js +102 -0
- package/dist/src/tui/ipc/ipc-client.js.map +1 -0
- package/dist/src/tui/ipc/ipc-debug.d.ts +1 -0
- package/dist/src/tui/ipc/ipc-debug.js +11 -0
- package/dist/src/tui/ipc/ipc-debug.js.map +1 -0
- package/dist/src/tui/ipc/ipc-server.d.ts +15 -0
- package/dist/src/tui/ipc/ipc-server.js +98 -0
- package/dist/src/tui/ipc/ipc-server.js.map +1 -0
- package/dist/src/tui/ipc/ipc-state-cache.d.ts +17 -0
- package/dist/src/tui/ipc/ipc-state-cache.js +69 -0
- package/dist/src/tui/ipc/ipc-state-cache.js.map +1 -0
- package/dist/src/tui/ipc/ipc.types.d.ts +19 -0
- package/dist/src/tui/ipc/ipc.types.js +45 -0
- package/dist/src/tui/ipc/ipc.types.js.map +1 -0
- package/dist/src/tui/ipc/multi-session-manager.d.ts +39 -0
- package/dist/src/tui/ipc/multi-session-manager.js +143 -0
- package/dist/src/tui/ipc/multi-session-manager.js.map +1 -0
- package/dist/src/tui/ipc/shutdown-manager.d.ts +7 -0
- package/dist/src/tui/ipc/shutdown-manager.js +32 -0
- package/dist/src/tui/ipc/shutdown-manager.js.map +1 -0
- package/dist/src/tui/ipc/test-utils.d.ts +2 -0
- package/dist/src/tui/ipc/test-utils.js +20 -0
- package/dist/src/tui/ipc/test-utils.js.map +1 -0
- package/dist/src/tui/ipc/tui-auto-launcher.d.ts +22 -0
- package/dist/src/tui/ipc/tui-auto-launcher.js +113 -0
- package/dist/src/tui/ipc/tui-auto-launcher.js.map +1 -0
- package/dist/src/tui/multi-session-app.d.ts +6 -0
- package/dist/src/tui/multi-session-app.js +55 -0
- package/dist/src/tui/multi-session-app.js.map +1 -0
- package/dist/src/tui/multi-session-app.spec.d.ts +1 -0
- package/dist/src/tui/multi-session-app.spec.js +95 -0
- package/dist/src/tui/multi-session-app.spec.js.map +1 -0
- package/dist/src/tui/transport-tui.integration.spec.d.ts +1 -0
- package/dist/src/tui/transport-tui.integration.spec.js +189 -0
- package/dist/src/tui/transport-tui.integration.spec.js.map +1 -0
- package/dist/src/tui/tui-config.d.ts +12 -0
- package/dist/src/tui/tui-config.js +32 -0
- package/dist/src/tui/tui-config.js.map +1 -0
- package/dist/src/tui/types.d.ts +22 -0
- package/dist/src/tui/types.js +37 -0
- package/dist/src/tui/types.js.map +1 -0
- package/dist/src/tui/utils/color-buffer.d.ts +31 -0
- package/dist/src/tui/utils/color-buffer.js +86 -0
- package/dist/src/tui/utils/color-buffer.js.map +1 -0
- package/dist/src/tui/utils/colors.d.ts +5 -0
- package/dist/src/tui/utils/colors.js +35 -0
- package/dist/src/tui/utils/colors.js.map +1 -0
- package/dist/src/tui/utils/display-width.d.ts +3 -0
- package/dist/src/tui/utils/display-width.js +45 -0
- package/dist/src/tui/utils/display-width.js.map +1 -0
- package/dist/src/tui/utils/edge-router.d.ts +9 -0
- package/dist/src/tui/utils/edge-router.js +65 -0
- package/dist/src/tui/utils/edge-router.js.map +1 -0
- package/dist/src/tui/utils/icons.d.ts +7 -0
- package/dist/src/tui/utils/icons.js +49 -0
- package/dist/src/tui/utils/icons.js.map +1 -0
- package/dist/src/tui/utils/index.d.ts +6 -0
- package/dist/src/tui/utils/index.js +36 -0
- package/dist/src/tui/utils/index.js.map +1 -0
- package/dist/src/tui/utils/theme.d.ts +50 -0
- package/dist/src/tui/utils/theme.js +128 -0
- package/dist/src/tui/utils/theme.js.map +1 -0
- package/dist/src/tui-bundle.mjs +5755 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +16 -6
- package/dist/src/shared/token-counter.d.ts +0 -13
- package/dist/src/shared/token-counter.js +0 -41
- package/dist/src/shared/token-counter.js.map +0 -1
|
@@ -22,12 +22,14 @@ const rules_service_1 = require("../rules/rules.service");
|
|
|
22
22
|
const config_service_1 = require("../config/config.service");
|
|
23
23
|
const version_utils_1 = require("../shared/version.utils");
|
|
24
24
|
const handlers_1 = require("./handlers");
|
|
25
|
+
const events_1 = require("../tui/events");
|
|
25
26
|
const url_1 = require("url");
|
|
26
27
|
let McpService = McpService_1 = class McpService {
|
|
27
|
-
constructor(rulesService, configService, toolHandlers) {
|
|
28
|
+
constructor(rulesService, configService, toolHandlers, tuiInterceptor) {
|
|
28
29
|
this.rulesService = rulesService;
|
|
29
30
|
this.configService = configService;
|
|
30
31
|
this.toolHandlers = toolHandlers;
|
|
32
|
+
this.tuiInterceptor = tuiInterceptor;
|
|
31
33
|
this.logger = new common_1.Logger(McpService_1.name);
|
|
32
34
|
this.server = new index_js_1.Server({
|
|
33
35
|
name: 'codingbuddy-rules-server',
|
|
@@ -73,22 +75,45 @@ let McpService = McpService_1 = class McpService {
|
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
77
|
async listRootsWithTimeout() {
|
|
78
|
+
let timeoutId;
|
|
76
79
|
const timeoutPromise = new Promise((_, reject) => {
|
|
77
|
-
setTimeout(() => reject(new Error('listRoots timeout')), McpService_1.LIST_ROOTS_TIMEOUT_MS);
|
|
80
|
+
timeoutId = setTimeout(() => reject(new Error('listRoots timeout')), McpService_1.LIST_ROOTS_TIMEOUT_MS);
|
|
78
81
|
});
|
|
79
|
-
|
|
82
|
+
try {
|
|
83
|
+
return await Promise.race([this.server.listRoots(), timeoutPromise]);
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
if (timeoutId !== undefined) {
|
|
87
|
+
clearTimeout(timeoutId);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
80
90
|
}
|
|
81
91
|
getServer() {
|
|
82
92
|
return this.server;
|
|
83
93
|
}
|
|
94
|
+
createServer() {
|
|
95
|
+
const newServer = new index_js_1.Server({
|
|
96
|
+
name: 'codingbuddy-rules-server',
|
|
97
|
+
version: (0, version_utils_1.getPackageVersion)(),
|
|
98
|
+
}, {
|
|
99
|
+
capabilities: {
|
|
100
|
+
resources: {},
|
|
101
|
+
tools: {},
|
|
102
|
+
prompts: {},
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
this.registerResourcesOn(newServer);
|
|
106
|
+
this.registerToolsOn(newServer);
|
|
107
|
+
this.registerPromptsOn(newServer);
|
|
108
|
+
return newServer;
|
|
109
|
+
}
|
|
84
110
|
registerResources() {
|
|
85
|
-
this.
|
|
111
|
+
this.registerResourcesOn(this.server);
|
|
112
|
+
}
|
|
113
|
+
registerResourcesOn(server) {
|
|
114
|
+
server.setRequestHandler(types_js_1.ListResourcesRequestSchema, async () => {
|
|
86
115
|
const agents = await this.rulesService.listAgents();
|
|
87
|
-
const coreRules = [
|
|
88
|
-
'rules/core.md',
|
|
89
|
-
'rules/project.md',
|
|
90
|
-
'rules/augmented-coding.md',
|
|
91
|
-
];
|
|
116
|
+
const coreRules = ['rules/core.md', 'rules/project.md', 'rules/augmented-coding.md'];
|
|
92
117
|
return {
|
|
93
118
|
resources: [
|
|
94
119
|
{
|
|
@@ -112,7 +137,7 @@ let McpService = McpService_1 = class McpService {
|
|
|
112
137
|
],
|
|
113
138
|
};
|
|
114
139
|
});
|
|
115
|
-
|
|
140
|
+
server.setRequestHandler(types_js_1.ReadResourceRequestSchema, async (request) => {
|
|
116
141
|
const uri = request.params.uri;
|
|
117
142
|
if (uri === 'config://project') {
|
|
118
143
|
try {
|
|
@@ -141,9 +166,7 @@ let McpService = McpService_1 = class McpService {
|
|
|
141
166
|
contents: [
|
|
142
167
|
{
|
|
143
168
|
uri: uri,
|
|
144
|
-
mimeType: relativePath.endsWith('.json')
|
|
145
|
-
? 'application/json'
|
|
146
|
-
: 'text/markdown',
|
|
169
|
+
mimeType: relativePath.endsWith('.json') ? 'application/json' : 'text/markdown',
|
|
147
170
|
text: content,
|
|
148
171
|
},
|
|
149
172
|
],
|
|
@@ -155,23 +178,31 @@ let McpService = McpService_1 = class McpService {
|
|
|
155
178
|
});
|
|
156
179
|
}
|
|
157
180
|
registerTools() {
|
|
158
|
-
this.
|
|
181
|
+
this.registerToolsOn(this.server);
|
|
182
|
+
}
|
|
183
|
+
registerToolsOn(server) {
|
|
184
|
+
server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
|
|
159
185
|
const tools = this.toolHandlers.flatMap(handler => handler.getToolDefinitions());
|
|
160
186
|
return { tools };
|
|
161
187
|
});
|
|
162
|
-
|
|
188
|
+
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
163
189
|
const { name, arguments: args } = request.params;
|
|
164
|
-
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
|
|
190
|
+
return this.tuiInterceptor.intercept(name, args, async () => {
|
|
191
|
+
for (const handler of this.toolHandlers) {
|
|
192
|
+
const result = await handler.handle(name, args);
|
|
193
|
+
if (result !== null) {
|
|
194
|
+
return result;
|
|
195
|
+
}
|
|
168
196
|
}
|
|
169
|
-
|
|
170
|
-
|
|
197
|
+
throw new types_js_1.McpError(types_js_1.ErrorCode.MethodNotFound, `Tool not found: ${name}`);
|
|
198
|
+
});
|
|
171
199
|
});
|
|
172
200
|
}
|
|
173
201
|
registerPrompts() {
|
|
174
|
-
this.
|
|
202
|
+
this.registerPromptsOn(this.server);
|
|
203
|
+
}
|
|
204
|
+
registerPromptsOn(server) {
|
|
205
|
+
server.setRequestHandler(types_js_1.ListPromptsRequestSchema, async () => {
|
|
175
206
|
return {
|
|
176
207
|
prompts: [
|
|
177
208
|
{
|
|
@@ -188,7 +219,7 @@ let McpService = McpService_1 = class McpService {
|
|
|
188
219
|
],
|
|
189
220
|
};
|
|
190
221
|
});
|
|
191
|
-
|
|
222
|
+
server.setRequestHandler(types_js_1.GetPromptRequestSchema, async (request) => {
|
|
192
223
|
if (request.params.name === 'activate_agent') {
|
|
193
224
|
const role = String(request.params.arguments?.role);
|
|
194
225
|
try {
|
|
@@ -264,6 +295,6 @@ exports.McpService = McpService = McpService_1 = __decorate([
|
|
|
264
295
|
(0, common_1.Injectable)(),
|
|
265
296
|
__param(2, (0, common_1.Inject)(handlers_1.TOOL_HANDLERS)),
|
|
266
297
|
__metadata("design:paramtypes", [rules_service_1.RulesService,
|
|
267
|
-
config_service_1.ConfigService, Array])
|
|
298
|
+
config_service_1.ConfigService, Array, events_1.TuiInterceptor])
|
|
268
299
|
], McpService);
|
|
269
300
|
//# sourceMappingURL=mcp.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.service.js","sourceRoot":"","sources":["../../../src/mcp/mcp.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA0E;AAC1E,wEAAmE;AACnE,wEAAiF;AACjF,iEAS4C;AAC5C,0DAAsD;AACtD,6DAAyD;AACzD,2DAA4D;AAG5D,yCAA2C;AAC3C,6BAAoC;AAG7B,IAAM,UAAU,kBAAhB,MAAM,UAAU;IAIrB,YACU,YAA0B,EAC1B,aAA4B,EACb,YAAmC;
|
|
1
|
+
{"version":3,"file":"mcp.service.js","sourceRoot":"","sources":["../../../src/mcp/mcp.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var SseAuthGuard_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.SseAuthGuard = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const crypto_1 = require("crypto");
|
|
13
|
+
let SseAuthGuard = SseAuthGuard_1 = class SseAuthGuard {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.logger = new common_1.Logger(SseAuthGuard_1.name);
|
|
16
|
+
}
|
|
17
|
+
canActivate(context) {
|
|
18
|
+
const expectedToken = process.env.MCP_SSE_TOKEN;
|
|
19
|
+
if (!expectedToken) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
const request = context.switchToHttp().getRequest();
|
|
23
|
+
const authHeader = request.headers.authorization;
|
|
24
|
+
if (!authHeader) {
|
|
25
|
+
this.logger.warn('SSE request rejected: missing Authorization header');
|
|
26
|
+
throw new common_1.UnauthorizedException('Missing Authorization header');
|
|
27
|
+
}
|
|
28
|
+
const parts = authHeader.split(' ');
|
|
29
|
+
if (parts.length !== 2 || parts[0] !== 'Bearer' || !parts[1]) {
|
|
30
|
+
this.logger.warn('SSE request rejected: invalid Authorization format');
|
|
31
|
+
throw new common_1.UnauthorizedException('Invalid Authorization header format');
|
|
32
|
+
}
|
|
33
|
+
const providedToken = parts[1];
|
|
34
|
+
if (!this.tokensMatch(expectedToken, providedToken)) {
|
|
35
|
+
this.logger.warn('SSE request rejected: invalid token');
|
|
36
|
+
throw new common_1.UnauthorizedException('Invalid token');
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
tokensMatch(expected, provided) {
|
|
41
|
+
const expectedBuf = Buffer.from(expected, 'utf-8');
|
|
42
|
+
const providedBuf = Buffer.from(provided, 'utf-8');
|
|
43
|
+
if (expectedBuf.length !== providedBuf.length) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
return (0, crypto_1.timingSafeEqual)(expectedBuf, providedBuf);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
exports.SseAuthGuard = SseAuthGuard;
|
|
50
|
+
exports.SseAuthGuard = SseAuthGuard = SseAuthGuard_1 = __decorate([
|
|
51
|
+
(0, common_1.Injectable)()
|
|
52
|
+
], SseAuthGuard);
|
|
53
|
+
//# sourceMappingURL=sse-auth.guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sse-auth.guard.js","sourceRoot":"","sources":["../../../src/mcp/sse-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAMwB;AAExB,mCAAyC;AAWlC,IAAM,YAAY,oBAAlB,MAAM,YAAY;IAAlB;QACY,WAAM,GAAG,IAAI,eAAM,CAAC,cAAY,CAAC,IAAI,CAAC,CAAC;IAgD1D,CAAC;IA9CC,WAAW,CAAC,OAAyB;QACnC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAGhD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAW,CAAC;QAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QAEjD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YACvE,MAAM,IAAI,8BAAqB,CAAC,8BAA8B,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YACvE,MAAM,IAAI,8BAAqB,CAAC,qCAAqC,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE/B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACxD,MAAM,IAAI,8BAAqB,CAAC,eAAe,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAMO,WAAW,CAAC,QAAgB,EAAE,QAAgB;QACpD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEnD,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAA,wBAAe,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;CACF,CAAA;AAjDY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;GACA,YAAY,CAiDxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.resolver.js","sourceRoot":"","sources":["../../../src/model/model.resolver.ts"],"names":[],"mappings":";;;AA8CA,
|
|
1
|
+
{"version":3,"file":"model.resolver.js","sourceRoot":"","sources":["../../../src/model/model.resolver.ts"],"names":[],"mappings":";;;AA8CA,wCAKC;AAOD,8DAKC;AAOD,oCAEC;AAWD,oCAwBC;AA1GD,uDAAkD;AAUrC,QAAA,oBAAoB,GAAG,+BAAa,CAAC;AAMrC,QAAA,oBAAoB,GAAG;IAClC,eAAe;IACf,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;CACR,CAAC;AAKX,MAAM,YAAY,GAAG,cAAc,CAAC;AAKpC,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AAKD,MAAM,yBAAyB,GAC7B,sIAAsI,CAAC;AAMzI,SAAgB,cAAc,CAAC,kBAAsC;IACnE,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,OAAO,4BAAoB,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,GAAG,4BAAoB,EAAE,GAAG,kBAAkB,CAAC,CAAC;AAC1D,CAAC;AAOD,SAAgB,yBAAyB,CACvC,OAAe,EACf,kBAAsC;IAEtC,OAAO,sBAAsB,OAAO,sBAAsB,cAAc,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5G,CAAC;AAOD,SAAgB,YAAY,CAAC,OAAe,EAAE,kBAAsC;IAClF,OAAO,cAAc,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACvF,CAAC;AAWD,SAAgB,YAAY,CAAC,MAA0B;IACrD,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC;IAG1D,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,MAAM,GAAkB;YAC5B,KAAK,EAAE,kBAAkB;YACzB,MAAM,EAAE,QAAQ;SACjB,CAAC;QAGF,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,OAAO,GAAG,yBAAyB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QACrF,CAAC;aAEI,IAAI,YAAY,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,OAAO,GAAG,yBAAyB,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAGD,OAAO,EAAE,KAAK,EAAE,4BAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC3D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.schema.js","sourceRoot":"","sources":["../../../src/rules/agent.schema.ts"],"names":[],"mappings":";;;AA8FA,
|
|
1
|
+
{"version":3,"file":"agent.schema.js","sourceRoot":"","sources":["../../../src/rules/agent.schema.ts"],"names":[],"mappings":";;;AA8FA,8CAgCC;AArHD,yBAAyB;AACzB,6DAAiE;AAMjE,MAAa,gBAAiB,SAAQ,KAAK;IACzC,YACE,OAAe,EACC,OAAoB;QAEpC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,YAAO,GAAP,OAAO,CAAa;QAGpC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AARD,4CAQC;AAYD,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;AAKnE,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACjD,CAAC;KACD,WAAW,EAAE,CAAC;AAKjB,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC;KACD,QAAQ,EAAE,CAAC;AAKd,MAAM,kBAAkB,GAAG,CAAC;KACzB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,KAAK,EAAE,iBAAiB;IACxB,IAAI,EAAE,UAAU;CACjB,CAAC;KACD,WAAW,EAAE,CAAC;AAuBjB,SAAgB,iBAAiB,CAAC,IAAa;IAC7C,IAAI,CAAC;QAEH,MAAM,YAAY,GAAG,IAAA,sCAAqB,EAAC,IAAI,CAAC,CAAC;QACjD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,gBAAgB,CAAC,yCAAyC,YAAY,YAAY,CAAC,CAAC;QAChG,CAAC;QAGD,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;iBACrC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACX,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACtE,OAAO,GAAG,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YACxC,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,gBAAgB,CAAC,0BAA0B,YAAY,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACrF,CAAC;QAED,OAAO,MAAM,CAAC,IAA6B,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEf,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;YACtC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,IAAI,gBAAgB,CACxB,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACrF,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules-content.utils.js","sourceRoot":"","sources":["../../../src/rules/rules-content.utils.ts"],"names":[],"mappings":";;AAkCA,
|
|
1
|
+
{"version":3,"file":"rules-content.utils.js","sourceRoot":"","sources":["../../../src/rules/rules-content.utils.ts"],"names":[],"mappings":";;AAkCA,kDA0CC;AAgBD,oDAEC;AAjFD,MAAM,cAAc,GAAmC;IACrD,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,QAAQ;CACf,CAAC;AAiBF,SAAgB,mBAAmB,CAAC,OAAe,EAAE,SAAyB;IAC5E,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAGxC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IAGD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAQD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG;QACjB,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;QACjC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC;QAChC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC;KAC/B,CAAC;IAEF,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,GAAG,GAAG,KAAK,GAAG,GAAG,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;YAEtC,UAAU,GAAG,GAAG,CAAC;YACjB,MAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,OAAO,GAAG,SAAS,8BAA8B,UAAU,sCAAsC,CAAC;AACpG,CAAC;AAgBD,SAAgB,oBAAoB,CAAC,SAAyB;IAC5D,OAAO,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AgentProfile, SearchResult } from './rules.types';
|
|
2
|
-
import {
|
|
2
|
+
import type { Skill } from './skill.schema';
|
|
3
3
|
import { CustomService } from '../custom';
|
|
4
4
|
import { ConfigService } from '../config/config.service';
|
|
5
5
|
export declare class RulesService {
|
|
@@ -8,8 +8,6 @@ export declare class RulesService {
|
|
|
8
8
|
private readonly logger;
|
|
9
9
|
private readonly rulesDir;
|
|
10
10
|
constructor(customService: CustomService, configService: ConfigService);
|
|
11
|
-
private findDevRulesDir;
|
|
12
|
-
private checkExists;
|
|
13
11
|
getRuleContent(relativePath: string): Promise<string>;
|
|
14
12
|
listAgents(): Promise<string[]>;
|
|
15
13
|
private sortAgentsByPriority;
|
|
@@ -12,79 +12,62 @@ var RulesService_1;
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.RulesService = void 0;
|
|
14
14
|
const common_1 = require("@nestjs/common");
|
|
15
|
-
const fs = require("fs/promises");
|
|
16
15
|
const fs_1 = require("fs");
|
|
17
|
-
const path = require("path");
|
|
18
|
-
const security_utils_1 = require("../shared/security.utils");
|
|
19
|
-
const agent_schema_1 = require("./agent.schema");
|
|
20
|
-
const skill_schema_1 = require("./skill.schema");
|
|
21
16
|
const custom_1 = require("../custom");
|
|
22
17
|
const config_service_1 = require("../config/config.service");
|
|
23
18
|
const keyword_types_1 = require("../keyword/keyword.types");
|
|
19
|
+
const rules_core_1 = require("../shared/rules-core");
|
|
24
20
|
let RulesService = RulesService_1 = class RulesService {
|
|
25
21
|
constructor(customService, configService) {
|
|
26
22
|
this.customService = customService;
|
|
27
23
|
this.configService = configService;
|
|
28
24
|
this.logger = new common_1.Logger(RulesService_1.name);
|
|
29
25
|
if (process.env.CODINGBUDDY_RULES_DIR) {
|
|
30
|
-
this.rulesDir =
|
|
26
|
+
this.rulesDir = (0, rules_core_1.resolveRulesDir)(__dirname, {
|
|
27
|
+
envRulesDir: process.env.CODINGBUDDY_RULES_DIR,
|
|
28
|
+
});
|
|
31
29
|
this.logger.log(`Rules directory set from env: ${this.rulesDir}`);
|
|
32
30
|
return;
|
|
33
31
|
}
|
|
34
32
|
try {
|
|
35
33
|
const { rulesPath } = require('codingbuddy-rules');
|
|
36
|
-
this.rulesDir =
|
|
34
|
+
this.rulesDir = (0, rules_core_1.resolveRulesDir)(__dirname, {
|
|
35
|
+
packageRulesPath: rulesPath,
|
|
36
|
+
});
|
|
37
37
|
this.logger.log(`Rules directory set from package: ${this.rulesDir}`);
|
|
38
38
|
}
|
|
39
39
|
catch {
|
|
40
40
|
this.logger.warn('codingbuddy-rules package not found, using development fallback');
|
|
41
|
-
this.rulesDir =
|
|
41
|
+
this.rulesDir = (0, rules_core_1.resolveRulesDir)(__dirname, {
|
|
42
|
+
existsSync: (pathStr) => {
|
|
43
|
+
try {
|
|
44
|
+
return (0, fs_1.existsSync)(pathStr);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
});
|
|
42
51
|
this.logger.log(`Rules directory set to: ${this.rulesDir}`);
|
|
43
52
|
}
|
|
44
53
|
}
|
|
45
|
-
findDevRulesDir() {
|
|
46
|
-
const candidates = [
|
|
47
|
-
path.resolve(__dirname, '../../../../packages/rules/.ai-rules'),
|
|
48
|
-
path.resolve(__dirname, '../../../packages/rules/.ai-rules'),
|
|
49
|
-
path.resolve(__dirname, '../../../../.ai-rules'),
|
|
50
|
-
path.resolve(__dirname, '../../../.ai-rules'),
|
|
51
|
-
];
|
|
52
|
-
for (const candidate of candidates) {
|
|
53
|
-
if (this.checkExists(candidate)) {
|
|
54
|
-
return candidate;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return candidates[0];
|
|
58
|
-
}
|
|
59
|
-
checkExists(pathStr) {
|
|
60
|
-
try {
|
|
61
|
-
return (0, fs_1.existsSync)(pathStr);
|
|
62
|
-
}
|
|
63
|
-
catch {
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
54
|
async getRuleContent(relativePath) {
|
|
68
|
-
if (!(0, security_utils_1.isPathSafe)(this.rulesDir, relativePath)) {
|
|
69
|
-
this.logger.warn(`Path traversal attempt blocked: ${relativePath}`);
|
|
70
|
-
throw new Error(`Access denied: Invalid path`);
|
|
71
|
-
}
|
|
72
|
-
const fullPath = path.join(this.rulesDir, relativePath);
|
|
73
55
|
try {
|
|
74
|
-
return await
|
|
56
|
+
return await (0, rules_core_1.readRuleContent)(this.rulesDir, relativePath);
|
|
75
57
|
}
|
|
76
58
|
catch (error) {
|
|
77
|
-
|
|
78
|
-
|
|
59
|
+
if (error instanceof Error && error.message.startsWith('Access denied')) {
|
|
60
|
+
this.logger.warn(`Path traversal attempt blocked: ${relativePath}`);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this.logger.error(`Failed to read rule file: ${relativePath}`, error);
|
|
64
|
+
}
|
|
65
|
+
throw error;
|
|
79
66
|
}
|
|
80
67
|
}
|
|
81
68
|
async listAgents() {
|
|
82
|
-
const agentsDir = path.join(this.rulesDir, 'agents');
|
|
83
69
|
try {
|
|
84
|
-
const
|
|
85
|
-
const agents = files
|
|
86
|
-
.filter(f => f.endsWith('.json'))
|
|
87
|
-
.map(f => f.replace('.json', ''));
|
|
70
|
+
const agents = await (0, rules_core_1.listAgentNames)(this.rulesDir);
|
|
88
71
|
return this.sortAgentsByPriority(agents);
|
|
89
72
|
}
|
|
90
73
|
catch (error) {
|
|
@@ -103,12 +86,10 @@ let RulesService = RulesService_1 = class RulesService {
|
|
|
103
86
|
return keyword_types_1.MODE_AGENTS.includes(agentName);
|
|
104
87
|
}
|
|
105
88
|
async getAgent(name) {
|
|
106
|
-
const content = await this.getRuleContent(`agents/${name}.json`);
|
|
107
89
|
try {
|
|
108
|
-
const
|
|
109
|
-
const validated = (0, agent_schema_1.parseAgentProfile)(parsed);
|
|
90
|
+
const profile = await (0, rules_core_1.loadAgentProfile)(this.rulesDir, name);
|
|
110
91
|
const agent = {
|
|
111
|
-
...
|
|
92
|
+
...profile,
|
|
112
93
|
source: 'default',
|
|
113
94
|
};
|
|
114
95
|
try {
|
|
@@ -126,9 +107,8 @@ let RulesService = RulesService_1 = class RulesService {
|
|
|
126
107
|
return agent;
|
|
127
108
|
}
|
|
128
109
|
catch (error) {
|
|
129
|
-
if (error instanceof
|
|
110
|
+
if (error instanceof Error && error.message.startsWith('Invalid agent profile')) {
|
|
130
111
|
this.logger.warn(`Invalid agent profile: ${name}`, error.message);
|
|
131
|
-
throw new Error(`Invalid agent profile: ${name}`);
|
|
132
112
|
}
|
|
133
113
|
throw error;
|
|
134
114
|
}
|
|
@@ -164,74 +144,35 @@ let RulesService = RulesService_1 = class RulesService {
|
|
|
164
144
|
'rules/augmented-coding.md',
|
|
165
145
|
...agents.map(a => `agents/${a}.json`),
|
|
166
146
|
];
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
const lines = content.split('\n');
|
|
171
|
-
const matches = [];
|
|
172
|
-
let score = 0;
|
|
173
|
-
lines.forEach((line, index) => {
|
|
174
|
-
if (line.toLowerCase().includes(queryLower)) {
|
|
175
|
-
matches.push(`Line ${index + 1}: ${line.trim()}`);
|
|
176
|
-
score++;
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
if (score > 0) {
|
|
180
|
-
results.push({ file, matches, score, source: 'default' });
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
catch {
|
|
184
|
-
}
|
|
147
|
+
const defaultResults = await (0, rules_core_1.searchInRuleFiles)(this.rulesDir, query, filesToSearch);
|
|
148
|
+
for (const result of defaultResults) {
|
|
149
|
+
results.push({ ...result, source: 'default' });
|
|
185
150
|
}
|
|
186
151
|
return results.sort((a, b) => b.score - a.score);
|
|
187
152
|
}
|
|
188
153
|
async listSkillsFromDir() {
|
|
189
|
-
const skillsDir = path.join(this.rulesDir, 'skills');
|
|
190
|
-
const summaries = [];
|
|
191
154
|
try {
|
|
192
|
-
|
|
193
|
-
for (const entry of entries) {
|
|
194
|
-
if (entry.isDirectory()) {
|
|
195
|
-
const skillPath = path.join(skillsDir, entry.name, 'SKILL.md');
|
|
196
|
-
try {
|
|
197
|
-
const content = await fs.readFile(skillPath, 'utf-8');
|
|
198
|
-
const skill = (0, skill_schema_1.parseSkill)(content, `skills/${entry.name}/SKILL.md`);
|
|
199
|
-
summaries.push({
|
|
200
|
-
name: skill.name,
|
|
201
|
-
description: skill.description,
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
catch (error) {
|
|
205
|
-
this.logger.warn(`Failed to parse skill '${entry.name}': ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
155
|
+
return await (0, rules_core_1.listSkillSummaries)(this.rulesDir);
|
|
209
156
|
}
|
|
210
157
|
catch (error) {
|
|
211
158
|
this.logger.warn(`Failed to list skills: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
159
|
+
return [];
|
|
212
160
|
}
|
|
213
|
-
return summaries;
|
|
214
161
|
}
|
|
215
162
|
async getSkill(name) {
|
|
216
|
-
if (!/^[a-z0-9-]+$/.test(name)) {
|
|
217
|
-
throw new Error(`Invalid skill name format: ${name}`);
|
|
218
|
-
}
|
|
219
|
-
const skillPath = `skills/${name}/SKILL.md`;
|
|
220
|
-
if (!(0, security_utils_1.isPathSafe)(this.rulesDir, skillPath)) {
|
|
221
|
-
this.logger.warn(`Path traversal attempt blocked for skill: ${name}`);
|
|
222
|
-
throw new Error('Access denied: Invalid path');
|
|
223
|
-
}
|
|
224
|
-
const fullPath = path.join(this.rulesDir, skillPath);
|
|
225
163
|
try {
|
|
226
|
-
|
|
227
|
-
return (0, skill_schema_1.parseSkill)(content, skillPath);
|
|
164
|
+
return await (0, rules_core_1.loadSkill)(this.rulesDir, name);
|
|
228
165
|
}
|
|
229
166
|
catch (error) {
|
|
230
|
-
if (error instanceof
|
|
231
|
-
|
|
232
|
-
|
|
167
|
+
if (error instanceof Error) {
|
|
168
|
+
if (error.message.startsWith('Access denied')) {
|
|
169
|
+
this.logger.warn(`Path traversal attempt blocked for skill: ${name}`);
|
|
170
|
+
}
|
|
171
|
+
else if (error.message.startsWith('Invalid skill:')) {
|
|
172
|
+
this.logger.warn(`Invalid skill '${name}': ${error.message}`);
|
|
173
|
+
}
|
|
233
174
|
}
|
|
234
|
-
throw
|
|
175
|
+
throw error;
|
|
235
176
|
}
|
|
236
177
|
}
|
|
237
178
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.service.js","sourceRoot":"","sources":["../../../src/rules/rules.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"rules.service.js","sourceRoot":"","sources":["../../../src/rules/rules.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
type RuleSource = 'custom' | 'default';
|
|
2
|
+
interface AgentCommunication {
|
|
3
3
|
language?: string;
|
|
4
4
|
style?: string;
|
|
5
5
|
approach?: string[];
|
|
@@ -24,3 +24,4 @@ export interface SearchResult {
|
|
|
24
24
|
score: number;
|
|
25
25
|
source?: RuleSource;
|
|
26
26
|
}
|
|
27
|
+
export {};
|
|
@@ -3,15 +3,10 @@ export declare class SkillSchemaError extends Error {
|
|
|
3
3
|
readonly details?: z.ZodError | undefined;
|
|
4
4
|
constructor(message: string, details?: z.ZodError | undefined);
|
|
5
5
|
}
|
|
6
|
-
export declare const SkillFrontmatterSchema: z.ZodObject<{
|
|
7
|
-
name: z.ZodString;
|
|
8
|
-
description: z.ZodString;
|
|
9
|
-
}, z.z.core.$strip>;
|
|
10
6
|
export interface Skill {
|
|
11
7
|
name: string;
|
|
12
8
|
description: string;
|
|
13
9
|
content: string;
|
|
14
10
|
path: string;
|
|
15
11
|
}
|
|
16
|
-
export type SkillFrontmatter = z.infer<typeof SkillFrontmatterSchema>;
|
|
17
12
|
export declare function parseSkill(content: string, filePath: string): Skill;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.SkillSchemaError = void 0;
|
|
4
4
|
exports.parseSkill = parseSkill;
|
|
5
5
|
const z = require("zod");
|
|
6
6
|
const yaml = require("yaml");
|
|
@@ -13,7 +13,7 @@ class SkillSchemaError extends Error {
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
exports.SkillSchemaError = SkillSchemaError;
|
|
16
|
-
|
|
16
|
+
const SkillFrontmatterSchema = z.object({
|
|
17
17
|
name: z
|
|
18
18
|
.string()
|
|
19
19
|
.min(1)
|
|
@@ -41,7 +41,7 @@ function parseSkill(content, filePath) {
|
|
|
41
41
|
if (dangerousKey) {
|
|
42
42
|
throw new SkillSchemaError(`Invalid skill: Dangerous key "${dangerousKey}" detected`);
|
|
43
43
|
}
|
|
44
|
-
const result =
|
|
44
|
+
const result = SkillFrontmatterSchema.safeParse(frontmatter);
|
|
45
45
|
if (!result.success) {
|
|
46
46
|
const errorMessage = result.error.issues
|
|
47
47
|
.map(issue => {
|