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,105 @@
|
|
|
1
|
+
import type { MemoryManager } from '../memory/memory-manager.js';
|
|
2
|
+
/**
|
|
3
|
+
* Simple prompt configuration loaded from YAML
|
|
4
|
+
*/
|
|
5
|
+
export interface PromptConfig {
|
|
6
|
+
description?: string;
|
|
7
|
+
excluded_tools?: string[];
|
|
8
|
+
prompt: string;
|
|
9
|
+
prompts?: Record<string, string>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Context for building system prompts
|
|
13
|
+
*/
|
|
14
|
+
export interface BuildContext {
|
|
15
|
+
availableMarkers?: Record<string, string>;
|
|
16
|
+
availableTools?: string[];
|
|
17
|
+
commandType?: 'curate' | 'query';
|
|
18
|
+
conversationMetadata?: {
|
|
19
|
+
conversationId?: string;
|
|
20
|
+
title?: string;
|
|
21
|
+
};
|
|
22
|
+
memoryManager?: MemoryManager;
|
|
23
|
+
mode?: 'autonomous' | 'default' | 'query';
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Simple prompt factory following Serena's design pattern.
|
|
27
|
+
*
|
|
28
|
+
* Key features:
|
|
29
|
+
* - Loads simple YAML files with `prompt` field
|
|
30
|
+
* - Uses basic {{variable}} template syntax
|
|
31
|
+
* - No complex contributor pattern
|
|
32
|
+
* - Direct concatenation of base + modes + dynamic content
|
|
33
|
+
*/
|
|
34
|
+
export declare class SimplePromptFactory {
|
|
35
|
+
private readonly basePath;
|
|
36
|
+
private readonly cache;
|
|
37
|
+
private readonly verbose;
|
|
38
|
+
/**
|
|
39
|
+
* Creates a new simple prompt factory
|
|
40
|
+
*
|
|
41
|
+
* @param basePath - Base path for prompt files (defaults to dist/resources/prompts)
|
|
42
|
+
* @param verbose - Enable verbose debug output
|
|
43
|
+
*/
|
|
44
|
+
constructor(basePath?: string, verbose?: boolean);
|
|
45
|
+
/**
|
|
46
|
+
* Build a reflection prompt for completion checking.
|
|
47
|
+
*
|
|
48
|
+
* @param context - Context with iteration information
|
|
49
|
+
* @param context.type - Type of reflection prompt to build
|
|
50
|
+
* @param context.currentIteration - Current iteration number (required for near_max_iterations and mid_point_check)
|
|
51
|
+
* @param context.maxIterations - Maximum iterations allowed (required for near_max_iterations and mid_point_check)
|
|
52
|
+
* @returns Formatted reflection prompt
|
|
53
|
+
*/
|
|
54
|
+
buildReflectionPrompt(context: {
|
|
55
|
+
currentIteration?: number;
|
|
56
|
+
maxIterations?: number;
|
|
57
|
+
type: 'completion_check' | 'final_iteration' | 'mid_point_check' | 'near_max_iterations';
|
|
58
|
+
}): string;
|
|
59
|
+
/**
|
|
60
|
+
* Build the complete system prompt
|
|
61
|
+
*
|
|
62
|
+
* @param context - Runtime context with tools, markers, modes, etc.
|
|
63
|
+
* @returns Complete system prompt string
|
|
64
|
+
*/
|
|
65
|
+
buildSystemPrompt(context?: BuildContext): Promise<string>;
|
|
66
|
+
/**
|
|
67
|
+
* Get tool-specific output guidance for a tool
|
|
68
|
+
*
|
|
69
|
+
* @param toolName - The name of the tool (e.g., 'write_memory')
|
|
70
|
+
* @returns The guidance text if available, null otherwise
|
|
71
|
+
*/
|
|
72
|
+
getToolOutputGuidance(toolName: string): null | string;
|
|
73
|
+
/**
|
|
74
|
+
* Discover companion prompt files for a given mode.
|
|
75
|
+
* Looks for files matching the pattern: {mode}-*.yml
|
|
76
|
+
*
|
|
77
|
+
* @param mode - The mode name (e.g., 'autonomous', 'query')
|
|
78
|
+
* @returns Array of relative file paths to companion prompts
|
|
79
|
+
*/
|
|
80
|
+
private discoverCompanionPrompts;
|
|
81
|
+
/**
|
|
82
|
+
* Format memories for inclusion in system prompt
|
|
83
|
+
*
|
|
84
|
+
* @param memoryManager - Memory manager instance
|
|
85
|
+
* @returns Formatted memories string
|
|
86
|
+
*/
|
|
87
|
+
private formatMemories;
|
|
88
|
+
/**
|
|
89
|
+
* Load a prompt YAML file
|
|
90
|
+
*
|
|
91
|
+
* @param filepath - Relative path from basePath
|
|
92
|
+
* @returns Parsed prompt configuration
|
|
93
|
+
*/
|
|
94
|
+
private loadPrompt;
|
|
95
|
+
/**
|
|
96
|
+
* Render a template string with variable substitution
|
|
97
|
+
*
|
|
98
|
+
* Uses simple {{variable}} syntax (same as current PromptRenderer.render())
|
|
99
|
+
*
|
|
100
|
+
* @param template - Template string with {{variable}} placeholders
|
|
101
|
+
* @param variables - Variables to substitute
|
|
102
|
+
* @returns Rendered string
|
|
103
|
+
*/
|
|
104
|
+
private renderTemplate;
|
|
105
|
+
}
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
import { load as loadYaml } from 'js-yaml';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { listDirectoryChildren } from '../../../utils/file-helpers.js';
|
|
6
|
+
/**
|
|
7
|
+
* Simple prompt factory following Serena's design pattern.
|
|
8
|
+
*
|
|
9
|
+
* Key features:
|
|
10
|
+
* - Loads simple YAML files with `prompt` field
|
|
11
|
+
* - Uses basic {{variable}} template syntax
|
|
12
|
+
* - No complex contributor pattern
|
|
13
|
+
* - Direct concatenation of base + modes + dynamic content
|
|
14
|
+
*/
|
|
15
|
+
export class SimplePromptFactory {
|
|
16
|
+
basePath;
|
|
17
|
+
cache = new Map();
|
|
18
|
+
verbose;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a new simple prompt factory
|
|
21
|
+
*
|
|
22
|
+
* @param basePath - Base path for prompt files (defaults to dist/resources/prompts)
|
|
23
|
+
* @param verbose - Enable verbose debug output
|
|
24
|
+
*/
|
|
25
|
+
constructor(basePath, verbose = false) {
|
|
26
|
+
const currentDir = path.dirname(fileURLToPath(import.meta.url));
|
|
27
|
+
// When compiled: dist/infra/cipher/system-prompt/simple-prompt-factory.js
|
|
28
|
+
// Resources are at: dist/resources/prompts/
|
|
29
|
+
// So we need to go up 3 levels: ../../../resources/prompts
|
|
30
|
+
this.basePath = basePath ?? path.join(currentDir, '../../../resources/prompts');
|
|
31
|
+
this.verbose = verbose;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Build a reflection prompt for completion checking.
|
|
35
|
+
*
|
|
36
|
+
* @param context - Context with iteration information
|
|
37
|
+
* @param context.type - Type of reflection prompt to build
|
|
38
|
+
* @param context.currentIteration - Current iteration number (required for near_max_iterations and mid_point_check)
|
|
39
|
+
* @param context.maxIterations - Maximum iterations allowed (required for near_max_iterations and mid_point_check)
|
|
40
|
+
* @returns Formatted reflection prompt
|
|
41
|
+
*/
|
|
42
|
+
buildReflectionPrompt(context) {
|
|
43
|
+
const reflectionConfig = this.loadPrompt('reflection.yml');
|
|
44
|
+
if (!reflectionConfig.prompts) {
|
|
45
|
+
throw new Error('Invalid reflection.yml file: missing prompts section');
|
|
46
|
+
}
|
|
47
|
+
const template = reflectionConfig.prompts[context.type];
|
|
48
|
+
if (!template) {
|
|
49
|
+
throw new Error(`Reflection prompt type '${context.type}' not found in reflection.yml`);
|
|
50
|
+
}
|
|
51
|
+
if (context.type === 'near_max_iterations' && context.currentIteration && context.maxIterations) {
|
|
52
|
+
/* eslint-disable camelcase */
|
|
53
|
+
return this.renderTemplate(template, {
|
|
54
|
+
current_iteration: context.currentIteration.toString(),
|
|
55
|
+
max_iterations: context.maxIterations.toString(),
|
|
56
|
+
});
|
|
57
|
+
/* eslint-enable camelcase */
|
|
58
|
+
}
|
|
59
|
+
if (context.type === 'mid_point_check' && context.currentIteration && context.maxIterations) {
|
|
60
|
+
const remaining = context.maxIterations - context.currentIteration;
|
|
61
|
+
/* eslint-disable camelcase */
|
|
62
|
+
return this.renderTemplate(template, {
|
|
63
|
+
current_iteration: context.currentIteration.toString(),
|
|
64
|
+
remaining_iterations: remaining.toString(),
|
|
65
|
+
});
|
|
66
|
+
/* eslint-enable camelcase */
|
|
67
|
+
}
|
|
68
|
+
return template;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Build the complete system prompt
|
|
72
|
+
*
|
|
73
|
+
* @param context - Runtime context with tools, markers, modes, etc.
|
|
74
|
+
* @returns Complete system prompt string
|
|
75
|
+
*/
|
|
76
|
+
async buildSystemPrompt(context = {}) {
|
|
77
|
+
if (this.verbose) {
|
|
78
|
+
console.log('[PromptDebug:SimpleFactory] Building system prompt');
|
|
79
|
+
console.log('[PromptDebug:SimpleFactory] Context:', JSON.stringify({
|
|
80
|
+
availableMarkers: Object.keys(context.availableMarkers ?? {}).length,
|
|
81
|
+
availableTools: context.availableTools?.length,
|
|
82
|
+
mode: context.mode,
|
|
83
|
+
}, null, 2));
|
|
84
|
+
}
|
|
85
|
+
// 1. Load base prompt
|
|
86
|
+
const basePrompt = this.loadPrompt('system-prompt.yml');
|
|
87
|
+
// 2. Get memories if available
|
|
88
|
+
const memories = context.memoryManager ? await this.formatMemories(context.memoryManager) : '';
|
|
89
|
+
// 3. Prepare template variables
|
|
90
|
+
// Note: Variable names use snake_case to match template placeholders ({{available_tools}}, etc.)
|
|
91
|
+
/* eslint-disable camelcase */
|
|
92
|
+
const vars = {
|
|
93
|
+
available_markers: Object.keys(context.availableMarkers ?? {}).join(', '),
|
|
94
|
+
available_tools: context.availableTools?.join(', ') ?? '',
|
|
95
|
+
datetime: `<dateTime>Current date and time: ${new Date().toISOString()}</dateTime>`,
|
|
96
|
+
memories,
|
|
97
|
+
};
|
|
98
|
+
/* eslint-enable camelcase */
|
|
99
|
+
// 4. Render base prompt
|
|
100
|
+
let finalPrompt = this.renderTemplate(basePrompt.prompt, vars);
|
|
101
|
+
// 5. Append mode-specific prompts if specified (convention-based loading)
|
|
102
|
+
if (context.mode && context.mode !== 'default') {
|
|
103
|
+
// Load main mode prompt: modes/{mode}.yml
|
|
104
|
+
try {
|
|
105
|
+
const modePrompt = this.loadPrompt(`modes/${context.mode}.yml`);
|
|
106
|
+
finalPrompt = finalPrompt + '\n\n' + modePrompt.prompt;
|
|
107
|
+
if (this.verbose) {
|
|
108
|
+
console.log(`[PromptDebug:SimpleFactory] Loaded mode prompt: modes/${context.mode}.yml`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
if (this.verbose) {
|
|
113
|
+
console.log(`[PromptDebug:SimpleFactory] No mode prompt found: modes/${context.mode}.yml`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Load companion prompts: {commandType}-*.yml or {mode}-*.yml
|
|
117
|
+
// Priority: commandType > mode for companion discovery
|
|
118
|
+
const discoveryKey = context.commandType || context.mode;
|
|
119
|
+
const companionPrompts = this.discoverCompanionPrompts(discoveryKey);
|
|
120
|
+
const contextTree = listDirectoryChildren('.brv/context-tree');
|
|
121
|
+
const contextTreeString = JSON.stringify(contextTree, undefined, 2);
|
|
122
|
+
finalPrompt = finalPrompt + '\n\n' + contextTreeString;
|
|
123
|
+
if (this.verbose) {
|
|
124
|
+
console.log(`[PromptDebug:SimpleFactory] Discovering companion prompts with key: ${discoveryKey}`);
|
|
125
|
+
}
|
|
126
|
+
for (const companionPath of companionPrompts) {
|
|
127
|
+
try {
|
|
128
|
+
const companionPrompt = this.loadPrompt(companionPath);
|
|
129
|
+
finalPrompt = finalPrompt + '\n\n' + companionPrompt.prompt;
|
|
130
|
+
if (this.verbose) {
|
|
131
|
+
console.log(`[PromptDebug:SimpleFactory] Loaded companion prompt: ${companionPath}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
if (this.verbose) {
|
|
136
|
+
console.log(`[PromptDebug:SimpleFactory] Failed to load companion prompt: ${companionPath}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (this.verbose) {
|
|
142
|
+
console.log(`[PromptDebug:SimpleFactory] Final prompt: ${finalPrompt.length} chars`);
|
|
143
|
+
console.log(`[PromptDebug:SimpleFactory] Preview (first 200): ${finalPrompt.slice(0, 200)}`);
|
|
144
|
+
console.log(`[PromptDebug:SimpleFactory] Preview (last 200): ${finalPrompt.slice(-200)}`);
|
|
145
|
+
}
|
|
146
|
+
return finalPrompt;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Get tool-specific output guidance for a tool
|
|
150
|
+
*
|
|
151
|
+
* @param toolName - The name of the tool (e.g., 'write_memory')
|
|
152
|
+
* @returns The guidance text if available, null otherwise
|
|
153
|
+
*/
|
|
154
|
+
getToolOutputGuidance(toolName) {
|
|
155
|
+
try {
|
|
156
|
+
// Load tool-outputs.yml
|
|
157
|
+
const toolOutputsConfig = this.loadPrompt('tool-outputs.yml');
|
|
158
|
+
// Check if prompts section exists and has the requested prompt
|
|
159
|
+
if (toolOutputsConfig.prompts) {
|
|
160
|
+
const promptKey = `${toolName}_output`;
|
|
161
|
+
const guidance = toolOutputsConfig.prompts[promptKey];
|
|
162
|
+
if (guidance) {
|
|
163
|
+
if (this.verbose) {
|
|
164
|
+
console.log(`[PromptDebug:SimpleFactory] Found tool guidance for: ${toolName}`);
|
|
165
|
+
}
|
|
166
|
+
return guidance;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
if (this.verbose) {
|
|
170
|
+
console.log(`[PromptDebug:SimpleFactory] No tool guidance found for: ${toolName}`);
|
|
171
|
+
}
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
// If tool-outputs.yml doesn't exist or can't be loaded, return null
|
|
176
|
+
if (this.verbose) {
|
|
177
|
+
console.log(`[PromptDebug:SimpleFactory] Error loading tool guidance: ${error}`);
|
|
178
|
+
}
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Discover companion prompt files for a given mode.
|
|
184
|
+
* Looks for files matching the pattern: {mode}-*.yml
|
|
185
|
+
*
|
|
186
|
+
* @param mode - The mode name (e.g., 'autonomous', 'query')
|
|
187
|
+
* @returns Array of relative file paths to companion prompts
|
|
188
|
+
*/
|
|
189
|
+
discoverCompanionPrompts(mode) {
|
|
190
|
+
const companionPrompts = [];
|
|
191
|
+
try {
|
|
192
|
+
// Read all files in the prompts directory
|
|
193
|
+
const files = fs.readdirSync(this.basePath);
|
|
194
|
+
// Filter files matching {mode}-*.yml pattern
|
|
195
|
+
const pattern = new RegExp(`^${mode}-.*\\.yml$`);
|
|
196
|
+
const matchingFiles = files.filter((file) => pattern.test(file));
|
|
197
|
+
// Add matching files to result
|
|
198
|
+
for (const file of matchingFiles) {
|
|
199
|
+
companionPrompts.push(file);
|
|
200
|
+
}
|
|
201
|
+
if (this.verbose && companionPrompts.length > 0) {
|
|
202
|
+
console.log(`[PromptDebug:SimpleFactory] Found ${companionPrompts.length} companion prompts for mode '${mode}':`, companionPrompts);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
catch (error) {
|
|
206
|
+
if (this.verbose) {
|
|
207
|
+
console.log(`[PromptDebug:SimpleFactory] Error discovering companion prompts: ${error}`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return companionPrompts;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Format memories for inclusion in system prompt
|
|
214
|
+
*
|
|
215
|
+
* @param memoryManager - Memory manager instance
|
|
216
|
+
* @returns Formatted memories string
|
|
217
|
+
*/
|
|
218
|
+
async formatMemories(memoryManager) {
|
|
219
|
+
try {
|
|
220
|
+
const memories = await memoryManager.list({ limit: 20 });
|
|
221
|
+
if (!memories || memories.length === 0) {
|
|
222
|
+
return '';
|
|
223
|
+
}
|
|
224
|
+
const items = memories.map((memory) => {
|
|
225
|
+
const tags = memory.tags && memory.tags.length > 0 ? ` [${memory.tags.join(', ')}]` : '';
|
|
226
|
+
return `- ${memory.content}${tags}`;
|
|
227
|
+
});
|
|
228
|
+
return `\n# Agent Memories\n${items.join('\n')}\n`;
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
return '';
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Load a prompt YAML file
|
|
236
|
+
*
|
|
237
|
+
* @param filepath - Relative path from basePath
|
|
238
|
+
* @returns Parsed prompt configuration
|
|
239
|
+
*/
|
|
240
|
+
loadPrompt(filepath) {
|
|
241
|
+
// Check cache
|
|
242
|
+
if (this.cache.has(filepath)) {
|
|
243
|
+
if (this.verbose) {
|
|
244
|
+
console.log(`[PromptDebug:SimpleFactory] Cache hit: ${filepath}`);
|
|
245
|
+
}
|
|
246
|
+
return this.cache.get(filepath);
|
|
247
|
+
}
|
|
248
|
+
// Load from file
|
|
249
|
+
const fullPath = path.join(this.basePath, filepath);
|
|
250
|
+
if (this.verbose) {
|
|
251
|
+
console.log(`[PromptDebug:SimpleFactory] Loading: ${fullPath}`);
|
|
252
|
+
}
|
|
253
|
+
if (!fs.existsSync(fullPath)) {
|
|
254
|
+
throw new Error(`Prompt file not found: ${fullPath}`);
|
|
255
|
+
}
|
|
256
|
+
const yamlContent = fs.readFileSync(fullPath, 'utf8');
|
|
257
|
+
const config = loadYaml(yamlContent);
|
|
258
|
+
// Allow files with either 'prompt' (for regular prompts) or 'prompts' (for tool-outputs.yml)
|
|
259
|
+
if (!config.prompt && !config.prompts) {
|
|
260
|
+
throw new Error(`Invalid prompt file (missing 'prompt' or 'prompts' field): ${filepath}`);
|
|
261
|
+
}
|
|
262
|
+
if (this.verbose) {
|
|
263
|
+
console.log(`[PromptDebug:SimpleFactory] Loaded: ${yamlContent.length} bytes`);
|
|
264
|
+
}
|
|
265
|
+
// Cache the config
|
|
266
|
+
this.cache.set(filepath, config);
|
|
267
|
+
return config;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Render a template string with variable substitution
|
|
271
|
+
*
|
|
272
|
+
* Uses simple {{variable}} syntax (same as current PromptRenderer.render())
|
|
273
|
+
*
|
|
274
|
+
* @param template - Template string with {{variable}} placeholders
|
|
275
|
+
* @param variables - Variables to substitute
|
|
276
|
+
* @returns Rendered string
|
|
277
|
+
*/
|
|
278
|
+
renderTemplate(template, variables) {
|
|
279
|
+
if (this.verbose && Object.keys(variables).length > 0) {
|
|
280
|
+
console.log(`[PromptDebug:SimpleFactory] Substituting variables:`, Object.keys(variables));
|
|
281
|
+
}
|
|
282
|
+
let result = template;
|
|
283
|
+
// Replace {{variable}} with values
|
|
284
|
+
for (const [key, value] of Object.entries(variables)) {
|
|
285
|
+
const regex = new RegExp(`{{\\s*${key}\\s*}}`, 'g');
|
|
286
|
+
result = result.replaceAll(regex, value ?? '');
|
|
287
|
+
}
|
|
288
|
+
return result;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Tool Scheduler Implementation.
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates tool execution with:
|
|
5
|
+
* 1. Policy checking (ALLOW/DENY)
|
|
6
|
+
* 2. State tracking (pending → executing → completed/failed/denied)
|
|
7
|
+
* 3. Execution history for debugging/auditing
|
|
8
|
+
*
|
|
9
|
+
* Based on gemini-cli's CoreToolScheduler pattern, simplified for autonomous mode.
|
|
10
|
+
*/
|
|
11
|
+
import type { IPolicyEngine, PolicyEvaluationResult } from '../../../core/interfaces/cipher/i-policy-engine.js';
|
|
12
|
+
import type { IToolProvider } from '../../../core/interfaces/cipher/i-tool-provider.js';
|
|
13
|
+
import type { IToolScheduler, ScheduledToolExecution, ToolSchedulerContext } from '../../../core/interfaces/cipher/i-tool-scheduler.js';
|
|
14
|
+
import type { SessionEventBus } from '../events/event-emitter.js';
|
|
15
|
+
/**
|
|
16
|
+
* Configuration options for CoreToolScheduler.
|
|
17
|
+
*/
|
|
18
|
+
export interface CoreToolSchedulerConfig {
|
|
19
|
+
/**
|
|
20
|
+
* Maximum number of executions to keep in history.
|
|
21
|
+
* Older executions are removed when this limit is exceeded.
|
|
22
|
+
* @default 100
|
|
23
|
+
*/
|
|
24
|
+
maxHistorySize?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Whether to log state changes to console.
|
|
27
|
+
* @default false
|
|
28
|
+
*/
|
|
29
|
+
verbose?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Error thrown when a tool is denied by policy.
|
|
33
|
+
*/
|
|
34
|
+
export declare class ToolDeniedError extends Error {
|
|
35
|
+
readonly policyResult: PolicyEvaluationResult;
|
|
36
|
+
readonly toolName: string;
|
|
37
|
+
constructor(toolName: string, policyResult: PolicyEvaluationResult);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Core Tool Scheduler implementation.
|
|
41
|
+
*
|
|
42
|
+
* Coordinates tool execution by:
|
|
43
|
+
* 1. Checking policy rules before execution
|
|
44
|
+
* 2. Tracking execution state transitions
|
|
45
|
+
* 3. Maintaining execution history for debugging
|
|
46
|
+
*/
|
|
47
|
+
export declare class CoreToolScheduler implements IToolScheduler {
|
|
48
|
+
private readonly config;
|
|
49
|
+
private readonly eventBus?;
|
|
50
|
+
private history;
|
|
51
|
+
private readonly policyEngine;
|
|
52
|
+
private readonly toolProvider;
|
|
53
|
+
/**
|
|
54
|
+
* Create a new CoreToolScheduler.
|
|
55
|
+
*
|
|
56
|
+
* @param toolProvider - Provider for tool execution
|
|
57
|
+
* @param policyEngine - Engine for policy decisions
|
|
58
|
+
* @param eventBus - Optional event bus for emitting events
|
|
59
|
+
* @param config - Configuration options
|
|
60
|
+
*/
|
|
61
|
+
constructor(toolProvider: IToolProvider, policyEngine: IPolicyEngine, eventBus?: SessionEventBus, config?: CoreToolSchedulerConfig);
|
|
62
|
+
/**
|
|
63
|
+
* Clear execution history.
|
|
64
|
+
*/
|
|
65
|
+
clearHistory(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Schedule and execute a tool call.
|
|
68
|
+
*
|
|
69
|
+
* @param toolName - Name of the tool to execute
|
|
70
|
+
* @param args - Arguments for the tool
|
|
71
|
+
* @param context - Execution context with session info
|
|
72
|
+
* @returns Tool execution result
|
|
73
|
+
* @throws ToolDeniedError if tool is denied by policy
|
|
74
|
+
* @throws Error if execution fails
|
|
75
|
+
*/
|
|
76
|
+
execute(toolName: string, args: Record<string, unknown>, context: ToolSchedulerContext): Promise<unknown>;
|
|
77
|
+
/**
|
|
78
|
+
* Get execution history.
|
|
79
|
+
*
|
|
80
|
+
* @returns Read-only array of scheduled executions
|
|
81
|
+
*/
|
|
82
|
+
getHistory(): readonly ScheduledToolExecution[];
|
|
83
|
+
/**
|
|
84
|
+
* Add an execution to history, maintaining max size.
|
|
85
|
+
*/
|
|
86
|
+
private addToHistory;
|
|
87
|
+
/**
|
|
88
|
+
* Create a new execution record.
|
|
89
|
+
*/
|
|
90
|
+
private createExecution;
|
|
91
|
+
/**
|
|
92
|
+
* Emit policy check event.
|
|
93
|
+
*/
|
|
94
|
+
private emitPolicyChecked;
|
|
95
|
+
/**
|
|
96
|
+
* Update execution status and emit event.
|
|
97
|
+
*/
|
|
98
|
+
private updateStatus;
|
|
99
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Tool Scheduler Implementation.
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates tool execution with:
|
|
5
|
+
* 1. Policy checking (ALLOW/DENY)
|
|
6
|
+
* 2. State tracking (pending → executing → completed/failed/denied)
|
|
7
|
+
* 3. Execution history for debugging/auditing
|
|
8
|
+
*
|
|
9
|
+
* Based on gemini-cli's CoreToolScheduler pattern, simplified for autonomous mode.
|
|
10
|
+
*/
|
|
11
|
+
import { randomUUID } from 'node:crypto';
|
|
12
|
+
/**
|
|
13
|
+
* Error thrown when a tool is denied by policy.
|
|
14
|
+
*/
|
|
15
|
+
export class ToolDeniedError extends Error {
|
|
16
|
+
policyResult;
|
|
17
|
+
toolName;
|
|
18
|
+
constructor(toolName, policyResult) {
|
|
19
|
+
super(`Tool '${toolName}' denied by policy: ${policyResult.reason ?? 'No reason provided'}`);
|
|
20
|
+
this.name = 'ToolDeniedError';
|
|
21
|
+
this.toolName = toolName;
|
|
22
|
+
this.policyResult = policyResult;
|
|
23
|
+
// Maintain proper stack trace
|
|
24
|
+
if (Error.captureStackTrace) {
|
|
25
|
+
Error.captureStackTrace(this, ToolDeniedError);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Core Tool Scheduler implementation.
|
|
31
|
+
*
|
|
32
|
+
* Coordinates tool execution by:
|
|
33
|
+
* 1. Checking policy rules before execution
|
|
34
|
+
* 2. Tracking execution state transitions
|
|
35
|
+
* 3. Maintaining execution history for debugging
|
|
36
|
+
*/
|
|
37
|
+
export class CoreToolScheduler {
|
|
38
|
+
config;
|
|
39
|
+
eventBus;
|
|
40
|
+
history = [];
|
|
41
|
+
policyEngine;
|
|
42
|
+
toolProvider;
|
|
43
|
+
/**
|
|
44
|
+
* Create a new CoreToolScheduler.
|
|
45
|
+
*
|
|
46
|
+
* @param toolProvider - Provider for tool execution
|
|
47
|
+
* @param policyEngine - Engine for policy decisions
|
|
48
|
+
* @param eventBus - Optional event bus for emitting events
|
|
49
|
+
* @param config - Configuration options
|
|
50
|
+
*/
|
|
51
|
+
constructor(toolProvider, policyEngine, eventBus, config = {}) {
|
|
52
|
+
this.toolProvider = toolProvider;
|
|
53
|
+
this.policyEngine = policyEngine;
|
|
54
|
+
this.eventBus = eventBus;
|
|
55
|
+
this.config = {
|
|
56
|
+
maxHistorySize: config.maxHistorySize ?? 100,
|
|
57
|
+
verbose: config.verbose ?? false,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Clear execution history.
|
|
62
|
+
*/
|
|
63
|
+
clearHistory() {
|
|
64
|
+
this.history = [];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Schedule and execute a tool call.
|
|
68
|
+
*
|
|
69
|
+
* @param toolName - Name of the tool to execute
|
|
70
|
+
* @param args - Arguments for the tool
|
|
71
|
+
* @param context - Execution context with session info
|
|
72
|
+
* @returns Tool execution result
|
|
73
|
+
* @throws ToolDeniedError if tool is denied by policy
|
|
74
|
+
* @throws Error if execution fails
|
|
75
|
+
*/
|
|
76
|
+
async execute(toolName, args, context) {
|
|
77
|
+
// Create execution record
|
|
78
|
+
const execution = this.createExecution(toolName, args);
|
|
79
|
+
// Step 1: Policy check
|
|
80
|
+
const policyResult = this.policyEngine.evaluate(toolName, args);
|
|
81
|
+
execution.policyResult = policyResult;
|
|
82
|
+
this.emitPolicyChecked(execution, policyResult);
|
|
83
|
+
if (policyResult.decision === 'DENY') {
|
|
84
|
+
this.updateStatus(execution, 'denied');
|
|
85
|
+
execution.completedAt = new Date();
|
|
86
|
+
const error = new ToolDeniedError(toolName, policyResult);
|
|
87
|
+
execution.error = error;
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
// Step 2: Execute
|
|
91
|
+
this.updateStatus(execution, 'executing');
|
|
92
|
+
execution.startedAt = new Date();
|
|
93
|
+
try {
|
|
94
|
+
const result = await this.toolProvider.executeTool(toolName, args, context.sessionId);
|
|
95
|
+
this.updateStatus(execution, 'completed');
|
|
96
|
+
execution.result = result;
|
|
97
|
+
execution.completedAt = new Date();
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
this.updateStatus(execution, 'failed');
|
|
102
|
+
execution.error = error instanceof Error ? error : new Error(String(error));
|
|
103
|
+
execution.completedAt = new Date();
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Get execution history.
|
|
109
|
+
*
|
|
110
|
+
* @returns Read-only array of scheduled executions
|
|
111
|
+
*/
|
|
112
|
+
getHistory() {
|
|
113
|
+
return this.history;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Add an execution to history, maintaining max size.
|
|
117
|
+
*/
|
|
118
|
+
addToHistory(execution) {
|
|
119
|
+
this.history.push(execution);
|
|
120
|
+
if (this.history.length > this.config.maxHistorySize) {
|
|
121
|
+
this.history.shift();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Create a new execution record.
|
|
126
|
+
*/
|
|
127
|
+
createExecution(toolName, args) {
|
|
128
|
+
const execution = {
|
|
129
|
+
args,
|
|
130
|
+
id: randomUUID(),
|
|
131
|
+
status: 'pending',
|
|
132
|
+
toolName,
|
|
133
|
+
};
|
|
134
|
+
this.addToHistory(execution);
|
|
135
|
+
return execution;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Emit policy check event.
|
|
139
|
+
*/
|
|
140
|
+
emitPolicyChecked(execution, result) {
|
|
141
|
+
if (this.config.verbose) {
|
|
142
|
+
console.debug(`[ToolScheduler] Policy check for '${execution.toolName}': ${result.decision}` +
|
|
143
|
+
(result.reason ? ` (${result.reason})` : ''));
|
|
144
|
+
}
|
|
145
|
+
// Emit warning for denied tools
|
|
146
|
+
if (this.eventBus && result.decision === 'DENY') {
|
|
147
|
+
this.eventBus.emit('llmservice:warning', {
|
|
148
|
+
message: `Tool '${execution.toolName}' denied by policy: ${result.reason ?? 'No reason provided'}`,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Update execution status and emit event.
|
|
154
|
+
*/
|
|
155
|
+
updateStatus(execution, status) {
|
|
156
|
+
execution.status = status;
|
|
157
|
+
if (this.config.verbose) {
|
|
158
|
+
console.debug(`[ToolScheduler] ${execution.toolName}: ${status}`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default Policy Rules for Autonomous Execution.
|
|
3
|
+
*
|
|
4
|
+
* These rules define the default behavior for tool execution in autonomous mode.
|
|
5
|
+
* All tools are ALLOWED by default since the agent runs without user approval.
|
|
6
|
+
*
|
|
7
|
+
* DENY rules are only for truly dangerous operations that should never run,
|
|
8
|
+
* such as destructive commands that could harm the system.
|
|
9
|
+
*/
|
|
10
|
+
import type { PolicyRule } from '../../../core/interfaces/cipher/i-policy-engine.js';
|
|
11
|
+
/**
|
|
12
|
+
* Default policy rules for autonomous execution.
|
|
13
|
+
*
|
|
14
|
+
* Rule evaluation order:
|
|
15
|
+
* 1. DENY rules for dangerous operations (evaluated first via conditions)
|
|
16
|
+
* 2. ALLOW rules for all known tool categories
|
|
17
|
+
* 3. Default ALLOW for any unlisted tools
|
|
18
|
+
*/
|
|
19
|
+
export declare const DEFAULT_POLICY_RULES: PolicyRule[];
|
|
20
|
+
/**
|
|
21
|
+
* Create a copy of the default rules.
|
|
22
|
+
* Useful when you want to modify rules without affecting the defaults.
|
|
23
|
+
*
|
|
24
|
+
* @returns A new array with copies of the default rules
|
|
25
|
+
*/
|
|
26
|
+
export declare function createDefaultPolicyRules(): PolicyRule[];
|