@compass-ai/nova 1.0.73 → 1.0.74
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/dist/acp/agent.d.ts +318 -0
- package/dist/acp/agent.d.ts.map +1 -0
- package/dist/acp/agent.js +795 -0
- package/dist/acp/agent.js.map +1 -0
- package/dist/acp/backpressure-writer.d.ts +49 -0
- package/dist/acp/backpressure-writer.d.ts.map +1 -0
- package/dist/acp/backpressure-writer.js +153 -0
- package/dist/acp/backpressure-writer.js.map +1 -0
- package/dist/acp/event-adapter.d.ts +242 -0
- package/dist/acp/event-adapter.d.ts.map +1 -0
- package/dist/acp/event-adapter.js +456 -0
- package/dist/acp/event-adapter.js.map +1 -0
- package/dist/acp/index.d.ts +30 -0
- package/dist/acp/index.d.ts.map +1 -0
- package/dist/acp/index.js +36 -0
- package/dist/acp/index.js.map +1 -0
- package/dist/acp/modes.d.ts +56 -0
- package/dist/acp/modes.d.ts.map +1 -0
- package/dist/acp/modes.js +135 -0
- package/dist/acp/modes.js.map +1 -0
- package/dist/acp/session-manager.d.ts +170 -0
- package/dist/acp/session-manager.d.ts.map +1 -0
- package/dist/acp/session-manager.js +381 -0
- package/dist/acp/session-manager.js.map +1 -0
- package/dist/acp/text-coalescer.d.ts +45 -0
- package/dist/acp/text-coalescer.d.ts.map +1 -0
- package/dist/acp/text-coalescer.js +110 -0
- package/dist/acp/text-coalescer.js.map +1 -0
- package/dist/acp/tool-bridge.d.ts +156 -0
- package/dist/acp/tool-bridge.d.ts.map +1 -0
- package/dist/acp/tool-bridge.js +381 -0
- package/dist/acp/tool-bridge.js.map +1 -0
- package/dist/acp/types.d.ts +314 -0
- package/dist/acp/types.d.ts.map +1 -0
- package/dist/acp/types.js +8 -0
- package/dist/acp/types.js.map +1 -0
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +185 -184
- package/dist/cli.js.map +1 -0
- package/dist/commands/acp.d.ts +26 -0
- package/dist/commands/acp.d.ts.map +1 -0
- package/dist/commands/acp.js +492 -0
- package/dist/commands/acp.js.map +1 -0
- package/dist/commands/cache.d.ts +33 -0
- package/dist/commands/cache.d.ts.map +1 -0
- package/dist/commands/cache.js +537 -0
- package/dist/commands/cache.js.map +1 -0
- package/dist/commands/config.d.ts +10 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +367 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/consent.d.ts +21 -0
- package/dist/commands/consent.d.ts.map +1 -0
- package/dist/commands/consent.js +334 -0
- package/dist/commands/consent.js.map +1 -0
- package/dist/commands/data.d.ts +24 -0
- package/dist/commands/data.d.ts.map +1 -0
- package/dist/commands/data.js +586 -0
- package/dist/commands/data.js.map +1 -0
- package/dist/commands/index.d.ts +145 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +210 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +106 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +349 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/logs.d.ts +13 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +359 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/mcp.d.ts +20 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +687 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/reset.d.ts +20 -0
- package/dist/commands/reset.d.ts.map +1 -0
- package/dist/commands/reset.js +372 -0
- package/dist/commands/reset.js.map +1 -0
- package/dist/commands/setup.d.ts +74 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +863 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/slash/agents.d.ts +40 -0
- package/dist/commands/slash/agents.d.ts.map +1 -0
- package/dist/commands/slash/agents.js +519 -0
- package/dist/commands/slash/agents.js.map +1 -0
- package/dist/commands/slash/approve.d.ts +46 -0
- package/dist/commands/slash/approve.d.ts.map +1 -0
- package/dist/commands/slash/approve.js +239 -0
- package/dist/commands/slash/approve.js.map +1 -0
- package/dist/commands/slash/attach.d.ts +70 -0
- package/dist/commands/slash/attach.d.ts.map +1 -0
- package/dist/commands/slash/attach.js +333 -0
- package/dist/commands/slash/attach.js.map +1 -0
- package/dist/commands/slash/clear.d.ts +47 -0
- package/dist/commands/slash/clear.d.ts.map +1 -0
- package/dist/commands/slash/clear.js +261 -0
- package/dist/commands/slash/clear.js.map +1 -0
- package/dist/commands/slash/commit.d.ts +40 -0
- package/dist/commands/slash/commit.d.ts.map +1 -0
- package/dist/commands/slash/commit.js +337 -0
- package/dist/commands/slash/commit.js.map +1 -0
- package/dist/commands/slash/compact.d.ts +48 -0
- package/dist/commands/slash/compact.d.ts.map +1 -0
- package/dist/commands/slash/compact.js +288 -0
- package/dist/commands/slash/compact.js.map +1 -0
- package/dist/commands/slash/config.d.ts +20 -0
- package/dist/commands/slash/config.d.ts.map +1 -0
- package/dist/commands/slash/config.js +136 -0
- package/dist/commands/slash/config.js.map +1 -0
- package/dist/commands/slash/context.d.ts +49 -0
- package/dist/commands/slash/context.d.ts.map +1 -0
- package/dist/commands/slash/context.js +430 -0
- package/dist/commands/slash/context.js.map +1 -0
- package/dist/commands/slash/cost.d.ts +34 -0
- package/dist/commands/slash/cost.d.ts.map +1 -0
- package/dist/commands/slash/cost.js +312 -0
- package/dist/commands/slash/cost.js.map +1 -0
- package/dist/commands/slash/custom.d.ts +41 -0
- package/dist/commands/slash/custom.d.ts.map +1 -0
- package/dist/commands/slash/custom.js +126 -0
- package/dist/commands/slash/custom.js.map +1 -0
- package/dist/commands/slash/exit.d.ts +25 -0
- package/dist/commands/slash/exit.d.ts.map +1 -0
- package/dist/commands/slash/exit.js +186 -0
- package/dist/commands/slash/exit.js.map +1 -0
- package/dist/commands/slash/export.d.ts +27 -0
- package/dist/commands/slash/export.d.ts.map +1 -0
- package/dist/commands/slash/export.js +318 -0
- package/dist/commands/slash/export.js.map +1 -0
- package/dist/commands/slash/files.d.ts +47 -0
- package/dist/commands/slash/files.d.ts.map +1 -0
- package/dist/commands/slash/files.js +521 -0
- package/dist/commands/slash/files.js.map +1 -0
- package/dist/commands/slash/help.d.ts +50 -0
- package/dist/commands/slash/help.d.ts.map +1 -0
- package/dist/commands/slash/help.js +282 -0
- package/dist/commands/slash/help.js.map +1 -0
- package/dist/commands/slash/index-cmd.d.ts +41 -0
- package/dist/commands/slash/index-cmd.d.ts.map +1 -0
- package/dist/commands/slash/index-cmd.js +349 -0
- package/dist/commands/slash/index-cmd.js.map +1 -0
- package/dist/commands/slash/index.d.ts +97 -0
- package/dist/commands/slash/index.d.ts.map +1 -0
- package/dist/commands/slash/index.js +251 -0
- package/dist/commands/slash/index.js.map +1 -0
- package/dist/commands/slash/login.d.ts +23 -0
- package/dist/commands/slash/login.d.ts.map +1 -0
- package/dist/commands/slash/login.js +175 -0
- package/dist/commands/slash/login.js.map +1 -0
- package/dist/commands/slash/logout.d.ts +23 -0
- package/dist/commands/slash/logout.d.ts.map +1 -0
- package/dist/commands/slash/logout.js +153 -0
- package/dist/commands/slash/logout.js.map +1 -0
- package/dist/commands/slash/logs.d.ts +29 -0
- package/dist/commands/slash/logs.d.ts.map +1 -0
- package/dist/commands/slash/logs.js +423 -0
- package/dist/commands/slash/logs.js.map +1 -0
- package/dist/commands/slash/mcp.d.ts +29 -0
- package/dist/commands/slash/mcp.d.ts.map +1 -0
- package/dist/commands/slash/mcp.js +1026 -0
- package/dist/commands/slash/mcp.js.map +1 -0
- package/dist/commands/slash/model.d.ts +60 -0
- package/dist/commands/slash/model.d.ts.map +1 -0
- package/dist/commands/slash/model.js +466 -0
- package/dist/commands/slash/model.js.map +1 -0
- package/dist/commands/slash/personality.d.ts +40 -0
- package/dist/commands/slash/personality.d.ts.map +1 -0
- package/dist/commands/slash/personality.js +272 -0
- package/dist/commands/slash/personality.js.map +1 -0
- package/dist/commands/slash/purge.d.ts +42 -0
- package/dist/commands/slash/purge.d.ts.map +1 -0
- package/dist/commands/slash/purge.js +233 -0
- package/dist/commands/slash/purge.js.map +1 -0
- package/dist/commands/slash/reset.d.ts +44 -0
- package/dist/commands/slash/reset.d.ts.map +1 -0
- package/dist/commands/slash/reset.js +326 -0
- package/dist/commands/slash/reset.js.map +1 -0
- package/dist/commands/slash/skills.d.ts +40 -0
- package/dist/commands/slash/skills.d.ts.map +1 -0
- package/dist/commands/slash/skills.js +207 -0
- package/dist/commands/slash/skills.js.map +1 -0
- package/dist/commands/slash/tokens.d.ts +34 -0
- package/dist/commands/slash/tokens.d.ts.map +1 -0
- package/dist/commands/slash/tokens.js +205 -0
- package/dist/commands/slash/tokens.js.map +1 -0
- package/dist/commands/slash/unleash.d.ts +50 -0
- package/dist/commands/slash/unleash.d.ts.map +1 -0
- package/dist/commands/slash/unleash.js +262 -0
- package/dist/commands/slash/unleash.js.map +1 -0
- package/dist/commands/slash/update.d.ts +34 -0
- package/dist/commands/slash/update.d.ts.map +1 -0
- package/dist/commands/slash/update.js +364 -0
- package/dist/commands/slash/update.js.map +1 -0
- package/dist/commands/slash/wrap.d.ts +18 -0
- package/dist/commands/slash/wrap.d.ts.map +1 -0
- package/dist/commands/slash/wrap.js +21 -0
- package/dist/commands/slash/wrap.js.map +1 -0
- package/dist/commands/tokens.d.ts +26 -0
- package/dist/commands/tokens.d.ts.map +1 -0
- package/dist/commands/tokens.js +245 -0
- package/dist/commands/tokens.js.map +1 -0
- package/dist/constants/builtin-agents.d.ts +27 -0
- package/dist/constants/builtin-agents.d.ts.map +1 -0
- package/dist/constants/builtin-agents.js +710 -0
- package/dist/constants/builtin-agents.js.map +1 -0
- package/dist/constants/builtin-skills.d.ts +32 -0
- package/dist/constants/builtin-skills.d.ts.map +1 -0
- package/dist/constants/builtin-skills.js +389 -0
- package/dist/constants/builtin-skills.js.map +1 -0
- package/dist/constants/defaults.d.ts +448 -0
- package/dist/constants/defaults.d.ts.map +1 -0
- package/dist/constants/defaults.js +829 -0
- package/dist/constants/defaults.js.map +1 -0
- package/dist/constants/index.d.ts +27 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +85 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/install-hints.d.ts +7 -0
- package/dist/constants/install-hints.d.ts.map +1 -0
- package/dist/constants/install-hints.js +123 -0
- package/dist/constants/install-hints.js.map +1 -0
- package/dist/constants/models.d.ts +255 -0
- package/dist/constants/models.d.ts.map +1 -0
- package/dist/constants/models.js +596 -0
- package/dist/constants/models.js.map +1 -0
- package/dist/constants/schedule.d.ts +43 -0
- package/dist/constants/schedule.d.ts.map +1 -0
- package/dist/constants/schedule.js +110 -0
- package/dist/constants/schedule.js.map +1 -0
- package/dist/constants/system-utilities.d.ts +57 -0
- package/dist/constants/system-utilities.d.ts.map +1 -0
- package/dist/constants/system-utilities.js +421 -0
- package/dist/constants/system-utilities.js.map +1 -0
- package/dist/constants/token-limits.d.ts +102 -0
- package/dist/constants/token-limits.d.ts.map +1 -0
- package/dist/constants/token-limits.js +286 -0
- package/dist/constants/token-limits.js.map +1 -0
- package/dist/core/autocomplete.d.ts +132 -0
- package/dist/core/autocomplete.d.ts.map +1 -0
- package/dist/core/autocomplete.js +653 -0
- package/dist/core/autocomplete.js.map +1 -0
- package/dist/core/command-parser.d.ts +301 -0
- package/dist/core/command-parser.d.ts.map +1 -0
- package/dist/core/command-parser.js +526 -0
- package/dist/core/command-parser.js.map +1 -0
- package/dist/core/context-builder.d.ts +264 -0
- package/dist/core/context-builder.d.ts.map +1 -0
- package/dist/core/context-builder.js +1018 -0
- package/dist/core/context-builder.js.map +1 -0
- package/dist/core/event-emitter.d.ts +411 -0
- package/dist/core/event-emitter.d.ts.map +1 -0
- package/dist/core/event-emitter.js +138 -0
- package/dist/core/event-emitter.js.map +1 -0
- package/dist/core/history-manager.d.ts +62 -0
- package/dist/core/history-manager.d.ts.map +1 -0
- package/dist/core/history-manager.js +151 -0
- package/dist/core/history-manager.js.map +1 -0
- package/dist/core/slash-command-handler.d.ts +352 -0
- package/dist/core/slash-command-handler.d.ts.map +1 -0
- package/dist/core/slash-command-handler.js +563 -0
- package/dist/core/slash-command-handler.js.map +1 -0
- package/dist/core/task-processor.d.ts +179 -0
- package/dist/core/task-processor.d.ts.map +1 -0
- package/dist/core/task-processor.js +519 -0
- package/dist/core/task-processor.js.map +1 -0
- package/dist/index.d.ts +90 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -0
- package/dist/prompts/agent-prompt-generator.d.ts +26 -0
- package/dist/prompts/agent-prompt-generator.d.ts.map +1 -0
- package/dist/prompts/agent-prompt-generator.js +244 -0
- package/dist/prompts/agent-prompt-generator.js.map +1 -0
- package/dist/prompts/commit-message.d.ts +35 -0
- package/dist/prompts/commit-message.d.ts.map +1 -0
- package/dist/prompts/commit-message.js +187 -0
- package/dist/prompts/commit-message.js.map +1 -0
- package/dist/prompts/conversation.d.ts +51 -0
- package/dist/prompts/conversation.d.ts.map +1 -0
- package/dist/prompts/conversation.js +115 -0
- package/dist/prompts/conversation.js.map +1 -0
- package/dist/prompts/index.d.ts +39 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +74 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/memory.d.ts +6 -0
- package/dist/prompts/memory.d.ts.map +1 -0
- package/dist/prompts/memory.js +29 -0
- package/dist/prompts/memory.js.map +1 -0
- package/dist/prompts/personality.d.ts +77 -0
- package/dist/prompts/personality.d.ts.map +1 -0
- package/dist/prompts/personality.js +393 -0
- package/dist/prompts/personality.js.map +1 -0
- package/dist/prompts/plan-generator.d.ts +144 -0
- package/dist/prompts/plan-generator.d.ts.map +1 -0
- package/dist/prompts/plan-generator.js +553 -0
- package/dist/prompts/plan-generator.js.map +1 -0
- package/dist/prompts/system.d.ts +95 -0
- package/dist/prompts/system.d.ts.map +1 -0
- package/dist/prompts/system.js +461 -0
- package/dist/prompts/system.js.map +1 -0
- package/dist/prompts/task-processor.d.ts +94 -0
- package/dist/prompts/task-processor.d.ts.map +1 -0
- package/dist/prompts/task-processor.js +554 -0
- package/dist/prompts/task-processor.js.map +1 -0
- package/dist/prompts/unguarded.d.ts +78 -0
- package/dist/prompts/unguarded.d.ts.map +1 -0
- package/dist/prompts/unguarded.js +418 -0
- package/dist/prompts/unguarded.js.map +1 -0
- package/dist/prompts/utils.d.ts +73 -0
- package/dist/prompts/utils.d.ts.map +1 -0
- package/dist/prompts/utils.js +114 -0
- package/dist/prompts/utils.js.map +1 -0
- package/dist/prompts/workflow.d.ts +241 -0
- package/dist/prompts/workflow.d.ts.map +1 -0
- package/dist/prompts/workflow.js +608 -0
- package/dist/prompts/workflow.js.map +1 -0
- package/dist/services/action-logger.d.ts +383 -0
- package/dist/services/action-logger.d.ts.map +1 -0
- package/dist/services/action-logger.js +544 -0
- package/dist/services/action-logger.js.map +1 -0
- package/dist/services/agent-budget-allocator.d.ts +111 -0
- package/dist/services/agent-budget-allocator.d.ts.map +1 -0
- package/dist/services/agent-budget-allocator.js +278 -0
- package/dist/services/agent-budget-allocator.js.map +1 -0
- package/dist/services/agent-manager.d.ts +181 -0
- package/dist/services/agent-manager.d.ts.map +1 -0
- package/dist/services/agent-manager.js +749 -0
- package/dist/services/agent-manager.js.map +1 -0
- package/dist/services/agent-spawner.d.ts +138 -0
- package/dist/services/agent-spawner.d.ts.map +1 -0
- package/dist/services/agent-spawner.js +748 -0
- package/dist/services/agent-spawner.js.map +1 -0
- package/dist/services/agent-state-service.d.ts +145 -0
- package/dist/services/agent-state-service.d.ts.map +1 -0
- package/dist/services/agent-state-service.js +247 -0
- package/dist/services/agent-state-service.js.map +1 -0
- package/dist/services/anthropic-client.d.ts +357 -0
- package/dist/services/anthropic-client.d.ts.map +1 -0
- package/dist/services/anthropic-client.js +1451 -0
- package/dist/services/anthropic-client.js.map +1 -0
- package/dist/services/approval-manager.d.ts +385 -0
- package/dist/services/approval-manager.d.ts.map +1 -0
- package/dist/services/approval-manager.js +1044 -0
- package/dist/services/approval-manager.js.map +1 -0
- package/dist/services/audit-logger.d.ts +245 -0
- package/dist/services/audit-logger.d.ts.map +1 -0
- package/dist/services/audit-logger.js +324 -0
- package/dist/services/audit-logger.js.map +1 -0
- package/dist/services/backup-manager.d.ts +136 -0
- package/dist/services/backup-manager.d.ts.map +1 -0
- package/dist/services/backup-manager.js +260 -0
- package/dist/services/backup-manager.js.map +1 -0
- package/dist/services/cache-service.d.ts +247 -0
- package/dist/services/cache-service.d.ts.map +1 -0
- package/dist/services/cache-service.js +558 -0
- package/dist/services/cache-service.js.map +1 -0
- package/dist/services/chat-archival-service.d.ts +108 -0
- package/dist/services/chat-archival-service.d.ts.map +1 -0
- package/dist/services/chat-archival-service.js +465 -0
- package/dist/services/chat-archival-service.js.map +1 -0
- package/dist/services/codebase-indexer.d.ts +272 -0
- package/dist/services/codebase-indexer.d.ts.map +1 -0
- package/dist/services/codebase-indexer.js +863 -0
- package/dist/services/codebase-indexer.js.map +1 -0
- package/dist/services/compass-auth-service.d.ts +204 -0
- package/dist/services/compass-auth-service.d.ts.map +1 -0
- package/dist/services/compass-auth-service.js +391 -0
- package/dist/services/compass-auth-service.js.map +1 -0
- package/dist/services/complexity-classifier.d.ts +208 -0
- package/dist/services/complexity-classifier.d.ts.map +1 -0
- package/dist/services/complexity-classifier.js +1410 -0
- package/dist/services/complexity-classifier.js.map +1 -0
- package/dist/services/config-manager.d.ts +278 -0
- package/dist/services/config-manager.d.ts.map +1 -0
- package/dist/services/config-manager.js +651 -0
- package/dist/services/config-manager.js.map +1 -0
- package/dist/services/consent-manager.d.ts +239 -0
- package/dist/services/consent-manager.d.ts.map +1 -0
- package/dist/services/consent-manager.js +516 -0
- package/dist/services/consent-manager.js.map +1 -0
- package/dist/services/conversation-compactor.d.ts +223 -0
- package/dist/services/conversation-compactor.d.ts.map +1 -0
- package/dist/services/conversation-compactor.js +750 -0
- package/dist/services/conversation-compactor.js.map +1 -0
- package/dist/services/cost-tracker.d.ts +167 -0
- package/dist/services/cost-tracker.d.ts.map +1 -0
- package/dist/services/cost-tracker.js +199 -0
- package/dist/services/cost-tracker.js.map +1 -0
- package/dist/services/credential-store.d.ts +273 -0
- package/dist/services/credential-store.d.ts.map +1 -0
- package/dist/services/credential-store.js +877 -0
- package/dist/services/credential-store.js.map +1 -0
- package/dist/services/custom-command-service.d.ts +112 -0
- package/dist/services/custom-command-service.d.ts.map +1 -0
- package/dist/services/custom-command-service.js +464 -0
- package/dist/services/custom-command-service.js.map +1 -0
- package/dist/services/default-statusline-renderer.d.ts +60 -0
- package/dist/services/default-statusline-renderer.d.ts.map +1 -0
- package/dist/services/default-statusline-renderer.js +110 -0
- package/dist/services/default-statusline-renderer.js.map +1 -0
- package/dist/services/enhanced-context-gatherer.d.ts +116 -0
- package/dist/services/enhanced-context-gatherer.d.ts.map +1 -0
- package/dist/services/enhanced-context-gatherer.js +605 -0
- package/dist/services/enhanced-context-gatherer.js.map +1 -0
- package/dist/services/file-hash-tracker.d.ts +95 -0
- package/dist/services/file-hash-tracker.d.ts.map +1 -0
- package/dist/services/file-hash-tracker.js +199 -0
- package/dist/services/file-hash-tracker.js.map +1 -0
- package/dist/services/file-service.d.ts +274 -0
- package/dist/services/file-service.d.ts.map +1 -0
- package/dist/services/file-service.js +876 -0
- package/dist/services/file-service.js.map +1 -0
- package/dist/services/git-service.d.ts +536 -0
- package/dist/services/git-service.d.ts.map +1 -0
- package/dist/services/git-service.js +1215 -0
- package/dist/services/git-service.js.map +1 -0
- package/dist/services/hook-service.d.ts +148 -0
- package/dist/services/hook-service.d.ts.map +1 -0
- package/dist/services/hook-service.js +705 -0
- package/dist/services/hook-service.js.map +1 -0
- package/dist/services/ide-state-service.d.ts +114 -0
- package/dist/services/ide-state-service.d.ts.map +1 -0
- package/dist/services/ide-state-service.js +204 -0
- package/dist/services/ide-state-service.js.map +1 -0
- package/dist/services/interactive-clarifier.d.ts +90 -0
- package/dist/services/interactive-clarifier.d.ts.map +1 -0
- package/dist/services/interactive-clarifier.js +446 -0
- package/dist/services/interactive-clarifier.js.map +1 -0
- package/dist/services/iteration-scoper.d.ts +225 -0
- package/dist/services/iteration-scoper.d.ts.map +1 -0
- package/dist/services/iteration-scoper.js +387 -0
- package/dist/services/iteration-scoper.js.map +1 -0
- package/dist/services/llm-plan-generator.d.ts +44 -0
- package/dist/services/llm-plan-generator.d.ts.map +1 -0
- package/dist/services/llm-plan-generator.js +863 -0
- package/dist/services/llm-plan-generator.js.map +1 -0
- package/dist/services/llm-system-prompt-generator.d.ts +85 -0
- package/dist/services/llm-system-prompt-generator.d.ts.map +1 -0
- package/dist/services/llm-system-prompt-generator.js +257 -0
- package/dist/services/llm-system-prompt-generator.js.map +1 -0
- package/dist/services/log-interpreter.d.ts +190 -0
- package/dist/services/log-interpreter.d.ts.map +1 -0
- package/dist/services/log-interpreter.js +520 -0
- package/dist/services/log-interpreter.js.map +1 -0
- package/dist/services/mcp-config-manager.d.ts +141 -0
- package/dist/services/mcp-config-manager.d.ts.map +1 -0
- package/dist/services/mcp-config-manager.js +678 -0
- package/dist/services/mcp-config-manager.js.map +1 -0
- package/dist/services/mcp-oauth-service.d.ts +170 -0
- package/dist/services/mcp-oauth-service.d.ts.map +1 -0
- package/dist/services/mcp-oauth-service.js +892 -0
- package/dist/services/mcp-oauth-service.js.map +1 -0
- package/dist/services/mcp-plugin-support.d.ts +81 -0
- package/dist/services/mcp-plugin-support.d.ts.map +1 -0
- package/dist/services/mcp-plugin-support.js +305 -0
- package/dist/services/mcp-plugin-support.js.map +1 -0
- package/dist/services/mcp-server-manager.d.ts +134 -0
- package/dist/services/mcp-server-manager.d.ts.map +1 -0
- package/dist/services/mcp-server-manager.js +613 -0
- package/dist/services/mcp-server-manager.js.map +1 -0
- package/dist/services/mcp-tool-integration.d.ts +119 -0
- package/dist/services/mcp-tool-integration.d.ts.map +1 -0
- package/dist/services/mcp-tool-integration.js +381 -0
- package/dist/services/mcp-tool-integration.js.map +1 -0
- package/dist/services/mcp-transport.d.ts +105 -0
- package/dist/services/mcp-transport.d.ts.map +1 -0
- package/dist/services/mcp-transport.js +1316 -0
- package/dist/services/mcp-transport.js.map +1 -0
- package/dist/services/memory-service.d.ts +55 -0
- package/dist/services/memory-service.d.ts.map +1 -0
- package/dist/services/memory-service.js +251 -0
- package/dist/services/memory-service.js.map +1 -0
- package/dist/services/model-availability.d.ts +64 -0
- package/dist/services/model-availability.d.ts.map +1 -0
- package/dist/services/model-availability.js +114 -0
- package/dist/services/model-availability.js.map +1 -0
- package/dist/services/plan-generator.d.ts +98 -0
- package/dist/services/plan-generator.d.ts.map +1 -0
- package/dist/services/plan-generator.js +658 -0
- package/dist/services/plan-generator.js.map +1 -0
- package/dist/services/plan-mode-fallback.d.ts +80 -0
- package/dist/services/plan-mode-fallback.d.ts.map +1 -0
- package/dist/services/plan-mode-fallback.js +307 -0
- package/dist/services/plan-mode-fallback.js.map +1 -0
- package/dist/services/plan-mode-handler.d.ts +42 -0
- package/dist/services/plan-mode-handler.d.ts.map +1 -0
- package/dist/services/plan-mode-handler.js +388 -0
- package/dist/services/plan-mode-handler.js.map +1 -0
- package/dist/services/plan-persistence.d.ts +203 -0
- package/dist/services/plan-persistence.d.ts.map +1 -0
- package/dist/services/plan-persistence.js +538 -0
- package/dist/services/plan-persistence.js.map +1 -0
- package/dist/services/prompt-preprocessor.d.ts +73 -0
- package/dist/services/prompt-preprocessor.d.ts.map +1 -0
- package/dist/services/prompt-preprocessor.js +146 -0
- package/dist/services/prompt-preprocessor.js.map +1 -0
- package/dist/services/rating-service.d.ts +84 -0
- package/dist/services/rating-service.d.ts.map +1 -0
- package/dist/services/rating-service.js +171 -0
- package/dist/services/rating-service.js.map +1 -0
- package/dist/services/rating-state-manager.d.ts +131 -0
- package/dist/services/rating-state-manager.d.ts.map +1 -0
- package/dist/services/rating-state-manager.js +270 -0
- package/dist/services/rating-state-manager.js.map +1 -0
- package/dist/services/sdk-runner.d.ts +113 -0
- package/dist/services/sdk-runner.d.ts.map +1 -0
- package/dist/services/sdk-runner.js +1424 -0
- package/dist/services/sdk-runner.js.map +1 -0
- package/dist/services/session-manager.d.ts +528 -0
- package/dist/services/session-manager.d.ts.map +1 -0
- package/dist/services/session-manager.js +1184 -0
- package/dist/services/session-manager.js.map +1 -0
- package/dist/services/shell-executor.d.ts +337 -0
- package/dist/services/shell-executor.d.ts.map +1 -0
- package/dist/services/shell-executor.js +1201 -0
- package/dist/services/shell-executor.js.map +1 -0
- package/dist/services/skill-service.d.ts +149 -0
- package/dist/services/skill-service.d.ts.map +1 -0
- package/dist/services/skill-service.js +594 -0
- package/dist/services/skill-service.js.map +1 -0
- package/dist/services/statusline-executor.d.ts +102 -0
- package/dist/services/statusline-executor.d.ts.map +1 -0
- package/dist/services/statusline-executor.js +305 -0
- package/dist/services/statusline-executor.js.map +1 -0
- package/dist/services/step-tracker.d.ts +356 -0
- package/dist/services/step-tracker.d.ts.map +1 -0
- package/dist/services/step-tracker.js +634 -0
- package/dist/services/step-tracker.js.map +1 -0
- package/dist/services/system-event-logger.d.ts +473 -0
- package/dist/services/system-event-logger.d.ts.map +1 -0
- package/dist/services/system-event-logger.js +790 -0
- package/dist/services/system-event-logger.js.map +1 -0
- package/dist/services/system-utility-detector.d.ts +91 -0
- package/dist/services/system-utility-detector.d.ts.map +1 -0
- package/dist/services/system-utility-detector.js +238 -0
- package/dist/services/system-utility-detector.js.map +1 -0
- package/dist/services/team-context-store.d.ts +100 -0
- package/dist/services/team-context-store.d.ts.map +1 -0
- package/dist/services/team-context-store.js +513 -0
- package/dist/services/team-context-store.js.map +1 -0
- package/dist/services/temp-file-service.d.ts +164 -0
- package/dist/services/temp-file-service.d.ts.map +1 -0
- package/dist/services/temp-file-service.js +303 -0
- package/dist/services/temp-file-service.js.map +1 -0
- package/dist/services/token-limit-enforcer.d.ts +53 -0
- package/dist/services/token-limit-enforcer.d.ts.map +1 -0
- package/dist/services/token-limit-enforcer.js +90 -0
- package/dist/services/token-limit-enforcer.js.map +1 -0
- package/dist/services/token-limit-store.d.ts +105 -0
- package/dist/services/token-limit-store.d.ts.map +1 -0
- package/dist/services/token-limit-store.js +288 -0
- package/dist/services/token-limit-store.js.map +1 -0
- package/dist/services/token-tracker.d.ts +290 -0
- package/dist/services/token-tracker.d.ts.map +1 -0
- package/dist/services/token-tracker.js +751 -0
- package/dist/services/token-tracker.js.map +1 -0
- package/dist/services/tool-registry.d.ts +302 -0
- package/dist/services/tool-registry.d.ts.map +1 -0
- package/dist/services/tool-registry.js +606 -0
- package/dist/services/tool-registry.js.map +1 -0
- package/dist/services/tools-logger.d.ts +152 -0
- package/dist/services/tools-logger.d.ts.map +1 -0
- package/dist/services/tools-logger.js +222 -0
- package/dist/services/tools-logger.js.map +1 -0
- package/dist/services/update-plan-handler.d.ts +56 -0
- package/dist/services/update-plan-handler.d.ts.map +1 -0
- package/dist/services/update-plan-handler.js +372 -0
- package/dist/services/update-plan-handler.js.map +1 -0
- package/dist/services/update-service.d.ts +197 -0
- package/dist/services/update-service.d.ts.map +1 -0
- package/dist/services/update-service.js +749 -0
- package/dist/services/update-service.js.map +1 -0
- package/dist/services/verifier.d.ts +113 -0
- package/dist/services/verifier.d.ts.map +1 -0
- package/dist/services/verifier.js +541 -0
- package/dist/services/verifier.js.map +1 -0
- package/dist/services/workflow-manager.d.ts +277 -0
- package/dist/services/workflow-manager.d.ts.map +1 -0
- package/dist/services/workflow-manager.js +616 -0
- package/dist/services/workflow-manager.js.map +1 -0
- package/dist/services/workflow-orchestrator.d.ts +148 -0
- package/dist/services/workflow-orchestrator.d.ts.map +1 -0
- package/dist/services/workflow-orchestrator.js +617 -0
- package/dist/services/workflow-orchestrator.js.map +1 -0
- package/dist/services/worktree-manager.d.ts +36 -0
- package/dist/services/worktree-manager.d.ts.map +1 -0
- package/dist/services/worktree-manager.js +185 -0
- package/dist/services/worktree-manager.js.map +1 -0
- package/dist/templates/ascii-art.d.ts +136 -0
- package/dist/templates/ascii-art.d.ts.map +1 -0
- package/dist/templates/ascii-art.js +286 -0
- package/dist/templates/ascii-art.js.map +1 -0
- package/dist/templates/help.d.ts +186 -0
- package/dist/templates/help.d.ts.map +1 -0
- package/dist/templates/help.js +588 -0
- package/dist/templates/help.js.map +1 -0
- package/dist/templates/prompts/workflow-prompts.d.ts +9 -0
- package/dist/templates/prompts/workflow-prompts.d.ts.map +1 -0
- package/dist/templates/prompts/workflow-prompts.js +9 -0
- package/dist/templates/prompts/workflow-prompts.js.map +1 -0
- package/dist/tools/agent-tools.d.ts +9 -0
- package/dist/tools/agent-tools.d.ts.map +1 -0
- package/dist/tools/agent-tools.js +349 -0
- package/dist/tools/agent-tools.js.map +1 -0
- package/dist/tools/edit-replacers.d.ts +90 -0
- package/dist/tools/edit-replacers.d.ts.map +1 -0
- package/dist/tools/edit-replacers.js +553 -0
- package/dist/tools/edit-replacers.js.map +1 -0
- package/dist/tools/file-tools.d.ts +13 -0
- package/dist/tools/file-tools.d.ts.map +1 -0
- package/dist/tools/file-tools.js +954 -0
- package/dist/tools/file-tools.js.map +1 -0
- package/dist/tools/git-tools.d.ts +9 -0
- package/dist/tools/git-tools.d.ts.map +1 -0
- package/dist/tools/git-tools.js +261 -0
- package/dist/tools/git-tools.js.map +1 -0
- package/dist/tools/index.d.ts +13 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +70 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/network-tools.d.ts +8 -0
- package/dist/tools/network-tools.d.ts.map +1 -0
- package/dist/tools/network-tools.js +261 -0
- package/dist/tools/network-tools.js.map +1 -0
- package/dist/tools/openai-tools.d.ts +16 -0
- package/dist/tools/openai-tools.d.ts.map +1 -0
- package/dist/tools/openai-tools.js +385 -0
- package/dist/tools/openai-tools.js.map +1 -0
- package/dist/tools/plan-tools.d.ts +9 -0
- package/dist/tools/plan-tools.d.ts.map +1 -0
- package/dist/tools/plan-tools.js +223 -0
- package/dist/tools/plan-tools.js.map +1 -0
- package/dist/tools/schedule-tools.d.ts +9 -0
- package/dist/tools/schedule-tools.d.ts.map +1 -0
- package/dist/tools/schedule-tools.js +405 -0
- package/dist/tools/schedule-tools.js.map +1 -0
- package/dist/tools/search-tools.d.ts +8 -0
- package/dist/tools/search-tools.d.ts.map +1 -0
- package/dist/tools/search-tools.js +357 -0
- package/dist/tools/search-tools.js.map +1 -0
- package/dist/tools/shared-utils.d.ts +91 -0
- package/dist/tools/shared-utils.d.ts.map +1 -0
- package/dist/tools/shared-utils.js +385 -0
- package/dist/tools/shared-utils.js.map +1 -0
- package/dist/tools/shell-tools.d.ts +9 -0
- package/dist/tools/shell-tools.d.ts.map +1 -0
- package/dist/tools/shell-tools.js +409 -0
- package/dist/tools/shell-tools.js.map +1 -0
- package/dist/tools/skill-tools.d.ts +13 -0
- package/dist/tools/skill-tools.d.ts.map +1 -0
- package/dist/tools/skill-tools.js +244 -0
- package/dist/tools/skill-tools.js.map +1 -0
- package/dist/tools/swarm-tools.d.ts +9 -0
- package/dist/tools/swarm-tools.d.ts.map +1 -0
- package/dist/tools/swarm-tools.js +422 -0
- package/dist/tools/swarm-tools.js.map +1 -0
- package/dist/tools/user-tools.d.ts +13 -0
- package/dist/tools/user-tools.d.ts.map +1 -0
- package/dist/tools/user-tools.js +232 -0
- package/dist/tools/user-tools.js.map +1 -0
- package/dist/types/agent-process.d.ts +244 -0
- package/dist/types/agent-process.d.ts.map +1 -0
- package/dist/types/agent-process.js +93 -0
- package/dist/types/agent-process.js.map +1 -0
- package/dist/types/agent.d.ts +358 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +171 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/anthropic.d.ts +438 -0
- package/dist/types/anthropic.d.ts.map +1 -0
- package/dist/types/anthropic.js +9 -0
- package/dist/types/anthropic.js.map +1 -0
- package/dist/types/approval.d.ts +332 -0
- package/dist/types/approval.d.ts.map +1 -0
- package/dist/types/approval.js +44 -0
- package/dist/types/approval.js.map +1 -0
- package/dist/types/autocomplete.d.ts +57 -0
- package/dist/types/autocomplete.d.ts.map +1 -0
- package/dist/types/autocomplete.js +7 -0
- package/dist/types/autocomplete.js.map +1 -0
- package/dist/types/chat-archive.d.ts +161 -0
- package/dist/types/chat-archive.d.ts.map +1 -0
- package/dist/types/chat-archive.js +36 -0
- package/dist/types/chat-archive.js.map +1 -0
- package/dist/types/config.d.ts +268 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +188 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/consent.d.ts +191 -0
- package/dist/types/consent.d.ts.map +1 -0
- package/dist/types/consent.js +119 -0
- package/dist/types/consent.js.map +1 -0
- package/dist/types/custom-command.d.ts +139 -0
- package/dist/types/custom-command.d.ts.map +1 -0
- package/dist/types/custom-command.js +7 -0
- package/dist/types/custom-command.js.map +1 -0
- package/dist/types/git.d.ts +20 -0
- package/dist/types/git.d.ts.map +1 -0
- package/dist/types/git.js +2 -0
- package/dist/types/git.js.map +1 -0
- package/dist/types/hook.d.ts +342 -0
- package/dist/types/hook.d.ts.map +1 -0
- package/dist/types/hook.js +84 -0
- package/dist/types/hook.js.map +1 -0
- package/dist/types/index.d.ts +86 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +71 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mcp.d.ts +456 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/mcp.js +94 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/types/rating.d.ts +110 -0
- package/dist/types/rating.d.ts.map +1 -0
- package/dist/types/rating.js +53 -0
- package/dist/types/rating.js.map +1 -0
- package/dist/types/schedule.d.ts +91 -0
- package/dist/types/schedule.d.ts.map +1 -0
- package/dist/types/schedule.js +8 -0
- package/dist/types/schedule.js.map +1 -0
- package/dist/types/session.d.ts +361 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +9 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/skill.d.ts +258 -0
- package/dist/types/skill.d.ts.map +1 -0
- package/dist/types/skill.js +79 -0
- package/dist/types/skill.js.map +1 -0
- package/dist/types/statusline.d.ts +212 -0
- package/dist/types/statusline.d.ts.map +1 -0
- package/dist/types/statusline.js +8 -0
- package/dist/types/statusline.js.map +1 -0
- package/dist/types/stream.d.ts +61 -0
- package/dist/types/stream.d.ts.map +1 -0
- package/dist/types/stream.js +17 -0
- package/dist/types/stream.js.map +1 -0
- package/dist/types/swarm.d.ts +132 -0
- package/dist/types/swarm.d.ts.map +1 -0
- package/dist/types/swarm.js +21 -0
- package/dist/types/swarm.js.map +1 -0
- package/dist/types/token-limits.d.ts +107 -0
- package/dist/types/token-limits.d.ts.map +1 -0
- package/dist/types/token-limits.js +57 -0
- package/dist/types/token-limits.js.map +1 -0
- package/dist/types/token.d.ts +329 -0
- package/dist/types/token.d.ts.map +1 -0
- package/dist/types/token.js +9 -0
- package/dist/types/token.js.map +1 -0
- package/dist/types/update.d.ts +189 -0
- package/dist/types/update.d.ts.map +1 -0
- package/dist/types/update.js +55 -0
- package/dist/types/update.js.map +1 -0
- package/dist/types/workflow.d.ts +396 -0
- package/dist/types/workflow.d.ts.map +1 -0
- package/dist/types/workflow.js +46 -0
- package/dist/types/workflow.js.map +1 -0
- package/dist/ui/App.d.ts +62 -0
- package/dist/ui/App.d.ts.map +1 -0
- package/dist/ui/App.js +511 -0
- package/dist/ui/App.js.map +1 -0
- package/dist/ui/InteractiveSession.d.ts +34 -0
- package/dist/ui/InteractiveSession.d.ts.map +1 -0
- package/dist/ui/InteractiveSession.js +3611 -0
- package/dist/ui/InteractiveSession.js.map +1 -0
- package/dist/ui/MCPApprovalPrompt.d.ts +27 -0
- package/dist/ui/MCPApprovalPrompt.d.ts.map +1 -0
- package/dist/ui/MCPApprovalPrompt.js +51 -0
- package/dist/ui/MCPApprovalPrompt.js.map +1 -0
- package/dist/ui/SetupWizard.d.ts +26 -0
- package/dist/ui/SetupWizard.d.ts.map +1 -0
- package/dist/ui/SetupWizard.js +396 -0
- package/dist/ui/SetupWizard.js.map +1 -0
- package/dist/ui/components/AgentCreationWizard.d.ts +36 -0
- package/dist/ui/components/AgentCreationWizard.d.ts.map +1 -0
- package/dist/ui/components/AgentCreationWizard.js +619 -0
- package/dist/ui/components/AgentCreationWizard.js.map +1 -0
- package/dist/ui/components/AgentManager.d.ts +41 -0
- package/dist/ui/components/AgentManager.d.ts.map +1 -0
- package/dist/ui/components/AgentManager.js +343 -0
- package/dist/ui/components/AgentManager.js.map +1 -0
- package/dist/ui/components/ApprovalDialog.d.ts +18 -0
- package/dist/ui/components/ApprovalDialog.d.ts.map +1 -0
- package/dist/ui/components/ApprovalDialog.js +439 -0
- package/dist/ui/components/ApprovalDialog.js.map +1 -0
- package/dist/ui/components/AsciiArt.d.ts +54 -0
- package/dist/ui/components/AsciiArt.d.ts.map +1 -0
- package/dist/ui/components/AsciiArt.js +89 -0
- package/dist/ui/components/AsciiArt.js.map +1 -0
- package/dist/ui/components/ClarificationWizard.d.ts +36 -0
- package/dist/ui/components/ClarificationWizard.d.ts.map +1 -0
- package/dist/ui/components/ClarificationWizard.js +407 -0
- package/dist/ui/components/ClarificationWizard.js.map +1 -0
- package/dist/ui/components/CompassSpinner.d.ts +15 -0
- package/dist/ui/components/CompassSpinner.d.ts.map +1 -0
- package/dist/ui/components/CompassSpinner.js +50 -0
- package/dist/ui/components/CompassSpinner.js.map +1 -0
- package/dist/ui/components/ConfirmationSelector.d.ts +45 -0
- package/dist/ui/components/ConfirmationSelector.d.ts.map +1 -0
- package/dist/ui/components/ConfirmationSelector.js +106 -0
- package/dist/ui/components/ConfirmationSelector.js.map +1 -0
- package/dist/ui/components/ContextUsage.d.ts +76 -0
- package/dist/ui/components/ContextUsage.d.ts.map +1 -0
- package/dist/ui/components/ContextUsage.js +188 -0
- package/dist/ui/components/ContextUsage.js.map +1 -0
- package/dist/ui/components/DiffPreview.d.ts +13 -0
- package/dist/ui/components/DiffPreview.d.ts.map +1 -0
- package/dist/ui/components/DiffPreview.js +30 -0
- package/dist/ui/components/DiffPreview.js.map +1 -0
- package/dist/ui/components/ExecutionModeSelector.d.ts +45 -0
- package/dist/ui/components/ExecutionModeSelector.d.ts.map +1 -0
- package/dist/ui/components/ExecutionModeSelector.js +120 -0
- package/dist/ui/components/ExecutionModeSelector.js.map +1 -0
- package/dist/ui/components/FileTree.d.ts +47 -0
- package/dist/ui/components/FileTree.d.ts.map +1 -0
- package/dist/ui/components/FileTree.js +258 -0
- package/dist/ui/components/FileTree.js.map +1 -0
- package/dist/ui/components/HelpMenu.d.ts +49 -0
- package/dist/ui/components/HelpMenu.d.ts.map +1 -0
- package/dist/ui/components/HelpMenu.js +91 -0
- package/dist/ui/components/HelpMenu.js.map +1 -0
- package/dist/ui/components/InterleavedStream.d.ts +42 -0
- package/dist/ui/components/InterleavedStream.d.ts.map +1 -0
- package/dist/ui/components/InterleavedStream.js +1500 -0
- package/dist/ui/components/InterleavedStream.js.map +1 -0
- package/dist/ui/components/ModelSelector.d.ts +81 -0
- package/dist/ui/components/ModelSelector.d.ts.map +1 -0
- package/dist/ui/components/ModelSelector.js +305 -0
- package/dist/ui/components/ModelSelector.js.map +1 -0
- package/dist/ui/components/PlanApprovalDialog.d.ts +21 -0
- package/dist/ui/components/PlanApprovalDialog.d.ts.map +1 -0
- package/dist/ui/components/PlanApprovalDialog.js +189 -0
- package/dist/ui/components/PlanApprovalDialog.js.map +1 -0
- package/dist/ui/components/PlanExecutionTracker.d.ts +53 -0
- package/dist/ui/components/PlanExecutionTracker.d.ts.map +1 -0
- package/dist/ui/components/PlanExecutionTracker.js +113 -0
- package/dist/ui/components/PlanExecutionTracker.js.map +1 -0
- package/dist/ui/components/ProgressIndicator.d.ts +151 -0
- package/dist/ui/components/ProgressIndicator.d.ts.map +1 -0
- package/dist/ui/components/ProgressIndicator.js +171 -0
- package/dist/ui/components/ProgressIndicator.js.map +1 -0
- package/dist/ui/components/Prompt.d.ts +47 -0
- package/dist/ui/components/Prompt.d.ts.map +1 -0
- package/dist/ui/components/Prompt.js +632 -0
- package/dist/ui/components/Prompt.js.map +1 -0
- package/dist/ui/components/RatingPanel.d.ts +45 -0
- package/dist/ui/components/RatingPanel.d.ts.map +1 -0
- package/dist/ui/components/RatingPanel.js +119 -0
- package/dist/ui/components/RatingPanel.js.map +1 -0
- package/dist/ui/components/StatusLine.d.ts +43 -0
- package/dist/ui/components/StatusLine.d.ts.map +1 -0
- package/dist/ui/components/StatusLine.js +44 -0
- package/dist/ui/components/StatusLine.js.map +1 -0
- package/dist/ui/components/StreamingResponse.d.ts +45 -0
- package/dist/ui/components/StreamingResponse.d.ts.map +1 -0
- package/dist/ui/components/StreamingResponse.js +56 -0
- package/dist/ui/components/StreamingResponse.js.map +1 -0
- package/dist/ui/components/TokenUsage.d.ts +89 -0
- package/dist/ui/components/TokenUsage.d.ts.map +1 -0
- package/dist/ui/components/TokenUsage.js +99 -0
- package/dist/ui/components/TokenUsage.js.map +1 -0
- package/dist/ui/components/ToolSummary.d.ts +77 -0
- package/dist/ui/components/ToolSummary.d.ts.map +1 -0
- package/dist/ui/components/ToolSummary.js +162 -0
- package/dist/ui/components/ToolSummary.js.map +1 -0
- package/dist/ui/components/UpdateNotification.d.ts +65 -0
- package/dist/ui/components/UpdateNotification.d.ts.map +1 -0
- package/dist/ui/components/UpdateNotification.js +166 -0
- package/dist/ui/components/UpdateNotification.js.map +1 -0
- package/dist/ui/diff-renderer.d.ts +18 -0
- package/dist/ui/diff-renderer.d.ts.map +1 -0
- package/dist/ui/diff-renderer.js +206 -0
- package/dist/ui/diff-renderer.js.map +1 -0
- package/dist/ui/themes/markdown-theme.d.ts +48 -0
- package/dist/ui/themes/markdown-theme.d.ts.map +1 -0
- package/dist/ui/themes/markdown-theme.js +79 -0
- package/dist/ui/themes/markdown-theme.js.map +1 -0
- package/dist/ui/themes/ui-theme.d.ts +301 -0
- package/dist/ui/themes/ui-theme.d.ts.map +1 -0
- package/dist/ui/themes/ui-theme.js +204 -0
- package/dist/ui/themes/ui-theme.js.map +1 -0
- package/dist/utils/attachment-handler.d.ts +129 -0
- package/dist/utils/attachment-handler.d.ts.map +1 -0
- package/dist/utils/attachment-handler.js +280 -0
- package/dist/utils/attachment-handler.js.map +1 -0
- package/dist/utils/backup-cleanup.d.ts +28 -0
- package/dist/utils/backup-cleanup.d.ts.map +1 -0
- package/dist/utils/backup-cleanup.js +99 -0
- package/dist/utils/backup-cleanup.js.map +1 -0
- package/dist/utils/clipboard-handler.d.ts +82 -0
- package/dist/utils/clipboard-handler.d.ts.map +1 -0
- package/dist/utils/clipboard-handler.js +311 -0
- package/dist/utils/clipboard-handler.js.map +1 -0
- package/dist/utils/cloud-detection.d.ts +14 -0
- package/dist/utils/cloud-detection.d.ts.map +1 -0
- package/dist/utils/cloud-detection.js +92 -0
- package/dist/utils/cloud-detection.js.map +1 -0
- package/dist/utils/command-parser.d.ts +56 -0
- package/dist/utils/command-parser.d.ts.map +1 -0
- package/dist/utils/command-parser.js +206 -0
- package/dist/utils/command-parser.js.map +1 -0
- package/dist/utils/console-capture.d.ts +30 -0
- package/dist/utils/console-capture.d.ts.map +1 -0
- package/dist/utils/console-capture.js +88 -0
- package/dist/utils/console-capture.js.map +1 -0
- package/dist/utils/cron-parser.d.ts +52 -0
- package/dist/utils/cron-parser.d.ts.map +1 -0
- package/dist/utils/cron-parser.js +455 -0
- package/dist/utils/cron-parser.js.map +1 -0
- package/dist/utils/crypto.d.ts +351 -0
- package/dist/utils/crypto.d.ts.map +1 -0
- package/dist/utils/crypto.js +615 -0
- package/dist/utils/crypto.js.map +1 -0
- package/dist/utils/diff.d.ts +311 -0
- package/dist/utils/diff.d.ts.map +1 -0
- package/dist/utils/diff.js +566 -0
- package/dist/utils/diff.js.map +1 -0
- package/dist/utils/editor.d.ts +12 -0
- package/dist/utils/editor.d.ts.map +1 -0
- package/dist/utils/editor.js +30 -0
- package/dist/utils/editor.js.map +1 -0
- package/dist/utils/file-system.d.ts +512 -0
- package/dist/utils/file-system.d.ts.map +1 -0
- package/dist/utils/file-system.js +798 -0
- package/dist/utils/file-system.js.map +1 -0
- package/dist/utils/format.d.ts +318 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +587 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/ignore-patterns.d.ts +93 -0
- package/dist/utils/ignore-patterns.d.ts.map +1 -0
- package/dist/utils/ignore-patterns.js +710 -0
- package/dist/utils/ignore-patterns.js.map +1 -0
- package/dist/utils/log-cleanup.d.ts +16 -0
- package/dist/utils/log-cleanup.d.ts.map +1 -0
- package/dist/utils/log-cleanup.js +51 -0
- package/dist/utils/log-cleanup.js.map +1 -0
- package/dist/utils/logger.d.ts +305 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +447 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/path.d.ts +406 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +549 -0
- package/dist/utils/path.js.map +1 -0
- package/dist/utils/schedule-file.d.ts +63 -0
- package/dist/utils/schedule-file.d.ts.map +1 -0
- package/dist/utils/schedule-file.js +244 -0
- package/dist/utils/schedule-file.js.map +1 -0
- package/dist/utils/task-id.d.ts +29 -0
- package/dist/utils/task-id.d.ts.map +1 -0
- package/dist/utils/task-id.js +53 -0
- package/dist/utils/task-id.js.map +1 -0
- package/dist/utils/temp-cleanup.d.ts +46 -0
- package/dist/utils/temp-cleanup.d.ts.map +1 -0
- package/dist/utils/temp-cleanup.js +95 -0
- package/dist/utils/temp-cleanup.js.map +1 -0
- package/dist/utils/terminal-output.d.ts +34 -0
- package/dist/utils/terminal-output.d.ts.map +1 -0
- package/dist/utils/terminal-output.js +40 -0
- package/dist/utils/terminal-output.js.map +1 -0
- package/dist/utils/token-counter.d.ts +224 -0
- package/dist/utils/token-counter.d.ts.map +1 -0
- package/dist/utils/token-counter.js +332 -0
- package/dist/utils/token-counter.js.map +1 -0
- package/dist/utils/tool-mapper.d.ts +70 -0
- package/dist/utils/tool-mapper.d.ts.map +1 -0
- package/dist/utils/tool-mapper.js +234 -0
- package/dist/utils/tool-mapper.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,795 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ACP Agent - Core implementation of the Agent Client Protocol.
|
|
3
|
+
*
|
|
4
|
+
* Implements the ACP protocol methods including session management,
|
|
5
|
+
* prompt handling, and model/mode switching.
|
|
6
|
+
*/
|
|
7
|
+
import { logger } from '../utils/logger.js';
|
|
8
|
+
import { getACPSessionManager } from './session-manager.js';
|
|
9
|
+
import { createACPToolBridge } from './tool-bridge.js';
|
|
10
|
+
import { createACPEventAdapter } from './event-adapter.js';
|
|
11
|
+
import { runSDKQuery } from '../services/sdk-runner.js';
|
|
12
|
+
import { getConfigManager } from '../services/config-manager.js';
|
|
13
|
+
import { getCredentialStore } from '../services/credential-store.js';
|
|
14
|
+
import { getCompassAuthService } from '../services/compass-auth-service.js';
|
|
15
|
+
import { getAvailableModels } from '../constants/models.js';
|
|
16
|
+
import { getModeConfig, getAvailableModes } from './modes.js';
|
|
17
|
+
const log = logger.child('ACPAgent');
|
|
18
|
+
/**
|
|
19
|
+
* Protocol version supported by this implementation.
|
|
20
|
+
*/
|
|
21
|
+
const PROTOCOL_VERSION = 1;
|
|
22
|
+
/**
|
|
23
|
+
* Agent information.
|
|
24
|
+
*/
|
|
25
|
+
const AGENT_INFO = {
|
|
26
|
+
name: 'kore-cli',
|
|
27
|
+
version: '1.0.0',
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Build terminal auth args based on how the process was invoked.
|
|
31
|
+
*
|
|
32
|
+
* When JetBrains triggers terminal auth it runs: `<command> <auth-args>`
|
|
33
|
+
* where `command` comes from acp.json. If command is `npx`, we need the
|
|
34
|
+
* package specifier before "setup" so that `npx @compass-ai/nova@x.y.z setup`
|
|
35
|
+
* is executed instead of the broken `npx setup`.
|
|
36
|
+
*/
|
|
37
|
+
function buildTerminalAuthArgs() {
|
|
38
|
+
// npm sets npm_command=exec when running via npx
|
|
39
|
+
if (process.env.npm_command === 'exec') {
|
|
40
|
+
const pkg = process.env.npm_package_name ?? '@compass-ai/nova';
|
|
41
|
+
const ver = process.env.npm_package_version;
|
|
42
|
+
const specifier = ver ? `${pkg}@${ver}` : pkg;
|
|
43
|
+
return [specifier, 'setup'];
|
|
44
|
+
}
|
|
45
|
+
return ['setup'];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Default terminal auth method advertised to ACP clients.
|
|
49
|
+
* JetBrains renders a native "Nova Setup" button from this.
|
|
50
|
+
*
|
|
51
|
+
* - `type: "terminal"` → JetBrains spawns the agent binary with `args` in a terminal
|
|
52
|
+
* - `args` are built dynamically to handle both direct invocation and npx
|
|
53
|
+
* - Returned both in `initialize` response and in `session/new` error.data
|
|
54
|
+
*/
|
|
55
|
+
const TERMINAL_AUTH_METHOD = {
|
|
56
|
+
id: 'kore-terminal-auth',
|
|
57
|
+
type: 'terminal',
|
|
58
|
+
name: 'Nova Setup',
|
|
59
|
+
description: 'Complete interactive setup in the terminal to configure API keys',
|
|
60
|
+
args: buildTerminalAuthArgs(),
|
|
61
|
+
env: {},
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Classifies an error message into a machine-readable error code and optional metadata.
|
|
65
|
+
* Used to send structured ACP error session updates instead of plain text.
|
|
66
|
+
*/
|
|
67
|
+
function classifyError(error) {
|
|
68
|
+
// Token limit errors (aggregate or per-model)
|
|
69
|
+
const tokenLimitMatch = error.match(/(?:Aggregate t|T)oken limit exceeded.*?Used ([\d\s\u00a0,]+)\s*\/\s*([\d\s\u00a0,]+)/i);
|
|
70
|
+
if (tokenLimitMatch) {
|
|
71
|
+
const used = parseInt(tokenLimitMatch[1].replace(/[\s\u00a0,]/g, ''), 10);
|
|
72
|
+
const limit = parseInt(tokenLimitMatch[2].replace(/[\s\u00a0,]/g, ''), 10);
|
|
73
|
+
return {
|
|
74
|
+
errorCode: 'TOKEN_LIMIT_EXCEEDED',
|
|
75
|
+
metadata: { used, limit, windowHours: 6 },
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
// Model disabled / unavailable
|
|
79
|
+
if (error.includes('not available') || error.includes('not enabled') || error.includes('disabled')) {
|
|
80
|
+
return { errorCode: 'MODEL_UNAVAILABLE' };
|
|
81
|
+
}
|
|
82
|
+
// Auth errors
|
|
83
|
+
if (error.includes('Authentication') || error.includes('API key') || error.includes('unauthorized')) {
|
|
84
|
+
return { errorCode: 'AUTH_ERROR' };
|
|
85
|
+
}
|
|
86
|
+
return { errorCode: 'INTERNAL_ERROR' };
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* ACP Agent class.
|
|
90
|
+
* Implements the Agent Client Protocol for integration with ACP clients.
|
|
91
|
+
*/
|
|
92
|
+
export class ACPAgent {
|
|
93
|
+
/** ACP connection */
|
|
94
|
+
connection = null;
|
|
95
|
+
/** Configuration */
|
|
96
|
+
config;
|
|
97
|
+
/** Session manager */
|
|
98
|
+
sessionManager;
|
|
99
|
+
/** Tool bridges per session */
|
|
100
|
+
toolBridges = new Map();
|
|
101
|
+
/** Event adapters per session */
|
|
102
|
+
eventAdapters = new Map();
|
|
103
|
+
/** Abort controllers per session */
|
|
104
|
+
abortControllers = new Map();
|
|
105
|
+
/** Whether the client has successfully authenticated */
|
|
106
|
+
authenticated = false;
|
|
107
|
+
/**
|
|
108
|
+
* Checks credentials and throws an ACP auth error if none are configured.
|
|
109
|
+
*
|
|
110
|
+
* IMPORTANT (JetBrains ACP integration):
|
|
111
|
+
* - This MUST gate `session/new` (not just `prompt`). JetBrains only renders
|
|
112
|
+
* the "Nova Setup" button when session creation fails with an auth error
|
|
113
|
+
* containing `data.authMethods`. It does NOT check prompt-level errors.
|
|
114
|
+
* - The `authMethods` array must be placed inside `error.data` (JSON-RPC 2.0
|
|
115
|
+
* compliant), not as a top-level sibling of `code`/`message`.
|
|
116
|
+
* - The auth method `type` must be `"terminal"` for JetBrains to show the
|
|
117
|
+
* native terminal setup button.
|
|
118
|
+
*/
|
|
119
|
+
async ensureAuthenticated() {
|
|
120
|
+
if (this.authenticated)
|
|
121
|
+
return;
|
|
122
|
+
const credentialStore = await getCredentialStore();
|
|
123
|
+
if (await credentialStore.hasApiKey()) {
|
|
124
|
+
this.authenticated = true;
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
log.warn('Request rejected: no credentials configured');
|
|
128
|
+
const error = new Error('Click Nova Setup to configure your API keys');
|
|
129
|
+
error.code = -32000;
|
|
130
|
+
error.authMethods = [TERMINAL_AUTH_METHOD];
|
|
131
|
+
throw error;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Creates a new ACPAgent instance.
|
|
135
|
+
*
|
|
136
|
+
* @param config - Agent configuration
|
|
137
|
+
* @param sessionManager - Optional custom session manager
|
|
138
|
+
*/
|
|
139
|
+
constructor(config, sessionManager) {
|
|
140
|
+
this.config = config;
|
|
141
|
+
this.sessionManager = sessionManager ?? getACPSessionManager();
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Sets the ACP connection.
|
|
145
|
+
*
|
|
146
|
+
* @param connection - ACP connection
|
|
147
|
+
*/
|
|
148
|
+
setConnection(connection) {
|
|
149
|
+
this.connection = connection;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Handles the initialize request.
|
|
153
|
+
*
|
|
154
|
+
* @param params - Initialize request parameters
|
|
155
|
+
* @returns Initialize response
|
|
156
|
+
*/
|
|
157
|
+
async initialize(params) {
|
|
158
|
+
log.info('Initialize', {
|
|
159
|
+
protocolVersion: params.protocolVersion,
|
|
160
|
+
clientAuthTerminal: params.clientCapabilities?.auth?.terminal,
|
|
161
|
+
});
|
|
162
|
+
// Check if user has valid credentials
|
|
163
|
+
const credentialStore = await getCredentialStore();
|
|
164
|
+
const hasCredentials = await credentialStore.hasApiKey();
|
|
165
|
+
// Advertise auth methods when credentials are missing or explicitly required.
|
|
166
|
+
// Note: JetBrains renders the setup button from initialize authMethods but does
|
|
167
|
+
// NOT declare auth.terminal in clientCapabilities, so we advertise unconditionally.
|
|
168
|
+
const requireAuth = process.env.ACP_REQUIRE_AUTH === 'true';
|
|
169
|
+
const shouldAdvertiseAuth = requireAuth || !hasCredentials;
|
|
170
|
+
const authMethods = [];
|
|
171
|
+
if (shouldAdvertiseAuth) {
|
|
172
|
+
authMethods.push(TERMINAL_AUTH_METHOD);
|
|
173
|
+
}
|
|
174
|
+
return {
|
|
175
|
+
protocolVersion: PROTOCOL_VERSION,
|
|
176
|
+
agentCapabilities: {
|
|
177
|
+
loadSession: true,
|
|
178
|
+
mcpCapabilities: {
|
|
179
|
+
http: true,
|
|
180
|
+
sse: true,
|
|
181
|
+
},
|
|
182
|
+
promptCapabilities: {
|
|
183
|
+
embeddedContext: true,
|
|
184
|
+
image: true,
|
|
185
|
+
},
|
|
186
|
+
sessionCapabilities: {
|
|
187
|
+
fork: {},
|
|
188
|
+
list: {},
|
|
189
|
+
resume: {},
|
|
190
|
+
},
|
|
191
|
+
},
|
|
192
|
+
authMethods,
|
|
193
|
+
agentInfo: AGENT_INFO,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Handles authentication request.
|
|
198
|
+
* Currently stubbed for MVP.
|
|
199
|
+
*
|
|
200
|
+
* @param params - Authentication request
|
|
201
|
+
* @returns Authentication response
|
|
202
|
+
*/
|
|
203
|
+
async authenticate(params) {
|
|
204
|
+
log.info('Authenticate request', { methodId: params.methodId });
|
|
205
|
+
// Check if user has valid credentials in the credential store
|
|
206
|
+
const credentialStore = await getCredentialStore();
|
|
207
|
+
const hasCredentials = await credentialStore.hasApiKey();
|
|
208
|
+
// Development mode bypass (for testing without auth)
|
|
209
|
+
if (process.env.ACP_REQUIRE_AUTH !== 'true' && hasCredentials) {
|
|
210
|
+
// Validate Compass API key to populate plan status, plan type, and super-user flag.
|
|
211
|
+
// Without this, CompassAuthService defaults to 'no_subscription' and enforces
|
|
212
|
+
// the 150k token limit even for Enterprise subscribers.
|
|
213
|
+
try {
|
|
214
|
+
const compassKey = await credentialStore.getCompassApiKey();
|
|
215
|
+
if (compassKey) {
|
|
216
|
+
const compassAuth = getCompassAuthService();
|
|
217
|
+
await compassAuth.validateApiKey(compassKey);
|
|
218
|
+
log.info('Compass API key validated', {
|
|
219
|
+
planStatus: compassAuth.getPlanStatus(),
|
|
220
|
+
planType: compassAuth.getPlanType(),
|
|
221
|
+
superUser: compassAuth.isSuperUser(),
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
catch (compassError) {
|
|
226
|
+
log.warn('Failed to validate Compass API key, continuing with default limits', compassError);
|
|
227
|
+
// Non-fatal — proceed with no_subscription limits
|
|
228
|
+
}
|
|
229
|
+
log.info('Authentication successful (credentials found)');
|
|
230
|
+
this.authenticated = true;
|
|
231
|
+
return {
|
|
232
|
+
success: true,
|
|
233
|
+
message: 'Authentication successful',
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
// If no credentials and auth is required, return AUTH_REQUIRED with terminal config
|
|
237
|
+
if (!hasCredentials) {
|
|
238
|
+
log.info('No credentials found, returning AUTH_REQUIRED');
|
|
239
|
+
return {
|
|
240
|
+
success: false,
|
|
241
|
+
error: 'Authentication required. Please run setup to configure API keys.',
|
|
242
|
+
errorCode: 'AUTH_REQUIRED',
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
// If API key provided in request, validate it
|
|
246
|
+
const apiKey = params.credentials?.apiKey;
|
|
247
|
+
if (apiKey) {
|
|
248
|
+
// Store the provided API key
|
|
249
|
+
const isValidFormat = credentialStore.validateApiKeyFormat(apiKey);
|
|
250
|
+
if (!isValidFormat) {
|
|
251
|
+
return {
|
|
252
|
+
success: false,
|
|
253
|
+
error: 'Invalid API key format',
|
|
254
|
+
errorCode: 'INVALID_CREDENTIALS',
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
// Store the key for future use
|
|
258
|
+
await credentialStore.setApiKey(apiKey);
|
|
259
|
+
log.info('API key stored successfully');
|
|
260
|
+
this.authenticated = true;
|
|
261
|
+
return {
|
|
262
|
+
success: true,
|
|
263
|
+
message: 'Authentication successful - API key stored',
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
// Credentials exist in store
|
|
267
|
+
this.authenticated = true;
|
|
268
|
+
return {
|
|
269
|
+
success: true,
|
|
270
|
+
message: 'Authentication successful',
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Creates a new session.
|
|
275
|
+
*
|
|
276
|
+
* @param params - New session request
|
|
277
|
+
* @returns New session response
|
|
278
|
+
*/
|
|
279
|
+
async newSession(params) {
|
|
280
|
+
const { cwd, mcpServers } = params;
|
|
281
|
+
log.info('Creating new session', { cwd, mcpServers: mcpServers.length });
|
|
282
|
+
// Gate session creation on credentials — see ensureAuthenticated() for why
|
|
283
|
+
// this must happen here and not just in prompt()
|
|
284
|
+
await this.ensureAuthenticated();
|
|
285
|
+
// Create session
|
|
286
|
+
const session = await this.sessionManager.create(cwd, this.config.defaultModel, mcpServers);
|
|
287
|
+
// Initialize tool bridge and event adapter for this session
|
|
288
|
+
this.initializeSessionComponents(session);
|
|
289
|
+
// Load session capabilities
|
|
290
|
+
const capabilities = await this.loadSessionCapabilities(session);
|
|
291
|
+
return {
|
|
292
|
+
sessionId: session.id,
|
|
293
|
+
models: capabilities.models,
|
|
294
|
+
modes: capabilities.modes,
|
|
295
|
+
_meta: {},
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Loads an existing session.
|
|
300
|
+
*
|
|
301
|
+
* @param params - Load session request
|
|
302
|
+
* @returns Session response with models and modes
|
|
303
|
+
*/
|
|
304
|
+
async loadSession(params) {
|
|
305
|
+
const { sessionId, cwd, mcpServers } = params;
|
|
306
|
+
log.info('Loading session', { sessionId, cwd, mcpServers: mcpServers.length });
|
|
307
|
+
// Gate session loading on credentials (consistent with newSession)
|
|
308
|
+
// Enabling this code breaks JetBrains session loading flow because JetBrains does not check prompt-level errors.
|
|
309
|
+
//await this.ensureAuthenticated();
|
|
310
|
+
// Load session
|
|
311
|
+
const session = await this.sessionManager.load(sessionId, cwd, mcpServers, this.config.defaultModel);
|
|
312
|
+
// Initialize components
|
|
313
|
+
this.initializeSessionComponents(session);
|
|
314
|
+
// Load capabilities
|
|
315
|
+
const capabilities = await this.loadSessionCapabilities(session);
|
|
316
|
+
// Replay session history AFTER returning the response to avoid deadlock:
|
|
317
|
+
// replaySessionHistory awaits writes to stdout, but the client may not read
|
|
318
|
+
// those notifications until it receives the loadSession response. If stdout
|
|
319
|
+
// buffers fill up, both sides block forever.
|
|
320
|
+
if (session.conversationHistory && session.conversationHistory.length > 0) {
|
|
321
|
+
const sessionCopy = session;
|
|
322
|
+
setImmediate(() => {
|
|
323
|
+
this.replaySessionHistory(sessionCopy).catch((err) => {
|
|
324
|
+
log.error('Failed to replay session history', { error: err });
|
|
325
|
+
});
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
return {
|
|
329
|
+
sessionId: session.id,
|
|
330
|
+
models: capabilities.models,
|
|
331
|
+
modes: capabilities.modes,
|
|
332
|
+
_meta: {},
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Lists available sessions.
|
|
337
|
+
*
|
|
338
|
+
* @param params - List sessions request
|
|
339
|
+
* @returns List of sessions
|
|
340
|
+
*/
|
|
341
|
+
async listSessions(params) {
|
|
342
|
+
const sessions = await this.sessionManager.list(params.cwd);
|
|
343
|
+
const limit = 100;
|
|
344
|
+
// Parse cursor for pagination
|
|
345
|
+
let startIndex = 0;
|
|
346
|
+
if (params.cursor) {
|
|
347
|
+
startIndex = parseInt(params.cursor, 10) || 0;
|
|
348
|
+
}
|
|
349
|
+
const page = sessions.slice(startIndex, startIndex + limit);
|
|
350
|
+
const entries = page.map(session => ({
|
|
351
|
+
sessionId: session.id,
|
|
352
|
+
cwd: session.workingDir,
|
|
353
|
+
title: `Session ${session.id.substring(0, 8)}`,
|
|
354
|
+
updatedAt: session.lastActivity.toISOString(),
|
|
355
|
+
}));
|
|
356
|
+
const response = {
|
|
357
|
+
sessions: entries,
|
|
358
|
+
};
|
|
359
|
+
if (startIndex + limit < sessions.length) {
|
|
360
|
+
response.nextCursor = String(startIndex + limit);
|
|
361
|
+
}
|
|
362
|
+
return response;
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Forks an existing session.
|
|
366
|
+
*
|
|
367
|
+
* @param params - Fork session request
|
|
368
|
+
* @returns Forked session response
|
|
369
|
+
*/
|
|
370
|
+
async forkSession(params) {
|
|
371
|
+
const { sessionId, cwd, mcpServers = [] } = params;
|
|
372
|
+
log.info('Forking session', { sessionId, cwd });
|
|
373
|
+
// Fork session
|
|
374
|
+
const forked = await this.sessionManager.fork(sessionId, cwd, mcpServers);
|
|
375
|
+
// Initialize components
|
|
376
|
+
this.initializeSessionComponents(forked);
|
|
377
|
+
// Load capabilities
|
|
378
|
+
const capabilities = await this.loadSessionCapabilities(forked);
|
|
379
|
+
// Replay history after returning the response (same deadlock prevention as loadSession)
|
|
380
|
+
if (forked.conversationHistory && forked.conversationHistory.length > 0) {
|
|
381
|
+
const forkedCopy = forked;
|
|
382
|
+
setImmediate(() => {
|
|
383
|
+
this.replaySessionHistory(forkedCopy).catch((err) => {
|
|
384
|
+
log.error('Failed to replay forked session history', { error: err });
|
|
385
|
+
});
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
return {
|
|
389
|
+
sessionId: forked.id,
|
|
390
|
+
models: capabilities.models,
|
|
391
|
+
modes: capabilities.modes,
|
|
392
|
+
_meta: {},
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Resumes a session without replaying history.
|
|
397
|
+
*
|
|
398
|
+
* @param params - Resume session request
|
|
399
|
+
* @returns Session response
|
|
400
|
+
*/
|
|
401
|
+
async resumeSession(params) {
|
|
402
|
+
const { sessionId, cwd, mcpServers = [] } = params;
|
|
403
|
+
log.info('Resuming session', { sessionId, cwd });
|
|
404
|
+
// Load session without replay
|
|
405
|
+
const session = await this.sessionManager.load(sessionId, cwd, mcpServers, this.config.defaultModel);
|
|
406
|
+
// Initialize components
|
|
407
|
+
this.initializeSessionComponents(session);
|
|
408
|
+
// Load capabilities
|
|
409
|
+
const capabilities = await this.loadSessionCapabilities(session);
|
|
410
|
+
return {
|
|
411
|
+
sessionId: session.id,
|
|
412
|
+
models: capabilities.models,
|
|
413
|
+
modes: capabilities.modes,
|
|
414
|
+
_meta: {},
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Handles a prompt request.
|
|
419
|
+
* Uses the SDK runner to leverage existing CLI functionality including tools,
|
|
420
|
+
* system prompt, and agentic loop.
|
|
421
|
+
*
|
|
422
|
+
* @param params - Prompt request
|
|
423
|
+
* @returns Prompt response
|
|
424
|
+
*/
|
|
425
|
+
async prompt(params) {
|
|
426
|
+
const { sessionId, prompt } = params;
|
|
427
|
+
log.info('Processing prompt', { sessionId, parts: prompt.length });
|
|
428
|
+
const session = this.sessionManager.get(sessionId);
|
|
429
|
+
const eventAdapter = this.eventAdapters.get(sessionId);
|
|
430
|
+
// Check credentials before processing prompt
|
|
431
|
+
await this.ensureAuthenticated();
|
|
432
|
+
// Convert ACP prompt parts to text content
|
|
433
|
+
const textParts = [];
|
|
434
|
+
for (const part of prompt) {
|
|
435
|
+
switch (part.type) {
|
|
436
|
+
case 'text':
|
|
437
|
+
if (part.text) {
|
|
438
|
+
textParts.push(part.text);
|
|
439
|
+
}
|
|
440
|
+
break;
|
|
441
|
+
case 'image':
|
|
442
|
+
// Image parts require embedded data or a resolvable URI.
|
|
443
|
+
// When neither is present, surface a clear error instead of
|
|
444
|
+
// silently sending an empty query to the model.
|
|
445
|
+
if (part.data) {
|
|
446
|
+
textParts.push(`[Image: base64 data, mime=${part.mimeType ?? 'unknown'}]`);
|
|
447
|
+
}
|
|
448
|
+
else if (part.uri) {
|
|
449
|
+
textParts.push(`[Image: ${part.uri}]`);
|
|
450
|
+
}
|
|
451
|
+
break;
|
|
452
|
+
case 'resource_link':
|
|
453
|
+
if (part.uri) {
|
|
454
|
+
textParts.push(`[Resource: ${part.name ?? part.uri}]`);
|
|
455
|
+
}
|
|
456
|
+
break;
|
|
457
|
+
case 'resource':
|
|
458
|
+
if (part.resource?.text) {
|
|
459
|
+
textParts.push(part.resource.text);
|
|
460
|
+
}
|
|
461
|
+
else if (part.resource?.uri) {
|
|
462
|
+
textParts.push(`[Resource: ${part.resource.uri}]`);
|
|
463
|
+
}
|
|
464
|
+
break;
|
|
465
|
+
default:
|
|
466
|
+
log.warn('Unknown prompt part type, skipping', { type: part.type });
|
|
467
|
+
break;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
const textContent = textParts.join('\n').trim();
|
|
471
|
+
if (!textContent) {
|
|
472
|
+
log.warn('Prompt has no usable text content', { sessionId, parts: prompt.length });
|
|
473
|
+
throw new Error('Prompt is empty: no text content could be extracted from the provided parts');
|
|
474
|
+
}
|
|
475
|
+
// Check for slash command
|
|
476
|
+
if (textContent.startsWith('/')) {
|
|
477
|
+
const [cmdName, ...rest] = textContent.slice(1).split(/\s+/);
|
|
478
|
+
const cmdArgs = rest.join(' ').trim();
|
|
479
|
+
// Handle built-in commands
|
|
480
|
+
const handled = await this.handleSlashCommand(session, cmdName, cmdArgs);
|
|
481
|
+
if (handled) {
|
|
482
|
+
return {
|
|
483
|
+
stopReason: 'end_turn',
|
|
484
|
+
_meta: {},
|
|
485
|
+
};
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
// Create abort controller for this prompt
|
|
489
|
+
const abortController = new AbortController();
|
|
490
|
+
this.abortControllers.set(sessionId, abortController);
|
|
491
|
+
// Track stop reason - always 'end_turn' since tools are executed within the agentic loop
|
|
492
|
+
const stopReason = 'end_turn';
|
|
493
|
+
// Create SDK runner callbacks that bridge to ACP event adapter
|
|
494
|
+
const callbacks = {
|
|
495
|
+
onTextChunk: (chunk) => {
|
|
496
|
+
if (eventAdapter) {
|
|
497
|
+
eventAdapter.sendAgentMessageChunk(chunk).catch((err) => {
|
|
498
|
+
log.error('Error sending text chunk', { error: err });
|
|
499
|
+
});
|
|
500
|
+
}
|
|
501
|
+
},
|
|
502
|
+
onToolStart: (toolName, toolId, input) => {
|
|
503
|
+
// Note: Tool events are also captured by the event adapter's setupOutboundMappings
|
|
504
|
+
// via the kore event emitter, but we log here for debugging
|
|
505
|
+
log.debug('Tool started', { toolName, toolId, input });
|
|
506
|
+
},
|
|
507
|
+
onToolComplete: (toolName, toolId, _result, success, error) => {
|
|
508
|
+
// Note: Tool completion events are handled by the event adapter
|
|
509
|
+
log.debug('Tool completed', { toolName, toolId, success, error });
|
|
510
|
+
},
|
|
511
|
+
onStatusUpdate: (status) => {
|
|
512
|
+
log.debug('Status update', { status });
|
|
513
|
+
},
|
|
514
|
+
onComplete: (_response, _usage, _cost) => {
|
|
515
|
+
log.debug('SDK runner completed');
|
|
516
|
+
},
|
|
517
|
+
onError: (error) => {
|
|
518
|
+
log.error('SDK runner error', { error });
|
|
519
|
+
if (eventAdapter) {
|
|
520
|
+
const { errorCode, metadata } = classifyError(error);
|
|
521
|
+
eventAdapter.sendError(errorCode, error, metadata).catch((err) => {
|
|
522
|
+
log.error('Error sending error message', { error: err });
|
|
523
|
+
});
|
|
524
|
+
}
|
|
525
|
+
},
|
|
526
|
+
onIterationStart: (iteration, maxIterations) => {
|
|
527
|
+
log.debug('Iteration start', { iteration, maxIterations });
|
|
528
|
+
},
|
|
529
|
+
};
|
|
530
|
+
try {
|
|
531
|
+
// Get mode configuration for the session
|
|
532
|
+
const modeConfig = getModeConfig(session.modeId);
|
|
533
|
+
log.debug('Using mode config', { modeId: session.modeId, autoApprove: modeConfig.autoApprove, forcePlanMode: modeConfig.forcePlanMode });
|
|
534
|
+
// CLI --unleash flag takes priority; fall back to project config
|
|
535
|
+
const configManager = getConfigManager();
|
|
536
|
+
const unleash = this.config.unleash === true
|
|
537
|
+
|| configManager.getConfig().session.unleash === true;
|
|
538
|
+
if (unleash) {
|
|
539
|
+
log.info('Unleash mode enabled', { source: this.config.unleash ? 'cli-flag' : 'project-config' });
|
|
540
|
+
}
|
|
541
|
+
// Run the SDK query with existing CLI infrastructure
|
|
542
|
+
const result = await runSDKQuery({
|
|
543
|
+
query: textContent,
|
|
544
|
+
projectRoot: session.workingDir,
|
|
545
|
+
continueSession: true, // Continue from existing session for context
|
|
546
|
+
autoApprove: modeConfig.autoApprove, // Mode-specific approval setting
|
|
547
|
+
callbacks,
|
|
548
|
+
silent: true, // Use callbacks instead of stdout
|
|
549
|
+
systemPromptAddition: modeConfig.systemPromptAddition, // Mode-specific instructions
|
|
550
|
+
forcePlanMode: modeConfig.forcePlanMode, // Force plan mode if configured
|
|
551
|
+
model: session.model, // Propagate ACP session model to SDK runner
|
|
552
|
+
unguardedMode: unleash, // Explicit — no singleton mutation needed
|
|
553
|
+
});
|
|
554
|
+
if (!result.success) {
|
|
555
|
+
log.error('SDK query failed', { error: result.error });
|
|
556
|
+
if (eventAdapter && result.error) {
|
|
557
|
+
const { errorCode, metadata } = classifyError(result.error);
|
|
558
|
+
await eventAdapter.sendError(errorCode, result.error, metadata);
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
catch (error) {
|
|
563
|
+
if (error instanceof Error && error.name === 'AbortError') {
|
|
564
|
+
log.info('Prompt cancelled', { sessionId });
|
|
565
|
+
if (eventAdapter) {
|
|
566
|
+
await eventAdapter.sendAgentMessageChunk('\n\n[Cancelled]');
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
else {
|
|
570
|
+
log.error('Error running SDK query', { error });
|
|
571
|
+
if (eventAdapter) {
|
|
572
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
573
|
+
const { errorCode, metadata } = classifyError(errorMsg);
|
|
574
|
+
await eventAdapter.sendError(errorCode, errorMsg, metadata);
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
// Update session activity
|
|
579
|
+
this.sessionManager.touch(sessionId);
|
|
580
|
+
return {
|
|
581
|
+
stopReason,
|
|
582
|
+
_meta: {},
|
|
583
|
+
};
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* Sets the model for a session.
|
|
587
|
+
*
|
|
588
|
+
* @param params - Set model request
|
|
589
|
+
*/
|
|
590
|
+
async setSessionModel(params) {
|
|
591
|
+
const { sessionId, modelId } = params;
|
|
592
|
+
log.info('Setting session model', { sessionId, modelId });
|
|
593
|
+
// Parse model ID (format: providerId/modelId)
|
|
594
|
+
const [providerId, modelIdPart] = modelId.split('/');
|
|
595
|
+
this.sessionManager.setModel(sessionId, {
|
|
596
|
+
providerId: providerId || 'anthropic',
|
|
597
|
+
modelId: modelIdPart || modelId,
|
|
598
|
+
});
|
|
599
|
+
return { _meta: {} };
|
|
600
|
+
}
|
|
601
|
+
/**
|
|
602
|
+
* Sets the mode/agent for a session.
|
|
603
|
+
*
|
|
604
|
+
* @param params - Set mode request
|
|
605
|
+
*/
|
|
606
|
+
async setSessionMode(params) {
|
|
607
|
+
const { sessionId, modeId } = params;
|
|
608
|
+
log.info('Setting session mode', { sessionId, modeId });
|
|
609
|
+
this.sessionManager.setMode(sessionId, modeId);
|
|
610
|
+
return { _meta: {} };
|
|
611
|
+
}
|
|
612
|
+
/**
|
|
613
|
+
* Cancels an ongoing operation.
|
|
614
|
+
*
|
|
615
|
+
* @param params - Cancel notification
|
|
616
|
+
*/
|
|
617
|
+
async cancel(params) {
|
|
618
|
+
const { sessionId } = params;
|
|
619
|
+
log.info('Cancelling session operation', { sessionId });
|
|
620
|
+
const controller = this.abortControllers.get(sessionId);
|
|
621
|
+
if (controller) {
|
|
622
|
+
controller.abort();
|
|
623
|
+
this.abortControllers.delete(sessionId);
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
/**
|
|
627
|
+
* Gracefully shuts down the agent.
|
|
628
|
+
*/
|
|
629
|
+
async shutdown() {
|
|
630
|
+
log.info('Shutting down ACP agent');
|
|
631
|
+
// Abort all pending operations
|
|
632
|
+
for (const controller of this.abortControllers.values()) {
|
|
633
|
+
controller.abort();
|
|
634
|
+
}
|
|
635
|
+
this.abortControllers.clear();
|
|
636
|
+
// Dispose event adapters
|
|
637
|
+
for (const adapter of this.eventAdapters.values()) {
|
|
638
|
+
adapter.dispose();
|
|
639
|
+
}
|
|
640
|
+
this.eventAdapters.clear();
|
|
641
|
+
// Clear tool bridges
|
|
642
|
+
this.toolBridges.clear();
|
|
643
|
+
// Shutdown session manager
|
|
644
|
+
await this.sessionManager.shutdown();
|
|
645
|
+
log.info('ACP agent shutdown complete');
|
|
646
|
+
}
|
|
647
|
+
/**
|
|
648
|
+
* Initializes tool bridge and event adapter for a session.
|
|
649
|
+
*/
|
|
650
|
+
initializeSessionComponents(session) {
|
|
651
|
+
// Dispose previous event adapter to remove stale event listeners
|
|
652
|
+
const oldAdapter = this.eventAdapters.get(session.id);
|
|
653
|
+
if (oldAdapter) {
|
|
654
|
+
oldAdapter.dispose();
|
|
655
|
+
}
|
|
656
|
+
// Create tool bridge
|
|
657
|
+
const toolBridge = createACPToolBridge(session.workingDir);
|
|
658
|
+
this.toolBridges.set(session.id, toolBridge);
|
|
659
|
+
// Create event adapter
|
|
660
|
+
const eventAdapter = createACPEventAdapter();
|
|
661
|
+
if (this.connection) {
|
|
662
|
+
eventAdapter.initialize(this.connection, session.id, toolBridge);
|
|
663
|
+
}
|
|
664
|
+
this.eventAdapters.set(session.id, eventAdapter);
|
|
665
|
+
// Create abort controller
|
|
666
|
+
this.abortControllers.set(session.id, new AbortController());
|
|
667
|
+
}
|
|
668
|
+
/**
|
|
669
|
+
* Loads available models, modes, and commands for a session.
|
|
670
|
+
* Filters models to only include those from providers with configured API keys.
|
|
671
|
+
*/
|
|
672
|
+
async loadSessionCapabilities(session) {
|
|
673
|
+
// Get configured providers (those with API keys set)
|
|
674
|
+
const credentialStore = await getCredentialStore();
|
|
675
|
+
const configuredProviders = await credentialStore.getConfiguredProviders();
|
|
676
|
+
log.debug('Configured providers', { providers: configuredProviders });
|
|
677
|
+
// Get all models and filter by configured providers
|
|
678
|
+
const allModels = getAvailableModels();
|
|
679
|
+
const availableModels = allModels
|
|
680
|
+
.filter(model => {
|
|
681
|
+
const provider = (model.provider || 'anthropic');
|
|
682
|
+
return configuredProviders.includes(provider);
|
|
683
|
+
})
|
|
684
|
+
.map(model => ({
|
|
685
|
+
modelId: `${model.provider}/${model.id}`,
|
|
686
|
+
name: model.name,
|
|
687
|
+
}));
|
|
688
|
+
log.debug('Available models for ACP', { count: availableModels.length, models: availableModels });
|
|
689
|
+
// Get available modes from mode configurations
|
|
690
|
+
const availableModes = getAvailableModes();
|
|
691
|
+
// Available commands
|
|
692
|
+
const commands = [
|
|
693
|
+
{ name: 'compact', description: 'Compact the session history' },
|
|
694
|
+
{ name: 'clear', description: 'Clear the session' },
|
|
695
|
+
{ name: 'help', description: 'Show available commands' },
|
|
696
|
+
{ name: 'model', description: 'Switch model' },
|
|
697
|
+
{ name: 'exit', description: 'Exit the session' },
|
|
698
|
+
];
|
|
699
|
+
return {
|
|
700
|
+
models: {
|
|
701
|
+
currentModelId: `${session.model.providerId}/${session.model.modelId}`,
|
|
702
|
+
availableModels,
|
|
703
|
+
},
|
|
704
|
+
modes: {
|
|
705
|
+
currentModeId: session.modeId,
|
|
706
|
+
availableModes,
|
|
707
|
+
},
|
|
708
|
+
commands,
|
|
709
|
+
};
|
|
710
|
+
}
|
|
711
|
+
/**
|
|
712
|
+
* Replays session history to ACP client.
|
|
713
|
+
*/
|
|
714
|
+
async replaySessionHistory(session) {
|
|
715
|
+
if (!this.connection || !session.conversationHistory)
|
|
716
|
+
return;
|
|
717
|
+
const eventAdapter = this.eventAdapters.get(session.id);
|
|
718
|
+
if (!eventAdapter)
|
|
719
|
+
return;
|
|
720
|
+
log.debug('Replaying session history', {
|
|
721
|
+
sessionId: session.id,
|
|
722
|
+
messageCount: session.conversationHistory.length,
|
|
723
|
+
});
|
|
724
|
+
for (const message of session.conversationHistory) {
|
|
725
|
+
for (const part of message.parts) {
|
|
726
|
+
if (part.type === 'text' && part.text) {
|
|
727
|
+
if (message.role === 'user') {
|
|
728
|
+
await eventAdapter.sendUserMessageChunk(part.text);
|
|
729
|
+
}
|
|
730
|
+
else if (message.role === 'assistant') {
|
|
731
|
+
await eventAdapter.sendAgentMessageChunk(part.text);
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
else if (part.type === 'reasoning' && part.text) {
|
|
735
|
+
await eventAdapter.sendAgentThoughtChunk(part.text);
|
|
736
|
+
}
|
|
737
|
+
// Tool parts would need full tool state replay which is complex
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
/**
|
|
742
|
+
* Handles slash commands.
|
|
743
|
+
*/
|
|
744
|
+
async handleSlashCommand(session, command, args) {
|
|
745
|
+
const eventAdapter = this.eventAdapters.get(session.id);
|
|
746
|
+
switch (command.toLowerCase()) {
|
|
747
|
+
case 'compact':
|
|
748
|
+
if (eventAdapter) {
|
|
749
|
+
await eventAdapter.sendAgentMessageChunk('[ACP] Session compaction requested');
|
|
750
|
+
}
|
|
751
|
+
// TODO: Implement actual compaction
|
|
752
|
+
return true;
|
|
753
|
+
case 'clear':
|
|
754
|
+
session.conversationHistory = [];
|
|
755
|
+
if (eventAdapter) {
|
|
756
|
+
await eventAdapter.sendAgentMessageChunk('[ACP] Session cleared');
|
|
757
|
+
}
|
|
758
|
+
return true;
|
|
759
|
+
case 'help':
|
|
760
|
+
if (eventAdapter) {
|
|
761
|
+
await eventAdapter.sendAgentMessageChunk('Available commands:\n' +
|
|
762
|
+
'- /compact - Compact session history\n' +
|
|
763
|
+
'- /clear - Clear session\n' +
|
|
764
|
+
'- /model <id> - Switch model\n' +
|
|
765
|
+
'- /help - Show this help');
|
|
766
|
+
}
|
|
767
|
+
return true;
|
|
768
|
+
case 'model':
|
|
769
|
+
if (args) {
|
|
770
|
+
const [providerId, modelId] = args.split('/');
|
|
771
|
+
session.model = {
|
|
772
|
+
providerId: providerId || 'anthropic',
|
|
773
|
+
modelId: modelId || args,
|
|
774
|
+
};
|
|
775
|
+
if (eventAdapter) {
|
|
776
|
+
await eventAdapter.sendAgentMessageChunk(`[ACP] Model switched to ${args}`);
|
|
777
|
+
}
|
|
778
|
+
}
|
|
779
|
+
return true;
|
|
780
|
+
default:
|
|
781
|
+
return false;
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
/**
|
|
786
|
+
* Creates a new ACPAgent instance.
|
|
787
|
+
*
|
|
788
|
+
* @param config - Agent configuration
|
|
789
|
+
* @param sessionManager - Optional custom session manager
|
|
790
|
+
* @returns A new ACPAgent instance
|
|
791
|
+
*/
|
|
792
|
+
export function createACPAgent(config, sessionManager) {
|
|
793
|
+
return new ACPAgent(config, sessionManager);
|
|
794
|
+
}
|
|
795
|
+
//# sourceMappingURL=agent.js.map
|