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,53 @@
|
|
|
1
|
+
import type { SessionMetadata } from '../../domain/cipher/storage/history-types.js';
|
|
2
|
+
import type { InternalMessage } from '../cipher/message-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Interface for session history persistence.
|
|
5
|
+
*
|
|
6
|
+
* Implementations can use different storage backends (blob storage, database, etc.)
|
|
7
|
+
* to persist and restore conversation history across sessions.
|
|
8
|
+
*/
|
|
9
|
+
export interface IHistoryStorage {
|
|
10
|
+
/**
|
|
11
|
+
* Delete all history for a specific session.
|
|
12
|
+
*
|
|
13
|
+
* @param sessionId - Unique session identifier
|
|
14
|
+
* @returns Promise that resolves when history is deleted
|
|
15
|
+
*/
|
|
16
|
+
deleteHistory(sessionId: string): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Check if history exists for a specific session.
|
|
19
|
+
*
|
|
20
|
+
* @param sessionId - Unique session identifier
|
|
21
|
+
* @returns Promise that resolves to true if history exists
|
|
22
|
+
*/
|
|
23
|
+
exists(sessionId: string): Promise<boolean>;
|
|
24
|
+
/**
|
|
25
|
+
* Get metadata for a specific session without loading full history.
|
|
26
|
+
*
|
|
27
|
+
* @param sessionId - Unique session identifier
|
|
28
|
+
* @returns Promise that resolves to session metadata or undefined if not found
|
|
29
|
+
*/
|
|
30
|
+
getSessionMetadata(sessionId: string): Promise<SessionMetadata | undefined>;
|
|
31
|
+
/**
|
|
32
|
+
* List all session IDs that have persisted history.
|
|
33
|
+
*
|
|
34
|
+
* @returns Promise that resolves to array of session IDs
|
|
35
|
+
*/
|
|
36
|
+
listSessions(): Promise<string[]>;
|
|
37
|
+
/**
|
|
38
|
+
* Load conversation history for a specific session.
|
|
39
|
+
*
|
|
40
|
+
* @param sessionId - Unique session identifier
|
|
41
|
+
* @returns Promise that resolves to array of messages, or undefined if session not found
|
|
42
|
+
*/
|
|
43
|
+
loadHistory(sessionId: string): Promise<InternalMessage[] | undefined>;
|
|
44
|
+
/**
|
|
45
|
+
* Save conversation history for a specific session.
|
|
46
|
+
* Overwrites any existing history for the session.
|
|
47
|
+
*
|
|
48
|
+
* @param sessionId - Unique session identifier
|
|
49
|
+
* @param messages - Array of messages to persist
|
|
50
|
+
* @returns Promise that resolves when history is saved
|
|
51
|
+
*/
|
|
52
|
+
saveHistory(sessionId: string, messages: InternalMessage[]): Promise<void>;
|
|
53
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type LlmGenerateParams = {
|
|
2
|
+
maxTokens?: number;
|
|
3
|
+
model?: string;
|
|
4
|
+
prompt: string;
|
|
5
|
+
temperature?: number;
|
|
6
|
+
};
|
|
7
|
+
export interface ILlmProvider {
|
|
8
|
+
/**
|
|
9
|
+
* Generate a response from the LLM
|
|
10
|
+
* @param params - Generation parameters including prompt and optional model settings
|
|
11
|
+
* @returns The generated text response
|
|
12
|
+
*/
|
|
13
|
+
generate: (params: LlmGenerateParams) => Promise<string>;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { ContextManager, FileData, ImageData } from '../../../infra/cipher/llm/context/context-manager.js';
|
|
2
|
+
import type { LLMServiceConfig } from '../../../infra/cipher/llm/internal-llm-service.js';
|
|
3
|
+
import type { ToolSet } from '../../domain/cipher/tools/types.js';
|
|
4
|
+
import type { ExecutionContext } from './i-cipher-agent.js';
|
|
5
|
+
/**
|
|
6
|
+
* LLM Service interface.
|
|
7
|
+
*
|
|
8
|
+
* Defines the contract for LLM service implementations.
|
|
9
|
+
* Services handle the agentic loop, tool calling, and context management.
|
|
10
|
+
*
|
|
11
|
+
* Based on dexto's ILLMService pattern.
|
|
12
|
+
*/
|
|
13
|
+
export interface ILLMService {
|
|
14
|
+
/**
|
|
15
|
+
* Complete a task with agentic tool calling support.
|
|
16
|
+
*
|
|
17
|
+
* Main entry point for executing user requests with tool support.
|
|
18
|
+
* The service handles:
|
|
19
|
+
* - Adding user message to context
|
|
20
|
+
* - Agentic loop (LLM → tool calls → LLM)
|
|
21
|
+
* - Returning final response
|
|
22
|
+
*
|
|
23
|
+
* @param textInput - User input text
|
|
24
|
+
* @param sessionId - Session ID for tracking the conversation
|
|
25
|
+
* @param options - Execution options
|
|
26
|
+
* @param options.signal - Optional abort signal for cancellation
|
|
27
|
+
* @param options.imageData - Optional image data
|
|
28
|
+
* @param options.fileData - Optional file data
|
|
29
|
+
* @param options.stream - Whether to stream the response (optional)
|
|
30
|
+
* @param options.executionContext - Optional execution context (for autonomous mode, etc.)
|
|
31
|
+
* @param options.mode - Optional mode for system prompt ('autonomous' enables autonomous mode)
|
|
32
|
+
* @returns Final assistant response
|
|
33
|
+
*/
|
|
34
|
+
completeTask(textInput: string, sessionId: string, options?: {
|
|
35
|
+
executionContext?: ExecutionContext;
|
|
36
|
+
fileData?: FileData;
|
|
37
|
+
imageData?: ImageData;
|
|
38
|
+
mode?: 'autonomous' | 'default' | 'query';
|
|
39
|
+
signal?: AbortSignal;
|
|
40
|
+
stream?: boolean;
|
|
41
|
+
}): Promise<string>;
|
|
42
|
+
/**
|
|
43
|
+
* Get all available tools.
|
|
44
|
+
*
|
|
45
|
+
* @returns Tool set with JSON Schema definitions
|
|
46
|
+
*/
|
|
47
|
+
getAllTools(): Promise<ToolSet>;
|
|
48
|
+
/**
|
|
49
|
+
* Get service configuration.
|
|
50
|
+
*
|
|
51
|
+
* @returns Service configuration including model, provider, token limits
|
|
52
|
+
*/
|
|
53
|
+
getConfig(): LLMServiceConfig;
|
|
54
|
+
/**
|
|
55
|
+
* Get the context manager instance.
|
|
56
|
+
*
|
|
57
|
+
* Allows access to conversation history and context management.
|
|
58
|
+
*
|
|
59
|
+
* @returns Context manager instance
|
|
60
|
+
*/
|
|
61
|
+
getContextManager(): ContextManager<unknown>;
|
|
62
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log level enumeration
|
|
3
|
+
*/
|
|
4
|
+
export declare enum LogLevel {
|
|
5
|
+
DEBUG = "debug",
|
|
6
|
+
ERROR = "error",
|
|
7
|
+
INFO = "info",
|
|
8
|
+
WARN = "warn"
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Logger interface for Clean Architecture compliance.
|
|
12
|
+
*
|
|
13
|
+
* This interface defines the contract for logging in the application.
|
|
14
|
+
* Domain and infrastructure layers should depend on this interface,
|
|
15
|
+
* not on concrete logging implementations.
|
|
16
|
+
*
|
|
17
|
+
* Design principles:
|
|
18
|
+
* - No dependencies on external libraries (console, winston, etc.)
|
|
19
|
+
* - Simple, focused API for common logging needs
|
|
20
|
+
* - Supports structured logging with context objects
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* class MyService {
|
|
25
|
+
* constructor(private readonly logger: ILogger) {}
|
|
26
|
+
*
|
|
27
|
+
* async doWork(): Promise<void> {
|
|
28
|
+
* this.logger.info('Starting work', { taskId: '123' });
|
|
29
|
+
* try {
|
|
30
|
+
* // ... work ...
|
|
31
|
+
* this.logger.debug('Work completed', { duration: 100 });
|
|
32
|
+
* } catch (error) {
|
|
33
|
+
* this.logger.error('Work failed', { error });
|
|
34
|
+
* }
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export interface ILogger {
|
|
40
|
+
/**
|
|
41
|
+
* Log a debug message (verbose, for development).
|
|
42
|
+
*
|
|
43
|
+
* @param message - Human-readable message
|
|
44
|
+
* @param context - Optional structured context data
|
|
45
|
+
*/
|
|
46
|
+
debug(message: string, context?: Record<string, unknown>): void;
|
|
47
|
+
/**
|
|
48
|
+
* Log an error message (for failures and exceptions).
|
|
49
|
+
*
|
|
50
|
+
* @param message - Human-readable error message
|
|
51
|
+
* @param context - Optional structured context data (e.g., error object, stack trace)
|
|
52
|
+
*/
|
|
53
|
+
error(message: string, context?: Record<string, unknown>): void;
|
|
54
|
+
/**
|
|
55
|
+
* Log an info message (general informational).
|
|
56
|
+
*
|
|
57
|
+
* @param message - Human-readable message
|
|
58
|
+
* @param context - Optional structured context data
|
|
59
|
+
*/
|
|
60
|
+
info(message: string, context?: Record<string, unknown>): void;
|
|
61
|
+
/**
|
|
62
|
+
* Log a warning message (potential issues).
|
|
63
|
+
*
|
|
64
|
+
* @param message - Human-readable warning message
|
|
65
|
+
* @param context - Optional structured context data
|
|
66
|
+
*/
|
|
67
|
+
warn(message: string, context?: Record<string, unknown>): void;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* No-op logger implementation that discards all log messages.
|
|
71
|
+
* Useful for testing or when logging is disabled.
|
|
72
|
+
*/
|
|
73
|
+
export declare class NoOpLogger implements ILogger {
|
|
74
|
+
debug(_message: string, _context?: Record<string, unknown>): void;
|
|
75
|
+
error(_message: string, _context?: Record<string, unknown>): void;
|
|
76
|
+
info(_message: string, _context?: Record<string, unknown>): void;
|
|
77
|
+
warn(_message: string, _context?: Record<string, unknown>): void;
|
|
78
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log level enumeration
|
|
3
|
+
*/
|
|
4
|
+
export var LogLevel;
|
|
5
|
+
(function (LogLevel) {
|
|
6
|
+
LogLevel["DEBUG"] = "debug";
|
|
7
|
+
LogLevel["ERROR"] = "error";
|
|
8
|
+
LogLevel["INFO"] = "info";
|
|
9
|
+
LogLevel["WARN"] = "warn";
|
|
10
|
+
})(LogLevel || (LogLevel = {}));
|
|
11
|
+
/**
|
|
12
|
+
* No-op logger implementation that discards all log messages.
|
|
13
|
+
* Useful for testing or when logging is disabled.
|
|
14
|
+
*/
|
|
15
|
+
export class NoOpLogger {
|
|
16
|
+
debug(_message, _context) {
|
|
17
|
+
// No-op
|
|
18
|
+
}
|
|
19
|
+
error(_message, _context) {
|
|
20
|
+
// No-op
|
|
21
|
+
}
|
|
22
|
+
info(_message, _context) {
|
|
23
|
+
// No-op
|
|
24
|
+
}
|
|
25
|
+
warn(_message, _context) {
|
|
26
|
+
// No-op
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { InternalMessage } from './message-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Interface for converting internal message format to LLM provider-specific formats.
|
|
4
|
+
* Each LLM provider requires a different message structure, and the formatter's job
|
|
5
|
+
* is to handle these conversions while maintaining a consistent internal representation.
|
|
6
|
+
*
|
|
7
|
+
* @template TProviderMessage The provider-specific message type (e.g., Content for Gemini)
|
|
8
|
+
*/
|
|
9
|
+
export interface IMessageFormatter<TProviderMessage> {
|
|
10
|
+
/**
|
|
11
|
+
* Formats the internal message history for a specific LLM provider API.
|
|
12
|
+
* Transforms our standardized internal message format into the specific structure
|
|
13
|
+
* required by the target LLM API.
|
|
14
|
+
*
|
|
15
|
+
* @param history The raw internal message history (read-only to prevent modifications)
|
|
16
|
+
* @param systemPrompt Optional system prompt to include
|
|
17
|
+
* @returns The message history structured for the target API (provider-specific type)
|
|
18
|
+
*/
|
|
19
|
+
format: (history: Readonly<InternalMessage[]>, systemPrompt?: null | string) => TProviderMessage[];
|
|
20
|
+
/**
|
|
21
|
+
* Optional method for handling system prompt separately.
|
|
22
|
+
* Some LLM providers (like Anthropic) don't include the system prompt in the
|
|
23
|
+
* messages array but pass it as a separate parameter.
|
|
24
|
+
*
|
|
25
|
+
* @param systemPrompt The system prompt to format
|
|
26
|
+
* @returns The formatted system prompt or null/undefined if not needed
|
|
27
|
+
*/
|
|
28
|
+
formatSystemPrompt?: (systemPrompt: null | string) => null | string | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Parses raw LLM response into an array of InternalMessage objects.
|
|
31
|
+
* Converts provider-specific response format back to our internal representation.
|
|
32
|
+
*
|
|
33
|
+
* @param response The raw response from the LLM provider
|
|
34
|
+
* @returns Array of internal messages extracted from the response
|
|
35
|
+
*/
|
|
36
|
+
parseResponse: (response: unknown) => InternalMessage[];
|
|
37
|
+
/**
|
|
38
|
+
* Optional method for parsing streaming LLM responses into InternalMessage objects.
|
|
39
|
+
*
|
|
40
|
+
* @param response The streaming response from the LLM provider
|
|
41
|
+
* @returns Promise that resolves to an array of InternalMessage objects
|
|
42
|
+
*/
|
|
43
|
+
parseStreamResponse?(response: unknown): Promise<InternalMessage[]>;
|
|
44
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Policy Engine Interface.
|
|
3
|
+
*
|
|
4
|
+
* Provides rule-based ALLOW/DENY decisions for tool execution.
|
|
5
|
+
* Designed for autonomous execution - no ASK_USER decisions.
|
|
6
|
+
*
|
|
7
|
+
* Based on gemini-cli's policy engine pattern, simplified for autonomous mode.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Policy decision for autonomous execution.
|
|
11
|
+
* Note: No ASK_USER - agent runs autonomously without user confirmation.
|
|
12
|
+
*/
|
|
13
|
+
export type PolicyDecision = 'ALLOW' | 'DENY';
|
|
14
|
+
/**
|
|
15
|
+
* A policy rule that determines whether a tool execution should be allowed.
|
|
16
|
+
*/
|
|
17
|
+
export interface PolicyRule {
|
|
18
|
+
/**
|
|
19
|
+
* Optional condition function for fine-grained control.
|
|
20
|
+
* Only evaluated if toolPattern matches.
|
|
21
|
+
*
|
|
22
|
+
* @param toolName - The name of the tool being executed
|
|
23
|
+
* @param args - The arguments passed to the tool
|
|
24
|
+
* @returns True if this rule should apply, false to skip to next rule
|
|
25
|
+
*/
|
|
26
|
+
condition?: (toolName: string, args: Record<string, unknown>) => boolean;
|
|
27
|
+
/**
|
|
28
|
+
* The decision to return if this rule matches.
|
|
29
|
+
*/
|
|
30
|
+
decision: PolicyDecision;
|
|
31
|
+
/**
|
|
32
|
+
* Unique name for this rule (used for removal/debugging).
|
|
33
|
+
*/
|
|
34
|
+
name: string;
|
|
35
|
+
/**
|
|
36
|
+
* Optional human-readable reason for this rule.
|
|
37
|
+
* Useful for logging and debugging.
|
|
38
|
+
*/
|
|
39
|
+
reason?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Tool name pattern to match.
|
|
42
|
+
* - String: exact match or '*' for all tools
|
|
43
|
+
* - RegExp: pattern matching for tool names
|
|
44
|
+
*/
|
|
45
|
+
toolPattern: RegExp | string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Result of evaluating a tool execution against policy rules.
|
|
49
|
+
*/
|
|
50
|
+
export interface PolicyEvaluationResult {
|
|
51
|
+
/**
|
|
52
|
+
* The policy decision (ALLOW or DENY).
|
|
53
|
+
*/
|
|
54
|
+
decision: PolicyDecision;
|
|
55
|
+
/**
|
|
56
|
+
* Human-readable reason for the decision.
|
|
57
|
+
*/
|
|
58
|
+
reason?: string;
|
|
59
|
+
/**
|
|
60
|
+
* The rule that matched (if any).
|
|
61
|
+
* Undefined if using default policy.
|
|
62
|
+
*/
|
|
63
|
+
rule?: PolicyRule;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Interface for the policy engine.
|
|
67
|
+
*
|
|
68
|
+
* The policy engine evaluates tool execution requests against a set of rules
|
|
69
|
+
* to determine whether execution should be allowed or denied.
|
|
70
|
+
*
|
|
71
|
+
* Rules are evaluated in order - first matching rule wins.
|
|
72
|
+
*/
|
|
73
|
+
export interface IPolicyEngine {
|
|
74
|
+
/**
|
|
75
|
+
* Add a policy rule.
|
|
76
|
+
* Rules are evaluated in the order they are added.
|
|
77
|
+
*
|
|
78
|
+
* @param rule - The policy rule to add
|
|
79
|
+
*/
|
|
80
|
+
addRule(rule: PolicyRule): void;
|
|
81
|
+
/**
|
|
82
|
+
* Evaluate a tool execution request against policy rules.
|
|
83
|
+
*
|
|
84
|
+
* @param toolName - Name of the tool to execute
|
|
85
|
+
* @param args - Arguments for the tool
|
|
86
|
+
* @returns Policy evaluation result with decision and reason
|
|
87
|
+
*/
|
|
88
|
+
evaluate(toolName: string, args: Record<string, unknown>): PolicyEvaluationResult;
|
|
89
|
+
/**
|
|
90
|
+
* Get all registered policy rules.
|
|
91
|
+
* Useful for debugging and introspection.
|
|
92
|
+
*
|
|
93
|
+
* @returns Read-only array of policy rules
|
|
94
|
+
*/
|
|
95
|
+
getRules(): readonly PolicyRule[];
|
|
96
|
+
/**
|
|
97
|
+
* Remove a policy rule by name.
|
|
98
|
+
*
|
|
99
|
+
* @param name - The name of the rule to remove
|
|
100
|
+
*/
|
|
101
|
+
removeRule(name: string): void;
|
|
102
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Policy Engine Interface.
|
|
3
|
+
*
|
|
4
|
+
* Provides rule-based ALLOW/DENY decisions for tool execution.
|
|
5
|
+
* Designed for autonomous execution - no ASK_USER decisions.
|
|
6
|
+
*
|
|
7
|
+
* Based on gemini-cli's policy engine pattern, simplified for autonomous mode.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { ExecuteOptions, ProcessConfig, ProcessHandle, ProcessInfo, ProcessOutput, ProcessResult } from '../../domain/cipher/process/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Process service interface.
|
|
4
|
+
*
|
|
5
|
+
* Provides secure command execution with foreground/background support,
|
|
6
|
+
* security validation, and resource management.
|
|
7
|
+
*/
|
|
8
|
+
export interface IProcessService {
|
|
9
|
+
/**
|
|
10
|
+
* Clean up completed background processes.
|
|
11
|
+
*
|
|
12
|
+
* Removes processes that have been completed for more than 1 hour.
|
|
13
|
+
*/
|
|
14
|
+
cleanup(): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Execute a shell command.
|
|
17
|
+
*
|
|
18
|
+
* Validates command security, handles approval if needed, and executes
|
|
19
|
+
* either in foreground (waiting for completion) or background (returns immediately).
|
|
20
|
+
*
|
|
21
|
+
* @param command - Shell command to execute
|
|
22
|
+
* @param options - Execution options (timeout, cwd, background, etc.)
|
|
23
|
+
* @returns Process result (foreground) or process handle (background)
|
|
24
|
+
* @throws ProcessError if validation fails, approval denied, or execution fails
|
|
25
|
+
*/
|
|
26
|
+
executeCommand(command: string, options?: ExecuteOptions): Promise<ProcessHandle | ProcessResult>;
|
|
27
|
+
/**
|
|
28
|
+
* Get the current process configuration.
|
|
29
|
+
*
|
|
30
|
+
* @returns Readonly configuration object
|
|
31
|
+
*/
|
|
32
|
+
getConfig(): Readonly<ProcessConfig>;
|
|
33
|
+
/**
|
|
34
|
+
* Get output from a background process.
|
|
35
|
+
*
|
|
36
|
+
* Retrieves new output since last read and clears the buffer (destructive read).
|
|
37
|
+
*
|
|
38
|
+
* @param processId - Unique process identifier
|
|
39
|
+
* @returns Process output with status and exit code (if completed)
|
|
40
|
+
* @throws ProcessError if process not found
|
|
41
|
+
*/
|
|
42
|
+
getProcessOutput(processId: string): Promise<ProcessOutput>;
|
|
43
|
+
/**
|
|
44
|
+
* Initialize the process service.
|
|
45
|
+
*
|
|
46
|
+
* Must be called before executing commands.
|
|
47
|
+
* Performs cleanup of any stale processes from previous runs.
|
|
48
|
+
*/
|
|
49
|
+
initialize(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Terminate a background process.
|
|
52
|
+
*
|
|
53
|
+
* Sends SIGTERM, waits 5 seconds, then escalates to SIGKILL if still running.
|
|
54
|
+
*
|
|
55
|
+
* @param processId - Unique process identifier
|
|
56
|
+
* @throws ProcessError if process not found or kill fails
|
|
57
|
+
*/
|
|
58
|
+
killProcess(processId: string): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* List all background processes.
|
|
61
|
+
*
|
|
62
|
+
* @returns Array of process information (status, timestamps, etc.)
|
|
63
|
+
*/
|
|
64
|
+
listProcesses(): Promise<ProcessInfo[]>;
|
|
65
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { SystemPromptContext } from '../../domain/cipher/system-prompt/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Interface for system prompt contributors.
|
|
4
|
+
* Contributors are responsible for generating parts of the system prompt
|
|
5
|
+
* that will be sent to the LLM. Each contributor has a priority that
|
|
6
|
+
* determines the order in which its content appears in the final prompt.
|
|
7
|
+
*/
|
|
8
|
+
export interface ISystemPromptContributor {
|
|
9
|
+
/**
|
|
10
|
+
* Generate the content for this contributor.
|
|
11
|
+
* @param context - Runtime context containing dependencies and configuration
|
|
12
|
+
* @returns The generated content string
|
|
13
|
+
*/
|
|
14
|
+
getContent(context: SystemPromptContext): Promise<string>;
|
|
15
|
+
/**
|
|
16
|
+
* Unique identifier for this contributor
|
|
17
|
+
*/
|
|
18
|
+
id: string;
|
|
19
|
+
/**
|
|
20
|
+
* Priority for ordering contributors. Lower numbers = higher priority.
|
|
21
|
+
* Contributors are executed in priority order, and their content is
|
|
22
|
+
* concatenated in that order.
|
|
23
|
+
*/
|
|
24
|
+
priority: number;
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interface for tokenizing text according to LLM provider-specific rules.
|
|
3
|
+
* Different LLM providers use different tokenization algorithms, and this interface
|
|
4
|
+
* provides a unified way to count tokens across providers.
|
|
5
|
+
*/
|
|
6
|
+
export interface ITokenizer {
|
|
7
|
+
/**
|
|
8
|
+
* Counts the number of tokens in the provided text according to
|
|
9
|
+
* the specific LLM provider's tokenization rules.
|
|
10
|
+
*
|
|
11
|
+
* @param text - Text content to count tokens for
|
|
12
|
+
* @returns Number of tokens in the text
|
|
13
|
+
*/
|
|
14
|
+
countTokens: (text: string) => number;
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { ToolMarker } from '../../../infra/cipher/tools/tool-markers.js';
|
|
2
|
+
import type { ToolSet } from '../../domain/cipher/tools/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Interface for tool provider.
|
|
5
|
+
* Manages tool registration, validation, and execution.
|
|
6
|
+
*/
|
|
7
|
+
export interface IToolProvider {
|
|
8
|
+
/**
|
|
9
|
+
* Execute a tool with the given arguments.
|
|
10
|
+
*
|
|
11
|
+
* @param toolName - Name of the tool to execute
|
|
12
|
+
* @param args - Tool arguments (will be validated against schema)
|
|
13
|
+
* @param sessionId - Optional session ID for context
|
|
14
|
+
* @returns Tool execution result
|
|
15
|
+
* @throws ToolNotFoundError if tool doesn't exist
|
|
16
|
+
* @throws ToolValidationError if input validation fails
|
|
17
|
+
* @throws ToolExecutionError if execution fails
|
|
18
|
+
*/
|
|
19
|
+
executeTool(toolName: string, args: Record<string, unknown>, sessionId?: string): Promise<unknown>;
|
|
20
|
+
/**
|
|
21
|
+
* Get all registered tools in JSON Schema format.
|
|
22
|
+
* Used to expose tools to the LLM.
|
|
23
|
+
*
|
|
24
|
+
* @returns Tool set with JSON Schema definitions
|
|
25
|
+
*/
|
|
26
|
+
getAllTools(): ToolSet;
|
|
27
|
+
/**
|
|
28
|
+
* Get all available tool markers from registered tools.
|
|
29
|
+
*
|
|
30
|
+
* @returns Set of tool marker strings
|
|
31
|
+
*/
|
|
32
|
+
getAvailableMarkers(): Set<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Get the count of registered tools.
|
|
35
|
+
*
|
|
36
|
+
* @returns Number of registered tools
|
|
37
|
+
*/
|
|
38
|
+
getToolCount(): number;
|
|
39
|
+
/**
|
|
40
|
+
* Get names of all registered tools.
|
|
41
|
+
*
|
|
42
|
+
* @returns Array of tool names
|
|
43
|
+
*/
|
|
44
|
+
getToolNames(): string[];
|
|
45
|
+
/**
|
|
46
|
+
* Get tool names that have a specific marker.
|
|
47
|
+
*
|
|
48
|
+
* @param marker - The tool marker to filter by
|
|
49
|
+
* @returns Array of tool names with the specified marker
|
|
50
|
+
*/
|
|
51
|
+
getToolsByMarker(marker: ToolMarker): string[];
|
|
52
|
+
/**
|
|
53
|
+
* Check if a tool exists.
|
|
54
|
+
*
|
|
55
|
+
* @param toolName - Name of the tool
|
|
56
|
+
* @returns True if the tool exists
|
|
57
|
+
*/
|
|
58
|
+
hasTool(toolName: string): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Initialize the tool provider.
|
|
61
|
+
* Registers all available tools based on available services.
|
|
62
|
+
*/
|
|
63
|
+
initialize(): Promise<void>;
|
|
64
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|