byterover-cli 0.4.0 → 1.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 +1 -9
- package/dist/commands/curate.d.ts +1 -3
- package/dist/commands/curate.js +14 -51
- package/dist/commands/main.d.ts +8 -0
- package/dist/commands/main.js +29 -8
- package/dist/commands/query.d.ts +1 -3
- package/dist/commands/query.js +8 -35
- package/dist/config/context-tree-domains.d.ts +5 -0
- package/dist/config/context-tree-domains.js +6 -1
- package/dist/config/environment.js +9 -9
- package/dist/constants.d.ts +14 -0
- package/dist/constants.js +18 -0
- package/dist/core/domain/cipher/agent/agent-info.d.ts +199 -0
- package/dist/core/domain/cipher/agent/agent-info.js +143 -0
- package/dist/core/domain/cipher/agent/agent-registry.d.ts +96 -0
- package/dist/core/domain/cipher/agent/agent-registry.js +254 -0
- package/dist/core/domain/cipher/agent/index.d.ts +4 -1
- package/dist/core/domain/cipher/agent/index.js +7 -1
- package/dist/core/domain/cipher/agent-events/types.d.ts +355 -2
- package/dist/core/domain/cipher/agent-events/types.js +11 -0
- package/dist/core/domain/cipher/errors/error-normalizer.d.ts +156 -0
- package/dist/core/domain/cipher/errors/error-normalizer.js +379 -0
- package/dist/core/domain/cipher/errors/file-system-error.d.ts +2 -1
- package/dist/core/domain/cipher/errors/file-system-error.js +3 -2
- package/dist/core/domain/cipher/errors/system-prompt-error-codes.d.ts +79 -0
- package/dist/core/domain/cipher/errors/system-prompt-error-codes.js +80 -0
- package/dist/core/domain/cipher/errors/system-prompt-error.d.ts +114 -0
- package/dist/core/domain/cipher/errors/system-prompt-error.js +144 -0
- package/dist/core/domain/cipher/file-system/types.d.ts +57 -0
- package/dist/core/domain/cipher/llm/error-codes.d.ts +51 -0
- package/dist/core/domain/cipher/llm/error-codes.js +51 -0
- package/dist/core/domain/cipher/llm/index.d.ts +9 -0
- package/dist/core/domain/cipher/llm/index.js +13 -0
- package/dist/core/domain/cipher/llm/registry.d.ts +113 -0
- package/dist/core/domain/cipher/llm/registry.js +244 -0
- package/dist/core/domain/cipher/llm/schemas.d.ts +155 -0
- package/dist/core/domain/cipher/llm/schemas.js +151 -0
- package/dist/core/domain/cipher/llm/types.d.ts +121 -0
- package/dist/core/domain/cipher/llm/types.js +60 -0
- package/dist/core/domain/cipher/storage/message-storage-types.d.ts +114 -5
- package/dist/core/domain/cipher/streaming/types.d.ts +119 -0
- package/dist/core/domain/cipher/streaming/types.js +16 -0
- package/dist/core/domain/cipher/system-prompt/types.d.ts +44 -0
- package/dist/core/domain/cipher/todos/types.d.ts +34 -0
- package/dist/core/domain/cipher/tools/constants.d.ts +5 -2
- package/dist/core/domain/cipher/tools/constants.js +5 -2
- package/dist/core/domain/cipher/tools/types.d.ts +31 -0
- package/dist/core/domain/entities/event.d.ts +1 -1
- package/dist/core/domain/entities/event.js +3 -1
- package/dist/core/domain/errors/connection-error.d.ts +33 -0
- package/dist/core/domain/errors/connection-error.js +54 -0
- package/dist/core/domain/errors/core-process-error.d.ts +27 -0
- package/dist/core/domain/errors/core-process-error.js +43 -0
- package/dist/core/domain/errors/task-error.d.ts +64 -0
- package/dist/core/domain/errors/task-error.js +116 -0
- package/dist/core/domain/errors/transport-error.d.ts +72 -0
- package/dist/core/domain/errors/transport-error.js +114 -0
- package/dist/core/domain/instance/index.d.ts +1 -0
- package/dist/core/domain/instance/index.js +1 -0
- package/dist/core/domain/instance/types.d.ts +57 -0
- package/dist/core/domain/instance/types.js +72 -0
- package/dist/core/domain/knowledge/directory-manager.d.ts +16 -0
- package/dist/core/domain/knowledge/directory-manager.js +31 -0
- package/dist/core/domain/transport/index.d.ts +2 -0
- package/dist/core/domain/transport/index.js +2 -0
- package/dist/core/domain/transport/schemas.d.ts +1149 -0
- package/dist/core/domain/transport/schemas.js +554 -0
- package/dist/core/domain/transport/types.d.ts +67 -0
- package/dist/core/domain/transport/types.js +7 -0
- package/dist/core/interfaces/cipher/cipher-services.d.ts +15 -3
- package/dist/core/interfaces/cipher/i-chat-session.d.ts +47 -5
- package/dist/core/interfaces/cipher/i-cipher-agent.d.ts +39 -4
- package/dist/core/interfaces/cipher/i-content-generator.d.ts +3 -5
- package/dist/core/interfaces/cipher/i-file-system.d.ts +12 -1
- package/dist/core/interfaces/cipher/i-llm-service.d.ts +4 -5
- package/dist/core/interfaces/cipher/i-todo-storage.d.ts +24 -0
- package/dist/core/interfaces/cipher/i-todo-storage.js +1 -0
- package/dist/core/interfaces/cipher/i-tool-plugin.d.ts +90 -0
- package/dist/core/interfaces/cipher/i-tool-plugin.js +1 -0
- package/dist/core/interfaces/cipher/i-tool-provider.d.ts +3 -2
- package/dist/core/interfaces/cipher/i-tool-scheduler.d.ts +4 -0
- package/dist/core/interfaces/cipher/index.d.ts +35 -0
- package/dist/core/interfaces/cipher/index.js +11 -0
- package/dist/core/interfaces/cipher/message-factory.d.ts +155 -0
- package/dist/core/interfaces/cipher/message-factory.js +252 -0
- package/dist/core/interfaces/cipher/message-type-guards.d.ts +139 -0
- package/dist/core/interfaces/cipher/message-type-guards.js +173 -0
- package/dist/core/interfaces/cipher/message-types.d.ts +279 -5
- package/dist/core/interfaces/cipher/message-types.js +6 -0
- package/dist/core/interfaces/cipher/sanitization-types.d.ts +147 -0
- package/dist/core/interfaces/cipher/sanitization-types.js +46 -0
- package/dist/core/interfaces/executor/i-curate-executor.d.ts +34 -0
- package/dist/core/interfaces/executor/i-curate-executor.js +1 -0
- package/dist/core/interfaces/executor/i-query-executor.d.ts +32 -0
- package/dist/core/interfaces/executor/i-query-executor.js +1 -0
- package/dist/core/interfaces/executor/index.d.ts +2 -0
- package/dist/core/interfaces/executor/index.js +2 -0
- package/dist/core/interfaces/instance/i-instance-discovery.d.ts +45 -0
- package/dist/core/interfaces/instance/i-instance-discovery.js +1 -0
- package/dist/core/interfaces/instance/i-instance-manager.d.ts +58 -0
- package/dist/core/interfaces/instance/i-instance-manager.js +1 -0
- package/dist/core/interfaces/instance/index.d.ts +2 -0
- package/dist/core/interfaces/instance/index.js +2 -0
- package/dist/core/interfaces/noop-implementations.d.ts +53 -0
- package/dist/core/interfaces/noop-implementations.js +62 -0
- package/dist/core/interfaces/transport/i-transport-client.d.ts +97 -0
- package/dist/core/interfaces/transport/i-transport-client.js +1 -0
- package/dist/core/interfaces/transport/i-transport-server.d.ts +93 -0
- package/dist/core/interfaces/transport/i-transport-server.js +1 -0
- package/dist/core/interfaces/transport/index.d.ts +2 -0
- package/dist/core/interfaces/transport/index.js +2 -0
- package/dist/hooks/init/welcome.js +9 -24
- package/dist/infra/cipher/agent/agent-error-codes.d.ts +16 -0
- package/dist/infra/cipher/agent/agent-error-codes.js +17 -0
- package/dist/infra/cipher/agent/agent-error.d.ts +54 -0
- package/dist/infra/cipher/agent/agent-error.js +79 -0
- package/dist/infra/cipher/agent/agent-schemas.d.ts +264 -0
- package/dist/infra/cipher/agent/agent-schemas.js +97 -0
- package/dist/infra/cipher/agent/agent-state-manager.d.ts +140 -0
- package/dist/infra/cipher/agent/agent-state-manager.js +275 -0
- package/dist/infra/cipher/agent/base-agent.d.ts +118 -0
- package/dist/infra/cipher/agent/base-agent.js +240 -0
- package/dist/infra/cipher/agent/cipher-agent.d.ts +165 -0
- package/dist/infra/cipher/agent/cipher-agent.js +546 -0
- package/dist/infra/cipher/agent/index.d.ts +22 -0
- package/dist/infra/cipher/agent/index.js +24 -0
- package/dist/infra/cipher/agent/service-initializer.d.ts +79 -0
- package/dist/infra/cipher/{agent-service-factory.js → agent/service-initializer.js} +117 -68
- package/dist/infra/cipher/agent/types.d.ts +35 -0
- package/dist/infra/cipher/agent/types.js +1 -0
- package/dist/infra/cipher/blob/blob-reference-resolver.d.ts +107 -0
- package/dist/infra/cipher/blob/blob-reference-resolver.js +228 -0
- package/dist/infra/cipher/blob/blob-reference-utils.d.ts +117 -0
- package/dist/infra/cipher/blob/blob-reference-utils.js +230 -0
- package/dist/infra/cipher/consumer/consumer-lock.js +1 -0
- package/dist/infra/cipher/consumer/consumer-service.js +1 -0
- package/dist/infra/cipher/consumer/execution-consumer.d.ts +6 -1
- package/dist/infra/cipher/consumer/execution-consumer.js +54 -16
- package/dist/infra/cipher/consumer/index.d.ts +1 -1
- package/dist/infra/cipher/consumer/index.js +2 -1
- package/dist/infra/cipher/consumer/queue-polling-service.js +1 -0
- package/dist/infra/cipher/file-system/binary-utils.d.ts +43 -0
- package/dist/infra/cipher/file-system/binary-utils.js +164 -0
- package/dist/infra/cipher/file-system/context-tree-file-system-factory.d.ts +9 -0
- package/dist/infra/cipher/file-system/context-tree-file-system-factory.js +24 -0
- package/dist/infra/cipher/file-system/file-system-service.d.ts +17 -1
- package/dist/infra/cipher/file-system/file-system-service.js +327 -36
- package/dist/infra/cipher/file-system/path-validator.d.ts +32 -0
- package/dist/infra/cipher/file-system/path-validator.js +111 -6
- package/dist/infra/cipher/interactive-loop.js +41 -33
- package/dist/infra/cipher/llm/capability-cache.d.ts +87 -0
- package/dist/infra/cipher/llm/capability-cache.js +125 -0
- package/dist/infra/cipher/llm/context/compaction/compaction-service.d.ts +32 -0
- package/dist/infra/cipher/llm/context/compaction/compaction-service.js +44 -3
- package/dist/infra/cipher/llm/context/compression/enhanced-compaction.d.ts +112 -0
- package/dist/infra/cipher/llm/context/compression/enhanced-compaction.js +175 -0
- package/dist/infra/cipher/llm/context/compression/filter-compacted.d.ts +83 -0
- package/dist/infra/cipher/llm/context/compression/filter-compacted.js +150 -0
- package/dist/infra/cipher/llm/context/compression/index.d.ts +5 -0
- package/dist/infra/cipher/llm/context/compression/index.js +6 -0
- package/dist/infra/cipher/llm/context/compression/reactive-overflow.d.ts +107 -0
- package/dist/infra/cipher/llm/context/compression/reactive-overflow.js +272 -0
- package/dist/infra/cipher/llm/context/context-manager.d.ts +47 -1
- package/dist/infra/cipher/llm/context/context-manager.js +129 -0
- package/dist/infra/cipher/llm/context/utils.js +17 -4
- package/dist/infra/cipher/llm/generators/byterover-content-generator.js +4 -2
- package/dist/infra/cipher/llm/internal-llm-service.d.ts +50 -17
- package/dist/infra/cipher/llm/internal-llm-service.js +273 -50
- package/dist/infra/cipher/llm/openrouter-llm-service.d.ts +6 -8
- package/dist/infra/cipher/llm/openrouter-llm-service.js +14 -16
- package/dist/infra/cipher/llm/retry/retry-policy.d.ts +1 -0
- package/dist/infra/cipher/llm/retry/retry-policy.js +11 -0
- package/dist/infra/cipher/llm/retry/retry-with-backoff.js +3 -2
- package/dist/infra/cipher/llm/sanitization/base64-utils.d.ts +102 -0
- package/dist/infra/cipher/llm/sanitization/base64-utils.js +182 -0
- package/dist/infra/cipher/llm/sanitization/index.d.ts +12 -0
- package/dist/infra/cipher/llm/sanitization/index.js +13 -0
- package/dist/infra/cipher/llm/sanitization/tool-sanitizer.d.ts +74 -0
- package/dist/infra/cipher/llm/sanitization/tool-sanitizer.js +398 -0
- package/dist/infra/cipher/llm/stream-processor.d.ts +158 -0
- package/dist/infra/cipher/llm/stream-processor.js +276 -0
- package/dist/infra/cipher/llm/tokenizers/claude-tokenizer.d.ts +13 -20
- package/dist/infra/cipher/llm/tokenizers/claude-tokenizer.js +17 -24
- package/dist/infra/cipher/llm/tokenizers/gemini-tokenizer.d.ts +12 -11
- package/dist/infra/cipher/llm/tokenizers/gemini-tokenizer.js +16 -15
- package/dist/infra/cipher/llm/tokenizers/openrouter-tokenizer.d.ts +15 -7
- package/dist/infra/cipher/llm/tokenizers/openrouter-tokenizer.js +22 -10
- package/dist/infra/cipher/llm/tool-output-processor.d.ts +51 -0
- package/dist/infra/cipher/llm/tool-output-processor.js +139 -0
- package/dist/infra/cipher/process/command-validator.d.ts +23 -0
- package/dist/infra/cipher/process/command-validator.js +75 -0
- package/dist/infra/cipher/process/path-utils.d.ts +66 -0
- package/dist/infra/cipher/process/path-utils.js +94 -0
- package/dist/infra/cipher/process/process-service.d.ts +32 -0
- package/dist/infra/cipher/process/process-service.js +98 -17
- package/dist/infra/cipher/session/chat-session.d.ts +56 -7
- package/dist/infra/cipher/session/chat-session.js +163 -13
- package/dist/infra/cipher/session/index.d.ts +1 -0
- package/dist/infra/cipher/session/index.js +2 -0
- package/dist/infra/cipher/session/message-queue.d.ts +65 -0
- package/dist/infra/cipher/session/message-queue.js +90 -0
- package/dist/infra/cipher/session/session-manager.d.ts +106 -5
- package/dist/infra/cipher/session/session-manager.js +254 -7
- package/dist/infra/cipher/session/session-status.d.ts +137 -0
- package/dist/infra/cipher/session/session-status.js +184 -0
- package/dist/infra/cipher/session/title-generator.d.ts +8 -0
- package/dist/infra/cipher/session/title-generator.js +31 -0
- package/dist/infra/cipher/storage/message-storage-service.d.ts +65 -2
- package/dist/infra/cipher/storage/message-storage-service.js +300 -54
- package/dist/infra/cipher/storage/tool-part-factory.d.ts +116 -0
- package/dist/infra/cipher/storage/tool-part-factory.js +197 -0
- package/dist/infra/cipher/system-prompt/contributor-schemas.d.ts +516 -0
- package/dist/infra/cipher/system-prompt/contributor-schemas.js +85 -0
- package/dist/infra/cipher/system-prompt/contributors/agent-prompt-contributor.d.ts +59 -0
- package/dist/infra/cipher/system-prompt/contributors/agent-prompt-contributor.js +131 -0
- package/dist/infra/cipher/system-prompt/contributors/companion-contributor.d.ts +54 -0
- package/dist/infra/cipher/system-prompt/contributors/companion-contributor.js +107 -0
- package/dist/infra/cipher/system-prompt/contributors/context-tree-structure-contributor.d.ts +68 -0
- package/dist/infra/cipher/system-prompt/contributors/context-tree-structure-contributor.js +179 -0
- package/dist/infra/cipher/system-prompt/contributors/datetime-contributor.d.ts +25 -0
- package/dist/infra/cipher/system-prompt/contributors/datetime-contributor.js +29 -0
- package/dist/infra/cipher/system-prompt/contributors/environment-contributor.d.ts +25 -0
- package/dist/infra/cipher/system-prompt/contributors/environment-contributor.js +54 -0
- package/dist/infra/cipher/system-prompt/contributors/file-contributor.d.ts +60 -0
- package/dist/infra/cipher/system-prompt/contributors/file-contributor.js +128 -0
- package/dist/infra/cipher/system-prompt/contributors/index.d.ts +13 -0
- package/dist/infra/cipher/system-prompt/contributors/index.js +8 -0
- package/dist/infra/cipher/system-prompt/contributors/memory-contributor.d.ts +40 -0
- package/dist/infra/cipher/system-prompt/contributors/memory-contributor.js +56 -0
- package/dist/infra/cipher/system-prompt/contributors/static-contributor.d.ts +26 -0
- package/dist/infra/cipher/system-prompt/contributors/static-contributor.js +31 -0
- package/dist/infra/cipher/system-prompt/environment-context-builder.d.ts +112 -0
- package/dist/infra/cipher/system-prompt/environment-context-builder.js +256 -0
- package/dist/infra/cipher/system-prompt/prompt-cache.d.ts +102 -0
- package/dist/infra/cipher/system-prompt/prompt-cache.js +156 -0
- package/dist/infra/cipher/system-prompt/schemas.d.ts +151 -0
- package/dist/infra/cipher/system-prompt/schemas.js +94 -0
- package/dist/infra/cipher/system-prompt/system-prompt-manager.d.ts +136 -0
- package/dist/infra/cipher/system-prompt/system-prompt-manager.js +307 -0
- package/dist/infra/cipher/todos/todo-storage-service.d.ts +26 -0
- package/dist/infra/cipher/todos/todo-storage-service.js +28 -0
- package/dist/infra/cipher/tools/core-tool-scheduler.js +5 -1
- package/dist/infra/cipher/tools/default-policy-rules.js +1 -1
- package/dist/infra/cipher/tools/implementations/bash-exec-tool.d.ts +1 -0
- package/dist/infra/cipher/tools/implementations/bash-exec-tool.js +27 -10
- package/dist/infra/cipher/tools/implementations/bash-output-tool.js +1 -5
- package/dist/infra/cipher/tools/implementations/batch-tool.d.ts +12 -0
- package/dist/infra/cipher/tools/implementations/batch-tool.js +142 -0
- package/dist/infra/cipher/tools/implementations/curate-tool.js +195 -68
- package/dist/infra/cipher/tools/implementations/list-directory-tool.d.ts +12 -0
- package/dist/infra/cipher/tools/implementations/list-directory-tool.js +52 -0
- package/dist/infra/cipher/tools/implementations/read-file-tool.d.ts +8 -1
- package/dist/infra/cipher/tools/implementations/read-file-tool.js +17 -7
- package/dist/infra/cipher/tools/implementations/read-todos-tool.d.ts +11 -0
- package/dist/infra/cipher/tools/implementations/read-todos-tool.js +39 -0
- package/dist/infra/cipher/tools/implementations/{detect-domains-tool.d.ts → spec-analyze-tool.d.ts} +1 -1
- package/dist/infra/cipher/tools/implementations/{detect-domains-tool.js → spec-analyze-tool.js} +9 -7
- package/dist/infra/cipher/tools/implementations/task-tool.d.ts +34 -0
- package/dist/infra/cipher/tools/implementations/task-tool.js +207 -0
- package/dist/infra/cipher/tools/implementations/write-todos-tool.d.ts +4 -1
- package/dist/infra/cipher/tools/implementations/write-todos-tool.js +19 -63
- package/dist/infra/cipher/tools/index.d.ts +1 -1
- package/dist/infra/cipher/tools/index.js +1 -1
- package/dist/infra/cipher/tools/plugins/index.d.ts +3 -0
- package/dist/infra/cipher/tools/plugins/index.js +2 -0
- package/dist/infra/cipher/tools/plugins/logging-plugin.d.ts +28 -0
- package/dist/infra/cipher/tools/plugins/logging-plugin.js +66 -0
- package/dist/infra/cipher/tools/plugins/plugin-manager.d.ts +81 -0
- package/dist/infra/cipher/tools/plugins/plugin-manager.js +122 -0
- package/dist/infra/cipher/tools/streaming/index.d.ts +1 -0
- package/dist/infra/cipher/tools/streaming/index.js +1 -0
- package/dist/infra/cipher/tools/streaming/metadata-handler.d.ts +31 -0
- package/dist/infra/cipher/tools/streaming/metadata-handler.js +39 -0
- package/dist/infra/cipher/tools/tool-description-loader.d.ts +57 -0
- package/dist/infra/cipher/tools/tool-description-loader.js +108 -0
- package/dist/infra/cipher/tools/tool-manager.d.ts +38 -4
- package/dist/infra/cipher/tools/tool-manager.js +107 -11
- package/dist/infra/cipher/tools/tool-provider-getter.d.ts +6 -0
- package/dist/infra/cipher/tools/tool-provider-getter.js +1 -0
- package/dist/infra/cipher/tools/tool-provider.d.ts +32 -7
- package/dist/infra/cipher/tools/tool-provider.js +81 -25
- package/dist/infra/cipher/tools/tool-registry.d.ts +23 -0
- package/dist/infra/cipher/tools/tool-registry.js +58 -16
- package/dist/infra/context-tree/file-context-tree-snapshot-service.js +10 -4
- package/dist/infra/context-tree/file-context-tree-writer-service.d.ts +4 -3
- package/dist/infra/context-tree/file-context-tree-writer-service.js +6 -4
- package/dist/infra/context-tree/path-utils.d.ts +7 -0
- package/dist/infra/context-tree/path-utils.js +7 -0
- package/dist/infra/core/executors/curate-executor.d.ts +35 -0
- package/dist/infra/core/executors/curate-executor.js +123 -0
- package/dist/infra/core/executors/index.d.ts +2 -0
- package/dist/infra/core/executors/index.js +2 -0
- package/dist/infra/core/executors/query-executor.d.ts +23 -0
- package/dist/infra/core/executors/query-executor.js +51 -0
- package/dist/infra/core/task-processor.d.ts +81 -0
- package/dist/infra/core/task-processor.js +115 -0
- package/dist/infra/instance/file-instance-discovery.d.ts +31 -0
- package/dist/infra/instance/file-instance-discovery.js +84 -0
- package/dist/infra/instance/file-instance-manager.d.ts +46 -0
- package/dist/infra/instance/file-instance-manager.js +123 -0
- package/dist/infra/instance/index.d.ts +3 -0
- package/dist/infra/instance/index.js +3 -0
- package/dist/infra/instance/process-utils.d.ts +14 -0
- package/dist/infra/instance/process-utils.js +39 -0
- package/dist/infra/process/agent-worker.d.ts +20 -0
- package/dist/infra/process/agent-worker.js +602 -0
- package/dist/infra/process/index.d.ts +12 -0
- package/dist/infra/process/index.js +11 -0
- package/dist/infra/process/ipc-types.d.ts +55 -0
- package/dist/infra/process/ipc-types.js +12 -0
- package/dist/infra/process/process-manager.d.ts +154 -0
- package/dist/infra/process/process-manager.js +471 -0
- package/dist/infra/process/task-queue-manager.d.ts +123 -0
- package/dist/infra/process/task-queue-manager.js +226 -0
- package/dist/infra/process/transport-handlers.d.ts +124 -0
- package/dist/infra/process/transport-handlers.js +348 -0
- package/dist/infra/process/transport-worker.d.ts +20 -0
- package/dist/infra/process/transport-worker.js +168 -0
- package/dist/infra/repl/commands/curate-command.js +0 -5
- package/dist/infra/repl/commands/query-command.js +0 -3
- package/dist/infra/repl/repl-startup.d.ts +4 -0
- package/dist/infra/repl/repl-startup.js +10 -1
- package/dist/infra/repl/transport-client-helper.d.ts +9 -0
- package/dist/infra/repl/transport-client-helper.js +96 -0
- package/dist/infra/transport/index.d.ts +4 -0
- package/dist/infra/transport/index.js +4 -0
- package/dist/infra/transport/port-utils.d.ts +42 -0
- package/dist/infra/transport/port-utils.js +84 -0
- package/dist/infra/transport/socket-io-transport-client.d.ts +45 -0
- package/dist/infra/transport/socket-io-transport-client.js +270 -0
- package/dist/infra/transport/socket-io-transport-server.d.ts +35 -0
- package/dist/infra/transport/socket-io-transport-server.js +207 -0
- package/dist/infra/transport/transport-client-factory.d.ts +76 -0
- package/dist/infra/transport/transport-client-factory.js +168 -0
- package/dist/infra/transport/transport-factory.d.ts +33 -0
- package/dist/infra/transport/transport-factory.js +59 -0
- package/dist/infra/usecase/curate-use-case.d.ts +8 -55
- package/dist/infra/usecase/curate-use-case.js +73 -259
- package/dist/infra/usecase/init-use-case.js +19 -8
- package/dist/infra/usecase/login-use-case.js +9 -3
- package/dist/infra/usecase/query-use-case.d.ts +18 -45
- package/dist/infra/usecase/query-use-case.js +251 -326
- package/dist/infra/usecase/status-use-case.js +1 -1
- package/dist/resources/prompts/{curate-context-tree-curation.yml → curate.yml} +25 -22
- package/dist/resources/prompts/explore.yml +78 -0
- package/dist/resources/prompts/plan.yml +114 -0
- package/dist/resources/prompts/reflection.yml +1 -1
- package/dist/resources/prompts/system-prompt.yml +15 -8
- package/dist/resources/prompts/tool-outputs.yml +0 -5
- package/dist/resources/tools/bash_exec.txt +98 -0
- package/dist/resources/tools/bash_output.txt +40 -0
- package/dist/resources/tools/batch.txt +28 -0
- package/dist/resources/tools/create_knowledge_topic.txt +23 -0
- package/dist/resources/tools/curate.txt +22 -0
- package/dist/resources/tools/delete_memory.txt +1 -0
- package/dist/resources/tools/detect_domains.txt +11 -0
- package/dist/resources/tools/edit_file.txt +1 -0
- package/dist/resources/tools/edit_memory.txt +1 -0
- package/dist/resources/tools/glob_files.txt +20 -0
- package/dist/resources/tools/grep_content.txt +18 -0
- package/dist/resources/tools/kill_process.txt +16 -0
- package/dist/resources/tools/list_directory.txt +16 -0
- package/dist/resources/tools/list_memories.txt +1 -0
- package/dist/resources/tools/read_file.txt +31 -0
- package/dist/resources/tools/read_memory.txt +1 -0
- package/dist/resources/tools/read_todos.txt +17 -0
- package/dist/resources/tools/search_history.txt +1 -0
- package/dist/resources/tools/task.txt +23 -0
- package/dist/resources/tools/write_file.txt +1 -0
- package/dist/resources/tools/write_memory.txt +1 -0
- package/dist/resources/tools/write_todos.txt +29 -0
- package/dist/tui/app.js +9 -13
- package/dist/tui/components/command-details.d.ts +14 -0
- package/dist/tui/components/command-details.js +35 -0
- package/dist/tui/components/execution/execution-changes.d.ts +5 -0
- package/dist/tui/components/execution/execution-changes.js +19 -4
- package/dist/tui/components/execution/execution-content.d.ts +4 -2
- package/dist/tui/components/execution/execution-content.js +26 -13
- package/dist/tui/components/execution/execution-input.js +3 -3
- package/dist/tui/components/execution/execution-progress.d.ts +2 -2
- package/dist/tui/components/execution/execution-progress.js +8 -6
- package/dist/tui/components/execution/log-item.d.ts +3 -4
- package/dist/tui/components/execution/log-item.js +2 -5
- package/dist/tui/components/footer.js +9 -4
- package/dist/tui/components/header.d.ts +3 -3
- package/dist/tui/components/header.js +5 -3
- package/dist/tui/components/index.d.ts +1 -0
- package/dist/tui/components/index.js +1 -0
- package/dist/tui/components/onboarding/copyable-prompt.d.ts +5 -3
- package/dist/tui/components/onboarding/copyable-prompt.js +7 -8
- package/dist/tui/components/onboarding/onboarding-flow.js +35 -25
- package/dist/tui/components/scrollable-list.js +12 -10
- package/dist/tui/components/suggestions.js +39 -41
- package/dist/tui/components/tab-bar.d.ts +2 -1
- package/dist/tui/components/tab-bar.js +3 -4
- package/dist/tui/constants.d.ts +0 -5
- package/dist/tui/constants.js +0 -5
- package/dist/tui/contexts/auth-context.js +9 -2
- package/dist/tui/contexts/{use-commands.js → commands-context.js} +6 -5
- package/dist/tui/contexts/index.d.ts +6 -1
- package/dist/tui/contexts/index.js +6 -1
- package/dist/tui/contexts/onboarding-context.d.ts +1 -1
- package/dist/tui/contexts/onboarding-context.js +9 -9
- package/dist/tui/contexts/tasks-context.d.ts +84 -0
- package/dist/tui/contexts/tasks-context.js +218 -0
- package/dist/tui/contexts/transport-context.d.ts +29 -0
- package/dist/tui/contexts/transport-context.js +82 -0
- package/dist/tui/hooks/index.d.ts +10 -6
- package/dist/tui/hooks/index.js +7 -6
- package/dist/tui/hooks/use-activity-logs.d.ts +3 -11
- package/dist/tui/hooks/use-activity-logs.js +87 -34
- package/dist/tui/hooks/use-auth-polling.d.ts +24 -0
- package/dist/tui/hooks/use-auth-polling.js +104 -0
- package/dist/tui/hooks/use-slash-command-processor.js +0 -1
- package/dist/tui/hooks/use-slash-completion.js +1 -1
- package/dist/tui/hooks/use-tab-navigation.d.ts +2 -1
- package/dist/tui/hooks/use-tab-navigation.js +16 -7
- package/dist/tui/hooks/use-terminal-breakpoint.d.ts +21 -0
- package/dist/tui/hooks/use-terminal-breakpoint.js +38 -0
- package/dist/tui/hooks/use-ui-heights.d.ts +120 -0
- package/dist/tui/hooks/use-ui-heights.js +88 -0
- package/dist/tui/providers/app-providers.js +2 -6
- package/dist/tui/types/commands.d.ts +0 -26
- package/dist/tui/types/index.d.ts +1 -1
- package/dist/tui/types/ui.d.ts +9 -4
- package/dist/tui/utils/line.d.ts +11 -0
- package/dist/tui/utils/line.js +16 -0
- package/dist/tui/utils/log.d.ts +27 -0
- package/dist/tui/utils/log.js +114 -0
- package/dist/tui/views/command-view.d.ts +7 -0
- package/dist/tui/views/command-view.js +103 -80
- package/dist/tui/views/login-view.js +7 -4
- package/dist/tui/views/logs-view.d.ts +13 -0
- package/dist/tui/views/logs-view.js +27 -52
- package/dist/utils/connection-error-handler.d.ts +16 -0
- package/dist/utils/connection-error-handler.js +49 -0
- package/dist/utils/crash-log.d.ts +14 -0
- package/dist/utils/crash-log.js +19 -0
- package/dist/utils/file-helpers.d.ts +14 -0
- package/dist/utils/file-helpers.js +21 -0
- package/dist/utils/global-logs-path.d.ts +11 -0
- package/dist/utils/global-logs-path.js +37 -0
- package/dist/utils/process-logger.d.ts +53 -0
- package/dist/utils/process-logger.js +253 -0
- package/dist/utils/sandbox-detector.d.ts +31 -0
- package/dist/utils/sandbox-detector.js +122 -0
- package/oclif.manifest.json +10 -198
- package/package.json +5 -1
- package/dist/commands/cipher-agent/run.d.ts +0 -142
- package/dist/commands/cipher-agent/run.js +0 -555
- package/dist/commands/cipher-agent/set-prompt.d.ts +0 -16
- package/dist/commands/cipher-agent/set-prompt.js +0 -58
- package/dist/commands/cipher-agent/show-prompt.d.ts +0 -13
- package/dist/commands/cipher-agent/show-prompt.js +0 -53
- package/dist/commands/foo.d.ts +0 -14
- package/dist/commands/foo.js +0 -66
- package/dist/infra/cipher/agent-service-factory.d.ts +0 -93
- package/dist/infra/cipher/cipher-agent-state-manager.d.ts +0 -63
- package/dist/infra/cipher/cipher-agent-state-manager.js +0 -108
- package/dist/infra/cipher/cipher-agent.d.ts +0 -182
- package/dist/infra/cipher/cipher-agent.js +0 -317
- package/dist/infra/cipher/system-prompt/simple-prompt-factory.d.ts +0 -106
- package/dist/infra/cipher/system-prompt/simple-prompt-factory.js +0 -297
- package/dist/infra/cipher/tools/implementations/find-knowledge-topics-tool.d.ts +0 -7
- package/dist/infra/cipher/tools/implementations/find-knowledge-topics-tool.js +0 -424
- package/dist/resources/prompts/modes/autonomous.yml +0 -9
- package/dist/resources/prompts/query-context-tree-retrieval.yml +0 -48
- package/dist/tui/contexts/consumer.d.ts +0 -31
- package/dist/tui/contexts/consumer.js +0 -56
- package/dist/tui/hooks/use-consumer.d.ts +0 -12
- package/dist/tui/hooks/use-consumer.js +0 -50
- package/dist/tui/hooks/use-queue-polling.d.ts +0 -31
- package/dist/tui/hooks/use-queue-polling.js +0 -90
- /package/dist/tui/contexts/{use-commands.d.ts → commands-context.d.ts} +0 -0
- /package/dist/tui/contexts/{use-mode.d.ts → mode-context.d.ts} +0 -0
- /package/dist/tui/contexts/{use-mode.js → mode-context.js} +0 -0
- /package/dist/tui/contexts/{use-theme.d.ts → theme-context.d.ts} +0 -0
- /package/dist/tui/contexts/{use-theme.js → theme-context.js} +0 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base error for client connection failures.
|
|
3
|
+
*/
|
|
4
|
+
export class ConnectionError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'ConnectionError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Error thrown when no running instance is found.
|
|
12
|
+
*/
|
|
13
|
+
export class NoInstanceRunningError extends ConnectionError {
|
|
14
|
+
constructor() {
|
|
15
|
+
super('No ByteRover instance is running. Start one with: brv');
|
|
16
|
+
this.name = 'NoInstanceRunningError';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Error thrown when instance is found but process has crashed.
|
|
21
|
+
*/
|
|
22
|
+
export class InstanceCrashedError extends ConnectionError {
|
|
23
|
+
constructor(projectRoot) {
|
|
24
|
+
const details = projectRoot ? ` in ${projectRoot}` : '';
|
|
25
|
+
super(`ByteRover instance${details} has crashed. Please restart with: brv`);
|
|
26
|
+
this.name = 'InstanceCrashedError';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Error thrown when connection to instance fails.
|
|
31
|
+
*/
|
|
32
|
+
export class ConnectionFailedError extends ConnectionError {
|
|
33
|
+
originalError;
|
|
34
|
+
port;
|
|
35
|
+
constructor(port, originalError) {
|
|
36
|
+
const portInfo = port ? ` on port ${port}` : '';
|
|
37
|
+
const errorInfo = originalError ? `: ${originalError.message}` : '';
|
|
38
|
+
super(`Failed to connect to ByteRover instance${portInfo}${errorInfo}`);
|
|
39
|
+
this.name = 'ConnectionFailedError';
|
|
40
|
+
this.port = port;
|
|
41
|
+
this.originalError = originalError;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Error thrown when connection times out.
|
|
46
|
+
*/
|
|
47
|
+
export class ConnectionTimeoutError extends ConnectionError {
|
|
48
|
+
timeoutMs;
|
|
49
|
+
constructor(timeoutMs) {
|
|
50
|
+
super(`Connection timed out after ${timeoutMs}ms`);
|
|
51
|
+
this.name = 'ConnectionTimeoutError';
|
|
52
|
+
this.timeoutMs = timeoutMs;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base error for Core process failures.
|
|
3
|
+
*/
|
|
4
|
+
export declare class CoreProcessError extends Error {
|
|
5
|
+
constructor(message: string);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Error thrown when Core process is already running.
|
|
9
|
+
*/
|
|
10
|
+
export declare class CoreProcessAlreadyRunningError extends CoreProcessError {
|
|
11
|
+
constructor();
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Error thrown when instance lock cannot be acquired.
|
|
15
|
+
*/
|
|
16
|
+
export declare class InstanceLockError extends CoreProcessError {
|
|
17
|
+
readonly existingPid?: number;
|
|
18
|
+
readonly existingPort?: number;
|
|
19
|
+
constructor(existingPid?: number, existingPort?: number);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Error thrown when instance lock acquisition fails for unknown reason.
|
|
23
|
+
*/
|
|
24
|
+
export declare class InstanceLockAcquisitionError extends CoreProcessError {
|
|
25
|
+
readonly reason?: string;
|
|
26
|
+
constructor(reason?: string);
|
|
27
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base error for Core process failures.
|
|
3
|
+
*/
|
|
4
|
+
export class CoreProcessError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'CoreProcessError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Error thrown when Core process is already running.
|
|
12
|
+
*/
|
|
13
|
+
export class CoreProcessAlreadyRunningError extends CoreProcessError {
|
|
14
|
+
constructor() {
|
|
15
|
+
super('Core process is already running');
|
|
16
|
+
this.name = 'CoreProcessAlreadyRunningError';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Error thrown when instance lock cannot be acquired.
|
|
21
|
+
*/
|
|
22
|
+
export class InstanceLockError extends CoreProcessError {
|
|
23
|
+
existingPid;
|
|
24
|
+
existingPort;
|
|
25
|
+
constructor(existingPid, existingPort) {
|
|
26
|
+
const details = existingPid && existingPort ? ` (pid: ${existingPid}, port: ${existingPort})` : '';
|
|
27
|
+
super(`Failed to acquire instance lock. Another instance is already running${details}`);
|
|
28
|
+
this.name = 'InstanceLockError';
|
|
29
|
+
this.existingPid = existingPid;
|
|
30
|
+
this.existingPort = existingPort;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Error thrown when instance lock acquisition fails for unknown reason.
|
|
35
|
+
*/
|
|
36
|
+
export class InstanceLockAcquisitionError extends CoreProcessError {
|
|
37
|
+
reason;
|
|
38
|
+
constructor(reason) {
|
|
39
|
+
super(`Failed to acquire instance lock${reason ? `: ${reason}` : ''}`);
|
|
40
|
+
this.name = 'InstanceLockAcquisitionError';
|
|
41
|
+
this.reason = reason;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Error Codes
|
|
3
|
+
* Used for structured error handling in task execution.
|
|
4
|
+
*/
|
|
5
|
+
export declare const TaskErrorCode: {
|
|
6
|
+
readonly AGENT_DISCONNECTED: "ERR_AGENT_DISCONNECTED";
|
|
7
|
+
readonly AGENT_NOT_AVAILABLE: "ERR_AGENT_NOT_AVAILABLE";
|
|
8
|
+
readonly LLM_ERROR: "ERR_LLM_ERROR";
|
|
9
|
+
readonly LLM_RATE_LIMIT: "ERR_LLM_RATE_LIMIT";
|
|
10
|
+
readonly NOT_AUTHENTICATED: "ERR_NOT_AUTHENTICATED";
|
|
11
|
+
readonly PROCESSOR_NOT_INIT: "ERR_PROCESSOR_NOT_INIT";
|
|
12
|
+
readonly PROJECT_NOT_INIT: "ERR_PROJECT_NOT_INIT";
|
|
13
|
+
readonly TASK_CANCELLED: "ERR_TASK_CANCELLED";
|
|
14
|
+
readonly TASK_EXECUTION: "ERR_TASK_EXECUTION";
|
|
15
|
+
readonly TASK_TIMEOUT: "ERR_TASK_TIMEOUT";
|
|
16
|
+
readonly UNKNOWN: "ERR_UNKNOWN";
|
|
17
|
+
};
|
|
18
|
+
export type TaskErrorCodeType = (typeof TaskErrorCode)[keyof typeof TaskErrorCode];
|
|
19
|
+
/**
|
|
20
|
+
* Structured error object for transport.
|
|
21
|
+
* All task errors should conform to this shape.
|
|
22
|
+
*/
|
|
23
|
+
export interface TaskErrorData {
|
|
24
|
+
code?: TaskErrorCodeType;
|
|
25
|
+
details?: Record<string, unknown>;
|
|
26
|
+
message: string;
|
|
27
|
+
name: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Base error class for task-related errors.
|
|
31
|
+
*/
|
|
32
|
+
export declare class TaskError extends Error {
|
|
33
|
+
readonly code: TaskErrorCodeType;
|
|
34
|
+
readonly details?: Record<string, unknown>;
|
|
35
|
+
constructor(message: string, code?: TaskErrorCodeType, details?: Record<string, unknown>);
|
|
36
|
+
/**
|
|
37
|
+
* Serialize error for transport.
|
|
38
|
+
*/
|
|
39
|
+
toJSON(): TaskErrorData;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Serialize any error to TaskErrorData.
|
|
43
|
+
* Use this when catching errors to send via transport.
|
|
44
|
+
* Preserves original error properties - only adds code if error already has one or has known mapping.
|
|
45
|
+
*/
|
|
46
|
+
export declare function serializeTaskError(error: unknown): TaskErrorData;
|
|
47
|
+
export declare class AgentNotAvailableError extends TaskError {
|
|
48
|
+
constructor();
|
|
49
|
+
}
|
|
50
|
+
export declare class AgentDisconnectedError extends TaskError {
|
|
51
|
+
constructor();
|
|
52
|
+
}
|
|
53
|
+
export declare class ProcessorNotInitError extends TaskError {
|
|
54
|
+
constructor();
|
|
55
|
+
}
|
|
56
|
+
export declare class NotAuthenticatedError extends TaskError {
|
|
57
|
+
constructor();
|
|
58
|
+
}
|
|
59
|
+
export declare class ProjectNotInitError extends TaskError {
|
|
60
|
+
constructor();
|
|
61
|
+
}
|
|
62
|
+
export declare class FileValidationError extends Error {
|
|
63
|
+
constructor(message?: string);
|
|
64
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Error Codes
|
|
3
|
+
* Used for structured error handling in task execution.
|
|
4
|
+
*/
|
|
5
|
+
export const TaskErrorCode = {
|
|
6
|
+
// Agent errors
|
|
7
|
+
AGENT_DISCONNECTED: 'ERR_AGENT_DISCONNECTED',
|
|
8
|
+
AGENT_NOT_AVAILABLE: 'ERR_AGENT_NOT_AVAILABLE',
|
|
9
|
+
// LLM errors
|
|
10
|
+
LLM_ERROR: 'ERR_LLM_ERROR',
|
|
11
|
+
LLM_RATE_LIMIT: 'ERR_LLM_RATE_LIMIT',
|
|
12
|
+
// Auth/Init errors
|
|
13
|
+
NOT_AUTHENTICATED: 'ERR_NOT_AUTHENTICATED',
|
|
14
|
+
// Execution errors
|
|
15
|
+
PROCESSOR_NOT_INIT: 'ERR_PROCESSOR_NOT_INIT',
|
|
16
|
+
PROJECT_NOT_INIT: 'ERR_PROJECT_NOT_INIT',
|
|
17
|
+
TASK_CANCELLED: 'ERR_TASK_CANCELLED',
|
|
18
|
+
TASK_EXECUTION: 'ERR_TASK_EXECUTION',
|
|
19
|
+
TASK_TIMEOUT: 'ERR_TASK_TIMEOUT',
|
|
20
|
+
// Unknown
|
|
21
|
+
UNKNOWN: 'ERR_UNKNOWN',
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Base error class for task-related errors.
|
|
25
|
+
*/
|
|
26
|
+
export class TaskError extends Error {
|
|
27
|
+
code;
|
|
28
|
+
details;
|
|
29
|
+
constructor(message, code = TaskErrorCode.UNKNOWN, details) {
|
|
30
|
+
super(message);
|
|
31
|
+
this.name = 'TaskError';
|
|
32
|
+
this.code = code;
|
|
33
|
+
this.details = details;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Serialize error for transport.
|
|
37
|
+
*/
|
|
38
|
+
toJSON() {
|
|
39
|
+
return {
|
|
40
|
+
code: this.code,
|
|
41
|
+
...(this.details ? { details: this.details } : {}),
|
|
42
|
+
message: this.message,
|
|
43
|
+
name: this.name,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Serialize any error to TaskErrorData.
|
|
49
|
+
* Use this when catching errors to send via transport.
|
|
50
|
+
* Preserves original error properties - only adds code if error already has one or has known mapping.
|
|
51
|
+
*/
|
|
52
|
+
export function serializeTaskError(error) {
|
|
53
|
+
// Already a TaskError - has code
|
|
54
|
+
if (error instanceof TaskError) {
|
|
55
|
+
return error.toJSON();
|
|
56
|
+
}
|
|
57
|
+
// Standard Error with name
|
|
58
|
+
if (error instanceof Error) {
|
|
59
|
+
// Check for known error names and map to codes
|
|
60
|
+
const codeMap = {
|
|
61
|
+
AuthError: TaskErrorCode.NOT_AUTHENTICATED,
|
|
62
|
+
RateLimitError: TaskErrorCode.LLM_RATE_LIMIT,
|
|
63
|
+
TaskCancelledError: TaskErrorCode.TASK_CANCELLED,
|
|
64
|
+
TimeoutError: TaskErrorCode.TASK_TIMEOUT,
|
|
65
|
+
WorkspaceNotInitializedError: TaskErrorCode.PROJECT_NOT_INIT,
|
|
66
|
+
};
|
|
67
|
+
const code = codeMap[error.name];
|
|
68
|
+
return {
|
|
69
|
+
...(code ? { code } : {}),
|
|
70
|
+
message: error.message,
|
|
71
|
+
name: error.name,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
// Unknown error type
|
|
75
|
+
return {
|
|
76
|
+
message: String(error),
|
|
77
|
+
name: 'Error',
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
// Specific error classes for common cases
|
|
81
|
+
export class AgentNotAvailableError extends TaskError {
|
|
82
|
+
constructor() {
|
|
83
|
+
super('Agent not available. Please wait for Agent to connect.', TaskErrorCode.AGENT_NOT_AVAILABLE);
|
|
84
|
+
this.name = 'AgentNotAvailableError';
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
export class AgentDisconnectedError extends TaskError {
|
|
88
|
+
constructor() {
|
|
89
|
+
super('Agent disconnected', TaskErrorCode.AGENT_DISCONNECTED);
|
|
90
|
+
this.name = 'AgentDisconnectedError';
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export class ProcessorNotInitError extends TaskError {
|
|
94
|
+
constructor() {
|
|
95
|
+
super('TaskProcessor not initialized', TaskErrorCode.PROCESSOR_NOT_INIT);
|
|
96
|
+
this.name = 'ProcessorNotInitError';
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
export class NotAuthenticatedError extends TaskError {
|
|
100
|
+
constructor() {
|
|
101
|
+
super('Not authenticated. Please run "brv login" first.', TaskErrorCode.NOT_AUTHENTICATED);
|
|
102
|
+
this.name = 'NotAuthenticatedError';
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export class ProjectNotInitError extends TaskError {
|
|
106
|
+
constructor() {
|
|
107
|
+
super('Project not initialized. Please run "brv init" first.', TaskErrorCode.PROJECT_NOT_INIT);
|
|
108
|
+
this.name = 'ProjectNotInitError';
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
export class FileValidationError extends Error {
|
|
112
|
+
constructor(message = 'File validation failed. Please check file paths.') {
|
|
113
|
+
super(message);
|
|
114
|
+
this.name = 'FileValidationError';
|
|
115
|
+
}
|
|
116
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base error for transport layer failures.
|
|
3
|
+
*/
|
|
4
|
+
export declare class TransportError extends Error {
|
|
5
|
+
constructor(message: string);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Error thrown when connection to server fails.
|
|
9
|
+
*/
|
|
10
|
+
export declare class TransportConnectionError extends TransportError {
|
|
11
|
+
readonly originalError?: Error;
|
|
12
|
+
readonly url: string;
|
|
13
|
+
constructor(url: string, originalError?: Error);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Error thrown when client is not connected to server.
|
|
17
|
+
*/
|
|
18
|
+
export declare class TransportNotConnectedError extends TransportError {
|
|
19
|
+
constructor(operation?: string);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Error thrown when server is not started.
|
|
23
|
+
*/
|
|
24
|
+
export declare class TransportServerNotStartedError extends TransportError {
|
|
25
|
+
constructor(operation?: string);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Error thrown when server is already running.
|
|
29
|
+
*/
|
|
30
|
+
export declare class TransportServerAlreadyRunningError extends TransportError {
|
|
31
|
+
readonly port: number;
|
|
32
|
+
constructor(port: number);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Error thrown when port is already in use.
|
|
36
|
+
*/
|
|
37
|
+
export declare class TransportPortInUseError extends TransportError {
|
|
38
|
+
readonly port: number;
|
|
39
|
+
constructor(port: number);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Error thrown when a request times out.
|
|
43
|
+
*/
|
|
44
|
+
export declare class TransportRequestTimeoutError extends TransportError {
|
|
45
|
+
readonly event: string;
|
|
46
|
+
readonly timeoutMs: number;
|
|
47
|
+
constructor(event: string, timeoutMs: number);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Error thrown when a request fails with server error.
|
|
51
|
+
*/
|
|
52
|
+
export declare class TransportRequestError extends TransportError {
|
|
53
|
+
readonly event: string;
|
|
54
|
+
constructor(event: string, message?: string);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Error thrown when room operations fail.
|
|
58
|
+
*/
|
|
59
|
+
export declare class TransportRoomError extends TransportError {
|
|
60
|
+
readonly operation: 'join' | 'leave';
|
|
61
|
+
readonly room: string;
|
|
62
|
+
constructor(room: string, operation: 'join' | 'leave');
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Error thrown when room operation times out.
|
|
66
|
+
*/
|
|
67
|
+
export declare class TransportRoomTimeoutError extends TransportError {
|
|
68
|
+
readonly operation: 'join' | 'leave';
|
|
69
|
+
readonly room: string;
|
|
70
|
+
readonly timeoutMs: number;
|
|
71
|
+
constructor(room: string, operation: 'join' | 'leave', timeoutMs: number);
|
|
72
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base error for transport layer failures.
|
|
3
|
+
*/
|
|
4
|
+
export class TransportError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'TransportError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Error thrown when connection to server fails.
|
|
12
|
+
*/
|
|
13
|
+
export class TransportConnectionError extends TransportError {
|
|
14
|
+
originalError;
|
|
15
|
+
url;
|
|
16
|
+
constructor(url, originalError) {
|
|
17
|
+
super(`Connection failed to ${url}${originalError ? `: ${originalError.message}` : ''}`);
|
|
18
|
+
this.name = 'TransportConnectionError';
|
|
19
|
+
this.url = url;
|
|
20
|
+
this.originalError = originalError;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Error thrown when client is not connected to server.
|
|
25
|
+
*/
|
|
26
|
+
export class TransportNotConnectedError extends TransportError {
|
|
27
|
+
constructor(operation = 'operation') {
|
|
28
|
+
super(`Not connected to server. Cannot perform: ${operation}`);
|
|
29
|
+
this.name = 'TransportNotConnectedError';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Error thrown when server is not started.
|
|
34
|
+
*/
|
|
35
|
+
export class TransportServerNotStartedError extends TransportError {
|
|
36
|
+
constructor(operation = 'operation') {
|
|
37
|
+
super(`Server not started. Cannot perform: ${operation}`);
|
|
38
|
+
this.name = 'TransportServerNotStartedError';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Error thrown when server is already running.
|
|
43
|
+
*/
|
|
44
|
+
export class TransportServerAlreadyRunningError extends TransportError {
|
|
45
|
+
port;
|
|
46
|
+
constructor(port) {
|
|
47
|
+
super(`Server is already running on port ${port}`);
|
|
48
|
+
this.name = 'TransportServerAlreadyRunningError';
|
|
49
|
+
this.port = port;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Error thrown when port is already in use.
|
|
54
|
+
*/
|
|
55
|
+
export class TransportPortInUseError extends TransportError {
|
|
56
|
+
port;
|
|
57
|
+
constructor(port) {
|
|
58
|
+
super(`Port ${port} is already in use`);
|
|
59
|
+
this.name = 'TransportPortInUseError';
|
|
60
|
+
this.port = port;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Error thrown when a request times out.
|
|
65
|
+
*/
|
|
66
|
+
export class TransportRequestTimeoutError extends TransportError {
|
|
67
|
+
event;
|
|
68
|
+
timeoutMs;
|
|
69
|
+
constructor(event, timeoutMs) {
|
|
70
|
+
super(`Request timeout for event '${event}' after ${timeoutMs}ms`);
|
|
71
|
+
this.name = 'TransportRequestTimeoutError';
|
|
72
|
+
this.event = event;
|
|
73
|
+
this.timeoutMs = timeoutMs;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Error thrown when a request fails with server error.
|
|
78
|
+
*/
|
|
79
|
+
export class TransportRequestError extends TransportError {
|
|
80
|
+
event;
|
|
81
|
+
constructor(event, message = 'Request failed') {
|
|
82
|
+
super(`${message} for event '${event}'`);
|
|
83
|
+
this.name = 'TransportRequestError';
|
|
84
|
+
this.event = event;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Error thrown when room operations fail.
|
|
89
|
+
*/
|
|
90
|
+
export class TransportRoomError extends TransportError {
|
|
91
|
+
operation;
|
|
92
|
+
room;
|
|
93
|
+
constructor(room, operation) {
|
|
94
|
+
super(`Failed to ${operation} room '${room}'`);
|
|
95
|
+
this.name = 'TransportRoomError';
|
|
96
|
+
this.room = room;
|
|
97
|
+
this.operation = operation;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Error thrown when room operation times out.
|
|
102
|
+
*/
|
|
103
|
+
export class TransportRoomTimeoutError extends TransportError {
|
|
104
|
+
operation;
|
|
105
|
+
room;
|
|
106
|
+
timeoutMs;
|
|
107
|
+
constructor(room, operation, timeoutMs) {
|
|
108
|
+
super(`${operation === 'join' ? 'Join' : 'Leave'} room '${room}' timed out after ${timeoutMs}ms`);
|
|
109
|
+
this.name = 'TransportRoomTimeoutError';
|
|
110
|
+
this.room = room;
|
|
111
|
+
this.operation = operation;
|
|
112
|
+
this.timeoutMs = timeoutMs;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './types.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './types.js';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Raw instance data as stored in instance.json.
|
|
3
|
+
* Used for serialization/deserialization.
|
|
4
|
+
*
|
|
5
|
+
* NOTE: We don't store "status" - we check pid alive at runtime instead.
|
|
6
|
+
* This avoids stale status when process crashes.
|
|
7
|
+
*/
|
|
8
|
+
export type InstanceInfoJson = {
|
|
9
|
+
/** Current active session ID (for quick lookup without DB query) */
|
|
10
|
+
currentSessionId: null | string;
|
|
11
|
+
/** Process ID of the Core process */
|
|
12
|
+
pid: number;
|
|
13
|
+
/** Port the transport server is listening on */
|
|
14
|
+
port: number;
|
|
15
|
+
/** Timestamp when instance started (ms since epoch) */
|
|
16
|
+
startedAt: number;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Instance information representing a BRV Core process.
|
|
20
|
+
*
|
|
21
|
+
* Architecture note (Section 7):
|
|
22
|
+
* - File exists + pid alive → instance đang chạy
|
|
23
|
+
* - File exists + pid dead → stale (crash), có thể overwrite
|
|
24
|
+
* - File không có → không có instance nào
|
|
25
|
+
*/
|
|
26
|
+
export declare class InstanceInfo {
|
|
27
|
+
readonly currentSessionId: null | string;
|
|
28
|
+
readonly pid: number;
|
|
29
|
+
readonly port: number;
|
|
30
|
+
readonly startedAt: Date;
|
|
31
|
+
private constructor();
|
|
32
|
+
/**
|
|
33
|
+
* Creates a new instance info.
|
|
34
|
+
*/
|
|
35
|
+
static create(data: {
|
|
36
|
+
currentSessionId?: null | string;
|
|
37
|
+
pid: number;
|
|
38
|
+
port: number;
|
|
39
|
+
}): InstanceInfo;
|
|
40
|
+
/**
|
|
41
|
+
* Creates instance info from JSON data (from instance.json file).
|
|
42
|
+
*/
|
|
43
|
+
static fromJson(json: InstanceInfoJson): InstanceInfo;
|
|
44
|
+
/**
|
|
45
|
+
* Returns the transport URL for connecting to this instance.
|
|
46
|
+
* Uses 'localhost' instead of '127.0.0.1' for better sandbox compatibility.
|
|
47
|
+
*/
|
|
48
|
+
getTransportUrl(): string;
|
|
49
|
+
/**
|
|
50
|
+
* Converts instance info to JSON for persistence.
|
|
51
|
+
*/
|
|
52
|
+
toJson(): InstanceInfoJson;
|
|
53
|
+
/**
|
|
54
|
+
* Creates a new instance info with updated session ID.
|
|
55
|
+
*/
|
|
56
|
+
withSessionId(sessionId: string): InstanceInfo;
|
|
57
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { TRANSPORT_HOST } from '../../../constants.js';
|
|
2
|
+
/**
|
|
3
|
+
* Instance information representing a BRV Core process.
|
|
4
|
+
*
|
|
5
|
+
* Architecture note (Section 7):
|
|
6
|
+
* - File exists + pid alive → instance đang chạy
|
|
7
|
+
* - File exists + pid dead → stale (crash), có thể overwrite
|
|
8
|
+
* - File không có → không có instance nào
|
|
9
|
+
*/
|
|
10
|
+
export class InstanceInfo {
|
|
11
|
+
currentSessionId;
|
|
12
|
+
pid;
|
|
13
|
+
port;
|
|
14
|
+
startedAt;
|
|
15
|
+
constructor(data) {
|
|
16
|
+
this.currentSessionId = data.currentSessionId;
|
|
17
|
+
this.pid = data.pid;
|
|
18
|
+
this.port = data.port;
|
|
19
|
+
this.startedAt = data.startedAt;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Creates a new instance info.
|
|
23
|
+
*/
|
|
24
|
+
static create(data) {
|
|
25
|
+
return new InstanceInfo({
|
|
26
|
+
currentSessionId: data.currentSessionId ?? null,
|
|
27
|
+
pid: data.pid,
|
|
28
|
+
port: data.port,
|
|
29
|
+
startedAt: new Date(),
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Creates instance info from JSON data (from instance.json file).
|
|
34
|
+
*/
|
|
35
|
+
static fromJson(json) {
|
|
36
|
+
return new InstanceInfo({
|
|
37
|
+
currentSessionId: json.currentSessionId,
|
|
38
|
+
pid: json.pid,
|
|
39
|
+
port: json.port,
|
|
40
|
+
startedAt: new Date(json.startedAt),
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Returns the transport URL for connecting to this instance.
|
|
45
|
+
* Uses 'localhost' instead of '127.0.0.1' for better sandbox compatibility.
|
|
46
|
+
*/
|
|
47
|
+
getTransportUrl() {
|
|
48
|
+
return `http://${TRANSPORT_HOST}:${this.port}`;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Converts instance info to JSON for persistence.
|
|
52
|
+
*/
|
|
53
|
+
toJson() {
|
|
54
|
+
return {
|
|
55
|
+
currentSessionId: this.currentSessionId,
|
|
56
|
+
pid: this.pid,
|
|
57
|
+
port: this.port,
|
|
58
|
+
startedAt: this.startedAt.getTime(),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Creates a new instance info with updated session ID.
|
|
63
|
+
*/
|
|
64
|
+
withSessionId(sessionId) {
|
|
65
|
+
return new InstanceInfo({
|
|
66
|
+
currentSessionId: sessionId,
|
|
67
|
+
pid: this.pid,
|
|
68
|
+
port: this.port,
|
|
69
|
+
startedAt: this.startedAt,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -34,6 +34,15 @@ export declare const DirectoryManager: {
|
|
|
34
34
|
* @returns Whether topic was created, updated, or skipped
|
|
35
35
|
*/
|
|
36
36
|
createOrUpdateTopic(topicPath: string): Promise<CreateOrUpdateResult>;
|
|
37
|
+
/**
|
|
38
|
+
* Delete a single file.
|
|
39
|
+
*
|
|
40
|
+
* @param filePath - Path to file to delete
|
|
41
|
+
* @returns Whether the file was deleted
|
|
42
|
+
*/
|
|
43
|
+
deleteFile(filePath: string): Promise<{
|
|
44
|
+
deleted: boolean;
|
|
45
|
+
}>;
|
|
37
46
|
/**
|
|
38
47
|
* Delete a topic/subtopic folder recursively.
|
|
39
48
|
* Removes the folder and all its contents.
|
|
@@ -65,6 +74,13 @@ export declare const DirectoryManager: {
|
|
|
65
74
|
* @returns true if file exists, false otherwise
|
|
66
75
|
*/
|
|
67
76
|
fileExists(filePath: string): Promise<boolean>;
|
|
77
|
+
/**
|
|
78
|
+
* Check if a folder exists.
|
|
79
|
+
*
|
|
80
|
+
* @param folderPath - Path to folder
|
|
81
|
+
* @returns true if folder exists and is a directory, false otherwise
|
|
82
|
+
*/
|
|
83
|
+
folderExists(folderPath: string): Promise<boolean>;
|
|
68
84
|
/**
|
|
69
85
|
* List all markdown files recursively in a directory.
|
|
70
86
|
*
|