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,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Todo status values.
|
|
3
|
+
* Only ONE task can be "in_progress" at any time.
|
|
4
|
+
*/
|
|
5
|
+
export declare const TODO_STATUSES: readonly ["pending", "in_progress", "completed", "cancelled"];
|
|
6
|
+
/**
|
|
7
|
+
* Union type of valid todo statuses.
|
|
8
|
+
*/
|
|
9
|
+
export type TodoStatus = (typeof TODO_STATUSES)[number];
|
|
10
|
+
/**
|
|
11
|
+
* Represents a single todo item.
|
|
12
|
+
*/
|
|
13
|
+
export interface Todo {
|
|
14
|
+
/**
|
|
15
|
+
* Present continuous form shown during execution.
|
|
16
|
+
* Example: "Running tests", "Building the project"
|
|
17
|
+
*/
|
|
18
|
+
activeForm: string;
|
|
19
|
+
/**
|
|
20
|
+
* Imperative description of what needs to be done.
|
|
21
|
+
* Example: "Run tests", "Build the project"
|
|
22
|
+
*/
|
|
23
|
+
content: string;
|
|
24
|
+
/**
|
|
25
|
+
* Current status of the todo.
|
|
26
|
+
* - pending: Not yet started
|
|
27
|
+
* - in_progress: Currently working on (only ONE at a time)
|
|
28
|
+
* - completed: Successfully finished
|
|
29
|
+
* - cancelled: No longer needed
|
|
30
|
+
*/
|
|
31
|
+
status: TodoStatus;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* List of todos maintained by the agent.
|
|
35
|
+
*/
|
|
36
|
+
export interface TodoList {
|
|
37
|
+
/**
|
|
38
|
+
* All todo items.
|
|
39
|
+
*/
|
|
40
|
+
todos: Todo[];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Result of write_todos tool execution.
|
|
44
|
+
* Contains both LLM-facing content and display-facing content.
|
|
45
|
+
*/
|
|
46
|
+
export interface WriteTodosResult {
|
|
47
|
+
/**
|
|
48
|
+
* Content to send back to the LLM.
|
|
49
|
+
*/
|
|
50
|
+
llmContent: string;
|
|
51
|
+
/**
|
|
52
|
+
* Display content for rendering to user.
|
|
53
|
+
*/
|
|
54
|
+
returnDisplay: {
|
|
55
|
+
todos: Todo[];
|
|
56
|
+
};
|
|
57
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Known tool names.
|
|
3
|
+
* These constants ensure type safety and prevent typos.
|
|
4
|
+
*/
|
|
5
|
+
export declare const ToolName: {
|
|
6
|
+
readonly BASH_EXEC: 'bash_exec';
|
|
7
|
+
readonly BASH_OUTPUT: 'bash_output';
|
|
8
|
+
readonly CREATE_KNOWLEDGE_TOPIC: 'create_knowledge_topic';
|
|
9
|
+
readonly DELETE_MEMORY: 'delete_memory';
|
|
10
|
+
readonly DETECT_DOMAINS: 'detect_domains';
|
|
11
|
+
readonly EDIT_FILE: 'edit_file';
|
|
12
|
+
readonly EDIT_MEMORY: 'edit_memory';
|
|
13
|
+
readonly FIND_KNOWLEDGE_TOPICS: 'find_knowledge_topics';
|
|
14
|
+
readonly GLOB_FILES: 'glob_files';
|
|
15
|
+
readonly GREP_CONTENT: 'grep_content';
|
|
16
|
+
readonly KILL_PROCESS: 'kill_process';
|
|
17
|
+
readonly LIST_MEMORIES: 'list_memories';
|
|
18
|
+
readonly READ_FILE: 'read_file';
|
|
19
|
+
readonly READ_MEMORY: 'read_memory';
|
|
20
|
+
readonly SEARCH_HISTORY: 'search_history';
|
|
21
|
+
readonly WRITE_FILE: 'write_file';
|
|
22
|
+
readonly WRITE_MEMORY: 'write_memory';
|
|
23
|
+
readonly WRITE_TODOS: 'write_todos';
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Union type of all known tool names.
|
|
27
|
+
*/
|
|
28
|
+
export type KnownTool = (typeof ToolName)[keyof typeof ToolName];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Known tool names.
|
|
3
|
+
* These constants ensure type safety and prevent typos.
|
|
4
|
+
*/
|
|
5
|
+
export const ToolName = {
|
|
6
|
+
BASH_EXEC: 'bash_exec',
|
|
7
|
+
BASH_OUTPUT: 'bash_output',
|
|
8
|
+
CREATE_KNOWLEDGE_TOPIC: 'create_knowledge_topic',
|
|
9
|
+
DELETE_MEMORY: 'delete_memory',
|
|
10
|
+
DETECT_DOMAINS: 'detect_domains',
|
|
11
|
+
EDIT_FILE: 'edit_file',
|
|
12
|
+
EDIT_MEMORY: 'edit_memory',
|
|
13
|
+
FIND_KNOWLEDGE_TOPICS: 'find_knowledge_topics',
|
|
14
|
+
GLOB_FILES: 'glob_files',
|
|
15
|
+
GREP_CONTENT: 'grep_content',
|
|
16
|
+
KILL_PROCESS: 'kill_process',
|
|
17
|
+
LIST_MEMORIES: 'list_memories',
|
|
18
|
+
READ_FILE: 'read_file',
|
|
19
|
+
READ_MEMORY: 'read_memory',
|
|
20
|
+
SEARCH_HISTORY: 'search_history',
|
|
21
|
+
WRITE_FILE: 'write_file',
|
|
22
|
+
WRITE_MEMORY: 'write_memory',
|
|
23
|
+
WRITE_TODOS: 'write_todos',
|
|
24
|
+
};
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Error Types and Classes
|
|
3
|
+
*
|
|
4
|
+
* Provides structured error classification for tool execution failures.
|
|
5
|
+
* Enables better error handling, debugging, and LLM guidance.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Enum of all possible tool error types.
|
|
9
|
+
* Each type represents a specific failure category.
|
|
10
|
+
*/
|
|
11
|
+
export declare enum ToolErrorType {
|
|
12
|
+
CANCELLED = "CANCELLED",
|
|
13
|
+
CONFIRMATION_REJECTED = "CONFIRMATION_REJECTED",
|
|
14
|
+
EXECUTION_FAILED = "EXECUTION_FAILED",
|
|
15
|
+
INTERNAL_ERROR = "INTERNAL_ERROR",
|
|
16
|
+
INVALID_PARAM_TYPE = "INVALID_PARAM_TYPE",
|
|
17
|
+
INVALID_PARAMS = "INVALID_PARAMS",
|
|
18
|
+
MISSING_REQUIRED_PARAM = "MISSING_REQUIRED_PARAM",
|
|
19
|
+
PARAM_VALIDATION_FAILED = "PARAM_VALIDATION_FAILED",
|
|
20
|
+
PERMISSION_DENIED = "PERMISSION_DENIED",
|
|
21
|
+
PROVIDER_ERROR = "PROVIDER_ERROR",
|
|
22
|
+
TIMEOUT = "TIMEOUT",
|
|
23
|
+
TOOL_DISABLED = "TOOL_DISABLED",
|
|
24
|
+
TOOL_NOT_FOUND = "TOOL_NOT_FOUND"
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Structured result from tool execution.
|
|
28
|
+
* Provides consistent format for both success and error cases.
|
|
29
|
+
*/
|
|
30
|
+
export interface ToolExecutionResult {
|
|
31
|
+
/**
|
|
32
|
+
* Tool output content (any type - will be stringified by ToolOutputProcessor)
|
|
33
|
+
* For errors, contains error message formatted for LLM
|
|
34
|
+
*/
|
|
35
|
+
content: unknown;
|
|
36
|
+
/**
|
|
37
|
+
* Detailed error message (only present on failure)
|
|
38
|
+
*/
|
|
39
|
+
errorMessage?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Error type classification (only present on failure)
|
|
42
|
+
*/
|
|
43
|
+
errorType?: ToolErrorType;
|
|
44
|
+
/**
|
|
45
|
+
* Additional metadata about the execution
|
|
46
|
+
*/
|
|
47
|
+
metadata?: {
|
|
48
|
+
/**
|
|
49
|
+
* Any other custom metadata
|
|
50
|
+
*/
|
|
51
|
+
[key: string]: unknown;
|
|
52
|
+
/**
|
|
53
|
+
* Execution duration in milliseconds
|
|
54
|
+
*/
|
|
55
|
+
durationMs?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Original content length before truncation
|
|
58
|
+
*/
|
|
59
|
+
originalLength?: number;
|
|
60
|
+
/**
|
|
61
|
+
* Path to file if output was saved
|
|
62
|
+
*/
|
|
63
|
+
savedToFile?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Token count for the result (if available)
|
|
66
|
+
*/
|
|
67
|
+
tokensUsed?: number;
|
|
68
|
+
/**
|
|
69
|
+
* Whether output was truncated
|
|
70
|
+
*/
|
|
71
|
+
truncated?: boolean;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Whether the tool executed successfully
|
|
75
|
+
*/
|
|
76
|
+
success: boolean;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Options for creating a ToolError
|
|
80
|
+
*/
|
|
81
|
+
export interface ToolErrorOptions {
|
|
82
|
+
/**
|
|
83
|
+
* Additional context about the error
|
|
84
|
+
*/
|
|
85
|
+
context?: Record<string, unknown>;
|
|
86
|
+
/**
|
|
87
|
+
* Original error that caused the failure
|
|
88
|
+
*/
|
|
89
|
+
originalError?: Error;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Structured error class for tool failures.
|
|
93
|
+
* Wraps error information with type classification.
|
|
94
|
+
*/
|
|
95
|
+
export declare class ToolError extends Error {
|
|
96
|
+
/**
|
|
97
|
+
* Additional context about the error
|
|
98
|
+
*/
|
|
99
|
+
readonly context?: Record<string, unknown>;
|
|
100
|
+
/**
|
|
101
|
+
* Original error that caused the failure (if any)
|
|
102
|
+
*/
|
|
103
|
+
readonly originalError?: Error;
|
|
104
|
+
/**
|
|
105
|
+
* Name of the tool that failed
|
|
106
|
+
*/
|
|
107
|
+
readonly toolName: string;
|
|
108
|
+
/**
|
|
109
|
+
* Classified error type
|
|
110
|
+
*/
|
|
111
|
+
readonly type: ToolErrorType;
|
|
112
|
+
/**
|
|
113
|
+
* Create a new ToolError
|
|
114
|
+
*
|
|
115
|
+
* @param message - Human-readable error message
|
|
116
|
+
* @param type - Classified error type
|
|
117
|
+
* @param toolName - Name of the tool that failed
|
|
118
|
+
* @param options - Optional error context and original error
|
|
119
|
+
*/
|
|
120
|
+
constructor(message: string, type: ToolErrorType, toolName: string, options?: ToolErrorOptions);
|
|
121
|
+
/**
|
|
122
|
+
* Convert error to JSON for serialization
|
|
123
|
+
*/
|
|
124
|
+
toJSON(): Record<string, unknown>;
|
|
125
|
+
/**
|
|
126
|
+
* Format error message for LLM consumption
|
|
127
|
+
* Provides clear, actionable error information
|
|
128
|
+
*/
|
|
129
|
+
toLLMMessage(): string;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Utility functions for error classification and handling
|
|
133
|
+
*/
|
|
134
|
+
export declare class ToolErrorUtils {
|
|
135
|
+
/**
|
|
136
|
+
* Classify an unknown error into a ToolError
|
|
137
|
+
*
|
|
138
|
+
* @param error - Error to classify
|
|
139
|
+
* @param toolName - Name of the tool
|
|
140
|
+
* @returns Classified ToolError
|
|
141
|
+
*/
|
|
142
|
+
static classify(error: unknown, toolName: string): ToolError;
|
|
143
|
+
/**
|
|
144
|
+
* Create an error result from a ToolError
|
|
145
|
+
*
|
|
146
|
+
* @param toolError - Tool error to convert
|
|
147
|
+
* @param metadata - Optional metadata
|
|
148
|
+
* @returns Error result
|
|
149
|
+
*/
|
|
150
|
+
static createErrorResult(toolError: ToolError, metadata?: ToolExecutionResult['metadata']): ToolExecutionResult;
|
|
151
|
+
/**
|
|
152
|
+
* Create a success result
|
|
153
|
+
*
|
|
154
|
+
* Note: Content is passed through as-is (not stringified here).
|
|
155
|
+
* ToolOutputProcessor.stringify() handles proper JSON serialization later.
|
|
156
|
+
*
|
|
157
|
+
* @param content - Tool output content
|
|
158
|
+
* @param metadata - Optional metadata
|
|
159
|
+
* @returns Success result
|
|
160
|
+
*/
|
|
161
|
+
static createSuccess(content: unknown, metadata?: ToolExecutionResult['metadata']): ToolExecutionResult;
|
|
162
|
+
/**
|
|
163
|
+
* Format error for LLM with specific guidance based on error type
|
|
164
|
+
*
|
|
165
|
+
* @param toolError - Tool error to format
|
|
166
|
+
* @returns Formatted error message for LLM
|
|
167
|
+
*/
|
|
168
|
+
static formatForLLM(toolError: ToolError): string;
|
|
169
|
+
/**
|
|
170
|
+
* Check if an error is retryable
|
|
171
|
+
*
|
|
172
|
+
* @param toolError - Tool error to check
|
|
173
|
+
* @returns True if the error might succeed on retry
|
|
174
|
+
*/
|
|
175
|
+
static isRetryable(toolError: ToolError): boolean;
|
|
176
|
+
/**
|
|
177
|
+
* Get actionable guidance for an error type
|
|
178
|
+
*
|
|
179
|
+
* @param errorType - Type of error
|
|
180
|
+
* @returns Guidance message or null
|
|
181
|
+
*/
|
|
182
|
+
private static getGuidanceForErrorType;
|
|
183
|
+
}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Error Types and Classes
|
|
3
|
+
*
|
|
4
|
+
* Provides structured error classification for tool execution failures.
|
|
5
|
+
* Enables better error handling, debugging, and LLM guidance.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Enum of all possible tool error types.
|
|
9
|
+
* Each type represents a specific failure category.
|
|
10
|
+
*/
|
|
11
|
+
export var ToolErrorType;
|
|
12
|
+
(function (ToolErrorType) {
|
|
13
|
+
// Discovery errors - tool not found or unavailable
|
|
14
|
+
ToolErrorType["CANCELLED"] = "CANCELLED";
|
|
15
|
+
ToolErrorType["CONFIRMATION_REJECTED"] = "CONFIRMATION_REJECTED";
|
|
16
|
+
ToolErrorType["EXECUTION_FAILED"] = "EXECUTION_FAILED";
|
|
17
|
+
ToolErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
|
|
18
|
+
ToolErrorType["INVALID_PARAM_TYPE"] = "INVALID_PARAM_TYPE";
|
|
19
|
+
ToolErrorType["INVALID_PARAMS"] = "INVALID_PARAMS";
|
|
20
|
+
ToolErrorType["MISSING_REQUIRED_PARAM"] = "MISSING_REQUIRED_PARAM";
|
|
21
|
+
ToolErrorType["PARAM_VALIDATION_FAILED"] = "PARAM_VALIDATION_FAILED";
|
|
22
|
+
ToolErrorType["PERMISSION_DENIED"] = "PERMISSION_DENIED";
|
|
23
|
+
ToolErrorType["PROVIDER_ERROR"] = "PROVIDER_ERROR";
|
|
24
|
+
ToolErrorType["TIMEOUT"] = "TIMEOUT";
|
|
25
|
+
ToolErrorType["TOOL_DISABLED"] = "TOOL_DISABLED";
|
|
26
|
+
ToolErrorType["TOOL_NOT_FOUND"] = "TOOL_NOT_FOUND";
|
|
27
|
+
})(ToolErrorType || (ToolErrorType = {}));
|
|
28
|
+
/**
|
|
29
|
+
* Structured error class for tool failures.
|
|
30
|
+
* Wraps error information with type classification.
|
|
31
|
+
*/
|
|
32
|
+
export class ToolError extends Error {
|
|
33
|
+
/**
|
|
34
|
+
* Additional context about the error
|
|
35
|
+
*/
|
|
36
|
+
context;
|
|
37
|
+
/**
|
|
38
|
+
* Original error that caused the failure (if any)
|
|
39
|
+
*/
|
|
40
|
+
originalError;
|
|
41
|
+
/**
|
|
42
|
+
* Name of the tool that failed
|
|
43
|
+
*/
|
|
44
|
+
toolName;
|
|
45
|
+
/**
|
|
46
|
+
* Classified error type
|
|
47
|
+
*/
|
|
48
|
+
type;
|
|
49
|
+
/**
|
|
50
|
+
* Create a new ToolError
|
|
51
|
+
*
|
|
52
|
+
* @param message - Human-readable error message
|
|
53
|
+
* @param type - Classified error type
|
|
54
|
+
* @param toolName - Name of the tool that failed
|
|
55
|
+
* @param options - Optional error context and original error
|
|
56
|
+
*/
|
|
57
|
+
constructor(message, type, toolName, options) {
|
|
58
|
+
super(message);
|
|
59
|
+
this.name = 'ToolError';
|
|
60
|
+
this.type = type;
|
|
61
|
+
this.toolName = toolName;
|
|
62
|
+
this.originalError = options?.originalError;
|
|
63
|
+
this.context = options?.context;
|
|
64
|
+
// Maintain proper stack trace
|
|
65
|
+
if (Error.captureStackTrace) {
|
|
66
|
+
Error.captureStackTrace(this, ToolError);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Convert error to JSON for serialization
|
|
71
|
+
*/
|
|
72
|
+
toJSON() {
|
|
73
|
+
return {
|
|
74
|
+
context: this.context,
|
|
75
|
+
message: this.message,
|
|
76
|
+
name: this.name,
|
|
77
|
+
originalError: this.originalError?.message,
|
|
78
|
+
toolName: this.toolName,
|
|
79
|
+
type: this.type,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Format error message for LLM consumption
|
|
84
|
+
* Provides clear, actionable error information
|
|
85
|
+
*/
|
|
86
|
+
toLLMMessage() {
|
|
87
|
+
const parts = [
|
|
88
|
+
`Tool execution failed: ${this.toolName}`,
|
|
89
|
+
`Error type: ${this.type}`,
|
|
90
|
+
`Message: ${this.message}`,
|
|
91
|
+
];
|
|
92
|
+
if (this.context && Object.keys(this.context).length > 0) {
|
|
93
|
+
parts.push(`Context: ${JSON.stringify(this.context)}`);
|
|
94
|
+
}
|
|
95
|
+
return parts.join('\n');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Utility functions for error classification and handling
|
|
100
|
+
*/
|
|
101
|
+
export class ToolErrorUtils {
|
|
102
|
+
/**
|
|
103
|
+
* Classify an unknown error into a ToolError
|
|
104
|
+
*
|
|
105
|
+
* @param error - Error to classify
|
|
106
|
+
* @param toolName - Name of the tool
|
|
107
|
+
* @returns Classified ToolError
|
|
108
|
+
*/
|
|
109
|
+
static classify(error, toolName) {
|
|
110
|
+
// Already a ToolError - return as-is
|
|
111
|
+
if (error instanceof ToolError) {
|
|
112
|
+
return error;
|
|
113
|
+
}
|
|
114
|
+
// Convert to ToolError with classification
|
|
115
|
+
if (error instanceof Error) {
|
|
116
|
+
const message = error.message.toLowerCase();
|
|
117
|
+
// Classify based on error message patterns
|
|
118
|
+
if (message.includes('not found') || message.includes('does not exist')) {
|
|
119
|
+
return new ToolError(error.message, ToolErrorType.TOOL_NOT_FOUND, toolName, { originalError: error });
|
|
120
|
+
}
|
|
121
|
+
if (message.includes('timeout') || message.includes('timed out')) {
|
|
122
|
+
return new ToolError(error.message, ToolErrorType.TIMEOUT, toolName, { originalError: error });
|
|
123
|
+
}
|
|
124
|
+
if (message.includes('permission') || message.includes('unauthorized') || message.includes('forbidden')) {
|
|
125
|
+
return new ToolError(error.message, ToolErrorType.PERMISSION_DENIED, toolName, { originalError: error });
|
|
126
|
+
}
|
|
127
|
+
if (message.includes('cancelled') || message.includes('abort')) {
|
|
128
|
+
return new ToolError(error.message, ToolErrorType.CANCELLED, toolName, { originalError: error });
|
|
129
|
+
}
|
|
130
|
+
if (message.includes('invalid') || message.includes('validation')) {
|
|
131
|
+
return new ToolError(error.message, ToolErrorType.INVALID_PARAMS, toolName, { originalError: error });
|
|
132
|
+
}
|
|
133
|
+
if (message.includes('required') || message.includes('missing')) {
|
|
134
|
+
return new ToolError(error.message, ToolErrorType.MISSING_REQUIRED_PARAM, toolName, { originalError: error });
|
|
135
|
+
}
|
|
136
|
+
// Default to execution failed
|
|
137
|
+
return new ToolError(error.message, ToolErrorType.EXECUTION_FAILED, toolName, { originalError: error });
|
|
138
|
+
}
|
|
139
|
+
// Non-Error object - wrap as internal error
|
|
140
|
+
return new ToolError(String(error), ToolErrorType.INTERNAL_ERROR, toolName, { context: { originalValue: error } });
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Create an error result from a ToolError
|
|
144
|
+
*
|
|
145
|
+
* @param toolError - Tool error to convert
|
|
146
|
+
* @param metadata - Optional metadata
|
|
147
|
+
* @returns Error result
|
|
148
|
+
*/
|
|
149
|
+
static createErrorResult(toolError, metadata) {
|
|
150
|
+
return {
|
|
151
|
+
content: toolError.toLLMMessage(),
|
|
152
|
+
errorMessage: toolError.message,
|
|
153
|
+
errorType: toolError.type,
|
|
154
|
+
metadata: {
|
|
155
|
+
...metadata,
|
|
156
|
+
context: toolError.context,
|
|
157
|
+
originalError: toolError.originalError?.message,
|
|
158
|
+
},
|
|
159
|
+
success: false,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Create a success result
|
|
164
|
+
*
|
|
165
|
+
* Note: Content is passed through as-is (not stringified here).
|
|
166
|
+
* ToolOutputProcessor.stringify() handles proper JSON serialization later.
|
|
167
|
+
*
|
|
168
|
+
* @param content - Tool output content
|
|
169
|
+
* @param metadata - Optional metadata
|
|
170
|
+
* @returns Success result
|
|
171
|
+
*/
|
|
172
|
+
static createSuccess(content, metadata) {
|
|
173
|
+
return {
|
|
174
|
+
content,
|
|
175
|
+
metadata,
|
|
176
|
+
success: true,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Format error for LLM with specific guidance based on error type
|
|
181
|
+
*
|
|
182
|
+
* @param toolError - Tool error to format
|
|
183
|
+
* @returns Formatted error message for LLM
|
|
184
|
+
*/
|
|
185
|
+
static formatForLLM(toolError) {
|
|
186
|
+
const baseMessage = toolError.toLLMMessage();
|
|
187
|
+
// Add specific guidance based on error type
|
|
188
|
+
const guidance = this.getGuidanceForErrorType(toolError.type);
|
|
189
|
+
if (guidance) {
|
|
190
|
+
return `${baseMessage}\n\nGuidance: ${guidance}`;
|
|
191
|
+
}
|
|
192
|
+
return baseMessage;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Check if an error is retryable
|
|
196
|
+
*
|
|
197
|
+
* @param toolError - Tool error to check
|
|
198
|
+
* @returns True if the error might succeed on retry
|
|
199
|
+
*/
|
|
200
|
+
static isRetryable(toolError) {
|
|
201
|
+
// Some error types should not be retried
|
|
202
|
+
const nonRetryableTypes = new Set([
|
|
203
|
+
ToolErrorType.CANCELLED,
|
|
204
|
+
ToolErrorType.CONFIRMATION_REJECTED,
|
|
205
|
+
ToolErrorType.EXECUTION_FAILED,
|
|
206
|
+
ToolErrorType.INVALID_PARAM_TYPE,
|
|
207
|
+
ToolErrorType.INVALID_PARAMS,
|
|
208
|
+
ToolErrorType.MISSING_REQUIRED_PARAM,
|
|
209
|
+
ToolErrorType.PARAM_VALIDATION_FAILED,
|
|
210
|
+
ToolErrorType.PERMISSION_DENIED,
|
|
211
|
+
ToolErrorType.TOOL_DISABLED,
|
|
212
|
+
ToolErrorType.TOOL_NOT_FOUND,
|
|
213
|
+
]);
|
|
214
|
+
return !nonRetryableTypes.has(toolError.type);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Get actionable guidance for an error type
|
|
218
|
+
*
|
|
219
|
+
* @param errorType - Type of error
|
|
220
|
+
* @returns Guidance message or null
|
|
221
|
+
*/
|
|
222
|
+
static getGuidanceForErrorType(errorType) {
|
|
223
|
+
switch (errorType) {
|
|
224
|
+
case ToolErrorType.EXECUTION_FAILED: {
|
|
225
|
+
return 'The tool encountered an error during execution. Review the error message and adjust your approach.';
|
|
226
|
+
}
|
|
227
|
+
case ToolErrorType.INVALID_PARAM_TYPE:
|
|
228
|
+
case ToolErrorType.INVALID_PARAMS:
|
|
229
|
+
case ToolErrorType.MISSING_REQUIRED_PARAM: {
|
|
230
|
+
return 'Check the tool schema and ensure all required parameters are provided with correct types.';
|
|
231
|
+
}
|
|
232
|
+
case ToolErrorType.PERMISSION_DENIED: {
|
|
233
|
+
return 'You do not have permission to execute this tool. Consider asking the user for permission.';
|
|
234
|
+
}
|
|
235
|
+
case ToolErrorType.TIMEOUT: {
|
|
236
|
+
return 'The tool execution timed out. Try breaking the task into smaller steps or use a different approach.';
|
|
237
|
+
}
|
|
238
|
+
case ToolErrorType.TOOL_NOT_FOUND: {
|
|
239
|
+
return 'The tool you requested does not exist. Use list_tools to see available tools.';
|
|
240
|
+
}
|
|
241
|
+
default: {
|
|
242
|
+
return null;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import type { ZodSchema } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Risk level for tool execution.
|
|
4
|
+
* Used for logging, auditing, and policy decisions.
|
|
5
|
+
*/
|
|
6
|
+
export type RiskLevel = 'critical' | 'high' | 'low' | 'medium';
|
|
7
|
+
/**
|
|
8
|
+
* Semantic category for tools.
|
|
9
|
+
* Helps classify tools by their primary function.
|
|
10
|
+
*/
|
|
11
|
+
export type ToolCategory = 'discovery' | 'execute' | 'memory' | 'read' | 'write';
|
|
12
|
+
/**
|
|
13
|
+
* Metadata about a tool execution.
|
|
14
|
+
* Computed dynamically based on tool arguments.
|
|
15
|
+
*/
|
|
16
|
+
export interface ToolMetadata {
|
|
17
|
+
/**
|
|
18
|
+
* Files or directories that may be affected.
|
|
19
|
+
* Computed from tool arguments.
|
|
20
|
+
*/
|
|
21
|
+
affectedLocations?: string[];
|
|
22
|
+
/**
|
|
23
|
+
* Semantic category of this tool.
|
|
24
|
+
*/
|
|
25
|
+
category?: ToolCategory;
|
|
26
|
+
/**
|
|
27
|
+
* Risk level for this execution.
|
|
28
|
+
* Useful for logging and auditing.
|
|
29
|
+
*/
|
|
30
|
+
riskLevel: RiskLevel;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Represents a tool that can be executed by the LLM.
|
|
34
|
+
* Tools are the primary way for the LLM to interact with the system.
|
|
35
|
+
*/
|
|
36
|
+
export interface Tool {
|
|
37
|
+
/** Human-readable description of what the tool does */
|
|
38
|
+
description: string;
|
|
39
|
+
/**
|
|
40
|
+
* The actual function that executes the tool.
|
|
41
|
+
* Input is pre-validated against inputSchema before execution.
|
|
42
|
+
*
|
|
43
|
+
* @param input - Validated input parameters
|
|
44
|
+
* @param context - Optional execution context
|
|
45
|
+
* @returns Tool execution result
|
|
46
|
+
*/
|
|
47
|
+
execute: (input: unknown, context?: ToolExecutionContext) => Promise<unknown> | unknown;
|
|
48
|
+
/**
|
|
49
|
+
* Optional: Get metadata about this tool execution.
|
|
50
|
+
* Used for logging, auditing, and policy decisions.
|
|
51
|
+
*
|
|
52
|
+
* @param args - The arguments being passed to the tool
|
|
53
|
+
* @returns Metadata about this execution
|
|
54
|
+
*/
|
|
55
|
+
getMetadata?: (args: Record<string, unknown>) => ToolMetadata;
|
|
56
|
+
/** Unique identifier for the tool */
|
|
57
|
+
id: string;
|
|
58
|
+
/** Zod schema defining the input parameters - validated before execution */
|
|
59
|
+
inputSchema: ZodSchema;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Context provided to tools during execution.
|
|
63
|
+
* Contains metadata about the execution environment.
|
|
64
|
+
*/
|
|
65
|
+
export interface ToolExecutionContext {
|
|
66
|
+
/** Session ID if available */
|
|
67
|
+
sessionId?: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Tool set exposed to the LLM.
|
|
71
|
+
* Maps tool names to their JSON Schema definitions for LLM consumption.
|
|
72
|
+
*/
|
|
73
|
+
export interface ToolSet {
|
|
74
|
+
[toolName: string]: {
|
|
75
|
+
/** Human-readable description */
|
|
76
|
+
description?: string;
|
|
77
|
+
/** Tool name (same as key) */
|
|
78
|
+
name?: string;
|
|
79
|
+
/** JSON Schema v7 definition of parameters */
|
|
80
|
+
parameters: JSONSchema7;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* JSON Schema v7 type definition.
|
|
85
|
+
* Simplified version for tool parameter schemas.
|
|
86
|
+
*/
|
|
87
|
+
export interface JSONSchema7 {
|
|
88
|
+
$id?: string;
|
|
89
|
+
$ref?: string;
|
|
90
|
+
$schema?: string;
|
|
91
|
+
additionalItems?: boolean | JSONSchema7;
|
|
92
|
+
additionalProperties?: boolean | JSONSchema7;
|
|
93
|
+
allOf?: JSONSchema7[];
|
|
94
|
+
anyOf?: JSONSchema7[];
|
|
95
|
+
const?: unknown;
|
|
96
|
+
contains?: JSONSchema7;
|
|
97
|
+
contentEncoding?: string;
|
|
98
|
+
contentMediaType?: string;
|
|
99
|
+
default?: unknown;
|
|
100
|
+
definitions?: {
|
|
101
|
+
[key: string]: JSONSchema7;
|
|
102
|
+
};
|
|
103
|
+
dependencies?: {
|
|
104
|
+
[key: string]: JSONSchema7 | string[];
|
|
105
|
+
};
|
|
106
|
+
description?: string;
|
|
107
|
+
else?: JSONSchema7;
|
|
108
|
+
enum?: unknown[];
|
|
109
|
+
examples?: unknown[];
|
|
110
|
+
exclusiveMaximum?: number;
|
|
111
|
+
exclusiveMinimum?: number;
|
|
112
|
+
format?: string;
|
|
113
|
+
if?: JSONSchema7;
|
|
114
|
+
items?: JSONSchema7 | JSONSchema7[];
|
|
115
|
+
maximum?: number;
|
|
116
|
+
maxItems?: number;
|
|
117
|
+
maxLength?: number;
|
|
118
|
+
maxProperties?: number;
|
|
119
|
+
minimum?: number;
|
|
120
|
+
minItems?: number;
|
|
121
|
+
minLength?: number;
|
|
122
|
+
minProperties?: number;
|
|
123
|
+
multipleOf?: number;
|
|
124
|
+
not?: JSONSchema7;
|
|
125
|
+
oneOf?: JSONSchema7[];
|
|
126
|
+
pattern?: string;
|
|
127
|
+
patternProperties?: {
|
|
128
|
+
[key: string]: JSONSchema7;
|
|
129
|
+
};
|
|
130
|
+
properties?: {
|
|
131
|
+
[key: string]: JSONSchema7;
|
|
132
|
+
};
|
|
133
|
+
propertyNames?: JSONSchema7;
|
|
134
|
+
readOnly?: boolean;
|
|
135
|
+
required?: string[];
|
|
136
|
+
then?: JSONSchema7;
|
|
137
|
+
title?: string;
|
|
138
|
+
type?: JSONSchema7TypeName | JSONSchema7TypeName[];
|
|
139
|
+
uniqueItems?: boolean;
|
|
140
|
+
writeOnly?: boolean;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* JSON Schema type names.
|
|
144
|
+
*/
|
|
145
|
+
export type JSONSchema7TypeName = 'array' | 'boolean' | 'integer' | 'null' | 'number' | 'object' | 'string';
|