@compass-ai/nova 1.0.74 → 1.0.76
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/cli.js +557 -555
- package/dist/index.js +10 -8
- package/package.json +1 -1
- package/dist/acp/agent.d.ts +0 -318
- package/dist/acp/agent.d.ts.map +0 -1
- package/dist/acp/agent.js +0 -795
- package/dist/acp/agent.js.map +0 -1
- package/dist/acp/backpressure-writer.d.ts +0 -49
- package/dist/acp/backpressure-writer.d.ts.map +0 -1
- package/dist/acp/backpressure-writer.js +0 -153
- package/dist/acp/backpressure-writer.js.map +0 -1
- package/dist/acp/event-adapter.d.ts +0 -242
- package/dist/acp/event-adapter.d.ts.map +0 -1
- package/dist/acp/event-adapter.js +0 -456
- package/dist/acp/event-adapter.js.map +0 -1
- package/dist/acp/index.d.ts +0 -30
- package/dist/acp/index.d.ts.map +0 -1
- package/dist/acp/index.js +0 -36
- package/dist/acp/index.js.map +0 -1
- package/dist/acp/modes.d.ts +0 -56
- package/dist/acp/modes.d.ts.map +0 -1
- package/dist/acp/modes.js +0 -135
- package/dist/acp/modes.js.map +0 -1
- package/dist/acp/session-manager.d.ts +0 -170
- package/dist/acp/session-manager.d.ts.map +0 -1
- package/dist/acp/session-manager.js +0 -381
- package/dist/acp/session-manager.js.map +0 -1
- package/dist/acp/text-coalescer.d.ts +0 -45
- package/dist/acp/text-coalescer.d.ts.map +0 -1
- package/dist/acp/text-coalescer.js +0 -110
- package/dist/acp/text-coalescer.js.map +0 -1
- package/dist/acp/tool-bridge.d.ts +0 -156
- package/dist/acp/tool-bridge.d.ts.map +0 -1
- package/dist/acp/tool-bridge.js +0 -381
- package/dist/acp/tool-bridge.js.map +0 -1
- package/dist/acp/types.d.ts +0 -314
- package/dist/acp/types.d.ts.map +0 -1
- package/dist/acp/types.js +0 -8
- package/dist/acp/types.js.map +0 -1
- package/dist/cli.d.ts +0 -9
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/acp.d.ts +0 -26
- package/dist/commands/acp.d.ts.map +0 -1
- package/dist/commands/acp.js +0 -492
- package/dist/commands/acp.js.map +0 -1
- package/dist/commands/cache.d.ts +0 -33
- package/dist/commands/cache.d.ts.map +0 -1
- package/dist/commands/cache.js +0 -537
- package/dist/commands/cache.js.map +0 -1
- package/dist/commands/config.d.ts +0 -10
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -367
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/consent.d.ts +0 -21
- package/dist/commands/consent.d.ts.map +0 -1
- package/dist/commands/consent.js +0 -334
- package/dist/commands/consent.js.map +0 -1
- package/dist/commands/data.d.ts +0 -24
- package/dist/commands/data.d.ts.map +0 -1
- package/dist/commands/data.js +0 -586
- package/dist/commands/data.js.map +0 -1
- package/dist/commands/index.d.ts +0 -145
- package/dist/commands/index.d.ts.map +0 -1
- package/dist/commands/index.js +0 -210
- package/dist/commands/index.js.map +0 -1
- package/dist/commands/init.d.ts +0 -106
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -349
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/logs.d.ts +0 -13
- package/dist/commands/logs.d.ts.map +0 -1
- package/dist/commands/logs.js +0 -359
- package/dist/commands/logs.js.map +0 -1
- package/dist/commands/mcp.d.ts +0 -20
- package/dist/commands/mcp.d.ts.map +0 -1
- package/dist/commands/mcp.js +0 -687
- package/dist/commands/mcp.js.map +0 -1
- package/dist/commands/reset.d.ts +0 -20
- package/dist/commands/reset.d.ts.map +0 -1
- package/dist/commands/reset.js +0 -372
- package/dist/commands/reset.js.map +0 -1
- package/dist/commands/setup.d.ts +0 -74
- package/dist/commands/setup.d.ts.map +0 -1
- package/dist/commands/setup.js +0 -863
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/slash/agents.d.ts +0 -40
- package/dist/commands/slash/agents.d.ts.map +0 -1
- package/dist/commands/slash/agents.js +0 -519
- package/dist/commands/slash/agents.js.map +0 -1
- package/dist/commands/slash/approve.d.ts +0 -46
- package/dist/commands/slash/approve.d.ts.map +0 -1
- package/dist/commands/slash/approve.js +0 -239
- package/dist/commands/slash/approve.js.map +0 -1
- package/dist/commands/slash/attach.d.ts +0 -70
- package/dist/commands/slash/attach.d.ts.map +0 -1
- package/dist/commands/slash/attach.js +0 -333
- package/dist/commands/slash/attach.js.map +0 -1
- package/dist/commands/slash/clear.d.ts +0 -47
- package/dist/commands/slash/clear.d.ts.map +0 -1
- package/dist/commands/slash/clear.js +0 -261
- package/dist/commands/slash/clear.js.map +0 -1
- package/dist/commands/slash/commit.d.ts +0 -40
- package/dist/commands/slash/commit.d.ts.map +0 -1
- package/dist/commands/slash/commit.js +0 -337
- package/dist/commands/slash/commit.js.map +0 -1
- package/dist/commands/slash/compact.d.ts +0 -48
- package/dist/commands/slash/compact.d.ts.map +0 -1
- package/dist/commands/slash/compact.js +0 -288
- package/dist/commands/slash/compact.js.map +0 -1
- package/dist/commands/slash/config.d.ts +0 -20
- package/dist/commands/slash/config.d.ts.map +0 -1
- package/dist/commands/slash/config.js +0 -136
- package/dist/commands/slash/config.js.map +0 -1
- package/dist/commands/slash/context.d.ts +0 -49
- package/dist/commands/slash/context.d.ts.map +0 -1
- package/dist/commands/slash/context.js +0 -430
- package/dist/commands/slash/context.js.map +0 -1
- package/dist/commands/slash/cost.d.ts +0 -34
- package/dist/commands/slash/cost.d.ts.map +0 -1
- package/dist/commands/slash/cost.js +0 -312
- package/dist/commands/slash/cost.js.map +0 -1
- package/dist/commands/slash/custom.d.ts +0 -41
- package/dist/commands/slash/custom.d.ts.map +0 -1
- package/dist/commands/slash/custom.js +0 -126
- package/dist/commands/slash/custom.js.map +0 -1
- package/dist/commands/slash/exit.d.ts +0 -25
- package/dist/commands/slash/exit.d.ts.map +0 -1
- package/dist/commands/slash/exit.js +0 -186
- package/dist/commands/slash/exit.js.map +0 -1
- package/dist/commands/slash/export.d.ts +0 -27
- package/dist/commands/slash/export.d.ts.map +0 -1
- package/dist/commands/slash/export.js +0 -318
- package/dist/commands/slash/export.js.map +0 -1
- package/dist/commands/slash/files.d.ts +0 -47
- package/dist/commands/slash/files.d.ts.map +0 -1
- package/dist/commands/slash/files.js +0 -521
- package/dist/commands/slash/files.js.map +0 -1
- package/dist/commands/slash/help.d.ts +0 -50
- package/dist/commands/slash/help.d.ts.map +0 -1
- package/dist/commands/slash/help.js +0 -282
- package/dist/commands/slash/help.js.map +0 -1
- package/dist/commands/slash/index-cmd.d.ts +0 -41
- package/dist/commands/slash/index-cmd.d.ts.map +0 -1
- package/dist/commands/slash/index-cmd.js +0 -349
- package/dist/commands/slash/index-cmd.js.map +0 -1
- package/dist/commands/slash/index.d.ts +0 -97
- package/dist/commands/slash/index.d.ts.map +0 -1
- package/dist/commands/slash/index.js +0 -251
- package/dist/commands/slash/index.js.map +0 -1
- package/dist/commands/slash/login.d.ts +0 -23
- package/dist/commands/slash/login.d.ts.map +0 -1
- package/dist/commands/slash/login.js +0 -175
- package/dist/commands/slash/login.js.map +0 -1
- package/dist/commands/slash/logout.d.ts +0 -23
- package/dist/commands/slash/logout.d.ts.map +0 -1
- package/dist/commands/slash/logout.js +0 -153
- package/dist/commands/slash/logout.js.map +0 -1
- package/dist/commands/slash/logs.d.ts +0 -29
- package/dist/commands/slash/logs.d.ts.map +0 -1
- package/dist/commands/slash/logs.js +0 -423
- package/dist/commands/slash/logs.js.map +0 -1
- package/dist/commands/slash/mcp.d.ts +0 -29
- package/dist/commands/slash/mcp.d.ts.map +0 -1
- package/dist/commands/slash/mcp.js +0 -1026
- package/dist/commands/slash/mcp.js.map +0 -1
- package/dist/commands/slash/model.d.ts +0 -60
- package/dist/commands/slash/model.d.ts.map +0 -1
- package/dist/commands/slash/model.js +0 -466
- package/dist/commands/slash/model.js.map +0 -1
- package/dist/commands/slash/personality.d.ts +0 -40
- package/dist/commands/slash/personality.d.ts.map +0 -1
- package/dist/commands/slash/personality.js +0 -272
- package/dist/commands/slash/personality.js.map +0 -1
- package/dist/commands/slash/purge.d.ts +0 -42
- package/dist/commands/slash/purge.d.ts.map +0 -1
- package/dist/commands/slash/purge.js +0 -233
- package/dist/commands/slash/purge.js.map +0 -1
- package/dist/commands/slash/reset.d.ts +0 -44
- package/dist/commands/slash/reset.d.ts.map +0 -1
- package/dist/commands/slash/reset.js +0 -326
- package/dist/commands/slash/reset.js.map +0 -1
- package/dist/commands/slash/skills.d.ts +0 -40
- package/dist/commands/slash/skills.d.ts.map +0 -1
- package/dist/commands/slash/skills.js +0 -207
- package/dist/commands/slash/skills.js.map +0 -1
- package/dist/commands/slash/tokens.d.ts +0 -34
- package/dist/commands/slash/tokens.d.ts.map +0 -1
- package/dist/commands/slash/tokens.js +0 -205
- package/dist/commands/slash/tokens.js.map +0 -1
- package/dist/commands/slash/unleash.d.ts +0 -50
- package/dist/commands/slash/unleash.d.ts.map +0 -1
- package/dist/commands/slash/unleash.js +0 -262
- package/dist/commands/slash/unleash.js.map +0 -1
- package/dist/commands/slash/update.d.ts +0 -34
- package/dist/commands/slash/update.d.ts.map +0 -1
- package/dist/commands/slash/update.js +0 -364
- package/dist/commands/slash/update.js.map +0 -1
- package/dist/commands/slash/wrap.d.ts +0 -18
- package/dist/commands/slash/wrap.d.ts.map +0 -1
- package/dist/commands/slash/wrap.js +0 -21
- package/dist/commands/slash/wrap.js.map +0 -1
- package/dist/commands/tokens.d.ts +0 -26
- package/dist/commands/tokens.d.ts.map +0 -1
- package/dist/commands/tokens.js +0 -245
- package/dist/commands/tokens.js.map +0 -1
- package/dist/constants/builtin-agents.d.ts +0 -27
- package/dist/constants/builtin-agents.d.ts.map +0 -1
- package/dist/constants/builtin-agents.js +0 -710
- package/dist/constants/builtin-agents.js.map +0 -1
- package/dist/constants/builtin-skills.d.ts +0 -32
- package/dist/constants/builtin-skills.d.ts.map +0 -1
- package/dist/constants/builtin-skills.js +0 -389
- package/dist/constants/builtin-skills.js.map +0 -1
- package/dist/constants/defaults.d.ts +0 -448
- package/dist/constants/defaults.d.ts.map +0 -1
- package/dist/constants/defaults.js +0 -829
- package/dist/constants/defaults.js.map +0 -1
- package/dist/constants/index.d.ts +0 -27
- package/dist/constants/index.d.ts.map +0 -1
- package/dist/constants/index.js +0 -85
- package/dist/constants/index.js.map +0 -1
- package/dist/constants/install-hints.d.ts +0 -7
- package/dist/constants/install-hints.d.ts.map +0 -1
- package/dist/constants/install-hints.js +0 -123
- package/dist/constants/install-hints.js.map +0 -1
- package/dist/constants/models.d.ts +0 -255
- package/dist/constants/models.d.ts.map +0 -1
- package/dist/constants/models.js +0 -596
- package/dist/constants/models.js.map +0 -1
- package/dist/constants/schedule.d.ts +0 -43
- package/dist/constants/schedule.d.ts.map +0 -1
- package/dist/constants/schedule.js +0 -110
- package/dist/constants/schedule.js.map +0 -1
- package/dist/constants/system-utilities.d.ts +0 -57
- package/dist/constants/system-utilities.d.ts.map +0 -1
- package/dist/constants/system-utilities.js +0 -421
- package/dist/constants/system-utilities.js.map +0 -1
- package/dist/constants/token-limits.d.ts +0 -102
- package/dist/constants/token-limits.d.ts.map +0 -1
- package/dist/constants/token-limits.js +0 -286
- package/dist/constants/token-limits.js.map +0 -1
- package/dist/core/autocomplete.d.ts +0 -132
- package/dist/core/autocomplete.d.ts.map +0 -1
- package/dist/core/autocomplete.js +0 -653
- package/dist/core/autocomplete.js.map +0 -1
- package/dist/core/command-parser.d.ts +0 -301
- package/dist/core/command-parser.d.ts.map +0 -1
- package/dist/core/command-parser.js +0 -526
- package/dist/core/command-parser.js.map +0 -1
- package/dist/core/context-builder.d.ts +0 -264
- package/dist/core/context-builder.d.ts.map +0 -1
- package/dist/core/context-builder.js +0 -1018
- package/dist/core/context-builder.js.map +0 -1
- package/dist/core/event-emitter.d.ts +0 -411
- package/dist/core/event-emitter.d.ts.map +0 -1
- package/dist/core/event-emitter.js +0 -138
- package/dist/core/event-emitter.js.map +0 -1
- package/dist/core/history-manager.d.ts +0 -62
- package/dist/core/history-manager.d.ts.map +0 -1
- package/dist/core/history-manager.js +0 -151
- package/dist/core/history-manager.js.map +0 -1
- package/dist/core/slash-command-handler.d.ts +0 -352
- package/dist/core/slash-command-handler.d.ts.map +0 -1
- package/dist/core/slash-command-handler.js +0 -563
- package/dist/core/slash-command-handler.js.map +0 -1
- package/dist/core/task-processor.d.ts +0 -179
- package/dist/core/task-processor.d.ts.map +0 -1
- package/dist/core/task-processor.js +0 -519
- package/dist/core/task-processor.js.map +0 -1
- package/dist/index.d.ts +0 -90
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/prompts/agent-prompt-generator.d.ts +0 -26
- package/dist/prompts/agent-prompt-generator.d.ts.map +0 -1
- package/dist/prompts/agent-prompt-generator.js +0 -244
- package/dist/prompts/agent-prompt-generator.js.map +0 -1
- package/dist/prompts/commit-message.d.ts +0 -35
- package/dist/prompts/commit-message.d.ts.map +0 -1
- package/dist/prompts/commit-message.js +0 -187
- package/dist/prompts/commit-message.js.map +0 -1
- package/dist/prompts/conversation.d.ts +0 -51
- package/dist/prompts/conversation.d.ts.map +0 -1
- package/dist/prompts/conversation.js +0 -115
- package/dist/prompts/conversation.js.map +0 -1
- package/dist/prompts/index.d.ts +0 -39
- package/dist/prompts/index.d.ts.map +0 -1
- package/dist/prompts/index.js +0 -74
- package/dist/prompts/index.js.map +0 -1
- package/dist/prompts/memory.d.ts +0 -6
- package/dist/prompts/memory.d.ts.map +0 -1
- package/dist/prompts/memory.js +0 -29
- package/dist/prompts/memory.js.map +0 -1
- package/dist/prompts/personality.d.ts +0 -77
- package/dist/prompts/personality.d.ts.map +0 -1
- package/dist/prompts/personality.js +0 -393
- package/dist/prompts/personality.js.map +0 -1
- package/dist/prompts/plan-generator.d.ts +0 -144
- package/dist/prompts/plan-generator.d.ts.map +0 -1
- package/dist/prompts/plan-generator.js +0 -553
- package/dist/prompts/plan-generator.js.map +0 -1
- package/dist/prompts/system.d.ts +0 -95
- package/dist/prompts/system.d.ts.map +0 -1
- package/dist/prompts/system.js +0 -461
- package/dist/prompts/system.js.map +0 -1
- package/dist/prompts/task-processor.d.ts +0 -94
- package/dist/prompts/task-processor.d.ts.map +0 -1
- package/dist/prompts/task-processor.js +0 -554
- package/dist/prompts/task-processor.js.map +0 -1
- package/dist/prompts/unguarded.d.ts +0 -78
- package/dist/prompts/unguarded.d.ts.map +0 -1
- package/dist/prompts/unguarded.js +0 -418
- package/dist/prompts/unguarded.js.map +0 -1
- package/dist/prompts/utils.d.ts +0 -73
- package/dist/prompts/utils.d.ts.map +0 -1
- package/dist/prompts/utils.js +0 -114
- package/dist/prompts/utils.js.map +0 -1
- package/dist/prompts/workflow.d.ts +0 -241
- package/dist/prompts/workflow.d.ts.map +0 -1
- package/dist/prompts/workflow.js +0 -608
- package/dist/prompts/workflow.js.map +0 -1
- package/dist/services/action-logger.d.ts +0 -383
- package/dist/services/action-logger.d.ts.map +0 -1
- package/dist/services/action-logger.js +0 -544
- package/dist/services/action-logger.js.map +0 -1
- package/dist/services/agent-budget-allocator.d.ts +0 -111
- package/dist/services/agent-budget-allocator.d.ts.map +0 -1
- package/dist/services/agent-budget-allocator.js +0 -278
- package/dist/services/agent-budget-allocator.js.map +0 -1
- package/dist/services/agent-manager.d.ts +0 -181
- package/dist/services/agent-manager.d.ts.map +0 -1
- package/dist/services/agent-manager.js +0 -749
- package/dist/services/agent-manager.js.map +0 -1
- package/dist/services/agent-spawner.d.ts +0 -138
- package/dist/services/agent-spawner.d.ts.map +0 -1
- package/dist/services/agent-spawner.js +0 -748
- package/dist/services/agent-spawner.js.map +0 -1
- package/dist/services/agent-state-service.d.ts +0 -145
- package/dist/services/agent-state-service.d.ts.map +0 -1
- package/dist/services/agent-state-service.js +0 -247
- package/dist/services/agent-state-service.js.map +0 -1
- package/dist/services/anthropic-client.d.ts +0 -357
- package/dist/services/anthropic-client.d.ts.map +0 -1
- package/dist/services/anthropic-client.js +0 -1451
- package/dist/services/anthropic-client.js.map +0 -1
- package/dist/services/approval-manager.d.ts +0 -385
- package/dist/services/approval-manager.d.ts.map +0 -1
- package/dist/services/approval-manager.js +0 -1044
- package/dist/services/approval-manager.js.map +0 -1
- package/dist/services/audit-logger.d.ts +0 -245
- package/dist/services/audit-logger.d.ts.map +0 -1
- package/dist/services/audit-logger.js +0 -324
- package/dist/services/audit-logger.js.map +0 -1
- package/dist/services/backup-manager.d.ts +0 -136
- package/dist/services/backup-manager.d.ts.map +0 -1
- package/dist/services/backup-manager.js +0 -260
- package/dist/services/backup-manager.js.map +0 -1
- package/dist/services/cache-service.d.ts +0 -247
- package/dist/services/cache-service.d.ts.map +0 -1
- package/dist/services/cache-service.js +0 -558
- package/dist/services/cache-service.js.map +0 -1
- package/dist/services/chat-archival-service.d.ts +0 -108
- package/dist/services/chat-archival-service.d.ts.map +0 -1
- package/dist/services/chat-archival-service.js +0 -465
- package/dist/services/chat-archival-service.js.map +0 -1
- package/dist/services/codebase-indexer.d.ts +0 -272
- package/dist/services/codebase-indexer.d.ts.map +0 -1
- package/dist/services/codebase-indexer.js +0 -863
- package/dist/services/codebase-indexer.js.map +0 -1
- package/dist/services/compass-auth-service.d.ts +0 -204
- package/dist/services/compass-auth-service.d.ts.map +0 -1
- package/dist/services/compass-auth-service.js +0 -391
- package/dist/services/compass-auth-service.js.map +0 -1
- package/dist/services/complexity-classifier.d.ts +0 -208
- package/dist/services/complexity-classifier.d.ts.map +0 -1
- package/dist/services/complexity-classifier.js +0 -1410
- package/dist/services/complexity-classifier.js.map +0 -1
- package/dist/services/config-manager.d.ts +0 -278
- package/dist/services/config-manager.d.ts.map +0 -1
- package/dist/services/config-manager.js +0 -651
- package/dist/services/config-manager.js.map +0 -1
- package/dist/services/consent-manager.d.ts +0 -239
- package/dist/services/consent-manager.d.ts.map +0 -1
- package/dist/services/consent-manager.js +0 -516
- package/dist/services/consent-manager.js.map +0 -1
- package/dist/services/conversation-compactor.d.ts +0 -223
- package/dist/services/conversation-compactor.d.ts.map +0 -1
- package/dist/services/conversation-compactor.js +0 -750
- package/dist/services/conversation-compactor.js.map +0 -1
- package/dist/services/cost-tracker.d.ts +0 -167
- package/dist/services/cost-tracker.d.ts.map +0 -1
- package/dist/services/cost-tracker.js +0 -199
- package/dist/services/cost-tracker.js.map +0 -1
- package/dist/services/credential-store.d.ts +0 -273
- package/dist/services/credential-store.d.ts.map +0 -1
- package/dist/services/credential-store.js +0 -877
- package/dist/services/credential-store.js.map +0 -1
- package/dist/services/custom-command-service.d.ts +0 -112
- package/dist/services/custom-command-service.d.ts.map +0 -1
- package/dist/services/custom-command-service.js +0 -464
- package/dist/services/custom-command-service.js.map +0 -1
- package/dist/services/default-statusline-renderer.d.ts +0 -60
- package/dist/services/default-statusline-renderer.d.ts.map +0 -1
- package/dist/services/default-statusline-renderer.js +0 -110
- package/dist/services/default-statusline-renderer.js.map +0 -1
- package/dist/services/enhanced-context-gatherer.d.ts +0 -116
- package/dist/services/enhanced-context-gatherer.d.ts.map +0 -1
- package/dist/services/enhanced-context-gatherer.js +0 -605
- package/dist/services/enhanced-context-gatherer.js.map +0 -1
- package/dist/services/file-hash-tracker.d.ts +0 -95
- package/dist/services/file-hash-tracker.d.ts.map +0 -1
- package/dist/services/file-hash-tracker.js +0 -199
- package/dist/services/file-hash-tracker.js.map +0 -1
- package/dist/services/file-service.d.ts +0 -274
- package/dist/services/file-service.d.ts.map +0 -1
- package/dist/services/file-service.js +0 -876
- package/dist/services/file-service.js.map +0 -1
- package/dist/services/git-service.d.ts +0 -536
- package/dist/services/git-service.d.ts.map +0 -1
- package/dist/services/git-service.js +0 -1215
- package/dist/services/git-service.js.map +0 -1
- package/dist/services/hook-service.d.ts +0 -148
- package/dist/services/hook-service.d.ts.map +0 -1
- package/dist/services/hook-service.js +0 -705
- package/dist/services/hook-service.js.map +0 -1
- package/dist/services/ide-state-service.d.ts +0 -114
- package/dist/services/ide-state-service.d.ts.map +0 -1
- package/dist/services/ide-state-service.js +0 -204
- package/dist/services/ide-state-service.js.map +0 -1
- package/dist/services/interactive-clarifier.d.ts +0 -90
- package/dist/services/interactive-clarifier.d.ts.map +0 -1
- package/dist/services/interactive-clarifier.js +0 -446
- package/dist/services/interactive-clarifier.js.map +0 -1
- package/dist/services/iteration-scoper.d.ts +0 -225
- package/dist/services/iteration-scoper.d.ts.map +0 -1
- package/dist/services/iteration-scoper.js +0 -387
- package/dist/services/iteration-scoper.js.map +0 -1
- package/dist/services/llm-plan-generator.d.ts +0 -44
- package/dist/services/llm-plan-generator.d.ts.map +0 -1
- package/dist/services/llm-plan-generator.js +0 -863
- package/dist/services/llm-plan-generator.js.map +0 -1
- package/dist/services/llm-system-prompt-generator.d.ts +0 -85
- package/dist/services/llm-system-prompt-generator.d.ts.map +0 -1
- package/dist/services/llm-system-prompt-generator.js +0 -257
- package/dist/services/llm-system-prompt-generator.js.map +0 -1
- package/dist/services/log-interpreter.d.ts +0 -190
- package/dist/services/log-interpreter.d.ts.map +0 -1
- package/dist/services/log-interpreter.js +0 -520
- package/dist/services/log-interpreter.js.map +0 -1
- package/dist/services/mcp-config-manager.d.ts +0 -141
- package/dist/services/mcp-config-manager.d.ts.map +0 -1
- package/dist/services/mcp-config-manager.js +0 -678
- package/dist/services/mcp-config-manager.js.map +0 -1
- package/dist/services/mcp-oauth-service.d.ts +0 -170
- package/dist/services/mcp-oauth-service.d.ts.map +0 -1
- package/dist/services/mcp-oauth-service.js +0 -892
- package/dist/services/mcp-oauth-service.js.map +0 -1
- package/dist/services/mcp-plugin-support.d.ts +0 -81
- package/dist/services/mcp-plugin-support.d.ts.map +0 -1
- package/dist/services/mcp-plugin-support.js +0 -305
- package/dist/services/mcp-plugin-support.js.map +0 -1
- package/dist/services/mcp-server-manager.d.ts +0 -134
- package/dist/services/mcp-server-manager.d.ts.map +0 -1
- package/dist/services/mcp-server-manager.js +0 -613
- package/dist/services/mcp-server-manager.js.map +0 -1
- package/dist/services/mcp-tool-integration.d.ts +0 -119
- package/dist/services/mcp-tool-integration.d.ts.map +0 -1
- package/dist/services/mcp-tool-integration.js +0 -381
- package/dist/services/mcp-tool-integration.js.map +0 -1
- package/dist/services/mcp-transport.d.ts +0 -105
- package/dist/services/mcp-transport.d.ts.map +0 -1
- package/dist/services/mcp-transport.js +0 -1316
- package/dist/services/mcp-transport.js.map +0 -1
- package/dist/services/memory-service.d.ts +0 -55
- package/dist/services/memory-service.d.ts.map +0 -1
- package/dist/services/memory-service.js +0 -251
- package/dist/services/memory-service.js.map +0 -1
- package/dist/services/model-availability.d.ts +0 -64
- package/dist/services/model-availability.d.ts.map +0 -1
- package/dist/services/model-availability.js +0 -114
- package/dist/services/model-availability.js.map +0 -1
- package/dist/services/plan-generator.d.ts +0 -98
- package/dist/services/plan-generator.d.ts.map +0 -1
- package/dist/services/plan-generator.js +0 -658
- package/dist/services/plan-generator.js.map +0 -1
- package/dist/services/plan-mode-fallback.d.ts +0 -80
- package/dist/services/plan-mode-fallback.d.ts.map +0 -1
- package/dist/services/plan-mode-fallback.js +0 -307
- package/dist/services/plan-mode-fallback.js.map +0 -1
- package/dist/services/plan-mode-handler.d.ts +0 -42
- package/dist/services/plan-mode-handler.d.ts.map +0 -1
- package/dist/services/plan-mode-handler.js +0 -388
- package/dist/services/plan-mode-handler.js.map +0 -1
- package/dist/services/plan-persistence.d.ts +0 -203
- package/dist/services/plan-persistence.d.ts.map +0 -1
- package/dist/services/plan-persistence.js +0 -538
- package/dist/services/plan-persistence.js.map +0 -1
- package/dist/services/prompt-preprocessor.d.ts +0 -73
- package/dist/services/prompt-preprocessor.d.ts.map +0 -1
- package/dist/services/prompt-preprocessor.js +0 -146
- package/dist/services/prompt-preprocessor.js.map +0 -1
- package/dist/services/rating-service.d.ts +0 -84
- package/dist/services/rating-service.d.ts.map +0 -1
- package/dist/services/rating-service.js +0 -171
- package/dist/services/rating-service.js.map +0 -1
- package/dist/services/rating-state-manager.d.ts +0 -131
- package/dist/services/rating-state-manager.d.ts.map +0 -1
- package/dist/services/rating-state-manager.js +0 -270
- package/dist/services/rating-state-manager.js.map +0 -1
- package/dist/services/sdk-runner.d.ts +0 -113
- package/dist/services/sdk-runner.d.ts.map +0 -1
- package/dist/services/sdk-runner.js +0 -1424
- package/dist/services/sdk-runner.js.map +0 -1
- package/dist/services/session-manager.d.ts +0 -528
- package/dist/services/session-manager.d.ts.map +0 -1
- package/dist/services/session-manager.js +0 -1184
- package/dist/services/session-manager.js.map +0 -1
- package/dist/services/shell-executor.d.ts +0 -337
- package/dist/services/shell-executor.d.ts.map +0 -1
- package/dist/services/shell-executor.js +0 -1201
- package/dist/services/shell-executor.js.map +0 -1
- package/dist/services/skill-service.d.ts +0 -149
- package/dist/services/skill-service.d.ts.map +0 -1
- package/dist/services/skill-service.js +0 -594
- package/dist/services/skill-service.js.map +0 -1
- package/dist/services/statusline-executor.d.ts +0 -102
- package/dist/services/statusline-executor.d.ts.map +0 -1
- package/dist/services/statusline-executor.js +0 -305
- package/dist/services/statusline-executor.js.map +0 -1
- package/dist/services/step-tracker.d.ts +0 -356
- package/dist/services/step-tracker.d.ts.map +0 -1
- package/dist/services/step-tracker.js +0 -634
- package/dist/services/step-tracker.js.map +0 -1
- package/dist/services/system-event-logger.d.ts +0 -473
- package/dist/services/system-event-logger.d.ts.map +0 -1
- package/dist/services/system-event-logger.js +0 -790
- package/dist/services/system-event-logger.js.map +0 -1
- package/dist/services/system-utility-detector.d.ts +0 -91
- package/dist/services/system-utility-detector.d.ts.map +0 -1
- package/dist/services/system-utility-detector.js +0 -238
- package/dist/services/system-utility-detector.js.map +0 -1
- package/dist/services/team-context-store.d.ts +0 -100
- package/dist/services/team-context-store.d.ts.map +0 -1
- package/dist/services/team-context-store.js +0 -513
- package/dist/services/team-context-store.js.map +0 -1
- package/dist/services/temp-file-service.d.ts +0 -164
- package/dist/services/temp-file-service.d.ts.map +0 -1
- package/dist/services/temp-file-service.js +0 -303
- package/dist/services/temp-file-service.js.map +0 -1
- package/dist/services/token-limit-enforcer.d.ts +0 -53
- package/dist/services/token-limit-enforcer.d.ts.map +0 -1
- package/dist/services/token-limit-enforcer.js +0 -90
- package/dist/services/token-limit-enforcer.js.map +0 -1
- package/dist/services/token-limit-store.d.ts +0 -105
- package/dist/services/token-limit-store.d.ts.map +0 -1
- package/dist/services/token-limit-store.js +0 -288
- package/dist/services/token-limit-store.js.map +0 -1
- package/dist/services/token-tracker.d.ts +0 -290
- package/dist/services/token-tracker.d.ts.map +0 -1
- package/dist/services/token-tracker.js +0 -751
- package/dist/services/token-tracker.js.map +0 -1
- package/dist/services/tool-registry.d.ts +0 -302
- package/dist/services/tool-registry.d.ts.map +0 -1
- package/dist/services/tool-registry.js +0 -606
- package/dist/services/tool-registry.js.map +0 -1
- package/dist/services/tools-logger.d.ts +0 -152
- package/dist/services/tools-logger.d.ts.map +0 -1
- package/dist/services/tools-logger.js +0 -222
- package/dist/services/tools-logger.js.map +0 -1
- package/dist/services/update-plan-handler.d.ts +0 -56
- package/dist/services/update-plan-handler.d.ts.map +0 -1
- package/dist/services/update-plan-handler.js +0 -372
- package/dist/services/update-plan-handler.js.map +0 -1
- package/dist/services/update-service.d.ts +0 -197
- package/dist/services/update-service.d.ts.map +0 -1
- package/dist/services/update-service.js +0 -749
- package/dist/services/update-service.js.map +0 -1
- package/dist/services/verifier.d.ts +0 -113
- package/dist/services/verifier.d.ts.map +0 -1
- package/dist/services/verifier.js +0 -541
- package/dist/services/verifier.js.map +0 -1
- package/dist/services/workflow-manager.d.ts +0 -277
- package/dist/services/workflow-manager.d.ts.map +0 -1
- package/dist/services/workflow-manager.js +0 -616
- package/dist/services/workflow-manager.js.map +0 -1
- package/dist/services/workflow-orchestrator.d.ts +0 -148
- package/dist/services/workflow-orchestrator.d.ts.map +0 -1
- package/dist/services/workflow-orchestrator.js +0 -617
- package/dist/services/workflow-orchestrator.js.map +0 -1
- package/dist/services/worktree-manager.d.ts +0 -36
- package/dist/services/worktree-manager.d.ts.map +0 -1
- package/dist/services/worktree-manager.js +0 -185
- package/dist/services/worktree-manager.js.map +0 -1
- package/dist/templates/ascii-art.d.ts +0 -136
- package/dist/templates/ascii-art.d.ts.map +0 -1
- package/dist/templates/ascii-art.js +0 -286
- package/dist/templates/ascii-art.js.map +0 -1
- package/dist/templates/help.d.ts +0 -186
- package/dist/templates/help.d.ts.map +0 -1
- package/dist/templates/help.js +0 -588
- package/dist/templates/help.js.map +0 -1
- package/dist/templates/prompts/workflow-prompts.d.ts +0 -9
- package/dist/templates/prompts/workflow-prompts.d.ts.map +0 -1
- package/dist/templates/prompts/workflow-prompts.js +0 -9
- package/dist/templates/prompts/workflow-prompts.js.map +0 -1
- package/dist/tools/agent-tools.d.ts +0 -9
- package/dist/tools/agent-tools.d.ts.map +0 -1
- package/dist/tools/agent-tools.js +0 -349
- package/dist/tools/agent-tools.js.map +0 -1
- package/dist/tools/edit-replacers.d.ts +0 -90
- package/dist/tools/edit-replacers.d.ts.map +0 -1
- package/dist/tools/edit-replacers.js +0 -553
- package/dist/tools/edit-replacers.js.map +0 -1
- package/dist/tools/file-tools.d.ts +0 -13
- package/dist/tools/file-tools.d.ts.map +0 -1
- package/dist/tools/file-tools.js +0 -954
- package/dist/tools/file-tools.js.map +0 -1
- package/dist/tools/git-tools.d.ts +0 -9
- package/dist/tools/git-tools.d.ts.map +0 -1
- package/dist/tools/git-tools.js +0 -261
- package/dist/tools/git-tools.js.map +0 -1
- package/dist/tools/index.d.ts +0 -13
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -70
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/network-tools.d.ts +0 -8
- package/dist/tools/network-tools.d.ts.map +0 -1
- package/dist/tools/network-tools.js +0 -261
- package/dist/tools/network-tools.js.map +0 -1
- package/dist/tools/openai-tools.d.ts +0 -16
- package/dist/tools/openai-tools.d.ts.map +0 -1
- package/dist/tools/openai-tools.js +0 -385
- package/dist/tools/openai-tools.js.map +0 -1
- package/dist/tools/plan-tools.d.ts +0 -9
- package/dist/tools/plan-tools.d.ts.map +0 -1
- package/dist/tools/plan-tools.js +0 -223
- package/dist/tools/plan-tools.js.map +0 -1
- package/dist/tools/schedule-tools.d.ts +0 -9
- package/dist/tools/schedule-tools.d.ts.map +0 -1
- package/dist/tools/schedule-tools.js +0 -405
- package/dist/tools/schedule-tools.js.map +0 -1
- package/dist/tools/search-tools.d.ts +0 -8
- package/dist/tools/search-tools.d.ts.map +0 -1
- package/dist/tools/search-tools.js +0 -357
- package/dist/tools/search-tools.js.map +0 -1
- package/dist/tools/shared-utils.d.ts +0 -91
- package/dist/tools/shared-utils.d.ts.map +0 -1
- package/dist/tools/shared-utils.js +0 -385
- package/dist/tools/shared-utils.js.map +0 -1
- package/dist/tools/shell-tools.d.ts +0 -9
- package/dist/tools/shell-tools.d.ts.map +0 -1
- package/dist/tools/shell-tools.js +0 -409
- package/dist/tools/shell-tools.js.map +0 -1
- package/dist/tools/skill-tools.d.ts +0 -13
- package/dist/tools/skill-tools.d.ts.map +0 -1
- package/dist/tools/skill-tools.js +0 -244
- package/dist/tools/skill-tools.js.map +0 -1
- package/dist/tools/swarm-tools.d.ts +0 -9
- package/dist/tools/swarm-tools.d.ts.map +0 -1
- package/dist/tools/swarm-tools.js +0 -422
- package/dist/tools/swarm-tools.js.map +0 -1
- package/dist/tools/user-tools.d.ts +0 -13
- package/dist/tools/user-tools.d.ts.map +0 -1
- package/dist/tools/user-tools.js +0 -232
- package/dist/tools/user-tools.js.map +0 -1
- package/dist/types/agent-process.d.ts +0 -244
- package/dist/types/agent-process.d.ts.map +0 -1
- package/dist/types/agent-process.js +0 -93
- package/dist/types/agent-process.js.map +0 -1
- package/dist/types/agent.d.ts +0 -358
- package/dist/types/agent.d.ts.map +0 -1
- package/dist/types/agent.js +0 -171
- package/dist/types/agent.js.map +0 -1
- package/dist/types/anthropic.d.ts +0 -438
- package/dist/types/anthropic.d.ts.map +0 -1
- package/dist/types/anthropic.js +0 -9
- package/dist/types/anthropic.js.map +0 -1
- package/dist/types/approval.d.ts +0 -332
- package/dist/types/approval.d.ts.map +0 -1
- package/dist/types/approval.js +0 -44
- package/dist/types/approval.js.map +0 -1
- package/dist/types/autocomplete.d.ts +0 -57
- package/dist/types/autocomplete.d.ts.map +0 -1
- package/dist/types/autocomplete.js +0 -7
- package/dist/types/autocomplete.js.map +0 -1
- package/dist/types/chat-archive.d.ts +0 -161
- package/dist/types/chat-archive.d.ts.map +0 -1
- package/dist/types/chat-archive.js +0 -36
- package/dist/types/chat-archive.js.map +0 -1
- package/dist/types/config.d.ts +0 -268
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/config.js +0 -188
- package/dist/types/config.js.map +0 -1
- package/dist/types/consent.d.ts +0 -191
- package/dist/types/consent.d.ts.map +0 -1
- package/dist/types/consent.js +0 -119
- package/dist/types/consent.js.map +0 -1
- package/dist/types/custom-command.d.ts +0 -139
- package/dist/types/custom-command.d.ts.map +0 -1
- package/dist/types/custom-command.js +0 -7
- package/dist/types/custom-command.js.map +0 -1
- package/dist/types/git.d.ts +0 -20
- package/dist/types/git.d.ts.map +0 -1
- package/dist/types/git.js +0 -2
- package/dist/types/git.js.map +0 -1
- package/dist/types/hook.d.ts +0 -342
- package/dist/types/hook.d.ts.map +0 -1
- package/dist/types/hook.js +0 -84
- package/dist/types/hook.js.map +0 -1
- package/dist/types/index.d.ts +0 -86
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -71
- package/dist/types/index.js.map +0 -1
- package/dist/types/mcp.d.ts +0 -456
- package/dist/types/mcp.d.ts.map +0 -1
- package/dist/types/mcp.js +0 -94
- package/dist/types/mcp.js.map +0 -1
- package/dist/types/rating.d.ts +0 -110
- package/dist/types/rating.d.ts.map +0 -1
- package/dist/types/rating.js +0 -53
- package/dist/types/rating.js.map +0 -1
- package/dist/types/schedule.d.ts +0 -91
- package/dist/types/schedule.d.ts.map +0 -1
- package/dist/types/schedule.js +0 -8
- package/dist/types/schedule.js.map +0 -1
- package/dist/types/session.d.ts +0 -361
- package/dist/types/session.d.ts.map +0 -1
- package/dist/types/session.js +0 -9
- package/dist/types/session.js.map +0 -1
- package/dist/types/skill.d.ts +0 -258
- package/dist/types/skill.d.ts.map +0 -1
- package/dist/types/skill.js +0 -79
- package/dist/types/skill.js.map +0 -1
- package/dist/types/statusline.d.ts +0 -212
- package/dist/types/statusline.d.ts.map +0 -1
- package/dist/types/statusline.js +0 -8
- package/dist/types/statusline.js.map +0 -1
- package/dist/types/stream.d.ts +0 -61
- package/dist/types/stream.d.ts.map +0 -1
- package/dist/types/stream.js +0 -17
- package/dist/types/stream.js.map +0 -1
- package/dist/types/swarm.d.ts +0 -132
- package/dist/types/swarm.d.ts.map +0 -1
- package/dist/types/swarm.js +0 -21
- package/dist/types/swarm.js.map +0 -1
- package/dist/types/token-limits.d.ts +0 -107
- package/dist/types/token-limits.d.ts.map +0 -1
- package/dist/types/token-limits.js +0 -57
- package/dist/types/token-limits.js.map +0 -1
- package/dist/types/token.d.ts +0 -329
- package/dist/types/token.d.ts.map +0 -1
- package/dist/types/token.js +0 -9
- package/dist/types/token.js.map +0 -1
- package/dist/types/update.d.ts +0 -189
- package/dist/types/update.d.ts.map +0 -1
- package/dist/types/update.js +0 -55
- package/dist/types/update.js.map +0 -1
- package/dist/types/workflow.d.ts +0 -396
- package/dist/types/workflow.d.ts.map +0 -1
- package/dist/types/workflow.js +0 -46
- package/dist/types/workflow.js.map +0 -1
- package/dist/ui/App.d.ts +0 -62
- package/dist/ui/App.d.ts.map +0 -1
- package/dist/ui/App.js +0 -511
- package/dist/ui/App.js.map +0 -1
- package/dist/ui/InteractiveSession.d.ts +0 -34
- package/dist/ui/InteractiveSession.d.ts.map +0 -1
- package/dist/ui/InteractiveSession.js +0 -3611
- package/dist/ui/InteractiveSession.js.map +0 -1
- package/dist/ui/MCPApprovalPrompt.d.ts +0 -27
- package/dist/ui/MCPApprovalPrompt.d.ts.map +0 -1
- package/dist/ui/MCPApprovalPrompt.js +0 -51
- package/dist/ui/MCPApprovalPrompt.js.map +0 -1
- package/dist/ui/SetupWizard.d.ts +0 -26
- package/dist/ui/SetupWizard.d.ts.map +0 -1
- package/dist/ui/SetupWizard.js +0 -396
- package/dist/ui/SetupWizard.js.map +0 -1
- package/dist/ui/components/AgentCreationWizard.d.ts +0 -36
- package/dist/ui/components/AgentCreationWizard.d.ts.map +0 -1
- package/dist/ui/components/AgentCreationWizard.js +0 -619
- package/dist/ui/components/AgentCreationWizard.js.map +0 -1
- package/dist/ui/components/AgentManager.d.ts +0 -41
- package/dist/ui/components/AgentManager.d.ts.map +0 -1
- package/dist/ui/components/AgentManager.js +0 -343
- package/dist/ui/components/AgentManager.js.map +0 -1
- package/dist/ui/components/ApprovalDialog.d.ts +0 -18
- package/dist/ui/components/ApprovalDialog.d.ts.map +0 -1
- package/dist/ui/components/ApprovalDialog.js +0 -439
- package/dist/ui/components/ApprovalDialog.js.map +0 -1
- package/dist/ui/components/AsciiArt.d.ts +0 -54
- package/dist/ui/components/AsciiArt.d.ts.map +0 -1
- package/dist/ui/components/AsciiArt.js +0 -89
- package/dist/ui/components/AsciiArt.js.map +0 -1
- package/dist/ui/components/ClarificationWizard.d.ts +0 -36
- package/dist/ui/components/ClarificationWizard.d.ts.map +0 -1
- package/dist/ui/components/ClarificationWizard.js +0 -407
- package/dist/ui/components/ClarificationWizard.js.map +0 -1
- package/dist/ui/components/CompassSpinner.d.ts +0 -15
- package/dist/ui/components/CompassSpinner.d.ts.map +0 -1
- package/dist/ui/components/CompassSpinner.js +0 -50
- package/dist/ui/components/CompassSpinner.js.map +0 -1
- package/dist/ui/components/ConfirmationSelector.d.ts +0 -45
- package/dist/ui/components/ConfirmationSelector.d.ts.map +0 -1
- package/dist/ui/components/ConfirmationSelector.js +0 -106
- package/dist/ui/components/ConfirmationSelector.js.map +0 -1
- package/dist/ui/components/ContextUsage.d.ts +0 -76
- package/dist/ui/components/ContextUsage.d.ts.map +0 -1
- package/dist/ui/components/ContextUsage.js +0 -188
- package/dist/ui/components/ContextUsage.js.map +0 -1
- package/dist/ui/components/DiffPreview.d.ts +0 -13
- package/dist/ui/components/DiffPreview.d.ts.map +0 -1
- package/dist/ui/components/DiffPreview.js +0 -30
- package/dist/ui/components/DiffPreview.js.map +0 -1
- package/dist/ui/components/ExecutionModeSelector.d.ts +0 -45
- package/dist/ui/components/ExecutionModeSelector.d.ts.map +0 -1
- package/dist/ui/components/ExecutionModeSelector.js +0 -120
- package/dist/ui/components/ExecutionModeSelector.js.map +0 -1
- package/dist/ui/components/FileTree.d.ts +0 -47
- package/dist/ui/components/FileTree.d.ts.map +0 -1
- package/dist/ui/components/FileTree.js +0 -258
- package/dist/ui/components/FileTree.js.map +0 -1
- package/dist/ui/components/HelpMenu.d.ts +0 -49
- package/dist/ui/components/HelpMenu.d.ts.map +0 -1
- package/dist/ui/components/HelpMenu.js +0 -91
- package/dist/ui/components/HelpMenu.js.map +0 -1
- package/dist/ui/components/InterleavedStream.d.ts +0 -42
- package/dist/ui/components/InterleavedStream.d.ts.map +0 -1
- package/dist/ui/components/InterleavedStream.js +0 -1500
- package/dist/ui/components/InterleavedStream.js.map +0 -1
- package/dist/ui/components/ModelSelector.d.ts +0 -81
- package/dist/ui/components/ModelSelector.d.ts.map +0 -1
- package/dist/ui/components/ModelSelector.js +0 -305
- package/dist/ui/components/ModelSelector.js.map +0 -1
- package/dist/ui/components/PlanApprovalDialog.d.ts +0 -21
- package/dist/ui/components/PlanApprovalDialog.d.ts.map +0 -1
- package/dist/ui/components/PlanApprovalDialog.js +0 -189
- package/dist/ui/components/PlanApprovalDialog.js.map +0 -1
- package/dist/ui/components/PlanExecutionTracker.d.ts +0 -53
- package/dist/ui/components/PlanExecutionTracker.d.ts.map +0 -1
- package/dist/ui/components/PlanExecutionTracker.js +0 -113
- package/dist/ui/components/PlanExecutionTracker.js.map +0 -1
- package/dist/ui/components/ProgressIndicator.d.ts +0 -151
- package/dist/ui/components/ProgressIndicator.d.ts.map +0 -1
- package/dist/ui/components/ProgressIndicator.js +0 -171
- package/dist/ui/components/ProgressIndicator.js.map +0 -1
- package/dist/ui/components/Prompt.d.ts +0 -47
- package/dist/ui/components/Prompt.d.ts.map +0 -1
- package/dist/ui/components/Prompt.js +0 -632
- package/dist/ui/components/Prompt.js.map +0 -1
- package/dist/ui/components/RatingPanel.d.ts +0 -45
- package/dist/ui/components/RatingPanel.d.ts.map +0 -1
- package/dist/ui/components/RatingPanel.js +0 -119
- package/dist/ui/components/RatingPanel.js.map +0 -1
- package/dist/ui/components/StatusLine.d.ts +0 -43
- package/dist/ui/components/StatusLine.d.ts.map +0 -1
- package/dist/ui/components/StatusLine.js +0 -44
- package/dist/ui/components/StatusLine.js.map +0 -1
- package/dist/ui/components/StreamingResponse.d.ts +0 -45
- package/dist/ui/components/StreamingResponse.d.ts.map +0 -1
- package/dist/ui/components/StreamingResponse.js +0 -56
- package/dist/ui/components/StreamingResponse.js.map +0 -1
- package/dist/ui/components/TokenUsage.d.ts +0 -89
- package/dist/ui/components/TokenUsage.d.ts.map +0 -1
- package/dist/ui/components/TokenUsage.js +0 -99
- package/dist/ui/components/TokenUsage.js.map +0 -1
- package/dist/ui/components/ToolSummary.d.ts +0 -77
- package/dist/ui/components/ToolSummary.d.ts.map +0 -1
- package/dist/ui/components/ToolSummary.js +0 -162
- package/dist/ui/components/ToolSummary.js.map +0 -1
- package/dist/ui/components/UpdateNotification.d.ts +0 -65
- package/dist/ui/components/UpdateNotification.d.ts.map +0 -1
- package/dist/ui/components/UpdateNotification.js +0 -166
- package/dist/ui/components/UpdateNotification.js.map +0 -1
- package/dist/ui/diff-renderer.d.ts +0 -18
- package/dist/ui/diff-renderer.d.ts.map +0 -1
- package/dist/ui/diff-renderer.js +0 -206
- package/dist/ui/diff-renderer.js.map +0 -1
- package/dist/ui/themes/markdown-theme.d.ts +0 -48
- package/dist/ui/themes/markdown-theme.d.ts.map +0 -1
- package/dist/ui/themes/markdown-theme.js +0 -79
- package/dist/ui/themes/markdown-theme.js.map +0 -1
- package/dist/ui/themes/ui-theme.d.ts +0 -301
- package/dist/ui/themes/ui-theme.d.ts.map +0 -1
- package/dist/ui/themes/ui-theme.js +0 -204
- package/dist/ui/themes/ui-theme.js.map +0 -1
- package/dist/utils/attachment-handler.d.ts +0 -129
- package/dist/utils/attachment-handler.d.ts.map +0 -1
- package/dist/utils/attachment-handler.js +0 -280
- package/dist/utils/attachment-handler.js.map +0 -1
- package/dist/utils/backup-cleanup.d.ts +0 -28
- package/dist/utils/backup-cleanup.d.ts.map +0 -1
- package/dist/utils/backup-cleanup.js +0 -99
- package/dist/utils/backup-cleanup.js.map +0 -1
- package/dist/utils/clipboard-handler.d.ts +0 -82
- package/dist/utils/clipboard-handler.d.ts.map +0 -1
- package/dist/utils/clipboard-handler.js +0 -311
- package/dist/utils/clipboard-handler.js.map +0 -1
- package/dist/utils/cloud-detection.d.ts +0 -14
- package/dist/utils/cloud-detection.d.ts.map +0 -1
- package/dist/utils/cloud-detection.js +0 -92
- package/dist/utils/cloud-detection.js.map +0 -1
- package/dist/utils/command-parser.d.ts +0 -56
- package/dist/utils/command-parser.d.ts.map +0 -1
- package/dist/utils/command-parser.js +0 -206
- package/dist/utils/command-parser.js.map +0 -1
- package/dist/utils/console-capture.d.ts +0 -30
- package/dist/utils/console-capture.d.ts.map +0 -1
- package/dist/utils/console-capture.js +0 -88
- package/dist/utils/console-capture.js.map +0 -1
- package/dist/utils/cron-parser.d.ts +0 -52
- package/dist/utils/cron-parser.d.ts.map +0 -1
- package/dist/utils/cron-parser.js +0 -455
- package/dist/utils/cron-parser.js.map +0 -1
- package/dist/utils/crypto.d.ts +0 -351
- package/dist/utils/crypto.d.ts.map +0 -1
- package/dist/utils/crypto.js +0 -615
- package/dist/utils/crypto.js.map +0 -1
- package/dist/utils/diff.d.ts +0 -311
- package/dist/utils/diff.d.ts.map +0 -1
- package/dist/utils/diff.js +0 -566
- package/dist/utils/diff.js.map +0 -1
- package/dist/utils/editor.d.ts +0 -12
- package/dist/utils/editor.d.ts.map +0 -1
- package/dist/utils/editor.js +0 -30
- package/dist/utils/editor.js.map +0 -1
- package/dist/utils/file-system.d.ts +0 -512
- package/dist/utils/file-system.d.ts.map +0 -1
- package/dist/utils/file-system.js +0 -798
- package/dist/utils/file-system.js.map +0 -1
- package/dist/utils/format.d.ts +0 -318
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/format.js +0 -587
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/ignore-patterns.d.ts +0 -93
- package/dist/utils/ignore-patterns.d.ts.map +0 -1
- package/dist/utils/ignore-patterns.js +0 -710
- package/dist/utils/ignore-patterns.js.map +0 -1
- package/dist/utils/log-cleanup.d.ts +0 -16
- package/dist/utils/log-cleanup.d.ts.map +0 -1
- package/dist/utils/log-cleanup.js +0 -51
- package/dist/utils/log-cleanup.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -305
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -447
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/path.d.ts +0 -406
- package/dist/utils/path.d.ts.map +0 -1
- package/dist/utils/path.js +0 -549
- package/dist/utils/path.js.map +0 -1
- package/dist/utils/schedule-file.d.ts +0 -63
- package/dist/utils/schedule-file.d.ts.map +0 -1
- package/dist/utils/schedule-file.js +0 -244
- package/dist/utils/schedule-file.js.map +0 -1
- package/dist/utils/task-id.d.ts +0 -29
- package/dist/utils/task-id.d.ts.map +0 -1
- package/dist/utils/task-id.js +0 -53
- package/dist/utils/task-id.js.map +0 -1
- package/dist/utils/temp-cleanup.d.ts +0 -46
- package/dist/utils/temp-cleanup.d.ts.map +0 -1
- package/dist/utils/temp-cleanup.js +0 -95
- package/dist/utils/temp-cleanup.js.map +0 -1
- package/dist/utils/terminal-output.d.ts +0 -34
- package/dist/utils/terminal-output.d.ts.map +0 -1
- package/dist/utils/terminal-output.js +0 -40
- package/dist/utils/terminal-output.js.map +0 -1
- package/dist/utils/token-counter.d.ts +0 -224
- package/dist/utils/token-counter.d.ts.map +0 -1
- package/dist/utils/token-counter.js +0 -332
- package/dist/utils/token-counter.js.map +0 -1
- package/dist/utils/tool-mapper.d.ts +0 -70
- package/dist/utils/tool-mapper.d.ts.map +0 -1
- package/dist/utils/tool-mapper.js +0 -234
- package/dist/utils/tool-mapper.js.map +0 -1
|
@@ -1,1026 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Slash /mcp command implementation for interactive MCP server management.
|
|
3
|
-
*
|
|
4
|
-
* This command provides an interactive interface for:
|
|
5
|
-
* - Viewing connected MCP servers and their status
|
|
6
|
-
* - Authenticating with OAuth-enabled servers
|
|
7
|
-
* - Managing server connections
|
|
8
|
-
* - Viewing available tools, resources, and prompts
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```
|
|
12
|
-
* /mcp - Show MCP server status overview
|
|
13
|
-
* /mcp servers - List all configured servers
|
|
14
|
-
* /mcp tools - List all available MCP tools
|
|
15
|
-
* /mcp connect - Connect to all configured servers
|
|
16
|
-
* /mcp auth - Start authentication for a server
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
import chalk from 'chalk';
|
|
20
|
-
import { exec } from 'child_process';
|
|
21
|
-
import { getMCPServerManager } from '../../services/mcp-server-manager.js';
|
|
22
|
-
import { getMCPConfigManager } from '../../services/mcp-config-manager.js';
|
|
23
|
-
import { getMCPOAuthService, getProviderInfo, getFallbackConfig, checkLocalFigmaServer, } from '../../services/mcp-oauth-service.js';
|
|
24
|
-
import { logger } from '../../utils/logger.js';
|
|
25
|
-
import { registerSlashCommand, } from '../../core/slash-command-handler.js';
|
|
26
|
-
import { isMCPHttpConfig, isMCPSseConfig, isMCPStdioConfig, } from '../../types/mcp.js';
|
|
27
|
-
import { getEventEmitter } from '../../core/event-emitter.js';
|
|
28
|
-
/**
|
|
29
|
-
* Opens a URL in the user's default browser.
|
|
30
|
-
* Uses platform-specific commands: start (Windows), open (macOS), xdg-open (Linux)
|
|
31
|
-
*/
|
|
32
|
-
function openInBrowser(url) {
|
|
33
|
-
return new Promise((resolve) => {
|
|
34
|
-
const platform = process.platform;
|
|
35
|
-
let command;
|
|
36
|
-
if (platform === 'win32') {
|
|
37
|
-
// Windows - use start command, wrap URL in quotes to handle special chars
|
|
38
|
-
command = `start "" "${url}"`;
|
|
39
|
-
}
|
|
40
|
-
else if (platform === 'darwin') {
|
|
41
|
-
// macOS
|
|
42
|
-
command = `open "${url}"`;
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
// Linux and others
|
|
46
|
-
command = `xdg-open "${url}"`;
|
|
47
|
-
}
|
|
48
|
-
exec(command, (error) => {
|
|
49
|
-
if (error) {
|
|
50
|
-
logger.debug(`Failed to open browser: ${error.message}`);
|
|
51
|
-
resolve(false);
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
resolve(true);
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Emits output for the mcp command via the event system
|
|
61
|
-
* This allows the UI to capture and display the output in real-time
|
|
62
|
-
*/
|
|
63
|
-
function emitOutput(message, isError = false) {
|
|
64
|
-
const eventEmitter = getEventEmitter();
|
|
65
|
-
eventEmitter.emit('slash-command-output', {
|
|
66
|
-
command: 'mcp',
|
|
67
|
-
message,
|
|
68
|
-
isError,
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Formats server type for display.
|
|
73
|
-
*/
|
|
74
|
-
function formatServerType(type) {
|
|
75
|
-
switch (type) {
|
|
76
|
-
case 'http':
|
|
77
|
-
return chalk.cyan('HTTP');
|
|
78
|
-
case 'sse':
|
|
79
|
-
return chalk.yellow('SSE');
|
|
80
|
-
case 'stdio':
|
|
81
|
-
return chalk.green('stdio');
|
|
82
|
-
default:
|
|
83
|
-
return chalk.gray(type);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Displays the MCP status overview.
|
|
88
|
-
*/
|
|
89
|
-
async function displayStatus() {
|
|
90
|
-
const serverManager = getMCPServerManager();
|
|
91
|
-
const states = serverManager.getAllServerStates();
|
|
92
|
-
emitOutput('');
|
|
93
|
-
emitOutput(chalk.bold('MCP Server Status'));
|
|
94
|
-
emitOutput(chalk.dim('─'.repeat(50)));
|
|
95
|
-
if (states.length === 0) {
|
|
96
|
-
emitOutput('');
|
|
97
|
-
emitOutput(chalk.gray('No MCP servers configured.'));
|
|
98
|
-
emitOutput('');
|
|
99
|
-
emitOutput(chalk.gray('Add servers using:'));
|
|
100
|
-
emitOutput(chalk.gray(' compass mcp add --transport http <name> <url>'));
|
|
101
|
-
emitOutput('');
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
const connected = states.filter((s) => s.status === 'connected').length;
|
|
105
|
-
const total = states.length;
|
|
106
|
-
const totalTools = serverManager.getAllTools().length;
|
|
107
|
-
const totalResources = serverManager.getAllResources().length;
|
|
108
|
-
const totalPrompts = serverManager.getAllPrompts().length;
|
|
109
|
-
emitOutput('');
|
|
110
|
-
emitOutput(`${chalk.gray('Connected:')} ${connected}/${total} servers`);
|
|
111
|
-
emitOutput(`${chalk.gray('Tools:')} ${totalTools}`);
|
|
112
|
-
emitOutput(`${chalk.gray('Resources:')} ${totalResources}`);
|
|
113
|
-
emitOutput(`${chalk.gray('Prompts:')} ${totalPrompts}`);
|
|
114
|
-
emitOutput('');
|
|
115
|
-
let hasUnapproved = false;
|
|
116
|
-
let hasAuthRequired = false;
|
|
117
|
-
let hasErrors = false;
|
|
118
|
-
for (const state of states) {
|
|
119
|
-
const statusIndicator = state.status === 'connected'
|
|
120
|
-
? chalk.green('●')
|
|
121
|
-
: state.status === 'error'
|
|
122
|
-
? chalk.red('●')
|
|
123
|
-
: chalk.gray('○');
|
|
124
|
-
emitOutput(`${statusIndicator} ${chalk.bold(state.config.name)} ${chalk.gray(`(${formatServerType(state.config.type)})`)}`);
|
|
125
|
-
if (state.status === 'connected') {
|
|
126
|
-
emitOutput(` ${chalk.gray('Tools:')} ${state.tools.length}, ${chalk.gray('Resources:')} ${state.resources.length}, ${chalk.gray('Prompts:')} ${state.prompts.length}`);
|
|
127
|
-
}
|
|
128
|
-
else if (state.status === 'error') {
|
|
129
|
-
emitOutput(` ${chalk.red(state.error || 'Unknown error')}`);
|
|
130
|
-
hasErrors = true;
|
|
131
|
-
}
|
|
132
|
-
else if (state.error) {
|
|
133
|
-
emitOutput(` ${chalk.yellow(state.error)}`);
|
|
134
|
-
if (state.error === 'Awaiting approval') {
|
|
135
|
-
hasUnapproved = true;
|
|
136
|
-
}
|
|
137
|
-
if (state.error.includes('Authentication required')) {
|
|
138
|
-
hasAuthRequired = true;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
emitOutput('');
|
|
143
|
-
if (hasErrors) {
|
|
144
|
-
emitOutput(chalk.yellow('Tip: Reconnect failed servers with /mcp reconnect <server-name>'));
|
|
145
|
-
emitOutput('');
|
|
146
|
-
}
|
|
147
|
-
if (hasUnapproved) {
|
|
148
|
-
emitOutput(chalk.yellow('Tip: Approve project servers with /mcp approve <server-name>'));
|
|
149
|
-
emitOutput('');
|
|
150
|
-
}
|
|
151
|
-
if (hasAuthRequired) {
|
|
152
|
-
emitOutput(chalk.yellow('Tip: Authenticate servers with /mcp auth <server-name> <token>'));
|
|
153
|
-
emitOutput('');
|
|
154
|
-
}
|
|
155
|
-
emitOutput(chalk.gray('Commands: /mcp servers | /mcp tools | /mcp connect | /mcp approve'));
|
|
156
|
-
emitOutput('');
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Lists all configured servers.
|
|
160
|
-
*/
|
|
161
|
-
async function listServers() {
|
|
162
|
-
const configManager = getMCPConfigManager();
|
|
163
|
-
await configManager.load(process.cwd());
|
|
164
|
-
const servers = configManager.getAllServers(process.cwd());
|
|
165
|
-
emitOutput('');
|
|
166
|
-
emitOutput(chalk.bold('Configured MCP Servers'));
|
|
167
|
-
emitOutput(chalk.dim('─'.repeat(50)));
|
|
168
|
-
if (servers.length === 0) {
|
|
169
|
-
emitOutput(chalk.gray('No servers configured.'));
|
|
170
|
-
emitOutput('');
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
for (const server of servers) {
|
|
174
|
-
const typeLabel = formatServerType(server.type);
|
|
175
|
-
const scopeLabel = chalk.gray(`[${server.scope || 'local'}]`);
|
|
176
|
-
emitOutput('');
|
|
177
|
-
emitOutput(`${chalk.bold(server.name)} ${typeLabel} ${scopeLabel}`);
|
|
178
|
-
if (isMCPHttpConfig(server) || isMCPSseConfig(server)) {
|
|
179
|
-
emitOutput(` ${chalk.gray('URL:')} ${server.url}`);
|
|
180
|
-
}
|
|
181
|
-
else if (isMCPStdioConfig(server)) {
|
|
182
|
-
const cmd = server.args
|
|
183
|
-
? `${server.command} ${server.args.join(' ')}`
|
|
184
|
-
: server.command;
|
|
185
|
-
emitOutput(` ${chalk.gray('Command:')} ${cmd}`);
|
|
186
|
-
}
|
|
187
|
-
if (server.source === 'plugin') {
|
|
188
|
-
emitOutput(` ${chalk.gray('Plugin:')} ${server.pluginName}`);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
emitOutput('');
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Lists all available tools from connected servers.
|
|
195
|
-
*/
|
|
196
|
-
async function listTools() {
|
|
197
|
-
const serverManager = getMCPServerManager();
|
|
198
|
-
const tools = serverManager.getAllTools();
|
|
199
|
-
emitOutput('');
|
|
200
|
-
emitOutput(chalk.bold('Available MCP Tools'));
|
|
201
|
-
emitOutput(chalk.dim('─'.repeat(50)));
|
|
202
|
-
if (tools.length === 0) {
|
|
203
|
-
emitOutput(chalk.gray('No tools available.'));
|
|
204
|
-
emitOutput(chalk.gray('Connect to MCP servers first with /mcp connect'));
|
|
205
|
-
emitOutput('');
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
// Group tools by server
|
|
209
|
-
const toolsByServer = new Map();
|
|
210
|
-
for (const tool of tools) {
|
|
211
|
-
const serverName = tool.serverName || 'unknown';
|
|
212
|
-
if (!toolsByServer.has(serverName)) {
|
|
213
|
-
toolsByServer.set(serverName, []);
|
|
214
|
-
}
|
|
215
|
-
toolsByServer.get(serverName).push(tool);
|
|
216
|
-
}
|
|
217
|
-
for (const [serverName, serverTools] of toolsByServer) {
|
|
218
|
-
emitOutput('');
|
|
219
|
-
emitOutput(chalk.bold.cyan(serverName));
|
|
220
|
-
for (const tool of serverTools) {
|
|
221
|
-
emitOutput(` ${chalk.white(tool.name)}`);
|
|
222
|
-
if (tool.description) {
|
|
223
|
-
emitOutput(` ${chalk.gray(tool.description)}`);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
emitOutput('');
|
|
228
|
-
emitOutput(chalk.gray(`Total: ${tools.length} tool(s)`));
|
|
229
|
-
emitOutput('');
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Lists all available resources from connected servers.
|
|
233
|
-
*/
|
|
234
|
-
async function listResources() {
|
|
235
|
-
const serverManager = getMCPServerManager();
|
|
236
|
-
const resources = serverManager.getAllResources();
|
|
237
|
-
emitOutput('');
|
|
238
|
-
emitOutput(chalk.bold('Available MCP Resources'));
|
|
239
|
-
emitOutput(chalk.dim('─'.repeat(50)));
|
|
240
|
-
if (resources.length === 0) {
|
|
241
|
-
emitOutput(chalk.gray('No resources available.'));
|
|
242
|
-
emitOutput('');
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
for (const resource of resources) {
|
|
246
|
-
emitOutput(` ${chalk.white(resource.name)} ${chalk.gray(`(${resource.serverName})`)}`);
|
|
247
|
-
emitOutput(` ${chalk.gray('URI:')} ${resource.uri}`);
|
|
248
|
-
if (resource.description) {
|
|
249
|
-
emitOutput(` ${chalk.gray(resource.description)}`);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
emitOutput('');
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Lists all available prompts from connected servers.
|
|
256
|
-
*/
|
|
257
|
-
async function listPrompts() {
|
|
258
|
-
const serverManager = getMCPServerManager();
|
|
259
|
-
const prompts = serverManager.getAllPrompts();
|
|
260
|
-
emitOutput('');
|
|
261
|
-
emitOutput(chalk.bold('Available MCP Prompts'));
|
|
262
|
-
emitOutput(chalk.dim('─'.repeat(50)));
|
|
263
|
-
if (prompts.length === 0) {
|
|
264
|
-
emitOutput(chalk.gray('No prompts available.'));
|
|
265
|
-
emitOutput('');
|
|
266
|
-
return;
|
|
267
|
-
}
|
|
268
|
-
for (const prompt of prompts) {
|
|
269
|
-
emitOutput(` ${chalk.white(prompt.name)} ${chalk.gray(`(${prompt.serverName})`)}`);
|
|
270
|
-
if (prompt.description) {
|
|
271
|
-
emitOutput(` ${chalk.gray(prompt.description)}`);
|
|
272
|
-
}
|
|
273
|
-
if (prompt.arguments && prompt.arguments.length > 0) {
|
|
274
|
-
const argNames = prompt.arguments
|
|
275
|
-
.map((a) => (a.required ? a.name : `[${a.name}]`))
|
|
276
|
-
.join(', ');
|
|
277
|
-
emitOutput(` ${chalk.gray('Args:')} ${argNames}`);
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
emitOutput('');
|
|
281
|
-
}
|
|
282
|
-
/**
|
|
283
|
-
* Connects to all configured servers.
|
|
284
|
-
*/
|
|
285
|
-
async function connectServers() {
|
|
286
|
-
emitOutput('');
|
|
287
|
-
emitOutput(chalk.cyan('Connecting to MCP servers...'));
|
|
288
|
-
try {
|
|
289
|
-
const serverManager = getMCPServerManager();
|
|
290
|
-
await serverManager.initialize(process.cwd());
|
|
291
|
-
await serverManager.connectAllServers();
|
|
292
|
-
const connected = serverManager.getConnectedCount();
|
|
293
|
-
const total = serverManager.getTotalCount();
|
|
294
|
-
emitOutput('');
|
|
295
|
-
if (connected === total) {
|
|
296
|
-
emitOutput(chalk.green(`All ${total} server(s) connected successfully.`));
|
|
297
|
-
}
|
|
298
|
-
else {
|
|
299
|
-
emitOutput(chalk.yellow(`Connected ${connected}/${total} server(s).`));
|
|
300
|
-
emitOutput(chalk.gray('Use /mcp to see server status and errors.'));
|
|
301
|
-
}
|
|
302
|
-
emitOutput('');
|
|
303
|
-
}
|
|
304
|
-
catch (error) {
|
|
305
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
306
|
-
emitOutput(chalk.red(`Failed to connect: ${errorMessage}`));
|
|
307
|
-
emitOutput('');
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
/**
|
|
311
|
-
* Disconnects from all servers.
|
|
312
|
-
*/
|
|
313
|
-
async function disconnectServers() {
|
|
314
|
-
emitOutput('');
|
|
315
|
-
emitOutput(chalk.cyan('Disconnecting from MCP servers...'));
|
|
316
|
-
try {
|
|
317
|
-
const serverManager = getMCPServerManager();
|
|
318
|
-
await serverManager.disconnectAllServers();
|
|
319
|
-
emitOutput(chalk.green('Disconnected from all servers.'));
|
|
320
|
-
emitOutput('');
|
|
321
|
-
}
|
|
322
|
-
catch (error) {
|
|
323
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
324
|
-
emitOutput(chalk.red(`Failed to disconnect: ${errorMessage}`));
|
|
325
|
-
emitOutput('');
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
/**
|
|
329
|
-
* Displays fallback server information and setup instructions.
|
|
330
|
-
*/
|
|
331
|
-
async function displayFallbackInfo(serverUrl, serverName) {
|
|
332
|
-
const fallback = getFallbackConfig(serverUrl);
|
|
333
|
-
const provider = getProviderInfo(serverUrl);
|
|
334
|
-
if (!fallback || !provider) {
|
|
335
|
-
return;
|
|
336
|
-
}
|
|
337
|
-
emitOutput('');
|
|
338
|
-
emitOutput(chalk.yellow('━'.repeat(50)));
|
|
339
|
-
emitOutput(chalk.yellow.bold(`OAuth Restricted: ${provider.name}`));
|
|
340
|
-
emitOutput(chalk.yellow('━'.repeat(50)));
|
|
341
|
-
emitOutput('');
|
|
342
|
-
emitOutput(chalk.white(fallback.reason));
|
|
343
|
-
emitOutput('');
|
|
344
|
-
if (provider.approvedClients && provider.approvedClients.length > 0) {
|
|
345
|
-
emitOutput(chalk.gray('Approved clients: ') + provider.approvedClients.join(', '));
|
|
346
|
-
emitOutput('');
|
|
347
|
-
}
|
|
348
|
-
emitOutput(chalk.cyan.bold(`Alternative: ${fallback.name}`));
|
|
349
|
-
emitOutput('');
|
|
350
|
-
if (fallback.requirements && fallback.requirements.length > 0) {
|
|
351
|
-
emitOutput(chalk.white('Requirements:'));
|
|
352
|
-
for (const req of fallback.requirements) {
|
|
353
|
-
emitOutput(chalk.gray(` • ${req}`));
|
|
354
|
-
}
|
|
355
|
-
emitOutput('');
|
|
356
|
-
}
|
|
357
|
-
if (fallback.setupInstructions && fallback.setupInstructions.length > 0) {
|
|
358
|
-
emitOutput(chalk.white('Setup Instructions:'));
|
|
359
|
-
for (const instruction of fallback.setupInstructions) {
|
|
360
|
-
emitOutput(chalk.gray(` ${instruction}`));
|
|
361
|
-
}
|
|
362
|
-
emitOutput('');
|
|
363
|
-
}
|
|
364
|
-
// Check if local Figma server is available
|
|
365
|
-
if (provider.name === 'figma') {
|
|
366
|
-
emitOutput(chalk.cyan('Checking local Figma server availability...'));
|
|
367
|
-
const isAvailable = await checkLocalFigmaServer();
|
|
368
|
-
if (isAvailable) {
|
|
369
|
-
emitOutput(chalk.green('✓ Local Figma MCP server is running!'));
|
|
370
|
-
emitOutput('');
|
|
371
|
-
emitOutput(chalk.white('To use it, update your .mcp.json:'));
|
|
372
|
-
emitOutput('');
|
|
373
|
-
emitOutput(chalk.gray(' {'));
|
|
374
|
-
emitOutput(chalk.gray(' "mcpServers": {'));
|
|
375
|
-
emitOutput(chalk.gray(` "${serverName}": {`));
|
|
376
|
-
emitOutput(chalk.gray(' "type": "http",'));
|
|
377
|
-
emitOutput(chalk.gray(' "url": "http://127.0.0.1:3845/mcp",'));
|
|
378
|
-
emitOutput(chalk.gray(' "enabled": true'));
|
|
379
|
-
emitOutput(chalk.gray(' }'));
|
|
380
|
-
emitOutput(chalk.gray(' }'));
|
|
381
|
-
emitOutput(chalk.gray(' }'));
|
|
382
|
-
emitOutput('');
|
|
383
|
-
emitOutput(chalk.cyan('Then run: /mcp connect'));
|
|
384
|
-
}
|
|
385
|
-
else {
|
|
386
|
-
emitOutput(chalk.yellow('✗ Local Figma MCP server not detected.'));
|
|
387
|
-
emitOutput(chalk.gray(' Follow the setup instructions above to enable it.'));
|
|
388
|
-
}
|
|
389
|
-
emitOutput('');
|
|
390
|
-
}
|
|
391
|
-
emitOutput(chalk.gray('For more information, see: docs/mcp-authentication.md'));
|
|
392
|
-
emitOutput('');
|
|
393
|
-
}
|
|
394
|
-
/**
|
|
395
|
-
* Starts authentication for a server.
|
|
396
|
-
* Supports both OAuth flow and simple token-based authentication.
|
|
397
|
-
*
|
|
398
|
-
* @param serverName - The name of the server to authenticate
|
|
399
|
-
* @param token - Optional API token for simple token-based authentication
|
|
400
|
-
*/
|
|
401
|
-
async function authenticateServer(serverName, token) {
|
|
402
|
-
if (!serverName) {
|
|
403
|
-
emitOutput('');
|
|
404
|
-
emitOutput(chalk.yellow('Please specify a server name: /mcp auth <server-name> [token]'));
|
|
405
|
-
emitOutput('');
|
|
406
|
-
emitOutput(chalk.gray('Examples:'));
|
|
407
|
-
emitOutput(chalk.gray(' /mcp auth figma - Start OAuth flow (if configured)'));
|
|
408
|
-
emitOutput(chalk.gray(' /mcp auth figma figd_abc123... - Set API token directly'));
|
|
409
|
-
emitOutput('');
|
|
410
|
-
return;
|
|
411
|
-
}
|
|
412
|
-
// Use server manager to get the server config - it already has all servers loaded
|
|
413
|
-
// and handles path normalization correctly
|
|
414
|
-
const serverManager = getMCPServerManager();
|
|
415
|
-
const serverState = serverManager.getServerState(serverName);
|
|
416
|
-
// If server is not in server manager, try the config manager as fallback
|
|
417
|
-
let server = serverState?.config;
|
|
418
|
-
if (!server) {
|
|
419
|
-
const configManager = getMCPConfigManager();
|
|
420
|
-
await configManager.load(process.cwd());
|
|
421
|
-
server = configManager.getServer(serverName, process.cwd());
|
|
422
|
-
}
|
|
423
|
-
if (!server) {
|
|
424
|
-
emitOutput('');
|
|
425
|
-
emitOutput(chalk.red(`Server not found: ${serverName}`));
|
|
426
|
-
emitOutput('');
|
|
427
|
-
return;
|
|
428
|
-
}
|
|
429
|
-
const oauthService = await getMCPOAuthService();
|
|
430
|
-
// If a token is provided, use simple token-based auth
|
|
431
|
-
if (token) {
|
|
432
|
-
emitOutput('');
|
|
433
|
-
emitOutput(chalk.cyan(`Setting API token for ${serverName}...`));
|
|
434
|
-
try {
|
|
435
|
-
await oauthService.setApiToken(serverName, token);
|
|
436
|
-
emitOutput(chalk.green(`✓ API token stored for '${serverName}'`));
|
|
437
|
-
// Try to connect with the new token
|
|
438
|
-
emitOutput(chalk.cyan(' Connecting...'));
|
|
439
|
-
const serverManager = getMCPServerManager();
|
|
440
|
-
const state = await serverManager.connectServer(serverName);
|
|
441
|
-
if (state.status === 'connected') {
|
|
442
|
-
emitOutput(chalk.green(`✓ Connected - ${state.tools.length} tool(s), ${state.resources.length} resource(s), ${state.prompts.length} prompt(s)`));
|
|
443
|
-
}
|
|
444
|
-
else if (state.error) {
|
|
445
|
-
emitOutput(chalk.yellow(`⚠ Connection issue: ${state.error}`));
|
|
446
|
-
if (state.error.includes('Authentication required')) {
|
|
447
|
-
emitOutput(chalk.gray(' The token may be invalid or expired. Try with a different token.'));
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
emitOutput('');
|
|
451
|
-
return;
|
|
452
|
-
}
|
|
453
|
-
catch (error) {
|
|
454
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
455
|
-
emitOutput(chalk.red(`Failed to set token: ${errorMessage}`));
|
|
456
|
-
emitOutput('');
|
|
457
|
-
return;
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
// Get server URL for OAuth discovery (only for HTTP/SSE servers)
|
|
461
|
-
let serverUrl;
|
|
462
|
-
if (isMCPHttpConfig(server) || isMCPSseConfig(server)) {
|
|
463
|
-
serverUrl = server.url;
|
|
464
|
-
}
|
|
465
|
-
// Check if this is a provider with restricted OAuth (e.g., Figma)
|
|
466
|
-
// Show a proactive warning with fallback information
|
|
467
|
-
if (serverUrl) {
|
|
468
|
-
const provider = getProviderInfo(serverUrl);
|
|
469
|
-
if (provider?.oauthRestricted) {
|
|
470
|
-
emitOutput('');
|
|
471
|
-
emitOutput(chalk.yellow(`Note: ${provider.name} restricts OAuth to approved clients.`));
|
|
472
|
-
emitOutput(chalk.gray(`Approved clients: ${provider.approvedClients?.join(', ') || 'Unknown'}`));
|
|
473
|
-
emitOutput(chalk.gray(`Kore-CLI may not be able to authenticate with the remote server.`));
|
|
474
|
-
emitOutput('');
|
|
475
|
-
emitOutput(chalk.cyan('Attempting OAuth flow anyway...'));
|
|
476
|
-
}
|
|
477
|
-
}
|
|
478
|
-
// Check if we have complete OAuth config (with URLs) or partial (just credentials)
|
|
479
|
-
const hasCompleteOAuthConfig = server.oauth?.authorizationUrl && server.oauth?.tokenUrl;
|
|
480
|
-
const hasPartialOAuthConfig = server.oauth && !hasCompleteOAuthConfig;
|
|
481
|
-
// Try OAuth flow - either with pre-configured OAuth or via discovery
|
|
482
|
-
emitOutput('');
|
|
483
|
-
if (hasCompleteOAuthConfig) {
|
|
484
|
-
emitOutput(chalk.cyan(`Starting OAuth authentication for ${serverName}...`));
|
|
485
|
-
}
|
|
486
|
-
else if (serverUrl) {
|
|
487
|
-
if (hasPartialOAuthConfig) {
|
|
488
|
-
emitOutput(chalk.cyan(`Discovering OAuth endpoints for ${serverName} (using configured credentials)...`));
|
|
489
|
-
}
|
|
490
|
-
else {
|
|
491
|
-
emitOutput(chalk.cyan(`Discovering OAuth configuration for ${serverName}...`));
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
else {
|
|
495
|
-
// stdio server without OAuth - must use token
|
|
496
|
-
emitOutput(chalk.yellow(`Server '${serverName}' requires authentication.`));
|
|
497
|
-
emitOutput('');
|
|
498
|
-
emitOutput(chalk.white('To authenticate, provide your API token:'));
|
|
499
|
-
emitOutput('');
|
|
500
|
-
emitOutput(chalk.cyan(` /mcp auth ${serverName} <your-api-token>`));
|
|
501
|
-
emitOutput('');
|
|
502
|
-
emitOutput(chalk.gray('You can usually find your API token in the service\'s settings or developer portal.'));
|
|
503
|
-
emitOutput('');
|
|
504
|
-
return;
|
|
505
|
-
}
|
|
506
|
-
try {
|
|
507
|
-
// Start the OAuth flow - with discovery if needed
|
|
508
|
-
let authUrl;
|
|
509
|
-
let discoveredConfig;
|
|
510
|
-
if (hasCompleteOAuthConfig) {
|
|
511
|
-
// Use fully pre-configured OAuth (has URLs)
|
|
512
|
-
const result = await oauthService.startAuthFlow(serverName, server.oauth);
|
|
513
|
-
if (result.error || !result.authUrl) {
|
|
514
|
-
emitOutput('');
|
|
515
|
-
emitOutput(chalk.red(`Failed to start auth flow: ${result.error || 'Unknown error'}`));
|
|
516
|
-
emitOutput('');
|
|
517
|
-
return;
|
|
518
|
-
}
|
|
519
|
-
authUrl = result.authUrl;
|
|
520
|
-
}
|
|
521
|
-
else {
|
|
522
|
-
// Try OAuth discovery, merging with any partial config (clientId/clientSecret)
|
|
523
|
-
const result = await oauthService.startAuthFlowWithDiscovery(serverName, serverUrl, server.oauth);
|
|
524
|
-
if (result.error || !result.authUrl) {
|
|
525
|
-
// Discovery failed - fall back to token prompt
|
|
526
|
-
emitOutput('');
|
|
527
|
-
emitOutput(chalk.yellow(`Could not discover OAuth for '${serverName}'.`));
|
|
528
|
-
emitOutput('');
|
|
529
|
-
emitOutput(chalk.white('To authenticate, provide your API token:'));
|
|
530
|
-
emitOutput('');
|
|
531
|
-
emitOutput(chalk.cyan(` /mcp auth ${serverName} <your-api-token>`));
|
|
532
|
-
emitOutput('');
|
|
533
|
-
emitOutput(chalk.gray('You can usually find your API token in the service\'s settings or developer portal.'));
|
|
534
|
-
emitOutput('');
|
|
535
|
-
// Emit event for UI
|
|
536
|
-
const eventEmitter = getEventEmitter();
|
|
537
|
-
eventEmitter.emit('mcp-token-required', {
|
|
538
|
-
serverName,
|
|
539
|
-
message: `Authentication required for '${serverName}'. Provide an API token.`,
|
|
540
|
-
});
|
|
541
|
-
return;
|
|
542
|
-
}
|
|
543
|
-
authUrl = result.authUrl;
|
|
544
|
-
discoveredConfig = result.discoveredConfig;
|
|
545
|
-
}
|
|
546
|
-
// Open the auth URL in browser automatically
|
|
547
|
-
emitOutput('');
|
|
548
|
-
const browserOpened = await openInBrowser(authUrl);
|
|
549
|
-
if (browserOpened) {
|
|
550
|
-
emitOutput(chalk.green(' ✓ Opening browser for authentication...'));
|
|
551
|
-
}
|
|
552
|
-
else {
|
|
553
|
-
emitOutput(chalk.yellow(' Could not open browser automatically.'));
|
|
554
|
-
emitOutput(chalk.white(' Please open this URL manually:'));
|
|
555
|
-
emitOutput('');
|
|
556
|
-
emitOutput(chalk.cyan(` ${authUrl}`));
|
|
557
|
-
}
|
|
558
|
-
emitOutput('');
|
|
559
|
-
emitOutput(chalk.gray(' Waiting for authentication...'));
|
|
560
|
-
// Poll for completion (the callback server stores the code)
|
|
561
|
-
const maxWaitMs = 5 * 60 * 1000; // 5 minutes
|
|
562
|
-
const pollIntervalMs = 1000;
|
|
563
|
-
const startTime = Date.now();
|
|
564
|
-
// Use the appropriate OAuth config for completion
|
|
565
|
-
const oauthConfigForCompletion = server.oauth || discoveredConfig;
|
|
566
|
-
while (Date.now() - startTime < maxWaitMs) {
|
|
567
|
-
await new Promise((r) => setTimeout(r, pollIntervalMs));
|
|
568
|
-
const result = oauthConfigForCompletion
|
|
569
|
-
? await oauthService.completeAuthFlowWithConfig(serverName, oauthConfigForCompletion)
|
|
570
|
-
: { success: false, error: 'No OAuth config available' };
|
|
571
|
-
if (result.success) {
|
|
572
|
-
emitOutput('');
|
|
573
|
-
emitOutput(chalk.green(`✓ Authentication successful for '${serverName}'!`));
|
|
574
|
-
// Try to reconnect
|
|
575
|
-
emitOutput(chalk.cyan(' Reconnecting...'));
|
|
576
|
-
try {
|
|
577
|
-
const reconnectManager = getMCPServerManager();
|
|
578
|
-
const state = await reconnectManager.connectServer(serverName);
|
|
579
|
-
if (state.status === 'connected') {
|
|
580
|
-
emitOutput(chalk.green(`✓ Connected - ${state.tools.length} tool(s), ${state.resources.length} resource(s), ${state.prompts.length} prompt(s)`));
|
|
581
|
-
}
|
|
582
|
-
else if (state.error) {
|
|
583
|
-
emitOutput(chalk.yellow(`⚠ ${state.error}`));
|
|
584
|
-
// Check if this is a restricted OAuth provider error
|
|
585
|
-
if (serverUrl && (state.error.includes('MCP remote server is not enabled') ||
|
|
586
|
-
state.error.includes('not enabled') ||
|
|
587
|
-
state.error.includes('not authorized'))) {
|
|
588
|
-
await displayFallbackInfo(serverUrl, serverName);
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
}
|
|
592
|
-
catch (connectError) {
|
|
593
|
-
logger.warn(`Failed to reconnect to '${serverName}'`, connectError);
|
|
594
|
-
emitOutput(chalk.yellow('⚠ Failed to reconnect. Use /mcp connect to retry.'));
|
|
595
|
-
}
|
|
596
|
-
emitOutput('');
|
|
597
|
-
return;
|
|
598
|
-
}
|
|
599
|
-
// If error is NOT "no pending flow", it's a real error
|
|
600
|
-
if (result.error && !result.error.includes('No pending OAuth flow')) {
|
|
601
|
-
emitOutput('');
|
|
602
|
-
emitOutput(chalk.red(`Authentication failed: ${result.error}`));
|
|
603
|
-
// Check if this is a restricted OAuth provider and show fallback
|
|
604
|
-
if (serverUrl && (result.error.includes('Forbidden') ||
|
|
605
|
-
result.error.includes('not enabled') ||
|
|
606
|
-
result.error.includes('not authorized') ||
|
|
607
|
-
result.error.includes('client not approved'))) {
|
|
608
|
-
await displayFallbackInfo(serverUrl, serverName);
|
|
609
|
-
}
|
|
610
|
-
emitOutput('');
|
|
611
|
-
return;
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
emitOutput('');
|
|
615
|
-
emitOutput(chalk.red('Authentication timed out after 5 minutes.'));
|
|
616
|
-
emitOutput('');
|
|
617
|
-
}
|
|
618
|
-
catch (error) {
|
|
619
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
620
|
-
emitOutput(chalk.red(`Failed to authenticate: ${errorMessage}`));
|
|
621
|
-
// Check if this is a restricted OAuth provider and show fallback
|
|
622
|
-
if (serverUrl && (errorMessage.includes('Forbidden') ||
|
|
623
|
-
errorMessage.includes('not enabled') ||
|
|
624
|
-
errorMessage.includes('not authorized'))) {
|
|
625
|
-
await displayFallbackInfo(serverUrl, serverName);
|
|
626
|
-
}
|
|
627
|
-
emitOutput('');
|
|
628
|
-
}
|
|
629
|
-
}
|
|
630
|
-
/**
|
|
631
|
-
* Clears authentication for a server.
|
|
632
|
-
*/
|
|
633
|
-
async function clearAuth(serverName) {
|
|
634
|
-
if (!serverName) {
|
|
635
|
-
emitOutput('');
|
|
636
|
-
emitOutput(chalk.yellow('Please specify a server name: /mcp clear-auth <server-name>'));
|
|
637
|
-
emitOutput('');
|
|
638
|
-
return;
|
|
639
|
-
}
|
|
640
|
-
try {
|
|
641
|
-
const oauthService = await getMCPOAuthService();
|
|
642
|
-
await oauthService.clearAuth(serverName);
|
|
643
|
-
emitOutput('');
|
|
644
|
-
emitOutput(chalk.green(`Cleared authentication for ${serverName}`));
|
|
645
|
-
emitOutput('');
|
|
646
|
-
}
|
|
647
|
-
catch (error) {
|
|
648
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
649
|
-
emitOutput(chalk.red(`Failed to clear auth: ${errorMessage}`));
|
|
650
|
-
emitOutput('');
|
|
651
|
-
}
|
|
652
|
-
}
|
|
653
|
-
/**
|
|
654
|
-
* Refreshes a server's tools/resources/prompts.
|
|
655
|
-
*/
|
|
656
|
-
async function refreshServer(serverName) {
|
|
657
|
-
if (!serverName) {
|
|
658
|
-
emitOutput('');
|
|
659
|
-
emitOutput(chalk.yellow('Please specify a server name: /mcp refresh <server-name>'));
|
|
660
|
-
emitOutput('');
|
|
661
|
-
return;
|
|
662
|
-
}
|
|
663
|
-
try {
|
|
664
|
-
const serverManager = getMCPServerManager();
|
|
665
|
-
await serverManager.refreshServer(serverName);
|
|
666
|
-
const state = serverManager.getServerState(serverName);
|
|
667
|
-
if (state) {
|
|
668
|
-
emitOutput('');
|
|
669
|
-
emitOutput(chalk.green(`Refreshed ${serverName}:`));
|
|
670
|
-
emitOutput(` ${chalk.gray('Tools:')} ${state.tools.length}`);
|
|
671
|
-
emitOutput(` ${chalk.gray('Resources:')} ${state.resources.length}`);
|
|
672
|
-
emitOutput(` ${chalk.gray('Prompts:')} ${state.prompts.length}`);
|
|
673
|
-
emitOutput('');
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
|
-
catch (error) {
|
|
677
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
678
|
-
emitOutput(chalk.red(`Failed to refresh: ${errorMessage}`));
|
|
679
|
-
emitOutput('');
|
|
680
|
-
}
|
|
681
|
-
}
|
|
682
|
-
/**
|
|
683
|
-
* Reconnects to a specific server.
|
|
684
|
-
* Useful for servers that failed to connect or had a timeout.
|
|
685
|
-
*/
|
|
686
|
-
async function reconnectServer(serverName) {
|
|
687
|
-
if (!serverName) {
|
|
688
|
-
emitOutput('');
|
|
689
|
-
emitOutput(chalk.yellow('Please specify a server name: /mcp reconnect <server-name>'));
|
|
690
|
-
emitOutput('');
|
|
691
|
-
// Show servers that might need reconnection
|
|
692
|
-
const serverManager = getMCPServerManager();
|
|
693
|
-
const states = serverManager.getAllServerStates();
|
|
694
|
-
const errorServers = states.filter(s => s.status === 'error');
|
|
695
|
-
if (errorServers.length > 0) {
|
|
696
|
-
emitOutput(chalk.gray('Servers with errors:'));
|
|
697
|
-
for (const state of errorServers) {
|
|
698
|
-
emitOutput(chalk.gray(` • ${state.config.name}: ${state.error || 'Unknown error'}`));
|
|
699
|
-
}
|
|
700
|
-
emitOutput('');
|
|
701
|
-
}
|
|
702
|
-
return;
|
|
703
|
-
}
|
|
704
|
-
const serverManager = getMCPServerManager();
|
|
705
|
-
const existingState = serverManager.getServerState(serverName);
|
|
706
|
-
if (!existingState) {
|
|
707
|
-
// Server not found in server manager - might need to load config
|
|
708
|
-
const configManager = getMCPConfigManager();
|
|
709
|
-
await configManager.load(process.cwd());
|
|
710
|
-
const server = configManager.getServer(serverName, process.cwd());
|
|
711
|
-
if (!server) {
|
|
712
|
-
emitOutput('');
|
|
713
|
-
emitOutput(chalk.red(`Server not found: ${serverName}`));
|
|
714
|
-
emitOutput('');
|
|
715
|
-
emitOutput(chalk.gray('Available servers:'));
|
|
716
|
-
const states = serverManager.getAllServerStates();
|
|
717
|
-
for (const state of states) {
|
|
718
|
-
emitOutput(chalk.gray(` • ${state.config.name}`));
|
|
719
|
-
}
|
|
720
|
-
emitOutput('');
|
|
721
|
-
return;
|
|
722
|
-
}
|
|
723
|
-
}
|
|
724
|
-
emitOutput('');
|
|
725
|
-
emitOutput(chalk.cyan(`Reconnecting to ${serverName}...`));
|
|
726
|
-
// Show helpful message for npx commands
|
|
727
|
-
const config = existingState?.config;
|
|
728
|
-
if (config && isMCPStdioConfig(config) && config.command === 'npx') {
|
|
729
|
-
emitOutput(chalk.gray('First run may take up to 60 seconds to download packages...'));
|
|
730
|
-
}
|
|
731
|
-
try {
|
|
732
|
-
const state = await serverManager.reconnectServer(serverName);
|
|
733
|
-
if (state.status === 'connected') {
|
|
734
|
-
emitOutput(chalk.green(`✓ Connected - ${state.tools.length} tool(s), ${state.resources.length} resource(s), ${state.prompts.length} prompt(s)`));
|
|
735
|
-
}
|
|
736
|
-
else if (state.status === 'error') {
|
|
737
|
-
emitOutput(chalk.red(`✗ Failed to connect: ${state.error || 'Unknown error'}`));
|
|
738
|
-
// Provide helpful hints based on error type
|
|
739
|
-
if (state.error?.includes('Port') && state.error?.includes('already in use')) {
|
|
740
|
-
emitOutput('');
|
|
741
|
-
emitOutput(chalk.yellow('Tip: A previous MCP server process may still be running.'));
|
|
742
|
-
emitOutput(chalk.gray(' Try waiting a few minutes for it to timeout, or:'));
|
|
743
|
-
emitOutput(chalk.gray(' Windows: netstat -ano | findstr <port> && taskkill /PID <pid> /F'));
|
|
744
|
-
emitOutput(chalk.gray(' macOS/Linux: lsof -i :<port> && kill -9 <pid>'));
|
|
745
|
-
}
|
|
746
|
-
else if (state.error?.includes('timeout')) {
|
|
747
|
-
emitOutput('');
|
|
748
|
-
emitOutput(chalk.yellow('Tip: The server took too long to respond.'));
|
|
749
|
-
emitOutput(chalk.gray(' Check if the remote service is available.'));
|
|
750
|
-
emitOutput(chalk.gray(' For npx commands, the first run downloads packages and may be slow.'));
|
|
751
|
-
}
|
|
752
|
-
else if (state.error?.includes('Authentication')) {
|
|
753
|
-
emitOutput('');
|
|
754
|
-
emitOutput(chalk.yellow('Tip: Authentication may be required.'));
|
|
755
|
-
emitOutput(chalk.gray(` Try: /mcp auth ${serverName}`));
|
|
756
|
-
}
|
|
757
|
-
}
|
|
758
|
-
else if (state.error) {
|
|
759
|
-
emitOutput(chalk.yellow(`⚠ ${state.error}`));
|
|
760
|
-
}
|
|
761
|
-
emitOutput('');
|
|
762
|
-
}
|
|
763
|
-
catch (error) {
|
|
764
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
765
|
-
emitOutput(chalk.red(`Failed to reconnect: ${errorMessage}`));
|
|
766
|
-
emitOutput('');
|
|
767
|
-
}
|
|
768
|
-
}
|
|
769
|
-
/**
|
|
770
|
-
* Approves a project-scoped MCP server.
|
|
771
|
-
*/
|
|
772
|
-
async function approveServer(serverName) {
|
|
773
|
-
if (!serverName) {
|
|
774
|
-
emitOutput('');
|
|
775
|
-
emitOutput(chalk.yellow('Please specify a server name: /mcp approve <server-name>'));
|
|
776
|
-
emitOutput('');
|
|
777
|
-
return;
|
|
778
|
-
}
|
|
779
|
-
try {
|
|
780
|
-
const configManager = getMCPConfigManager();
|
|
781
|
-
await configManager.load(process.cwd());
|
|
782
|
-
const server = configManager.getServer(serverName, process.cwd());
|
|
783
|
-
if (!server) {
|
|
784
|
-
emitOutput('');
|
|
785
|
-
emitOutput(chalk.red(`Server not found: ${serverName}`));
|
|
786
|
-
emitOutput('');
|
|
787
|
-
return;
|
|
788
|
-
}
|
|
789
|
-
if (server.scope !== 'project') {
|
|
790
|
-
emitOutput('');
|
|
791
|
-
emitOutput(chalk.yellow(`Server '${serverName}' is not a project-scoped server and doesn't require approval.`));
|
|
792
|
-
emitOutput('');
|
|
793
|
-
return;
|
|
794
|
-
}
|
|
795
|
-
// Generate config hash for change detection
|
|
796
|
-
const configHash = configManager.generateConfigHash(server);
|
|
797
|
-
await configManager.setProjectServerApproval(process.cwd(), serverName, true, configHash);
|
|
798
|
-
emitOutput('');
|
|
799
|
-
emitOutput(chalk.green(`Approved server '${serverName}'.`));
|
|
800
|
-
// Auto-connect to the server
|
|
801
|
-
try {
|
|
802
|
-
emitOutput(chalk.cyan('Connecting...'));
|
|
803
|
-
// Show helpful message for npx commands
|
|
804
|
-
if (isMCPStdioConfig(server) && server.command === 'npx') {
|
|
805
|
-
emitOutput(chalk.gray('First run may take up to 60 seconds to download packages...'));
|
|
806
|
-
}
|
|
807
|
-
const serverManager = getMCPServerManager();
|
|
808
|
-
const state = await serverManager.connectServer(serverName);
|
|
809
|
-
if (state.status === 'connected') {
|
|
810
|
-
emitOutput(chalk.green(`✓ Connected - ${state.tools.length} tool(s), ${state.resources.length} resource(s), ${state.prompts.length} prompt(s)`));
|
|
811
|
-
}
|
|
812
|
-
else if (state.error) {
|
|
813
|
-
emitOutput(chalk.yellow(`⚠ Connection issue: ${state.error}`));
|
|
814
|
-
emitOutput(chalk.gray('Use /mcp connect to retry.'));
|
|
815
|
-
}
|
|
816
|
-
}
|
|
817
|
-
catch (connectError) {
|
|
818
|
-
logger.warn(`Failed to auto-connect to '${serverName}'`, connectError);
|
|
819
|
-
emitOutput(chalk.yellow('⚠ Failed to connect. Use /mcp connect to retry.'));
|
|
820
|
-
}
|
|
821
|
-
emitOutput('');
|
|
822
|
-
}
|
|
823
|
-
catch (error) {
|
|
824
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
825
|
-
emitOutput(chalk.red(`Failed to approve: ${errorMessage}`));
|
|
826
|
-
emitOutput('');
|
|
827
|
-
}
|
|
828
|
-
}
|
|
829
|
-
/**
|
|
830
|
-
* Shows fallback information for a server with restricted OAuth.
|
|
831
|
-
*/
|
|
832
|
-
async function showFallback(serverName) {
|
|
833
|
-
if (!serverName) {
|
|
834
|
-
emitOutput('');
|
|
835
|
-
emitOutput(chalk.yellow('Please specify a server name: /mcp fallback <server-name>'));
|
|
836
|
-
emitOutput('');
|
|
837
|
-
return;
|
|
838
|
-
}
|
|
839
|
-
// Get server config
|
|
840
|
-
const serverManager = getMCPServerManager();
|
|
841
|
-
const serverState = serverManager.getServerState(serverName);
|
|
842
|
-
let server = serverState?.config;
|
|
843
|
-
if (!server) {
|
|
844
|
-
const configManager = getMCPConfigManager();
|
|
845
|
-
await configManager.load(process.cwd());
|
|
846
|
-
server = configManager.getServer(serverName, process.cwd());
|
|
847
|
-
}
|
|
848
|
-
if (!server) {
|
|
849
|
-
emitOutput('');
|
|
850
|
-
emitOutput(chalk.red(`Server not found: ${serverName}`));
|
|
851
|
-
emitOutput('');
|
|
852
|
-
return;
|
|
853
|
-
}
|
|
854
|
-
// Get server URL
|
|
855
|
-
let serverUrl;
|
|
856
|
-
if (isMCPHttpConfig(server) || isMCPSseConfig(server)) {
|
|
857
|
-
serverUrl = server.url;
|
|
858
|
-
}
|
|
859
|
-
if (!serverUrl) {
|
|
860
|
-
emitOutput('');
|
|
861
|
-
emitOutput(chalk.yellow(`Server '${serverName}' is not an HTTP/SSE server.`));
|
|
862
|
-
emitOutput(chalk.gray('Fallback information is only available for remote HTTP servers.'));
|
|
863
|
-
emitOutput('');
|
|
864
|
-
return;
|
|
865
|
-
}
|
|
866
|
-
const fallback = getFallbackConfig(serverUrl);
|
|
867
|
-
if (!fallback) {
|
|
868
|
-
emitOutput('');
|
|
869
|
-
emitOutput(chalk.green(`Server '${serverName}' does not have known OAuth restrictions.`));
|
|
870
|
-
emitOutput(chalk.gray('No fallback configuration is registered for this server.'));
|
|
871
|
-
emitOutput('');
|
|
872
|
-
return;
|
|
873
|
-
}
|
|
874
|
-
await displayFallbackInfo(serverUrl, serverName);
|
|
875
|
-
}
|
|
876
|
-
/**
|
|
877
|
-
* Denies a project-scoped MCP server.
|
|
878
|
-
*/
|
|
879
|
-
async function denyServer(serverName) {
|
|
880
|
-
if (!serverName) {
|
|
881
|
-
emitOutput('');
|
|
882
|
-
emitOutput(chalk.yellow('Please specify a server name: /mcp deny <server-name>'));
|
|
883
|
-
emitOutput('');
|
|
884
|
-
return;
|
|
885
|
-
}
|
|
886
|
-
try {
|
|
887
|
-
const configManager = getMCPConfigManager();
|
|
888
|
-
await configManager.load(process.cwd());
|
|
889
|
-
const server = configManager.getServer(serverName, process.cwd());
|
|
890
|
-
if (!server) {
|
|
891
|
-
emitOutput('');
|
|
892
|
-
emitOutput(chalk.red(`Server not found: ${serverName}`));
|
|
893
|
-
emitOutput('');
|
|
894
|
-
return;
|
|
895
|
-
}
|
|
896
|
-
await configManager.setProjectServerApproval(process.cwd(), serverName, false);
|
|
897
|
-
emitOutput('');
|
|
898
|
-
emitOutput(chalk.red(`Denied server '${serverName}'.`));
|
|
899
|
-
emitOutput(chalk.gray('This server will not be connected.'));
|
|
900
|
-
emitOutput('');
|
|
901
|
-
}
|
|
902
|
-
catch (error) {
|
|
903
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
904
|
-
emitOutput(chalk.red(`Failed to deny: ${errorMessage}`));
|
|
905
|
-
emitOutput('');
|
|
906
|
-
}
|
|
907
|
-
}
|
|
908
|
-
/**
|
|
909
|
-
* Handler function for the /mcp slash command.
|
|
910
|
-
*/
|
|
911
|
-
async function mcpCommandHandler(args) {
|
|
912
|
-
try {
|
|
913
|
-
const subcommand = args[0]?.toLowerCase();
|
|
914
|
-
const subArgs = args.slice(1);
|
|
915
|
-
switch (subcommand) {
|
|
916
|
-
case 'servers':
|
|
917
|
-
case 'list':
|
|
918
|
-
await listServers();
|
|
919
|
-
break;
|
|
920
|
-
case 'tools':
|
|
921
|
-
await listTools();
|
|
922
|
-
break;
|
|
923
|
-
case 'resources':
|
|
924
|
-
await listResources();
|
|
925
|
-
break;
|
|
926
|
-
case 'prompts':
|
|
927
|
-
await listPrompts();
|
|
928
|
-
break;
|
|
929
|
-
case 'connect':
|
|
930
|
-
await connectServers();
|
|
931
|
-
break;
|
|
932
|
-
case 'disconnect':
|
|
933
|
-
await disconnectServers();
|
|
934
|
-
break;
|
|
935
|
-
case 'auth':
|
|
936
|
-
case 'authenticate':
|
|
937
|
-
// Support: /mcp auth <server-name> [token]
|
|
938
|
-
await authenticateServer(subArgs[0], subArgs.slice(1).join(' ') || undefined);
|
|
939
|
-
break;
|
|
940
|
-
case 'clear-auth':
|
|
941
|
-
await clearAuth(subArgs[0]);
|
|
942
|
-
break;
|
|
943
|
-
case 'refresh':
|
|
944
|
-
await refreshServer(subArgs[0]);
|
|
945
|
-
break;
|
|
946
|
-
case 'reconnect':
|
|
947
|
-
case 'retry':
|
|
948
|
-
await reconnectServer(subArgs[0]);
|
|
949
|
-
break;
|
|
950
|
-
case 'approve':
|
|
951
|
-
await approveServer(subArgs[0]);
|
|
952
|
-
break;
|
|
953
|
-
case 'deny':
|
|
954
|
-
await denyServer(subArgs[0]);
|
|
955
|
-
break;
|
|
956
|
-
case 'fallback':
|
|
957
|
-
await showFallback(subArgs[0]);
|
|
958
|
-
break;
|
|
959
|
-
case 'help':
|
|
960
|
-
displayHelp();
|
|
961
|
-
break;
|
|
962
|
-
default:
|
|
963
|
-
await displayStatus();
|
|
964
|
-
break;
|
|
965
|
-
}
|
|
966
|
-
}
|
|
967
|
-
catch (error) {
|
|
968
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
969
|
-
logger.error('MCP command failed', error);
|
|
970
|
-
emitOutput('');
|
|
971
|
-
emitOutput(chalk.red(`Error: ${errorMessage}`));
|
|
972
|
-
emitOutput('');
|
|
973
|
-
}
|
|
974
|
-
}
|
|
975
|
-
/**
|
|
976
|
-
* Displays help for the /mcp command.
|
|
977
|
-
*/
|
|
978
|
-
function displayHelp() {
|
|
979
|
-
emitOutput('');
|
|
980
|
-
emitOutput(chalk.bold('MCP Command Help'));
|
|
981
|
-
emitOutput(chalk.dim('─'.repeat(50)));
|
|
982
|
-
emitOutput('');
|
|
983
|
-
emitOutput(chalk.white('/mcp') + chalk.gray(' - Show server status overview'));
|
|
984
|
-
emitOutput(chalk.white('/mcp servers') + chalk.gray(' - List all configured servers'));
|
|
985
|
-
emitOutput(chalk.white('/mcp tools') + chalk.gray(' - List available tools'));
|
|
986
|
-
emitOutput(chalk.white('/mcp resources') + chalk.gray(' - List available resources'));
|
|
987
|
-
emitOutput(chalk.white('/mcp prompts') + chalk.gray(' - List available prompts'));
|
|
988
|
-
emitOutput(chalk.white('/mcp connect') + chalk.gray(' - Connect to all servers'));
|
|
989
|
-
emitOutput(chalk.white('/mcp reconnect <name>') + chalk.gray(' - Reconnect to a specific server'));
|
|
990
|
-
emitOutput(chalk.white('/mcp disconnect') + chalk.gray(' - Disconnect from all servers'));
|
|
991
|
-
emitOutput(chalk.white('/mcp auth <name>') + chalk.gray(' - Start OAuth flow (if configured)'));
|
|
992
|
-
emitOutput(chalk.white('/mcp auth <name> <token>') + chalk.gray(' - Authenticate with API token'));
|
|
993
|
-
emitOutput(chalk.white('/mcp clear-auth <name>') + chalk.gray(' - Clear authentication'));
|
|
994
|
-
emitOutput(chalk.white('/mcp refresh <name>') + chalk.gray(' - Refresh server tools/resources'));
|
|
995
|
-
emitOutput(chalk.white('/mcp approve <name>') + chalk.gray(' - Approve a project-scoped server'));
|
|
996
|
-
emitOutput(chalk.white('/mcp deny <name>') + chalk.gray(' - Deny a project-scoped server'));
|
|
997
|
-
emitOutput(chalk.white('/mcp fallback <name>') + chalk.gray(' - Show fallback options for restricted servers'));
|
|
998
|
-
emitOutput('');
|
|
999
|
-
}
|
|
1000
|
-
/**
|
|
1001
|
-
* Slash command definition for /mcp.
|
|
1002
|
-
*/
|
|
1003
|
-
export const mcpCommand = {
|
|
1004
|
-
name: 'mcp',
|
|
1005
|
-
description: 'Manage MCP (Model Context Protocol) servers and view status',
|
|
1006
|
-
usage: '/mcp [subcommand]',
|
|
1007
|
-
examples: [
|
|
1008
|
-
'/mcp - Show server status overview',
|
|
1009
|
-
'/mcp servers - List all configured servers',
|
|
1010
|
-
'/mcp tools - List all available MCP tools',
|
|
1011
|
-
'/mcp connect - Connect to all configured servers',
|
|
1012
|
-
'/mcp reconnect clickup - Reconnect to a specific server',
|
|
1013
|
-
'/mcp auth figma - Start OAuth flow (if configured)',
|
|
1014
|
-
'/mcp auth figma <token> - Authenticate with API token',
|
|
1015
|
-
'/mcp fallback figma - Show fallback for restricted OAuth servers',
|
|
1016
|
-
],
|
|
1017
|
-
handler: mcpCommandHandler,
|
|
1018
|
-
};
|
|
1019
|
-
/**
|
|
1020
|
-
* Registers the /mcp command with the slash command handler.
|
|
1021
|
-
*/
|
|
1022
|
-
export function registerMCPCommand() {
|
|
1023
|
-
registerSlashCommand(mcpCommand);
|
|
1024
|
-
}
|
|
1025
|
-
export default mcpCommand;
|
|
1026
|
-
//# sourceMappingURL=mcp.js.map
|