codingbuddy 4.0.0 → 4.1.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.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.types.js.map +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.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 -1
- package/dist/src/cli/cli.js +9 -0
- package/dist/src/cli/cli.js.map +1 -1
- package/dist/src/cli/init/claude-settings.utils.d.ts +13 -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.js.map +1 -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 +11 -2
- package/dist/src/cli/init/init.constants.js.map +1 -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 +3 -0
- package/dist/src/cli/run-tui.js +105 -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.js +1 -3
- package/dist/src/config/config.loader.js.map +1 -1
- package/dist/src/config/config.schema.js +1 -3
- 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 -0
- package/dist/src/context/context-document.types.js +2 -8
- package/dist/src/context/context-document.types.js.map +1 -1
- package/dist/src/context/context-parser.utils.js +7 -8
- 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 +24 -25
- package/dist/src/keyword/keyword.service.js.map +1 -1
- package/dist/src/keyword/keyword.types.d.ts +17 -0
- 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.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 +153 -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/skill.schema.js.map +1 -1
- 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.js +1 -2
- package/dist/src/shared/file.utils.js.map +1 -1
- package/dist/src/shared/format.utils.js.map +1 -1
- package/dist/src/shared/keyword-core.d.ts +9 -0
- package/dist/src/shared/keyword-core.js +95 -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/path.utils.js +1 -2
- package/dist/src/shared/path.utils.js.map +1 -1
- package/dist/src/shared/pattern-matcher.js.map +1 -1
- package/dist/src/shared/rules-core.d.ts +27 -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.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/token-counter.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 +1 -0
- package/dist/src/shared/validation.constants.js +6 -3
- package/dist/src/shared/validation.constants.js.map +1 -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.js +1 -3
- 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/app.d.ts +6 -0
- package/dist/src/tui/app.js +20 -0
- package/dist/src/tui/app.js.map +1 -0
- package/dist/src/tui/app.spec.d.ts +1 -0
- package/dist/src/tui/app.spec.js +226 -0
- package/dist/src/tui/app.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/AgentCard.d.ts +6 -0
- package/dist/src/tui/components/AgentCard.js +18 -0
- package/dist/src/tui/components/AgentCard.js.map +1 -0
- package/dist/src/tui/components/AgentCard.spec.d.ts +1 -0
- package/dist/src/tui/components/AgentCard.spec.js +118 -0
- package/dist/src/tui/components/AgentCard.spec.js.map +1 -0
- package/dist/src/tui/components/AgentGrid.d.ts +7 -0
- package/dist/src/tui/components/AgentGrid.js +20 -0
- package/dist/src/tui/components/AgentGrid.js.map +1 -0
- package/dist/src/tui/components/AgentGrid.spec.d.ts +1 -0
- package/dist/src/tui/components/AgentGrid.spec.js +52 -0
- package/dist/src/tui/components/AgentGrid.spec.js.map +1 -0
- package/dist/src/tui/components/AgentTree.d.ts +7 -0
- package/dist/src/tui/components/AgentTree.js +24 -0
- package/dist/src/tui/components/AgentTree.js.map +1 -0
- package/dist/src/tui/components/AgentTree.spec.d.ts +1 -0
- package/dist/src/tui/components/AgentTree.spec.js +146 -0
- package/dist/src/tui/components/AgentTree.spec.js.map +1 -0
- package/dist/src/tui/components/CategoryRow.d.ts +9 -0
- package/dist/src/tui/components/CategoryRow.js +15 -0
- package/dist/src/tui/components/CategoryRow.js.map +1 -0
- package/dist/src/tui/components/CategoryRow.spec.d.ts +1 -0
- package/dist/src/tui/components/CategoryRow.spec.js +58 -0
- package/dist/src/tui/components/CategoryRow.spec.js.map +1 -0
- package/dist/src/tui/components/Header.d.ts +6 -0
- package/dist/src/tui/components/Header.js +18 -0
- package/dist/src/tui/components/Header.js.map +1 -0
- package/dist/src/tui/components/Header.spec.d.ts +1 -0
- package/dist/src/tui/components/Header.spec.js +38 -0
- package/dist/src/tui/components/Header.spec.js.map +1 -0
- package/dist/src/tui/components/ProgressBar.d.ts +7 -0
- package/dist/src/tui/components/ProgressBar.js +12 -0
- package/dist/src/tui/components/ProgressBar.js.map +1 -0
- package/dist/src/tui/components/ProgressBar.spec.d.ts +1 -0
- package/dist/src/tui/components/ProgressBar.spec.js +37 -0
- package/dist/src/tui/components/ProgressBar.spec.js.map +1 -0
- package/dist/src/tui/components/StatusBar.d.ts +8 -0
- package/dist/src/tui/components/StatusBar.js +29 -0
- package/dist/src/tui/components/StatusBar.js.map +1 -0
- package/dist/src/tui/components/StatusBar.spec.d.ts +1 -0
- package/dist/src/tui/components/StatusBar.spec.js +93 -0
- package/dist/src/tui/components/StatusBar.spec.js.map +1 -0
- package/dist/src/tui/components/agent-card.pure.d.ts +7 -0
- package/dist/src/tui/components/agent-card.pure.js +65 -0
- package/dist/src/tui/components/agent-card.pure.js.map +1 -0
- package/dist/src/tui/components/agent-grid.pure.d.ts +3 -0
- package/dist/src/tui/components/agent-grid.pure.js +35 -0
- package/dist/src/tui/components/agent-grid.pure.js.map +1 -0
- package/dist/src/tui/components/agent-mini-card.pure.d.ts +2 -0
- package/dist/src/tui/components/agent-mini-card.pure.js +17 -0
- package/dist/src/tui/components/agent-mini-card.pure.js.map +1 -0
- package/dist/src/tui/components/agent-tree.pure.d.ts +18 -0
- package/dist/src/tui/components/agent-tree.pure.js +41 -0
- package/dist/src/tui/components/agent-tree.pure.js.map +1 -0
- package/dist/src/tui/components/category-row.pure.d.ts +3 -0
- package/dist/src/tui/components/category-row.pure.js +26 -0
- package/dist/src/tui/components/category-row.pure.js.map +1 -0
- package/dist/src/tui/components/header.pure.d.ts +4 -0
- package/dist/src/tui/components/header.pure.js +15 -0
- package/dist/src/tui/components/header.pure.js.map +1 -0
- package/dist/src/tui/components/index.d.ts +15 -0
- package/dist/src/tui/components/index.js +52 -0
- package/dist/src/tui/components/index.js.map +1 -0
- package/dist/src/tui/components/progress-bar.pure.d.ts +2 -0
- package/dist/src/tui/components/progress-bar.pure.js +21 -0
- package/dist/src/tui/components/progress-bar.pure.js.map +1 -0
- package/dist/src/tui/components/status-bar.pure.d.ts +15 -0
- package/dist/src/tui/components/status-bar.pure.js +83 -0
- package/dist/src/tui/components/status-bar.pure.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 +608 -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 +84 -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 +12 -0
- package/dist/src/tui/events/response-event-extractor.js +71 -0
- package/dist/src/tui/events/response-event-extractor.js.map +1 -0
- package/dist/src/tui/events/tui-interceptor.d.ts +13 -0
- package/dist/src/tui/events/tui-interceptor.js +100 -0
- package/dist/src/tui/events/tui-interceptor.js.map +1 -0
- package/dist/src/tui/events/types.d.ts +51 -0
- package/dist/src/tui/events/types.js +13 -0
- package/dist/src/tui/events/types.js.map +1 -0
- package/dist/src/tui/hooks/index.d.ts +5 -0
- package/dist/src/tui/hooks/index.js +12 -0
- package/dist/src/tui/hooks/index.js.map +1 -0
- package/dist/src/tui/hooks/use-agent-state.d.ts +7 -0
- package/dist/src/tui/hooks/use-agent-state.js +13 -0
- package/dist/src/tui/hooks/use-agent-state.js.map +1 -0
- package/dist/src/tui/hooks/use-agent-state.spec.d.ts +1 -0
- package/dist/src/tui/hooks/use-agent-state.spec.js +167 -0
- package/dist/src/tui/hooks/use-agent-state.spec.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-event-bus.d.ts +34 -0
- package/dist/src/tui/hooks/use-event-bus.js +91 -0
- package/dist/src/tui/hooks/use-event-bus.js.map +1 -0
- package/dist/src/tui/hooks/use-event-bus.spec.d.ts +1 -0
- package/dist/src/tui/hooks/use-event-bus.spec.js +362 -0
- package/dist/src/tui/hooks/use-event-bus.spec.js.map +1 -0
- package/dist/src/tui/index.d.ts +12 -0
- package/dist/src/tui/index.js +32 -0
- package/dist/src/tui/index.js.map +1 -0
- package/dist/src/tui/ipc/index.d.ts +9 -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 +16 -0
- package/dist/src/tui/ipc/ipc-state-cache.js +62 -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/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/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 +11 -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 +34 -0
- package/dist/src/tui/types.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/constants.d.ts +3 -0
- package/dist/src/tui/utils/constants.js +15 -0
- package/dist/src/tui/utils/constants.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/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 +4 -0
- package/dist/src/tui/utils/index.js +19 -0
- package/dist/src/tui/utils/index.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +14 -4
- package/dist/src/mcp/handlers/session.handler.d.ts +0 -15
- package/dist/src/mcp/handlers/session.handler.js +0 -238
- package/dist/src/mcp/handlers/session.handler.js.map +0 -1
- package/dist/src/session/__tests__/session-test.utils.d.ts +0 -5
- package/dist/src/session/__tests__/session-test.utils.js +0 -59
- package/dist/src/session/__tests__/session-test.utils.js.map +0 -1
- package/dist/src/session/index.d.ts +0 -3
- package/dist/src/session/index.js +0 -8
- package/dist/src/session/index.js.map +0 -1
- package/dist/src/session/session.cache.d.ts +0 -19
- package/dist/src/session/session.cache.js +0 -83
- package/dist/src/session/session.cache.js.map +0 -1
- package/dist/src/session/session.module.d.ts +0 -2
- package/dist/src/session/session.module.js +0 -23
- package/dist/src/session/session.module.js.map +0 -1
- package/dist/src/session/session.parser.d.ts +0 -22
- package/dist/src/session/session.parser.js +0 -273
- package/dist/src/session/session.parser.js.map +0 -1
- package/dist/src/session/session.serializer.d.ts +0 -6
- package/dist/src/session/session.serializer.js +0 -84
- package/dist/src/session/session.serializer.js.map +0 -1
- package/dist/src/session/session.service.d.ts +0 -24
- package/dist/src/session/session.service.js +0 -309
- package/dist/src/session/session.service.js.map +0 -1
- package/dist/src/session/session.types.d.ts +0 -52
- package/dist/src/session/session.types.js +0 -3
- package/dist/src/session/session.types.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RulesService } from '../../rules/rules.service';
|
|
2
|
+
import { type AgentMetadata } from './agent-metadata.types';
|
|
3
|
+
export declare class AgentMetadataService {
|
|
4
|
+
private readonly rulesService;
|
|
5
|
+
private readonly logger;
|
|
6
|
+
private readonly cache;
|
|
7
|
+
private initialized;
|
|
8
|
+
private initPromise;
|
|
9
|
+
constructor(rulesService: RulesService);
|
|
10
|
+
initialize(): Promise<void>;
|
|
11
|
+
getMetadata(agentId: string): AgentMetadata | null;
|
|
12
|
+
getMetadataAsync(agentId: string): Promise<AgentMetadata | null>;
|
|
13
|
+
getAllMetadata(): AgentMetadata[];
|
|
14
|
+
private loadAllAgents;
|
|
15
|
+
private loadAgent;
|
|
16
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
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 __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var AgentMetadataService_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.AgentMetadataService = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const rules_service_1 = require("../../rules/rules.service");
|
|
16
|
+
const agent_metadata_types_1 = require("./agent-metadata.types");
|
|
17
|
+
let AgentMetadataService = AgentMetadataService_1 = class AgentMetadataService {
|
|
18
|
+
constructor(rulesService) {
|
|
19
|
+
this.rulesService = rulesService;
|
|
20
|
+
this.logger = new common_1.Logger(AgentMetadataService_1.name);
|
|
21
|
+
this.cache = new Map();
|
|
22
|
+
this.initialized = false;
|
|
23
|
+
this.initPromise = null;
|
|
24
|
+
}
|
|
25
|
+
async initialize() {
|
|
26
|
+
if (this.initialized)
|
|
27
|
+
return;
|
|
28
|
+
if (this.initPromise)
|
|
29
|
+
return this.initPromise;
|
|
30
|
+
this.initPromise = this.loadAllAgents();
|
|
31
|
+
await this.initPromise;
|
|
32
|
+
this.initialized = true;
|
|
33
|
+
}
|
|
34
|
+
getMetadata(agentId) {
|
|
35
|
+
return this.cache.get(agentId) ?? null;
|
|
36
|
+
}
|
|
37
|
+
async getMetadataAsync(agentId) {
|
|
38
|
+
if (!this.initialized) {
|
|
39
|
+
await this.initialize();
|
|
40
|
+
}
|
|
41
|
+
return this.getMetadata(agentId);
|
|
42
|
+
}
|
|
43
|
+
getAllMetadata() {
|
|
44
|
+
return Array.from(this.cache.values());
|
|
45
|
+
}
|
|
46
|
+
async loadAllAgents() {
|
|
47
|
+
try {
|
|
48
|
+
const agentIds = await this.rulesService.listAgents();
|
|
49
|
+
await Promise.allSettled(agentIds.map(id => this.loadAgent(id)));
|
|
50
|
+
this.logger.log(`Loaded metadata for ${this.cache.size} agents`);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
this.logger.error('Failed to load agent list', error);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async loadAgent(agentId) {
|
|
57
|
+
try {
|
|
58
|
+
const profile = await this.rulesService.getAgent(agentId);
|
|
59
|
+
const category = agent_metadata_types_1.AGENT_CATEGORY_MAP[agentId] ?? 'Architecture';
|
|
60
|
+
const icon = agent_metadata_types_1.AGENT_ICONS[category];
|
|
61
|
+
this.cache.set(agentId, {
|
|
62
|
+
id: agentId,
|
|
63
|
+
name: profile.name,
|
|
64
|
+
description: profile.description,
|
|
65
|
+
category,
|
|
66
|
+
icon,
|
|
67
|
+
expertise: profile.role.expertise ?? [],
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
this.logger.warn(`Failed to load agent: ${agentId}`, error);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
exports.AgentMetadataService = AgentMetadataService;
|
|
76
|
+
exports.AgentMetadataService = AgentMetadataService = AgentMetadataService_1 = __decorate([
|
|
77
|
+
(0, common_1.Injectable)(),
|
|
78
|
+
__metadata("design:paramtypes", [rules_service_1.RulesService])
|
|
79
|
+
], AgentMetadataService);
|
|
80
|
+
//# sourceMappingURL=agent-metadata.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-metadata.service.js","sourceRoot":"","sources":["../../../../src/tui/events/agent-metadata.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,6DAAyD;AACzD,iEAA6F;AAGtF,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAM/B,YAA6B,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;QALtC,WAAM,GAAG,IAAI,eAAM,CAAC,sBAAoB,CAAC,IAAI,CAAC,CAAC;QAC/C,UAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;QAClD,gBAAW,GAAG,KAAK,CAAC;QACpB,gBAAW,GAAyB,IAAI,CAAC;IAES,CAAC;IAE3D,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAE9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,IAAI,CAAC,WAAW,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YAEtD,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,OAAe;QACrC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,yCAAkB,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC;YAC/D,MAAM,IAAI,GAAG,kCAAW,CAAC,QAAQ,CAAC,CAAC;YAEnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE;gBACtB,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,QAAQ;gBACR,IAAI;gBACJ,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE;aACxC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF,CAAA;AA9DY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAOgC,4BAAY;GAN5C,oBAAoB,CA8DhC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type AgentCategory = 'Architecture' | 'Testing' | 'Security' | 'Frontend' | 'Backend' | 'CodeQuality' | 'Performance' | 'DevOps' | 'Accessibility' | 'SEO' | 'Documentation' | 'Data' | 'Mobile' | 'AI/ML' | 'i18n' | 'Observability' | 'EventArchitecture' | 'Integration' | 'Migration' | 'Planning' | 'Mode';
|
|
2
|
+
export interface AgentMetadata {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
category: AgentCategory;
|
|
7
|
+
icon: string;
|
|
8
|
+
expertise: string[];
|
|
9
|
+
}
|
|
10
|
+
export declare const AGENT_CATEGORY_MAP: Record<string, AgentCategory>;
|
|
11
|
+
export declare const AGENT_ICONS: Record<AgentCategory, string>;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AGENT_ICONS = exports.AGENT_CATEGORY_MAP = void 0;
|
|
4
|
+
exports.AGENT_CATEGORY_MAP = {
|
|
5
|
+
'solution-architect': 'Architecture',
|
|
6
|
+
'architecture-specialist': 'Architecture',
|
|
7
|
+
'agent-architect': 'Architecture',
|
|
8
|
+
'test-strategy-specialist': 'Testing',
|
|
9
|
+
'security-specialist': 'Security',
|
|
10
|
+
'frontend-developer': 'Frontend',
|
|
11
|
+
'ui-ux-designer': 'Frontend',
|
|
12
|
+
'backend-developer': 'Backend',
|
|
13
|
+
'code-quality-specialist': 'CodeQuality',
|
|
14
|
+
'code-reviewer': 'CodeQuality',
|
|
15
|
+
'performance-specialist': 'Performance',
|
|
16
|
+
'devops-engineer': 'DevOps',
|
|
17
|
+
'platform-engineer': 'DevOps',
|
|
18
|
+
'tooling-engineer': 'DevOps',
|
|
19
|
+
'accessibility-specialist': 'Accessibility',
|
|
20
|
+
'seo-specialist': 'SEO',
|
|
21
|
+
'documentation-specialist': 'Documentation',
|
|
22
|
+
'data-engineer': 'Data',
|
|
23
|
+
'mobile-developer': 'Mobile',
|
|
24
|
+
'ai-ml-engineer': 'AI/ML',
|
|
25
|
+
'i18n-specialist': 'i18n',
|
|
26
|
+
'observability-specialist': 'Observability',
|
|
27
|
+
'event-architecture-specialist': 'EventArchitecture',
|
|
28
|
+
'integration-specialist': 'Integration',
|
|
29
|
+
'migration-specialist': 'Migration',
|
|
30
|
+
'technical-planner': 'Planning',
|
|
31
|
+
'plan-mode': 'Mode',
|
|
32
|
+
'act-mode': 'Mode',
|
|
33
|
+
'eval-mode': 'Mode',
|
|
34
|
+
'auto-mode': 'Mode',
|
|
35
|
+
};
|
|
36
|
+
exports.AGENT_ICONS = {
|
|
37
|
+
Architecture: '🏛️',
|
|
38
|
+
Testing: '🧪',
|
|
39
|
+
Security: '🔒',
|
|
40
|
+
Frontend: '🎨',
|
|
41
|
+
Backend: '⚙️',
|
|
42
|
+
CodeQuality: '📏',
|
|
43
|
+
Performance: '⚡',
|
|
44
|
+
DevOps: '🔧',
|
|
45
|
+
Accessibility: '♿',
|
|
46
|
+
SEO: '🔍',
|
|
47
|
+
Documentation: '📝',
|
|
48
|
+
Data: '💾',
|
|
49
|
+
Mobile: '📱',
|
|
50
|
+
'AI/ML': '🤖',
|
|
51
|
+
i18n: '🌐',
|
|
52
|
+
Observability: '📊',
|
|
53
|
+
EventArchitecture: '📨',
|
|
54
|
+
Integration: '🔗',
|
|
55
|
+
Migration: '🔄',
|
|
56
|
+
Planning: '📋',
|
|
57
|
+
Mode: '🔀',
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=agent-metadata.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-metadata.types.js","sourceRoot":"","sources":["../../../../src/tui/events/agent-metadata.types.ts"],"names":[],"mappings":";;;AAgCa,QAAA,kBAAkB,GAAkC;IAE/D,oBAAoB,EAAE,cAAc;IACpC,yBAAyB,EAAE,cAAc;IACzC,iBAAiB,EAAE,cAAc;IAEjC,0BAA0B,EAAE,SAAS;IAErC,qBAAqB,EAAE,UAAU;IAEjC,oBAAoB,EAAE,UAAU;IAChC,gBAAgB,EAAE,UAAU;IAE5B,mBAAmB,EAAE,SAAS;IAE9B,yBAAyB,EAAE,aAAa;IACxC,eAAe,EAAE,aAAa;IAE9B,wBAAwB,EAAE,aAAa;IAEvC,iBAAiB,EAAE,QAAQ;IAC3B,mBAAmB,EAAE,QAAQ;IAC7B,kBAAkB,EAAE,QAAQ;IAE5B,0BAA0B,EAAE,eAAe;IAE3C,gBAAgB,EAAE,KAAK;IAEvB,0BAA0B,EAAE,eAAe;IAE3C,eAAe,EAAE,MAAM;IAEvB,kBAAkB,EAAE,QAAQ;IAE5B,gBAAgB,EAAE,OAAO;IAEzB,iBAAiB,EAAE,MAAM;IAEzB,0BAA0B,EAAE,eAAe;IAE3C,+BAA+B,EAAE,mBAAmB;IAEpD,wBAAwB,EAAE,aAAa;IAEvC,sBAAsB,EAAE,WAAW;IAEnC,mBAAmB,EAAE,UAAU;IAE/B,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;CACpB,CAAC;AAEW,QAAA,WAAW,GAAkC;IACxD,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,GAAG;IAChB,MAAM,EAAE,IAAI;IACZ,aAAa,EAAE,GAAG;IAClB,GAAG,EAAE,IAAI;IACT,aAAa,EAAE,IAAI;IACnB,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,aAAa,EAAE,IAAI;IACnB,iBAAiB,EAAE,IAAI;IACvB,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,IAAI;CACX,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TuiEventMap, TuiEventName } from './types';
|
|
2
|
+
type EventHandler<T> = (payload: T) => void;
|
|
3
|
+
export declare class TuiEventBus {
|
|
4
|
+
private readonly logger;
|
|
5
|
+
private readonly emitter;
|
|
6
|
+
emit<K extends TuiEventName>(event: K, payload: TuiEventMap[K]): void;
|
|
7
|
+
on<K extends TuiEventName>(event: K, handler: EventHandler<TuiEventMap[K]>): void;
|
|
8
|
+
off<K extends TuiEventName>(event: K, handler: EventHandler<TuiEventMap[K]>): void;
|
|
9
|
+
once<K extends TuiEventName>(event: K, handler: EventHandler<TuiEventMap[K]>): void;
|
|
10
|
+
removeAllListeners(event?: TuiEventName): void;
|
|
11
|
+
listenerCount(event: TuiEventName): number;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
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 TuiEventBus_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.TuiEventBus = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const eventemitter2_1 = require("eventemitter2");
|
|
13
|
+
let TuiEventBus = TuiEventBus_1 = class TuiEventBus {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.logger = new common_1.Logger(TuiEventBus_1.name);
|
|
16
|
+
this.emitter = new eventemitter2_1.EventEmitter2();
|
|
17
|
+
}
|
|
18
|
+
emit(event, payload) {
|
|
19
|
+
this.logger.debug(`Emitting event: ${event}`);
|
|
20
|
+
this.emitter.emit(event, payload);
|
|
21
|
+
}
|
|
22
|
+
on(event, handler) {
|
|
23
|
+
this.emitter.on(event, handler);
|
|
24
|
+
}
|
|
25
|
+
off(event, handler) {
|
|
26
|
+
this.emitter.off(event, handler);
|
|
27
|
+
}
|
|
28
|
+
once(event, handler) {
|
|
29
|
+
this.emitter.once(event, handler);
|
|
30
|
+
}
|
|
31
|
+
removeAllListeners(event) {
|
|
32
|
+
this.emitter.removeAllListeners(event);
|
|
33
|
+
}
|
|
34
|
+
listenerCount(event) {
|
|
35
|
+
return this.emitter.listenerCount(event);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.TuiEventBus = TuiEventBus;
|
|
39
|
+
exports.TuiEventBus = TuiEventBus = TuiEventBus_1 = __decorate([
|
|
40
|
+
(0, common_1.Injectable)()
|
|
41
|
+
], TuiEventBus);
|
|
42
|
+
//# sourceMappingURL=event-bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../../src/tui/events/event-bus.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAoD;AACpD,iDAA8C;AAYvC,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAAjB;QACY,WAAM,GAAG,IAAI,eAAM,CAAC,aAAW,CAAC,IAAI,CAAC,CAAC;QACtC,YAAO,GAAG,IAAI,6BAAa,EAAE,CAAC;IA0BjD,CAAC;IAxBC,IAAI,CAAyB,KAAQ,EAAE,OAAuB;QAC5D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,EAAE,CAAyB,KAAQ,EAAE,OAAqC;QACxE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAuC,CAAC,CAAC;IAClE,CAAC;IAED,GAAG,CAAyB,KAAQ,EAAE,OAAqC;QACzE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAuC,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,CAAyB,KAAQ,EAAE,OAAqC;QAC1E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAuC,CAAC,CAAC;IACpE,CAAC;IAED,kBAAkB,CAAC,KAAoB;QACrC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,aAAa,CAAC,KAAmB;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;CACF,CAAA;AA5BY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;GACA,WAAW,CA4BvB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.TuiEventsModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const rules_module_1 = require("../../rules/rules.module");
|
|
12
|
+
const event_bus_1 = require("./event-bus");
|
|
13
|
+
const tui_interceptor_1 = require("./tui-interceptor");
|
|
14
|
+
const agent_metadata_service_1 = require("./agent-metadata.service");
|
|
15
|
+
let TuiEventsModule = class TuiEventsModule {
|
|
16
|
+
};
|
|
17
|
+
exports.TuiEventsModule = TuiEventsModule;
|
|
18
|
+
exports.TuiEventsModule = TuiEventsModule = __decorate([
|
|
19
|
+
(0, common_1.Module)({
|
|
20
|
+
imports: [rules_module_1.RulesModule],
|
|
21
|
+
providers: [event_bus_1.TuiEventBus, tui_interceptor_1.TuiInterceptor, agent_metadata_service_1.AgentMetadataService],
|
|
22
|
+
exports: [event_bus_1.TuiEventBus, tui_interceptor_1.TuiInterceptor, agent_metadata_service_1.AgentMetadataService],
|
|
23
|
+
})
|
|
24
|
+
], TuiEventsModule);
|
|
25
|
+
//# sourceMappingURL=events.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.module.js","sourceRoot":"","sources":["../../../../src/tui/events/events.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,2DAAuD;AACvD,2CAA0C;AAC1C,uDAAmD;AACnD,qEAAgE;AAOzD,IAAM,eAAe,GAArB,MAAM,eAAe;CAAG,CAAA;AAAlB,0CAAe;0BAAf,eAAe;IAL3B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,0BAAW,CAAC;QACtB,SAAS,EAAE,CAAC,uBAAW,EAAE,gCAAc,EAAE,6CAAoB,CAAC;QAC9D,OAAO,EAAE,CAAC,uBAAW,EAAE,gCAAc,EAAE,6CAAoB,CAAC;KAC7D,CAAC;GACW,eAAe,CAAG"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { TuiEventBus } from './event-bus';
|
|
2
|
+
export { TuiInterceptor } from './tui-interceptor';
|
|
3
|
+
export { parseAgentFromToolName } from './parse-agent';
|
|
4
|
+
export { AgentMetadataService } from './agent-metadata.service';
|
|
5
|
+
export { TuiEventsModule } from './events.module';
|
|
6
|
+
export { TUI_EVENTS, type TuiEventName, type TuiEventMap, type AgentActivatedEvent, type AgentDeactivatedEvent, type ModeChangedEvent, type SkillRecommendedEvent, type ParallelStartedEvent, type ParallelCompletedEvent, type AgentsLoadedEvent, } from './types';
|
|
7
|
+
export { type AgentMetadata, type AgentCategory, AGENT_CATEGORY_MAP, AGENT_ICONS, } from './agent-metadata.types';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AGENT_ICONS = exports.AGENT_CATEGORY_MAP = exports.TUI_EVENTS = exports.TuiEventsModule = exports.AgentMetadataService = exports.parseAgentFromToolName = exports.TuiInterceptor = exports.TuiEventBus = void 0;
|
|
4
|
+
var event_bus_1 = require("./event-bus");
|
|
5
|
+
Object.defineProperty(exports, "TuiEventBus", { enumerable: true, get: function () { return event_bus_1.TuiEventBus; } });
|
|
6
|
+
var tui_interceptor_1 = require("./tui-interceptor");
|
|
7
|
+
Object.defineProperty(exports, "TuiInterceptor", { enumerable: true, get: function () { return tui_interceptor_1.TuiInterceptor; } });
|
|
8
|
+
var parse_agent_1 = require("./parse-agent");
|
|
9
|
+
Object.defineProperty(exports, "parseAgentFromToolName", { enumerable: true, get: function () { return parse_agent_1.parseAgentFromToolName; } });
|
|
10
|
+
var agent_metadata_service_1 = require("./agent-metadata.service");
|
|
11
|
+
Object.defineProperty(exports, "AgentMetadataService", { enumerable: true, get: function () { return agent_metadata_service_1.AgentMetadataService; } });
|
|
12
|
+
var events_module_1 = require("./events.module");
|
|
13
|
+
Object.defineProperty(exports, "TuiEventsModule", { enumerable: true, get: function () { return events_module_1.TuiEventsModule; } });
|
|
14
|
+
var types_1 = require("./types");
|
|
15
|
+
Object.defineProperty(exports, "TUI_EVENTS", { enumerable: true, get: function () { return types_1.TUI_EVENTS; } });
|
|
16
|
+
var agent_metadata_types_1 = require("./agent-metadata.types");
|
|
17
|
+
Object.defineProperty(exports, "AGENT_CATEGORY_MAP", { enumerable: true, get: function () { return agent_metadata_types_1.AGENT_CATEGORY_MAP; } });
|
|
18
|
+
Object.defineProperty(exports, "AGENT_ICONS", { enumerable: true, get: function () { return agent_metadata_types_1.AGENT_ICONS; } });
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tui/events/index.ts"],"names":[],"mappings":";;;AAAA,yCAA0C;AAAjC,wGAAA,WAAW,OAAA;AACpB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,6CAAuD;AAA9C,qHAAA,sBAAsB,OAAA;AAC/B,mEAAgE;AAAvD,8HAAA,oBAAoB,OAAA;AAC7B,iDAAkD;AAAzC,gHAAA,eAAe,OAAA;AACxB,iCAWiB;AAVf,mGAAA,UAAU,OAAA;AAWZ,+DAKgC;AAF9B,0HAAA,kBAAkB,OAAA;AAClB,mHAAA,WAAW,OAAA"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseAgentFromToolName = parseAgentFromToolName;
|
|
4
|
+
const MODE_KEYWORD_TO_AGENT = {
|
|
5
|
+
PLAN: 'plan-mode',
|
|
6
|
+
ACT: 'act-mode',
|
|
7
|
+
EVAL: 'eval-mode',
|
|
8
|
+
AUTO: 'auto-mode',
|
|
9
|
+
};
|
|
10
|
+
const TOOL_AGENT_MAP = {
|
|
11
|
+
search_rules: 'query',
|
|
12
|
+
get_agent_details: 'query',
|
|
13
|
+
get_project_config: 'config',
|
|
14
|
+
set_project_root: 'config',
|
|
15
|
+
suggest_config_updates: 'config',
|
|
16
|
+
recommend_skills: 'skill',
|
|
17
|
+
get_skill: 'skill',
|
|
18
|
+
list_skills: 'skill',
|
|
19
|
+
analyze_task: 'analysis',
|
|
20
|
+
generate_checklist: 'checklist',
|
|
21
|
+
read_context: 'context',
|
|
22
|
+
update_context: 'context',
|
|
23
|
+
cleanup_context: 'context',
|
|
24
|
+
get_code_conventions: 'conventions',
|
|
25
|
+
};
|
|
26
|
+
function parseAgentFromToolName(toolName, args) {
|
|
27
|
+
if (toolName === 'get_agent_system_prompt') {
|
|
28
|
+
return parseGetAgentSystemPrompt(args);
|
|
29
|
+
}
|
|
30
|
+
if (toolName === 'parse_mode') {
|
|
31
|
+
return parseParseMode(args);
|
|
32
|
+
}
|
|
33
|
+
if (toolName === 'prepare_parallel_agents') {
|
|
34
|
+
return parseParallelAgents(args);
|
|
35
|
+
}
|
|
36
|
+
const role = TOOL_AGENT_MAP[toolName];
|
|
37
|
+
if (role) {
|
|
38
|
+
return {
|
|
39
|
+
agentId: toolName,
|
|
40
|
+
name: toolName,
|
|
41
|
+
role,
|
|
42
|
+
isPrimary: false,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
function parseGetAgentSystemPrompt(args) {
|
|
48
|
+
const agentName = typeof args?.agentName === 'string' ? args.agentName : null;
|
|
49
|
+
if (!agentName)
|
|
50
|
+
return null;
|
|
51
|
+
return {
|
|
52
|
+
agentId: agentName,
|
|
53
|
+
name: agentName,
|
|
54
|
+
role: 'specialist',
|
|
55
|
+
isPrimary: true,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function parseParseMode(args) {
|
|
59
|
+
const prompt = typeof args?.prompt === 'string' ? args.prompt : null;
|
|
60
|
+
if (!prompt)
|
|
61
|
+
return null;
|
|
62
|
+
const firstWord = prompt.trimStart().split(/\s+/)[0]?.toUpperCase();
|
|
63
|
+
const agentId = firstWord ? MODE_KEYWORD_TO_AGENT[firstWord] : undefined;
|
|
64
|
+
if (!agentId)
|
|
65
|
+
return null;
|
|
66
|
+
return {
|
|
67
|
+
agentId,
|
|
68
|
+
name: agentId,
|
|
69
|
+
role: 'mode',
|
|
70
|
+
isPrimary: false,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function parseParallelAgents(args) {
|
|
74
|
+
const specialists = args?.specialists;
|
|
75
|
+
if (!Array.isArray(specialists) || specialists.length === 0)
|
|
76
|
+
return null;
|
|
77
|
+
return {
|
|
78
|
+
agentId: 'parallel-dispatch',
|
|
79
|
+
name: 'parallel-dispatch',
|
|
80
|
+
role: 'orchestrator',
|
|
81
|
+
isPrimary: false,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=parse-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-agent.js","sourceRoot":"","sources":["../../../../src/tui/events/parse-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function parseToolResponseJson(result: unknown): Record<string, unknown> | null;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseToolResponseJson = parseToolResponseJson;
|
|
4
|
+
function parseToolResponseJson(result) {
|
|
5
|
+
if (!result || typeof result !== 'object')
|
|
6
|
+
return null;
|
|
7
|
+
const content = result.content;
|
|
8
|
+
if (!Array.isArray(content) || content.length === 0)
|
|
9
|
+
return null;
|
|
10
|
+
const textItem = content.find((c) => c && typeof c === 'object' && c.type === 'text');
|
|
11
|
+
const text = textItem?.text;
|
|
12
|
+
if (typeof text !== 'string' || text === '')
|
|
13
|
+
return null;
|
|
14
|
+
try {
|
|
15
|
+
const parsed = JSON.parse(text);
|
|
16
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
17
|
+
return null;
|
|
18
|
+
return parsed;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=parse-tool-response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-tool-response.js","sourceRoot":"","sources":["../../../../src/tui/events/parse-tool-response.ts"],"names":[],"mappings":";;AASA,sDAoBC;AApBD,SAAgB,qBAAqB,CAAC,MAAe;IACnD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEvD,MAAM,OAAO,GAAI,MAAkC,CAAC,OAAO,CAAC;IAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAC3B,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAK,CAA6B,CAAC,IAAI,KAAK,MAAM,CACtD,CAAC;IAEzC,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,CAAC;IAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAEzD,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAChF,OAAO,MAAiC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TUI_EVENTS, type ModeChangedEvent, type SkillRecommendedEvent, type ParallelStartedEvent } from './types';
|
|
2
|
+
export type ExtractedEvent = {
|
|
3
|
+
event: typeof TUI_EVENTS.MODE_CHANGED;
|
|
4
|
+
payload: ModeChangedEvent;
|
|
5
|
+
} | {
|
|
6
|
+
event: typeof TUI_EVENTS.SKILL_RECOMMENDED;
|
|
7
|
+
payload: SkillRecommendedEvent;
|
|
8
|
+
} | {
|
|
9
|
+
event: typeof TUI_EVENTS.PARALLEL_STARTED;
|
|
10
|
+
payload: ParallelStartedEvent;
|
|
11
|
+
};
|
|
12
|
+
export declare function extractEventsFromResponse(toolName: string, result: unknown): ExtractedEvent[];
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractEventsFromResponse = extractEventsFromResponse;
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
const parse_tool_response_1 = require("./parse-tool-response");
|
|
6
|
+
const VALID_MODES = new Set(['PLAN', 'ACT', 'EVAL', 'AUTO']);
|
|
7
|
+
function extractEventsFromResponse(toolName, result) {
|
|
8
|
+
const json = (0, parse_tool_response_1.parseToolResponseJson)(result);
|
|
9
|
+
if (!json)
|
|
10
|
+
return [];
|
|
11
|
+
if (toolName === 'parse_mode') {
|
|
12
|
+
return extractFromParseMode(json);
|
|
13
|
+
}
|
|
14
|
+
if (toolName === 'prepare_parallel_agents') {
|
|
15
|
+
return extractFromPrepareParallelAgents(json);
|
|
16
|
+
}
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
function extractFromParseMode(json) {
|
|
20
|
+
const events = [];
|
|
21
|
+
if (typeof json.mode === 'string' && VALID_MODES.has(json.mode)) {
|
|
22
|
+
events.push({
|
|
23
|
+
event: types_1.TUI_EVENTS.MODE_CHANGED,
|
|
24
|
+
payload: { from: null, to: json.mode },
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if (Array.isArray(json.included_skills)) {
|
|
28
|
+
for (const skill of json.included_skills) {
|
|
29
|
+
if (!skill || typeof skill !== 'object')
|
|
30
|
+
continue;
|
|
31
|
+
const s = skill;
|
|
32
|
+
if (typeof s.name !== 'string')
|
|
33
|
+
continue;
|
|
34
|
+
events.push({
|
|
35
|
+
event: types_1.TUI_EVENTS.SKILL_RECOMMENDED,
|
|
36
|
+
payload: {
|
|
37
|
+
skillName: s.name,
|
|
38
|
+
reason: typeof s.reason === 'string' ? s.reason : '',
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return events;
|
|
44
|
+
}
|
|
45
|
+
function extractFromPrepareParallelAgents(json) {
|
|
46
|
+
const agents = json.agents;
|
|
47
|
+
if (!Array.isArray(agents) || agents.length === 0)
|
|
48
|
+
return [];
|
|
49
|
+
const specialists = agents
|
|
50
|
+
.map((a) => {
|
|
51
|
+
if (!a || typeof a !== 'object')
|
|
52
|
+
return null;
|
|
53
|
+
const agent = a;
|
|
54
|
+
if (typeof agent.agentName === 'string')
|
|
55
|
+
return agent.agentName;
|
|
56
|
+
if (typeof agent.name === 'string')
|
|
57
|
+
return agent.name;
|
|
58
|
+
return null;
|
|
59
|
+
})
|
|
60
|
+
.filter((name) => name !== null);
|
|
61
|
+
if (specialists.length === 0)
|
|
62
|
+
return [];
|
|
63
|
+
const mode = typeof json.mode === 'string' && VALID_MODES.has(json.mode) ? json.mode : 'PLAN';
|
|
64
|
+
return [
|
|
65
|
+
{
|
|
66
|
+
event: types_1.TUI_EVENTS.PARALLEL_STARTED,
|
|
67
|
+
payload: { specialists, mode },
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=response-event-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-event-extractor.js","sourceRoot":"","sources":["../../../../src/tui/events/response-event-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TuiEventBus } from './event-bus';
|
|
2
|
+
export declare class TuiInterceptor {
|
|
3
|
+
private readonly eventBus;
|
|
4
|
+
private readonly logger;
|
|
5
|
+
private enabled;
|
|
6
|
+
private currentMode;
|
|
7
|
+
constructor(eventBus: TuiEventBus);
|
|
8
|
+
enable(): void;
|
|
9
|
+
disable(): void;
|
|
10
|
+
isEnabled(): boolean;
|
|
11
|
+
intercept<T>(toolName: string, args: Record<string, unknown> | undefined, execute: () => Promise<T>): Promise<T>;
|
|
12
|
+
private emitSemanticEvent;
|
|
13
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
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 __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var TuiInterceptor_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.TuiInterceptor = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const event_bus_1 = require("./event-bus");
|
|
16
|
+
const types_1 = require("./types");
|
|
17
|
+
const parse_agent_1 = require("./parse-agent");
|
|
18
|
+
const response_event_extractor_1 = require("./response-event-extractor");
|
|
19
|
+
let TuiInterceptor = TuiInterceptor_1 = class TuiInterceptor {
|
|
20
|
+
constructor(eventBus) {
|
|
21
|
+
this.eventBus = eventBus;
|
|
22
|
+
this.logger = new common_1.Logger(TuiInterceptor_1.name);
|
|
23
|
+
this.enabled = false;
|
|
24
|
+
this.currentMode = null;
|
|
25
|
+
}
|
|
26
|
+
enable() {
|
|
27
|
+
this.enabled = true;
|
|
28
|
+
this.logger.log('TuiInterceptor enabled');
|
|
29
|
+
}
|
|
30
|
+
disable() {
|
|
31
|
+
this.enabled = false;
|
|
32
|
+
this.currentMode = null;
|
|
33
|
+
}
|
|
34
|
+
isEnabled() {
|
|
35
|
+
return this.enabled;
|
|
36
|
+
}
|
|
37
|
+
async intercept(toolName, args, execute) {
|
|
38
|
+
if (!this.enabled) {
|
|
39
|
+
return execute();
|
|
40
|
+
}
|
|
41
|
+
const agentInfo = (0, parse_agent_1.parseAgentFromToolName)(toolName, args);
|
|
42
|
+
if (agentInfo) {
|
|
43
|
+
setImmediate(() => {
|
|
44
|
+
this.eventBus.emit(types_1.TUI_EVENTS.AGENT_ACTIVATED, agentInfo);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
const startTime = Date.now();
|
|
48
|
+
try {
|
|
49
|
+
const result = await execute();
|
|
50
|
+
setImmediate(() => {
|
|
51
|
+
if (agentInfo) {
|
|
52
|
+
this.eventBus.emit(types_1.TUI_EVENTS.AGENT_DEACTIVATED, {
|
|
53
|
+
agentId: agentInfo.agentId,
|
|
54
|
+
reason: 'completed',
|
|
55
|
+
durationMs: Date.now() - startTime,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
const semanticEvents = (0, response_event_extractor_1.extractEventsFromResponse)(toolName, result);
|
|
59
|
+
for (const evt of semanticEvents) {
|
|
60
|
+
this.emitSemanticEvent(evt);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
if (agentInfo) {
|
|
67
|
+
setImmediate(() => {
|
|
68
|
+
this.eventBus.emit(types_1.TUI_EVENTS.AGENT_DEACTIVATED, {
|
|
69
|
+
agentId: agentInfo.agentId,
|
|
70
|
+
reason: 'error',
|
|
71
|
+
durationMs: Date.now() - startTime,
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
emitSemanticEvent(evt) {
|
|
79
|
+
switch (evt.event) {
|
|
80
|
+
case types_1.TUI_EVENTS.MODE_CHANGED: {
|
|
81
|
+
const payload = { ...evt.payload, from: this.currentMode };
|
|
82
|
+
this.currentMode = evt.payload.to;
|
|
83
|
+
this.eventBus.emit(types_1.TUI_EVENTS.MODE_CHANGED, payload);
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
case types_1.TUI_EVENTS.SKILL_RECOMMENDED:
|
|
87
|
+
this.eventBus.emit(types_1.TUI_EVENTS.SKILL_RECOMMENDED, evt.payload);
|
|
88
|
+
break;
|
|
89
|
+
case types_1.TUI_EVENTS.PARALLEL_STARTED:
|
|
90
|
+
this.eventBus.emit(types_1.TUI_EVENTS.PARALLEL_STARTED, evt.payload);
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
exports.TuiInterceptor = TuiInterceptor;
|
|
96
|
+
exports.TuiInterceptor = TuiInterceptor = TuiInterceptor_1 = __decorate([
|
|
97
|
+
(0, common_1.Injectable)(),
|
|
98
|
+
__metadata("design:paramtypes", [event_bus_1.TuiEventBus])
|
|
99
|
+
], TuiInterceptor);
|
|
100
|
+
//# sourceMappingURL=tui-interceptor.js.map
|