byterover-cli 0.4.1 → 1.0.1
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/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/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 +8 -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 +71 -262
- package/dist/infra/usecase/init-use-case.js +3 -2
- package/dist/infra/usecase/query-use-case.d.ts +18 -45
- package/dist/infra/usecase/query-use-case.js +250 -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} +3 -3
- 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,554 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transport Schemas - Types and validation for Socket.IO transport layer.
|
|
3
|
+
*
|
|
4
|
+
* Architecture (Clean Architecture compliance):
|
|
5
|
+
* - Domain types from agent-events/types.ts are the Single Source of Truth (SSOT)
|
|
6
|
+
* - Transport layer IMPORTS from domain, does NOT redefine
|
|
7
|
+
* - Transport events EXTEND domain types with `taskId` for routing
|
|
8
|
+
* - Zod schemas provide runtime validation for transport messages
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Zod Schemas for Runtime Validation (mirrors domain types)
|
|
13
|
+
// ============================================================================
|
|
14
|
+
export const TokenUsageSchema = z.object({
|
|
15
|
+
inputTokens: z.number(),
|
|
16
|
+
outputTokens: z.number(),
|
|
17
|
+
totalTokens: z.number(),
|
|
18
|
+
});
|
|
19
|
+
export const LogLevelSchema = z.enum(['debug', 'error', 'info', 'warn']);
|
|
20
|
+
export const UIEventTypeSchema = z.enum(['banner', 'help', 'prompt', 'response', 'separator', 'shutdown']);
|
|
21
|
+
export const ToolErrorTypeSchema = z.enum([
|
|
22
|
+
'CANCELLED',
|
|
23
|
+
'CONFIRMATION_REJECTED',
|
|
24
|
+
'EXECUTION_FAILED',
|
|
25
|
+
'INTERNAL_ERROR',
|
|
26
|
+
'INVALID_PARAM_TYPE',
|
|
27
|
+
'INVALID_PARAMS',
|
|
28
|
+
'MISSING_REQUIRED_PARAM',
|
|
29
|
+
'PARAM_VALIDATION_FAILED',
|
|
30
|
+
'PERMISSION_DENIED',
|
|
31
|
+
'PROVIDER_ERROR',
|
|
32
|
+
'TIMEOUT',
|
|
33
|
+
'TOOL_DISABLED',
|
|
34
|
+
'TOOL_NOT_FOUND',
|
|
35
|
+
]);
|
|
36
|
+
export const AgentTerminationReasonSchema = z.enum([
|
|
37
|
+
'ABORTED',
|
|
38
|
+
'ERROR',
|
|
39
|
+
'GOAL',
|
|
40
|
+
'MAX_TURNS',
|
|
41
|
+
'PROTOCOL_VIOLATION',
|
|
42
|
+
'TIMEOUT',
|
|
43
|
+
]);
|
|
44
|
+
export const TodoStatusSchema = z.enum(['cancelled', 'completed', 'in_progress', 'pending']);
|
|
45
|
+
export const TodoItemSchema = z.object({
|
|
46
|
+
activeForm: z.string(),
|
|
47
|
+
content: z.string(),
|
|
48
|
+
status: TodoStatusSchema,
|
|
49
|
+
});
|
|
50
|
+
// ============================================================================
|
|
51
|
+
// Agent Events (cipher:*)
|
|
52
|
+
// ============================================================================
|
|
53
|
+
export const ConversationResetPayloadSchema = z.object({
|
|
54
|
+
sessionId: z.string(),
|
|
55
|
+
});
|
|
56
|
+
export const ExecutionStartedPayloadSchema = z.object({
|
|
57
|
+
maxIterations: z.number(),
|
|
58
|
+
maxTimeMs: z.number().optional(),
|
|
59
|
+
sessionId: z.string(),
|
|
60
|
+
startTime: z.coerce.date(),
|
|
61
|
+
});
|
|
62
|
+
export const ExecutionTerminatedPayloadSchema = z.object({
|
|
63
|
+
durationMs: z.number().optional(),
|
|
64
|
+
endTime: z.coerce.date(),
|
|
65
|
+
error: z.any().optional(), // Error objects don't serialize well
|
|
66
|
+
reason: AgentTerminationReasonSchema,
|
|
67
|
+
sessionId: z.string(),
|
|
68
|
+
toolCallsExecuted: z.number(),
|
|
69
|
+
turnCount: z.number(),
|
|
70
|
+
});
|
|
71
|
+
export const LogPayloadSchema = z.object({
|
|
72
|
+
context: z.record(z.unknown()).optional(),
|
|
73
|
+
level: LogLevelSchema,
|
|
74
|
+
message: z.string(),
|
|
75
|
+
sessionId: z.string().optional(),
|
|
76
|
+
source: z.string().optional(),
|
|
77
|
+
});
|
|
78
|
+
export const StateChangedPayloadSchema = z.object({
|
|
79
|
+
field: z.string(),
|
|
80
|
+
newValue: z.unknown(),
|
|
81
|
+
oldValue: z.unknown().optional(),
|
|
82
|
+
sessionId: z.string().optional(),
|
|
83
|
+
});
|
|
84
|
+
export const StateResetPayloadSchema = z.object({
|
|
85
|
+
sessionId: z.string().optional(),
|
|
86
|
+
});
|
|
87
|
+
export const UIPayloadSchema = z.object({
|
|
88
|
+
context: z.record(z.unknown()).optional(),
|
|
89
|
+
message: z.string().optional(),
|
|
90
|
+
sessionId: z.string().optional(),
|
|
91
|
+
type: UIEventTypeSchema,
|
|
92
|
+
});
|
|
93
|
+
// ============================================================================
|
|
94
|
+
// LLM Service Events (llmservice:*)
|
|
95
|
+
// ============================================================================
|
|
96
|
+
export const ChunkPayloadSchema = z.object({
|
|
97
|
+
content: z.string(),
|
|
98
|
+
isComplete: z.boolean().optional(),
|
|
99
|
+
sessionId: z.string(),
|
|
100
|
+
type: z.enum(['reasoning', 'text']),
|
|
101
|
+
});
|
|
102
|
+
export const ErrorPayloadSchema = z.object({
|
|
103
|
+
code: z.string().optional(),
|
|
104
|
+
error: z.string(),
|
|
105
|
+
sessionId: z.string(),
|
|
106
|
+
});
|
|
107
|
+
export const OutputTruncatedPayloadSchema = z.object({
|
|
108
|
+
originalLength: z.number(),
|
|
109
|
+
savedToFile: z.string(),
|
|
110
|
+
sessionId: z.string(),
|
|
111
|
+
toolName: z.string(),
|
|
112
|
+
});
|
|
113
|
+
export const ResponsePayloadSchema = z.object({
|
|
114
|
+
content: z.string(),
|
|
115
|
+
model: z.string().optional(),
|
|
116
|
+
partial: z.boolean().optional(),
|
|
117
|
+
provider: z.string().optional(),
|
|
118
|
+
reasoning: z.string().optional(),
|
|
119
|
+
sessionId: z.string(),
|
|
120
|
+
tokenUsage: TokenUsageSchema.optional(),
|
|
121
|
+
});
|
|
122
|
+
export const ThinkingPayloadSchema = z.object({
|
|
123
|
+
sessionId: z.string(),
|
|
124
|
+
});
|
|
125
|
+
export const ThoughtPayloadSchema = z.object({
|
|
126
|
+
description: z.string(),
|
|
127
|
+
sessionId: z.string(),
|
|
128
|
+
subject: z.string(),
|
|
129
|
+
});
|
|
130
|
+
export const TodoUpdatedPayloadSchema = z.object({
|
|
131
|
+
sessionId: z.string(),
|
|
132
|
+
todos: z.array(TodoItemSchema),
|
|
133
|
+
});
|
|
134
|
+
export const ToolCallPayloadSchema = z.object({
|
|
135
|
+
args: z.record(z.unknown()),
|
|
136
|
+
callId: z.string().optional(),
|
|
137
|
+
sessionId: z.string(),
|
|
138
|
+
toolName: z.string(),
|
|
139
|
+
});
|
|
140
|
+
export const ToolResultPayloadSchema = z.object({
|
|
141
|
+
callId: z.string().optional(),
|
|
142
|
+
error: z.string().optional(),
|
|
143
|
+
errorType: ToolErrorTypeSchema.optional(),
|
|
144
|
+
metadata: z.record(z.unknown()).optional(),
|
|
145
|
+
result: z.unknown().optional(),
|
|
146
|
+
sessionId: z.string(),
|
|
147
|
+
success: z.boolean(),
|
|
148
|
+
toolName: z.string(),
|
|
149
|
+
});
|
|
150
|
+
export const UnsupportedInputPayloadSchema = z.object({
|
|
151
|
+
reason: z.string(),
|
|
152
|
+
sessionId: z.string(),
|
|
153
|
+
});
|
|
154
|
+
export const WarningPayloadSchema = z.object({
|
|
155
|
+
message: z.string(),
|
|
156
|
+
model: z.string().optional(),
|
|
157
|
+
provider: z.string().optional(),
|
|
158
|
+
sessionId: z.string(),
|
|
159
|
+
});
|
|
160
|
+
// ============================================================================
|
|
161
|
+
// Transport Event Names (matches AgentEventMap keys)
|
|
162
|
+
// ============================================================================
|
|
163
|
+
export const TransportEventNames = {
|
|
164
|
+
// Sorted alphabetically (lint requirement)
|
|
165
|
+
CHUNK: 'llmservice:chunk',
|
|
166
|
+
CONVERSATION_RESET: 'cipher:conversationReset',
|
|
167
|
+
ERROR: 'llmservice:error',
|
|
168
|
+
EXECUTION_STARTED: 'cipher:executionStarted',
|
|
169
|
+
EXECUTION_TERMINATED: 'cipher:executionTerminated',
|
|
170
|
+
LOG: 'cipher:log',
|
|
171
|
+
OUTPUT_TRUNCATED: 'llmservice:outputTruncated',
|
|
172
|
+
RESPONSE: 'llmservice:response',
|
|
173
|
+
STATE_CHANGED: 'cipher:stateChanged',
|
|
174
|
+
STATE_RESET: 'cipher:stateReset',
|
|
175
|
+
THINKING: 'llmservice:thinking',
|
|
176
|
+
THOUGHT: 'llmservice:thought',
|
|
177
|
+
TODO_UPDATED: 'llmservice:todoUpdated',
|
|
178
|
+
TOOL_CALL: 'llmservice:toolCall',
|
|
179
|
+
TOOL_RESULT: 'llmservice:toolResult',
|
|
180
|
+
UI: 'cipher:ui',
|
|
181
|
+
UNSUPPORTED_INPUT: 'llmservice:unsupportedInput',
|
|
182
|
+
WARNING: 'llmservice:warning',
|
|
183
|
+
};
|
|
184
|
+
// ============================================================================
|
|
185
|
+
// Transport Event Schemas (Transport → Client)
|
|
186
|
+
// ============================================================================
|
|
187
|
+
/**
|
|
188
|
+
* Transport Events - Sent to Clients (TUI, external CLIs)
|
|
189
|
+
*
|
|
190
|
+
* Event naming convention:
|
|
191
|
+
* - task:* events are Transport-generated (lifecycle events)
|
|
192
|
+
* - llmservice:* events are forwarded from Agent with ORIGINAL names
|
|
193
|
+
*
|
|
194
|
+
* This means FE receives the SAME event names that Agent emits internally.
|
|
195
|
+
* No mapping needed - what you see is what Agent does.
|
|
196
|
+
*
|
|
197
|
+
* Event Flow:
|
|
198
|
+
* 1. Client sends task:create → Transport generates taskId → task:ack
|
|
199
|
+
* 2. Transport forwards to Agent → Agent starts → task:started
|
|
200
|
+
* 3. Agent processes:
|
|
201
|
+
* - LLM generates text → llmservice:response (streaming chunks)
|
|
202
|
+
* - LLM calls a tool → llmservice:toolCall
|
|
203
|
+
* - Tool returns result → llmservice:toolResult
|
|
204
|
+
* 4. Agent finishes → task:completed OR task:error
|
|
205
|
+
*/
|
|
206
|
+
export const TransportTaskEventNames = {
|
|
207
|
+
// Task lifecycle (Transport-generated)
|
|
208
|
+
ACK: 'task:ack',
|
|
209
|
+
// Client requests
|
|
210
|
+
CANCEL: 'task:cancel',
|
|
211
|
+
// Task terminal states
|
|
212
|
+
CANCELLED: 'task:cancelled',
|
|
213
|
+
COMPLETED: 'task:completed',
|
|
214
|
+
CREATE: 'task:create',
|
|
215
|
+
CREATED: 'task:created',
|
|
216
|
+
ERROR: 'task:error',
|
|
217
|
+
// Internal (Transport → Agent)
|
|
218
|
+
EXECUTE: 'task:execute',
|
|
219
|
+
STARTED: 'task:started',
|
|
220
|
+
};
|
|
221
|
+
export const LlmEventNames = {
|
|
222
|
+
// LLM events (forwarded with original Agent names)
|
|
223
|
+
CHUNK: 'llmservice:chunk',
|
|
224
|
+
ERROR: 'llmservice:error',
|
|
225
|
+
RESPONSE: 'llmservice:response',
|
|
226
|
+
THINKING: 'llmservice:thinking',
|
|
227
|
+
TOOL_CALL: 'llmservice:toolCall',
|
|
228
|
+
TOOL_RESULT: 'llmservice:toolResult',
|
|
229
|
+
UNSUPPORTED_INPUT: 'llmservice:unsupportedInput',
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* Explicit list of LLM event names for iteration.
|
|
233
|
+
*
|
|
234
|
+
* Avoids `Object.values(LlmEventNames)` so call sites remain readable and
|
|
235
|
+
* type-safe (the list is visible and ordered intentionally).
|
|
236
|
+
*/
|
|
237
|
+
export const TransportLlmEventList = [
|
|
238
|
+
LlmEventNames.THINKING,
|
|
239
|
+
LlmEventNames.CHUNK,
|
|
240
|
+
LlmEventNames.RESPONSE,
|
|
241
|
+
LlmEventNames.TOOL_CALL,
|
|
242
|
+
LlmEventNames.TOOL_RESULT,
|
|
243
|
+
LlmEventNames.ERROR,
|
|
244
|
+
LlmEventNames.UNSUPPORTED_INPUT,
|
|
245
|
+
];
|
|
246
|
+
/**
|
|
247
|
+
* Transport-generated Agent lifecycle/control events (internal).
|
|
248
|
+
*/
|
|
249
|
+
export const TransportAgentEventNames = {
|
|
250
|
+
CONNECTED: 'agent:connected',
|
|
251
|
+
DISCONNECTED: 'agent:disconnected',
|
|
252
|
+
REGISTER: 'agent:register',
|
|
253
|
+
RESTART: 'agent:restart',
|
|
254
|
+
RESTARTED: 'agent:restarted',
|
|
255
|
+
RESTARTING: 'agent:restarting',
|
|
256
|
+
};
|
|
257
|
+
/**
|
|
258
|
+
* Transport-generated session events (internal).
|
|
259
|
+
*/
|
|
260
|
+
export const TransportSessionEventNames = {
|
|
261
|
+
CREATE: 'session:create',
|
|
262
|
+
INFO: 'session:info',
|
|
263
|
+
LIST: 'session:list',
|
|
264
|
+
SWITCH: 'session:switch',
|
|
265
|
+
SWITCHED: 'session:switched',
|
|
266
|
+
};
|
|
267
|
+
// ============================================================================
|
|
268
|
+
// Internal Transport ↔ Agent Messages
|
|
269
|
+
// ============================================================================
|
|
270
|
+
/**
|
|
271
|
+
* task:execute - Transport sends task to Agent for processing
|
|
272
|
+
* Internal message, not exposed to external clients
|
|
273
|
+
*/
|
|
274
|
+
export const TaskExecuteSchema = z.object({
|
|
275
|
+
/** Client ID that created the task (for response routing) */
|
|
276
|
+
clientId: z.string(),
|
|
277
|
+
/** Task content/prompt */
|
|
278
|
+
content: z.string(),
|
|
279
|
+
/** Optional file paths for curate --files */
|
|
280
|
+
files: z.array(z.string()).optional(),
|
|
281
|
+
/** Unique task identifier */
|
|
282
|
+
taskId: z.string(),
|
|
283
|
+
/** Task type */
|
|
284
|
+
type: z.enum(['curate', 'query']),
|
|
285
|
+
});
|
|
286
|
+
/**
|
|
287
|
+
* task:cancel - Transport tells Agent to cancel a task
|
|
288
|
+
*/
|
|
289
|
+
export const TaskCancelSchema = z.object({
|
|
290
|
+
taskId: z.string(),
|
|
291
|
+
});
|
|
292
|
+
// Zod schemas for runtime validation (if needed)
|
|
293
|
+
export const LlmThinkingEventSchema = z.object({
|
|
294
|
+
sessionId: z.string(),
|
|
295
|
+
taskId: z.string(),
|
|
296
|
+
});
|
|
297
|
+
export const LlmChunkEventSchema = z.object({
|
|
298
|
+
content: z.string(),
|
|
299
|
+
isComplete: z.boolean().optional(),
|
|
300
|
+
sessionId: z.string(),
|
|
301
|
+
taskId: z.string(),
|
|
302
|
+
type: z.enum(['reasoning', 'text']),
|
|
303
|
+
});
|
|
304
|
+
export const LlmErrorEventSchema = z.object({
|
|
305
|
+
code: z.string().optional(),
|
|
306
|
+
error: z.string(),
|
|
307
|
+
sessionId: z.string(),
|
|
308
|
+
taskId: z.string(),
|
|
309
|
+
});
|
|
310
|
+
export const LlmUnsupportedInputEventSchema = z.object({
|
|
311
|
+
reason: z.string(),
|
|
312
|
+
sessionId: z.string(),
|
|
313
|
+
taskId: z.string(),
|
|
314
|
+
});
|
|
315
|
+
// ============================================================================
|
|
316
|
+
// Transport Events (Transport → Client)
|
|
317
|
+
// ============================================================================
|
|
318
|
+
/**
|
|
319
|
+
* task:ack - Transport acknowledges task creation
|
|
320
|
+
*/
|
|
321
|
+
export const TaskAckSchema = z.object({
|
|
322
|
+
taskId: z.string(),
|
|
323
|
+
});
|
|
324
|
+
/**
|
|
325
|
+
* task:created - Broadcasted when a new task is created
|
|
326
|
+
* Sent to broadcast-room for TUI monitoring
|
|
327
|
+
*/
|
|
328
|
+
export const TaskCreatedSchema = z.object({
|
|
329
|
+
/** Task content/prompt */
|
|
330
|
+
content: z.string(),
|
|
331
|
+
/** Optional file paths for curate --files */
|
|
332
|
+
files: z.array(z.string()).optional(),
|
|
333
|
+
/** Unique task identifier */
|
|
334
|
+
taskId: z.string(),
|
|
335
|
+
/** Task type (curate or query) */
|
|
336
|
+
type: z.enum(['curate', 'query']),
|
|
337
|
+
});
|
|
338
|
+
/**
|
|
339
|
+
* task:started - Agent begins processing the task
|
|
340
|
+
* Direct send: {taskId} only
|
|
341
|
+
* Broadcast: {taskId, content, type, files?}
|
|
342
|
+
*/
|
|
343
|
+
export const TaskStartedEventSchema = z.object({
|
|
344
|
+
/** Task content/prompt */
|
|
345
|
+
content: z.string().optional(),
|
|
346
|
+
/** Optional file paths for curate --files */
|
|
347
|
+
files: z.array(z.string()).optional(),
|
|
348
|
+
/** Unique task identifier */
|
|
349
|
+
taskId: z.string(),
|
|
350
|
+
/** Task type (curate or query) */
|
|
351
|
+
type: z.string().optional(),
|
|
352
|
+
});
|
|
353
|
+
/**
|
|
354
|
+
* task:cancelled - Task was cancelled before completion
|
|
355
|
+
* Terminal state: no more events should follow for this taskId
|
|
356
|
+
*/
|
|
357
|
+
export const TaskCancelledEventSchema = z.object({
|
|
358
|
+
taskId: z.string(),
|
|
359
|
+
});
|
|
360
|
+
/**
|
|
361
|
+
* task:completed - Task finished successfully
|
|
362
|
+
*/
|
|
363
|
+
export const TaskCompletedEventSchema = z.object({
|
|
364
|
+
result: z.string(),
|
|
365
|
+
taskId: z.string(),
|
|
366
|
+
});
|
|
367
|
+
/**
|
|
368
|
+
* Structured error object
|
|
369
|
+
* Matches TaskErrorData interface in task-error.ts
|
|
370
|
+
*/
|
|
371
|
+
export const TaskErrorDataSchema = z.object({
|
|
372
|
+
code: z.string().optional(),
|
|
373
|
+
details: z.record(z.unknown()).optional(),
|
|
374
|
+
message: z.string(),
|
|
375
|
+
name: z.string(),
|
|
376
|
+
});
|
|
377
|
+
/**
|
|
378
|
+
* task:error - Task failed with error
|
|
379
|
+
*/
|
|
380
|
+
export const TaskErrorEventSchema = z.object({
|
|
381
|
+
error: TaskErrorDataSchema,
|
|
382
|
+
taskId: z.string(),
|
|
383
|
+
});
|
|
384
|
+
/**
|
|
385
|
+
* llmservice:response - LLM text output
|
|
386
|
+
* Matches: AgentEventMap['llmservice:response'] + taskId
|
|
387
|
+
*/
|
|
388
|
+
export const LlmResponseEventSchema = z.object({
|
|
389
|
+
content: z.string(),
|
|
390
|
+
model: z.string().optional(),
|
|
391
|
+
partial: z.boolean().optional(),
|
|
392
|
+
provider: z.string().optional(),
|
|
393
|
+
reasoning: z.string().optional(),
|
|
394
|
+
sessionId: z.string(),
|
|
395
|
+
taskId: z.string(),
|
|
396
|
+
tokenUsage: TokenUsageSchema.optional(),
|
|
397
|
+
});
|
|
398
|
+
/**
|
|
399
|
+
* llmservice:toolCall - Agent invokes a tool
|
|
400
|
+
* Matches: AgentEventMap['llmservice:toolCall'] + taskId
|
|
401
|
+
*/
|
|
402
|
+
export const LlmToolCallEventSchema = z.object({
|
|
403
|
+
args: z.record(z.unknown()),
|
|
404
|
+
callId: z.string().optional(),
|
|
405
|
+
sessionId: z.string(),
|
|
406
|
+
taskId: z.string(),
|
|
407
|
+
toolName: z.string(),
|
|
408
|
+
});
|
|
409
|
+
/**
|
|
410
|
+
* llmservice:toolResult - Tool returns result
|
|
411
|
+
* Matches: AgentEventMap['llmservice:toolResult'] + taskId
|
|
412
|
+
*/
|
|
413
|
+
export const LlmToolResultEventSchema = z.object({
|
|
414
|
+
callId: z.string().optional(),
|
|
415
|
+
error: z.string().optional(),
|
|
416
|
+
errorType: ToolErrorTypeSchema.optional(),
|
|
417
|
+
metadata: z.record(z.unknown()).optional(),
|
|
418
|
+
result: z.unknown().optional(),
|
|
419
|
+
sessionId: z.string(),
|
|
420
|
+
success: z.boolean(),
|
|
421
|
+
taskId: z.string(),
|
|
422
|
+
toolName: z.string(),
|
|
423
|
+
});
|
|
424
|
+
// Note: LlmResponseEvent, LlmToolCallEvent, LlmToolResultEvent are defined above
|
|
425
|
+
// as type aliases extending AgentEventMap (lines 335-347)
|
|
426
|
+
// ============================================================================
|
|
427
|
+
// Request/Response Schemas (for client → server commands)
|
|
428
|
+
// ============================================================================
|
|
429
|
+
export const TaskTypeSchema = z.enum(['curate', 'query']);
|
|
430
|
+
/**
|
|
431
|
+
* Request to create a new task
|
|
432
|
+
*/
|
|
433
|
+
export const TaskCreateRequestSchema = z.object({
|
|
434
|
+
/** Task content/prompt */
|
|
435
|
+
content: z.string().min(1),
|
|
436
|
+
/** Optional file paths for curate --files (max 5) */
|
|
437
|
+
files: z.array(z.string()).optional(),
|
|
438
|
+
/** Task ID - generated by Client UseCase (UUID v4) */
|
|
439
|
+
taskId: z.string().uuid('Invalid taskId format - must be UUID'),
|
|
440
|
+
/** Task type */
|
|
441
|
+
type: TaskTypeSchema,
|
|
442
|
+
});
|
|
443
|
+
/**
|
|
444
|
+
* Response after task creation
|
|
445
|
+
*/
|
|
446
|
+
export const TaskCreateResponseSchema = z.object({
|
|
447
|
+
/** Created task ID */
|
|
448
|
+
taskId: z.string(),
|
|
449
|
+
});
|
|
450
|
+
/**
|
|
451
|
+
* Request to cancel a task
|
|
452
|
+
*/
|
|
453
|
+
export const TaskCancelRequestSchema = z.object({
|
|
454
|
+
taskId: z.string(),
|
|
455
|
+
});
|
|
456
|
+
/**
|
|
457
|
+
* Response after task cancellation
|
|
458
|
+
*/
|
|
459
|
+
export const TaskCancelResponseSchema = z.object({
|
|
460
|
+
/** Error message if cancellation failed */
|
|
461
|
+
error: z.string().optional(),
|
|
462
|
+
success: z.boolean(),
|
|
463
|
+
});
|
|
464
|
+
// ============================================================================
|
|
465
|
+
// Session Schemas (client → server commands)
|
|
466
|
+
// ============================================================================
|
|
467
|
+
/**
|
|
468
|
+
* Session info returned by queries
|
|
469
|
+
*/
|
|
470
|
+
export const SessionInfoSchema = z.object({
|
|
471
|
+
createdAt: z.number(),
|
|
472
|
+
id: z.string(),
|
|
473
|
+
lastActiveAt: z.number(),
|
|
474
|
+
name: z.string().optional(),
|
|
475
|
+
});
|
|
476
|
+
/**
|
|
477
|
+
* Session statistics
|
|
478
|
+
*/
|
|
479
|
+
export const SessionStatsSchema = z.object({
|
|
480
|
+
completedTasks: z.number().int().nonnegative(),
|
|
481
|
+
failedTasks: z.number().int().nonnegative(),
|
|
482
|
+
totalTasks: z.number().int().nonnegative(),
|
|
483
|
+
});
|
|
484
|
+
/**
|
|
485
|
+
* Request for session:info (empty - get current session)
|
|
486
|
+
*/
|
|
487
|
+
export const SessionInfoRequestSchema = z.object({});
|
|
488
|
+
/**
|
|
489
|
+
* Response for session:info
|
|
490
|
+
*/
|
|
491
|
+
export const SessionInfoResponseSchema = z.object({
|
|
492
|
+
session: SessionInfoSchema,
|
|
493
|
+
stats: SessionStatsSchema,
|
|
494
|
+
});
|
|
495
|
+
/**
|
|
496
|
+
* Request for session:list (empty - list all)
|
|
497
|
+
*/
|
|
498
|
+
export const SessionListRequestSchema = z.object({});
|
|
499
|
+
/**
|
|
500
|
+
* Response for session:list
|
|
501
|
+
*/
|
|
502
|
+
export const SessionListResponseSchema = z.object({
|
|
503
|
+
sessions: z.array(SessionInfoSchema),
|
|
504
|
+
});
|
|
505
|
+
/**
|
|
506
|
+
* Request for session:create
|
|
507
|
+
*/
|
|
508
|
+
export const SessionCreateRequestSchema = z.object({
|
|
509
|
+
name: z.string().optional(),
|
|
510
|
+
});
|
|
511
|
+
/**
|
|
512
|
+
* Response for session:create
|
|
513
|
+
*/
|
|
514
|
+
export const SessionCreateResponseSchema = z.object({
|
|
515
|
+
sessionId: z.string(),
|
|
516
|
+
});
|
|
517
|
+
/**
|
|
518
|
+
* Request for session:switch
|
|
519
|
+
*/
|
|
520
|
+
export const SessionSwitchRequestSchema = z.object({
|
|
521
|
+
sessionId: z.string(),
|
|
522
|
+
});
|
|
523
|
+
/**
|
|
524
|
+
* Response for session:switch
|
|
525
|
+
*/
|
|
526
|
+
export const SessionSwitchResponseSchema = z.object({
|
|
527
|
+
success: z.boolean(),
|
|
528
|
+
});
|
|
529
|
+
/**
|
|
530
|
+
* Broadcast when session switches (server → all clients)
|
|
531
|
+
*/
|
|
532
|
+
export const SessionSwitchedBroadcastSchema = z.object({
|
|
533
|
+
sessionId: z.string(),
|
|
534
|
+
});
|
|
535
|
+
// ============================================================================
|
|
536
|
+
// Agent Control (agent:*)
|
|
537
|
+
// ============================================================================
|
|
538
|
+
/**
|
|
539
|
+
* Request to restart/reinitialize the Agent.
|
|
540
|
+
* Used when config changes (e.g., after /init) require Agent to reload.
|
|
541
|
+
*/
|
|
542
|
+
export const AgentRestartRequestSchema = z.object({
|
|
543
|
+
/** Optional reason for restart (for logging) */
|
|
544
|
+
reason: z.string().optional(),
|
|
545
|
+
});
|
|
546
|
+
/**
|
|
547
|
+
* Response after agent restart request.
|
|
548
|
+
*/
|
|
549
|
+
export const AgentRestartResponseSchema = z.object({
|
|
550
|
+
/** Error message if restart failed */
|
|
551
|
+
error: z.string().optional(),
|
|
552
|
+
/** Whether the restart was initiated successfully */
|
|
553
|
+
success: z.boolean(),
|
|
554
|
+
});
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transport Configuration Types
|
|
3
|
+
*
|
|
4
|
+
* These are configuration types for Socket.IO server/client setup.
|
|
5
|
+
* For message schemas and payloads, see ./schemas.ts
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for transport server.
|
|
9
|
+
*/
|
|
10
|
+
export type TransportServerConfig = {
|
|
11
|
+
/**
|
|
12
|
+
* CORS origin configuration.
|
|
13
|
+
* @default '*' for localhost trust
|
|
14
|
+
*/
|
|
15
|
+
corsOrigin?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Ping interval in milliseconds for heartbeat.
|
|
18
|
+
* Lower = faster disconnect detection, higher network overhead.
|
|
19
|
+
*/
|
|
20
|
+
pingIntervalMs?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Ping timeout in milliseconds.
|
|
23
|
+
* If client doesn't respond within this time, considered disconnected.
|
|
24
|
+
*/
|
|
25
|
+
pingTimeoutMs?: number;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Socket.IO transport types.
|
|
29
|
+
* 'websocket' is preferred for sandboxed environments (like IDE terminals).
|
|
30
|
+
* 'polling' uses HTTP long-polling which may be blocked by some sandboxes.
|
|
31
|
+
*/
|
|
32
|
+
export type SocketTransport = 'polling' | 'websocket';
|
|
33
|
+
/**
|
|
34
|
+
* Configuration for transport client.
|
|
35
|
+
*/
|
|
36
|
+
export type TransportClientConfig = {
|
|
37
|
+
/**
|
|
38
|
+
* Connection timeout in milliseconds.
|
|
39
|
+
*/
|
|
40
|
+
connectTimeoutMs?: number;
|
|
41
|
+
/**
|
|
42
|
+
* Number of reconnection attempts before giving up.
|
|
43
|
+
*/
|
|
44
|
+
reconnectionAttempts?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Maximum reconnection delay in milliseconds.
|
|
47
|
+
*/
|
|
48
|
+
reconnectionDelayMaxMs?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Initial reconnection delay in milliseconds.
|
|
51
|
+
*/
|
|
52
|
+
reconnectionDelayMs?: number;
|
|
53
|
+
/**
|
|
54
|
+
* Default request timeout in milliseconds.
|
|
55
|
+
*/
|
|
56
|
+
requestTimeoutMs?: number;
|
|
57
|
+
/**
|
|
58
|
+
* Room operation timeout in milliseconds.
|
|
59
|
+
*/
|
|
60
|
+
roomTimeoutMs?: number;
|
|
61
|
+
/**
|
|
62
|
+
* Socket.IO transport types to use.
|
|
63
|
+
* Defaults to ['websocket'] to avoid HTTP polling issues in sandboxed environments.
|
|
64
|
+
* Set to ['polling', 'websocket'] for default Socket.IO behavior.
|
|
65
|
+
*/
|
|
66
|
+
transports?: SocketTransport[];
|
|
67
|
+
};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { AgentEventBus, SessionEventBus } from '../../../infra/cipher/events/event-emitter.js';
|
|
2
2
|
import type { FileSystemService } from '../../../infra/cipher/file-system/file-system-service.js';
|
|
3
|
+
import type { CompactionService } from '../../../infra/cipher/llm/context/compaction/compaction-service.js';
|
|
3
4
|
import type { MemoryManager } from '../../../infra/cipher/memory/memory-manager.js';
|
|
4
5
|
import type { ProcessService } from '../../../infra/cipher/process/process-service.js';
|
|
5
|
-
import type {
|
|
6
|
+
import type { MessageStorageService } from '../../../infra/cipher/storage/message-storage-service.js';
|
|
7
|
+
import type { SystemPromptManager } from '../../../infra/cipher/system-prompt/system-prompt-manager.js';
|
|
6
8
|
import type { ToolManager } from '../../../infra/cipher/tools/tool-manager.js';
|
|
7
9
|
import type { ToolProvider } from '../../../infra/cipher/tools/tool-provider.js';
|
|
8
10
|
import type { IBlobStorage } from './i-blob-storage.js';
|
|
@@ -19,7 +21,7 @@ import type { IToolScheduler } from './i-tool-scheduler.js';
|
|
|
19
21
|
* - ToolManager: Manages tool registration and execution (stateless)
|
|
20
22
|
* - ToolScheduler: Orchestrates tool execution with policy checks
|
|
21
23
|
* - PolicyEngine: Rule-based ALLOW/DENY decisions for tools
|
|
22
|
-
* -
|
|
24
|
+
* - SystemPromptManager: Builds system prompts using contributor pattern
|
|
23
25
|
* - FileSystemService: File system operations
|
|
24
26
|
* - ProcessService: Command execution
|
|
25
27
|
* - BlobStorage: Binary data storage
|
|
@@ -32,12 +34,22 @@ export interface CipherAgentServices {
|
|
|
32
34
|
agentEventBus: AgentEventBus;
|
|
33
35
|
blobStorage: IBlobStorage;
|
|
34
36
|
codingAgentLogWatcher?: ICodingAgentLogWatcher;
|
|
37
|
+
/**
|
|
38
|
+
* CompactionService for context overflow management.
|
|
39
|
+
* Only available when granular storage is enabled (useGranularStorage: true).
|
|
40
|
+
*/
|
|
41
|
+
compactionService?: CompactionService;
|
|
35
42
|
fileSystemService: FileSystemService;
|
|
36
43
|
historyStorage: IHistoryStorage;
|
|
37
44
|
memoryManager: MemoryManager;
|
|
45
|
+
/**
|
|
46
|
+
* MessageStorageService for direct granular message access.
|
|
47
|
+
* Only available when granular storage is enabled (useGranularStorage: true).
|
|
48
|
+
*/
|
|
49
|
+
messageStorageService?: MessageStorageService;
|
|
38
50
|
policyEngine: IPolicyEngine;
|
|
39
51
|
processService: ProcessService;
|
|
40
|
-
|
|
52
|
+
systemPromptManager: SystemPromptManager;
|
|
41
53
|
toolManager: ToolManager;
|
|
42
54
|
toolProvider: ToolProvider;
|
|
43
55
|
toolScheduler: IToolScheduler;
|