byterover-cli 0.2.1 → 0.3.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 +56 -56
- package/bin/dev.js +1 -1
- package/dist/commands/cipher-agent/run.d.ts +111 -0
- package/dist/commands/cipher-agent/run.js +493 -0
- package/dist/commands/cipher-agent/set-prompt.d.ts +14 -0
- package/dist/commands/cipher-agent/set-prompt.js +53 -0
- package/dist/commands/cipher-agent/show-prompt.d.ts +11 -0
- package/dist/commands/cipher-agent/show-prompt.js +48 -0
- package/dist/commands/clear.d.ts +6 -0
- package/dist/commands/clear.js +36 -15
- package/dist/commands/curate.d.ts +74 -0
- package/dist/commands/curate.js +396 -0
- package/dist/commands/foo.d.ts +12 -0
- package/dist/commands/foo.js +61 -0
- package/dist/commands/gen-rules.d.ts +3 -0
- package/dist/commands/gen-rules.js +39 -20
- package/dist/commands/init.d.ts +48 -3
- package/dist/commands/init.js +242 -70
- package/dist/commands/login.js +9 -4
- package/dist/commands/pull.d.ts +33 -0
- package/dist/commands/pull.js +115 -0
- package/dist/commands/push.d.ts +13 -13
- package/dist/commands/push.js +81 -101
- package/dist/commands/query.d.ts +63 -0
- package/dist/commands/query.js +349 -0
- package/dist/commands/space/list.d.ts +5 -2
- package/dist/commands/space/list.js +60 -56
- package/dist/commands/space/switch.d.ts +16 -0
- package/dist/commands/space/switch.js +102 -53
- package/dist/commands/status.d.ts +5 -2
- package/dist/commands/status.js +43 -33
- package/dist/commands/watch.d.ts +23 -0
- package/dist/commands/watch.js +171 -0
- package/dist/config/auth.config.js +14 -2
- package/dist/config/context-tree-domains.d.ts +12 -0
- package/dist/config/context-tree-domains.js +29 -0
- package/dist/config/environment.d.ts +6 -0
- package/dist/config/environment.js +9 -2
- package/dist/constants.d.ts +5 -0
- package/dist/constants.js +6 -0
- package/dist/core/domain/cipher/agent/agent-state-machine.d.ts +128 -0
- package/dist/core/domain/cipher/agent/agent-state-machine.js +183 -0
- package/dist/core/domain/cipher/agent/agent-state.d.ts +77 -0
- package/dist/core/domain/cipher/agent/agent-state.js +59 -0
- package/dist/core/domain/cipher/agent/index.d.ts +7 -0
- package/dist/core/domain/cipher/agent/index.js +7 -0
- package/dist/core/domain/cipher/agent-events/index.d.ts +8 -0
- package/dist/core/domain/cipher/agent-events/index.js +7 -0
- package/dist/core/domain/cipher/agent-events/types.d.ts +419 -0
- package/dist/core/domain/cipher/agent-events/types.js +42 -0
- package/dist/core/domain/cipher/blob/types.d.ts +108 -0
- package/dist/core/domain/cipher/errors/blob-error.d.ts +36 -0
- package/dist/core/domain/cipher/errors/blob-error.js +68 -0
- package/dist/core/domain/cipher/errors/file-system-error.d.ts +211 -0
- package/dist/core/domain/cipher/errors/file-system-error.js +291 -0
- package/dist/core/domain/cipher/errors/llm-error.d.ts +120 -0
- package/dist/core/domain/cipher/errors/llm-error.js +161 -0
- package/dist/core/domain/cipher/errors/memory-error.d.ts +35 -0
- package/dist/core/domain/cipher/errors/memory-error.js +62 -0
- package/dist/core/domain/cipher/errors/process-error-code.d.ts +97 -0
- package/dist/core/domain/cipher/errors/process-error-code.js +98 -0
- package/dist/core/domain/cipher/errors/process-error.d.ts +135 -0
- package/dist/core/domain/cipher/errors/process-error.js +173 -0
- package/dist/core/domain/cipher/errors/session-error.d.ts +56 -0
- package/dist/core/domain/cipher/errors/session-error.js +74 -0
- package/dist/core/domain/cipher/errors/tool-error.d.ts +57 -0
- package/dist/core/domain/cipher/errors/tool-error.js +81 -0
- package/dist/core/domain/cipher/file-system/types.d.ts +203 -0
- package/dist/core/domain/cipher/memory/types.d.ts +102 -0
- package/dist/core/domain/cipher/memory/types.js +4 -0
- package/dist/core/domain/cipher/parsed-interaction.d.ts +47 -0
- package/dist/core/domain/cipher/parsed-interaction.js +25 -0
- package/dist/core/domain/cipher/process/types.d.ts +286 -0
- package/dist/core/domain/cipher/session/types.d.ts +54 -0
- package/dist/core/domain/cipher/storage/history-types.d.ts +38 -0
- package/dist/core/domain/cipher/system-prompt/types.d.ts +131 -0
- package/dist/core/domain/cipher/todos/index.d.ts +4 -0
- package/dist/core/domain/cipher/todos/index.js +4 -0
- package/dist/core/domain/cipher/todos/types.d.ts +57 -0
- package/dist/core/domain/cipher/todos/types.js +5 -0
- package/dist/core/domain/cipher/tools/constants.d.ts +28 -0
- package/dist/core/domain/cipher/tools/constants.js +24 -0
- package/dist/core/domain/cipher/tools/tool-error.d.ts +183 -0
- package/dist/core/domain/cipher/tools/tool-error.js +246 -0
- package/dist/core/domain/cipher/tools/types.d.ts +145 -0
- package/dist/core/domain/entities/brv-config.d.ts +42 -6
- package/dist/core/domain/entities/brv-config.js +115 -17
- package/dist/core/domain/entities/cogit-push-context.d.ts +38 -0
- package/dist/core/domain/entities/cogit-push-context.js +91 -0
- package/dist/core/domain/entities/cogit-push-response.d.ts +20 -0
- package/dist/core/domain/entities/cogit-push-response.js +31 -0
- package/dist/core/domain/entities/cogit-snapshot-author.d.ts +24 -0
- package/dist/core/domain/entities/cogit-snapshot-author.js +39 -0
- package/dist/core/domain/entities/cogit-snapshot-file.d.ts +34 -0
- package/dist/core/domain/entities/cogit-snapshot-file.js +59 -0
- package/dist/core/domain/entities/cogit-snapshot.d.ts +31 -0
- package/dist/core/domain/entities/cogit-snapshot.js +58 -0
- package/dist/core/domain/entities/context-tree-index.d.ts +26 -0
- package/dist/core/domain/entities/context-tree-index.js +27 -0
- package/dist/core/domain/entities/context-tree-snapshot.d.ts +56 -0
- package/dist/core/domain/entities/context-tree-snapshot.js +83 -0
- package/dist/core/domain/entities/event.d.ts +1 -1
- package/dist/core/domain/entities/event.js +3 -1
- package/dist/core/domain/entities/parser.d.ts +567 -0
- package/dist/core/domain/entities/parser.js +10 -0
- package/dist/core/domain/entities/playbook.d.ts +2 -23
- package/dist/core/domain/entities/playbook.js +2 -70
- package/dist/core/domain/errors/brv-config-version-error.d.ts +16 -0
- package/dist/core/domain/errors/brv-config-version-error.js +21 -0
- package/dist/core/domain/knowledge/directory-manager.d.ts +80 -0
- package/dist/core/domain/knowledge/directory-manager.js +145 -0
- package/dist/core/domain/knowledge/markdown-writer.d.ts +18 -0
- package/dist/core/domain/knowledge/markdown-writer.js +18 -0
- package/dist/core/domain/knowledge/relation-parser.d.ts +90 -0
- package/dist/core/domain/knowledge/relation-parser.js +131 -0
- package/dist/core/interfaces/cipher/cipher-services.d.ts +71 -0
- package/dist/core/interfaces/cipher/cipher-services.js +1 -0
- package/dist/core/interfaces/cipher/i-blob-storage.d.ts +78 -0
- package/dist/core/interfaces/cipher/i-blob-storage.js +1 -0
- package/dist/core/interfaces/cipher/i-chat-session.d.ts +62 -0
- package/dist/core/interfaces/cipher/i-chat-session.js +1 -0
- package/dist/core/interfaces/cipher/i-cipher-agent.d.ts +88 -0
- package/dist/core/interfaces/cipher/i-cipher-agent.js +1 -0
- package/dist/core/interfaces/cipher/i-coding-agent-log-parser.d.ts +20 -0
- package/dist/core/interfaces/cipher/i-coding-agent-log-parser.js +1 -0
- package/dist/core/interfaces/cipher/i-coding-agent-log-watcher.d.ts +31 -0
- package/dist/core/interfaces/cipher/i-coding-agent-log-watcher.js +1 -0
- package/dist/core/interfaces/cipher/i-content-generator.d.ts +120 -0
- package/dist/core/interfaces/cipher/i-content-generator.js +12 -0
- package/dist/core/interfaces/cipher/i-event-emitter.d.ts +76 -0
- package/dist/core/interfaces/cipher/i-event-emitter.js +1 -0
- package/dist/core/interfaces/cipher/i-file-system.d.ts +68 -0
- package/dist/core/interfaces/cipher/i-file-system.js +1 -0
- package/dist/core/interfaces/cipher/i-history-storage.d.ts +53 -0
- package/dist/core/interfaces/cipher/i-history-storage.js +1 -0
- package/dist/core/interfaces/cipher/i-llm-provider.d.ts +14 -0
- package/dist/core/interfaces/cipher/i-llm-provider.js +1 -0
- package/dist/core/interfaces/cipher/i-llm-service.d.ts +62 -0
- package/dist/core/interfaces/cipher/i-llm-service.js +1 -0
- package/dist/core/interfaces/cipher/i-logger.d.ts +78 -0
- package/dist/core/interfaces/cipher/i-logger.js +28 -0
- package/dist/core/interfaces/cipher/i-message-formatter.d.ts +44 -0
- package/dist/core/interfaces/cipher/i-message-formatter.js +1 -0
- package/dist/core/interfaces/cipher/i-policy-engine.d.ts +102 -0
- package/dist/core/interfaces/cipher/i-policy-engine.js +9 -0
- package/dist/core/interfaces/cipher/i-process-service.d.ts +65 -0
- package/dist/core/interfaces/cipher/i-process-service.js +1 -0
- package/dist/core/interfaces/cipher/i-system-prompt-contributor.d.ts +25 -0
- package/dist/core/interfaces/cipher/i-system-prompt-contributor.js +1 -0
- package/dist/core/interfaces/cipher/i-tokenizer.d.ts +15 -0
- package/dist/core/interfaces/cipher/i-tokenizer.js +1 -0
- package/dist/core/interfaces/cipher/i-tool-provider.d.ts +64 -0
- package/dist/core/interfaces/cipher/i-tool-provider.js +1 -0
- package/dist/core/interfaces/cipher/i-tool-scheduler.d.ts +103 -0
- package/dist/core/interfaces/cipher/i-tool-scheduler.js +11 -0
- package/dist/core/interfaces/cipher/llm-types.d.ts +46 -0
- package/dist/core/interfaces/cipher/llm-types.js +5 -0
- package/dist/core/interfaces/cipher/message-types.d.ts +118 -0
- package/dist/core/interfaces/cipher/message-types.js +5 -0
- package/dist/core/interfaces/cipher/tokenizer-types.d.ts +11 -0
- package/dist/core/interfaces/cipher/tokenizer-types.js +14 -0
- package/dist/core/interfaces/i-cogit-pull-service.d.ts +24 -0
- package/dist/core/interfaces/i-cogit-pull-service.js +1 -0
- package/dist/core/interfaces/i-cogit-push-service.d.ts +27 -0
- package/dist/core/interfaces/i-cogit-push-service.js +1 -0
- package/dist/core/interfaces/i-context-file-reader.d.ts +32 -0
- package/dist/core/interfaces/i-context-file-reader.js +1 -0
- package/dist/core/interfaces/i-context-tree-service.d.ts +21 -0
- package/dist/core/interfaces/i-context-tree-service.js +1 -0
- package/dist/core/interfaces/i-context-tree-snapshot-service.d.ts +36 -0
- package/dist/core/interfaces/i-context-tree-snapshot-service.js +1 -0
- package/dist/core/interfaces/i-context-tree-writer-service.d.ts +32 -0
- package/dist/core/interfaces/i-context-tree-writer-service.js +1 -0
- package/dist/core/interfaces/i-file-watcher-service.d.ts +41 -0
- package/dist/core/interfaces/i-file-watcher-service.js +1 -0
- package/dist/core/interfaces/parser/i-clean-parser-service.d.ts +18 -0
- package/dist/core/interfaces/parser/i-clean-parser-service.js +1 -0
- package/dist/core/interfaces/parser/i-raw-parser-service.d.ts +17 -0
- package/dist/core/interfaces/parser/i-raw-parser-service.js +1 -0
- package/dist/core/interfaces/parser/i-session-normalizer.d.ts +56 -0
- package/dist/core/interfaces/parser/i-session-normalizer.js +1 -0
- package/dist/hooks/command_not_found/handle-invalid-commands.d.ts +7 -0
- package/dist/hooks/command_not_found/handle-invalid-commands.js +32 -0
- package/dist/hooks/error/clean-errors.d.ts +7 -0
- package/dist/hooks/error/clean-errors.js +50 -0
- package/dist/hooks/init/welcome.js +72 -1
- package/dist/hooks/prerun/validate-brv-config-version.d.ts +28 -0
- package/dist/hooks/prerun/validate-brv-config-version.js +43 -0
- package/dist/infra/cipher/agent-service-factory.d.ts +86 -0
- package/dist/infra/cipher/agent-service-factory.js +212 -0
- package/dist/infra/cipher/blob/blob-storage-factory.d.ts +13 -0
- package/dist/infra/cipher/blob/blob-storage-factory.js +14 -0
- package/dist/infra/cipher/blob/index.d.ts +10 -0
- package/dist/infra/cipher/blob/index.js +12 -0
- package/dist/infra/cipher/blob/migrations.d.ts +63 -0
- package/dist/infra/cipher/blob/migrations.js +148 -0
- package/dist/infra/cipher/blob/sqlite-blob-storage.d.ts +82 -0
- package/dist/infra/cipher/blob/sqlite-blob-storage.js +307 -0
- package/dist/infra/cipher/cipher-agent-state-manager.d.ts +63 -0
- package/dist/infra/cipher/cipher-agent-state-manager.js +108 -0
- package/dist/infra/cipher/cipher-agent.d.ts +182 -0
- package/dist/infra/cipher/cipher-agent.js +317 -0
- package/dist/infra/cipher/command-parser.d.ts +23 -0
- package/dist/infra/cipher/command-parser.js +85 -0
- package/dist/infra/cipher/display/todo-display.d.ts +23 -0
- package/dist/infra/cipher/display/todo-display.js +129 -0
- package/dist/infra/cipher/events/event-emitter.d.ts +137 -0
- package/dist/infra/cipher/events/event-emitter.js +158 -0
- package/dist/infra/cipher/exit-codes.d.ts +44 -0
- package/dist/infra/cipher/exit-codes.js +58 -0
- package/dist/infra/cipher/file-system/file-system-service.d.ts +105 -0
- package/dist/infra/cipher/file-system/file-system-service.js +641 -0
- package/dist/infra/cipher/file-system/gitignore-filter.d.ts +77 -0
- package/dist/infra/cipher/file-system/gitignore-filter.js +120 -0
- package/dist/infra/cipher/file-system/glob-utils.d.ts +60 -0
- package/dist/infra/cipher/file-system/glob-utils.js +120 -0
- package/dist/infra/cipher/file-system/path-validator.d.ts +69 -0
- package/dist/infra/cipher/file-system/path-validator.js +184 -0
- package/dist/infra/cipher/grpc/internal-llm-grpc-service.d.ts +149 -0
- package/dist/infra/cipher/grpc/internal-llm-grpc-service.js +364 -0
- package/dist/infra/cipher/grpc/internal-llm-grpc.proto +94 -0
- package/dist/infra/cipher/interactive-commands.d.ts +16 -0
- package/dist/infra/cipher/interactive-commands.js +198 -0
- package/dist/infra/cipher/interactive-loop.d.ts +24 -0
- package/dist/infra/cipher/interactive-loop.js +352 -0
- package/dist/infra/cipher/llm/context/async-mutex.d.ts +59 -0
- package/dist/infra/cipher/llm/context/async-mutex.js +92 -0
- package/dist/infra/cipher/llm/context/compression/index.d.ts +6 -0
- package/dist/infra/cipher/llm/context/compression/index.js +5 -0
- package/dist/infra/cipher/llm/context/compression/middle-removal.d.ts +40 -0
- package/dist/infra/cipher/llm/context/compression/middle-removal.js +76 -0
- package/dist/infra/cipher/llm/context/compression/oldest-removal.d.ts +38 -0
- package/dist/infra/cipher/llm/context/compression/oldest-removal.js +53 -0
- package/dist/infra/cipher/llm/context/compression/types.d.ts +36 -0
- package/dist/infra/cipher/llm/context/compression/types.js +1 -0
- package/dist/infra/cipher/llm/context/context-manager.d.ts +234 -0
- package/dist/infra/cipher/llm/context/context-manager.js +419 -0
- package/dist/infra/cipher/llm/context/index.d.ts +2 -0
- package/dist/infra/cipher/llm/context/index.js +2 -0
- package/dist/infra/cipher/llm/context/loop-detector.d.ts +125 -0
- package/dist/infra/cipher/llm/context/loop-detector.js +194 -0
- package/dist/infra/cipher/llm/context/utils.d.ts +17 -0
- package/dist/infra/cipher/llm/context/utils.js +89 -0
- package/dist/infra/cipher/llm/formatters/claude-formatter.d.ts +54 -0
- package/dist/infra/cipher/llm/formatters/claude-formatter.js +182 -0
- package/dist/infra/cipher/llm/formatters/gemini-formatter.d.ts +69 -0
- package/dist/infra/cipher/llm/formatters/gemini-formatter.js +253 -0
- package/dist/infra/cipher/llm/formatters/openrouter-formatter.d.ts +47 -0
- package/dist/infra/cipher/llm/formatters/openrouter-formatter.js +238 -0
- package/dist/infra/cipher/llm/generators/byterover-content-generator.d.ts +92 -0
- package/dist/infra/cipher/llm/generators/byterover-content-generator.js +211 -0
- package/dist/infra/cipher/llm/generators/index.d.ts +13 -0
- package/dist/infra/cipher/llm/generators/index.js +13 -0
- package/dist/infra/cipher/llm/generators/logging-content-generator.d.ts +104 -0
- package/dist/infra/cipher/llm/generators/logging-content-generator.js +182 -0
- package/dist/infra/cipher/llm/generators/openrouter-content-generator.d.ts +93 -0
- package/dist/infra/cipher/llm/generators/openrouter-content-generator.js +254 -0
- package/dist/infra/cipher/llm/generators/retryable-content-generator.d.ts +90 -0
- package/dist/infra/cipher/llm/generators/retryable-content-generator.js +157 -0
- package/dist/infra/cipher/llm/index.d.ts +9 -0
- package/dist/infra/cipher/llm/index.js +13 -0
- package/dist/infra/cipher/llm/internal-llm-service.d.ts +308 -0
- package/dist/infra/cipher/llm/internal-llm-service.js +724 -0
- package/dist/infra/cipher/llm/openrouter-llm-service.d.ts +183 -0
- package/dist/infra/cipher/llm/openrouter-llm-service.js +386 -0
- package/dist/infra/cipher/llm/response-validator.d.ts +89 -0
- package/dist/infra/cipher/llm/response-validator.js +157 -0
- package/dist/infra/cipher/llm/retry/index.d.ts +10 -0
- package/dist/infra/cipher/llm/retry/index.js +10 -0
- package/dist/infra/cipher/llm/retry/retry-policy.d.ts +74 -0
- package/dist/infra/cipher/llm/retry/retry-policy.js +146 -0
- package/dist/infra/cipher/llm/retry/retry-with-backoff.d.ts +113 -0
- package/dist/infra/cipher/llm/retry/retry-with-backoff.js +247 -0
- package/dist/infra/cipher/llm/thought-parser.d.ts +145 -0
- package/dist/infra/cipher/llm/thought-parser.js +190 -0
- package/dist/infra/cipher/llm/tokenizers/claude-tokenizer.d.ts +47 -0
- package/dist/infra/cipher/llm/tokenizers/claude-tokenizer.js +55 -0
- package/dist/infra/cipher/llm/tokenizers/default-tokenizer.d.ts +31 -0
- package/dist/infra/cipher/llm/tokenizers/default-tokenizer.js +38 -0
- package/dist/infra/cipher/llm/tokenizers/gemini-tokenizer.d.ts +37 -0
- package/dist/infra/cipher/llm/tokenizers/gemini-tokenizer.js +45 -0
- package/dist/infra/cipher/llm/tokenizers/openrouter-tokenizer.d.ts +29 -0
- package/dist/infra/cipher/llm/tokenizers/openrouter-tokenizer.js +37 -0
- package/dist/infra/cipher/llm/tool-output-processor.d.ts +117 -0
- package/dist/infra/cipher/llm/tool-output-processor.js +153 -0
- package/dist/infra/cipher/logger/console-logger.d.ts +42 -0
- package/dist/infra/cipher/logger/console-logger.js +63 -0
- package/dist/infra/cipher/logger/event-based-logger.d.ts +54 -0
- package/dist/infra/cipher/logger/event-based-logger.js +92 -0
- package/dist/infra/cipher/memory/index.d.ts +6 -0
- package/dist/infra/cipher/memory/index.js +7 -0
- package/dist/infra/cipher/memory/memory-manager.d.ts +136 -0
- package/dist/infra/cipher/memory/memory-manager.js +523 -0
- package/dist/infra/cipher/parsers/coding-agent-log-parser.d.ts +24 -0
- package/dist/infra/cipher/parsers/coding-agent-log-parser.js +51 -0
- package/dist/infra/cipher/process/command-validator.d.ts +59 -0
- package/dist/infra/cipher/process/command-validator.js +266 -0
- package/dist/infra/cipher/process/index.d.ts +8 -0
- package/dist/infra/cipher/process/index.js +8 -0
- package/dist/infra/cipher/process/process-service.d.ts +95 -0
- package/dist/infra/cipher/process/process-service.js +439 -0
- package/dist/infra/cipher/session/chat-session.d.ts +80 -0
- package/dist/infra/cipher/session/chat-session.js +165 -0
- package/dist/infra/cipher/session/index.d.ts +6 -0
- package/dist/infra/cipher/session/index.js +5 -0
- package/dist/infra/cipher/session/session-event-forwarder.d.ts +37 -0
- package/dist/infra/cipher/session/session-event-forwarder.js +83 -0
- package/dist/infra/cipher/session/session-manager.d.ts +109 -0
- package/dist/infra/cipher/session/session-manager.js +172 -0
- package/dist/infra/cipher/storage/blob-history-storage.d.ts +76 -0
- package/dist/infra/cipher/storage/blob-history-storage.js +178 -0
- package/dist/infra/cipher/system-prompt/simple-prompt-factory.d.ts +105 -0
- package/dist/infra/cipher/system-prompt/simple-prompt-factory.js +290 -0
- package/dist/infra/cipher/tools/core-tool-scheduler.d.ts +99 -0
- package/dist/infra/cipher/tools/core-tool-scheduler.js +161 -0
- package/dist/infra/cipher/tools/default-policy-rules.d.ts +26 -0
- package/dist/infra/cipher/tools/default-policy-rules.js +125 -0
- package/dist/infra/cipher/tools/implementations/bash-exec-tool.d.ts +12 -0
- package/dist/infra/cipher/tools/implementations/bash-exec-tool.js +93 -0
- package/dist/infra/cipher/tools/implementations/bash-output-tool.d.ts +12 -0
- package/dist/infra/cipher/tools/implementations/bash-output-tool.js +47 -0
- package/dist/infra/cipher/tools/implementations/create-knowledge-topic-tool.d.ts +11 -0
- package/dist/infra/cipher/tools/implementations/create-knowledge-topic-tool.js +142 -0
- package/dist/infra/cipher/tools/implementations/delete-memory-tool.d.ts +12 -0
- package/dist/infra/cipher/tools/implementations/delete-memory-tool.js +37 -0
- package/dist/infra/cipher/tools/implementations/detect-domains-tool.d.ts +7 -0
- package/dist/infra/cipher/tools/implementations/detect-domains-tool.js +73 -0
- package/dist/infra/cipher/tools/implementations/edit-file-tool.d.ts +13 -0
- package/dist/infra/cipher/tools/implementations/edit-file-tool.js +50 -0
- package/dist/infra/cipher/tools/implementations/edit-memory-tool.d.ts +13 -0
- package/dist/infra/cipher/tools/implementations/edit-memory-tool.js +53 -0
- package/dist/infra/cipher/tools/implementations/find-knowledge-topics-tool.d.ts +7 -0
- package/dist/infra/cipher/tools/implementations/find-knowledge-topics-tool.js +421 -0
- package/dist/infra/cipher/tools/implementations/glob-files-tool.d.ts +18 -0
- package/dist/infra/cipher/tools/implementations/glob-files-tool.js +70 -0
- package/dist/infra/cipher/tools/implementations/grep-content-tool.d.ts +12 -0
- package/dist/infra/cipher/tools/implementations/grep-content-tool.js +77 -0
- package/dist/infra/cipher/tools/implementations/kill-process-tool.d.ts +12 -0
- package/dist/infra/cipher/tools/implementations/kill-process-tool.js +55 -0
- package/dist/infra/cipher/tools/implementations/list-memories-tool.d.ts +12 -0
- package/dist/infra/cipher/tools/implementations/list-memories-tool.js +63 -0
- package/dist/infra/cipher/tools/implementations/read-file-tool.d.ts +12 -0
- package/dist/infra/cipher/tools/implementations/read-file-tool.js +54 -0
- package/dist/infra/cipher/tools/implementations/read-memory-tool.d.ts +12 -0
- package/dist/infra/cipher/tools/implementations/read-memory-tool.js +39 -0
- package/dist/infra/cipher/tools/implementations/search-history-tool.d.ts +10 -0
- package/dist/infra/cipher/tools/implementations/search-history-tool.js +36 -0
- package/dist/infra/cipher/tools/implementations/write-file-tool.d.ts +12 -0
- package/dist/infra/cipher/tools/implementations/write-file-tool.js +52 -0
- package/dist/infra/cipher/tools/implementations/write-memory-tool.d.ts +13 -0
- package/dist/infra/cipher/tools/implementations/write-memory-tool.js +52 -0
- package/dist/infra/cipher/tools/implementations/write-todos-tool.d.ts +10 -0
- package/dist/infra/cipher/tools/implementations/write-todos-tool.js +165 -0
- package/dist/infra/cipher/tools/index.d.ts +18 -0
- package/dist/infra/cipher/tools/index.js +19 -0
- package/dist/infra/cipher/tools/policy-engine.d.ts +80 -0
- package/dist/infra/cipher/tools/policy-engine.js +110 -0
- package/dist/infra/cipher/tools/tool-invocation-queue.d.ts +191 -0
- package/dist/infra/cipher/tools/tool-invocation-queue.js +254 -0
- package/dist/infra/cipher/tools/tool-invocation.d.ts +216 -0
- package/dist/infra/cipher/tools/tool-invocation.js +294 -0
- package/dist/infra/cipher/tools/tool-manager.d.ts +135 -0
- package/dist/infra/cipher/tools/tool-manager.js +209 -0
- package/dist/infra/cipher/tools/tool-markers.d.ts +48 -0
- package/dist/infra/cipher/tools/tool-markers.js +49 -0
- package/dist/infra/cipher/tools/tool-provider.d.ts +77 -0
- package/dist/infra/cipher/tools/tool-provider.js +196 -0
- package/dist/infra/cipher/tools/tool-registry.d.ts +52 -0
- package/dist/infra/cipher/tools/tool-registry.js +144 -0
- package/dist/infra/cipher/tools/utils/schema-converter.d.ts +10 -0
- package/dist/infra/cipher/tools/utils/schema-converter.js +29 -0
- package/dist/infra/cipher/validation/workspace-validator.d.ts +19 -0
- package/dist/infra/cipher/validation/workspace-validator.js +37 -0
- package/dist/infra/cipher/watcher/coding-agent-log-watcher.d.ts +14 -0
- package/dist/infra/cipher/watcher/coding-agent-log-watcher.js +55 -0
- package/dist/infra/cogit/context-tree-to-push-context-mapper.d.ts +21 -0
- package/dist/infra/cogit/context-tree-to-push-context-mapper.js +32 -0
- package/dist/infra/cogit/http-cogit-pull-service.d.ts +15 -0
- package/dist/infra/cogit/http-cogit-pull-service.js +30 -0
- package/dist/infra/cogit/http-cogit-push-service.d.ts +17 -0
- package/dist/infra/cogit/http-cogit-push-service.js +104 -0
- package/dist/infra/config/file-config-store.js +9 -3
- package/dist/infra/context-tree/file-context-file-reader.d.ts +14 -0
- package/dist/infra/context-tree/file-context-file-reader.js +46 -0
- package/dist/infra/context-tree/file-context-tree-service.d.ts +14 -0
- package/dist/infra/context-tree/file-context-tree-service.js +46 -0
- package/dist/infra/context-tree/file-context-tree-snapshot-service.d.ts +34 -0
- package/dist/infra/context-tree/file-context-tree-snapshot-service.js +117 -0
- package/dist/infra/context-tree/file-context-tree-writer-service.d.ts +22 -0
- package/dist/infra/context-tree/file-context-tree-writer-service.js +61 -0
- package/dist/infra/memory/http-memory-retrieval-service.js +2 -1
- package/dist/infra/memory/http-memory-storage-service.js +4 -3
- package/dist/infra/parsers/clean/clean-claude-service.d.ts +111 -0
- package/dist/infra/parsers/clean/clean-claude-service.js +271 -0
- package/dist/infra/parsers/clean/clean-codex-service.d.ts +231 -0
- package/dist/infra/parsers/clean/clean-codex-service.js +534 -0
- package/dist/infra/parsers/clean/clean-copilot-service.d.ts +255 -0
- package/dist/infra/parsers/clean/clean-copilot-service.js +729 -0
- package/dist/infra/parsers/clean/clean-cursor-service.d.ts +161 -0
- package/dist/infra/parsers/clean/clean-cursor-service.js +432 -0
- package/dist/infra/parsers/clean/clean-parser-service-factory.d.ts +54 -0
- package/dist/infra/parsers/clean/clean-parser-service-factory.js +80 -0
- package/dist/infra/parsers/clean/shared.d.ts +84 -0
- package/dist/infra/parsers/clean/shared.js +273 -0
- package/dist/infra/parsers/raw/raw-claude-service.d.ts +195 -0
- package/dist/infra/parsers/raw/raw-claude-service.js +548 -0
- package/dist/infra/parsers/raw/raw-codex-service.d.ts +313 -0
- package/dist/infra/parsers/raw/raw-codex-service.js +782 -0
- package/dist/infra/parsers/raw/raw-copilot-service.d.ts +196 -0
- package/dist/infra/parsers/raw/raw-copilot-service.js +558 -0
- package/dist/infra/parsers/raw/raw-cursor-service.d.ts +316 -0
- package/dist/infra/parsers/raw/raw-cursor-service.js +818 -0
- package/dist/infra/parsers/raw/raw-parser-service-factory.d.ts +54 -0
- package/dist/infra/parsers/raw/raw-parser-service-factory.js +81 -0
- package/dist/infra/space/http-space-service.js +2 -1
- package/dist/infra/team/http-team-service.js +2 -1
- package/dist/infra/user/http-user-service.js +2 -1
- package/dist/infra/watcher/file-watcher-service.d.ts +10 -0
- package/dist/infra/watcher/file-watcher-service.js +81 -0
- package/dist/infra/workspace/workspace-detector-service.d.ts +60 -0
- package/dist/infra/workspace/workspace-detector-service.js +165 -0
- package/dist/resources/prompts/curate-context-tree-curation.yml +48 -0
- package/dist/resources/prompts/modes/autonomous.yml +9 -0
- package/dist/resources/prompts/query-context-tree-retrieval.yml +49 -0
- package/dist/resources/prompts/reflection.yml +27 -0
- package/dist/resources/prompts/system-prompt.yml +82 -0
- package/dist/resources/prompts/tool-outputs.yml +30 -0
- package/dist/templates/README.md +6 -7
- package/dist/templates/sections/command-reference.md +40 -111
- package/dist/templates/sections/workflow.md +3 -30
- package/dist/utils/emoji-helpers.d.ts +38 -0
- package/dist/utils/emoji-helpers.js +42 -0
- package/dist/utils/error-handler.d.ts +51 -0
- package/dist/utils/error-handler.js +169 -0
- package/dist/utils/error-helpers.d.ts +30 -0
- package/dist/utils/error-helpers.js +47 -0
- package/dist/utils/file-helpers.d.ts +15 -0
- package/dist/utils/file-helpers.js +44 -0
- package/dist/utils/oclif-error-helpers.d.ts +40 -0
- package/dist/utils/oclif-error-helpers.js +46 -0
- package/dist/utils/tool-display-formatter.d.ts +53 -0
- package/dist/utils/tool-display-formatter.js +257 -0
- package/oclif.manifest.json +381 -141
- package/package.json +27 -6
- package/dist/commands/add.d.ts +0 -49
- package/dist/commands/add.js +0 -192
- package/dist/commands/complete.d.ts +0 -108
- package/dist/commands/complete.js +0 -340
- package/dist/commands/retrieve.d.ts +0 -26
- package/dist/commands/retrieve.js +0 -101
- package/dist/core/domain/entities/curator-output.d.ts +0 -14
- package/dist/core/domain/entities/curator-output.js +0 -23
- package/dist/core/domain/entities/delta-batch.d.ts +0 -30
- package/dist/core/domain/entities/delta-batch.js +0 -52
- package/dist/core/domain/entities/delta-operation.d.ts +0 -31
- package/dist/core/domain/entities/delta-operation.js +0 -50
- package/dist/core/domain/entities/executor-output.d.ts +0 -27
- package/dist/core/domain/entities/executor-output.js +0 -33
- package/dist/core/domain/entities/reflector-output.d.ts +0 -38
- package/dist/core/domain/entities/reflector-output.js +0 -44
- package/dist/core/interfaces/i-ace-prompt-builder.d.ts +0 -48
- package/dist/core/interfaces/i-bullet-content-store.d.ts +0 -36
- package/dist/core/interfaces/i-delta-store.d.ts +0 -15
- package/dist/core/interfaces/i-executor-output-store.d.ts +0 -14
- package/dist/core/interfaces/i-playbook-service.d.ts +0 -69
- package/dist/core/interfaces/i-playbook-store.d.ts +0 -38
- package/dist/core/interfaces/i-reflection-store.d.ts +0 -21
- package/dist/infra/ace/ace-file-utils.d.ts +0 -46
- package/dist/infra/ace/ace-file-utils.js +0 -83
- package/dist/infra/ace/ace-prompt-templates.d.ts +0 -13
- package/dist/infra/ace/ace-prompt-templates.js +0 -177
- package/dist/infra/ace/file-bullet-content-store.d.ts +0 -27
- package/dist/infra/ace/file-bullet-content-store.js +0 -89
- package/dist/infra/ace/file-delta-store.d.ts +0 -9
- package/dist/infra/ace/file-delta-store.js +0 -26
- package/dist/infra/ace/file-executor-output-store.d.ts +0 -9
- package/dist/infra/ace/file-executor-output-store.js +0 -26
- package/dist/infra/ace/file-playbook-store.d.ts +0 -29
- package/dist/infra/ace/file-playbook-store.js +0 -107
- package/dist/infra/ace/file-reflection-store.d.ts +0 -10
- package/dist/infra/ace/file-reflection-store.js +0 -55
- package/dist/infra/playbook/file-playbook-service.d.ts +0 -42
- package/dist/infra/playbook/file-playbook-service.js +0 -132
- /package/dist/core/{interfaces/i-ace-prompt-builder.js → domain/cipher/blob/types.js} +0 -0
- /package/dist/core/{interfaces/i-bullet-content-store.js → domain/cipher/file-system/types.js} +0 -0
- /package/dist/core/{interfaces/i-delta-store.js → domain/cipher/process/types.js} +0 -0
- /package/dist/core/{interfaces/i-executor-output-store.js → domain/cipher/session/types.js} +0 -0
- /package/dist/core/{interfaces/i-playbook-service.js → domain/cipher/storage/history-types.js} +0 -0
- /package/dist/core/{interfaces/i-playbook-store.js → domain/cipher/system-prompt/types.js} +0 -0
- /package/dist/core/{interfaces/i-reflection-store.js → domain/cipher/tools/types.js} +0 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { ProcessErrorCode } from './process-error-code.js';
|
|
2
|
+
/**
|
|
3
|
+
* Base error class for process execution operations.
|
|
4
|
+
*
|
|
5
|
+
* All process-specific errors extend this base class.
|
|
6
|
+
*/
|
|
7
|
+
export class ProcessError extends Error {
|
|
8
|
+
code;
|
|
9
|
+
details;
|
|
10
|
+
suggestion;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a new process 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 = 'ProcessError';
|
|
22
|
+
this.code = code;
|
|
23
|
+
this.details = details;
|
|
24
|
+
this.suggestion = suggestion;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Factory method: Command matches blocked pattern.
|
|
28
|
+
*
|
|
29
|
+
* @param command - Command that was blocked
|
|
30
|
+
* @param reason - Reason why command is blocked
|
|
31
|
+
* @returns ProcessError instance
|
|
32
|
+
*/
|
|
33
|
+
static commandBlocked(command, reason) {
|
|
34
|
+
return new ProcessError(`Command blocked by security policy: ${command}. Reason: ${reason}`, ProcessErrorCode.COMMAND_BLOCKED, { command, reason }, 'Modify the command to avoid dangerous patterns or adjust security level.');
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Factory method: Command injection detected.
|
|
38
|
+
*
|
|
39
|
+
* @param command - Command with injection pattern
|
|
40
|
+
* @param pattern - Detected injection pattern
|
|
41
|
+
* @returns ProcessError instance
|
|
42
|
+
*/
|
|
43
|
+
static commandInjection(command, pattern) {
|
|
44
|
+
return new ProcessError(`Command injection detected: ${command}. Pattern: ${pattern}`, ProcessErrorCode.INJECTION_DETECTED, { command, pattern }, 'Remove unsafe command chaining or substitution patterns.');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Factory method: Command not found in PATH.
|
|
48
|
+
*
|
|
49
|
+
* @param command - Command that was not found
|
|
50
|
+
* @returns ProcessError instance
|
|
51
|
+
*/
|
|
52
|
+
static commandNotFound(command) {
|
|
53
|
+
const commandName = command.split(/\s+/)[0];
|
|
54
|
+
return new ProcessError(`Command not found: ${commandName}`, ProcessErrorCode.COMMAND_NOT_FOUND, { command, commandName }, `Ensure '${commandName}' is installed and available in PATH.`);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Factory method: Command exceeds maximum length.
|
|
58
|
+
*
|
|
59
|
+
* @param length - Actual command length
|
|
60
|
+
* @param maxLength - Maximum allowed length
|
|
61
|
+
* @returns ProcessError instance
|
|
62
|
+
*/
|
|
63
|
+
static commandTooLong(length, maxLength) {
|
|
64
|
+
return new ProcessError(`Command exceeds maximum length: ${length} > ${maxLength}`, ProcessErrorCode.COMMAND_TOO_LONG, { length, maxLength }, `Reduce command length to ${maxLength} characters or less.`);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Factory method: Command execution failed.
|
|
68
|
+
*
|
|
69
|
+
* @param command - Command that failed
|
|
70
|
+
* @param cause - Cause of failure
|
|
71
|
+
* @returns ProcessError instance
|
|
72
|
+
*/
|
|
73
|
+
static executionFailed(command, cause) {
|
|
74
|
+
return new ProcessError(`Command execution failed: ${command}. Cause: ${cause}`, ProcessErrorCode.EXECUTION_FAILED, { cause, command }, 'Check command syntax and try again.');
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Factory method: Invalid command validation.
|
|
78
|
+
*
|
|
79
|
+
* @param command - Command that failed validation
|
|
80
|
+
* @param reason - Reason for validation failure
|
|
81
|
+
* @returns ProcessError instance
|
|
82
|
+
*/
|
|
83
|
+
static invalidCommand(command, reason) {
|
|
84
|
+
return new ProcessError(`Invalid command: ${command}. Reason: ${reason}`, ProcessErrorCode.INVALID_COMMAND, { command, reason }, 'Ensure command is properly formatted and contains valid characters.');
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Factory method: Invalid process configuration.
|
|
88
|
+
*
|
|
89
|
+
* @param reason - Reason why configuration is invalid
|
|
90
|
+
* @returns ProcessError instance
|
|
91
|
+
*/
|
|
92
|
+
static invalidConfig(reason) {
|
|
93
|
+
return new ProcessError(`Invalid process configuration: ${reason}`, ProcessErrorCode.INVALID_CONFIG, { reason }, 'Review and correct ProcessConfig settings.');
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Factory method: Invalid or unsafe working directory.
|
|
97
|
+
*
|
|
98
|
+
* @param path - Working directory path that failed validation
|
|
99
|
+
* @param reason - Reason why path is invalid
|
|
100
|
+
* @returns ProcessError instance
|
|
101
|
+
*/
|
|
102
|
+
static invalidWorkingDirectory(path, reason) {
|
|
103
|
+
return new ProcessError(`Invalid working directory: ${path}. Reason: ${reason}`, ProcessErrorCode.WORKING_DIRECTORY_INVALID, { path, reason }, 'Use a path within the configured base directory without ".." traversal.');
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Factory method: Failed to terminate background process.
|
|
107
|
+
*
|
|
108
|
+
* @param processId - ID of process that failed to terminate
|
|
109
|
+
* @param cause - Cause of failure
|
|
110
|
+
* @returns ProcessError instance
|
|
111
|
+
*/
|
|
112
|
+
static killFailed(processId, cause) {
|
|
113
|
+
return new ProcessError(`Failed to kill process: ${processId}. Cause: ${cause}`, ProcessErrorCode.KILL_FAILED, { cause, processId }, 'Process may have already terminated or lacks permissions to kill.');
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Factory method: ProcessService not initialized.
|
|
117
|
+
*
|
|
118
|
+
* @returns ProcessError instance
|
|
119
|
+
*/
|
|
120
|
+
static notInitialized() {
|
|
121
|
+
return new ProcessError('ProcessService not initialized', ProcessErrorCode.SERVICE_NOT_INITIALIZED, undefined, 'Call initialize() before executing commands.');
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Factory method: Output buffer exceeded size limit.
|
|
125
|
+
*
|
|
126
|
+
* @param processId - ID of process with full buffer
|
|
127
|
+
* @param size - Current buffer size
|
|
128
|
+
* @param maxSize - Maximum allowed size
|
|
129
|
+
* @returns ProcessError instance
|
|
130
|
+
*/
|
|
131
|
+
static outputBufferFull(processId, size, maxSize) {
|
|
132
|
+
return new ProcessError(`Output buffer full for process ${processId}: ${size} >= ${maxSize} bytes`, ProcessErrorCode.OUTPUT_BUFFER_FULL, { maxSize, processId, size }, 'Increase maxOutputBuffer in ProcessConfig or read output more frequently.');
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Factory method: Permission denied executing command.
|
|
136
|
+
*
|
|
137
|
+
* @param command - Command that was denied
|
|
138
|
+
* @returns ProcessError instance
|
|
139
|
+
*/
|
|
140
|
+
static permissionDenied(command) {
|
|
141
|
+
const commandName = command.split(/\s+/)[0];
|
|
142
|
+
return new ProcessError(`Permission denied: ${commandName}`, ProcessErrorCode.PERMISSION_DENIED, { command, commandName }, `Ensure you have permission to execute '${commandName}' or run with appropriate privileges.`);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Factory method: Background process not found.
|
|
146
|
+
*
|
|
147
|
+
* @param processId - ID of process that was not found
|
|
148
|
+
* @returns ProcessError instance
|
|
149
|
+
*/
|
|
150
|
+
static processNotFound(processId) {
|
|
151
|
+
return new ProcessError(`Process not found: ${processId}`, ProcessErrorCode.PROCESS_NOT_FOUND, { processId }, 'Process may have completed and been cleaned up, or the ID is invalid.');
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Factory method: Command execution timed out.
|
|
155
|
+
*
|
|
156
|
+
* @param command - Command that timed out
|
|
157
|
+
* @param timeout - Timeout value in milliseconds
|
|
158
|
+
* @returns ProcessError instance
|
|
159
|
+
*/
|
|
160
|
+
static timeout(command, timeout) {
|
|
161
|
+
return new ProcessError(`Command timed out after ${timeout}ms: ${command}`, ProcessErrorCode.TIMEOUT, { command, timeout }, 'Increase timeout value or optimize the command to run faster.');
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Factory method: Too many concurrent background processes.
|
|
165
|
+
*
|
|
166
|
+
* @param current - Current number of running processes
|
|
167
|
+
* @param max - Maximum allowed concurrent processes
|
|
168
|
+
* @returns ProcessError instance
|
|
169
|
+
*/
|
|
170
|
+
static tooManyProcesses(current, max) {
|
|
171
|
+
return new ProcessError(`Too many concurrent processes: ${current} >= ${max}`, ProcessErrorCode.TOO_MANY_PROCESSES, { current, max }, 'Wait for existing processes to complete or increase maxConcurrentProcesses.');
|
|
172
|
+
}
|
|
173
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base error class for session operations.
|
|
3
|
+
* All session-specific errors extend this base class.
|
|
4
|
+
*/
|
|
5
|
+
export declare class SessionError extends Error {
|
|
6
|
+
readonly code: string;
|
|
7
|
+
readonly details?: Record<string, unknown>;
|
|
8
|
+
/**
|
|
9
|
+
* Creates a new session error
|
|
10
|
+
* @param message - Error message describing what went wrong
|
|
11
|
+
* @param code - Error code for categorization
|
|
12
|
+
* @param details - Additional error context
|
|
13
|
+
*/
|
|
14
|
+
constructor(message: string, code: string, details?: Record<string, unknown>);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Error thrown when tool execution loop exceeds maximum iterations.
|
|
18
|
+
*/
|
|
19
|
+
export declare class MaxIterationsExceededError extends SessionError {
|
|
20
|
+
/**
|
|
21
|
+
* Creates a new max iterations exceeded error
|
|
22
|
+
* @param maxIterations - Maximum iterations allowed
|
|
23
|
+
* @param sessionId - Session ID where error occurred
|
|
24
|
+
*/
|
|
25
|
+
constructor(maxIterations: number, sessionId: string);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Error thrown when a session operation is cancelled.
|
|
29
|
+
*/
|
|
30
|
+
export declare class SessionCancelledError extends SessionError {
|
|
31
|
+
/**
|
|
32
|
+
* Creates a new session cancelled error
|
|
33
|
+
* @param sessionId - Session ID where cancellation occurred
|
|
34
|
+
*/
|
|
35
|
+
constructor(sessionId: string);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Error thrown when LLM service call fails.
|
|
39
|
+
*/
|
|
40
|
+
export declare class LLMError extends SessionError {
|
|
41
|
+
/**
|
|
42
|
+
* Creates a new LLM error
|
|
43
|
+
* @param reason - Reason for the failure (already formatted, user-friendly message)
|
|
44
|
+
* @param sessionId - Session ID where error occurred
|
|
45
|
+
*/
|
|
46
|
+
constructor(reason: string, sessionId: string);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Error thrown when session is not initialized.
|
|
50
|
+
*/
|
|
51
|
+
export declare class SessionNotInitializedError extends SessionError {
|
|
52
|
+
/**
|
|
53
|
+
* Creates a new session not initialized error
|
|
54
|
+
*/
|
|
55
|
+
constructor();
|
|
56
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base error class for session operations.
|
|
3
|
+
* All session-specific errors extend this base class.
|
|
4
|
+
*/
|
|
5
|
+
export class SessionError extends Error {
|
|
6
|
+
code;
|
|
7
|
+
details;
|
|
8
|
+
/**
|
|
9
|
+
* Creates a new session error
|
|
10
|
+
* @param message - Error message describing what went wrong
|
|
11
|
+
* @param code - Error code for categorization
|
|
12
|
+
* @param details - Additional error context
|
|
13
|
+
*/
|
|
14
|
+
constructor(message, code, details) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = 'SessionError';
|
|
17
|
+
this.code = code;
|
|
18
|
+
this.details = details;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Error thrown when tool execution loop exceeds maximum iterations.
|
|
23
|
+
*/
|
|
24
|
+
export class MaxIterationsExceededError extends SessionError {
|
|
25
|
+
/**
|
|
26
|
+
* Creates a new max iterations exceeded error
|
|
27
|
+
* @param maxIterations - Maximum iterations allowed
|
|
28
|
+
* @param sessionId - Session ID where error occurred
|
|
29
|
+
*/
|
|
30
|
+
constructor(maxIterations, sessionId) {
|
|
31
|
+
super(`Tool execution loop exceeded maximum iterations (${maxIterations}). This may indicate an infinite loop.`, 'MAX_ITERATIONS_EXCEEDED', { maxIterations, sessionId });
|
|
32
|
+
this.name = 'MaxIterationsExceededError';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Error thrown when a session operation is cancelled.
|
|
37
|
+
*/
|
|
38
|
+
export class SessionCancelledError extends SessionError {
|
|
39
|
+
/**
|
|
40
|
+
* Creates a new session cancelled error
|
|
41
|
+
* @param sessionId - Session ID where cancellation occurred
|
|
42
|
+
*/
|
|
43
|
+
constructor(sessionId) {
|
|
44
|
+
super('Session operation was cancelled by user', 'SESSION_CANCELLED', { sessionId });
|
|
45
|
+
this.name = 'SessionCancelledError';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Error thrown when LLM service call fails.
|
|
50
|
+
*/
|
|
51
|
+
export class LLMError extends SessionError {
|
|
52
|
+
/**
|
|
53
|
+
* Creates a new LLM error
|
|
54
|
+
* @param reason - Reason for the failure (already formatted, user-friendly message)
|
|
55
|
+
* @param sessionId - Session ID where error occurred
|
|
56
|
+
*/
|
|
57
|
+
constructor(reason, sessionId) {
|
|
58
|
+
// Pass reason as-is since it's already formatted with user-friendly message
|
|
59
|
+
super(reason, 'LLM_ERROR', { reason, sessionId });
|
|
60
|
+
this.name = 'LLMError';
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Error thrown when session is not initialized.
|
|
65
|
+
*/
|
|
66
|
+
export class SessionNotInitializedError extends SessionError {
|
|
67
|
+
/**
|
|
68
|
+
* Creates a new session not initialized error
|
|
69
|
+
*/
|
|
70
|
+
constructor() {
|
|
71
|
+
super('Session not initialized. Cannot perform operations.', 'SESSION_NOT_INITIALIZED');
|
|
72
|
+
this.name = 'SessionNotInitializedError';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base error class for tool operations.
|
|
3
|
+
* All tool-specific errors extend this base class.
|
|
4
|
+
*/
|
|
5
|
+
export declare class ToolError extends Error {
|
|
6
|
+
readonly code: string;
|
|
7
|
+
readonly details?: Record<string, unknown>;
|
|
8
|
+
/**
|
|
9
|
+
* Creates a new tool error
|
|
10
|
+
* @param message - Error message describing what went wrong
|
|
11
|
+
* @param code - Error code for categorization
|
|
12
|
+
* @param details - Additional error context
|
|
13
|
+
*/
|
|
14
|
+
constructor(message: string, code: string, details?: Record<string, unknown>);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Error thrown when a tool is not found.
|
|
18
|
+
*/
|
|
19
|
+
export declare class ToolNotFoundError extends ToolError {
|
|
20
|
+
/**
|
|
21
|
+
* Creates a new tool not found error
|
|
22
|
+
* @param toolName - Name of the tool that was not found
|
|
23
|
+
*/
|
|
24
|
+
constructor(toolName: string);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Error thrown when tool execution fails.
|
|
28
|
+
*/
|
|
29
|
+
export declare class ToolExecutionError extends ToolError {
|
|
30
|
+
/**
|
|
31
|
+
* Creates a new tool execution error
|
|
32
|
+
* @param toolName - Name of the tool that failed
|
|
33
|
+
* @param reason - Reason for the failure
|
|
34
|
+
* @param sessionId - Optional session ID
|
|
35
|
+
*/
|
|
36
|
+
constructor(toolName: string, reason: string, sessionId?: string);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Error thrown when tool input validation fails.
|
|
40
|
+
*/
|
|
41
|
+
export declare class ToolValidationError extends ToolError {
|
|
42
|
+
/**
|
|
43
|
+
* Creates a new tool validation error
|
|
44
|
+
* @param toolName - Name of the tool
|
|
45
|
+
* @param validationErrors - Validation error details
|
|
46
|
+
*/
|
|
47
|
+
constructor(toolName: string, validationErrors: string);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Error thrown when the tool provider is not initialized.
|
|
51
|
+
*/
|
|
52
|
+
export declare class ToolProviderNotInitializedError extends ToolError {
|
|
53
|
+
/**
|
|
54
|
+
* Creates a new tool provider not initialized error
|
|
55
|
+
*/
|
|
56
|
+
constructor();
|
|
57
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base error class for tool operations.
|
|
3
|
+
* All tool-specific errors extend this base class.
|
|
4
|
+
*/
|
|
5
|
+
export class ToolError extends Error {
|
|
6
|
+
code;
|
|
7
|
+
details;
|
|
8
|
+
/**
|
|
9
|
+
* Creates a new tool error
|
|
10
|
+
* @param message - Error message describing what went wrong
|
|
11
|
+
* @param code - Error code for categorization
|
|
12
|
+
* @param details - Additional error context
|
|
13
|
+
*/
|
|
14
|
+
constructor(message, code, details) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = 'ToolError';
|
|
17
|
+
this.code = code;
|
|
18
|
+
this.details = details;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Error thrown when a tool is not found.
|
|
23
|
+
*/
|
|
24
|
+
export class ToolNotFoundError extends ToolError {
|
|
25
|
+
/**
|
|
26
|
+
* Creates a new tool not found error
|
|
27
|
+
* @param toolName - Name of the tool that was not found
|
|
28
|
+
*/
|
|
29
|
+
constructor(toolName) {
|
|
30
|
+
super(`Tool not found: ${toolName}`, 'TOOL_NOT_FOUND', { toolName });
|
|
31
|
+
this.name = 'ToolNotFoundError';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Error thrown when tool execution fails.
|
|
36
|
+
*/
|
|
37
|
+
export class ToolExecutionError extends ToolError {
|
|
38
|
+
/**
|
|
39
|
+
* Creates a new tool execution error
|
|
40
|
+
* @param toolName - Name of the tool that failed
|
|
41
|
+
* @param reason - Reason for the failure
|
|
42
|
+
* @param sessionId - Optional session ID
|
|
43
|
+
*/
|
|
44
|
+
constructor(toolName, reason, sessionId) {
|
|
45
|
+
super(`Tool execution failed: ${toolName}. Reason: ${reason}`, 'TOOL_EXECUTION_FAILED', {
|
|
46
|
+
reason,
|
|
47
|
+
sessionId,
|
|
48
|
+
toolName,
|
|
49
|
+
});
|
|
50
|
+
this.name = 'ToolExecutionError';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Error thrown when tool input validation fails.
|
|
55
|
+
*/
|
|
56
|
+
export class ToolValidationError extends ToolError {
|
|
57
|
+
/**
|
|
58
|
+
* Creates a new tool validation error
|
|
59
|
+
* @param toolName - Name of the tool
|
|
60
|
+
* @param validationErrors - Validation error details
|
|
61
|
+
*/
|
|
62
|
+
constructor(toolName, validationErrors) {
|
|
63
|
+
super(`Tool input validation failed: ${toolName}. ${validationErrors}`, 'TOOL_VALIDATION_FAILED', {
|
|
64
|
+
toolName,
|
|
65
|
+
validationErrors,
|
|
66
|
+
});
|
|
67
|
+
this.name = 'ToolValidationError';
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Error thrown when the tool provider is not initialized.
|
|
72
|
+
*/
|
|
73
|
+
export class ToolProviderNotInitializedError extends ToolError {
|
|
74
|
+
/**
|
|
75
|
+
* Creates a new tool provider not initialized error
|
|
76
|
+
*/
|
|
77
|
+
constructor() {
|
|
78
|
+
super('ToolProvider not initialized. Call initialize() before using tools', 'TOOL_PROVIDER_NOT_INITIALIZED');
|
|
79
|
+
this.name = 'ToolProviderNotInitializedError';
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Buffer encoding type from Node.js
|
|
3
|
+
*/
|
|
4
|
+
export type BufferEncoding = 'ascii' | 'base64' | 'base64url' | 'binary' | 'hex' | 'latin1' | 'ucs2' | 'ucs-2' | 'utf8' | 'utf16le';
|
|
5
|
+
/**
|
|
6
|
+
* Configuration for the file system service.
|
|
7
|
+
* Defines security policies and operational limits.
|
|
8
|
+
*/
|
|
9
|
+
export interface FileSystemConfig {
|
|
10
|
+
/** Whitelist of allowed base paths (relative to working directory) */
|
|
11
|
+
allowedPaths: string[];
|
|
12
|
+
/** Blacklist of forbidden file extensions (e.g., .exe, .dll) */
|
|
13
|
+
blockedExtensions: string[];
|
|
14
|
+
/** Blacklist of forbidden paths (e.g., .git, node_modules/.bin) */
|
|
15
|
+
blockedPaths: string[];
|
|
16
|
+
/** Maximum file size in bytes for read operations */
|
|
17
|
+
maxFileSize: number;
|
|
18
|
+
/** Working directory for relative path resolution */
|
|
19
|
+
workingDirectory: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Options for reading files.
|
|
23
|
+
*/
|
|
24
|
+
export interface ReadFileOptions {
|
|
25
|
+
/** Character encoding */
|
|
26
|
+
encoding?: BufferEncoding;
|
|
27
|
+
/** Maximum number of lines to read */
|
|
28
|
+
limit?: number;
|
|
29
|
+
/** Starting line number (1-based, like text editors) */
|
|
30
|
+
offset?: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Options for writing files.
|
|
34
|
+
*/
|
|
35
|
+
export interface WriteFileOptions {
|
|
36
|
+
/** Create parent directories if they don't exist */
|
|
37
|
+
createDirs?: boolean;
|
|
38
|
+
/** Character encoding */
|
|
39
|
+
encoding?: BufferEncoding;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Options for editing files.
|
|
43
|
+
*/
|
|
44
|
+
export interface EditFileOptions {
|
|
45
|
+
/** Character encoding */
|
|
46
|
+
encoding?: BufferEncoding;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Options for glob file discovery.
|
|
50
|
+
*/
|
|
51
|
+
export interface GlobOptions {
|
|
52
|
+
/** Case-sensitive pattern matching (default: true) */
|
|
53
|
+
caseSensitive?: boolean;
|
|
54
|
+
/** Working directory for glob pattern */
|
|
55
|
+
cwd?: string;
|
|
56
|
+
/** Include file metadata (size, modified date) */
|
|
57
|
+
includeMetadata?: boolean;
|
|
58
|
+
/** Maximum number of results to return */
|
|
59
|
+
maxResults?: number;
|
|
60
|
+
/** Respect .gitignore rules when matching files (default: true) */
|
|
61
|
+
respectGitignore?: boolean;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Options for content search.
|
|
65
|
+
*/
|
|
66
|
+
export interface SearchOptions {
|
|
67
|
+
/** Abort signal for cancellation */
|
|
68
|
+
abortSignal?: AbortSignal;
|
|
69
|
+
/** Case-insensitive search */
|
|
70
|
+
caseInsensitive?: boolean;
|
|
71
|
+
/** Number of context lines before/after match */
|
|
72
|
+
contextLines?: number;
|
|
73
|
+
/** Working directory for search */
|
|
74
|
+
cwd?: string;
|
|
75
|
+
/** Glob pattern to filter files (default: all files) */
|
|
76
|
+
globPattern?: string;
|
|
77
|
+
/** Maximum number of matches to return */
|
|
78
|
+
maxResults?: number;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Result of a file read operation.
|
|
82
|
+
*/
|
|
83
|
+
export interface FileContent {
|
|
84
|
+
/** File content as string */
|
|
85
|
+
content: string;
|
|
86
|
+
/** Character encoding used */
|
|
87
|
+
encoding: string;
|
|
88
|
+
/** Total number of lines in the returned content */
|
|
89
|
+
lines: number;
|
|
90
|
+
/** File size in bytes */
|
|
91
|
+
size: number;
|
|
92
|
+
/** Whether content was truncated due to size/line limits */
|
|
93
|
+
truncated: boolean;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Result of a file write operation.
|
|
97
|
+
*/
|
|
98
|
+
export interface WriteResult {
|
|
99
|
+
/** Number of bytes written */
|
|
100
|
+
bytesWritten: number;
|
|
101
|
+
/** Absolute path to the written file */
|
|
102
|
+
path: string;
|
|
103
|
+
/** Whether the write was successful */
|
|
104
|
+
success: boolean;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Result of a file edit operation.
|
|
108
|
+
*/
|
|
109
|
+
export interface EditResult {
|
|
110
|
+
/** Number of bytes written */
|
|
111
|
+
bytesWritten: number;
|
|
112
|
+
/** Absolute path to the edited file */
|
|
113
|
+
path: string;
|
|
114
|
+
/** Number of replacements made */
|
|
115
|
+
replacements: number;
|
|
116
|
+
/** Whether the edit was successful */
|
|
117
|
+
success: boolean;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Metadata about a file.
|
|
121
|
+
*/
|
|
122
|
+
export interface FileMetadata {
|
|
123
|
+
/** Whether this is a directory */
|
|
124
|
+
isDirectory: boolean;
|
|
125
|
+
/** Last modified date */
|
|
126
|
+
modified: Date;
|
|
127
|
+
/** Absolute path to the file */
|
|
128
|
+
path: string;
|
|
129
|
+
/** File size in bytes */
|
|
130
|
+
size: number;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Result of a glob file discovery operation.
|
|
134
|
+
*/
|
|
135
|
+
export interface GlobResult {
|
|
136
|
+
/** Array of matching files with metadata */
|
|
137
|
+
files: FileMetadata[];
|
|
138
|
+
/** Number of files ignored due to .gitignore rules */
|
|
139
|
+
ignoredCount: number;
|
|
140
|
+
/** Human-readable message describing the results */
|
|
141
|
+
message?: string;
|
|
142
|
+
/** Total number of files found (before truncation) */
|
|
143
|
+
totalFound: number;
|
|
144
|
+
/** Whether results were truncated due to maxResults limit */
|
|
145
|
+
truncated: boolean;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* A single search match with context.
|
|
149
|
+
*/
|
|
150
|
+
export interface SearchMatch {
|
|
151
|
+
/** Context lines before and after the match */
|
|
152
|
+
context?: {
|
|
153
|
+
/** Lines after the match */
|
|
154
|
+
after: string[];
|
|
155
|
+
/** Lines before the match */
|
|
156
|
+
before: string[];
|
|
157
|
+
};
|
|
158
|
+
/** File path where match was found */
|
|
159
|
+
file: string;
|
|
160
|
+
/** Matching line content */
|
|
161
|
+
line: string;
|
|
162
|
+
/** Line number (1-based) */
|
|
163
|
+
lineNumber: number;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Result of a content search operation.
|
|
167
|
+
*/
|
|
168
|
+
export interface SearchResult {
|
|
169
|
+
/** Number of files searched */
|
|
170
|
+
filesSearched: number;
|
|
171
|
+
/** Array of matches */
|
|
172
|
+
matches: SearchMatch[];
|
|
173
|
+
/** Total number of matches found */
|
|
174
|
+
totalMatches: number;
|
|
175
|
+
/** Whether results were truncated due to maxResults limit */
|
|
176
|
+
truncated: boolean;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Edit operation definition.
|
|
180
|
+
*/
|
|
181
|
+
export interface EditOperation {
|
|
182
|
+
/** String to replace with */
|
|
183
|
+
newString: string;
|
|
184
|
+
/** String to search for */
|
|
185
|
+
oldString: string;
|
|
186
|
+
/** Replace all occurrences (default: false, requires unique match) */
|
|
187
|
+
replaceAll?: boolean;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Result of path validation.
|
|
191
|
+
* Uses discriminated union for type safety.
|
|
192
|
+
*/
|
|
193
|
+
export type ValidationResult = {
|
|
194
|
+
/** Error message explaining why path is invalid */
|
|
195
|
+
error: string;
|
|
196
|
+
/** Path is invalid */
|
|
197
|
+
valid: false;
|
|
198
|
+
} | {
|
|
199
|
+
/** Normalized absolute path */
|
|
200
|
+
normalizedPath: string;
|
|
201
|
+
/** Path is valid */
|
|
202
|
+
valid: true;
|
|
203
|
+
};
|