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
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Command } from '@oclif/core';
|
|
2
|
-
import { isDevelopment } from '../../config/environment.js';
|
|
3
|
-
import { ProjectConfigStore } from '../../infra/config/file-config-store.js';
|
|
4
|
-
import { OclifTerminal } from '../../infra/terminal/oclif-terminal.js';
|
|
5
|
-
import { getErrorMessage } from '../../utils/error-helpers.js';
|
|
6
|
-
export default class CipherAgentShowPrompt extends Command {
|
|
7
|
-
static description = 'Show the current CipherAgent system prompt [Development only]';
|
|
8
|
-
static examples = ['<%= config.bin %> <%= command.id %>'];
|
|
9
|
-
static hidden = !isDevelopment();
|
|
10
|
-
terminal = {};
|
|
11
|
-
createServices() {
|
|
12
|
-
this.terminal = new OclifTerminal(this);
|
|
13
|
-
return {
|
|
14
|
-
projectConfigStore: new ProjectConfigStore(),
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
async run() {
|
|
18
|
-
const { projectConfigStore } = this.createServices();
|
|
19
|
-
if (!isDevelopment()) {
|
|
20
|
-
this.terminal.error('This command is only available in development environment');
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
try {
|
|
24
|
-
// Check if config exists
|
|
25
|
-
const configExists = await projectConfigStore.exists();
|
|
26
|
-
if (!configExists) {
|
|
27
|
-
this.terminal.log('No ByteRover config found.');
|
|
28
|
-
this.terminal.log('CipherAgent will use the default system prompt.');
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
// Read existing config
|
|
32
|
-
const config = await projectConfigStore.read();
|
|
33
|
-
if (!config) {
|
|
34
|
-
this.terminal.error('Failed to read config.');
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
// Show system prompt
|
|
38
|
-
if (config.cipherAgentSystemPrompt) {
|
|
39
|
-
this.terminal.log('Current CipherAgent system prompt:');
|
|
40
|
-
this.terminal.log('─'.repeat(60));
|
|
41
|
-
this.terminal.log(config.cipherAgentSystemPrompt);
|
|
42
|
-
this.terminal.log('─'.repeat(60));
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
this.terminal.log('No custom system prompt configured.');
|
|
46
|
-
this.terminal.log('CipherAgent is using the default system prompt.');
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
this.terminal.error(`Failed to show system prompt: ${getErrorMessage(error)}`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
package/dist/commands/foo.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Command } from '@oclif/core';
|
|
2
|
-
import type { ICodingAgentLogWatcher } from '../core/interfaces/cipher/i-coding-agent-log-watcher.js';
|
|
3
|
-
import type { IProjectConfigStore } from '../core/interfaces/i-project-config-store.js';
|
|
4
|
-
import type { ITerminal } from '../core/interfaces/i-terminal.js';
|
|
5
|
-
export default class Foo extends Command {
|
|
6
|
-
static description: string;
|
|
7
|
-
static hidden: boolean;
|
|
8
|
-
protected terminal: ITerminal;
|
|
9
|
-
protected createServices(): Promise<{
|
|
10
|
-
codingAgentLogWatcher: ICodingAgentLogWatcher;
|
|
11
|
-
projectConfigStore: IProjectConfigStore;
|
|
12
|
-
}>;
|
|
13
|
-
run(): Promise<void>;
|
|
14
|
-
}
|
package/dist/commands/foo.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { Command } from '@oclif/core';
|
|
2
|
-
import { isDevelopment } from '../config/environment.js';
|
|
3
|
-
import { CodingAgentLogParser } from '../infra/cipher/parsers/coding-agent-log-parser.js';
|
|
4
|
-
import { CodingAgentLogWatcher } from '../infra/cipher/watcher/coding-agent-log-watcher.js';
|
|
5
|
-
import { ProjectConfigStore } from '../infra/config/file-config-store.js';
|
|
6
|
-
import { OclifTerminal } from '../infra/terminal/oclif-terminal.js';
|
|
7
|
-
import { FileWatcherService } from '../infra/watcher/file-watcher-service.js';
|
|
8
|
-
export default class Foo extends Command {
|
|
9
|
-
static description = 'Purely for testing CodingAgentLogWatcher [Development only]';
|
|
10
|
-
static hidden = !isDevelopment();
|
|
11
|
-
terminal = {};
|
|
12
|
-
async createServices() {
|
|
13
|
-
this.terminal = new OclifTerminal(this);
|
|
14
|
-
const projectConfigStore = new ProjectConfigStore();
|
|
15
|
-
const fileWatcherService = new FileWatcherService();
|
|
16
|
-
const codingAgentLogParser = new CodingAgentLogParser();
|
|
17
|
-
const codingAgentLogWatcher = new CodingAgentLogWatcher(fileWatcherService, codingAgentLogParser);
|
|
18
|
-
return {
|
|
19
|
-
codingAgentLogWatcher,
|
|
20
|
-
projectConfigStore,
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
async run() {
|
|
24
|
-
const { codingAgentLogWatcher, projectConfigStore } = await this.createServices();
|
|
25
|
-
if (!isDevelopment()) {
|
|
26
|
-
this.terminal.error('This command is only available in development environment');
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
const projectConfig = await projectConfigStore.read();
|
|
30
|
-
if (projectConfig === undefined) {
|
|
31
|
-
this.terminal.error('No project config found. Run "brv init" first.');
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
// Defensive checking nill
|
|
35
|
-
if (projectConfig.chatLogPath === undefined) {
|
|
36
|
-
this.terminal.error('No chat log path configured in project config. Run "brv init" first.');
|
|
37
|
-
}
|
|
38
|
-
if (projectConfig.ide === undefined) {
|
|
39
|
-
this.terminal.error('No coding agent selected. Run "brv init" first.');
|
|
40
|
-
}
|
|
41
|
-
this.terminal.log(`Watching ${projectConfig.ide} log files...`);
|
|
42
|
-
await codingAgentLogWatcher.start({
|
|
43
|
-
codingAgentInfo: {
|
|
44
|
-
chatLogPath: projectConfig.chatLogPath,
|
|
45
|
-
name: projectConfig.ide,
|
|
46
|
-
},
|
|
47
|
-
onCleanSession: (cleanSession) => new Promise((resolve) => {
|
|
48
|
-
this.terminal.log(`New Clean Session from ${cleanSession.type}:`);
|
|
49
|
-
this.terminal.log(`Clean Session title: ${cleanSession.title}`);
|
|
50
|
-
this.terminal.log('Clean Session messages:');
|
|
51
|
-
for (const message of cleanSession.messages) {
|
|
52
|
-
this.terminal.log(`${JSON.stringify(message, undefined, 2)}]\n`);
|
|
53
|
-
}
|
|
54
|
-
this.terminal.log(`Clean Session ID: ${cleanSession.id}`);
|
|
55
|
-
this.terminal.log(`Clean Session Metadata: ${JSON.stringify(cleanSession.metadata, undefined, 2)}`);
|
|
56
|
-
resolve();
|
|
57
|
-
this.terminal.log(`Clean Session timestamp: ${cleanSession.timestamp}`);
|
|
58
|
-
this.terminal.log(`Clean Session workspace paths:`);
|
|
59
|
-
for (const workspacePath of cleanSession.workspacePaths) {
|
|
60
|
-
this.terminal.log(`${workspacePath}`);
|
|
61
|
-
}
|
|
62
|
-
this.terminal.log('\n\n');
|
|
63
|
-
}),
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import type { BlobStorageConfig } from '../../core/domain/cipher/blob/types.js';
|
|
2
|
-
import type { FileSystemConfig } from '../../core/domain/cipher/file-system/types.js';
|
|
3
|
-
import type { CipherAgentServices, SessionServices } from '../../core/interfaces/cipher/cipher-services.js';
|
|
4
|
-
/**
|
|
5
|
-
* LLM configuration for CipherAgent
|
|
6
|
-
*/
|
|
7
|
-
export interface CipherLLMConfig {
|
|
8
|
-
accessToken: string;
|
|
9
|
-
apiBaseUrl: string;
|
|
10
|
-
apiKey?: string;
|
|
11
|
-
blobStorageConfig?: Partial<BlobStorageConfig>;
|
|
12
|
-
fileSystemConfig?: Partial<FileSystemConfig>;
|
|
13
|
-
httpReferer?: string;
|
|
14
|
-
maxIterations?: number;
|
|
15
|
-
maxTokens?: number;
|
|
16
|
-
model: string;
|
|
17
|
-
openRouterApiKey?: string;
|
|
18
|
-
projectId: string;
|
|
19
|
-
region?: string;
|
|
20
|
-
sessionKey: string;
|
|
21
|
-
siteName?: string;
|
|
22
|
-
temperature?: number;
|
|
23
|
-
topK?: number;
|
|
24
|
-
topP?: number;
|
|
25
|
-
/**
|
|
26
|
-
* Enable granular history storage for new sessions.
|
|
27
|
-
* When enabled, new sessions use per-message storage with streaming support.
|
|
28
|
-
* Existing sessions continue using blob storage (no migration).
|
|
29
|
-
* Default: false (use blob storage for all sessions)
|
|
30
|
-
*/
|
|
31
|
-
useGranularStorage?: boolean;
|
|
32
|
-
verbose?: boolean;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* HTTP configuration for ByteRover LLM service
|
|
36
|
-
*/
|
|
37
|
-
export interface ByteRoverHttpConfig {
|
|
38
|
-
accessToken: string;
|
|
39
|
-
apiBaseUrl: string;
|
|
40
|
-
projectId: string;
|
|
41
|
-
region?: string;
|
|
42
|
-
sessionKey: string;
|
|
43
|
-
spaceId: string;
|
|
44
|
-
teamId: string;
|
|
45
|
-
timeout?: number;
|
|
46
|
-
}
|
|
47
|
-
export type { CipherAgentServices, SessionManagerConfig, SessionServices, } from '../../core/interfaces/cipher/cipher-services.js';
|
|
48
|
-
/**
|
|
49
|
-
* Creates shared services for CipherAgent.
|
|
50
|
-
* These services are singletons shared across all sessions.
|
|
51
|
-
*
|
|
52
|
-
* Following Dexto's pattern: shared services are created once at agent level,
|
|
53
|
-
* while session-specific services (LLM, EventBus) are created per session.
|
|
54
|
-
*
|
|
55
|
-
* @param llmConfig - LLM configuration
|
|
56
|
-
* @returns Initialized shared services
|
|
57
|
-
*/
|
|
58
|
-
export declare function createCipherAgentServices(llmConfig: CipherLLMConfig): Promise<CipherAgentServices>;
|
|
59
|
-
/**
|
|
60
|
-
* Creates session-specific services for a ChatSession.
|
|
61
|
-
*
|
|
62
|
-
* Following Dexto's pattern: each session gets its own LLM service and event bus
|
|
63
|
-
* for conversation isolation, while using shared services for tools/prompts.
|
|
64
|
-
*
|
|
65
|
-
* Generator composition order (innermost to outermost):
|
|
66
|
-
* 1. Base generator (ByteRoverContentGenerator or OpenRouterContentGenerator)
|
|
67
|
-
* 2. RetryableContentGenerator - handles transient errors with backoff
|
|
68
|
-
* 3. LoggingContentGenerator - debug logging (if verbose enabled)
|
|
69
|
-
*
|
|
70
|
-
* @param sessionId - Unique session identifier
|
|
71
|
-
* @param sharedServices - Shared services from agent
|
|
72
|
-
* @param httpConfig - HTTP configuration
|
|
73
|
-
* @param llmConfig - LLM service configuration
|
|
74
|
-
* @param llmConfig.openRouterApiKey - Optional OpenRouter API key for OpenRouter service
|
|
75
|
-
* @param llmConfig.httpReferer - Optional HTTP Referer for OpenRouter rankings
|
|
76
|
-
* @param llmConfig.siteName - Optional site name for OpenRouter rankings
|
|
77
|
-
* @param llmConfig.maxIterations - Maximum iterations for agentic loop
|
|
78
|
-
* @param llmConfig.maxTokens - Maximum output tokens
|
|
79
|
-
* @param llmConfig.model - LLM model identifier
|
|
80
|
-
* @param llmConfig.temperature - Temperature for generation
|
|
81
|
-
* @param llmConfig.verbose - Enable verbose debug output
|
|
82
|
-
* @returns Initialized session services
|
|
83
|
-
*/
|
|
84
|
-
export declare function createSessionServices(sessionId: string, sharedServices: CipherAgentServices, httpConfig: ByteRoverHttpConfig, llmConfig: {
|
|
85
|
-
httpReferer?: string;
|
|
86
|
-
maxIterations?: number;
|
|
87
|
-
maxTokens?: number;
|
|
88
|
-
model: string;
|
|
89
|
-
openRouterApiKey?: string;
|
|
90
|
-
siteName?: string;
|
|
91
|
-
temperature?: number;
|
|
92
|
-
verbose?: boolean;
|
|
93
|
-
}): SessionServices;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import type { TerminationReason } from '../../core/domain/cipher/agent/agent-state.js';
|
|
2
|
-
import type { AgentExecutionState, AgentState } from '../../core/interfaces/cipher/i-cipher-agent.js';
|
|
3
|
-
/**
|
|
4
|
-
* Manages the runtime state of the CipherAgent.
|
|
5
|
-
*
|
|
6
|
-
* Enhanced to track execution state, termination reasons, timing,
|
|
7
|
-
* and tool metrics following gemini-cli patterns. Maintains backward
|
|
8
|
-
* compatibility with legacy fields (executionHistory).
|
|
9
|
-
*/
|
|
10
|
-
export declare class CipherAgentStateManager {
|
|
11
|
-
private currentIteration;
|
|
12
|
-
private durationMs?;
|
|
13
|
-
private endTime?;
|
|
14
|
-
private executionHistory;
|
|
15
|
-
private executionState;
|
|
16
|
-
private startTime?;
|
|
17
|
-
private terminationReason?;
|
|
18
|
-
private toolCallsExecuted;
|
|
19
|
-
/**
|
|
20
|
-
* Add an execution record to history (legacy method).
|
|
21
|
-
* @param record - Execution record to add
|
|
22
|
-
*/
|
|
23
|
-
addExecutionRecord(record: string): void;
|
|
24
|
-
/**
|
|
25
|
-
* Mark execution as complete with reason.
|
|
26
|
-
* @param reason - Why execution terminated
|
|
27
|
-
*/
|
|
28
|
-
complete(reason: TerminationReason): void;
|
|
29
|
-
/**
|
|
30
|
-
* Mark execution as errored.
|
|
31
|
-
* @param reason - Error termination reason
|
|
32
|
-
*/
|
|
33
|
-
fail(reason: TerminationReason): void;
|
|
34
|
-
/**
|
|
35
|
-
* Get the current state.
|
|
36
|
-
* @returns Current agent state with all enhanced fields
|
|
37
|
-
*/
|
|
38
|
-
getState(): AgentState;
|
|
39
|
-
/**
|
|
40
|
-
* Increment the iteration counter.
|
|
41
|
-
* @returns The new iteration count
|
|
42
|
-
*/
|
|
43
|
-
incrementIteration(): number;
|
|
44
|
-
/**
|
|
45
|
-
* Increment the tool calls counter.
|
|
46
|
-
* @returns The new tool calls count
|
|
47
|
-
*/
|
|
48
|
-
incrementToolCalls(): number;
|
|
49
|
-
/**
|
|
50
|
-
* Reset the state to initial values.
|
|
51
|
-
*/
|
|
52
|
-
reset(): void;
|
|
53
|
-
/**
|
|
54
|
-
* Set the current execution state.
|
|
55
|
-
* @param state - New execution state
|
|
56
|
-
*/
|
|
57
|
-
setExecutionState(state: AgentExecutionState): void;
|
|
58
|
-
/**
|
|
59
|
-
* Start execution tracking.
|
|
60
|
-
* Sets startTime and transitions to executing state.
|
|
61
|
-
*/
|
|
62
|
-
startExecution(): void;
|
|
63
|
-
}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Manages the runtime state of the CipherAgent.
|
|
3
|
-
*
|
|
4
|
-
* Enhanced to track execution state, termination reasons, timing,
|
|
5
|
-
* and tool metrics following gemini-cli patterns. Maintains backward
|
|
6
|
-
* compatibility with legacy fields (executionHistory).
|
|
7
|
-
*/
|
|
8
|
-
export class CipherAgentStateManager {
|
|
9
|
-
currentIteration = 0;
|
|
10
|
-
durationMs;
|
|
11
|
-
endTime;
|
|
12
|
-
executionHistory = [];
|
|
13
|
-
executionState = 'idle';
|
|
14
|
-
startTime;
|
|
15
|
-
terminationReason;
|
|
16
|
-
toolCallsExecuted = 0;
|
|
17
|
-
/**
|
|
18
|
-
* Add an execution record to history (legacy method).
|
|
19
|
-
* @param record - Execution record to add
|
|
20
|
-
*/
|
|
21
|
-
addExecutionRecord(record) {
|
|
22
|
-
this.executionHistory.push(record);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Mark execution as complete with reason.
|
|
26
|
-
* @param reason - Why execution terminated
|
|
27
|
-
*/
|
|
28
|
-
complete(reason) {
|
|
29
|
-
this.executionState = 'complete';
|
|
30
|
-
this.terminationReason = reason;
|
|
31
|
-
this.endTime = new Date();
|
|
32
|
-
if (this.startTime) {
|
|
33
|
-
this.durationMs = this.endTime.getTime() - this.startTime.getTime();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Mark execution as errored.
|
|
38
|
-
* @param reason - Error termination reason
|
|
39
|
-
*/
|
|
40
|
-
fail(reason) {
|
|
41
|
-
this.executionState = 'error';
|
|
42
|
-
this.terminationReason = reason;
|
|
43
|
-
this.endTime = new Date();
|
|
44
|
-
if (this.startTime) {
|
|
45
|
-
this.durationMs = this.endTime.getTime() - this.startTime.getTime();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Get the current state.
|
|
50
|
-
* @returns Current agent state with all enhanced fields
|
|
51
|
-
*/
|
|
52
|
-
getState() {
|
|
53
|
-
return {
|
|
54
|
-
currentIteration: this.currentIteration,
|
|
55
|
-
durationMs: this.durationMs,
|
|
56
|
-
endTime: this.endTime,
|
|
57
|
-
executionHistory: [...this.executionHistory],
|
|
58
|
-
executionState: this.executionState,
|
|
59
|
-
startTime: this.startTime,
|
|
60
|
-
terminationReason: this.terminationReason,
|
|
61
|
-
toolCallsExecuted: this.toolCallsExecuted,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Increment the iteration counter.
|
|
66
|
-
* @returns The new iteration count
|
|
67
|
-
*/
|
|
68
|
-
incrementIteration() {
|
|
69
|
-
this.currentIteration++;
|
|
70
|
-
return this.currentIteration;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Increment the tool calls counter.
|
|
74
|
-
* @returns The new tool calls count
|
|
75
|
-
*/
|
|
76
|
-
incrementToolCalls() {
|
|
77
|
-
this.toolCallsExecuted++;
|
|
78
|
-
return this.toolCallsExecuted;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Reset the state to initial values.
|
|
82
|
-
*/
|
|
83
|
-
reset() {
|
|
84
|
-
this.currentIteration = 0;
|
|
85
|
-
this.durationMs = undefined;
|
|
86
|
-
this.endTime = undefined;
|
|
87
|
-
this.executionHistory = [];
|
|
88
|
-
this.executionState = 'idle';
|
|
89
|
-
this.startTime = undefined;
|
|
90
|
-
this.terminationReason = undefined;
|
|
91
|
-
this.toolCallsExecuted = 0;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Set the current execution state.
|
|
95
|
-
* @param state - New execution state
|
|
96
|
-
*/
|
|
97
|
-
setExecutionState(state) {
|
|
98
|
-
this.executionState = state;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Start execution tracking.
|
|
102
|
-
* Sets startTime and transitions to executing state.
|
|
103
|
-
*/
|
|
104
|
-
startExecution() {
|
|
105
|
-
this.startTime = new Date();
|
|
106
|
-
this.executionState = 'executing';
|
|
107
|
-
}
|
|
108
|
-
}
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
import type { BrvConfig } from '../../core/domain/entities/brv-config.js';
|
|
2
|
-
import type { IChatSession } from '../../core/interfaces/cipher/i-chat-session.js';
|
|
3
|
-
import type { AgentState, ExecutionContext, ICipherAgent } from '../../core/interfaces/cipher/i-cipher-agent.js';
|
|
4
|
-
import type { IHistoryStorage } from '../../core/interfaces/cipher/i-history-storage.js';
|
|
5
|
-
import type { CipherLLMConfig } from './agent-service-factory.js';
|
|
6
|
-
import type { AgentEventBus } from './events/event-emitter.js';
|
|
7
|
-
import type { FileSystemService } from './file-system/file-system-service.js';
|
|
8
|
-
import type { MemoryManager } from './memory/memory-manager.js';
|
|
9
|
-
import type { ProcessService } from './process/process-service.js';
|
|
10
|
-
import type { SimplePromptFactory } from './system-prompt/simple-prompt-factory.js';
|
|
11
|
-
import type { ToolManager } from './tools/tool-manager.js';
|
|
12
|
-
import type { ToolProvider } from './tools/tool-provider.js';
|
|
13
|
-
/**
|
|
14
|
-
* CipherAgent - Main agent implementation
|
|
15
|
-
*
|
|
16
|
-
* Following Dexto's pattern: CipherAgent orchestrates sessions and delegates
|
|
17
|
-
* execution to ChatSession instances. Each session maintains isolated conversation
|
|
18
|
-
* context while sharing global services (tools, prompts, file system, etc.).
|
|
19
|
-
*
|
|
20
|
-
* Architecture:
|
|
21
|
-
* - Agent creates and owns shared services (ToolManager, SystemPromptManager, etc.)
|
|
22
|
-
* - SessionManager creates session-specific services (LLM, EventBus)
|
|
23
|
-
* - Agent delegates execution to sessions via session.run()
|
|
24
|
-
*
|
|
25
|
-
* Follows two-phase initialization:
|
|
26
|
-
* 1. Constructor: validates and stores config
|
|
27
|
-
* 2. start(): asynchronously creates all services and SessionManager
|
|
28
|
-
*
|
|
29
|
-
* Backward compatible:
|
|
30
|
-
* - execute(input) uses default session automatically
|
|
31
|
-
* - New: execute(input, sessionId) for multi-session support
|
|
32
|
-
*/
|
|
33
|
-
export declare class CipherAgent implements ICipherAgent {
|
|
34
|
-
readonly agentEventBus?: AgentEventBus;
|
|
35
|
-
readonly fileSystemService?: FileSystemService;
|
|
36
|
-
readonly historyStorage?: IHistoryStorage;
|
|
37
|
-
readonly memoryManager?: MemoryManager;
|
|
38
|
-
readonly processService?: ProcessService;
|
|
39
|
-
readonly promptFactory?: SimplePromptFactory;
|
|
40
|
-
readonly toolManager?: ToolManager;
|
|
41
|
-
readonly toolProvider?: ToolProvider;
|
|
42
|
-
private readonly _brvConfig?;
|
|
43
|
-
private _isStarted;
|
|
44
|
-
private readonly currentDefaultSessionId;
|
|
45
|
-
private defaultSession;
|
|
46
|
-
private readonly llmConfig;
|
|
47
|
-
private sessionManager?;
|
|
48
|
-
private readonly stateManager;
|
|
49
|
-
/**
|
|
50
|
-
* Creates a new CipherAgent instance
|
|
51
|
-
* Does NOT initialize services - call start() for async initialization
|
|
52
|
-
*
|
|
53
|
-
* @param llmConfig - LLM configuration (API key, model settings)
|
|
54
|
-
* @param brvConfig - Optional ByteRover config (for custom system prompt)
|
|
55
|
-
*/
|
|
56
|
-
constructor(llmConfig: CipherLLMConfig, brvConfig?: BrvConfig);
|
|
57
|
-
/**
|
|
58
|
-
* Create a new session.
|
|
59
|
-
*
|
|
60
|
-
* @param sessionId - Optional session ID (generates UUID if not provided)
|
|
61
|
-
* @returns New or existing chat session
|
|
62
|
-
*/
|
|
63
|
-
createSession(sessionId?: string): Promise<IChatSession>;
|
|
64
|
-
/**
|
|
65
|
-
* Delete a session completely (memory + history).
|
|
66
|
-
*
|
|
67
|
-
* @param sessionId - Session ID to delete
|
|
68
|
-
* @returns True if session existed and was deleted
|
|
69
|
-
*/
|
|
70
|
-
deleteSession(sessionId: string): Promise<boolean>;
|
|
71
|
-
/**
|
|
72
|
-
* Execute the agent with user input.
|
|
73
|
-
*
|
|
74
|
-
* Following Dexto's pattern: determine target session, get or create it,
|
|
75
|
-
* then delegate to session.run().
|
|
76
|
-
*
|
|
77
|
-
* @param input - User input string
|
|
78
|
-
* @param sessionId - Optional session ID (uses 'default' if not provided)
|
|
79
|
-
* @param options - Optional execution options
|
|
80
|
-
* @param options.mode - Optional mode for system prompt ('autonomous' enables autonomous mode)
|
|
81
|
-
* @param options.executionContext - Optional execution context
|
|
82
|
-
* @returns Agent response from LLM
|
|
83
|
-
* @throws Error if agent is not started
|
|
84
|
-
*/
|
|
85
|
-
execute(input: string, sessionId?: string, options?: {
|
|
86
|
-
executionContext?: ExecutionContext;
|
|
87
|
-
mode?: 'autonomous' | 'default' | 'query';
|
|
88
|
-
}): Promise<string>;
|
|
89
|
-
/**
|
|
90
|
-
* Get an existing session or create a new one.
|
|
91
|
-
* Useful for ensuring a session exists before pre-loading history.
|
|
92
|
-
*
|
|
93
|
-
* @param sessionId - Session ID to get or create
|
|
94
|
-
* @returns Existing or newly created chat session
|
|
95
|
-
*/
|
|
96
|
-
getOrCreateSession(sessionId: string): Promise<IChatSession>;
|
|
97
|
-
/**
|
|
98
|
-
* Get a session by ID.
|
|
99
|
-
*
|
|
100
|
-
* @param sessionId - Session ID
|
|
101
|
-
* @returns Session instance or undefined if not found
|
|
102
|
-
*/
|
|
103
|
-
getSession(sessionId: string): IChatSession | undefined;
|
|
104
|
-
/**
|
|
105
|
-
* Get session metadata without loading full history.
|
|
106
|
-
*
|
|
107
|
-
* @param sessionId - Session ID
|
|
108
|
-
* @returns Session metadata or undefined if not found
|
|
109
|
-
*/
|
|
110
|
-
getSessionMetadata(sessionId: string): Promise<import('../../core/domain/cipher/storage/history-types.js').SessionMetadata | undefined>;
|
|
111
|
-
/**
|
|
112
|
-
* Get current agent state
|
|
113
|
-
*
|
|
114
|
-
* @returns Current state information
|
|
115
|
-
*/
|
|
116
|
-
getState(): AgentState;
|
|
117
|
-
/**
|
|
118
|
-
* Get the current system prompt from SimplePromptFactory
|
|
119
|
-
* Useful for debugging and inspection
|
|
120
|
-
*
|
|
121
|
-
* @returns Current system prompt (built dynamically)
|
|
122
|
-
*/
|
|
123
|
-
getSystemPrompt(): Promise<string>;
|
|
124
|
-
/**
|
|
125
|
-
* List all persisted session IDs from history storage.
|
|
126
|
-
*
|
|
127
|
-
* @returns Array of session IDs
|
|
128
|
-
*/
|
|
129
|
-
listPersistedSessions(): Promise<string[]>;
|
|
130
|
-
/**
|
|
131
|
-
* List all session IDs (in-memory only).
|
|
132
|
-
*
|
|
133
|
-
* @returns Array of session IDs
|
|
134
|
-
*/
|
|
135
|
-
listSessions(): string[];
|
|
136
|
-
/**
|
|
137
|
-
* Reset the agent to initial state.
|
|
138
|
-
* Clears execution history, resets iteration counter, and resets default session.
|
|
139
|
-
*/
|
|
140
|
-
reset(): void;
|
|
141
|
-
/**
|
|
142
|
-
* Start the agent - initializes all services asynchronously
|
|
143
|
-
* Must be called before execute()
|
|
144
|
-
*
|
|
145
|
-
* @throws Error if agent is already started
|
|
146
|
-
*/
|
|
147
|
-
start(): Promise<void>;
|
|
148
|
-
/**
|
|
149
|
-
* Ensure the agent has been started and all services are initialized
|
|
150
|
-
*
|
|
151
|
-
* @throws Error if agent is not started or services are not initialized
|
|
152
|
-
*/
|
|
153
|
-
private ensureStarted;
|
|
154
|
-
/**
|
|
155
|
-
* Get initialized agent event bus (guaranteed to be defined after start())
|
|
156
|
-
*
|
|
157
|
-
* @returns AgentEventBus instance
|
|
158
|
-
* @throws Error if not initialized
|
|
159
|
-
*/
|
|
160
|
-
private getAgentEventBus;
|
|
161
|
-
/**
|
|
162
|
-
* Get initialized history storage (guaranteed to be defined after start())
|
|
163
|
-
*
|
|
164
|
-
* @returns IHistoryStorage instance
|
|
165
|
-
* @throws Error if not initialized
|
|
166
|
-
*/
|
|
167
|
-
private getHistoryStorage;
|
|
168
|
-
/**
|
|
169
|
-
* Get initialized prompt factory (guaranteed to be defined after start())
|
|
170
|
-
*
|
|
171
|
-
* @returns SimplePromptFactory instance
|
|
172
|
-
* @throws Error if not initialized
|
|
173
|
-
*/
|
|
174
|
-
private getPromptFactory;
|
|
175
|
-
/**
|
|
176
|
-
* Get initialized session manager (guaranteed to be defined after start())
|
|
177
|
-
*
|
|
178
|
-
* @returns SessionManager instance
|
|
179
|
-
* @throws Error if not initialized
|
|
180
|
-
*/
|
|
181
|
-
private getSessionManager;
|
|
182
|
-
}
|