byterover-cli 0.4.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -9
- package/dist/commands/curate.d.ts +1 -3
- package/dist/commands/curate.js +14 -51
- package/dist/commands/main.d.ts +8 -0
- package/dist/commands/main.js +29 -8
- package/dist/commands/query.d.ts +1 -3
- package/dist/commands/query.js +8 -35
- package/dist/config/context-tree-domains.d.ts +5 -0
- package/dist/config/context-tree-domains.js +6 -1
- package/dist/config/environment.js +9 -9
- package/dist/constants.d.ts +14 -0
- package/dist/constants.js +18 -0
- package/dist/core/domain/cipher/agent/agent-info.d.ts +199 -0
- package/dist/core/domain/cipher/agent/agent-info.js +143 -0
- package/dist/core/domain/cipher/agent/agent-registry.d.ts +96 -0
- package/dist/core/domain/cipher/agent/agent-registry.js +254 -0
- package/dist/core/domain/cipher/agent/index.d.ts +4 -1
- package/dist/core/domain/cipher/agent/index.js +7 -1
- package/dist/core/domain/cipher/agent-events/types.d.ts +355 -2
- package/dist/core/domain/cipher/agent-events/types.js +11 -0
- package/dist/core/domain/cipher/errors/error-normalizer.d.ts +156 -0
- package/dist/core/domain/cipher/errors/error-normalizer.js +379 -0
- package/dist/core/domain/cipher/errors/file-system-error.d.ts +2 -1
- package/dist/core/domain/cipher/errors/file-system-error.js +3 -2
- package/dist/core/domain/cipher/errors/system-prompt-error-codes.d.ts +79 -0
- package/dist/core/domain/cipher/errors/system-prompt-error-codes.js +80 -0
- package/dist/core/domain/cipher/errors/system-prompt-error.d.ts +114 -0
- package/dist/core/domain/cipher/errors/system-prompt-error.js +144 -0
- package/dist/core/domain/cipher/file-system/types.d.ts +57 -0
- package/dist/core/domain/cipher/llm/error-codes.d.ts +51 -0
- package/dist/core/domain/cipher/llm/error-codes.js +51 -0
- package/dist/core/domain/cipher/llm/index.d.ts +9 -0
- package/dist/core/domain/cipher/llm/index.js +13 -0
- package/dist/core/domain/cipher/llm/registry.d.ts +113 -0
- package/dist/core/domain/cipher/llm/registry.js +244 -0
- package/dist/core/domain/cipher/llm/schemas.d.ts +155 -0
- package/dist/core/domain/cipher/llm/schemas.js +151 -0
- package/dist/core/domain/cipher/llm/types.d.ts +121 -0
- package/dist/core/domain/cipher/llm/types.js +60 -0
- package/dist/core/domain/cipher/storage/message-storage-types.d.ts +114 -5
- package/dist/core/domain/cipher/streaming/types.d.ts +119 -0
- package/dist/core/domain/cipher/streaming/types.js +16 -0
- package/dist/core/domain/cipher/system-prompt/types.d.ts +44 -0
- package/dist/core/domain/cipher/todos/types.d.ts +34 -0
- package/dist/core/domain/cipher/tools/constants.d.ts +5 -2
- package/dist/core/domain/cipher/tools/constants.js +5 -2
- package/dist/core/domain/cipher/tools/types.d.ts +31 -0
- package/dist/core/domain/entities/event.d.ts +1 -1
- package/dist/core/domain/entities/event.js +3 -1
- package/dist/core/domain/errors/connection-error.d.ts +33 -0
- package/dist/core/domain/errors/connection-error.js +54 -0
- package/dist/core/domain/errors/core-process-error.d.ts +27 -0
- package/dist/core/domain/errors/core-process-error.js +43 -0
- package/dist/core/domain/errors/task-error.d.ts +64 -0
- package/dist/core/domain/errors/task-error.js +116 -0
- package/dist/core/domain/errors/transport-error.d.ts +72 -0
- package/dist/core/domain/errors/transport-error.js +114 -0
- package/dist/core/domain/instance/index.d.ts +1 -0
- package/dist/core/domain/instance/index.js +1 -0
- package/dist/core/domain/instance/types.d.ts +57 -0
- package/dist/core/domain/instance/types.js +72 -0
- package/dist/core/domain/knowledge/directory-manager.d.ts +16 -0
- package/dist/core/domain/knowledge/directory-manager.js +31 -0
- package/dist/core/domain/transport/index.d.ts +2 -0
- package/dist/core/domain/transport/index.js +2 -0
- package/dist/core/domain/transport/schemas.d.ts +1149 -0
- package/dist/core/domain/transport/schemas.js +554 -0
- package/dist/core/domain/transport/types.d.ts +67 -0
- package/dist/core/domain/transport/types.js +7 -0
- package/dist/core/interfaces/cipher/cipher-services.d.ts +15 -3
- package/dist/core/interfaces/cipher/i-chat-session.d.ts +47 -5
- package/dist/core/interfaces/cipher/i-cipher-agent.d.ts +39 -4
- package/dist/core/interfaces/cipher/i-content-generator.d.ts +3 -5
- package/dist/core/interfaces/cipher/i-file-system.d.ts +12 -1
- package/dist/core/interfaces/cipher/i-llm-service.d.ts +4 -5
- package/dist/core/interfaces/cipher/i-todo-storage.d.ts +24 -0
- package/dist/core/interfaces/cipher/i-todo-storage.js +1 -0
- package/dist/core/interfaces/cipher/i-tool-plugin.d.ts +90 -0
- package/dist/core/interfaces/cipher/i-tool-plugin.js +1 -0
- package/dist/core/interfaces/cipher/i-tool-provider.d.ts +3 -2
- package/dist/core/interfaces/cipher/i-tool-scheduler.d.ts +4 -0
- package/dist/core/interfaces/cipher/index.d.ts +35 -0
- package/dist/core/interfaces/cipher/index.js +11 -0
- package/dist/core/interfaces/cipher/message-factory.d.ts +155 -0
- package/dist/core/interfaces/cipher/message-factory.js +252 -0
- package/dist/core/interfaces/cipher/message-type-guards.d.ts +139 -0
- package/dist/core/interfaces/cipher/message-type-guards.js +173 -0
- package/dist/core/interfaces/cipher/message-types.d.ts +279 -5
- package/dist/core/interfaces/cipher/message-types.js +6 -0
- package/dist/core/interfaces/cipher/sanitization-types.d.ts +147 -0
- package/dist/core/interfaces/cipher/sanitization-types.js +46 -0
- package/dist/core/interfaces/executor/i-curate-executor.d.ts +34 -0
- package/dist/core/interfaces/executor/i-curate-executor.js +1 -0
- package/dist/core/interfaces/executor/i-query-executor.d.ts +32 -0
- package/dist/core/interfaces/executor/i-query-executor.js +1 -0
- package/dist/core/interfaces/executor/index.d.ts +2 -0
- package/dist/core/interfaces/executor/index.js +2 -0
- package/dist/core/interfaces/instance/i-instance-discovery.d.ts +45 -0
- package/dist/core/interfaces/instance/i-instance-discovery.js +1 -0
- package/dist/core/interfaces/instance/i-instance-manager.d.ts +58 -0
- package/dist/core/interfaces/instance/i-instance-manager.js +1 -0
- package/dist/core/interfaces/instance/index.d.ts +2 -0
- package/dist/core/interfaces/instance/index.js +2 -0
- package/dist/core/interfaces/noop-implementations.d.ts +53 -0
- package/dist/core/interfaces/noop-implementations.js +62 -0
- package/dist/core/interfaces/transport/i-transport-client.d.ts +97 -0
- package/dist/core/interfaces/transport/i-transport-client.js +1 -0
- package/dist/core/interfaces/transport/i-transport-server.d.ts +93 -0
- package/dist/core/interfaces/transport/i-transport-server.js +1 -0
- package/dist/core/interfaces/transport/index.d.ts +2 -0
- package/dist/core/interfaces/transport/index.js +2 -0
- package/dist/hooks/init/welcome.js +9 -24
- package/dist/infra/cipher/agent/agent-error-codes.d.ts +16 -0
- package/dist/infra/cipher/agent/agent-error-codes.js +17 -0
- package/dist/infra/cipher/agent/agent-error.d.ts +54 -0
- package/dist/infra/cipher/agent/agent-error.js +79 -0
- package/dist/infra/cipher/agent/agent-schemas.d.ts +264 -0
- package/dist/infra/cipher/agent/agent-schemas.js +97 -0
- package/dist/infra/cipher/agent/agent-state-manager.d.ts +140 -0
- package/dist/infra/cipher/agent/agent-state-manager.js +275 -0
- package/dist/infra/cipher/agent/base-agent.d.ts +118 -0
- package/dist/infra/cipher/agent/base-agent.js +240 -0
- package/dist/infra/cipher/agent/cipher-agent.d.ts +165 -0
- package/dist/infra/cipher/agent/cipher-agent.js +546 -0
- package/dist/infra/cipher/agent/index.d.ts +22 -0
- package/dist/infra/cipher/agent/index.js +24 -0
- package/dist/infra/cipher/agent/service-initializer.d.ts +79 -0
- package/dist/infra/cipher/{agent-service-factory.js → agent/service-initializer.js} +117 -68
- package/dist/infra/cipher/agent/types.d.ts +35 -0
- package/dist/infra/cipher/agent/types.js +1 -0
- package/dist/infra/cipher/blob/blob-reference-resolver.d.ts +107 -0
- package/dist/infra/cipher/blob/blob-reference-resolver.js +228 -0
- package/dist/infra/cipher/blob/blob-reference-utils.d.ts +117 -0
- package/dist/infra/cipher/blob/blob-reference-utils.js +230 -0
- package/dist/infra/cipher/consumer/consumer-lock.js +1 -0
- package/dist/infra/cipher/consumer/consumer-service.js +1 -0
- package/dist/infra/cipher/consumer/execution-consumer.d.ts +6 -1
- package/dist/infra/cipher/consumer/execution-consumer.js +54 -16
- package/dist/infra/cipher/consumer/index.d.ts +1 -1
- package/dist/infra/cipher/consumer/index.js +2 -1
- package/dist/infra/cipher/consumer/queue-polling-service.js +1 -0
- package/dist/infra/cipher/file-system/binary-utils.d.ts +43 -0
- package/dist/infra/cipher/file-system/binary-utils.js +164 -0
- package/dist/infra/cipher/file-system/context-tree-file-system-factory.d.ts +9 -0
- package/dist/infra/cipher/file-system/context-tree-file-system-factory.js +24 -0
- package/dist/infra/cipher/file-system/file-system-service.d.ts +17 -1
- package/dist/infra/cipher/file-system/file-system-service.js +327 -36
- package/dist/infra/cipher/file-system/path-validator.d.ts +32 -0
- package/dist/infra/cipher/file-system/path-validator.js +111 -6
- package/dist/infra/cipher/interactive-loop.js +41 -33
- package/dist/infra/cipher/llm/capability-cache.d.ts +87 -0
- package/dist/infra/cipher/llm/capability-cache.js +125 -0
- package/dist/infra/cipher/llm/context/compaction/compaction-service.d.ts +32 -0
- package/dist/infra/cipher/llm/context/compaction/compaction-service.js +44 -3
- package/dist/infra/cipher/llm/context/compression/enhanced-compaction.d.ts +112 -0
- package/dist/infra/cipher/llm/context/compression/enhanced-compaction.js +175 -0
- package/dist/infra/cipher/llm/context/compression/filter-compacted.d.ts +83 -0
- package/dist/infra/cipher/llm/context/compression/filter-compacted.js +150 -0
- package/dist/infra/cipher/llm/context/compression/index.d.ts +5 -0
- package/dist/infra/cipher/llm/context/compression/index.js +6 -0
- package/dist/infra/cipher/llm/context/compression/reactive-overflow.d.ts +107 -0
- package/dist/infra/cipher/llm/context/compression/reactive-overflow.js +272 -0
- package/dist/infra/cipher/llm/context/context-manager.d.ts +47 -1
- package/dist/infra/cipher/llm/context/context-manager.js +129 -0
- package/dist/infra/cipher/llm/context/utils.js +17 -4
- package/dist/infra/cipher/llm/generators/byterover-content-generator.js +4 -2
- package/dist/infra/cipher/llm/internal-llm-service.d.ts +50 -17
- package/dist/infra/cipher/llm/internal-llm-service.js +273 -50
- package/dist/infra/cipher/llm/openrouter-llm-service.d.ts +6 -8
- package/dist/infra/cipher/llm/openrouter-llm-service.js +14 -16
- package/dist/infra/cipher/llm/retry/retry-policy.d.ts +1 -0
- package/dist/infra/cipher/llm/retry/retry-policy.js +11 -0
- package/dist/infra/cipher/llm/retry/retry-with-backoff.js +3 -2
- package/dist/infra/cipher/llm/sanitization/base64-utils.d.ts +102 -0
- package/dist/infra/cipher/llm/sanitization/base64-utils.js +182 -0
- package/dist/infra/cipher/llm/sanitization/index.d.ts +12 -0
- package/dist/infra/cipher/llm/sanitization/index.js +13 -0
- package/dist/infra/cipher/llm/sanitization/tool-sanitizer.d.ts +74 -0
- package/dist/infra/cipher/llm/sanitization/tool-sanitizer.js +398 -0
- package/dist/infra/cipher/llm/stream-processor.d.ts +158 -0
- package/dist/infra/cipher/llm/stream-processor.js +276 -0
- package/dist/infra/cipher/llm/tokenizers/claude-tokenizer.d.ts +13 -20
- package/dist/infra/cipher/llm/tokenizers/claude-tokenizer.js +17 -24
- package/dist/infra/cipher/llm/tokenizers/gemini-tokenizer.d.ts +12 -11
- package/dist/infra/cipher/llm/tokenizers/gemini-tokenizer.js +16 -15
- package/dist/infra/cipher/llm/tokenizers/openrouter-tokenizer.d.ts +15 -7
- package/dist/infra/cipher/llm/tokenizers/openrouter-tokenizer.js +22 -10
- package/dist/infra/cipher/llm/tool-output-processor.d.ts +51 -0
- package/dist/infra/cipher/llm/tool-output-processor.js +139 -0
- package/dist/infra/cipher/process/command-validator.d.ts +23 -0
- package/dist/infra/cipher/process/command-validator.js +75 -0
- package/dist/infra/cipher/process/path-utils.d.ts +66 -0
- package/dist/infra/cipher/process/path-utils.js +94 -0
- package/dist/infra/cipher/process/process-service.d.ts +32 -0
- package/dist/infra/cipher/process/process-service.js +98 -17
- package/dist/infra/cipher/session/chat-session.d.ts +56 -7
- package/dist/infra/cipher/session/chat-session.js +163 -13
- package/dist/infra/cipher/session/index.d.ts +1 -0
- package/dist/infra/cipher/session/index.js +2 -0
- package/dist/infra/cipher/session/message-queue.d.ts +65 -0
- package/dist/infra/cipher/session/message-queue.js +90 -0
- package/dist/infra/cipher/session/session-manager.d.ts +106 -5
- package/dist/infra/cipher/session/session-manager.js +254 -7
- package/dist/infra/cipher/session/session-status.d.ts +137 -0
- package/dist/infra/cipher/session/session-status.js +184 -0
- package/dist/infra/cipher/session/title-generator.d.ts +8 -0
- package/dist/infra/cipher/session/title-generator.js +31 -0
- package/dist/infra/cipher/storage/message-storage-service.d.ts +65 -2
- package/dist/infra/cipher/storage/message-storage-service.js +300 -54
- package/dist/infra/cipher/storage/tool-part-factory.d.ts +116 -0
- package/dist/infra/cipher/storage/tool-part-factory.js +197 -0
- package/dist/infra/cipher/system-prompt/contributor-schemas.d.ts +516 -0
- package/dist/infra/cipher/system-prompt/contributor-schemas.js +85 -0
- package/dist/infra/cipher/system-prompt/contributors/agent-prompt-contributor.d.ts +59 -0
- package/dist/infra/cipher/system-prompt/contributors/agent-prompt-contributor.js +131 -0
- package/dist/infra/cipher/system-prompt/contributors/companion-contributor.d.ts +54 -0
- package/dist/infra/cipher/system-prompt/contributors/companion-contributor.js +107 -0
- package/dist/infra/cipher/system-prompt/contributors/context-tree-structure-contributor.d.ts +68 -0
- package/dist/infra/cipher/system-prompt/contributors/context-tree-structure-contributor.js +179 -0
- package/dist/infra/cipher/system-prompt/contributors/datetime-contributor.d.ts +25 -0
- package/dist/infra/cipher/system-prompt/contributors/datetime-contributor.js +29 -0
- package/dist/infra/cipher/system-prompt/contributors/environment-contributor.d.ts +25 -0
- package/dist/infra/cipher/system-prompt/contributors/environment-contributor.js +54 -0
- package/dist/infra/cipher/system-prompt/contributors/file-contributor.d.ts +60 -0
- package/dist/infra/cipher/system-prompt/contributors/file-contributor.js +128 -0
- package/dist/infra/cipher/system-prompt/contributors/index.d.ts +13 -0
- package/dist/infra/cipher/system-prompt/contributors/index.js +8 -0
- package/dist/infra/cipher/system-prompt/contributors/memory-contributor.d.ts +40 -0
- package/dist/infra/cipher/system-prompt/contributors/memory-contributor.js +56 -0
- package/dist/infra/cipher/system-prompt/contributors/static-contributor.d.ts +26 -0
- package/dist/infra/cipher/system-prompt/contributors/static-contributor.js +31 -0
- package/dist/infra/cipher/system-prompt/environment-context-builder.d.ts +112 -0
- package/dist/infra/cipher/system-prompt/environment-context-builder.js +256 -0
- package/dist/infra/cipher/system-prompt/prompt-cache.d.ts +102 -0
- package/dist/infra/cipher/system-prompt/prompt-cache.js +156 -0
- package/dist/infra/cipher/system-prompt/schemas.d.ts +151 -0
- package/dist/infra/cipher/system-prompt/schemas.js +94 -0
- package/dist/infra/cipher/system-prompt/system-prompt-manager.d.ts +136 -0
- package/dist/infra/cipher/system-prompt/system-prompt-manager.js +307 -0
- package/dist/infra/cipher/todos/todo-storage-service.d.ts +26 -0
- package/dist/infra/cipher/todos/todo-storage-service.js +28 -0
- package/dist/infra/cipher/tools/core-tool-scheduler.js +5 -1
- package/dist/infra/cipher/tools/default-policy-rules.js +1 -1
- package/dist/infra/cipher/tools/implementations/bash-exec-tool.d.ts +1 -0
- package/dist/infra/cipher/tools/implementations/bash-exec-tool.js +27 -10
- package/dist/infra/cipher/tools/implementations/bash-output-tool.js +1 -5
- package/dist/infra/cipher/tools/implementations/batch-tool.d.ts +12 -0
- package/dist/infra/cipher/tools/implementations/batch-tool.js +142 -0
- package/dist/infra/cipher/tools/implementations/curate-tool.js +195 -68
- package/dist/infra/cipher/tools/implementations/list-directory-tool.d.ts +12 -0
- package/dist/infra/cipher/tools/implementations/list-directory-tool.js +52 -0
- package/dist/infra/cipher/tools/implementations/read-file-tool.d.ts +8 -1
- package/dist/infra/cipher/tools/implementations/read-file-tool.js +17 -7
- package/dist/infra/cipher/tools/implementations/read-todos-tool.d.ts +11 -0
- package/dist/infra/cipher/tools/implementations/read-todos-tool.js +39 -0
- package/dist/infra/cipher/tools/implementations/{detect-domains-tool.d.ts → spec-analyze-tool.d.ts} +1 -1
- package/dist/infra/cipher/tools/implementations/{detect-domains-tool.js → spec-analyze-tool.js} +9 -7
- package/dist/infra/cipher/tools/implementations/task-tool.d.ts +34 -0
- package/dist/infra/cipher/tools/implementations/task-tool.js +207 -0
- package/dist/infra/cipher/tools/implementations/write-todos-tool.d.ts +4 -1
- package/dist/infra/cipher/tools/implementations/write-todos-tool.js +19 -63
- package/dist/infra/cipher/tools/index.d.ts +1 -1
- package/dist/infra/cipher/tools/index.js +1 -1
- package/dist/infra/cipher/tools/plugins/index.d.ts +3 -0
- package/dist/infra/cipher/tools/plugins/index.js +2 -0
- package/dist/infra/cipher/tools/plugins/logging-plugin.d.ts +28 -0
- package/dist/infra/cipher/tools/plugins/logging-plugin.js +66 -0
- package/dist/infra/cipher/tools/plugins/plugin-manager.d.ts +81 -0
- package/dist/infra/cipher/tools/plugins/plugin-manager.js +122 -0
- package/dist/infra/cipher/tools/streaming/index.d.ts +1 -0
- package/dist/infra/cipher/tools/streaming/index.js +1 -0
- package/dist/infra/cipher/tools/streaming/metadata-handler.d.ts +31 -0
- package/dist/infra/cipher/tools/streaming/metadata-handler.js +39 -0
- package/dist/infra/cipher/tools/tool-description-loader.d.ts +57 -0
- package/dist/infra/cipher/tools/tool-description-loader.js +108 -0
- package/dist/infra/cipher/tools/tool-manager.d.ts +38 -4
- package/dist/infra/cipher/tools/tool-manager.js +107 -11
- package/dist/infra/cipher/tools/tool-provider-getter.d.ts +6 -0
- package/dist/infra/cipher/tools/tool-provider-getter.js +1 -0
- package/dist/infra/cipher/tools/tool-provider.d.ts +32 -7
- package/dist/infra/cipher/tools/tool-provider.js +81 -25
- package/dist/infra/cipher/tools/tool-registry.d.ts +23 -0
- package/dist/infra/cipher/tools/tool-registry.js +58 -16
- package/dist/infra/context-tree/file-context-tree-snapshot-service.js +10 -4
- package/dist/infra/context-tree/file-context-tree-writer-service.d.ts +4 -3
- package/dist/infra/context-tree/file-context-tree-writer-service.js +6 -4
- package/dist/infra/context-tree/path-utils.d.ts +7 -0
- package/dist/infra/context-tree/path-utils.js +7 -0
- package/dist/infra/core/executors/curate-executor.d.ts +35 -0
- package/dist/infra/core/executors/curate-executor.js +123 -0
- package/dist/infra/core/executors/index.d.ts +2 -0
- package/dist/infra/core/executors/index.js +2 -0
- package/dist/infra/core/executors/query-executor.d.ts +23 -0
- package/dist/infra/core/executors/query-executor.js +51 -0
- package/dist/infra/core/task-processor.d.ts +81 -0
- package/dist/infra/core/task-processor.js +115 -0
- package/dist/infra/instance/file-instance-discovery.d.ts +31 -0
- package/dist/infra/instance/file-instance-discovery.js +84 -0
- package/dist/infra/instance/file-instance-manager.d.ts +46 -0
- package/dist/infra/instance/file-instance-manager.js +123 -0
- package/dist/infra/instance/index.d.ts +3 -0
- package/dist/infra/instance/index.js +3 -0
- package/dist/infra/instance/process-utils.d.ts +14 -0
- package/dist/infra/instance/process-utils.js +39 -0
- package/dist/infra/process/agent-worker.d.ts +20 -0
- package/dist/infra/process/agent-worker.js +602 -0
- package/dist/infra/process/index.d.ts +12 -0
- package/dist/infra/process/index.js +11 -0
- package/dist/infra/process/ipc-types.d.ts +55 -0
- package/dist/infra/process/ipc-types.js +12 -0
- package/dist/infra/process/process-manager.d.ts +154 -0
- package/dist/infra/process/process-manager.js +471 -0
- package/dist/infra/process/task-queue-manager.d.ts +123 -0
- package/dist/infra/process/task-queue-manager.js +226 -0
- package/dist/infra/process/transport-handlers.d.ts +124 -0
- package/dist/infra/process/transport-handlers.js +348 -0
- package/dist/infra/process/transport-worker.d.ts +20 -0
- package/dist/infra/process/transport-worker.js +168 -0
- package/dist/infra/repl/commands/curate-command.js +0 -5
- package/dist/infra/repl/commands/query-command.js +0 -3
- package/dist/infra/repl/repl-startup.d.ts +4 -0
- package/dist/infra/repl/repl-startup.js +10 -1
- package/dist/infra/repl/transport-client-helper.d.ts +9 -0
- package/dist/infra/repl/transport-client-helper.js +96 -0
- package/dist/infra/transport/index.d.ts +4 -0
- package/dist/infra/transport/index.js +4 -0
- package/dist/infra/transport/port-utils.d.ts +42 -0
- package/dist/infra/transport/port-utils.js +84 -0
- package/dist/infra/transport/socket-io-transport-client.d.ts +45 -0
- package/dist/infra/transport/socket-io-transport-client.js +270 -0
- package/dist/infra/transport/socket-io-transport-server.d.ts +35 -0
- package/dist/infra/transport/socket-io-transport-server.js +207 -0
- package/dist/infra/transport/transport-client-factory.d.ts +76 -0
- package/dist/infra/transport/transport-client-factory.js +168 -0
- package/dist/infra/transport/transport-factory.d.ts +33 -0
- package/dist/infra/transport/transport-factory.js +59 -0
- package/dist/infra/usecase/curate-use-case.d.ts +8 -55
- package/dist/infra/usecase/curate-use-case.js +73 -259
- package/dist/infra/usecase/init-use-case.js +19 -8
- package/dist/infra/usecase/login-use-case.js +9 -3
- package/dist/infra/usecase/query-use-case.d.ts +18 -45
- package/dist/infra/usecase/query-use-case.js +251 -326
- package/dist/infra/usecase/status-use-case.js +1 -1
- package/dist/resources/prompts/{curate-context-tree-curation.yml → curate.yml} +25 -22
- package/dist/resources/prompts/explore.yml +78 -0
- package/dist/resources/prompts/plan.yml +114 -0
- package/dist/resources/prompts/reflection.yml +1 -1
- package/dist/resources/prompts/system-prompt.yml +15 -8
- package/dist/resources/prompts/tool-outputs.yml +0 -5
- package/dist/resources/tools/bash_exec.txt +98 -0
- package/dist/resources/tools/bash_output.txt +40 -0
- package/dist/resources/tools/batch.txt +28 -0
- package/dist/resources/tools/create_knowledge_topic.txt +23 -0
- package/dist/resources/tools/curate.txt +22 -0
- package/dist/resources/tools/delete_memory.txt +1 -0
- package/dist/resources/tools/detect_domains.txt +11 -0
- package/dist/resources/tools/edit_file.txt +1 -0
- package/dist/resources/tools/edit_memory.txt +1 -0
- package/dist/resources/tools/glob_files.txt +20 -0
- package/dist/resources/tools/grep_content.txt +18 -0
- package/dist/resources/tools/kill_process.txt +16 -0
- package/dist/resources/tools/list_directory.txt +16 -0
- package/dist/resources/tools/list_memories.txt +1 -0
- package/dist/resources/tools/read_file.txt +31 -0
- package/dist/resources/tools/read_memory.txt +1 -0
- package/dist/resources/tools/read_todos.txt +17 -0
- package/dist/resources/tools/search_history.txt +1 -0
- package/dist/resources/tools/task.txt +23 -0
- package/dist/resources/tools/write_file.txt +1 -0
- package/dist/resources/tools/write_memory.txt +1 -0
- package/dist/resources/tools/write_todos.txt +29 -0
- package/dist/tui/app.js +9 -13
- package/dist/tui/components/command-details.d.ts +14 -0
- package/dist/tui/components/command-details.js +35 -0
- package/dist/tui/components/execution/execution-changes.d.ts +5 -0
- package/dist/tui/components/execution/execution-changes.js +19 -4
- package/dist/tui/components/execution/execution-content.d.ts +4 -2
- package/dist/tui/components/execution/execution-content.js +26 -13
- package/dist/tui/components/execution/execution-input.js +3 -3
- package/dist/tui/components/execution/execution-progress.d.ts +2 -2
- package/dist/tui/components/execution/execution-progress.js +8 -6
- package/dist/tui/components/execution/log-item.d.ts +3 -4
- package/dist/tui/components/execution/log-item.js +2 -5
- package/dist/tui/components/footer.js +9 -4
- package/dist/tui/components/header.d.ts +3 -3
- package/dist/tui/components/header.js +5 -3
- package/dist/tui/components/index.d.ts +1 -0
- package/dist/tui/components/index.js +1 -0
- package/dist/tui/components/onboarding/copyable-prompt.d.ts +5 -3
- package/dist/tui/components/onboarding/copyable-prompt.js +7 -8
- package/dist/tui/components/onboarding/onboarding-flow.js +35 -25
- package/dist/tui/components/scrollable-list.js +12 -10
- package/dist/tui/components/suggestions.js +39 -41
- package/dist/tui/components/tab-bar.d.ts +2 -1
- package/dist/tui/components/tab-bar.js +3 -4
- package/dist/tui/constants.d.ts +0 -5
- package/dist/tui/constants.js +0 -5
- package/dist/tui/contexts/auth-context.js +9 -2
- package/dist/tui/contexts/{use-commands.js → commands-context.js} +6 -5
- package/dist/tui/contexts/index.d.ts +6 -1
- package/dist/tui/contexts/index.js +6 -1
- package/dist/tui/contexts/onboarding-context.d.ts +1 -1
- package/dist/tui/contexts/onboarding-context.js +9 -9
- package/dist/tui/contexts/tasks-context.d.ts +84 -0
- package/dist/tui/contexts/tasks-context.js +218 -0
- package/dist/tui/contexts/transport-context.d.ts +29 -0
- package/dist/tui/contexts/transport-context.js +82 -0
- package/dist/tui/hooks/index.d.ts +10 -6
- package/dist/tui/hooks/index.js +7 -6
- package/dist/tui/hooks/use-activity-logs.d.ts +3 -11
- package/dist/tui/hooks/use-activity-logs.js +87 -34
- package/dist/tui/hooks/use-auth-polling.d.ts +24 -0
- package/dist/tui/hooks/use-auth-polling.js +104 -0
- package/dist/tui/hooks/use-slash-command-processor.js +0 -1
- package/dist/tui/hooks/use-slash-completion.js +1 -1
- package/dist/tui/hooks/use-tab-navigation.d.ts +2 -1
- package/dist/tui/hooks/use-tab-navigation.js +16 -7
- package/dist/tui/hooks/use-terminal-breakpoint.d.ts +21 -0
- package/dist/tui/hooks/use-terminal-breakpoint.js +38 -0
- package/dist/tui/hooks/use-ui-heights.d.ts +120 -0
- package/dist/tui/hooks/use-ui-heights.js +88 -0
- package/dist/tui/providers/app-providers.js +2 -6
- package/dist/tui/types/commands.d.ts +0 -26
- package/dist/tui/types/index.d.ts +1 -1
- package/dist/tui/types/ui.d.ts +9 -4
- package/dist/tui/utils/line.d.ts +11 -0
- package/dist/tui/utils/line.js +16 -0
- package/dist/tui/utils/log.d.ts +27 -0
- package/dist/tui/utils/log.js +114 -0
- package/dist/tui/views/command-view.d.ts +7 -0
- package/dist/tui/views/command-view.js +103 -80
- package/dist/tui/views/login-view.js +7 -4
- package/dist/tui/views/logs-view.d.ts +13 -0
- package/dist/tui/views/logs-view.js +27 -52
- package/dist/utils/connection-error-handler.d.ts +16 -0
- package/dist/utils/connection-error-handler.js +49 -0
- package/dist/utils/crash-log.d.ts +14 -0
- package/dist/utils/crash-log.js +19 -0
- package/dist/utils/file-helpers.d.ts +14 -0
- package/dist/utils/file-helpers.js +21 -0
- package/dist/utils/global-logs-path.d.ts +11 -0
- package/dist/utils/global-logs-path.js +37 -0
- package/dist/utils/process-logger.d.ts +53 -0
- package/dist/utils/process-logger.js +253 -0
- package/dist/utils/sandbox-detector.d.ts +31 -0
- package/dist/utils/sandbox-detector.js +122 -0
- package/oclif.manifest.json +10 -198
- package/package.json +5 -1
- package/dist/commands/cipher-agent/run.d.ts +0 -142
- package/dist/commands/cipher-agent/run.js +0 -555
- package/dist/commands/cipher-agent/set-prompt.d.ts +0 -16
- package/dist/commands/cipher-agent/set-prompt.js +0 -58
- package/dist/commands/cipher-agent/show-prompt.d.ts +0 -13
- package/dist/commands/cipher-agent/show-prompt.js +0 -53
- package/dist/commands/foo.d.ts +0 -14
- package/dist/commands/foo.js +0 -66
- package/dist/infra/cipher/agent-service-factory.d.ts +0 -93
- package/dist/infra/cipher/cipher-agent-state-manager.d.ts +0 -63
- package/dist/infra/cipher/cipher-agent-state-manager.js +0 -108
- package/dist/infra/cipher/cipher-agent.d.ts +0 -182
- package/dist/infra/cipher/cipher-agent.js +0 -317
- package/dist/infra/cipher/system-prompt/simple-prompt-factory.d.ts +0 -106
- package/dist/infra/cipher/system-prompt/simple-prompt-factory.js +0 -297
- package/dist/infra/cipher/tools/implementations/find-knowledge-topics-tool.d.ts +0 -7
- package/dist/infra/cipher/tools/implementations/find-knowledge-topics-tool.js +0 -424
- package/dist/resources/prompts/modes/autonomous.yml +0 -9
- package/dist/resources/prompts/query-context-tree-retrieval.yml +0 -48
- package/dist/tui/contexts/consumer.d.ts +0 -31
- package/dist/tui/contexts/consumer.js +0 -56
- package/dist/tui/hooks/use-consumer.d.ts +0 -12
- package/dist/tui/hooks/use-consumer.js +0 -50
- package/dist/tui/hooks/use-queue-polling.d.ts +0 -31
- package/dist/tui/hooks/use-queue-polling.js +0 -90
- /package/dist/tui/contexts/{use-commands.d.ts → commands-context.d.ts} +0 -0
- /package/dist/tui/contexts/{use-mode.d.ts → mode-context.d.ts} +0 -0
- /package/dist/tui/contexts/{use-mode.js → mode-context.js} +0 -0
- /package/dist/tui/contexts/{use-theme.d.ts → theme-context.d.ts} +0 -0
- /package/dist/tui/contexts/{use-theme.js → theme-context.js} +0 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { SystemPromptErrorCode } from './system-prompt-error-codes.js';
|
|
2
|
+
/**
|
|
3
|
+
* Base error class for system prompt operations.
|
|
4
|
+
*
|
|
5
|
+
* All system prompt-specific errors use this class with factory methods.
|
|
6
|
+
*/
|
|
7
|
+
export class SystemPromptError extends Error {
|
|
8
|
+
code;
|
|
9
|
+
details;
|
|
10
|
+
suggestion;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a new system prompt error.
|
|
13
|
+
*
|
|
14
|
+
* @param message - Error message describing what went wrong
|
|
15
|
+
* @param code - Error code for categorization
|
|
16
|
+
* @param details - Additional error context
|
|
17
|
+
* @param suggestion - Optional recovery suggestion
|
|
18
|
+
*/
|
|
19
|
+
constructor(message, code, details, suggestion) {
|
|
20
|
+
super(message);
|
|
21
|
+
this.name = 'SystemPromptError';
|
|
22
|
+
this.code = code;
|
|
23
|
+
this.details = details;
|
|
24
|
+
this.suggestion = suggestion;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Factory method: Cache operation failed.
|
|
28
|
+
*
|
|
29
|
+
* @param operation - The cache operation that failed (get, set, invalidate)
|
|
30
|
+
* @param reason - Reason for the failure
|
|
31
|
+
* @returns SystemPromptError instance
|
|
32
|
+
*/
|
|
33
|
+
static cacheOperationFailed(operation, reason) {
|
|
34
|
+
return new SystemPromptError(`Cache ${operation} operation failed: ${reason}`, SystemPromptErrorCode.CACHE_OPERATION_FAILED, { operation, reason }, 'Clear the cache and retry, or check file system permissions.');
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Factory method: Prompt configuration is invalid.
|
|
38
|
+
*
|
|
39
|
+
* @param reason - Reason why configuration is invalid
|
|
40
|
+
* @param validationErrors - Optional validation error details
|
|
41
|
+
* @returns SystemPromptError instance
|
|
42
|
+
*/
|
|
43
|
+
static configInvalid(reason, validationErrors) {
|
|
44
|
+
return new SystemPromptError(`Invalid prompt configuration: ${reason}`, SystemPromptErrorCode.CONFIG_INVALID, { reason, validationErrors }, 'Review the prompt YAML structure and fix any schema violations.');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Factory method: Required field missing from configuration.
|
|
48
|
+
*
|
|
49
|
+
* @param field - Name of the missing field
|
|
50
|
+
* @param filepath - Path to the config file
|
|
51
|
+
* @returns SystemPromptError instance
|
|
52
|
+
*/
|
|
53
|
+
static configMissingField(field, filepath) {
|
|
54
|
+
return new SystemPromptError(`Missing required field '${field}' in ${filepath}`, SystemPromptErrorCode.CONFIG_MISSING_FIELD, { field, filepath }, `Add the '${field}' field to the prompt configuration.`);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Factory method: Contributor execution failed.
|
|
58
|
+
*
|
|
59
|
+
* @param contributorId - ID of the failing contributor
|
|
60
|
+
* @param reason - Reason for the failure
|
|
61
|
+
* @returns SystemPromptError instance
|
|
62
|
+
*/
|
|
63
|
+
static contributorExecutionFailed(contributorId, reason) {
|
|
64
|
+
return new SystemPromptError(`Contributor '${contributorId}' execution failed: ${reason}`, SystemPromptErrorCode.CONTRIBUTOR_EXECUTION_FAILED, { contributorId, reason }, 'Check contributor implementation and its dependencies.');
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Factory method: Invalid contributor configuration.
|
|
68
|
+
*
|
|
69
|
+
* @param config - The invalid configuration object
|
|
70
|
+
* @returns SystemPromptError instance
|
|
71
|
+
*/
|
|
72
|
+
static contributorInvalidConfig(config) {
|
|
73
|
+
return new SystemPromptError('Invalid contributor configuration', SystemPromptErrorCode.CONTRIBUTOR_INVALID_CONFIG, { config }, 'Verify contributor type and ensure all required fields are present.');
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Factory method: Contributor not found in registry.
|
|
77
|
+
*
|
|
78
|
+
* @param contributorId - ID of the missing contributor
|
|
79
|
+
* @returns SystemPromptError instance
|
|
80
|
+
*/
|
|
81
|
+
static contributorNotFound(contributorId) {
|
|
82
|
+
return new SystemPromptError(`Contributor not found: ${contributorId}`, SystemPromptErrorCode.CONTRIBUTOR_NOT_FOUND, { contributorId }, 'Register the contributor before using it in the configuration.');
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Factory method: Prompt file not found.
|
|
86
|
+
*
|
|
87
|
+
* @param filepath - Path to the missing file
|
|
88
|
+
* @returns SystemPromptError instance
|
|
89
|
+
*/
|
|
90
|
+
static fileNotFound(filepath) {
|
|
91
|
+
return new SystemPromptError(`Prompt file not found: ${filepath}`, SystemPromptErrorCode.FILE_NOT_FOUND, { filepath }, 'Check that the prompt file exists at the expected path.');
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Factory method: Failed to read prompt file.
|
|
95
|
+
*
|
|
96
|
+
* @param filepath - Path to the file
|
|
97
|
+
* @param reason - Reason for the failure
|
|
98
|
+
* @returns SystemPromptError instance
|
|
99
|
+
*/
|
|
100
|
+
static fileReadFailed(filepath, reason) {
|
|
101
|
+
return new SystemPromptError(`Failed to read prompt file ${filepath}: ${reason}`, SystemPromptErrorCode.FILE_READ_FAILED, { filepath, reason }, 'Check file permissions and encoding (UTF-8 expected).');
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Factory method: File exceeds maximum allowed size.
|
|
105
|
+
*
|
|
106
|
+
* @param filepath - Path to the file
|
|
107
|
+
* @param size - Actual file size in bytes
|
|
108
|
+
* @param maxSize - Maximum allowed size in bytes
|
|
109
|
+
* @returns SystemPromptError instance
|
|
110
|
+
*/
|
|
111
|
+
static fileTooLarge(filepath, size, maxSize) {
|
|
112
|
+
return new SystemPromptError(`File ${filepath} exceeds maximum size (${size} > ${maxSize} bytes)`, SystemPromptErrorCode.FILE_TOO_LARGE, { filepath, maxSize, size }, `Reduce file size to under ${maxSize} bytes.`);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Factory method: Invalid file type for prompt loading.
|
|
116
|
+
*
|
|
117
|
+
* @param filepath - Path to the invalid file
|
|
118
|
+
* @param allowedExtensions - List of allowed file extensions
|
|
119
|
+
* @returns SystemPromptError instance
|
|
120
|
+
*/
|
|
121
|
+
static invalidFileType(filepath, allowedExtensions) {
|
|
122
|
+
return new SystemPromptError(`Invalid file type for ${filepath}. Expected: ${allowedExtensions.join(', ')}`, SystemPromptErrorCode.FILE_INVALID_TYPE, { allowedExtensions, filepath }, `Use one of the supported file types: ${allowedExtensions.join(', ')}`);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Factory method: Template rendering failed.
|
|
126
|
+
*
|
|
127
|
+
* @param reason - Reason for the failure
|
|
128
|
+
* @param templatePreview - Preview of the template (first 100 chars)
|
|
129
|
+
* @returns SystemPromptError instance
|
|
130
|
+
*/
|
|
131
|
+
static templateRenderFailed(reason, templatePreview) {
|
|
132
|
+
return new SystemPromptError(`Template render failed: ${reason}`, SystemPromptErrorCode.TEMPLATE_RENDER_FAILED, { reason, templatePreview }, 'Check template syntax and ensure all variable placeholders are valid.');
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Factory method: Required template variable is missing.
|
|
136
|
+
*
|
|
137
|
+
* @param variable - Name of the missing variable
|
|
138
|
+
* @param template - Path or identifier of the template
|
|
139
|
+
* @returns SystemPromptError instance
|
|
140
|
+
*/
|
|
141
|
+
static templateVariableMissing(variable, template) {
|
|
142
|
+
return new SystemPromptError(`Missing required template variable '${variable}' in ${template}`, SystemPromptErrorCode.TEMPLATE_VARIABLE_MISSING, { template, variable }, `Provide a value for the '${variable}' variable in the build context.`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
@@ -77,18 +77,73 @@ export interface SearchOptions {
|
|
|
77
77
|
/** Maximum number of matches to return */
|
|
78
78
|
maxResults?: number;
|
|
79
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Options for listing directory contents.
|
|
82
|
+
*/
|
|
83
|
+
export interface ListDirectoryOptions {
|
|
84
|
+
/** Additional glob patterns to ignore (merged with defaults) */
|
|
85
|
+
ignore?: string[];
|
|
86
|
+
/** Maximum number of files to return (default: 100) */
|
|
87
|
+
maxResults?: number;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Entry in directory listing.
|
|
91
|
+
*/
|
|
92
|
+
export interface DirectoryEntry {
|
|
93
|
+
/** Whether this is a directory */
|
|
94
|
+
isDirectory: boolean;
|
|
95
|
+
/** Entry name (file or directory name, not full path) */
|
|
96
|
+
name: string;
|
|
97
|
+
/** Relative path from the listed directory */
|
|
98
|
+
path: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Result of a directory listing operation.
|
|
102
|
+
*/
|
|
103
|
+
export interface ListDirectoryResult {
|
|
104
|
+
/** Total number of entries found */
|
|
105
|
+
count: number;
|
|
106
|
+
/** Array of directory entries */
|
|
107
|
+
entries: DirectoryEntry[];
|
|
108
|
+
/** Formatted tree output string */
|
|
109
|
+
tree: string;
|
|
110
|
+
/** Whether results were truncated */
|
|
111
|
+
truncated: boolean;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Attachment data for binary files (images, PDFs).
|
|
115
|
+
* Used to return base64-encoded content for multimodal LLM consumption.
|
|
116
|
+
*/
|
|
117
|
+
export interface FileAttachment {
|
|
118
|
+
/** Base64-encoded file content */
|
|
119
|
+
base64: string;
|
|
120
|
+
/** Original file name */
|
|
121
|
+
fileName: string;
|
|
122
|
+
/** MIME type (e.g., 'image/png', 'application/pdf') */
|
|
123
|
+
mimeType: string;
|
|
124
|
+
}
|
|
80
125
|
/**
|
|
81
126
|
* Result of a file read operation.
|
|
82
127
|
*/
|
|
83
128
|
export interface FileContent {
|
|
129
|
+
/** Attachment data for binary files (images, PDFs) */
|
|
130
|
+
attachment?: FileAttachment;
|
|
84
131
|
/** File content as string */
|
|
85
132
|
content: string;
|
|
86
133
|
/** Character encoding used */
|
|
87
134
|
encoding: string;
|
|
135
|
+
/** Formatted content with line numbers (00001| content format) */
|
|
136
|
+
formattedContent: string;
|
|
88
137
|
/** Total number of lines in the returned content */
|
|
89
138
|
lines: number;
|
|
139
|
+
/** Human-readable message about file status (truncation info, etc.) */
|
|
140
|
+
message: string;
|
|
141
|
+
/** Preview of content (first 20 lines) for UI display */
|
|
142
|
+
preview?: string;
|
|
90
143
|
/** File size in bytes */
|
|
91
144
|
size: number;
|
|
145
|
+
/** Total lines in the entire file */
|
|
146
|
+
totalLines: number;
|
|
92
147
|
/** Whether content was truncated due to size/line limits */
|
|
93
148
|
truncated: boolean;
|
|
94
149
|
}
|
|
@@ -161,6 +216,8 @@ export interface SearchMatch {
|
|
|
161
216
|
line: string;
|
|
162
217
|
/** Line number (1-based) */
|
|
163
218
|
lineNumber: number;
|
|
219
|
+
/** File modification time in milliseconds (for sorting by recency) */
|
|
220
|
+
mtime?: number;
|
|
164
221
|
}
|
|
165
222
|
/**
|
|
166
223
|
* Result of a content search operation.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Error Codes
|
|
3
|
+
*
|
|
4
|
+
* Centralized error codes for LLM-related operations.
|
|
5
|
+
* Following Dexto's pattern for typed error handling.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* LLM-specific error codes.
|
|
9
|
+
*/
|
|
10
|
+
export declare const LLMErrorCode: {
|
|
11
|
+
readonly API_KEY_INVALID: "LLM_API_KEY_INVALID";
|
|
12
|
+
readonly API_KEY_MISSING: "LLM_API_KEY_MISSING";
|
|
13
|
+
readonly BASE_URL_INVALID: "LLM_BASE_URL_INVALID";
|
|
14
|
+
readonly BASE_URL_MISSING: "LLM_BASE_URL_MISSING";
|
|
15
|
+
readonly COMPRESSION_FAILED: "LLM_COMPRESSION_FAILED";
|
|
16
|
+
readonly CONTEXT_OVERFLOW: "LLM_CONTEXT_OVERFLOW";
|
|
17
|
+
readonly GENERATION_FAILED: "LLM_GENERATION_FAILED";
|
|
18
|
+
readonly INPUT_FILE_UNSUPPORTED: "LLM_INPUT_FILE_UNSUPPORTED";
|
|
19
|
+
readonly INPUT_IMAGE_UNSUPPORTED: "LLM_INPUT_IMAGE_UNSUPPORTED";
|
|
20
|
+
readonly INPUT_TEXT_INVALID: "LLM_INPUT_TEXT_INVALID";
|
|
21
|
+
readonly MODEL_INCOMPATIBLE: "LLM_MODEL_INCOMPATIBLE";
|
|
22
|
+
readonly MODEL_UNKNOWN: "LLM_MODEL_UNKNOWN";
|
|
23
|
+
readonly PROVIDER_UNSUPPORTED: "LLM_PROVIDER_UNSUPPORTED";
|
|
24
|
+
readonly RATE_LIMIT_EXCEEDED: "LLM_RATE_LIMIT_EXCEEDED";
|
|
25
|
+
readonly REQUEST_INVALID_SCHEMA: "LLM_REQUEST_INVALID_SCHEMA";
|
|
26
|
+
readonly SWITCH_FAILED: "LLM_SWITCH_FAILED";
|
|
27
|
+
readonly SWITCH_INPUT_MISSING: "LLM_SWITCH_INPUT_MISSING";
|
|
28
|
+
readonly TOKENS_EXCEEDED: "LLM_TOKENS_EXCEEDED";
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Type for LLM error codes.
|
|
32
|
+
*/
|
|
33
|
+
export type LLMErrorCodeType = (typeof LLMErrorCode)[keyof typeof LLMErrorCode];
|
|
34
|
+
/**
|
|
35
|
+
* Error scope for categorizing errors.
|
|
36
|
+
*/
|
|
37
|
+
export declare const ErrorScope: {
|
|
38
|
+
readonly CONFIG: "config";
|
|
39
|
+
readonly LLM: "llm";
|
|
40
|
+
readonly VALIDATION: "validation";
|
|
41
|
+
};
|
|
42
|
+
export type ErrorScopeType = (typeof ErrorScope)[keyof typeof ErrorScope];
|
|
43
|
+
/**
|
|
44
|
+
* Error type for categorizing error severity.
|
|
45
|
+
*/
|
|
46
|
+
export declare const ErrorType: {
|
|
47
|
+
readonly SYSTEM: "system";
|
|
48
|
+
readonly TRANSIENT: "transient";
|
|
49
|
+
readonly USER: "user";
|
|
50
|
+
};
|
|
51
|
+
export type ErrorTypeValue = (typeof ErrorType)[keyof typeof ErrorType];
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Error Codes
|
|
3
|
+
*
|
|
4
|
+
* Centralized error codes for LLM-related operations.
|
|
5
|
+
* Following Dexto's pattern for typed error handling.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* LLM-specific error codes.
|
|
9
|
+
*/
|
|
10
|
+
export const LLMErrorCode = {
|
|
11
|
+
// Configuration errors
|
|
12
|
+
API_KEY_INVALID: 'LLM_API_KEY_INVALID',
|
|
13
|
+
API_KEY_MISSING: 'LLM_API_KEY_MISSING',
|
|
14
|
+
BASE_URL_INVALID: 'LLM_BASE_URL_INVALID',
|
|
15
|
+
BASE_URL_MISSING: 'LLM_BASE_URL_MISSING',
|
|
16
|
+
// Context errors
|
|
17
|
+
COMPRESSION_FAILED: 'LLM_COMPRESSION_FAILED',
|
|
18
|
+
CONTEXT_OVERFLOW: 'LLM_CONTEXT_OVERFLOW',
|
|
19
|
+
// Operation errors
|
|
20
|
+
GENERATION_FAILED: 'LLM_GENERATION_FAILED',
|
|
21
|
+
// Input validation errors
|
|
22
|
+
INPUT_FILE_UNSUPPORTED: 'LLM_INPUT_FILE_UNSUPPORTED',
|
|
23
|
+
INPUT_IMAGE_UNSUPPORTED: 'LLM_INPUT_IMAGE_UNSUPPORTED',
|
|
24
|
+
INPUT_TEXT_INVALID: 'LLM_INPUT_TEXT_INVALID',
|
|
25
|
+
// Model errors
|
|
26
|
+
MODEL_INCOMPATIBLE: 'LLM_MODEL_INCOMPATIBLE',
|
|
27
|
+
MODEL_UNKNOWN: 'LLM_MODEL_UNKNOWN',
|
|
28
|
+
PROVIDER_UNSUPPORTED: 'LLM_PROVIDER_UNSUPPORTED',
|
|
29
|
+
// Limit errors
|
|
30
|
+
RATE_LIMIT_EXCEEDED: 'LLM_RATE_LIMIT_EXCEEDED',
|
|
31
|
+
REQUEST_INVALID_SCHEMA: 'LLM_REQUEST_INVALID_SCHEMA',
|
|
32
|
+
SWITCH_FAILED: 'LLM_SWITCH_FAILED',
|
|
33
|
+
SWITCH_INPUT_MISSING: 'LLM_SWITCH_INPUT_MISSING',
|
|
34
|
+
TOKENS_EXCEEDED: 'LLM_TOKENS_EXCEEDED',
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Error scope for categorizing errors.
|
|
38
|
+
*/
|
|
39
|
+
export const ErrorScope = {
|
|
40
|
+
CONFIG: 'config',
|
|
41
|
+
LLM: 'llm',
|
|
42
|
+
VALIDATION: 'validation',
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Error type for categorizing error severity.
|
|
46
|
+
*/
|
|
47
|
+
export const ErrorType = {
|
|
48
|
+
SYSTEM: 'system', // System/infrastructure error
|
|
49
|
+
TRANSIENT: 'transient', // Temporary error (retry may help)
|
|
50
|
+
USER: 'user', // User-correctable error
|
|
51
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Domain Module
|
|
3
|
+
*
|
|
4
|
+
* Exports types, registry, and utilities for LLM provider abstraction.
|
|
5
|
+
*/
|
|
6
|
+
export { ErrorScope, type ErrorScopeType, ErrorType, type ErrorTypeValue, LLMErrorCode, type LLMErrorCodeType, } from './error-codes.js';
|
|
7
|
+
export { acceptsAnyModel, DEFAULT_CHARS_PER_TOKEN, DEFAULT_MAX_INPUT_TOKENS, getCharsPerToken, getDefaultModelForProvider, getEffectiveMaxInputTokens, getMaxInputTokensForModel, getModelCapabilities, getModelInfo, getModelInfoWithFallback, getProviderFromModel, getSupportedFileTypesForModel, getSupportedModels, isValidProviderModel, LLM_REGISTRY, modelSupportsFileType, } from './registry.js';
|
|
8
|
+
export { type LLMConfig, LLMConfigBaseSchema, LLMConfigSchema, type LLMUpdates, LLMUpdatesSchema, safeParseLLMConfig, type ValidatedLLMConfig, validateLLMConfig, validateLLMUpdates, } from './schemas.js';
|
|
9
|
+
export { getAllowedMimeTypes, getFileTypeFromMimeType, isSupportedMimeType, LLM_PROVIDERS, type LLMContext, type LLMProvider, type LLMTokenUsage, MIME_TYPE_TO_FILE_TYPE, type ModelCapabilities, type ModelInfo, type ProviderInfo, SUPPORTED_FILE_TYPES, type SupportedFileType, } from './types.js';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Domain Module
|
|
3
|
+
*
|
|
4
|
+
* Exports types, registry, and utilities for LLM provider abstraction.
|
|
5
|
+
*/
|
|
6
|
+
// Error Codes
|
|
7
|
+
export { ErrorScope, ErrorType, LLMErrorCode, } from './error-codes.js';
|
|
8
|
+
// Registry
|
|
9
|
+
export { acceptsAnyModel, DEFAULT_CHARS_PER_TOKEN, DEFAULT_MAX_INPUT_TOKENS, getCharsPerToken, getDefaultModelForProvider, getEffectiveMaxInputTokens, getMaxInputTokensForModel, getModelCapabilities, getModelInfo, getModelInfoWithFallback, getProviderFromModel, getSupportedFileTypesForModel, getSupportedModels, isValidProviderModel, LLM_REGISTRY, modelSupportsFileType, } from './registry.js';
|
|
10
|
+
// Schemas
|
|
11
|
+
export { LLMConfigBaseSchema, LLMConfigSchema, LLMUpdatesSchema, safeParseLLMConfig, validateLLMConfig, validateLLMUpdates, } from './schemas.js';
|
|
12
|
+
// Types
|
|
13
|
+
export { getAllowedMimeTypes, getFileTypeFromMimeType, isSupportedMimeType, LLM_PROVIDERS, MIME_TYPE_TO_FILE_TYPE, SUPPORTED_FILE_TYPES, } from './types.js';
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Model Registry - Single Source of Truth for Model Metadata.
|
|
3
|
+
*
|
|
4
|
+
* This registry provides centralized model information including:
|
|
5
|
+
* - Context window sizes (maxInputTokens)
|
|
6
|
+
* - Character-per-token ratios for estimation
|
|
7
|
+
* - Supported file types for multimodal input
|
|
8
|
+
* - Model capabilities
|
|
9
|
+
*
|
|
10
|
+
* Following patterns from Dexto's LLM registry.
|
|
11
|
+
*/
|
|
12
|
+
import { type LLMProvider, type ModelCapabilities, type ModelInfo, type ProviderInfo, type SupportedFileType } from './types.js';
|
|
13
|
+
/** Default fallback for unknown models */
|
|
14
|
+
export declare const DEFAULT_MAX_INPUT_TOKENS = 128000;
|
|
15
|
+
export declare const DEFAULT_CHARS_PER_TOKEN = 4;
|
|
16
|
+
/**
|
|
17
|
+
* LLM Model Registry
|
|
18
|
+
*
|
|
19
|
+
* IMPORTANT: supportedFileTypes is the SINGLE SOURCE OF TRUTH for file upload capabilities:
|
|
20
|
+
* - Empty array [] = Model does NOT support file uploads
|
|
21
|
+
* - Specific types ['image', 'pdf'] = Model supports ONLY those file types
|
|
22
|
+
*/
|
|
23
|
+
export declare const LLM_REGISTRY: Record<LLMProvider, ProviderInfo>;
|
|
24
|
+
/**
|
|
25
|
+
* Get model information from the registry.
|
|
26
|
+
* @param provider - LLM provider
|
|
27
|
+
* @param model - Model name
|
|
28
|
+
* @returns ModelInfo or undefined if not found
|
|
29
|
+
*/
|
|
30
|
+
export declare function getModelInfo(provider: LLMProvider, model: string): ModelInfo | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Get model info with fallback for unknown models.
|
|
33
|
+
* @param provider - LLM provider
|
|
34
|
+
* @param model - Model name
|
|
35
|
+
* @returns ModelInfo (falls back to default values for unknown models)
|
|
36
|
+
*/
|
|
37
|
+
export declare function getModelInfoWithFallback(provider: LLMProvider, model: string): ModelInfo;
|
|
38
|
+
/**
|
|
39
|
+
* Get characters per token ratio for a model.
|
|
40
|
+
* @param provider - LLM provider
|
|
41
|
+
* @param model - Model name
|
|
42
|
+
* @returns Characters per token ratio
|
|
43
|
+
*/
|
|
44
|
+
export declare function getCharsPerToken(provider: LLMProvider, model: string): number;
|
|
45
|
+
/**
|
|
46
|
+
* Get maximum input tokens for a model.
|
|
47
|
+
* @param provider - LLM provider
|
|
48
|
+
* @param model - Model name
|
|
49
|
+
* @returns Maximum input tokens
|
|
50
|
+
*/
|
|
51
|
+
export declare function getMaxInputTokensForModel(provider: LLMProvider, model: string): number;
|
|
52
|
+
/**
|
|
53
|
+
* Check if a model is valid for a provider.
|
|
54
|
+
* @param provider - LLM provider
|
|
55
|
+
* @param model - Model name
|
|
56
|
+
* @returns true if the model is in the registry
|
|
57
|
+
*/
|
|
58
|
+
export declare function isValidProviderModel(provider: LLMProvider, model: string): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Get supported models for a provider.
|
|
61
|
+
* @param provider - LLM provider
|
|
62
|
+
* @returns Array of model names
|
|
63
|
+
*/
|
|
64
|
+
export declare function getSupportedModels(provider: LLMProvider): string[];
|
|
65
|
+
/**
|
|
66
|
+
* Get the default model for a provider.
|
|
67
|
+
* @param provider - LLM provider
|
|
68
|
+
* @returns Default model name
|
|
69
|
+
*/
|
|
70
|
+
export declare function getDefaultModelForProvider(provider: LLMProvider): string;
|
|
71
|
+
/**
|
|
72
|
+
* Infer provider from model name.
|
|
73
|
+
* @param model - Model name
|
|
74
|
+
* @returns LLMProvider or undefined if not found
|
|
75
|
+
*/
|
|
76
|
+
export declare function getProviderFromModel(model: string): LLMProvider | undefined;
|
|
77
|
+
/**
|
|
78
|
+
* Get supported file types for a model.
|
|
79
|
+
* @param provider - LLM provider
|
|
80
|
+
* @param model - Model name
|
|
81
|
+
* @returns Array of supported file types
|
|
82
|
+
*/
|
|
83
|
+
export declare function getSupportedFileTypesForModel(provider: LLMProvider, model: string): SupportedFileType[];
|
|
84
|
+
/**
|
|
85
|
+
* Check if a model supports a specific file type.
|
|
86
|
+
* @param provider - LLM provider
|
|
87
|
+
* @param model - Model name
|
|
88
|
+
* @param fileType - File type to check
|
|
89
|
+
* @returns true if the model supports the file type
|
|
90
|
+
*/
|
|
91
|
+
export declare function modelSupportsFileType(provider: LLMProvider, model: string, fileType: SupportedFileType): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Get model capabilities.
|
|
94
|
+
* @param provider - LLM provider
|
|
95
|
+
* @param model - Model name
|
|
96
|
+
* @returns ModelCapabilities
|
|
97
|
+
*/
|
|
98
|
+
export declare function getModelCapabilities(provider: LLMProvider, model: string): ModelCapabilities;
|
|
99
|
+
/**
|
|
100
|
+
* Get effective max input tokens considering config override.
|
|
101
|
+
* @param provider - LLM provider
|
|
102
|
+
* @param model - Model name
|
|
103
|
+
* @param configuredMax - Optional configured max from user
|
|
104
|
+
* @returns Effective max input tokens (min of model limit and configured limit)
|
|
105
|
+
*/
|
|
106
|
+
export declare function getEffectiveMaxInputTokens(provider: LLMProvider, model: string, configuredMax?: number): number;
|
|
107
|
+
/**
|
|
108
|
+
* Check if OpenRouter accepts any model (custom models).
|
|
109
|
+
* OpenRouter can route to many models not in our registry.
|
|
110
|
+
* @param provider - LLM provider
|
|
111
|
+
* @returns true if provider accepts arbitrary models
|
|
112
|
+
*/
|
|
113
|
+
export declare function acceptsAnyModel(provider: LLMProvider): boolean;
|