@compass-ai/nova 1.0.74 → 1.0.75
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 +540 -538
- 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,750 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Conversation compaction service using Claude to intelligently summarize
|
|
3
|
-
* conversation history while preserving key decisions and context.
|
|
4
|
-
*
|
|
5
|
-
* This module provides functionality to reduce token usage by compacting
|
|
6
|
-
* long conversation histories into concise summaries that retain essential
|
|
7
|
-
* information for continued development assistance.
|
|
8
|
-
*/
|
|
9
|
-
import { getAnthropicClient } from './anthropic-client.js';
|
|
10
|
-
import { getSessionManager } from './session-manager.js';
|
|
11
|
-
import { getTokenTracker } from './token-tracker.js';
|
|
12
|
-
import { logger } from '../utils/logger.js';
|
|
13
|
-
import { estimateTokens } from '../utils/token-counter.js';
|
|
14
|
-
import { formatTimestamp } from '../utils/format.js';
|
|
15
|
-
import { AUTO_COMPACT_TRIGGER, COMPACTION_MODEL } from '../constants/defaults.js';
|
|
16
|
-
import { getSystemEventLogger } from './system-event-logger.js';
|
|
17
|
-
import { CONVERSATION_COMPACTION_SYSTEM_PROMPT, PLAN_APPROVAL_COMPACTION_SYSTEM_PROMPT } from '../prompts/index.js';
|
|
18
|
-
/**
|
|
19
|
-
* Default compaction options
|
|
20
|
-
*/
|
|
21
|
-
const DEFAULT_COMPACTION_OPTIONS = {
|
|
22
|
-
maxSummaryTokens: 2000,
|
|
23
|
-
minMessagesForCompaction: 10,
|
|
24
|
-
preserveRecentMessages: 2,
|
|
25
|
-
customPrompt: '',
|
|
26
|
-
includeCodeSnippets: true,
|
|
27
|
-
includeFilePaths: true,
|
|
28
|
-
};
|
|
29
|
-
// COMPACTION_SYSTEM_PROMPT imported from '../prompts/index.js'
|
|
30
|
-
// Local alias for backward compatibility
|
|
31
|
-
const COMPACTION_SYSTEM_PROMPT = CONVERSATION_COMPACTION_SYSTEM_PROMPT;
|
|
32
|
-
/**
|
|
33
|
-
* ConversationCompactor class provides intelligent conversation summarization
|
|
34
|
-
* using Claude to reduce token usage while preserving essential context.
|
|
35
|
-
*/
|
|
36
|
-
class ConversationCompactor {
|
|
37
|
-
client = null;
|
|
38
|
-
autoCompactThreshold;
|
|
39
|
-
constructor(autoCompactThreshold) {
|
|
40
|
-
this.autoCompactThreshold = autoCompactThreshold ?? AUTO_COMPACT_TRIGGER;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Initializes the compactor with an Anthropic client
|
|
44
|
-
*/
|
|
45
|
-
async initialize() {
|
|
46
|
-
try {
|
|
47
|
-
this.client = await getAnthropicClient();
|
|
48
|
-
if (!this.client.isInitialized()) {
|
|
49
|
-
const initialized = await this.client.initialize();
|
|
50
|
-
if (!initialized) {
|
|
51
|
-
logger.warn('Failed to initialize Anthropic client for compaction');
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
logger.error('Failed to initialize conversation compactor', error);
|
|
59
|
-
return false;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Compacts a conversation history into a summary
|
|
64
|
-
*
|
|
65
|
-
* @param messages - Array of conversation messages to compact
|
|
66
|
-
* @param options - Compaction options
|
|
67
|
-
* @returns CompactionResult with the summary and statistics
|
|
68
|
-
*/
|
|
69
|
-
async compact(messages, options = {}) {
|
|
70
|
-
const opts = { ...DEFAULT_COMPACTION_OPTIONS, ...options };
|
|
71
|
-
// Validate minimum messages
|
|
72
|
-
if (messages.length < opts.minMessagesForCompaction) {
|
|
73
|
-
throw new Error(`Not enough messages to compact. Minimum required: ${opts.minMessagesForCompaction}, got: ${messages.length}`);
|
|
74
|
-
}
|
|
75
|
-
// Ensure client is initialized
|
|
76
|
-
if (!this.client) {
|
|
77
|
-
const initialized = await this.initialize();
|
|
78
|
-
if (!initialized) {
|
|
79
|
-
throw new Error('Failed to initialize Anthropic client for compaction');
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
// Separate messages to compact from recent messages to preserve
|
|
83
|
-
const messagesToCompact = messages.slice(0, -opts.preserveRecentMessages);
|
|
84
|
-
// Calculate tokens before compaction
|
|
85
|
-
const tokensBefore = this.calculateMessageTokens(messagesToCompact);
|
|
86
|
-
// Build the compaction prompt
|
|
87
|
-
const compactionPrompt = this.buildCompactionPrompt(messagesToCompact, opts);
|
|
88
|
-
// Generate summary using Claude
|
|
89
|
-
const systemPrompt = opts.customPrompt || COMPACTION_SYSTEM_PROMPT;
|
|
90
|
-
logger.debug(`Compacting ${messagesToCompact.length} messages (${tokensBefore} tokens)`);
|
|
91
|
-
try {
|
|
92
|
-
const result = await this.client.sendMessage([{ role: 'user', content: compactionPrompt }], {
|
|
93
|
-
system: systemPrompt,
|
|
94
|
-
maxTokens: opts.maxSummaryTokens,
|
|
95
|
-
temperature: 0.3, // Lower temperature for more consistent summaries
|
|
96
|
-
model: COMPACTION_MODEL, // Use Haiku for cost efficiency - 12-60x cheaper
|
|
97
|
-
callType: 'compaction', // Tag as compaction for cost tracking
|
|
98
|
-
});
|
|
99
|
-
const summary = result.content.trim();
|
|
100
|
-
const tokensAfter = estimateTokens(summary);
|
|
101
|
-
const tokensSaved = tokensBefore - tokensAfter;
|
|
102
|
-
const savingsPercent = Math.round((tokensSaved / tokensBefore) * 100);
|
|
103
|
-
const compactionResult = {
|
|
104
|
-
summary,
|
|
105
|
-
messagesCompacted: messagesToCompact.length,
|
|
106
|
-
tokensBefore,
|
|
107
|
-
tokensAfter,
|
|
108
|
-
tokensSaved,
|
|
109
|
-
savingsPercent,
|
|
110
|
-
timestamp: formatTimestamp(),
|
|
111
|
-
apiUsage: result.usage,
|
|
112
|
-
};
|
|
113
|
-
logger.info(`Compacted ${messagesToCompact.length} messages: ${tokensBefore} → ${tokensAfter} tokens (${savingsPercent}% saved)`);
|
|
114
|
-
// Log the compaction event
|
|
115
|
-
const systemEventLogger = getSystemEventLogger();
|
|
116
|
-
await systemEventLogger.logContextCompacted({
|
|
117
|
-
contextType: 'conversation',
|
|
118
|
-
messageCount: messagesToCompact.length,
|
|
119
|
-
tokenCount: tokensBefore,
|
|
120
|
-
compactionRatio: savingsPercent / 100,
|
|
121
|
-
});
|
|
122
|
-
return compactionResult;
|
|
123
|
-
}
|
|
124
|
-
catch (error) {
|
|
125
|
-
logger.error('Failed to compact conversation', error);
|
|
126
|
-
throw error;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Compacts the current session's conversation history
|
|
131
|
-
*
|
|
132
|
-
* @param options - Compaction options
|
|
133
|
-
* @returns CompactionResult with the summary and statistics
|
|
134
|
-
*/
|
|
135
|
-
async compactCurrentSession(options = {}) {
|
|
136
|
-
const sessionManager = getSessionManager();
|
|
137
|
-
const session = sessionManager.getSession();
|
|
138
|
-
if (!session) {
|
|
139
|
-
throw new Error('No active session to compact');
|
|
140
|
-
}
|
|
141
|
-
const messages = session.state.conversationHistory;
|
|
142
|
-
const result = await this.compact(messages, options);
|
|
143
|
-
// Update session with compacted summary
|
|
144
|
-
sessionManager.setCompactedSummary(result.summary);
|
|
145
|
-
// Track the compaction in token usage
|
|
146
|
-
try {
|
|
147
|
-
const tokenTracker = await getTokenTracker();
|
|
148
|
-
await tokenTracker.recordUsage(this.client?.getCurrentModelId() || 'unknown', result.apiUsage, 'conversation_compaction');
|
|
149
|
-
}
|
|
150
|
-
catch (trackingError) {
|
|
151
|
-
logger.debug('Failed to track compaction token usage', trackingError);
|
|
152
|
-
}
|
|
153
|
-
return result;
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Checks if the current session should be auto-compacted based on token usage
|
|
157
|
-
*
|
|
158
|
-
* @returns True if auto-compaction is recommended
|
|
159
|
-
*/
|
|
160
|
-
async shouldAutoCompact() {
|
|
161
|
-
const sessionManager = getSessionManager();
|
|
162
|
-
const session = sessionManager.getSession();
|
|
163
|
-
if (!session) {
|
|
164
|
-
logger.debug('Compaction check: no active session');
|
|
165
|
-
return false;
|
|
166
|
-
}
|
|
167
|
-
const messages = session.state.conversationHistory;
|
|
168
|
-
// Don't compact if already compacted (has summary and few messages)
|
|
169
|
-
if (session.state.compactedSummary && messages.length < 10) {
|
|
170
|
-
logger.debug(`Compaction check: skipped - already compacted with ${messages.length} messages`);
|
|
171
|
-
return false;
|
|
172
|
-
}
|
|
173
|
-
// Use the synced estimated context tokens if available (more accurate during agentic loops)
|
|
174
|
-
// Fall back to calculating from session history if not set
|
|
175
|
-
const estimatedContextTokens = sessionManager.getEstimatedContextTokens();
|
|
176
|
-
const historyTokens = this.calculateMessageTokens(messages);
|
|
177
|
-
const totalTokens = estimatedContextTokens > 0 ? Math.max(estimatedContextTokens, historyTokens) : historyTokens;
|
|
178
|
-
const shouldCompact = totalTokens >= this.autoCompactThreshold;
|
|
179
|
-
logger.debug(`Compaction check: ${totalTokens.toLocaleString()} tokens ` +
|
|
180
|
-
`(estimated=${estimatedContextTokens.toLocaleString()}, history=${historyTokens.toLocaleString()}) ` +
|
|
181
|
-
`vs ${this.autoCompactThreshold.toLocaleString()} threshold ` +
|
|
182
|
-
`(${messages.length} messages) -> ${shouldCompact ? 'TRIGGER' : 'skip'}`);
|
|
183
|
-
return shouldCompact;
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Performs auto-compaction if the threshold is exceeded
|
|
187
|
-
*
|
|
188
|
-
* @param options - Compaction options
|
|
189
|
-
* @returns CompactionResult if compaction was performed, null otherwise
|
|
190
|
-
*/
|
|
191
|
-
async autoCompactIfNeeded(options = {}) {
|
|
192
|
-
const shouldCompact = await this.shouldAutoCompact();
|
|
193
|
-
if (!shouldCompact) {
|
|
194
|
-
return null;
|
|
195
|
-
}
|
|
196
|
-
logger.info('Auto-compaction triggered due to token threshold');
|
|
197
|
-
return this.compactCurrentSession(options);
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Sets the auto-compact threshold
|
|
201
|
-
*
|
|
202
|
-
* @param threshold - Token count threshold for auto-compaction
|
|
203
|
-
*/
|
|
204
|
-
setAutoCompactThreshold(threshold) {
|
|
205
|
-
this.autoCompactThreshold = threshold;
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Gets the current auto-compact threshold
|
|
209
|
-
*
|
|
210
|
-
* @returns The current threshold value
|
|
211
|
-
*/
|
|
212
|
-
getAutoCompactThreshold() {
|
|
213
|
-
return this.autoCompactThreshold;
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Estimates the token savings from compacting the given messages
|
|
217
|
-
*
|
|
218
|
-
* @param messages - Messages to estimate compaction for
|
|
219
|
-
* @returns Estimated token savings
|
|
220
|
-
*/
|
|
221
|
-
estimateSavings(messages) {
|
|
222
|
-
const currentTokens = this.calculateMessageTokens(messages);
|
|
223
|
-
// Estimate summary will be roughly 10-20% of original
|
|
224
|
-
// This is a heuristic based on typical compaction ratios
|
|
225
|
-
const compressionRatio = 0.15;
|
|
226
|
-
const estimatedAfter = Math.ceil(currentTokens * compressionRatio);
|
|
227
|
-
const estimatedSavings = currentTokens - estimatedAfter;
|
|
228
|
-
const estimatedSavingsPercent = Math.round((estimatedSavings / currentTokens) * 100);
|
|
229
|
-
return {
|
|
230
|
-
currentTokens,
|
|
231
|
-
estimatedAfter,
|
|
232
|
-
estimatedSavings,
|
|
233
|
-
estimatedSavingsPercent,
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* Formats a compacted summary for display
|
|
238
|
-
*
|
|
239
|
-
* @param result - The compaction result
|
|
240
|
-
* @returns Formatted string for display
|
|
241
|
-
*/
|
|
242
|
-
formatCompactionSummary(result) {
|
|
243
|
-
const lines = [
|
|
244
|
-
'📦 Conversation Compacted',
|
|
245
|
-
'',
|
|
246
|
-
`Messages compacted: ${result.messagesCompacted}`,
|
|
247
|
-
`Tokens before: ${result.tokensBefore.toLocaleString()}`,
|
|
248
|
-
`Tokens after: ${result.tokensAfter.toLocaleString()}`,
|
|
249
|
-
`Tokens saved: ${result.tokensSaved.toLocaleString()} (${result.savingsPercent}%)`,
|
|
250
|
-
'',
|
|
251
|
-
'─'.repeat(50),
|
|
252
|
-
'',
|
|
253
|
-
result.summary,
|
|
254
|
-
];
|
|
255
|
-
return lines.join('\n');
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Builds the prompt for compaction
|
|
259
|
-
*/
|
|
260
|
-
buildCompactionPrompt(messages, options) {
|
|
261
|
-
const parts = [
|
|
262
|
-
'Please summarize the following conversation history between a user and Compass (an AI development assistant).',
|
|
263
|
-
'',
|
|
264
|
-
'Focus on preserving:',
|
|
265
|
-
'- Key decisions and their rationale',
|
|
266
|
-
'- Code changes and file modifications',
|
|
267
|
-
'- Technical requirements and constraints',
|
|
268
|
-
'- Current project state and pending tasks',
|
|
269
|
-
];
|
|
270
|
-
if (options.includeCodeSnippets) {
|
|
271
|
-
parts.push('- Important code snippets that provide essential context');
|
|
272
|
-
}
|
|
273
|
-
if (options.includeFilePaths) {
|
|
274
|
-
parts.push('- File paths that were discussed or modified');
|
|
275
|
-
}
|
|
276
|
-
parts.push('');
|
|
277
|
-
parts.push('---');
|
|
278
|
-
parts.push('CONVERSATION HISTORY:');
|
|
279
|
-
parts.push('---');
|
|
280
|
-
parts.push('');
|
|
281
|
-
// Format messages for the prompt
|
|
282
|
-
for (const message of messages) {
|
|
283
|
-
const role = message.role === 'user' ? 'User' : 'Compass';
|
|
284
|
-
const timestamp = message.timestamp ? ` [${message.timestamp}]` : '';
|
|
285
|
-
parts.push(`**${role}**${timestamp}:`);
|
|
286
|
-
parts.push(message.content);
|
|
287
|
-
parts.push('');
|
|
288
|
-
}
|
|
289
|
-
parts.push('---');
|
|
290
|
-
parts.push('');
|
|
291
|
-
parts.push('Please provide a structured summary that captures all essential information needed to continue this development session effectively.');
|
|
292
|
-
return parts.join('\n');
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Calculates the total token count for an array of messages
|
|
296
|
-
*/
|
|
297
|
-
calculateMessageTokens(messages) {
|
|
298
|
-
// Use the message token counts if available, otherwise estimate
|
|
299
|
-
let total = 0;
|
|
300
|
-
for (const message of messages) {
|
|
301
|
-
if (message.tokenCount !== undefined) {
|
|
302
|
-
total += message.tokenCount;
|
|
303
|
-
}
|
|
304
|
-
else {
|
|
305
|
-
total += estimateTokens(message.content);
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
// Add overhead for message structure
|
|
309
|
-
total += messages.length * 4;
|
|
310
|
-
return total;
|
|
311
|
-
}
|
|
312
|
-
/**
|
|
313
|
-
* Extracts key information from messages for quick reference
|
|
314
|
-
*/
|
|
315
|
-
extractKeyInfo(messages) {
|
|
316
|
-
const filesModified = new Set();
|
|
317
|
-
let decisionsCount = 0;
|
|
318
|
-
let codeBlocksCount = 0;
|
|
319
|
-
// Patterns to detect file paths
|
|
320
|
-
const filePathPattern = /(?:^|\s)([a-zA-Z0-9_\-./]+\.[a-zA-Z0-9]+)(?:\s|$|:|\))/g;
|
|
321
|
-
const codeBlockPattern = /```[\s\S]*?```/g;
|
|
322
|
-
const decisionPatterns = [
|
|
323
|
-
/\b(?:decided|decision|chose|choosing|will use|going with|opted for)\b/i,
|
|
324
|
-
/\b(?:let's|we should|I recommend|the approach)\b/i,
|
|
325
|
-
];
|
|
326
|
-
for (const message of messages) {
|
|
327
|
-
const content = message.content;
|
|
328
|
-
// Extract file paths
|
|
329
|
-
const fileMatches = content.matchAll(filePathPattern);
|
|
330
|
-
for (const match of fileMatches) {
|
|
331
|
-
const filePath = match[1];
|
|
332
|
-
// Filter out common false positives
|
|
333
|
-
if (filePath.includes('/') ||
|
|
334
|
-
filePath.match(/\.(ts|js|tsx|jsx|py|go|rs|java|json|yaml|yml|md|css|html)$/)) {
|
|
335
|
-
filesModified.add(filePath);
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
// Count code blocks
|
|
339
|
-
const codeBlocks = content.match(codeBlockPattern);
|
|
340
|
-
if (codeBlocks) {
|
|
341
|
-
codeBlocksCount += codeBlocks.length;
|
|
342
|
-
}
|
|
343
|
-
// Count decisions (rough heuristic)
|
|
344
|
-
for (const pattern of decisionPatterns) {
|
|
345
|
-
if (pattern.test(content)) {
|
|
346
|
-
decisionsCount++;
|
|
347
|
-
break;
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
return {
|
|
352
|
-
filesModified: Array.from(filesModified),
|
|
353
|
-
decisionsCount,
|
|
354
|
-
codeBlocksCount,
|
|
355
|
-
};
|
|
356
|
-
}
|
|
357
|
-
/**
|
|
358
|
-
* Compacts an array of API messages (Message[] format used in agentic loops).
|
|
359
|
-
* This handles the complex content blocks from Anthropic API format.
|
|
360
|
-
*
|
|
361
|
-
* @param messages - Array of API messages to compact
|
|
362
|
-
* @param preserveRecentCount - Number of recent messages to preserve uncompacted (default: 4)
|
|
363
|
-
* @param maxSummaryTokens - Maximum tokens for the summary (default: 3000)
|
|
364
|
-
* @returns Object with the summary and the reconstructed messages array
|
|
365
|
-
*/
|
|
366
|
-
async compactApiMessages(messages, preserveRecentCount = 4, maxSummaryTokens = 3000, systemPrompt) {
|
|
367
|
-
// Ensure client is initialized
|
|
368
|
-
if (!this.client) {
|
|
369
|
-
const initialized = await this.initialize();
|
|
370
|
-
if (!initialized) {
|
|
371
|
-
throw new Error('Failed to initialize Anthropic client for compaction');
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
// Keep first message (original user request) and recent messages
|
|
375
|
-
// Validate preserveRecentCount to avoid invalid slice ranges
|
|
376
|
-
let actualPreserveCount = Math.min(preserveRecentCount, Math.max(0, messages.length - 2));
|
|
377
|
-
// Ensure the preserved boundary doesn't split a tool_use/tool_result pair.
|
|
378
|
-
// If the first preserved message is a user message with tool_result blocks,
|
|
379
|
-
// its matching assistant tool_use message was compacted away — bump the count
|
|
380
|
-
// to include the preceding assistant message.
|
|
381
|
-
if (actualPreserveCount > 0 && actualPreserveCount < messages.length - 1) {
|
|
382
|
-
const firstPreserved = messages[messages.length - actualPreserveCount];
|
|
383
|
-
const hasToolResults = firstPreserved.role === 'user' &&
|
|
384
|
-
Array.isArray(firstPreserved.content) &&
|
|
385
|
-
firstPreserved.content.some((block) => block.type === 'tool_result');
|
|
386
|
-
if (hasToolResults) {
|
|
387
|
-
actualPreserveCount = Math.min(actualPreserveCount + 1, messages.length - 2);
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
if (actualPreserveCount < 1) {
|
|
391
|
-
// Not enough messages to preserve anything meaningful
|
|
392
|
-
return {
|
|
393
|
-
summary: '',
|
|
394
|
-
compactedMessages: messages,
|
|
395
|
-
tokensBefore: this.estimateApiMessageTokens(messages),
|
|
396
|
-
tokensAfter: this.estimateApiMessageTokens(messages),
|
|
397
|
-
messagesCompacted: 0,
|
|
398
|
-
};
|
|
399
|
-
}
|
|
400
|
-
const originalFirstMessage = messages[0];
|
|
401
|
-
// Filter out old compaction summaries — they'll be replaced by the new one.
|
|
402
|
-
// For messages that are fully summary-only, remove them entirely.
|
|
403
|
-
// For messages that contain a summary mixed with other content (e.g., plan context
|
|
404
|
-
// appended by reinjectPlanContextAfterCompaction), strip the summary portion but
|
|
405
|
-
// preserve any non-summary content like [ACTIVE PLAN CONTEXT blocks.
|
|
406
|
-
const isSummaryMessage = (msg) => msg.role === 'user' &&
|
|
407
|
-
typeof msg.content === 'string' &&
|
|
408
|
-
msg.content.includes('[CONTEXT SUMMARY');
|
|
409
|
-
const stripStaleSummaryContent = (msg) => {
|
|
410
|
-
if (!isSummaryMessage(msg))
|
|
411
|
-
return msg;
|
|
412
|
-
const content = msg.content;
|
|
413
|
-
// Check if there's plan context or other non-summary content appended after the summary
|
|
414
|
-
const planContextMatch = content.match(/(\[ACTIVE PLAN CONTEXT[\s\S]*)/);
|
|
415
|
-
if (planContextMatch) {
|
|
416
|
-
// Preserve the plan context portion, discard the stale summary
|
|
417
|
-
return { ...msg, content: planContextMatch[1] };
|
|
418
|
-
}
|
|
419
|
-
// Pure summary message — remove entirely
|
|
420
|
-
return null;
|
|
421
|
-
};
|
|
422
|
-
const rawMessagesToCompact = messages.slice(1, -actualPreserveCount);
|
|
423
|
-
const messagesToCompact = rawMessagesToCompact.filter(msg => !isSummaryMessage(msg));
|
|
424
|
-
const recentMessages = messages.slice(-actualPreserveCount)
|
|
425
|
-
.map(stripStaleSummaryContent)
|
|
426
|
-
.filter((msg) => msg !== null);
|
|
427
|
-
if (messagesToCompact.length < 3) {
|
|
428
|
-
// Not enough to compact - return as is
|
|
429
|
-
return {
|
|
430
|
-
summary: '',
|
|
431
|
-
compactedMessages: messages,
|
|
432
|
-
tokensBefore: this.estimateApiMessageTokens(messages),
|
|
433
|
-
tokensAfter: this.estimateApiMessageTokens(messages),
|
|
434
|
-
messagesCompacted: 0,
|
|
435
|
-
};
|
|
436
|
-
}
|
|
437
|
-
const tokensBefore = this.estimateApiMessageTokens(messages);
|
|
438
|
-
// Convert API messages to text for summarization
|
|
439
|
-
const formattedHistory = this.formatApiMessagesForCompaction(messagesToCompact);
|
|
440
|
-
logger.debug(`Compacting ${messagesToCompact.length} API messages (${tokensBefore} tokens estimated)`);
|
|
441
|
-
const compactionPrompt = `Please summarize the following conversation history between a user and an AI development assistant.
|
|
442
|
-
|
|
443
|
-
Focus on preserving:
|
|
444
|
-
- Key decisions and their rationale
|
|
445
|
-
- Code changes and file modifications made
|
|
446
|
-
- Technical requirements and constraints discussed
|
|
447
|
-
- Current task state and any pending work
|
|
448
|
-
- Important file paths that were modified or discussed
|
|
449
|
-
- Any errors encountered and their resolutions
|
|
450
|
-
- Active plan IDs and task IDs VERBATIM (e.g., plan ID, task-1, task-2) — these reference on-disk state and must be preserved exactly
|
|
451
|
-
|
|
452
|
-
---
|
|
453
|
-
CONVERSATION HISTORY TO SUMMARIZE:
|
|
454
|
-
---
|
|
455
|
-
|
|
456
|
-
${formattedHistory}
|
|
457
|
-
|
|
458
|
-
---
|
|
459
|
-
|
|
460
|
-
Provide a structured, concise summary that captures all essential information needed to continue this development session effectively. Include specific file paths, code patterns, and decisions made.`;
|
|
461
|
-
try {
|
|
462
|
-
const effectiveSystemPrompt = systemPrompt || COMPACTION_SYSTEM_PROMPT;
|
|
463
|
-
const result = await this.client.sendMessage([{ role: 'user', content: compactionPrompt }], {
|
|
464
|
-
system: effectiveSystemPrompt,
|
|
465
|
-
maxTokens: maxSummaryTokens,
|
|
466
|
-
temperature: 0.3,
|
|
467
|
-
model: COMPACTION_MODEL, // Use Haiku for cost efficiency - 12-60x cheaper
|
|
468
|
-
callType: 'compaction', // Tag as compaction for cost tracking
|
|
469
|
-
});
|
|
470
|
-
const summary = result.content.trim();
|
|
471
|
-
// Validate summary is not empty
|
|
472
|
-
if (!summary) {
|
|
473
|
-
logger.warn('Compaction resulted in empty summary, returning original messages');
|
|
474
|
-
return {
|
|
475
|
-
summary: '',
|
|
476
|
-
compactedMessages: messages,
|
|
477
|
-
tokensBefore,
|
|
478
|
-
tokensAfter: tokensBefore,
|
|
479
|
-
messagesCompacted: 0,
|
|
480
|
-
};
|
|
481
|
-
}
|
|
482
|
-
// Reconstruct messages with summary injected
|
|
483
|
-
const compactedMessages = [
|
|
484
|
-
originalFirstMessage,
|
|
485
|
-
{
|
|
486
|
-
role: 'user',
|
|
487
|
-
content: `[CONTEXT SUMMARY - Previous ${messagesToCompact.length} messages compacted]\n\n${summary}\n\n[END SUMMARY - Continue from recent context below]`,
|
|
488
|
-
},
|
|
489
|
-
...recentMessages,
|
|
490
|
-
];
|
|
491
|
-
const tokensAfter = this.estimateApiMessageTokens(compactedMessages);
|
|
492
|
-
logger.info(`Compacted ${messagesToCompact.length} API messages: ${tokensBefore} → ${tokensAfter} tokens (${Math.round(((tokensBefore - tokensAfter) / tokensBefore) * 100)}% saved)`);
|
|
493
|
-
// Log the compaction event
|
|
494
|
-
const systemEventLogger = getSystemEventLogger();
|
|
495
|
-
await systemEventLogger.logContextCompacted({
|
|
496
|
-
contextType: 'conversation',
|
|
497
|
-
messageCount: messagesToCompact.length,
|
|
498
|
-
tokenCount: tokensBefore,
|
|
499
|
-
compactionRatio: (tokensBefore - tokensAfter) / tokensBefore,
|
|
500
|
-
});
|
|
501
|
-
return {
|
|
502
|
-
summary,
|
|
503
|
-
compactedMessages,
|
|
504
|
-
tokensBefore,
|
|
505
|
-
tokensAfter,
|
|
506
|
-
messagesCompacted: messagesToCompact.length,
|
|
507
|
-
};
|
|
508
|
-
}
|
|
509
|
-
catch (error) {
|
|
510
|
-
logger.error('Failed to compact API messages', error);
|
|
511
|
-
throw error;
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
/**
|
|
515
|
-
* Compacts API messages specifically for plan approval transitions.
|
|
516
|
-
* Uses a plan-focused summarization prompt that preserves architectural decisions
|
|
517
|
-
* and file paths while discarding raw exploration data (file contents, grep results).
|
|
518
|
-
*
|
|
519
|
-
* @param messages - Array of API messages to compact
|
|
520
|
-
* @param preserveRecentCount - Number of recent messages to preserve (default: 3)
|
|
521
|
-
* @param maxSummaryTokens - Maximum tokens for the summary (default: 3000)
|
|
522
|
-
* @returns Object with the summary and the reconstructed messages array
|
|
523
|
-
*/
|
|
524
|
-
async compactForPlanApproval(messages, preserveRecentCount = 3, maxSummaryTokens = 3000) {
|
|
525
|
-
return this.compactApiMessages(messages, preserveRecentCount, maxSummaryTokens, PLAN_APPROVAL_COMPACTION_SYSTEM_PROMPT);
|
|
526
|
-
}
|
|
527
|
-
/**
|
|
528
|
-
* Estimates token count for API Message[] array
|
|
529
|
-
*/
|
|
530
|
-
estimateApiMessageTokens(messages) {
|
|
531
|
-
let total = 0;
|
|
532
|
-
const MESSAGE_OVERHEAD = 4;
|
|
533
|
-
for (const message of messages) {
|
|
534
|
-
total += MESSAGE_OVERHEAD;
|
|
535
|
-
if (typeof message.content === 'string') {
|
|
536
|
-
total += estimateTokens(message.content);
|
|
537
|
-
}
|
|
538
|
-
else if (Array.isArray(message.content)) {
|
|
539
|
-
for (const block of message.content) {
|
|
540
|
-
total += this.estimateContentBlockTokens(block);
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
}
|
|
544
|
-
return total;
|
|
545
|
-
}
|
|
546
|
-
/**
|
|
547
|
-
* Estimates tokens for a single content block
|
|
548
|
-
*/
|
|
549
|
-
estimateContentBlockTokens(block) {
|
|
550
|
-
const BLOCK_OVERHEAD = 10; // JSON structure overhead
|
|
551
|
-
switch (block.type) {
|
|
552
|
-
case 'text':
|
|
553
|
-
return BLOCK_OVERHEAD + estimateTokens(block.text || '');
|
|
554
|
-
case 'tool_use':
|
|
555
|
-
return BLOCK_OVERHEAD + estimateTokens(block.name || '') +
|
|
556
|
-
estimateTokens(typeof block.input === 'string' ? block.input : JSON.stringify(block.input || {}));
|
|
557
|
-
case 'tool_result':
|
|
558
|
-
if (typeof block.content === 'string') {
|
|
559
|
-
return BLOCK_OVERHEAD + estimateTokens(block.content);
|
|
560
|
-
}
|
|
561
|
-
else if (Array.isArray(block.content)) {
|
|
562
|
-
return BLOCK_OVERHEAD + block.content.reduce((sum, c) => sum + estimateTokens(typeof c === 'string' ? c : (c.text || '')), 0);
|
|
563
|
-
}
|
|
564
|
-
return BLOCK_OVERHEAD;
|
|
565
|
-
default:
|
|
566
|
-
return BLOCK_OVERHEAD;
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
/**
|
|
570
|
-
* Formats API messages into a text representation for compaction.
|
|
571
|
-
* Empty tool results (no matches, no files found) are stripped from the
|
|
572
|
-
* per-message output and replaced with a single terse summary line at the
|
|
573
|
-
* top, saving significant tokens when the LLM performed many exploratory
|
|
574
|
-
* searches that returned nothing.
|
|
575
|
-
*/
|
|
576
|
-
formatApiMessagesForCompaction(messages) {
|
|
577
|
-
// Pre-scan: identify tool_use IDs whose results were empty
|
|
578
|
-
const emptyToolIds = this.collectEmptyToolResultIds(messages);
|
|
579
|
-
const parts = [];
|
|
580
|
-
// Emit a compact summary of all empty searches at the top
|
|
581
|
-
if (emptyToolIds.size > 0) {
|
|
582
|
-
const emptySearches = [];
|
|
583
|
-
for (const msg of messages) {
|
|
584
|
-
if (msg.role !== 'assistant' || !Array.isArray(msg.content))
|
|
585
|
-
continue;
|
|
586
|
-
for (const block of msg.content) {
|
|
587
|
-
if (block.type === 'tool_use' && block.id && emptyToolIds.has(block.id)) {
|
|
588
|
-
const input = block.input;
|
|
589
|
-
const pattern = input?.pattern || input?.path || '';
|
|
590
|
-
const shortPattern = pattern.length > 80 ? pattern.substring(0, 80) + '…' : pattern;
|
|
591
|
-
emptySearches.push(`${block.name || 'tool'}("${shortPattern}")`);
|
|
592
|
-
}
|
|
593
|
-
}
|
|
594
|
-
}
|
|
595
|
-
if (emptySearches.length > 0) {
|
|
596
|
-
parts.push(`[${emptySearches.length} tool calls returned no results: ${emptySearches.join('; ')}]`);
|
|
597
|
-
parts.push('');
|
|
598
|
-
}
|
|
599
|
-
}
|
|
600
|
-
for (const message of messages) {
|
|
601
|
-
const role = message.role === 'user' ? 'User' : 'Assistant';
|
|
602
|
-
if (typeof message.content === 'string') {
|
|
603
|
-
parts.push(`**${role}**:`);
|
|
604
|
-
parts.push(message.content);
|
|
605
|
-
parts.push('');
|
|
606
|
-
}
|
|
607
|
-
else if (Array.isArray(message.content)) {
|
|
608
|
-
// Filter out blocks belonging to empty tool pairs
|
|
609
|
-
const filteredBlocks = message.content.filter(block => {
|
|
610
|
-
if (block.type === 'tool_use' && block.id && emptyToolIds.has(block.id))
|
|
611
|
-
return false;
|
|
612
|
-
if (block.type === 'tool_result' && block.tool_use_id && emptyToolIds.has(block.tool_use_id))
|
|
613
|
-
return false;
|
|
614
|
-
return true;
|
|
615
|
-
});
|
|
616
|
-
// Skip messages that become empty after filtering
|
|
617
|
-
if (filteredBlocks.length === 0)
|
|
618
|
-
continue;
|
|
619
|
-
parts.push(`**${role}**:`);
|
|
620
|
-
for (const block of filteredBlocks) {
|
|
621
|
-
parts.push(this.formatContentBlock(block));
|
|
622
|
-
}
|
|
623
|
-
parts.push('');
|
|
624
|
-
}
|
|
625
|
-
}
|
|
626
|
-
return parts.join('\n');
|
|
627
|
-
}
|
|
628
|
-
/**
|
|
629
|
-
* Scans messages for tool_result blocks that indicate empty/no-match results
|
|
630
|
-
* and returns the set of their corresponding tool_use IDs.
|
|
631
|
-
*/
|
|
632
|
-
collectEmptyToolResultIds(messages) {
|
|
633
|
-
const emptyIds = new Set();
|
|
634
|
-
for (const msg of messages) {
|
|
635
|
-
if (msg.role !== 'user' || !Array.isArray(msg.content))
|
|
636
|
-
continue;
|
|
637
|
-
for (const block of msg.content) {
|
|
638
|
-
if (block.type !== 'tool_result' || !block.tool_use_id)
|
|
639
|
-
continue;
|
|
640
|
-
if (block.is_error)
|
|
641
|
-
continue; // Keep errors — they're always informative
|
|
642
|
-
const text = this.extractToolResultText(block);
|
|
643
|
-
if (this.isEmptyToolResult(text)) {
|
|
644
|
-
emptyIds.add(block.tool_use_id);
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
|
-
}
|
|
648
|
-
return emptyIds;
|
|
649
|
-
}
|
|
650
|
-
/**
|
|
651
|
-
* Extracts the text content from a tool_result block.
|
|
652
|
-
*/
|
|
653
|
-
extractToolResultText(block) {
|
|
654
|
-
if (typeof block.content === 'string')
|
|
655
|
-
return block.content;
|
|
656
|
-
if (Array.isArray(block.content)) {
|
|
657
|
-
return block.content.map(c => typeof c === 'string' ? c : (c.text || '')).join('\n');
|
|
658
|
-
}
|
|
659
|
-
return '';
|
|
660
|
-
}
|
|
661
|
-
/**
|
|
662
|
-
* Determines if a tool result's text content indicates an empty/no-match result.
|
|
663
|
-
* Matches common patterns from search_code, find_files, and list_files tools.
|
|
664
|
-
*/
|
|
665
|
-
isEmptyToolResult(text) {
|
|
666
|
-
// JSON results with matchCount: 0 or totalFound: 0
|
|
667
|
-
if (/"matchCount"\s*:\s*0\b/.test(text))
|
|
668
|
-
return true;
|
|
669
|
-
if (/"totalFound"\s*:\s*0\b/.test(text))
|
|
670
|
-
return true;
|
|
671
|
-
// Plain-text "no matches" indicators
|
|
672
|
-
if (/no\s+matches\s+found/i.test(text))
|
|
673
|
-
return true;
|
|
674
|
-
if (/no\s+results\s+found/i.test(text))
|
|
675
|
-
return true;
|
|
676
|
-
if (/0\s+matches/i.test(text))
|
|
677
|
-
return true;
|
|
678
|
-
return false;
|
|
679
|
-
}
|
|
680
|
-
/**
|
|
681
|
-
* Formats a content block to text representation
|
|
682
|
-
*/
|
|
683
|
-
formatContentBlock(block) {
|
|
684
|
-
switch (block.type) {
|
|
685
|
-
case 'text':
|
|
686
|
-
return block.text || '';
|
|
687
|
-
case 'tool_use': {
|
|
688
|
-
// Summarize tool calls - don't include full input for large ones
|
|
689
|
-
const inputStr = typeof block.input === 'string'
|
|
690
|
-
? block.input
|
|
691
|
-
: JSON.stringify(block.input || {});
|
|
692
|
-
const truncatedInput = inputStr.length > 500
|
|
693
|
-
? inputStr.substring(0, 500) + '...[truncated]'
|
|
694
|
-
: inputStr;
|
|
695
|
-
return `[Tool Call: ${block.name}] Input: ${truncatedInput}`;
|
|
696
|
-
}
|
|
697
|
-
case 'tool_result': {
|
|
698
|
-
// Summarize tool results - focus on errors and key outcomes
|
|
699
|
-
let resultContent = '';
|
|
700
|
-
if (typeof block.content === 'string') {
|
|
701
|
-
resultContent = block.content;
|
|
702
|
-
}
|
|
703
|
-
else if (Array.isArray(block.content)) {
|
|
704
|
-
resultContent = block.content.map(c => typeof c === 'string' ? c : (c.text || '')).join('\n');
|
|
705
|
-
}
|
|
706
|
-
// Truncate long results but preserve error information
|
|
707
|
-
if (resultContent.length > 1000) {
|
|
708
|
-
const hasError = /error|fail|exception/i.test(resultContent);
|
|
709
|
-
if (hasError) {
|
|
710
|
-
// Keep more context for errors
|
|
711
|
-
resultContent = resultContent.substring(0, 2000) + '\n...[result truncated, errors preserved]';
|
|
712
|
-
}
|
|
713
|
-
else {
|
|
714
|
-
resultContent = resultContent.substring(0, 500) + '\n...[result truncated]';
|
|
715
|
-
}
|
|
716
|
-
}
|
|
717
|
-
return `[Tool Result: ${block.is_error ? 'ERROR' : 'success'}] ${resultContent}`;
|
|
718
|
-
}
|
|
719
|
-
default:
|
|
720
|
-
return `[${block.type}]`;
|
|
721
|
-
}
|
|
722
|
-
}
|
|
723
|
-
}
|
|
724
|
-
// Singleton instance
|
|
725
|
-
let conversationCompactorInstance = null;
|
|
726
|
-
/**
|
|
727
|
-
* Gets the singleton ConversationCompactor instance.
|
|
728
|
-
* Creates the instance on first call.
|
|
729
|
-
*
|
|
730
|
-
* @param autoCompactThreshold - Optional threshold for auto-compaction
|
|
731
|
-
* @returns Promise resolving to the ConversationCompactor instance
|
|
732
|
-
*/
|
|
733
|
-
export async function getConversationCompactor(autoCompactThreshold) {
|
|
734
|
-
if (!conversationCompactorInstance) {
|
|
735
|
-
conversationCompactorInstance = new ConversationCompactor(autoCompactThreshold);
|
|
736
|
-
}
|
|
737
|
-
return conversationCompactorInstance;
|
|
738
|
-
}
|
|
739
|
-
/**
|
|
740
|
-
* Creates a new ConversationCompactor instance with custom configuration.
|
|
741
|
-
* Use this when you need a separate instance from the singleton.
|
|
742
|
-
*
|
|
743
|
-
* @param autoCompactThreshold - Optional threshold for auto-compaction
|
|
744
|
-
* @returns A new ConversationCompactor instance
|
|
745
|
-
*/
|
|
746
|
-
export function createConversationCompactor(autoCompactThreshold) {
|
|
747
|
-
return new ConversationCompactor(autoCompactThreshold);
|
|
748
|
-
}
|
|
749
|
-
export { ConversationCompactor, COMPACTION_SYSTEM_PROMPT };
|
|
750
|
-
//# sourceMappingURL=conversation-compactor.js.map
|