byterover-cli 1.7.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -551
- package/bin/kill-daemon.js +78 -0
- package/bin/run.js +2 -2
- package/dist/agent/core/domain/blob/types.d.ts +8 -2
- package/dist/agent/core/domain/llm/index.d.ts +1 -1
- package/dist/agent/core/domain/llm/index.js +1 -1
- package/dist/agent/core/domain/llm/registry.js +353 -14
- package/dist/agent/core/domain/llm/schemas.d.ts +13 -13
- package/dist/agent/core/domain/llm/schemas.js +3 -3
- package/dist/agent/core/domain/llm/types.d.ts +15 -5
- package/dist/agent/core/domain/llm/types.js +8 -2
- package/dist/agent/core/domain/sandbox/types.d.ts +6 -0
- package/dist/agent/core/domain/session/session-metadata.d.ts +7 -2
- package/dist/agent/core/domain/session/session-metadata.js +14 -4
- package/dist/agent/core/domain/streaming/types.d.ts +2 -0
- package/dist/agent/core/domain/tools/constants.d.ts +0 -15
- package/dist/agent/core/domain/tools/constants.js +0 -15
- package/dist/agent/core/domain/tools/types.d.ts +2 -0
- package/dist/agent/core/interfaces/i-chat-session.d.ts +1 -1
- package/dist/agent/core/interfaces/i-cipher-agent.d.ts +68 -0
- package/dist/agent/core/interfaces/i-curate-service.d.ts +34 -7
- package/dist/agent/core/interfaces/i-history-storage.d.ts +8 -0
- package/dist/agent/core/interfaces/i-key-storage.d.ts +11 -0
- package/dist/agent/core/interfaces/i-llm-service.d.ts +1 -1
- package/dist/agent/core/interfaces/i-sandbox-service.d.ts +26 -0
- package/dist/agent/core/interfaces/i-session-persistence.d.ts +3 -36
- package/dist/agent/core/interfaces/i-session-persistence.js +1 -1
- package/dist/agent/infra/agent/agent-schemas.d.ts +26 -5
- package/dist/agent/infra/agent/agent-schemas.js +10 -3
- package/dist/agent/infra/agent/cipher-agent.d.ts +87 -2
- package/dist/agent/infra/agent/cipher-agent.js +191 -16
- package/dist/agent/infra/agent/interactive-loop.js +1 -5
- package/dist/agent/infra/agent/provider-update-config.d.ts +19 -0
- package/dist/agent/infra/agent/service-initializer.d.ts +27 -6
- package/dist/agent/infra/agent/service-initializer.js +46 -60
- package/dist/agent/infra/blob/blob-storage-factory.d.ts +1 -1
- package/dist/agent/infra/blob/blob-storage-factory.js +1 -1
- package/dist/agent/infra/blob/sqlite-blob-storage.js +8 -5
- package/dist/agent/infra/file-system/file-system-service.js +6 -3
- package/dist/agent/infra/http/internal-llm-http-service.d.ts +9 -5
- package/dist/agent/infra/http/internal-llm-http-service.js +12 -7
- package/dist/agent/infra/llm/agent-llm-service.d.ts +420 -0
- package/dist/agent/infra/llm/agent-llm-service.js +1291 -0
- package/dist/agent/infra/llm/context/compaction/compaction-service.d.ts +14 -12
- package/dist/agent/infra/llm/context/compaction/compaction-service.js +26 -9
- package/dist/agent/infra/llm/context/compression/reactive-overflow.js +12 -3
- package/dist/agent/infra/llm/context/context-manager.d.ts +44 -3
- package/dist/agent/infra/llm/context/context-manager.js +203 -98
- package/dist/agent/infra/llm/context/deferred-effects.d.ts +30 -0
- package/dist/agent/infra/llm/context/deferred-effects.js +40 -0
- package/dist/agent/infra/llm/formatters/gemini-formatter.d.ts +1 -1
- package/dist/agent/infra/llm/formatters/gemini-formatter.js +14 -10
- package/dist/agent/infra/llm/generators/ai-sdk-content-generator.d.ts +33 -0
- package/dist/agent/infra/llm/generators/ai-sdk-content-generator.js +166 -0
- package/dist/agent/infra/llm/generators/ai-sdk-message-converter.d.ts +20 -0
- package/dist/agent/infra/llm/generators/ai-sdk-message-converter.js +182 -0
- package/dist/agent/infra/llm/generators/index.d.ts +3 -3
- package/dist/agent/infra/llm/generators/index.js +3 -3
- package/dist/agent/infra/llm/generators/retryable-content-generator.d.ts +7 -0
- package/dist/agent/infra/llm/generators/retryable-content-generator.js +29 -5
- package/dist/agent/infra/llm/index.d.ts +1 -2
- package/dist/agent/infra/llm/index.js +2 -3
- package/dist/agent/infra/llm/model-capabilities.d.ts +1 -0
- package/dist/agent/infra/llm/model-capabilities.js +31 -0
- package/dist/agent/infra/llm/providers/anthropic.d.ts +7 -0
- package/dist/agent/infra/llm/providers/anthropic.js +27 -0
- package/dist/agent/infra/llm/providers/byterover.d.ts +9 -0
- package/dist/agent/infra/llm/providers/byterover.js +37 -0
- package/dist/agent/infra/llm/providers/cerebras.d.ts +7 -0
- package/dist/agent/infra/llm/providers/cerebras.js +31 -0
- package/dist/agent/infra/llm/providers/cohere.d.ts +7 -0
- package/dist/agent/infra/llm/providers/cohere.js +26 -0
- package/dist/agent/infra/llm/providers/deepinfra.d.ts +7 -0
- package/dist/agent/infra/llm/providers/deepinfra.js +26 -0
- package/dist/agent/infra/llm/providers/glm.d.ts +7 -0
- package/dist/agent/infra/llm/providers/glm.js +30 -0
- package/dist/agent/infra/llm/providers/google-vertex.d.ts +15 -0
- package/dist/agent/infra/llm/providers/google-vertex.js +36 -0
- package/dist/agent/infra/llm/providers/google.d.ts +7 -0
- package/dist/agent/infra/llm/providers/google.js +25 -0
- package/dist/agent/infra/llm/providers/groq.d.ts +7 -0
- package/dist/agent/infra/llm/providers/groq.js +26 -0
- package/dist/agent/infra/llm/providers/index.d.ts +24 -0
- package/dist/agent/infra/llm/providers/index.js +75 -0
- package/dist/agent/infra/llm/providers/minimax.d.ts +7 -0
- package/dist/agent/infra/llm/providers/minimax.js +30 -0
- package/dist/agent/infra/llm/providers/mistral.d.ts +7 -0
- package/dist/agent/infra/llm/providers/mistral.js +26 -0
- package/dist/agent/infra/llm/providers/moonshot.d.ts +7 -0
- package/dist/agent/infra/llm/providers/moonshot.js +30 -0
- package/dist/agent/infra/llm/providers/openai-compatible.d.ts +9 -0
- package/dist/agent/infra/llm/providers/openai-compatible.js +30 -0
- package/dist/agent/infra/llm/providers/openai.d.ts +7 -0
- package/dist/agent/infra/llm/providers/openai.js +26 -0
- package/dist/agent/infra/llm/providers/openrouter.d.ts +7 -0
- package/dist/agent/infra/llm/providers/openrouter.js +26 -0
- package/dist/agent/infra/llm/providers/perplexity.d.ts +7 -0
- package/dist/agent/infra/llm/providers/perplexity.js +26 -0
- package/dist/agent/infra/llm/providers/togetherai.d.ts +7 -0
- package/dist/agent/infra/llm/providers/togetherai.js +26 -0
- package/dist/agent/infra/llm/providers/types.d.ts +81 -0
- package/dist/agent/infra/llm/providers/types.js +7 -0
- package/dist/agent/infra/llm/providers/vercel.d.ts +7 -0
- package/dist/agent/infra/llm/providers/vercel.js +32 -0
- package/dist/agent/infra/llm/providers/xai.d.ts +7 -0
- package/dist/agent/infra/llm/providers/xai.js +26 -0
- package/dist/agent/infra/llm/retry/retry-policy.d.ts +13 -0
- package/dist/agent/infra/llm/retry/retry-policy.js +207 -0
- package/dist/agent/infra/llm/tokenizers/openrouter-tokenizer.js +1 -1
- package/dist/agent/infra/llm/tool-output-processor.d.ts +16 -4
- package/dist/agent/infra/llm/tool-output-processor.js +61 -16
- package/dist/agent/infra/sandbox/curate-result-collector.d.ts +30 -0
- package/dist/agent/infra/sandbox/curate-result-collector.js +39 -0
- package/dist/agent/infra/sandbox/curate-service.d.ts +4 -1
- package/dist/agent/infra/sandbox/curate-service.js +12 -3
- package/dist/agent/infra/sandbox/local-sandbox.d.ts +13 -0
- package/dist/agent/infra/sandbox/local-sandbox.js +41 -4
- package/dist/agent/infra/sandbox/sandbox-service.d.ts +40 -5
- package/dist/agent/infra/sandbox/sandbox-service.js +97 -14
- package/dist/agent/infra/sandbox/tools-sdk.d.ts +42 -4
- package/dist/agent/infra/sandbox/tools-sdk.js +29 -4
- package/dist/agent/infra/session/chat-session.d.ts +1 -1
- package/dist/agent/infra/session/chat-session.js +2 -2
- package/dist/agent/infra/session/session-event-forwarder.js +6 -3
- package/dist/agent/infra/session/session-manager.d.ts +12 -2
- package/dist/agent/infra/session/session-manager.js +25 -8
- package/dist/agent/infra/session/session-metadata-store.d.ts +17 -10
- package/dist/agent/infra/session/session-metadata-store.js +12 -87
- package/dist/agent/infra/storage/blob-history-storage.d.ts +5 -0
- package/dist/agent/infra/storage/blob-history-storage.js +15 -0
- package/dist/agent/infra/storage/dual-format-history-storage.d.ts +6 -0
- package/dist/agent/infra/storage/dual-format-history-storage.js +16 -0
- package/dist/agent/infra/storage/message-storage-service.js +134 -22
- package/dist/agent/infra/storage/sqlite-key-storage.d.ts +8 -0
- package/dist/agent/infra/storage/sqlite-key-storage.js +47 -13
- package/dist/agent/infra/system-prompt/contributors/context-tree-structure-contributor.js +3 -3
- package/dist/agent/infra/tools/implementations/code-exec-tool.js +43 -2
- package/dist/agent/infra/tools/implementations/curate-tool.d.ts +221 -22
- package/dist/agent/infra/tools/implementations/curate-tool.js +100 -23
- package/dist/agent/infra/tools/implementations/memory-path-matcher.d.ts +48 -0
- package/dist/agent/infra/tools/implementations/memory-path-matcher.js +217 -0
- package/dist/agent/infra/tools/implementations/memory-symbol-tree.d.ts +101 -0
- package/dist/agent/infra/tools/implementations/memory-symbol-tree.js +259 -0
- package/dist/agent/infra/tools/implementations/search-knowledge-service.d.ts +48 -6
- package/dist/agent/infra/tools/implementations/search-knowledge-service.js +394 -41
- package/dist/agent/infra/tools/implementations/search-knowledge-tool.d.ts +2 -1
- package/dist/agent/infra/tools/implementations/search-knowledge-tool.js +50 -6
- package/dist/agent/infra/tools/index.d.ts +0 -4
- package/dist/agent/infra/tools/index.js +0 -4
- package/dist/agent/infra/tools/tool-registry.js +2 -115
- package/dist/agent/infra/transport/transport-event-bridge.d.ts +42 -0
- package/dist/agent/infra/transport/transport-event-bridge.js +90 -0
- package/dist/agent/infra/validation/workspace-validator.d.ts +3 -3
- package/dist/agent/infra/validation/workspace-validator.js +3 -8
- package/dist/agent/resources/prompts/curate-detail-preservation.yml +101 -0
- package/dist/agent/resources/prompts/system-prompt.yml +404 -94
- package/dist/agent/resources/tools/code_exec.txt +97 -0
- package/dist/agent/resources/tools/curate.txt +25 -13
- package/dist/agent/resources/tools/detect_domains.txt +4 -3
- package/dist/oclif/commands/connectors/index.d.ts +12 -0
- package/dist/oclif/commands/connectors/index.js +53 -0
- package/dist/oclif/commands/connectors/install.d.ts +31 -0
- package/dist/oclif/commands/connectors/install.js +148 -0
- package/dist/oclif/commands/connectors/list.d.ts +5 -0
- package/dist/oclif/commands/connectors/list.js +8 -0
- package/dist/oclif/commands/curate/index.d.ts +25 -0
- package/dist/oclif/commands/curate/index.js +256 -0
- package/dist/oclif/commands/curate/view.d.ts +18 -0
- package/dist/oclif/commands/curate/view.js +104 -0
- package/dist/oclif/commands/debug.d.ts +35 -0
- package/dist/oclif/commands/debug.js +436 -0
- package/dist/oclif/commands/hub/index.d.ts +5 -0
- package/dist/oclif/commands/hub/index.js +7 -0
- package/dist/oclif/commands/hub/install.d.ts +23 -0
- package/dist/oclif/commands/hub/install.js +74 -0
- package/dist/oclif/commands/hub/list.d.ts +13 -0
- package/dist/oclif/commands/hub/list.js +65 -0
- package/dist/oclif/commands/hub/registry/add.d.ts +19 -0
- package/dist/oclif/commands/hub/registry/add.js +74 -0
- package/dist/oclif/commands/hub/registry/index.d.ts +5 -0
- package/dist/oclif/commands/hub/registry/index.js +7 -0
- package/dist/oclif/commands/hub/registry/list.d.ts +12 -0
- package/dist/oclif/commands/hub/registry/list.js +49 -0
- package/dist/oclif/commands/hub/registry/remove.d.ts +15 -0
- package/dist/oclif/commands/hub/registry/remove.js +46 -0
- package/dist/oclif/commands/login.d.ts +4 -0
- package/dist/oclif/commands/login.js +51 -31
- package/dist/oclif/commands/main.d.ts +3 -17
- package/dist/oclif/commands/main.js +15 -96
- package/dist/oclif/commands/mcp.js +24 -5
- package/dist/oclif/commands/model/index.d.ts +15 -0
- package/dist/oclif/commands/model/index.js +59 -0
- package/dist/oclif/commands/model/list.d.ts +17 -0
- package/dist/oclif/commands/model/list.js +89 -0
- package/dist/oclif/commands/model/switch.d.ts +21 -0
- package/dist/oclif/commands/model/switch.js +81 -0
- package/dist/oclif/commands/providers/connect.d.ts +28 -0
- package/dist/oclif/commands/providers/connect.js +141 -0
- package/dist/oclif/commands/providers/disconnect.d.ts +14 -0
- package/dist/oclif/commands/providers/disconnect.js +61 -0
- package/dist/oclif/commands/providers/index.d.ts +15 -0
- package/dist/oclif/commands/providers/index.js +59 -0
- package/dist/oclif/commands/providers/list.d.ts +12 -0
- package/dist/oclif/commands/providers/list.js +45 -0
- package/dist/oclif/commands/providers/switch.d.ts +17 -0
- package/dist/oclif/commands/providers/switch.js +61 -0
- package/dist/oclif/commands/pull.d.ts +1 -6
- package/dist/oclif/commands/pull.js +46 -49
- package/dist/oclif/commands/push.d.ts +1 -7
- package/dist/oclif/commands/push.js +66 -59
- package/dist/oclif/commands/query.d.ts +5 -7
- package/dist/oclif/commands/query.js +142 -43
- package/dist/oclif/commands/restart.d.ts +95 -0
- package/dist/oclif/commands/restart.js +333 -0
- package/dist/oclif/commands/space/list.d.ts +12 -0
- package/dist/oclif/commands/space/list.js +66 -0
- package/dist/oclif/commands/space/switch.d.ts +17 -0
- package/dist/oclif/commands/space/switch.js +87 -0
- package/dist/oclif/commands/status.d.ts +4 -9
- package/dist/oclif/commands/status.js +94 -49
- package/dist/oclif/hooks/prerun/validate-brv-config-version.d.ts +16 -11
- package/dist/oclif/hooks/prerun/validate-brv-config-version.js +67 -24
- package/dist/oclif/lib/daemon-client.d.ts +40 -0
- package/dist/oclif/lib/daemon-client.js +142 -0
- package/dist/oclif/lib/json-response.d.ts +9 -0
- package/dist/oclif/lib/json-response.js +10 -0
- package/dist/oclif/lib/task-client.d.ts +68 -0
- package/dist/oclif/lib/task-client.js +227 -0
- package/dist/server/config/environment.d.ts +1 -1
- package/dist/server/config/environment.js +2 -2
- package/dist/server/constants.d.ts +30 -1
- package/dist/server/constants.js +43 -2
- package/dist/server/core/domain/client/client-info.d.ts +82 -0
- package/dist/server/core/domain/client/client-info.js +87 -0
- package/dist/server/core/domain/entities/agent.d.ts +3 -6
- package/dist/server/core/domain/entities/agent.js +49 -54
- package/dist/server/core/domain/entities/brv-config.d.ts +31 -10
- package/dist/server/core/domain/entities/brv-config.js +68 -39
- package/dist/server/core/domain/entities/connector-type.d.ts +1 -11
- package/dist/server/core/domain/entities/connector-type.js +1 -10
- package/dist/server/core/domain/entities/context-tree-snapshot.d.ts +2 -11
- package/dist/server/core/domain/entities/curate-log-entry.d.ts +41 -0
- package/dist/server/core/domain/entities/curation-status.d.ts +28 -0
- package/dist/server/core/domain/entities/provider-config.d.ts +14 -1
- package/dist/server/core/domain/entities/provider-config.js +17 -6
- package/dist/server/core/domain/entities/provider-registry.d.ts +3 -1
- package/dist/server/core/domain/entities/provider-registry.js +230 -10
- package/dist/server/core/domain/errors/task-error.d.ts +17 -4
- package/dist/server/core/domain/errors/task-error.js +35 -10
- package/dist/server/core/domain/knowledge/markdown-writer.d.ts +71 -1
- package/dist/server/core/domain/knowledge/markdown-writer.js +403 -37
- package/dist/server/core/domain/knowledge/memory-scoring.d.ts +118 -0
- package/dist/server/core/domain/knowledge/memory-scoring.js +217 -0
- package/dist/server/core/domain/knowledge/relation-parser.d.ts +16 -0
- package/dist/server/core/domain/knowledge/relation-parser.js +21 -8
- package/dist/server/core/domain/project/project-info.d.ts +54 -0
- package/dist/server/core/domain/project/project-info.js +62 -0
- package/dist/server/core/domain/transport/schemas.d.ts +97 -19
- package/dist/server/core/domain/transport/schemas.js +40 -1
- package/dist/server/core/domain/transport/task-info.d.ts +21 -0
- package/dist/server/core/interfaces/agent/i-agent-pool.d.ts +88 -0
- package/dist/server/core/interfaces/client/i-client-manager.d.ts +117 -0
- package/dist/server/core/interfaces/context-tree/i-context-file-reader.d.ts +5 -1
- package/dist/server/core/interfaces/context-tree/i-context-tree-merger.d.ts +80 -0
- package/dist/server/core/interfaces/context-tree/i-context-tree-service.d.ts +5 -0
- package/dist/server/core/interfaces/context-tree/i-context-tree-snapshot-service.d.ts +15 -0
- package/dist/server/core/interfaces/daemon/i-agent-idle-timeout-policy.d.ts +39 -0
- package/dist/server/core/interfaces/daemon/i-daemon-resilience.d.ts +24 -0
- package/dist/server/core/interfaces/daemon/i-heartbeat-writer.d.ts +28 -0
- package/dist/server/core/interfaces/daemon/i-idle-timeout-policy.d.ts +34 -0
- package/dist/server/core/interfaces/daemon/i-shutdown-handler.d.ts +20 -0
- package/dist/server/core/interfaces/daemon/index.d.ts +4 -0
- package/dist/server/core/interfaces/daemon/index.js +2 -0
- package/dist/server/core/interfaces/executor/i-curate-executor.d.ts +2 -2
- package/dist/server/core/interfaces/executor/i-query-executor.d.ts +2 -2
- package/dist/server/core/interfaces/hub/i-hub-install-service.d.ts +45 -0
- package/dist/server/core/interfaces/hub/i-hub-keychain-store.d.ts +27 -0
- package/dist/server/core/interfaces/hub/i-hub-registry-config-store.d.ts +27 -0
- package/dist/server/core/interfaces/hub/i-hub-registry-service.d.ts +30 -0
- package/dist/server/core/interfaces/hub/i-hub-registry-service.js +1 -0
- package/dist/server/core/interfaces/i-provider-config-store.d.ts +3 -1
- package/dist/server/core/interfaces/i-provider-model-fetcher.d.ts +59 -0
- package/dist/server/core/interfaces/i-provider-model-fetcher.js +7 -0
- package/dist/server/core/interfaces/process/i-task-lifecycle-hook.d.ts +27 -0
- package/dist/server/core/interfaces/process/i-task-lifecycle-hook.js +1 -0
- package/dist/server/core/interfaces/project/i-project-registry.d.ts +46 -0
- package/dist/server/core/interfaces/project/i-project-registry.js +1 -0
- package/dist/server/core/interfaces/routing/i-project-router.d.ts +45 -0
- package/dist/server/core/interfaces/routing/i-project-router.js +1 -0
- package/dist/server/core/interfaces/routing/index.d.ts +1 -0
- package/dist/server/core/interfaces/routing/index.js +1 -0
- package/dist/server/core/interfaces/session/i-session-reader.d.ts +13 -0
- package/dist/server/core/interfaces/session/i-session-reader.js +1 -0
- package/dist/server/core/interfaces/state/i-auth-state-store.d.ts +68 -0
- package/dist/server/core/interfaces/state/i-auth-state-store.js +1 -0
- package/dist/server/core/interfaces/state/i-project-state-loader.d.ts +110 -0
- package/dist/server/core/interfaces/state/i-project-state-loader.js +1 -0
- package/dist/server/core/interfaces/storage/i-curate-log-store.d.ts +20 -0
- package/dist/server/core/interfaces/storage/i-curate-log-store.js +1 -0
- package/dist/server/core/interfaces/storage/i-global-config-store.d.ts +1 -15
- package/dist/server/core/interfaces/storage/i-mcp-config-writer.d.ts +5 -1
- package/dist/server/core/interfaces/storage/i-project-config-store.d.ts +6 -1
- package/dist/server/core/interfaces/transport/i-transport-server.d.ts +12 -2
- package/dist/server/core/interfaces/usecase/i-curate-log-use-case.d.ts +12 -0
- package/dist/server/core/interfaces/usecase/i-curate-log-use-case.js +1 -0
- package/dist/server/infra/client/client-manager.d.ts +51 -0
- package/dist/server/infra/client/client-manager.js +144 -0
- package/dist/server/infra/cogit/context-tree-to-push-context-mapper.js +2 -2
- package/dist/server/infra/config/auto-init.d.ts +14 -0
- package/dist/server/infra/config/auto-init.js +18 -0
- package/dist/server/infra/config/file-config-store.d.ts +1 -0
- package/dist/server/infra/config/file-config-store.js +15 -7
- package/dist/server/infra/connectors/mcp/json-mcp-config-writer.d.ts +1 -2
- package/dist/server/infra/connectors/mcp/json-mcp-config-writer.js +9 -8
- package/dist/server/infra/connectors/mcp/mcp-connector-config.d.ts +29 -6
- package/dist/server/infra/connectors/mcp/mcp-connector-config.js +28 -1
- package/dist/server/infra/connectors/mcp/mcp-connector.js +5 -5
- package/dist/server/infra/connectors/mcp/toml-mcp-config-writer.d.ts +1 -2
- package/dist/server/infra/connectors/rules/rules-connector-config.d.ts +8 -0
- package/dist/server/infra/connectors/rules/rules-connector-config.js +8 -0
- package/dist/server/infra/connectors/rules/rules-connector.js +34 -7
- package/dist/server/infra/connectors/shared/constants.d.ts +5 -0
- package/dist/server/infra/connectors/shared/constants.js +12 -0
- package/dist/server/infra/connectors/shared/rule-segment-patcher.d.ts +29 -0
- package/dist/server/infra/connectors/shared/rule-segment-patcher.js +208 -0
- package/dist/server/infra/connectors/skill/skill-connector-config.d.ts +79 -20
- package/dist/server/infra/connectors/skill/skill-connector-config.js +74 -10
- package/dist/server/infra/connectors/skill/skill-connector.d.ts +31 -4
- package/dist/server/infra/connectors/skill/skill-connector.js +136 -39
- package/dist/server/infra/context-tree/file-context-file-reader.js +6 -2
- package/dist/server/infra/context-tree/file-context-tree-merger.d.ts +51 -0
- package/dist/server/infra/context-tree/file-context-tree-merger.js +261 -0
- package/dist/server/infra/context-tree/file-context-tree-service.d.ts +1 -0
- package/dist/server/infra/context-tree/file-context-tree-service.js +6 -1
- package/dist/server/infra/context-tree/file-context-tree-snapshot-service.d.ts +2 -4
- package/dist/server/infra/context-tree/file-context-tree-snapshot-service.js +19 -9
- package/dist/server/infra/context-tree/hash-utils.d.ts +6 -0
- package/dist/server/infra/context-tree/hash-utils.js +9 -0
- package/dist/server/infra/daemon/agent-idle-timeout-policy.d.ts +36 -0
- package/dist/server/infra/daemon/agent-idle-timeout-policy.js +89 -0
- package/dist/server/infra/daemon/agent-logger.d.ts +10 -0
- package/dist/server/infra/daemon/agent-logger.js +22 -0
- package/dist/server/infra/daemon/agent-pool.d.ts +112 -0
- package/dist/server/infra/daemon/agent-pool.js +335 -0
- package/dist/server/infra/daemon/agent-process.d.ts +21 -0
- package/dist/server/infra/daemon/agent-process.js +610 -0
- package/dist/server/infra/daemon/brv-server.d.ts +23 -0
- package/dist/server/infra/daemon/brv-server.js +405 -0
- package/dist/server/infra/daemon/daemon-resilience.d.ts +34 -0
- package/dist/server/infra/daemon/daemon-resilience.js +100 -0
- package/dist/server/infra/daemon/heartbeat.d.ts +28 -0
- package/dist/server/infra/daemon/heartbeat.js +81 -0
- package/dist/server/infra/daemon/idle-timeout-policy.d.ts +38 -0
- package/dist/server/infra/daemon/idle-timeout-policy.js +91 -0
- package/dist/server/infra/daemon/index.d.ts +5 -0
- package/dist/server/infra/daemon/index.js +11 -0
- package/dist/server/infra/daemon/port-selector.d.ts +28 -0
- package/dist/server/infra/daemon/port-selector.js +45 -0
- package/dist/server/infra/daemon/project-task-queue.d.ts +54 -0
- package/dist/server/infra/daemon/project-task-queue.js +103 -0
- package/dist/server/infra/daemon/session-resolver.d.ts +26 -0
- package/dist/server/infra/daemon/session-resolver.js +88 -0
- package/dist/server/infra/daemon/shutdown-handler.d.ts +42 -0
- package/dist/server/infra/daemon/shutdown-handler.js +101 -0
- package/dist/server/infra/executor/curate-executor.d.ts +10 -2
- package/dist/server/infra/executor/curate-executor.js +88 -14
- package/dist/server/infra/executor/direct-search-responder.d.ts +48 -0
- package/dist/server/infra/executor/direct-search-responder.js +88 -0
- package/dist/server/infra/executor/folder-pack-executor.d.ts +13 -5
- package/dist/server/infra/executor/folder-pack-executor.js +780 -39
- package/dist/server/infra/executor/query-executor.d.ts +69 -6
- package/dist/server/infra/executor/query-executor.js +313 -22
- package/dist/server/infra/executor/query-result-cache.d.ts +87 -0
- package/dist/server/infra/executor/query-result-cache.js +127 -0
- package/dist/server/infra/executor/query-similarity.d.ts +28 -0
- package/dist/server/infra/executor/query-similarity.js +41 -0
- package/dist/server/infra/http/provider-model-fetcher-registry.d.ts +31 -0
- package/dist/server/infra/http/provider-model-fetcher-registry.js +121 -0
- package/dist/server/infra/http/provider-model-fetchers.d.ts +108 -0
- package/dist/server/infra/http/provider-model-fetchers.js +582 -0
- package/dist/server/infra/hub/composite-hub-registry-service.d.ts +17 -0
- package/dist/server/infra/hub/composite-hub-registry-service.js +54 -0
- package/dist/server/infra/hub/hub-auth-headers.d.ts +11 -0
- package/dist/server/infra/hub/hub-auth-headers.js +29 -0
- package/dist/server/infra/hub/hub-install-service.d.ts +22 -0
- package/dist/server/infra/hub/hub-install-service.js +99 -0
- package/dist/server/infra/hub/hub-keychain-store.d.ts +29 -0
- package/dist/server/infra/hub/hub-keychain-store.js +98 -0
- package/dist/server/infra/hub/hub-registry-config-store.d.ts +24 -0
- package/dist/server/infra/hub/hub-registry-config-store.js +92 -0
- package/dist/server/infra/hub/hub-registry-service.d.ts +33 -0
- package/dist/server/infra/hub/hub-registry-service.js +109 -0
- package/dist/server/infra/mcp/mcp-mode-detector.d.ts +21 -0
- package/dist/server/infra/mcp/mcp-mode-detector.js +25 -0
- package/dist/server/infra/mcp/mcp-server.d.ts +15 -9
- package/dist/server/infra/mcp/mcp-server.js +84 -98
- package/dist/server/infra/mcp/tools/brv-curate-tool.d.ts +5 -10
- package/dist/server/infra/mcp/tools/brv-curate-tool.js +47 -17
- package/dist/server/infra/mcp/tools/brv-query-tool.d.ts +4 -1
- package/dist/server/infra/mcp/tools/brv-query-tool.js +39 -12
- package/dist/server/infra/mcp/tools/index.d.ts +1 -0
- package/dist/server/infra/mcp/tools/index.js +1 -0
- package/dist/server/infra/mcp/tools/resolve-client-cwd.d.ts +17 -0
- package/dist/server/infra/mcp/tools/resolve-client-cwd.js +27 -0
- package/dist/server/infra/mcp/tools/task-result-waiter.js +6 -5
- package/dist/server/infra/process/broadcast-utils.d.ts +16 -0
- package/dist/server/infra/process/broadcast-utils.js +22 -0
- package/dist/server/infra/process/connection-coordinator.d.ts +85 -0
- package/dist/server/infra/process/connection-coordinator.js +333 -0
- package/dist/server/infra/process/curate-log-handler.d.ts +35 -0
- package/dist/server/infra/process/curate-log-handler.js +179 -0
- package/dist/server/infra/process/feature-handlers.d.ts +25 -0
- package/dist/server/infra/process/feature-handlers.js +165 -0
- package/dist/server/infra/process/index.d.ts +6 -7
- package/dist/server/infra/process/index.js +5 -6
- package/dist/server/infra/process/task-router.d.ts +139 -0
- package/dist/server/infra/process/task-router.js +503 -0
- package/dist/server/infra/process/transport-handlers.d.ts +55 -117
- package/dist/server/infra/process/transport-handlers.js +50 -437
- package/dist/server/infra/process/types.d.ts +5 -0
- package/dist/server/infra/process/types.js +1 -0
- package/dist/server/infra/project/project-registry.d.ts +37 -0
- package/dist/server/infra/project/project-registry.js +147 -0
- package/dist/server/infra/provider/env-provider-detector.d.ts +33 -0
- package/dist/server/infra/provider/env-provider-detector.js +52 -0
- package/dist/server/infra/provider/provider-config-resolver.d.ts +30 -0
- package/dist/server/infra/provider/provider-config-resolver.js +167 -0
- package/dist/server/infra/provider/vertex-ai-utils.d.ts +10 -0
- package/dist/server/infra/provider/vertex-ai-utils.js +28 -0
- package/dist/server/infra/routing/project-router.d.ts +35 -0
- package/dist/server/infra/routing/project-router.js +60 -0
- package/dist/server/infra/session/session-reader.d.ts +18 -0
- package/dist/server/infra/session/session-reader.js +17 -0
- package/dist/server/infra/state/auth-state-store.d.ts +55 -0
- package/dist/server/infra/state/auth-state-store.js +111 -0
- package/dist/server/infra/state/project-state-loader.d.ts +69 -0
- package/dist/server/infra/state/project-state-loader.js +154 -0
- package/dist/server/infra/storage/file-curate-log-store.d.ts +61 -0
- package/dist/server/infra/storage/file-curate-log-store.js +198 -0
- package/dist/server/infra/storage/file-global-config-store.d.ts +0 -2
- package/dist/server/infra/storage/file-global-config-store.js +0 -19
- package/dist/server/infra/storage/file-onboarding-preference-store.d.ts +1 -1
- package/dist/server/infra/storage/file-onboarding-preference-store.js +7 -8
- package/dist/server/infra/storage/file-provider-config-store.d.ts +3 -2
- package/dist/server/infra/storage/file-provider-config-store.js +3 -3
- package/dist/server/infra/storage/file-provider-keychain-store.d.ts +31 -0
- package/dist/server/infra/storage/file-provider-keychain-store.js +110 -0
- package/dist/server/infra/storage/file-token-store.d.ts +2 -5
- package/dist/server/infra/storage/file-token-store.js +2 -5
- package/dist/server/infra/storage/provider-keychain-store.d.ts +2 -33
- package/dist/server/infra/storage/provider-keychain-store.js +4 -71
- package/dist/server/infra/storage/token-store.d.ts +3 -8
- package/dist/server/infra/storage/token-store.js +4 -11
- package/dist/server/infra/transport/agent-instance-discovery.d.ts +20 -0
- package/dist/server/infra/transport/agent-instance-discovery.js +32 -0
- package/dist/server/infra/transport/handlers/agent-dto-mapper.d.ts +6 -0
- package/dist/server/infra/transport/handlers/agent-dto-mapper.js +16 -0
- package/dist/server/infra/transport/handlers/auth-handler.d.ts +60 -0
- package/dist/server/infra/transport/handlers/auth-handler.js +257 -0
- package/dist/server/infra/transport/handlers/config-handler.d.ts +13 -0
- package/dist/server/infra/transport/handlers/config-handler.js +22 -0
- package/dist/server/infra/transport/handlers/connectors-handler.d.ts +23 -0
- package/dist/server/infra/transport/handlers/connectors-handler.js +73 -0
- package/dist/server/infra/transport/handlers/handler-types.d.ts +23 -0
- package/dist/server/infra/transport/handlers/handler-types.js +21 -0
- package/dist/server/infra/transport/handlers/hub-handler.d.ts +34 -0
- package/dist/server/infra/transport/handlers/hub-handler.js +218 -0
- package/dist/server/infra/transport/handlers/index.d.ts +26 -0
- package/dist/server/infra/transport/handlers/index.js +13 -0
- package/dist/server/infra/transport/handlers/init-handler.d.ts +50 -0
- package/dist/server/infra/transport/handlers/init-handler.js +157 -0
- package/dist/server/infra/transport/handlers/model-handler.d.ts +22 -0
- package/dist/server/infra/transport/handlers/model-handler.js +107 -0
- package/dist/server/infra/transport/handlers/provider-handler.d.ts +25 -0
- package/dist/server/infra/transport/handlers/provider-handler.js +101 -0
- package/dist/server/infra/transport/handlers/pull-handler.d.ts +35 -0
- package/dist/server/infra/transport/handlers/pull-handler.js +87 -0
- package/dist/server/infra/transport/handlers/push-handler.d.ts +37 -0
- package/dist/server/infra/transport/handlers/push-handler.js +109 -0
- package/dist/server/infra/transport/handlers/reset-handler.d.ts +23 -0
- package/dist/server/infra/transport/handlers/reset-handler.js +33 -0
- package/dist/server/infra/transport/handlers/space-handler.d.ts +44 -0
- package/dist/server/infra/transport/handlers/space-handler.js +206 -0
- package/dist/server/infra/transport/handlers/status-handler.d.ts +29 -0
- package/dist/server/infra/transport/handlers/status-handler.js +99 -0
- package/dist/server/infra/transport/index.d.ts +1 -1
- package/dist/server/infra/transport/index.js +0 -1
- package/dist/server/infra/transport/port-utils.d.ts +0 -35
- package/dist/server/infra/transport/port-utils.js +0 -62
- package/dist/server/infra/transport/socket-io-transport-server.d.ts +6 -1
- package/dist/server/infra/transport/socket-io-transport-server.js +30 -10
- package/dist/server/infra/transport/transport-connector.d.ts +13 -0
- package/dist/server/infra/transport/transport-connector.js +18 -0
- package/dist/server/infra/usecase/curate-log-use-case.d.ts +32 -0
- package/dist/server/infra/usecase/curate-log-use-case.js +142 -0
- package/dist/server/templates/sections/brv-instructions.md +8 -0
- package/dist/server/templates/sections/command-reference.md +5 -2
- package/dist/server/templates/sections/workflow.md +2 -0
- package/dist/server/templates/skill/SKILL.md +138 -59
- package/dist/server/utils/config-xdg-sync.d.ts +13 -0
- package/dist/server/utils/config-xdg-sync.js +25 -0
- package/dist/server/utils/curate-result-parser.d.ts +121 -0
- package/dist/server/utils/curate-result-parser.js +120 -0
- package/dist/server/utils/file-validator.js +78 -1
- package/dist/server/utils/global-config-path.d.ts +1 -1
- package/dist/server/utils/global-config-path.js +5 -2
- package/dist/server/utils/global-data-path.d.ts +2 -2
- package/dist/server/utils/global-data-path.js +8 -3
- package/dist/server/utils/path-utils.d.ts +38 -0
- package/dist/server/utils/path-utils.js +92 -0
- package/dist/server/utils/process-logger.js +1 -1
- package/dist/server/utils/server-main-resolver.d.ts +9 -0
- package/dist/server/utils/server-main-resolver.js +17 -0
- package/dist/shared/transport/events/agent-events.d.ts +16 -0
- package/dist/shared/transport/events/agent-events.js +10 -0
- package/dist/shared/transport/events/auth-events.d.ts +45 -0
- package/dist/shared/transport/events/auth-events.js +11 -0
- package/dist/shared/transport/events/config-events.d.ts +18 -0
- package/dist/shared/transport/events/config-events.js +5 -0
- package/dist/shared/transport/events/connector-events.d.ts +35 -0
- package/dist/shared/transport/events/connector-events.js +6 -0
- package/dist/shared/transport/events/hub-events.d.ts +62 -0
- package/dist/shared/transport/events/hub-events.js +10 -0
- package/dist/shared/transport/events/index.d.ts +123 -0
- package/dist/shared/transport/events/index.js +73 -0
- package/dist/shared/transport/events/init-events.d.ts +41 -0
- package/dist/shared/transport/events/init-events.js +8 -0
- package/dist/shared/transport/events/llm-events.d.ts +13 -0
- package/dist/shared/transport/events/llm-events.js +13 -0
- package/dist/shared/transport/events/model-events.d.ts +30 -0
- package/dist/shared/transport/events/model-events.js +5 -0
- package/dist/shared/transport/events/onboarding-events.d.ts +18 -0
- package/dist/shared/transport/events/onboarding-events.js +5 -0
- package/dist/shared/transport/events/provider-events.d.ts +44 -0
- package/dist/shared/transport/events/provider-events.js +8 -0
- package/dist/shared/transport/events/pull-events.d.ts +26 -0
- package/dist/shared/transport/events/pull-events.js +5 -0
- package/dist/shared/transport/events/push-events.d.ts +27 -0
- package/dist/shared/transport/events/push-events.js +5 -0
- package/dist/shared/transport/events/reset-events.d.ts +6 -0
- package/dist/shared/transport/events/reset-events.js +3 -0
- package/dist/shared/transport/events/session-events.d.ts +3 -0
- package/dist/shared/transport/events/session-events.js +3 -0
- package/dist/shared/transport/events/space-events.d.ts +30 -0
- package/dist/shared/transport/events/space-events.js +4 -0
- package/dist/shared/transport/events/status-events.d.ts +7 -0
- package/dist/shared/transport/events/status-events.js +3 -0
- package/dist/shared/transport/events/task-events.d.ts +19 -0
- package/dist/shared/transport/events/task-events.js +9 -0
- package/dist/shared/transport/types/auth-scheme.d.ts +1 -0
- package/dist/shared/transport/types/auth-scheme.js +1 -0
- package/dist/shared/transport/types/dto.d.ts +112 -0
- package/dist/shared/transport/types/dto.js +6 -0
- package/dist/shared/transport/types/index.d.ts +1 -0
- package/dist/shared/transport/types/index.js +1 -0
- package/dist/shared/types/agent.d.ts +5 -0
- package/dist/shared/types/agent.js +27 -0
- package/dist/shared/types/connector-type.d.ts +18 -0
- package/dist/shared/types/connector-type.js +26 -0
- package/dist/shared/types/context-tree-changes.d.ts +11 -0
- package/dist/shared/types/context-tree-changes.js +1 -0
- package/dist/shared/types/index.d.ts +3 -0
- package/dist/shared/types/index.js +2 -0
- package/dist/tui/app/index.d.ts +9 -0
- package/dist/tui/app/index.js +4 -0
- package/dist/tui/app/layouts/main-layout.d.ts +14 -0
- package/dist/tui/app/layouts/main-layout.js +19 -0
- package/dist/tui/app/pages/config-provider-page.d.ts +8 -0
- package/dist/tui/app/pages/config-provider-page.js +19 -0
- package/dist/tui/app/pages/home-page.d.ts +8 -0
- package/dist/tui/app/pages/home-page.js +85 -0
- package/dist/tui/app/pages/login-page.d.ts +12 -0
- package/dist/tui/app/pages/login-page.js +87 -0
- package/dist/tui/app/pages/protected-routes.d.ts +8 -0
- package/dist/tui/app/pages/protected-routes.js +14 -0
- package/dist/tui/app/router.d.ts +11 -0
- package/dist/tui/app/router.js +21 -0
- package/dist/tui/components/command/command-output.d.ts +1 -1
- package/dist/tui/components/command/command-output.js +5 -7
- package/dist/tui/components/command/expanded-command-view.d.ts +1 -1
- package/dist/tui/components/command/expanded-command-view.js +5 -6
- package/dist/tui/components/command/live-streaming-output.d.ts +2 -4
- package/dist/tui/components/command/live-streaming-output.js +5 -19
- package/dist/tui/components/command-details.d.ts +1 -1
- package/dist/tui/components/command-details.js +3 -3
- package/dist/tui/components/command-input.js +84 -171
- package/dist/tui/components/command-item.d.ts +1 -1
- package/dist/tui/components/command-item.js +6 -7
- package/dist/tui/components/execution/execution-status.d.ts +1 -1
- package/dist/tui/components/execution/execution-tool.d.ts +1 -1
- package/dist/tui/components/execution/expanded-log-view.d.ts +1 -1
- package/dist/tui/components/execution/expanded-log-view.js +1 -1
- package/dist/tui/components/execution/log-item.d.ts +1 -1
- package/dist/tui/components/execution/log-item.js +1 -1
- package/dist/tui/components/footer.js +6 -4
- package/dist/tui/components/header.js +2 -2
- package/dist/tui/components/index.d.ts +0 -2
- package/dist/tui/components/index.js +0 -2
- package/dist/tui/components/init.d.ts +1 -1
- package/dist/tui/components/init.js +26 -32
- package/dist/tui/components/inline-prompts/inline-file-selector.d.ts +1 -1
- package/dist/tui/components/inline-prompts/inline-input.d.ts +6 -0
- package/dist/tui/components/inline-prompts/inline-input.js +53 -16
- package/dist/tui/components/inline-prompts/inline-search.d.ts +2 -2
- package/dist/tui/components/inline-prompts/inline-search.js +1 -1
- package/dist/tui/components/inline-prompts/inline-select.d.ts +1 -1
- package/dist/tui/components/inline-prompts/inline-select.js +1 -1
- package/dist/tui/components/message-item.d.ts +1 -1
- package/dist/tui/components/message-item.js +2 -2
- package/dist/tui/components/onboarding/welcome-box.d.ts +1 -8
- package/dist/tui/components/onboarding/welcome-box.js +11 -12
- package/dist/tui/components/onboarding-item.d.ts +1 -1
- package/dist/tui/components/selectable-list.d.ts +3 -1
- package/dist/tui/components/selectable-list.js +7 -15
- package/dist/tui/components/status-badge.js +1 -1
- package/dist/tui/components/suggestions.js +5 -18
- package/dist/tui/features/activity/hooks/index.d.ts +2 -0
- package/dist/tui/features/activity/hooks/index.js +2 -0
- package/dist/tui/features/activity/hooks/use-activity-logs.d.ts +18 -0
- package/dist/tui/features/activity/hooks/use-activity-logs.js +208 -0
- package/dist/tui/features/activity/hooks/use-feed-navigation.d.ts +24 -0
- package/dist/tui/features/activity/hooks/use-feed-navigation.js +43 -0
- package/dist/tui/features/activity/index.d.ts +1 -0
- package/dist/tui/features/activity/index.js +1 -0
- package/dist/tui/features/auth/api/get-auth-state.d.ts +16 -0
- package/dist/tui/features/auth/api/get-auth-state.js +21 -0
- package/dist/tui/features/auth/api/login.d.ts +3 -0
- package/dist/tui/features/auth/api/login.js +14 -0
- package/dist/tui/features/auth/api/logout.d.ts +8 -0
- package/dist/tui/features/auth/api/logout.js +24 -0
- package/dist/tui/features/auth/api/refresh-auth.d.ts +8 -0
- package/dist/tui/features/auth/api/refresh-auth.js +24 -0
- package/dist/tui/features/auth/components/auth-initializer.d.ts +10 -0
- package/dist/tui/features/auth/components/auth-initializer.js +82 -0
- package/dist/tui/features/auth/components/login-flow.d.ts +8 -0
- package/dist/tui/features/auth/components/login-flow.js +62 -0
- package/dist/tui/features/auth/components/logout-flow.d.ts +12 -0
- package/dist/tui/features/auth/components/logout-flow.js +81 -0
- package/dist/tui/features/auth/guards/auth-guard.d.ts +2 -0
- package/dist/tui/features/auth/guards/auth-guard.js +11 -0
- package/dist/tui/features/auth/stores/auth-store.d.ts +27 -0
- package/dist/tui/features/auth/stores/auth-store.js +29 -0
- package/dist/tui/features/commands/components/command-view.d.ts +17 -0
- package/dist/tui/features/commands/components/command-view.js +34 -0
- package/dist/tui/features/commands/definitions/connectors.d.ts +2 -0
- package/dist/tui/features/commands/definitions/connectors.js +9 -0
- package/dist/tui/features/commands/definitions/curate.d.ts +2 -0
- package/dist/tui/features/commands/definitions/curate.js +53 -0
- package/dist/tui/features/commands/definitions/hub-list.d.ts +2 -0
- package/dist/tui/features/commands/definitions/hub-list.js +9 -0
- package/dist/tui/features/commands/definitions/hub-registry-add.d.ts +2 -0
- package/dist/tui/features/commands/definitions/hub-registry-add.js +36 -0
- package/dist/tui/features/commands/definitions/hub-registry-list.d.ts +2 -0
- package/dist/tui/features/commands/definitions/hub-registry-list.js +9 -0
- package/dist/tui/features/commands/definitions/hub-registry-remove.d.ts +2 -0
- package/dist/tui/features/commands/definitions/hub-registry-remove.js +25 -0
- package/dist/tui/features/commands/definitions/hub-registry.d.ts +2 -0
- package/dist/tui/features/commands/definitions/hub-registry.js +8 -0
- package/dist/tui/features/commands/definitions/hub.d.ts +2 -0
- package/dist/tui/features/commands/definitions/hub.js +7 -0
- package/dist/tui/features/commands/definitions/index.d.ts +8 -0
- package/dist/tui/features/commands/definitions/index.js +45 -0
- package/dist/tui/features/commands/definitions/login.d.ts +2 -0
- package/dist/tui/features/commands/definitions/login.js +12 -0
- package/dist/tui/features/commands/definitions/logout.d.ts +2 -0
- package/dist/tui/features/commands/definitions/logout.js +26 -0
- package/dist/tui/features/commands/definitions/model.d.ts +2 -0
- package/dist/tui/features/commands/definitions/model.js +9 -0
- package/dist/tui/features/commands/definitions/new.d.ts +2 -0
- package/dist/tui/features/commands/definitions/new.js +27 -0
- package/dist/tui/features/commands/definitions/providers.d.ts +2 -0
- package/dist/tui/features/commands/definitions/providers.js +9 -0
- package/dist/tui/features/commands/definitions/pull.d.ts +2 -0
- package/dist/tui/features/commands/definitions/pull.js +23 -0
- package/dist/tui/features/commands/definitions/push.d.ts +2 -0
- package/dist/tui/features/commands/definitions/push.js +29 -0
- package/dist/tui/features/commands/definitions/query.d.ts +2 -0
- package/dist/tui/features/commands/definitions/query.js +36 -0
- package/dist/tui/features/commands/definitions/reset.d.ts +2 -0
- package/dist/tui/features/commands/definitions/reset.js +22 -0
- package/dist/tui/features/commands/definitions/space-list.d.ts +2 -0
- package/dist/tui/features/commands/definitions/space-list.js +22 -0
- package/dist/tui/features/commands/definitions/space-switch.d.ts +2 -0
- package/dist/tui/features/commands/definitions/space-switch.js +9 -0
- package/dist/tui/features/commands/definitions/space.d.ts +2 -0
- package/dist/tui/features/commands/definitions/space.js +7 -0
- package/dist/tui/features/commands/definitions/status.d.ts +2 -0
- package/dist/tui/features/commands/definitions/status.js +11 -0
- package/dist/tui/features/commands/hooks/use-commands-controller.d.ts +38 -0
- package/dist/tui/features/commands/hooks/use-commands-controller.js +43 -0
- package/dist/tui/features/commands/hooks/use-slash-command-processor.d.ts +16 -0
- package/dist/tui/features/commands/hooks/use-slash-command-processor.js +134 -0
- package/dist/tui/features/commands/hooks/use-slash-completion.d.ts +30 -0
- package/dist/tui/features/commands/hooks/use-slash-completion.js +256 -0
- package/dist/tui/features/commands/stores/commands-store.d.ts +32 -0
- package/dist/tui/features/commands/stores/commands-store.js +23 -0
- package/dist/tui/features/commands/utils/arg-parser.d.ts +102 -0
- package/dist/tui/features/connectors/api/get-agent-config-paths.d.ts +18 -0
- package/dist/tui/features/connectors/api/get-agent-config-paths.js +17 -0
- package/dist/tui/features/connectors/api/get-agents.d.ts +16 -0
- package/dist/tui/features/connectors/api/get-agents.js +19 -0
- package/dist/tui/features/connectors/api/get-connectors.d.ts +16 -0
- package/dist/tui/features/connectors/api/get-connectors.js +17 -0
- package/dist/tui/features/connectors/api/install-connector.d.ts +14 -0
- package/dist/tui/features/connectors/api/install-connector.js +27 -0
- package/dist/tui/features/connectors/components/agent-search-step.d.ts +9 -0
- package/dist/tui/features/connectors/components/agent-search-step.js +18 -0
- package/dist/tui/features/connectors/components/confirm-switch-step.d.ts +10 -0
- package/dist/tui/features/connectors/components/confirm-switch-step.js +13 -0
- package/dist/tui/features/connectors/components/connector-list-step.d.ts +11 -0
- package/dist/tui/features/connectors/components/connector-list-step.js +29 -0
- package/dist/tui/features/connectors/components/connector-type-step.d.ts +13 -0
- package/dist/tui/features/connectors/components/connector-type-step.js +23 -0
- package/dist/tui/features/connectors/components/connectors-flow.d.ts +17 -0
- package/dist/tui/features/connectors/components/connectors-flow.js +179 -0
- package/dist/tui/features/connectors/utils/get-connector-name.d.ts +3 -0
- package/dist/tui/features/connectors/utils/get-connector-name.js +33 -0
- package/dist/tui/features/curate/api/create-curate-task.d.ts +22 -0
- package/dist/tui/features/curate/api/create-curate-task.js +40 -0
- package/dist/tui/features/curate/components/curate-flow.d.ts +20 -0
- package/dist/tui/features/curate/components/curate-flow.js +41 -0
- package/dist/tui/features/hub/api/add-hub-registry.d.ts +15 -0
- package/dist/tui/features/hub/api/add-hub-registry.js +30 -0
- package/dist/tui/features/hub/api/get-hub-entries.d.ts +16 -0
- package/dist/tui/features/hub/api/get-hub-entries.js +17 -0
- package/dist/tui/features/hub/api/install-hub-entry.d.ts +14 -0
- package/dist/tui/features/hub/api/install-hub-entry.js +24 -0
- package/dist/tui/features/hub/api/list-hub-registries.d.ts +16 -0
- package/dist/tui/features/hub/api/list-hub-registries.js +17 -0
- package/dist/tui/features/hub/api/remove-hub-registry.d.ts +11 -0
- package/dist/tui/features/hub/api/remove-hub-registry.js +24 -0
- package/dist/tui/features/hub/components/hub-agent-step.d.ts +8 -0
- package/dist/tui/features/hub/components/hub-agent-step.js +14 -0
- package/dist/tui/features/hub/components/hub-detail-step.d.ts +10 -0
- package/dist/tui/features/hub/components/hub-detail-step.js +25 -0
- package/dist/tui/features/hub/components/hub-flow.d.ts +7 -0
- package/dist/tui/features/hub/components/hub-flow.js +90 -0
- package/dist/tui/features/hub/components/hub-list-step.d.ts +10 -0
- package/dist/tui/features/hub/components/hub-list-step.js +34 -0
- package/dist/tui/features/hub/components/hub-registry-add-view.d.ts +12 -0
- package/dist/tui/features/hub/components/hub-registry-add-view.js +36 -0
- package/dist/tui/features/hub/components/hub-registry-list-view.d.ts +7 -0
- package/dist/tui/features/hub/components/hub-registry-list-view.js +38 -0
- package/dist/tui/features/hub/components/hub-registry-remove-view.d.ts +8 -0
- package/dist/tui/features/hub/components/hub-registry-remove-view.js +17 -0
- package/dist/tui/features/model/api/get-models-by-providers.d.ts +20 -0
- package/dist/tui/features/model/api/get-models-by-providers.js +17 -0
- package/dist/tui/features/model/api/get-models.d.ts +20 -0
- package/dist/tui/features/model/api/get-models.js +17 -0
- package/dist/tui/features/model/api/set-active-model.d.ts +13 -0
- package/dist/tui/features/model/api/set-active-model.js +13 -0
- package/dist/tui/features/model/components/model-dialog.d.ts +67 -0
- package/dist/tui/features/model/components/model-dialog.js +96 -0
- package/dist/tui/features/model/components/model-flow.d.ts +17 -0
- package/dist/tui/features/model/components/model-flow.js +108 -0
- package/dist/tui/features/model/stores/model-store.d.ts +35 -0
- package/dist/tui/features/model/stores/model-store.js +26 -0
- package/dist/tui/features/onboarding/api/auto-setup-onboarding.d.ts +8 -0
- package/dist/tui/features/onboarding/api/auto-setup-onboarding.js +24 -0
- package/dist/tui/features/onboarding/api/complete-onboarding.d.ts +11 -0
- package/dist/tui/features/onboarding/api/complete-onboarding.js +24 -0
- package/dist/tui/features/onboarding/api/get-onboarding-state.d.ts +16 -0
- package/dist/tui/features/onboarding/api/get-onboarding-state.js +17 -0
- package/dist/tui/features/onboarding/hooks/use-app-view-mode.d.ts +27 -0
- package/dist/tui/features/onboarding/hooks/use-app-view-mode.js +36 -0
- package/dist/tui/features/onboarding/types.d.ts +7 -0
- package/dist/tui/features/onboarding/types.js +4 -0
- package/dist/tui/features/onboarding/utils.d.ts +28 -0
- package/dist/tui/features/onboarding/utils.js +76 -0
- package/dist/tui/features/provider/api/connect-provider.d.ts +13 -0
- package/dist/tui/features/provider/api/connect-provider.js +28 -0
- package/dist/tui/features/provider/api/disconnect-provider.d.ts +11 -0
- package/dist/tui/features/provider/api/disconnect-provider.js +26 -0
- package/dist/tui/features/provider/api/get-active-provider-config.d.ts +16 -0
- package/dist/tui/features/provider/api/get-active-provider-config.js +17 -0
- package/dist/tui/features/provider/api/get-providers.d.ts +16 -0
- package/dist/tui/features/provider/api/get-providers.js +17 -0
- package/dist/tui/features/provider/api/set-active-provider.d.ts +11 -0
- package/dist/tui/features/provider/api/set-active-provider.js +24 -0
- package/dist/tui/features/provider/api/validate-api-key.d.ts +12 -0
- package/dist/tui/features/provider/api/validate-api-key.js +13 -0
- package/dist/tui/features/provider/components/api-key-dialog.d.ts +41 -0
- package/dist/tui/features/provider/components/api-key-dialog.js +126 -0
- package/dist/tui/features/provider/components/base-url-dialog.d.ts +24 -0
- package/dist/tui/features/provider/components/base-url-dialog.js +77 -0
- package/dist/tui/features/provider/components/credential-path-dialog.d.ts +30 -0
- package/dist/tui/features/provider/components/credential-path-dialog.js +85 -0
- package/dist/tui/features/provider/components/model-select-step.d.ts +20 -0
- package/dist/tui/features/provider/components/model-select-step.js +73 -0
- package/dist/tui/features/provider/components/provider-dialog.d.ts +29 -0
- package/dist/tui/features/provider/components/provider-dialog.js +20 -0
- package/dist/tui/features/provider/components/provider-flow.d.ts +25 -0
- package/dist/tui/features/provider/components/provider-flow.js +277 -0
- package/dist/tui/features/provider/stores/provider-store.d.ts +28 -0
- package/dist/tui/features/provider/stores/provider-store.js +22 -0
- package/dist/tui/features/pull/api/execute-pull.d.ts +11 -0
- package/dist/tui/features/pull/api/execute-pull.js +13 -0
- package/dist/tui/features/pull/api/prepare-pull.d.ts +20 -0
- package/dist/tui/features/pull/api/prepare-pull.js +17 -0
- package/dist/tui/features/pull/components/pull-flow.d.ts +12 -0
- package/dist/tui/features/pull/components/pull-flow.js +70 -0
- package/dist/tui/features/push/api/execute-push.d.ts +11 -0
- package/dist/tui/features/push/api/execute-push.js +13 -0
- package/dist/tui/features/push/api/prepare-push.d.ts +20 -0
- package/dist/tui/features/push/api/prepare-push.js +17 -0
- package/dist/tui/features/push/components/push-flow.d.ts +13 -0
- package/dist/tui/features/push/components/push-flow.js +86 -0
- package/dist/tui/features/query/api/create-query-task.d.ts +17 -0
- package/dist/tui/features/query/api/create-query-task.js +27 -0
- package/dist/tui/features/query/components/query-flow.d.ts +18 -0
- package/dist/tui/features/query/components/query-flow.js +36 -0
- package/dist/tui/features/reset/api/execute-reset.d.ts +8 -0
- package/dist/tui/features/reset/api/execute-reset.js +13 -0
- package/dist/tui/features/reset/components/reset-flow.d.ts +12 -0
- package/dist/tui/features/reset/components/reset-flow.js +44 -0
- package/dist/tui/features/session/components/new-session-flow.d.ts +12 -0
- package/dist/tui/features/session/components/new-session-flow.js +28 -0
- package/dist/tui/features/space/api/get-spaces.d.ts +16 -0
- package/dist/tui/features/space/api/get-spaces.js +17 -0
- package/dist/tui/features/space/api/switch-space.d.ts +11 -0
- package/dist/tui/features/space/api/switch-space.js +24 -0
- package/dist/tui/features/space/components/space-list-view.d.ts +12 -0
- package/dist/tui/features/space/components/space-list-view.js +56 -0
- package/dist/tui/features/space/components/space-switch-flow.d.ts +13 -0
- package/dist/tui/features/space/components/space-switch-flow.js +97 -0
- package/dist/tui/features/status/api/get-status.d.ts +16 -0
- package/dist/tui/features/status/api/get-status.js +17 -0
- package/dist/tui/features/status/components/status-view.d.ts +12 -0
- package/dist/tui/features/status/components/status-view.js +26 -0
- package/dist/tui/features/status/utils/format-status.d.ts +5 -0
- package/dist/tui/features/status/utils/format-status.js +62 -0
- package/dist/tui/features/tasks/components/task-subscription-initializer.d.ts +5 -0
- package/dist/tui/features/tasks/components/task-subscription-initializer.js +9 -0
- package/dist/tui/features/tasks/hooks/use-task-subscriptions.d.ts +5 -0
- package/dist/tui/features/tasks/hooks/use-task-subscriptions.js +74 -0
- package/dist/tui/features/tasks/stores/tasks-store.d.ts +92 -0
- package/dist/tui/features/tasks/stores/tasks-store.js +262 -0
- package/dist/tui/features/transport/components/transport-initializer.d.ts +13 -0
- package/dist/tui/features/transport/components/transport-initializer.js +107 -0
- package/dist/tui/features/transport/hooks/use-transport.d.ts +19 -0
- package/dist/tui/features/transport/hooks/use-transport.js +16 -0
- package/dist/tui/hooks/index.d.ts +14 -13
- package/dist/tui/hooks/index.js +15 -9
- package/dist/tui/hooks/use-terminal-breakpoint.js +3 -2
- package/dist/tui/lib/api-client.d.ts +20 -0
- package/dist/tui/lib/api-client.js +29 -0
- package/dist/tui/lib/environment.d.ts +18 -0
- package/dist/tui/lib/environment.js +18 -0
- package/dist/tui/lib/react-query.d.ts +17 -0
- package/dist/tui/lib/react-query.js +17 -0
- package/dist/tui/lib/transport-logger.d.ts +13 -0
- package/dist/tui/lib/transport-logger.js +40 -0
- package/dist/tui/providers/app-providers.d.ts +1 -16
- package/dist/tui/providers/app-providers.js +26 -4
- package/dist/tui/repl-startup.d.ts +1 -12
- package/dist/tui/repl-startup.js +6 -24
- package/dist/tui/stores/mode-store.d.ts +25 -0
- package/dist/tui/stores/mode-store.js +49 -0
- package/dist/tui/stores/theme-store.d.ts +43 -0
- package/dist/tui/stores/theme-store.js +39 -0
- package/dist/tui/stores/transport-store.d.ts +40 -0
- package/dist/tui/stores/transport-store.js +40 -0
- package/dist/tui/types/commands.d.ts +23 -91
- package/dist/tui/types/commands.js +1 -13
- package/dist/tui/types/index.d.ts +3 -4
- package/dist/tui/types/index.js +0 -2
- package/dist/tui/types/messages.d.ts +8 -1
- package/dist/tui/types/ui.d.ts +0 -5
- package/dist/tui/utils/error-messages.d.ts +22 -0
- package/dist/tui/utils/error-messages.js +45 -0
- package/dist/tui/utils/index.d.ts +2 -0
- package/dist/tui/utils/index.js +2 -0
- package/dist/tui/utils/input.d.ts +14 -0
- package/dist/tui/utils/input.js +17 -0
- package/dist/tui/utils/log.d.ts +1 -1
- package/node_modules/@campfirein/brv-transport-client/README.md +79 -338
- package/node_modules/@campfirein/brv-transport-client/dist/constants.d.ts +18 -3
- package/node_modules/@campfirein/brv-transport-client/dist/constants.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/constants.js +25 -4
- package/node_modules/@campfirein/brv-transport-client/dist/constants.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/entities/instance-info.d.ts +4 -9
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/entities/instance-info.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/entities/instance-info.js +9 -24
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/entities/instance-info.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/connection-error.d.ts +20 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/connection-error.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/connection-error.js +30 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/connection-error.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/transport-error.d.ts +3 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/transport-error.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/transport-error.js +4 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/transport-error.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/event-names.d.ts +10 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/event-names.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/event-names.js +10 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/event-names.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/index.d.ts +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/index.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/index.js +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/index.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/types.d.ts +9 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/types.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/types.js +8 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/types.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/common.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/common.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/event-name-validator.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/event-name-validator.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/index.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/index.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/room-name-validator.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/room-name-validator.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/url-validator.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/url-validator.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-factory-config.d.ts +150 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-factory-config.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-factory-config.js +8 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-factory-config.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-factory.d.ts +9 -4
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-factory.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-factory.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-logger.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-logger.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-connection-state.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-connection-state.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-event-dispatcher.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-event-dispatcher.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-force-reconnect-manager.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-force-reconnect-manager.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-discovery.d.ts +9 -22
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-discovery.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-discovery.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-manager.d.ts +46 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-manager.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-manager.js +2 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-manager.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-reconnection-strategy.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-reconnection-strategy.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-room-manager.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-room-manager.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-socket-provider.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-socket-provider.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-socket.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-socket.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-spawn-lock.d.ts +27 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-spawn-lock.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-spawn-lock.js +2 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-spawn-lock.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-wake-detector.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-wake-detector.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/index.d.ts +26 -16
- package/node_modules/@campfirein/brv-transport-client/dist/index.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/index.js +28 -18
- package/node_modules/@campfirein/brv-transport-client/dist/index.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/client-factory.d.ts +49 -167
- package/node_modules/@campfirein/brv-transport-client/dist/infra/client-factory.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/client-factory.js +161 -260
- package/node_modules/@campfirein/brv-transport-client/dist/infra/client-factory.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/connection-state-manager.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/connection-state-manager.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-connector.d.ts +46 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-connector.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-connector.js +47 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-connector.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-discovery-sync.d.ts +41 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-discovery-sync.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-discovery-sync.js +48 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-discovery-sync.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-health.d.ts +37 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-health.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-health.js +35 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-health.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-instance-discovery.d.ts +22 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-instance-discovery.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-instance-discovery.js +83 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-instance-discovery.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-reconnector.d.ts +60 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-reconnector.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-reconnector.js +101 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-reconnector.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-spawner.d.ts +33 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-spawner.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-spawner.js +161 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-spawner.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/event-dispatcher.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/event-dispatcher.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/find-project-root.d.ts +11 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/find-project-root.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/find-project-root.js +31 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/find-project-root.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/force-reconnect-manager.d.ts +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/force-reconnect-manager.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/force-reconnect-manager.js +4 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/force-reconnect-manager.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/global-data-path.d.ts +12 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/global-data-path.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/global-data-path.js +38 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/global-data-path.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/global-instance-manager.d.ts +37 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/global-instance-manager.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/global-instance-manager.js +100 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/global-instance-manager.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/heartbeat-utils.d.ts +12 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/heartbeat-utils.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/heartbeat-utils.js +29 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/heartbeat-utils.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/no-op-client-logger.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/no-op-client-logger.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/process-utils.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/process-utils.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/reconnection-strategy.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/reconnection-strategy.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/resolve-server-path.d.ts +12 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/resolve-server-path.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/resolve-server-path.js +52 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/resolve-server-path.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/room-manager.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/room-manager.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/index.d.ts +2 -2
- package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/index.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/index.js +4 -2
- package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/index.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/schemas.d.ts +65 -3
- package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/schemas.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/schemas.js +44 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/schemas.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/types.d.ts +11 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/types.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/types.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/socket-io-client.d.ts +32 -61
- package/node_modules/@campfirein/brv-transport-client/dist/infra/socket-io-client.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/socket-io-client.js +133 -37
- package/node_modules/@campfirein/brv-transport-client/dist/infra/socket-io-client.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/spawn-lock.d.ts +27 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/spawn-lock.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/spawn-lock.js +124 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/spawn-lock.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/utils/deep-freeze.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/utils/deep-freeze.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/wait-for-connected-client.d.ts +13 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/wait-for-connected-client.d.ts.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/wait-for-connected-client.js +33 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/wait-for-connected-client.js.map +1 -0
- package/node_modules/@campfirein/brv-transport-client/dist/infra/wake-detector.d.ts.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/wake-detector.js.map +1 -1
- package/node_modules/@campfirein/brv-transport-client/package.json +3 -12
- package/oclif.manifest.json +1224 -180
- package/package.json +47 -8
- package/dist/agent/infra/llm/generators/openrouter-content-generator.d.ts +0 -94
- package/dist/agent/infra/llm/generators/openrouter-content-generator.js +0 -280
- package/dist/agent/infra/llm/internal-llm-service.d.ts +0 -362
- package/dist/agent/infra/llm/internal-llm-service.js +0 -1039
- package/dist/agent/infra/llm/openrouter-llm-service.d.ts +0 -215
- package/dist/agent/infra/llm/openrouter-llm-service.js +0 -572
- package/dist/agent/infra/llm/stream-processor.d.ts +0 -178
- package/dist/agent/infra/llm/stream-processor.js +0 -350
- package/dist/agent/infra/llm/transformers/openrouter-stream-transformer.d.ts +0 -49
- package/dist/agent/infra/llm/transformers/openrouter-stream-transformer.js +0 -270
- package/dist/agent/infra/tools/implementations/bash-exec-tool.d.ts +0 -13
- package/dist/agent/infra/tools/implementations/bash-exec-tool.js +0 -110
- package/dist/agent/infra/tools/implementations/bash-output-tool.d.ts +0 -12
- package/dist/agent/infra/tools/implementations/bash-output-tool.js +0 -43
- package/dist/agent/infra/tools/implementations/batch-tool.d.ts +0 -12
- package/dist/agent/infra/tools/implementations/batch-tool.js +0 -142
- package/dist/agent/infra/tools/implementations/create-knowledge-topic-tool.d.ts +0 -11
- package/dist/agent/infra/tools/implementations/create-knowledge-topic-tool.js +0 -149
- package/dist/agent/infra/tools/implementations/delete-memory-tool.d.ts +0 -12
- package/dist/agent/infra/tools/implementations/delete-memory-tool.js +0 -37
- package/dist/agent/infra/tools/implementations/edit-file-tool.d.ts +0 -13
- package/dist/agent/infra/tools/implementations/edit-file-tool.js +0 -50
- package/dist/agent/infra/tools/implementations/edit-memory-tool.d.ts +0 -13
- package/dist/agent/infra/tools/implementations/edit-memory-tool.js +0 -53
- package/dist/agent/infra/tools/implementations/kill-process-tool.d.ts +0 -12
- package/dist/agent/infra/tools/implementations/kill-process-tool.js +0 -55
- package/dist/agent/infra/tools/implementations/list-memories-tool.d.ts +0 -12
- package/dist/agent/infra/tools/implementations/list-memories-tool.js +0 -63
- package/dist/agent/infra/tools/implementations/read-memory-tool.d.ts +0 -12
- package/dist/agent/infra/tools/implementations/read-memory-tool.js +0 -39
- package/dist/agent/infra/tools/implementations/read-todos-tool.d.ts +0 -11
- package/dist/agent/infra/tools/implementations/read-todos-tool.js +0 -39
- package/dist/agent/infra/tools/implementations/search-history-tool.d.ts +0 -10
- package/dist/agent/infra/tools/implementations/search-history-tool.js +0 -36
- package/dist/agent/infra/tools/implementations/spec-analyze-tool.d.ts +0 -7
- package/dist/agent/infra/tools/implementations/spec-analyze-tool.js +0 -78
- package/dist/agent/infra/tools/implementations/write-memory-tool.d.ts +0 -13
- package/dist/agent/infra/tools/implementations/write-memory-tool.js +0 -52
- package/dist/agent/infra/tools/implementations/write-todos-tool.d.ts +0 -13
- package/dist/agent/infra/tools/implementations/write-todos-tool.js +0 -121
- package/dist/oclif/commands/curate.d.ts +0 -21
- package/dist/oclif/commands/curate.js +0 -96
- package/dist/oclif/commands/init.d.ts +0 -18
- package/dist/oclif/commands/init.js +0 -129
- package/dist/server/core/domain/entities/context-tree-index.d.ts +0 -26
- package/dist/server/core/domain/entities/context-tree-index.js +0 -27
- package/dist/server/core/domain/entities/event.d.ts +0 -8
- package/dist/server/core/domain/entities/event.js +0 -25
- package/dist/server/core/domain/errors/ace-error.d.ts +0 -34
- package/dist/server/core/domain/errors/ace-error.js +0 -53
- package/dist/server/core/domain/errors/brv-config-version-error.d.ts +0 -16
- package/dist/server/core/domain/errors/brv-config-version-error.js +0 -21
- package/dist/server/core/domain/errors/core-process-error.d.ts +0 -27
- package/dist/server/core/domain/errors/core-process-error.js +0 -43
- package/dist/server/core/domain/instance/index.d.ts +0 -1
- package/dist/server/core/domain/instance/index.js +0 -1
- package/dist/server/core/domain/instance/types.d.ts +0 -57
- package/dist/server/core/domain/instance/types.js +0 -72
- package/dist/server/core/interfaces/instance/i-instance-discovery.d.ts +0 -45
- package/dist/server/core/interfaces/instance/i-instance-manager.d.ts +0 -58
- package/dist/server/core/interfaces/instance/index.d.ts +0 -2
- package/dist/server/core/interfaces/instance/index.js +0 -2
- package/dist/server/core/interfaces/noop-implementations.d.ts +0 -53
- package/dist/server/core/interfaces/noop-implementations.js +0 -62
- package/dist/server/core/interfaces/services/i-tracking-service.d.ts +0 -21
- package/dist/server/core/interfaces/usecase/i-connectors-use-case.d.ts +0 -3
- package/dist/server/core/interfaces/usecase/i-curate-use-case.d.ts +0 -14
- package/dist/server/core/interfaces/usecase/i-init-use-case.d.ts +0 -11
- package/dist/server/core/interfaces/usecase/i-login-use-case.d.ts +0 -6
- package/dist/server/core/interfaces/usecase/i-logout-use-case.d.ts +0 -5
- package/dist/server/core/interfaces/usecase/i-pull-use-case.d.ts +0 -7
- package/dist/server/core/interfaces/usecase/i-push-use-case.d.ts +0 -8
- package/dist/server/core/interfaces/usecase/i-query-use-case.d.ts +0 -11
- package/dist/server/core/interfaces/usecase/i-reset-use-case.d.ts +0 -6
- package/dist/server/core/interfaces/usecase/i-space-list-use-case.d.ts +0 -3
- package/dist/server/core/interfaces/usecase/i-space-switch-use-case.d.ts +0 -3
- package/dist/server/core/interfaces/usecase/i-status-use-case.d.ts +0 -6
- package/dist/server/infra/executor/task-processor.d.ts +0 -89
- package/dist/server/infra/executor/task-processor.js +0 -133
- package/dist/server/infra/instance/file-instance-discovery.d.ts +0 -31
- package/dist/server/infra/instance/file-instance-discovery.js +0 -84
- package/dist/server/infra/instance/file-instance-manager.d.ts +0 -46
- package/dist/server/infra/instance/file-instance-manager.js +0 -123
- package/dist/server/infra/instance/index.d.ts +0 -3
- package/dist/server/infra/instance/index.js +0 -3
- package/dist/server/infra/instance/process-utils.d.ts +0 -14
- package/dist/server/infra/instance/process-utils.js +0 -39
- package/dist/server/infra/process/agent-worker.d.ts +0 -20
- package/dist/server/infra/process/agent-worker.js +0 -1392
- package/dist/server/infra/process/inline-agent-executor.d.ts +0 -32
- package/dist/server/infra/process/inline-agent-executor.js +0 -267
- package/dist/server/infra/process/ipc-types.d.ts +0 -68
- package/dist/server/infra/process/ipc-types.js +0 -12
- package/dist/server/infra/process/parent-heartbeat.d.ts +0 -47
- package/dist/server/infra/process/parent-heartbeat.js +0 -118
- package/dist/server/infra/process/process-manager.d.ts +0 -242
- package/dist/server/infra/process/process-manager.js +0 -765
- package/dist/server/infra/process/task-queue-manager.d.ts +0 -125
- package/dist/server/infra/process/task-queue-manager.js +0 -185
- package/dist/server/infra/process/transport-worker.d.ts +0 -20
- package/dist/server/infra/process/transport-worker.js +0 -196
- package/dist/server/infra/storage/keychain-token-store.d.ts +0 -13
- package/dist/server/infra/storage/keychain-token-store.js +0 -42
- package/dist/server/infra/terminal/oclif-terminal.d.ts +0 -19
- package/dist/server/infra/terminal/oclif-terminal.js +0 -60
- package/dist/server/infra/terminal/repl-terminal.d.ts +0 -31
- package/dist/server/infra/terminal/repl-terminal.js +0 -116
- package/dist/server/infra/tracking/mixpanel-tracking-service.d.ts +0 -24
- package/dist/server/infra/tracking/mixpanel-tracking-service.js +0 -49
- package/dist/server/infra/transport/transport-factory.d.ts +0 -17
- package/dist/server/infra/transport/transport-factory.js +0 -31
- package/dist/server/infra/usecase/connectors-use-case.d.ts +0 -63
- package/dist/server/infra/usecase/connectors-use-case.js +0 -234
- package/dist/server/infra/usecase/curate-use-case.d.ts +0 -59
- package/dist/server/infra/usecase/curate-use-case.js +0 -269
- package/dist/server/infra/usecase/init-use-case.d.ts +0 -126
- package/dist/server/infra/usecase/init-use-case.js +0 -538
- package/dist/server/infra/usecase/login-use-case.d.ts +0 -30
- package/dist/server/infra/usecase/login-use-case.js +0 -127
- package/dist/server/infra/usecase/logout-use-case.d.ts +0 -19
- package/dist/server/infra/usecase/logout-use-case.js +0 -48
- package/dist/server/infra/usecase/pull-use-case.d.ts +0 -49
- package/dist/server/infra/usecase/pull-use-case.js +0 -147
- package/dist/server/infra/usecase/push-use-case.d.ts +0 -50
- package/dist/server/infra/usecase/push-use-case.js +0 -191
- package/dist/server/infra/usecase/query-use-case.d.ts +0 -73
- package/dist/server/infra/usecase/query-use-case.js +0 -410
- package/dist/server/infra/usecase/reset-use-case.d.ts +0 -21
- package/dist/server/infra/usecase/reset-use-case.js +0 -60
- package/dist/server/infra/usecase/space-list-use-case.d.ts +0 -27
- package/dist/server/infra/usecase/space-list-use-case.js +0 -64
- package/dist/server/infra/usecase/space-switch-use-case.d.ts +0 -26
- package/dist/server/infra/usecase/space-switch-use-case.js +0 -110
- package/dist/server/infra/usecase/status-use-case.d.ts +0 -75
- package/dist/server/infra/usecase/status-use-case.js +0 -268
- package/dist/server/templates/skill/TROUBLESHOOTING.md +0 -50
- package/dist/server/templates/skill/WORKFLOWS.md +0 -229
- package/dist/server/utils/environment-detector.d.ts +0 -20
- package/dist/server/utils/environment-detector.js +0 -92
- package/dist/tui/app.d.ts +0 -9
- package/dist/tui/app.js +0 -28
- package/dist/tui/commands/arg-parser.d.ts +0 -102
- package/dist/tui/commands/connectors-command.d.ts +0 -8
- package/dist/tui/commands/connectors-command.js +0 -49
- package/dist/tui/commands/curate-command.d.ts +0 -9
- package/dist/tui/commands/curate-command.js +0 -80
- package/dist/tui/commands/index.d.ts +0 -8
- package/dist/tui/commands/index.js +0 -45
- package/dist/tui/commands/init-command.d.ts +0 -7
- package/dist/tui/commands/init-command.js +0 -87
- package/dist/tui/commands/login-command.d.ts +0 -7
- package/dist/tui/commands/login-command.js +0 -50
- package/dist/tui/commands/logout-command.d.ts +0 -5
- package/dist/tui/commands/logout-command.js +0 -46
- package/dist/tui/commands/model-command.d.ts +0 -13
- package/dist/tui/commands/model-command.js +0 -212
- package/dist/tui/commands/new-command.d.ts +0 -14
- package/dist/tui/commands/new-command.js +0 -61
- package/dist/tui/commands/provider-command.d.ts +0 -13
- package/dist/tui/commands/provider-command.js +0 -181
- package/dist/tui/commands/pull-command.d.ts +0 -5
- package/dist/tui/commands/pull-command.js +0 -61
- package/dist/tui/commands/push-command.d.ts +0 -5
- package/dist/tui/commands/push-command.js +0 -66
- package/dist/tui/commands/query-command.d.ts +0 -5
- package/dist/tui/commands/query-command.js +0 -63
- package/dist/tui/commands/reset-command.d.ts +0 -5
- package/dist/tui/commands/reset-command.js +0 -61
- package/dist/tui/commands/space/index.d.ts +0 -5
- package/dist/tui/commands/space/index.js +0 -14
- package/dist/tui/commands/space/list-command.d.ts +0 -5
- package/dist/tui/commands/space/list-command.js +0 -70
- package/dist/tui/commands/space/switch-command.d.ts +0 -5
- package/dist/tui/commands/space/switch-command.js +0 -35
- package/dist/tui/commands/status-command.d.ts +0 -5
- package/dist/tui/commands/status-command.js +0 -39
- package/dist/tui/components/api-key-dialog.d.ts +0 -39
- package/dist/tui/components/api-key-dialog.js +0 -94
- package/dist/tui/components/message-list.d.ts +0 -16
- package/dist/tui/components/message-list.js +0 -120
- package/dist/tui/components/model-dialog.d.ts +0 -63
- package/dist/tui/components/model-dialog.js +0 -89
- package/dist/tui/components/provider-dialog.d.ts +0 -27
- package/dist/tui/components/provider-dialog.js +0 -31
- package/dist/tui/components/tab-bar.d.ts +0 -11
- package/dist/tui/components/tab-bar.js +0 -11
- package/dist/tui/constants.d.ts +0 -6
- package/dist/tui/constants.js +0 -8
- package/dist/tui/contexts/auth-context.d.ts +0 -33
- package/dist/tui/contexts/auth-context.js +0 -193
- package/dist/tui/contexts/commands-context.d.ts +0 -37
- package/dist/tui/contexts/commands-context.js +0 -65
- package/dist/tui/contexts/index.d.ts +0 -11
- package/dist/tui/contexts/index.js +0 -11
- package/dist/tui/contexts/mode-context.d.ts +0 -43
- package/dist/tui/contexts/mode-context.js +0 -70
- package/dist/tui/contexts/onboarding-context.d.ts +0 -49
- package/dist/tui/contexts/onboarding-context.js +0 -193
- package/dist/tui/contexts/services-context.d.ts +0 -32
- package/dist/tui/contexts/services-context.js +0 -27
- package/dist/tui/contexts/tasks-context.d.ts +0 -101
- package/dist/tui/contexts/tasks-context.js +0 -422
- package/dist/tui/contexts/theme-context.d.ts +0 -55
- package/dist/tui/contexts/theme-context.js +0 -62
- package/dist/tui/contexts/transport-context.d.ts +0 -29
- package/dist/tui/contexts/transport-context.js +0 -81
- package/dist/tui/hooks/use-activity-logs.d.ts +0 -18
- package/dist/tui/hooks/use-activity-logs.js +0 -207
- package/dist/tui/hooks/use-auth-polling.d.ts +0 -27
- package/dist/tui/hooks/use-auth-polling.js +0 -118
- package/dist/tui/hooks/use-onboarding-logs.d.ts +0 -17
- package/dist/tui/hooks/use-onboarding-logs.js +0 -26
- package/dist/tui/hooks/use-onboarding.d.ts +0 -7
- package/dist/tui/hooks/use-onboarding.js +0 -6
- package/dist/tui/hooks/use-slash-command-processor.d.ts +0 -16
- package/dist/tui/hooks/use-slash-command-processor.js +0 -132
- package/dist/tui/hooks/use-slash-completion.d.ts +0 -30
- package/dist/tui/hooks/use-slash-completion.js +0 -230
- package/dist/tui/index.d.ts +0 -1
- package/dist/tui/index.js +0 -1
- package/dist/tui/types.d.ts +0 -1
- package/dist/tui/types.js +0 -1
- package/dist/tui/utils/transport-client-helper.d.ts +0 -9
- package/dist/tui/utils/transport-client-helper.js +0 -99
- package/dist/tui/views/index.d.ts +0 -5
- package/dist/tui/views/index.js +0 -5
- package/dist/tui/views/init-view.d.ts +0 -15
- package/dist/tui/views/init-view.js +0 -41
- package/dist/tui/views/login-view.d.ts +0 -10
- package/dist/tui/views/login-view.js +0 -33
- package/dist/tui/views/main-view.d.ts +0 -12
- package/dist/tui/views/main-view.js +0 -20
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-reader.d.ts +0 -19
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-reader.d.ts.map +0 -1
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-reader.js +0 -2
- package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-reader.js.map +0 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-discovery.d.ts +0 -32
- package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-discovery.d.ts.map +0 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-discovery.js +0 -85
- package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-discovery.js.map +0 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-reader.d.ts +0 -16
- package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-reader.d.ts.map +0 -1
- package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-reader.js +0 -47
- package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-reader.js.map +0 -1
- /package/dist/{server/core/interfaces/instance/i-instance-discovery.js → agent/infra/agent/provider-update-config.js} +0 -0
- /package/dist/server/core/{interfaces/instance/i-instance-manager.js → domain/entities/curate-log-entry.js} +0 -0
- /package/dist/server/core/{interfaces/services/i-tracking-service.js → domain/entities/curation-status.js} +0 -0
- /package/dist/server/core/{interfaces/usecase/i-connectors-use-case.js → domain/transport/task-info.js} +0 -0
- /package/dist/server/core/interfaces/{usecase/i-curate-use-case.js → agent/i-agent-pool.js} +0 -0
- /package/dist/server/core/interfaces/{usecase/i-init-use-case.js → client/i-client-manager.js} +0 -0
- /package/dist/server/core/interfaces/{usecase/i-login-use-case.js → context-tree/i-context-tree-merger.js} +0 -0
- /package/dist/server/core/interfaces/{usecase/i-logout-use-case.js → daemon/i-agent-idle-timeout-policy.js} +0 -0
- /package/dist/server/core/interfaces/{usecase/i-pull-use-case.js → daemon/i-daemon-resilience.js} +0 -0
- /package/dist/server/core/interfaces/{usecase/i-push-use-case.js → daemon/i-heartbeat-writer.js} +0 -0
- /package/dist/server/core/interfaces/{usecase/i-query-use-case.js → daemon/i-idle-timeout-policy.js} +0 -0
- /package/dist/server/core/interfaces/{usecase/i-reset-use-case.js → daemon/i-shutdown-handler.js} +0 -0
- /package/dist/server/core/interfaces/{usecase/i-space-list-use-case.js → hub/i-hub-install-service.js} +0 -0
- /package/dist/server/core/interfaces/{usecase/i-space-switch-use-case.js → hub/i-hub-keychain-store.js} +0 -0
- /package/dist/server/core/interfaces/{usecase/i-status-use-case.js → hub/i-hub-registry-config-store.js} +0 -0
- /package/dist/tui/{commands → features/commands/utils}/arg-parser.js +0 -0
|
@@ -1,1039 +0,0 @@
|
|
|
1
|
-
import { getErrorMessage } from '../../../server/utils/error-helpers.js';
|
|
2
|
-
import { AgentStateMachine } from '../../core/domain/agent/agent-state-machine.js';
|
|
3
|
-
import { AgentState, TerminationReason } from '../../core/domain/agent/agent-state.js';
|
|
4
|
-
import { LlmGenerationError, LlmMaxIterationsError, LlmResponseParsingError } from '../../core/domain/errors/llm-error.js';
|
|
5
|
-
import { getEffectiveMaxInputTokens, getMaxInputTokensForModel, getProviderFromModel, isValidProviderModel, safeParseLLMConfig, } from '../../core/domain/llm/index.js';
|
|
6
|
-
import { StreamChunkType, } from '../../core/interfaces/i-content-generator.js';
|
|
7
|
-
import { NoOpLogger } from '../../core/interfaces/i-logger.js';
|
|
8
|
-
import { EnvironmentContextBuilder } from '../environment/environment-context-builder.js';
|
|
9
|
-
import { ToolMetadataHandler } from '../tools/streaming/metadata-handler.js';
|
|
10
|
-
import { AsyncMutex } from './context/async-mutex.js';
|
|
11
|
-
import { ContextManager } from './context/context-manager.js';
|
|
12
|
-
import { LoopDetector } from './context/loop-detector.js';
|
|
13
|
-
import { ClaudeMessageFormatter } from './formatters/claude-formatter.js';
|
|
14
|
-
import { GeminiMessageFormatter } from './formatters/gemini-formatter.js';
|
|
15
|
-
import { ThoughtParser } from './thought-parser.js';
|
|
16
|
-
import { ClaudeTokenizer } from './tokenizers/claude-tokenizer.js';
|
|
17
|
-
import { GeminiTokenizer } from './tokenizers/gemini-tokenizer.js';
|
|
18
|
-
import { ToolOutputProcessor } from './tool-output-processor.js';
|
|
19
|
-
/** Target utilization ratio for message tokens (leaves headroom for response) */
|
|
20
|
-
const TARGET_MESSAGE_TOKEN_UTILIZATION = 0.7;
|
|
21
|
-
/**
|
|
22
|
-
* ByteRover LLM Service.
|
|
23
|
-
*
|
|
24
|
-
* Orchestrates the agentic loop using IContentGenerator for LLM calls.
|
|
25
|
-
* Responsibilities:
|
|
26
|
-
* - Manage conversation context via ContextManager
|
|
27
|
-
* - Execute agentic loop (call LLM → execute tools → repeat)
|
|
28
|
-
* - Delegate tool execution to ToolManager
|
|
29
|
-
* - Delegate LLM calls to IContentGenerator
|
|
30
|
-
* - Handle errors and iteration limits
|
|
31
|
-
*
|
|
32
|
-
* Does NOT:
|
|
33
|
-
* - Execute tools directly (uses ToolManager)
|
|
34
|
-
* - Store persistent history (uses in-memory ContextManager)
|
|
35
|
-
* - Format messages for specific providers (handled by generators)
|
|
36
|
-
* - Handle retry logic (handled by RetryableContentGenerator decorator)
|
|
37
|
-
*/
|
|
38
|
-
export class ByteRoverLLMService {
|
|
39
|
-
compactionService;
|
|
40
|
-
config;
|
|
41
|
-
contextManager;
|
|
42
|
-
environmentBuilder;
|
|
43
|
-
formatter;
|
|
44
|
-
generator;
|
|
45
|
-
logger;
|
|
46
|
-
loopDetector;
|
|
47
|
-
memoryManager;
|
|
48
|
-
metadataHandler;
|
|
49
|
-
mutex = new AsyncMutex();
|
|
50
|
-
outputProcessor;
|
|
51
|
-
providerType;
|
|
52
|
-
sessionEventBus;
|
|
53
|
-
sessionId;
|
|
54
|
-
systemPromptManager;
|
|
55
|
-
tokenizer;
|
|
56
|
-
toolManager;
|
|
57
|
-
workingDirectory;
|
|
58
|
-
/**
|
|
59
|
-
* Initialize a new ByteRover LLM service instance.
|
|
60
|
-
*
|
|
61
|
-
* Sets up the service with all required dependencies and initializes:
|
|
62
|
-
* - Context manager for conversation history
|
|
63
|
-
* - Message formatter (Gemini or Claude format based on model)
|
|
64
|
-
* - Token counter/tokenizer for the selected model
|
|
65
|
-
* - Configuration with sensible defaults
|
|
66
|
-
*
|
|
67
|
-
* Each service instance maintains isolated conversation context,
|
|
68
|
-
* allowing multiple concurrent sessions with separate histories.
|
|
69
|
-
*
|
|
70
|
-
* @param sessionId - Unique identifier for this session
|
|
71
|
-
* @param generator - Content generator for LLM calls (with decorators pre-applied)
|
|
72
|
-
* @param config - LLM service configuration (model, tokens, temperature)
|
|
73
|
-
* @param options - Service dependencies
|
|
74
|
-
* @param options.toolManager - Tool manager for executing agent tools
|
|
75
|
-
* @param options.systemPromptManager - System prompt manager for building system prompts
|
|
76
|
-
* @param options.memoryManager - Memory manager for agent memories
|
|
77
|
-
* @param options.sessionEventBus - Event bus for session lifecycle events
|
|
78
|
-
* @param options.compactionService - Optional compaction service for context overflow management
|
|
79
|
-
* @param options.historyStorage - Optional history storage for persistence
|
|
80
|
-
* @param options.logger - Optional logger for structured logging
|
|
81
|
-
*/
|
|
82
|
-
constructor(sessionId, generator, config, options) {
|
|
83
|
-
this.sessionId = sessionId;
|
|
84
|
-
this.generator = generator;
|
|
85
|
-
this.compactionService = options.compactionService;
|
|
86
|
-
this.toolManager = options.toolManager;
|
|
87
|
-
this.systemPromptManager = options.systemPromptManager;
|
|
88
|
-
this.memoryManager = options.memoryManager;
|
|
89
|
-
this.sessionEventBus = options.sessionEventBus;
|
|
90
|
-
this.logger = options.logger ?? new NoOpLogger();
|
|
91
|
-
this.outputProcessor = new ToolOutputProcessor(config.truncationConfig);
|
|
92
|
-
this.loopDetector = new LoopDetector();
|
|
93
|
-
this.environmentBuilder = new EnvironmentContextBuilder();
|
|
94
|
-
this.metadataHandler = new ToolMetadataHandler(this.sessionEventBus);
|
|
95
|
-
this.workingDirectory = process.cwd();
|
|
96
|
-
// Detect provider type from model name (needed for validation)
|
|
97
|
-
const modelName = config.model ?? 'claude-haiku-4-5@20251001';
|
|
98
|
-
this.providerType = this.detectProviderType(modelName);
|
|
99
|
-
// Validate core LLM config using Zod schema (logs warning if invalid)
|
|
100
|
-
this.validateConfig(modelName, config.maxInputTokens);
|
|
101
|
-
// Get effective max input tokens from registry (respects model limits)
|
|
102
|
-
const effectiveMaxInputTokens = getEffectiveMaxInputTokens(this.providerType, modelName, config.maxInputTokens);
|
|
103
|
-
this.config = {
|
|
104
|
-
maxInputTokens: effectiveMaxInputTokens,
|
|
105
|
-
maxIterations: config.maxIterations ?? 50,
|
|
106
|
-
maxTokens: config.maxTokens ?? 8192,
|
|
107
|
-
model: modelName,
|
|
108
|
-
temperature: config.temperature ?? 0.7,
|
|
109
|
-
thinkingConfig: config.thinkingConfig,
|
|
110
|
-
timeout: config.timeout,
|
|
111
|
-
verbose: config.verbose ?? false,
|
|
112
|
-
};
|
|
113
|
-
// Initialize formatter and tokenizer based on provider type
|
|
114
|
-
if (this.providerType === 'claude') {
|
|
115
|
-
this.formatter = new ClaudeMessageFormatter();
|
|
116
|
-
this.tokenizer = new ClaudeTokenizer(this.config.model);
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
this.formatter = new GeminiMessageFormatter();
|
|
120
|
-
this.tokenizer = new GeminiTokenizer(this.config.model);
|
|
121
|
-
}
|
|
122
|
-
// Initialize context manager with optional history storage
|
|
123
|
-
this.contextManager = new ContextManager({
|
|
124
|
-
formatter: this.formatter,
|
|
125
|
-
historyStorage: options.historyStorage,
|
|
126
|
-
maxInputTokens: this.config.maxInputTokens,
|
|
127
|
-
sessionId,
|
|
128
|
-
tokenizer: this.tokenizer,
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Complete a task with tool calling support.
|
|
133
|
-
*
|
|
134
|
-
* This is the main entry point for the agentic loop.
|
|
135
|
-
* It handles:
|
|
136
|
-
* 1. Adding user message to context
|
|
137
|
-
* 2. Looping: call LLM → check for tool calls → execute tools
|
|
138
|
-
* 3. Returning final response when no more tool calls
|
|
139
|
-
*
|
|
140
|
-
* @param textInput - User input text
|
|
141
|
-
* @param options - Execution options
|
|
142
|
-
* @param options.executionContext - Optional execution context
|
|
143
|
-
* @param options.signal - Optional abort signal for cancellation
|
|
144
|
-
* @param options.imageData - Optional image data
|
|
145
|
-
* @param options.fileData - Optional file data
|
|
146
|
-
* @param options.stream - Whether to stream response (not implemented yet)
|
|
147
|
-
* @param options.taskId - Task ID from usecase for billing tracking
|
|
148
|
-
* @returns Final assistant response
|
|
149
|
-
*/
|
|
150
|
-
async completeTask(textInput, options) {
|
|
151
|
-
// Extract options with defaults
|
|
152
|
-
const { executionContext, fileData, imageData, signal, stream, taskId } = options ?? {};
|
|
153
|
-
// Get filtered tools based on command type (e.g., only read-only tools for 'query')
|
|
154
|
-
const toolSet = this.toolManager.getToolsForCommand(options?.executionContext?.commandType);
|
|
155
|
-
// Create state machine with configured limits
|
|
156
|
-
const maxTimeMs = this.config.timeout ?? 600_000; // 10 min default
|
|
157
|
-
const stateMachine = new AgentStateMachine(this.config.maxIterations, maxTimeMs);
|
|
158
|
-
stateMachine.transition(AgentState.EXECUTING);
|
|
159
|
-
// Agentic loop with state machine
|
|
160
|
-
while (!stateMachine.isTerminal()) {
|
|
161
|
-
// Check termination conditions (timeout, max turns)
|
|
162
|
-
const terminationReason = stateMachine.shouldTerminate();
|
|
163
|
-
if (terminationReason) {
|
|
164
|
-
return this.handleTermination(terminationReason, stateMachine, taskId);
|
|
165
|
-
}
|
|
166
|
-
// Check if aborted via signal
|
|
167
|
-
if (signal?.aborted) {
|
|
168
|
-
stateMachine.abort();
|
|
169
|
-
throw new Error('Operation aborted');
|
|
170
|
-
}
|
|
171
|
-
try {
|
|
172
|
-
// eslint-disable-next-line no-await-in-loop -- Sequential iterations required for agentic loop
|
|
173
|
-
const result = await this.executeAgenticIteration({
|
|
174
|
-
executionContext,
|
|
175
|
-
fileData,
|
|
176
|
-
imageData,
|
|
177
|
-
iterationCount: stateMachine.getContext().turnCount,
|
|
178
|
-
stream,
|
|
179
|
-
taskId,
|
|
180
|
-
textInput,
|
|
181
|
-
tools: toolSet,
|
|
182
|
-
});
|
|
183
|
-
if (result !== null) {
|
|
184
|
-
// Task complete - no tool calls
|
|
185
|
-
stateMachine.complete();
|
|
186
|
-
return result;
|
|
187
|
-
}
|
|
188
|
-
// Tool calls were executed, continue loop
|
|
189
|
-
stateMachine.incrementTurn();
|
|
190
|
-
}
|
|
191
|
-
catch (error) {
|
|
192
|
-
stateMachine.fail(error);
|
|
193
|
-
this.handleLLMError(error, taskId);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
// Should not reach here - state machine should exit via terminal states
|
|
197
|
-
throw new Error('Agent loop terminated unexpectedly');
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Get all available tools for the agent.
|
|
201
|
-
*
|
|
202
|
-
* Retrieves the current set of tools that can be used during task execution.
|
|
203
|
-
* These tools are passed to the LLM to enable function calling capabilities.
|
|
204
|
-
*
|
|
205
|
-
* @returns Promise resolving to a map of tool names to their schemas
|
|
206
|
-
*/
|
|
207
|
-
async getAllTools() {
|
|
208
|
-
return this.toolManager.getAllTools();
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Get the service's runtime configuration.
|
|
212
|
-
*
|
|
213
|
-
* Returns metadata about the service including:
|
|
214
|
-
* - Configured and model-specific token limits
|
|
215
|
-
* - Selected LLM model
|
|
216
|
-
* - Provider name (always 'byterover')
|
|
217
|
-
* - Router type (always 'in-built')
|
|
218
|
-
*
|
|
219
|
-
* This is useful for introspecting service capabilities and limits
|
|
220
|
-
* without needing access to the internal config object.
|
|
221
|
-
*
|
|
222
|
-
* @returns Service configuration object with model info and constraints
|
|
223
|
-
*/
|
|
224
|
-
getConfig() {
|
|
225
|
-
// Get model's actual max tokens from registry
|
|
226
|
-
const modelMaxTokens = getMaxInputTokensForModel(this.providerType, this.config.model);
|
|
227
|
-
return {
|
|
228
|
-
configuredMaxInputTokens: this.config.maxInputTokens,
|
|
229
|
-
model: this.config.model,
|
|
230
|
-
modelMaxInputTokens: modelMaxTokens,
|
|
231
|
-
provider: 'byterover',
|
|
232
|
-
router: 'in-built',
|
|
233
|
-
};
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Get access to the conversation context manager.
|
|
237
|
-
*
|
|
238
|
-
* Provides access to the ContextManager instance that maintains:
|
|
239
|
-
* - Conversation history (messages and responses)
|
|
240
|
-
* - Token counting and compression
|
|
241
|
-
* - Message formatting for the selected model
|
|
242
|
-
*
|
|
243
|
-
* Useful for:
|
|
244
|
-
* - Inspecting conversation state
|
|
245
|
-
* - Retrieving formatted messages
|
|
246
|
-
* - Managing context during multi-turn interactions
|
|
247
|
-
*
|
|
248
|
-
* @returns The ContextManager instance managing conversation state
|
|
249
|
-
*/
|
|
250
|
-
getContextManager() {
|
|
251
|
-
return this.contextManager;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Initialize the LLM service by loading persisted history.
|
|
255
|
-
* Should be called after construction to restore previous conversation.
|
|
256
|
-
*
|
|
257
|
-
* @returns True if history was loaded, false otherwise
|
|
258
|
-
*/
|
|
259
|
-
async initialize() {
|
|
260
|
-
return this.contextManager.initialize();
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* Add a parallel tool result to the context.
|
|
264
|
-
* Called sequentially after parallel execution to preserve message order.
|
|
265
|
-
*
|
|
266
|
-
* @param result - Parallel tool result to add
|
|
267
|
-
*/
|
|
268
|
-
async addParallelToolResultToContext(result) {
|
|
269
|
-
const { toolCall, toolResult } = result;
|
|
270
|
-
if (!toolResult) {
|
|
271
|
-
// This shouldn't happen, but handle gracefully
|
|
272
|
-
await this.contextManager.addToolResult(toolCall.id, toolCall.function.name, 'Error: No tool result available', {
|
|
273
|
-
errorType: 'NO_RESULT',
|
|
274
|
-
success: false,
|
|
275
|
-
});
|
|
276
|
-
return;
|
|
277
|
-
}
|
|
278
|
-
await this.contextManager.addToolResult(toolCall.id, toolCall.function.name, toolResult.processedOutput.content, {
|
|
279
|
-
errorType: toolResult.errorType,
|
|
280
|
-
metadata: toolResult.metadata,
|
|
281
|
-
success: toolResult.success,
|
|
282
|
-
}, toolResult.processedOutput.attachments);
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Build generation request for the IContentGenerator.
|
|
286
|
-
*
|
|
287
|
-
* Converts internal context to the standardized GenerateContentRequest format.
|
|
288
|
-
*
|
|
289
|
-
* @param options - Request options
|
|
290
|
-
* @param options.systemPrompt - System prompt text
|
|
291
|
-
* @param options.tools - Available tools for function calling
|
|
292
|
-
* @param options.executionContext - Optional execution context
|
|
293
|
-
* @returns GenerateContentRequest for the generator
|
|
294
|
-
*/
|
|
295
|
-
buildGenerateContentRequest(options) {
|
|
296
|
-
// Get internal messages from context manager
|
|
297
|
-
const messages = this.contextManager.getMessages();
|
|
298
|
-
return {
|
|
299
|
-
config: {
|
|
300
|
-
maxTokens: this.config.maxTokens,
|
|
301
|
-
temperature: this.config.temperature,
|
|
302
|
-
},
|
|
303
|
-
contents: messages,
|
|
304
|
-
executionContext: options.executionContext,
|
|
305
|
-
model: this.config.model,
|
|
306
|
-
systemPrompt: options.systemPrompt,
|
|
307
|
-
taskId: options.taskId ?? '',
|
|
308
|
-
tools: options.tools,
|
|
309
|
-
};
|
|
310
|
-
}
|
|
311
|
-
/**
|
|
312
|
-
* Call LLM via generator and process the response.
|
|
313
|
-
*
|
|
314
|
-
* Uses the IContentGenerator interface which already has:
|
|
315
|
-
* - Retry logic (via RetryableContentGenerator decorator)
|
|
316
|
-
* - Logging (via LoggingContentGenerator decorator)
|
|
317
|
-
*
|
|
318
|
-
* @param request - Generation request
|
|
319
|
-
* @returns Parsed internal message from response
|
|
320
|
-
*/
|
|
321
|
-
async callLLMAndParseResponse(request) {
|
|
322
|
-
try {
|
|
323
|
-
const response = await this.generator.generateContent(request);
|
|
324
|
-
// Convert response to InternalMessage format
|
|
325
|
-
const message = {
|
|
326
|
-
content: response.content,
|
|
327
|
-
role: 'assistant',
|
|
328
|
-
toolCalls: response.toolCalls,
|
|
329
|
-
};
|
|
330
|
-
// Validate the message has content or tool calls
|
|
331
|
-
if (!message.content && (!message.toolCalls || message.toolCalls.length === 0)) {
|
|
332
|
-
throw new LlmResponseParsingError('Response has neither content nor tool calls', 'byterover', this.config.model);
|
|
333
|
-
}
|
|
334
|
-
return message;
|
|
335
|
-
}
|
|
336
|
-
catch (error) {
|
|
337
|
-
// Re-throw LLM errors as-is
|
|
338
|
-
if (error instanceof LlmResponseParsingError || error instanceof LlmGenerationError) {
|
|
339
|
-
throw error;
|
|
340
|
-
}
|
|
341
|
-
// Wrap other errors
|
|
342
|
-
throw new LlmGenerationError(error instanceof Error ? error.message : String(error), 'byterover', this.config.model);
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
/**
|
|
346
|
-
* Streaming variant of callLLMAndParseResponse that:
|
|
347
|
-
* - Uses generateContentStream for real-time chunk delivery
|
|
348
|
-
* - Accumulates content and tool calls from chunks
|
|
349
|
-
* - Emits llmservice:chunk events for thinking/reasoning chunks
|
|
350
|
-
* - Returns complete InternalMessage when stream ends
|
|
351
|
-
*
|
|
352
|
-
* @param request - Generation request
|
|
353
|
-
* @param taskId - Task ID for event emission
|
|
354
|
-
* @returns Parsed internal message from accumulated stream
|
|
355
|
-
*/
|
|
356
|
-
async callLLMAndParseResponseStreaming(request, taskId) {
|
|
357
|
-
try {
|
|
358
|
-
let accumulatedContent = '';
|
|
359
|
-
let accumulatedToolCalls = [];
|
|
360
|
-
// Stream chunks and accumulate content
|
|
361
|
-
for await (const chunk of this.generator.generateContentStream(request)) {
|
|
362
|
-
// Emit thinking/reasoning chunks as events for TUI display
|
|
363
|
-
if (chunk.type === StreamChunkType.THINKING && chunk.reasoning) {
|
|
364
|
-
this.sessionEventBus.emit('llmservice:chunk', {
|
|
365
|
-
content: chunk.reasoning,
|
|
366
|
-
isComplete: chunk.isComplete,
|
|
367
|
-
taskId,
|
|
368
|
-
type: 'reasoning', // Convert THINKING to 'reasoning' for TUI compatibility
|
|
369
|
-
});
|
|
370
|
-
}
|
|
371
|
-
// Accumulate text content (skip thinking chunks from accumulated content)
|
|
372
|
-
if (chunk.content && chunk.type !== StreamChunkType.THINKING) {
|
|
373
|
-
accumulatedContent += chunk.content;
|
|
374
|
-
// Emit text chunks for TUI display
|
|
375
|
-
this.sessionEventBus.emit('llmservice:chunk', {
|
|
376
|
-
content: chunk.content,
|
|
377
|
-
isComplete: chunk.isComplete,
|
|
378
|
-
taskId,
|
|
379
|
-
type: 'text',
|
|
380
|
-
});
|
|
381
|
-
}
|
|
382
|
-
// Accumulate tool calls
|
|
383
|
-
if (chunk.toolCalls) {
|
|
384
|
-
accumulatedToolCalls = chunk.toolCalls;
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
// Convert accumulated response to InternalMessage format
|
|
388
|
-
const message = {
|
|
389
|
-
content: accumulatedContent || null,
|
|
390
|
-
role: 'assistant',
|
|
391
|
-
toolCalls: accumulatedToolCalls.length > 0 ? accumulatedToolCalls : undefined,
|
|
392
|
-
};
|
|
393
|
-
// Validate the message has content or tool calls
|
|
394
|
-
if (!message.content && (!message.toolCalls || message.toolCalls.length === 0)) {
|
|
395
|
-
throw new LlmResponseParsingError('Response has neither content nor tool calls', 'byterover', this.config.model);
|
|
396
|
-
}
|
|
397
|
-
return message;
|
|
398
|
-
}
|
|
399
|
-
catch (error) {
|
|
400
|
-
// Re-throw LLM errors as-is
|
|
401
|
-
if (error instanceof LlmResponseParsingError || error instanceof LlmGenerationError) {
|
|
402
|
-
throw error;
|
|
403
|
-
}
|
|
404
|
-
// Wrap other errors
|
|
405
|
-
throw new LlmGenerationError(error instanceof Error ? error.message : String(error), 'byterover', this.config.model);
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
/**
|
|
409
|
-
* Check for context overflow and trigger compaction if needed.
|
|
410
|
-
* Called after each assistant response and after tool execution batches.
|
|
411
|
-
*
|
|
412
|
-
* Follows OpenCode's compaction patterns:
|
|
413
|
-
* - First tries pruning tool outputs (if overflow > 85%)
|
|
414
|
-
* - Then tries full compaction with LLM summary (if overflow > 95%)
|
|
415
|
-
*
|
|
416
|
-
* @param taskId - Task ID from usecase for billing tracking (passed from caller)
|
|
417
|
-
*/
|
|
418
|
-
async checkAndTriggerCompaction(taskId) {
|
|
419
|
-
if (!this.compactionService)
|
|
420
|
-
return;
|
|
421
|
-
// Calculate current token usage
|
|
422
|
-
const messages = this.contextManager.getMessages();
|
|
423
|
-
const messagesTokens = messages.reduce((total, msg) => total +
|
|
424
|
-
this.generator.estimateTokensSync(typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content)), 0);
|
|
425
|
-
// Estimate system prompt tokens (rough estimate since we don't have full context here)
|
|
426
|
-
// Using a conservative estimate of 2000 tokens for system prompt
|
|
427
|
-
const estimatedSystemPromptTokens = 2000;
|
|
428
|
-
const currentTokens = estimatedSystemPromptTokens + messagesTokens;
|
|
429
|
-
// Check overflow
|
|
430
|
-
const overflowResult = this.compactionService.checkOverflow(currentTokens, this.config.maxInputTokens);
|
|
431
|
-
if (!overflowResult.isOverflow)
|
|
432
|
-
return;
|
|
433
|
-
// Emit context overflow event
|
|
434
|
-
const utilizationPercent = Math.round((currentTokens / this.config.maxInputTokens) * 100);
|
|
435
|
-
this.sessionEventBus.emit('llmservice:contextOverflow', {
|
|
436
|
-
currentTokens,
|
|
437
|
-
maxTokens: this.config.maxInputTokens,
|
|
438
|
-
taskId: taskId || undefined,
|
|
439
|
-
utilizationPercent,
|
|
440
|
-
});
|
|
441
|
-
if (overflowResult.recommendation === 'prune') {
|
|
442
|
-
// Try pruning tool outputs first
|
|
443
|
-
const pruneResult = await this.compactionService.pruneToolOutputs(this.sessionId);
|
|
444
|
-
// Emit context pruned event
|
|
445
|
-
if (pruneResult.compactedCount > 0) {
|
|
446
|
-
this.sessionEventBus.emit('llmservice:contextPruned', {
|
|
447
|
-
pruneCount: pruneResult.compactedCount,
|
|
448
|
-
reason: 'overflow',
|
|
449
|
-
taskId: taskId || undefined,
|
|
450
|
-
tokensSaved: pruneResult.tokensSaved,
|
|
451
|
-
});
|
|
452
|
-
// Also emit warning for backward compatibility
|
|
453
|
-
this.sessionEventBus.emit('llmservice:warning', {
|
|
454
|
-
message: `Context compaction: pruned ${pruneResult.compactedCount} old tool outputs (~${pruneResult.tokensSaved} tokens)`,
|
|
455
|
-
taskId: taskId || undefined,
|
|
456
|
-
});
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
else if (overflowResult.recommendation === 'compact') {
|
|
460
|
-
const originalTokens = currentTokens;
|
|
461
|
-
// Full compaction needed - generate LLM summary
|
|
462
|
-
// Use the same taskId from caller for billing tracking
|
|
463
|
-
const summary = await this.compactionService.generateSummary(this.generator, messages, taskId, this.config.model);
|
|
464
|
-
await this.compactionService.createCompactionBoundary(this.sessionId, summary);
|
|
465
|
-
// Emit context compressed event
|
|
466
|
-
// Estimate compressed tokens (summary is much smaller than original)
|
|
467
|
-
const compressedTokens = this.generator.estimateTokensSync(summary);
|
|
468
|
-
this.sessionEventBus.emit('llmservice:contextCompressed', {
|
|
469
|
-
compressedTokens,
|
|
470
|
-
originalTokens,
|
|
471
|
-
strategy: 'summary',
|
|
472
|
-
taskId: taskId || undefined,
|
|
473
|
-
});
|
|
474
|
-
// Also emit warning for backward compatibility
|
|
475
|
-
this.sessionEventBus.emit('llmservice:warning', {
|
|
476
|
-
message: 'Context compaction: created summary boundary for conversation history',
|
|
477
|
-
taskId: taskId || undefined,
|
|
478
|
-
});
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
/**
|
|
482
|
-
* Detect provider type from model name using the LLM registry.
|
|
483
|
-
*
|
|
484
|
-
* Uses the centralized registry to determine provider from model name.
|
|
485
|
-
* Falls back to string prefix matching if model is not in registry.
|
|
486
|
-
*
|
|
487
|
-
* @param model - Model identifier
|
|
488
|
-
* @returns Provider type ('claude' or 'gemini')
|
|
489
|
-
*/
|
|
490
|
-
detectProviderType(model) {
|
|
491
|
-
// Use registry to detect provider
|
|
492
|
-
const registryProvider = getProviderFromModel(model);
|
|
493
|
-
if (registryProvider === 'claude' || registryProvider === 'gemini') {
|
|
494
|
-
return registryProvider;
|
|
495
|
-
}
|
|
496
|
-
// Fallback to string prefix matching for unknown models
|
|
497
|
-
return model.toLowerCase().startsWith('claude') ? 'claude' : 'gemini';
|
|
498
|
-
}
|
|
499
|
-
/**
|
|
500
|
-
* Determine which reflection prompt to add based on hierarchical priority.
|
|
501
|
-
* Only the highest priority eligible reflection is returned.
|
|
502
|
-
*
|
|
503
|
-
* Priority (highest to lowest):
|
|
504
|
-
* 1. final_iteration - query only, at the last iteration
|
|
505
|
-
* 2. near_max_iterations - general, at 80% threshold
|
|
506
|
-
* 3. mid_point_check - query only, at 50% threshold
|
|
507
|
-
* 4. completion_check - general, periodic every 3 iterations
|
|
508
|
-
*
|
|
509
|
-
* @param iterationCount - Current iteration count (0-indexed)
|
|
510
|
-
* @param commandType - Command type ('query' or 'curate')
|
|
511
|
-
* @returns Reflection type to add, or undefined if none eligible
|
|
512
|
-
*/
|
|
513
|
-
determineReflectionType(iterationCount, commandType) {
|
|
514
|
-
const isQuery = commandType === 'query';
|
|
515
|
-
const isLastIteration = iterationCount === this.config.maxIterations - 1;
|
|
516
|
-
const midPoint = Math.floor(this.config.maxIterations / 2);
|
|
517
|
-
const isAtMidPoint = iterationCount === midPoint;
|
|
518
|
-
const isNearMax = iterationCount >= Math.floor(this.config.maxIterations * 0.8);
|
|
519
|
-
const isPeriodicCheck = iterationCount > 0 && iterationCount % 3 === 0;
|
|
520
|
-
// Priority 1: final_iteration (query only, last iteration) - highest priority
|
|
521
|
-
if (isQuery && isLastIteration) {
|
|
522
|
-
return 'final_iteration';
|
|
523
|
-
}
|
|
524
|
-
// Priority 2: near_max_iterations (general, 80% threshold)
|
|
525
|
-
if (isNearMax) {
|
|
526
|
-
return 'near_max_iterations';
|
|
527
|
-
}
|
|
528
|
-
// Priority 3: mid_point_check (query only, 50% threshold)
|
|
529
|
-
if (isQuery && isAtMidPoint) {
|
|
530
|
-
return 'mid_point_check';
|
|
531
|
-
}
|
|
532
|
-
// Priority 4: completion_check (general, periodic every 3 iterations) - lowest priority
|
|
533
|
-
if (isPeriodicCheck) {
|
|
534
|
-
return 'completion_check';
|
|
535
|
-
}
|
|
536
|
-
return undefined;
|
|
537
|
-
}
|
|
538
|
-
/**
|
|
539
|
-
* Execute a single iteration of the agentic loop.
|
|
540
|
-
*
|
|
541
|
-
* @param options - Iteration options
|
|
542
|
-
* @param options.executionContext - Optional execution context
|
|
543
|
-
* @param options.fileData - Optional file data (only used on first iteration)
|
|
544
|
-
* @param options.imageData - Optional image data (only used on first iteration)
|
|
545
|
-
* @param options.iterationCount - Current iteration number
|
|
546
|
-
* @param options.stream - Whether to stream response and emit thinking chunks
|
|
547
|
-
* @param options.taskId - Task ID from usecase for billing tracking
|
|
548
|
-
* @param options.textInput - User input text (only used on first iteration)
|
|
549
|
-
* @param options.tools - Available tools for this iteration
|
|
550
|
-
* @returns Final response string if complete, null if more iterations needed
|
|
551
|
-
*/
|
|
552
|
-
async executeAgenticIteration(options) {
|
|
553
|
-
const { executionContext, fileData, imageData, iterationCount, stream, taskId, textInput, tools } = options;
|
|
554
|
-
// Build system prompt using SystemPromptManager (before compression for correct token accounting)
|
|
555
|
-
// Use filtered tool names based on command type (e.g., only read-only tools for 'query')
|
|
556
|
-
const availableTools = this.toolManager.getToolNamesForCommand(executionContext?.commandType);
|
|
557
|
-
const markersSet = this.toolManager.getAvailableMarkers();
|
|
558
|
-
// Convert Set to Record for prompt factory
|
|
559
|
-
const availableMarkers = {};
|
|
560
|
-
for (const marker of markersSet) {
|
|
561
|
-
availableMarkers[marker] = marker;
|
|
562
|
-
}
|
|
563
|
-
// Build environment context for system prompt
|
|
564
|
-
const environmentContext = await this.environmentBuilder.build({
|
|
565
|
-
includeBrvStructure: true,
|
|
566
|
-
includeFileTree: true,
|
|
567
|
-
maxFileTreeDepth: 3,
|
|
568
|
-
maxFileTreeEntries: 100,
|
|
569
|
-
workingDirectory: this.workingDirectory,
|
|
570
|
-
});
|
|
571
|
-
let systemPrompt = await this.systemPromptManager.build({
|
|
572
|
-
availableMarkers,
|
|
573
|
-
availableTools,
|
|
574
|
-
commandType: executionContext?.commandType,
|
|
575
|
-
conversationMetadata: executionContext?.conversationMetadata,
|
|
576
|
-
environmentContext,
|
|
577
|
-
fileReferenceInstructions: executionContext?.fileReferenceInstructions,
|
|
578
|
-
memoryManager: this.memoryManager,
|
|
579
|
-
});
|
|
580
|
-
// Determine which reflection prompt to add (only highest priority is chosen)
|
|
581
|
-
const reflectionType = this.determineReflectionType(iterationCount, executionContext?.commandType);
|
|
582
|
-
// Add reflection prompt if eligible (hierarchical: only one reflection per iteration)
|
|
583
|
-
if (reflectionType) {
|
|
584
|
-
const reflectionPrompt = this.systemPromptManager.buildReflectionPrompt({
|
|
585
|
-
currentIteration: iterationCount + 1,
|
|
586
|
-
maxIterations: this.config.maxIterations,
|
|
587
|
-
type: reflectionType,
|
|
588
|
-
});
|
|
589
|
-
systemPrompt = systemPrompt + '\n\n' + reflectionPrompt;
|
|
590
|
-
}
|
|
591
|
-
// Verbose debug: Show complete system prompt
|
|
592
|
-
if (this.config.verbose) {
|
|
593
|
-
this.logger.debug('System prompt details', {
|
|
594
|
-
first500Chars: systemPrompt.slice(0, 500),
|
|
595
|
-
iteration: iterationCount + 1,
|
|
596
|
-
last500Chars: systemPrompt.slice(-500),
|
|
597
|
-
length: systemPrompt.length,
|
|
598
|
-
lines: systemPrompt.split('\n').length,
|
|
599
|
-
reflectionType,
|
|
600
|
-
});
|
|
601
|
-
}
|
|
602
|
-
// Final iteration optimization for query: strip tools (reflection already added above)
|
|
603
|
-
let toolsForThisIteration = tools;
|
|
604
|
-
if (executionContext?.commandType === 'query' && iterationCount === this.config.maxIterations - 1) {
|
|
605
|
-
toolsForThisIteration = {}; // Empty toolset forces text response
|
|
606
|
-
}
|
|
607
|
-
// Get token count for logging (using system prompt for token accounting)
|
|
608
|
-
const systemPromptTokens = this.generator.estimateTokensSync(systemPrompt);
|
|
609
|
-
// Add user message and compress context within mutex lock
|
|
610
|
-
return this.mutex.withLock(async () => {
|
|
611
|
-
// Add user message to context only on the first iteration
|
|
612
|
-
if (iterationCount === 0) {
|
|
613
|
-
await this.contextManager.addUserMessage(textInput, imageData, fileData);
|
|
614
|
-
}
|
|
615
|
-
const messages = this.contextManager.getMessages();
|
|
616
|
-
const messageTokenCounts = messages.map((msg) => this.generator.estimateTokensSync(typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content)));
|
|
617
|
-
const maxMessageTokens = this.config.maxInputTokens - systemPromptTokens;
|
|
618
|
-
// Target utilization to leave headroom for response
|
|
619
|
-
const targetMessageTokens = Math.floor(maxMessageTokens * TARGET_MESSAGE_TOKEN_UTILIZATION);
|
|
620
|
-
this.contextManager.compressMessage(targetMessageTokens, messageTokenCounts);
|
|
621
|
-
// Build generation request
|
|
622
|
-
const request = this.buildGenerateContentRequest({
|
|
623
|
-
executionContext,
|
|
624
|
-
systemPrompt,
|
|
625
|
-
taskId,
|
|
626
|
-
tools: toolsForThisIteration,
|
|
627
|
-
});
|
|
628
|
-
// Call LLM via generator (retry + logging handled by decorators)
|
|
629
|
-
// Use streaming variant if enabled to emit thinking/reasoning chunks
|
|
630
|
-
const lastMessage = stream
|
|
631
|
-
? await this.callLLMAndParseResponseStreaming(request, taskId)
|
|
632
|
-
: await this.callLLMAndParseResponse(request);
|
|
633
|
-
// Check if there are tool calls
|
|
634
|
-
if (!lastMessage.toolCalls || lastMessage.toolCalls.length === 0) {
|
|
635
|
-
const response = await this.handleFinalResponse(lastMessage, taskId);
|
|
636
|
-
// Auto-compaction check after assistant response
|
|
637
|
-
await this.checkAndTriggerCompaction(taskId ?? '');
|
|
638
|
-
return response;
|
|
639
|
-
}
|
|
640
|
-
// Has tool calls - handle them (pass taskId for subagent billing)
|
|
641
|
-
await this.handleToolCalls(lastMessage, taskId);
|
|
642
|
-
// Auto-compaction check after tool execution batch
|
|
643
|
-
await this.checkAndTriggerCompaction(taskId ?? '');
|
|
644
|
-
return null;
|
|
645
|
-
});
|
|
646
|
-
}
|
|
647
|
-
/**
|
|
648
|
-
* Execute a single tool call in parallel (without adding to context).
|
|
649
|
-
* Returns all information needed to add the result to context later.
|
|
650
|
-
*
|
|
651
|
-
* @param toolCall - Tool call to execute
|
|
652
|
-
* @param taskId - Task ID from usecase for billing tracking (passed to subagents)
|
|
653
|
-
* @returns Parallel tool result with all execution data
|
|
654
|
-
*/
|
|
655
|
-
async executeToolCallParallel(toolCall, taskId) {
|
|
656
|
-
const toolName = toolCall.function.name;
|
|
657
|
-
const toolArgs = JSON.parse(toolCall.function.arguments);
|
|
658
|
-
try {
|
|
659
|
-
// Check for loops before execution (mutex-protected)
|
|
660
|
-
const loopResult = await this.loopDetector.recordAndCheck(toolName, toolArgs);
|
|
661
|
-
if (loopResult.isLoop) {
|
|
662
|
-
// Emit dedicated doom loop event for observability
|
|
663
|
-
this.sessionEventBus.emit('llmservice:doomLoopDetected', {
|
|
664
|
-
args: toolArgs,
|
|
665
|
-
loopType: loopResult.loopType,
|
|
666
|
-
repeatCount: loopResult.repeatCount ?? 0,
|
|
667
|
-
taskId: taskId || undefined,
|
|
668
|
-
toolName,
|
|
669
|
-
});
|
|
670
|
-
// Also emit warning event for backward compatibility
|
|
671
|
-
this.sessionEventBus.emit('llmservice:warning', {
|
|
672
|
-
message: `Doom loop detected: ${loopResult.loopType} - tool "${toolName}" repeated ${loopResult.repeatCount} times. Auto-denying to prevent infinite loop.`,
|
|
673
|
-
taskId: taskId || undefined,
|
|
674
|
-
});
|
|
675
|
-
return {
|
|
676
|
-
toolCall,
|
|
677
|
-
toolResult: {
|
|
678
|
-
errorType: 'LOOP_DETECTED',
|
|
679
|
-
metadata: {
|
|
680
|
-
loopType: loopResult.loopType,
|
|
681
|
-
repeatCount: loopResult.repeatCount,
|
|
682
|
-
},
|
|
683
|
-
processedOutput: {
|
|
684
|
-
content: `⚠️ DOOM LOOP DETECTED: ${loopResult.suggestion}\n\nThe tool call has been automatically rejected to prevent an infinite loop. Please try a different approach to accomplish your goal.`,
|
|
685
|
-
},
|
|
686
|
-
success: false,
|
|
687
|
-
},
|
|
688
|
-
};
|
|
689
|
-
}
|
|
690
|
-
// Emit tool call event
|
|
691
|
-
this.sessionEventBus.emit('llmservice:toolCall', {
|
|
692
|
-
args: toolArgs,
|
|
693
|
-
callId: toolCall.id,
|
|
694
|
-
taskId: taskId || undefined,
|
|
695
|
-
toolName,
|
|
696
|
-
});
|
|
697
|
-
// Create metadata callback for streaming tool output
|
|
698
|
-
const metadataCallback = this.metadataHandler.createCallback(toolCall.id, toolName);
|
|
699
|
-
// Execute tool via ToolManager (returns structured result)
|
|
700
|
-
// Pass taskId in context for subagent billing tracking
|
|
701
|
-
const result = await this.toolManager.executeTool(toolName, toolArgs, this.sessionId, {
|
|
702
|
-
metadata: metadataCallback,
|
|
703
|
-
taskId,
|
|
704
|
-
});
|
|
705
|
-
// Process output (truncation and file saving if needed)
|
|
706
|
-
const processedOutput = await this.outputProcessor.processStructuredOutput(toolName, result.content);
|
|
707
|
-
// Emit truncation event if output was truncated
|
|
708
|
-
if (processedOutput.metadata?.truncated) {
|
|
709
|
-
this.sessionEventBus.emit('llmservice:outputTruncated', {
|
|
710
|
-
originalLength: processedOutput.metadata.originalLength,
|
|
711
|
-
savedToFile: processedOutput.metadata.savedToFile,
|
|
712
|
-
taskId: taskId || undefined,
|
|
713
|
-
toolName,
|
|
714
|
-
});
|
|
715
|
-
}
|
|
716
|
-
// Emit tool result event with success/error info
|
|
717
|
-
this.sessionEventBus.emit('llmservice:toolResult', {
|
|
718
|
-
callId: toolCall.id,
|
|
719
|
-
error: result.errorMessage,
|
|
720
|
-
errorType: result.errorType,
|
|
721
|
-
metadata: {
|
|
722
|
-
...result.metadata,
|
|
723
|
-
...processedOutput.metadata,
|
|
724
|
-
},
|
|
725
|
-
result: processedOutput.content,
|
|
726
|
-
success: result.success,
|
|
727
|
-
taskId: taskId || undefined,
|
|
728
|
-
toolName,
|
|
729
|
-
});
|
|
730
|
-
return {
|
|
731
|
-
toolCall,
|
|
732
|
-
toolResult: {
|
|
733
|
-
errorType: result.errorType,
|
|
734
|
-
metadata: {
|
|
735
|
-
...result.metadata,
|
|
736
|
-
...processedOutput.metadata,
|
|
737
|
-
},
|
|
738
|
-
processedOutput,
|
|
739
|
-
success: result.success,
|
|
740
|
-
},
|
|
741
|
-
};
|
|
742
|
-
}
|
|
743
|
-
catch (error) {
|
|
744
|
-
// Catch any unexpected errors during execution
|
|
745
|
-
const errorMessage = getErrorMessage(error);
|
|
746
|
-
this.logger.error('Error executing tool in parallel', { error, toolCallId: toolCall.id, toolName });
|
|
747
|
-
return {
|
|
748
|
-
error: errorMessage,
|
|
749
|
-
toolCall,
|
|
750
|
-
toolResult: {
|
|
751
|
-
errorType: 'EXECUTION_ERROR',
|
|
752
|
-
metadata: {},
|
|
753
|
-
processedOutput: { content: `Error executing tool: ${errorMessage}` },
|
|
754
|
-
success: false,
|
|
755
|
-
},
|
|
756
|
-
};
|
|
757
|
-
}
|
|
758
|
-
}
|
|
759
|
-
/**
|
|
760
|
-
* Extract text content from an internal message.
|
|
761
|
-
*
|
|
762
|
-
* @param message - Internal message
|
|
763
|
-
* @returns Text content as string
|
|
764
|
-
*/
|
|
765
|
-
extractTextContent(message) {
|
|
766
|
-
if (typeof message.content === 'string') {
|
|
767
|
-
return message.content;
|
|
768
|
-
}
|
|
769
|
-
if (Array.isArray(message.content)) {
|
|
770
|
-
return message.content
|
|
771
|
-
.filter((part) => part.type === 'text')
|
|
772
|
-
.map((part) => (part.type === 'text' ? part.text : ''))
|
|
773
|
-
.join('');
|
|
774
|
-
}
|
|
775
|
-
return '';
|
|
776
|
-
}
|
|
777
|
-
/**
|
|
778
|
-
* Extract partial response from conversation history when max iterations reached.
|
|
779
|
-
* Returns the last assistant message or accumulated tool outputs.
|
|
780
|
-
*
|
|
781
|
-
* @returns Partial response string
|
|
782
|
-
*/
|
|
783
|
-
async getPartialResponse() {
|
|
784
|
-
const history = this.contextManager.getMessages();
|
|
785
|
-
// Find last assistant message
|
|
786
|
-
for (let i = history.length - 1; i >= 0; i--) {
|
|
787
|
-
const msg = history[i];
|
|
788
|
-
if (msg && msg.role === 'assistant') {
|
|
789
|
-
return this.extractTextContent(msg);
|
|
790
|
-
}
|
|
791
|
-
}
|
|
792
|
-
return '';
|
|
793
|
-
}
|
|
794
|
-
/**
|
|
795
|
-
* Handle final response when there are no tool calls.
|
|
796
|
-
*
|
|
797
|
-
* @param lastMessage - Last message from LLM
|
|
798
|
-
* @param taskId - Optional task ID for concurrent task isolation
|
|
799
|
-
* @returns Final response content
|
|
800
|
-
*/
|
|
801
|
-
async handleFinalResponse(lastMessage, taskId) {
|
|
802
|
-
const content = this.extractTextContent(lastMessage);
|
|
803
|
-
// Emit response event
|
|
804
|
-
this.sessionEventBus.emit('llmservice:response', {
|
|
805
|
-
content,
|
|
806
|
-
model: this.config.model,
|
|
807
|
-
provider: 'byterover',
|
|
808
|
-
taskId: taskId || undefined,
|
|
809
|
-
});
|
|
810
|
-
// Add assistant message to context
|
|
811
|
-
await this.contextManager.addAssistantMessage(content);
|
|
812
|
-
return content;
|
|
813
|
-
}
|
|
814
|
-
/**
|
|
815
|
-
* Handle LLM errors and re-throw or wrap appropriately.
|
|
816
|
-
*
|
|
817
|
-
* @param error - Error to handle
|
|
818
|
-
* @param taskId - Optional task ID for concurrent task isolation
|
|
819
|
-
*/
|
|
820
|
-
handleLLMError(error, taskId) {
|
|
821
|
-
// Emit error event
|
|
822
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
823
|
-
this.sessionEventBus.emit('llmservice:error', {
|
|
824
|
-
error: errorMessage,
|
|
825
|
-
taskId: taskId || undefined,
|
|
826
|
-
});
|
|
827
|
-
// Re-throw LLM errors as-is
|
|
828
|
-
if (error instanceof LlmResponseParsingError ||
|
|
829
|
-
error instanceof LlmGenerationError ||
|
|
830
|
-
error instanceof LlmMaxIterationsError) {
|
|
831
|
-
throw error;
|
|
832
|
-
}
|
|
833
|
-
// Wrap other errors
|
|
834
|
-
if (error && typeof error === 'object' && 'message' in error) {
|
|
835
|
-
throw new LlmGenerationError(getErrorMessage(error), 'byterover', this.config.model);
|
|
836
|
-
}
|
|
837
|
-
throw new LlmGenerationError(String(error), 'byterover', this.config.model);
|
|
838
|
-
}
|
|
839
|
-
/**
|
|
840
|
-
* Handle agent termination due to timeout or max turns.
|
|
841
|
-
*
|
|
842
|
-
* Emits appropriate events and returns a partial response.
|
|
843
|
-
*
|
|
844
|
-
* @param reason - Why the agent is terminating
|
|
845
|
-
* @param stateMachine - The state machine for context
|
|
846
|
-
* @param taskId - Optional task ID for concurrent task isolation
|
|
847
|
-
* @returns Partial response or fallback message
|
|
848
|
-
*/
|
|
849
|
-
async handleTermination(reason, stateMachine, taskId) {
|
|
850
|
-
const context = stateMachine.getContext();
|
|
851
|
-
const durationMs = Date.now() - context.startTime.getTime();
|
|
852
|
-
this.logger.warn('Agent execution terminated', {
|
|
853
|
-
durationMs,
|
|
854
|
-
reason,
|
|
855
|
-
toolCallsExecuted: context.toolCallsExecuted,
|
|
856
|
-
turnCount: context.turnCount,
|
|
857
|
-
});
|
|
858
|
-
// Emit termination event
|
|
859
|
-
this.sessionEventBus.emit('llmservice:warning', {
|
|
860
|
-
message: `Agent terminated: ${reason} after ${context.turnCount} turns`,
|
|
861
|
-
model: this.config.model,
|
|
862
|
-
provider: 'byterover',
|
|
863
|
-
taskId: taskId || undefined,
|
|
864
|
-
});
|
|
865
|
-
// Get accumulated response from context
|
|
866
|
-
const partialResponse = await this.getPartialResponse();
|
|
867
|
-
this.sessionEventBus.emit('llmservice:response', {
|
|
868
|
-
content: partialResponse,
|
|
869
|
-
model: this.config.model,
|
|
870
|
-
partial: true,
|
|
871
|
-
provider: 'byterover',
|
|
872
|
-
taskId: taskId || undefined,
|
|
873
|
-
});
|
|
874
|
-
if (reason === TerminationReason.MAX_TURNS) {
|
|
875
|
-
return (partialResponse ||
|
|
876
|
-
'Maximum iterations reached without completing the task. Please try breaking down the task into smaller steps.');
|
|
877
|
-
}
|
|
878
|
-
if (reason === TerminationReason.TIMEOUT) {
|
|
879
|
-
return partialResponse || 'Execution timed out. Please try a simpler task or increase the timeout.';
|
|
880
|
-
}
|
|
881
|
-
return partialResponse || 'Agent execution terminated unexpectedly.';
|
|
882
|
-
}
|
|
883
|
-
/**
|
|
884
|
-
* Handle thoughts from LLM response (Gemini only).
|
|
885
|
-
*
|
|
886
|
-
* Extracts and emits thought events if present.
|
|
887
|
-
*
|
|
888
|
-
* @param message - Message potentially containing thoughts
|
|
889
|
-
* @param taskId - Optional task ID for concurrent task isolation
|
|
890
|
-
*/
|
|
891
|
-
handleThoughts(message, taskId) {
|
|
892
|
-
// Only process thoughts for Gemini models
|
|
893
|
-
if (this.providerType !== 'gemini') {
|
|
894
|
-
return;
|
|
895
|
-
}
|
|
896
|
-
// Check if message has thought content
|
|
897
|
-
if (message.thought) {
|
|
898
|
-
// Parse thought if not already parsed
|
|
899
|
-
if (!message.thoughtSummary) {
|
|
900
|
-
message.thoughtSummary = ThoughtParser.parse(message.thought);
|
|
901
|
-
}
|
|
902
|
-
// Emit thought event
|
|
903
|
-
this.sessionEventBus.emit('llmservice:thought', {
|
|
904
|
-
description: message.thoughtSummary.description,
|
|
905
|
-
subject: message.thoughtSummary.subject,
|
|
906
|
-
taskId: taskId || undefined,
|
|
907
|
-
});
|
|
908
|
-
}
|
|
909
|
-
}
|
|
910
|
-
/**
|
|
911
|
-
* Handle tool calls from LLM response.
|
|
912
|
-
* Uses tool parts with state machine: pending → running → completed/error.
|
|
913
|
-
* Executes tools in parallel for performance, but updates state in order.
|
|
914
|
-
*
|
|
915
|
-
* @param lastMessage - Last message containing tool calls
|
|
916
|
-
* @param taskId - Task ID from usecase for billing tracking (passed to subagents)
|
|
917
|
-
*/
|
|
918
|
-
async handleToolCalls(lastMessage, taskId) {
|
|
919
|
-
if (!lastMessage.toolCalls || lastMessage.toolCalls.length === 0) {
|
|
920
|
-
return;
|
|
921
|
-
}
|
|
922
|
-
// Emit thought events if present
|
|
923
|
-
this.handleThoughts(lastMessage, taskId);
|
|
924
|
-
// Has tool calls - add assistant message with tool calls
|
|
925
|
-
const assistantContent = this.extractTextContent(lastMessage);
|
|
926
|
-
await this.contextManager.addAssistantMessage(assistantContent, lastMessage.toolCalls);
|
|
927
|
-
// Step 1: Create pending tool parts for all tool calls
|
|
928
|
-
for (const toolCall of lastMessage.toolCalls) {
|
|
929
|
-
const toolArgs = JSON.parse(toolCall.function.arguments);
|
|
930
|
-
this.contextManager.addToolCallPending(toolCall.id, toolCall.function.name, toolArgs);
|
|
931
|
-
}
|
|
932
|
-
// Step 2: Transition all to running state
|
|
933
|
-
const startTime = Date.now();
|
|
934
|
-
for (const toolCall of lastMessage.toolCalls) {
|
|
935
|
-
const runningState = {
|
|
936
|
-
input: JSON.parse(toolCall.function.arguments),
|
|
937
|
-
startedAt: startTime,
|
|
938
|
-
status: 'running',
|
|
939
|
-
};
|
|
940
|
-
this.contextManager.updateToolCallState(toolCall.id, runningState);
|
|
941
|
-
}
|
|
942
|
-
// Step 3: Execute all tool calls in parallel (pass taskId for subagent billing)
|
|
943
|
-
const parallelResults = await Promise.allSettled(lastMessage.toolCalls.map((toolCall) => this.executeToolCallParallel(toolCall, taskId)));
|
|
944
|
-
// Step 4: Update tool part states with results (in order)
|
|
945
|
-
const endTime = Date.now();
|
|
946
|
-
// eslint-disable-next-line unicorn/no-for-loop -- Need index to access both parallelResults and toolCalls in parallel
|
|
947
|
-
for (let i = 0; i < parallelResults.length; i++) {
|
|
948
|
-
const settledResult = parallelResults[i];
|
|
949
|
-
const toolCall = lastMessage.toolCalls[i];
|
|
950
|
-
const toolArgs = JSON.parse(toolCall.function.arguments);
|
|
951
|
-
if (settledResult.status === 'fulfilled') {
|
|
952
|
-
const result = settledResult.value;
|
|
953
|
-
if (result.toolResult?.success) {
|
|
954
|
-
// Transition to completed state
|
|
955
|
-
const completedState = {
|
|
956
|
-
attachments: result.toolResult.processedOutput.attachments,
|
|
957
|
-
input: toolArgs,
|
|
958
|
-
metadata: result.toolResult.metadata,
|
|
959
|
-
output: result.toolResult.processedOutput.content,
|
|
960
|
-
status: 'completed',
|
|
961
|
-
time: { end: endTime, start: startTime },
|
|
962
|
-
title: result.toolResult.processedOutput.title,
|
|
963
|
-
};
|
|
964
|
-
this.contextManager.updateToolCallState(toolCall.id, completedState);
|
|
965
|
-
}
|
|
966
|
-
else {
|
|
967
|
-
// Transition to error state
|
|
968
|
-
const errorState = {
|
|
969
|
-
error: result.toolResult?.processedOutput.content ?? result.error ?? 'Unknown error',
|
|
970
|
-
input: toolArgs,
|
|
971
|
-
status: 'error',
|
|
972
|
-
time: { end: endTime, start: startTime },
|
|
973
|
-
};
|
|
974
|
-
this.contextManager.updateToolCallState(toolCall.id, errorState);
|
|
975
|
-
}
|
|
976
|
-
// Also add to context as tool result message (for backward compatibility)
|
|
977
|
-
// eslint-disable-next-line no-await-in-loop -- Must add results in order
|
|
978
|
-
await this.addParallelToolResultToContext(result);
|
|
979
|
-
}
|
|
980
|
-
else {
|
|
981
|
-
// Handle unexpected Promise rejection
|
|
982
|
-
const errorMessage = getErrorMessage(settledResult.reason);
|
|
983
|
-
this.logger.error('Unexpected error in parallel tool execution', {
|
|
984
|
-
error: settledResult.reason,
|
|
985
|
-
toolCallId: toolCall.id,
|
|
986
|
-
toolName: toolCall.function.name,
|
|
987
|
-
});
|
|
988
|
-
// Transition to error state
|
|
989
|
-
const errorState = {
|
|
990
|
-
error: errorMessage,
|
|
991
|
-
input: toolArgs,
|
|
992
|
-
status: 'error',
|
|
993
|
-
time: { end: endTime, start: startTime },
|
|
994
|
-
};
|
|
995
|
-
this.contextManager.updateToolCallState(toolCall.id, errorState);
|
|
996
|
-
// Also add to context as tool result message (for backward compatibility)
|
|
997
|
-
// eslint-disable-next-line no-await-in-loop -- Must add results in order
|
|
998
|
-
await this.contextManager.addToolResult(toolCall.id, toolCall.function.name, `Error: ${errorMessage}`, {
|
|
999
|
-
errorType: 'UNEXPECTED_ERROR',
|
|
1000
|
-
success: false,
|
|
1001
|
-
});
|
|
1002
|
-
}
|
|
1003
|
-
}
|
|
1004
|
-
}
|
|
1005
|
-
/**
|
|
1006
|
-
* Validate LLM configuration using Zod schema.
|
|
1007
|
-
*
|
|
1008
|
-
* Performs validation against the centralized LLM config schema.
|
|
1009
|
-
* Logs warnings for invalid configurations but doesn't throw to maintain
|
|
1010
|
-
* backward compatibility with existing code.
|
|
1011
|
-
*
|
|
1012
|
-
* @param model - Model name to validate
|
|
1013
|
-
* @param maxInputTokens - Optional max input tokens to validate
|
|
1014
|
-
*/
|
|
1015
|
-
validateConfig(model, maxInputTokens) {
|
|
1016
|
-
const result = safeParseLLMConfig({
|
|
1017
|
-
maxInputTokens,
|
|
1018
|
-
maxIterations: this.config?.maxIterations ?? 50,
|
|
1019
|
-
model,
|
|
1020
|
-
provider: this.providerType,
|
|
1021
|
-
});
|
|
1022
|
-
if (!result.success) {
|
|
1023
|
-
// Log validation warnings but don't throw (backward compatibility)
|
|
1024
|
-
const issues = result.error.issues.map((issue) => `${issue.path.join('.')}: ${issue.message}`).join('; ');
|
|
1025
|
-
this.logger.warn('LLM config validation warning', {
|
|
1026
|
-
issues,
|
|
1027
|
-
model,
|
|
1028
|
-
provider: this.providerType,
|
|
1029
|
-
});
|
|
1030
|
-
// Also check if model is valid in registry
|
|
1031
|
-
if (!isValidProviderModel(this.providerType, model)) {
|
|
1032
|
-
this.logger.info('Model not in registry, using fallback defaults', {
|
|
1033
|
-
model,
|
|
1034
|
-
provider: this.providerType,
|
|
1035
|
-
});
|
|
1036
|
-
}
|
|
1037
|
-
}
|
|
1038
|
-
}
|
|
1039
|
-
}
|