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,82 @@
|
|
|
1
|
+
description: "Cipher agent base system prompt"
|
|
2
|
+
prompt: |
|
|
3
|
+
You are an professional context engineer concerned with one particular codebase. You have access to semantic knowledge tools on which you rely heavily for all your work, as well as collection of markdown files and directories (context tree) containing general context about the codebase. You operate in a resource-efficient and intelligent manner, always keeping in mind to not read or generate content that is not needed for the task at hand.
|
|
4
|
+
|
|
5
|
+
when process the information to create, update and delele (CUD) the context in the context tree, or return (R) the context from it, you should try to process the only the context that is important. the important context what developer has prompted the agent to do and the agent should remember it for future reference.
|
|
6
|
+
|
|
7
|
+
you rely on the input data and the current context tree to decide what is necessry for CUD operations from the context tree. the context tree is a hierarchical structure of knowledge topics, each topic is a directory and contains a README.md file and other files and directories. the location of context tree is always at your current working directory under the .brv/context-tree/ directory.
|
|
8
|
+
|
|
9
|
+
IMPORTANT: You must ONLY use the provided functions by making function calls. NEVER generate Python code, print statements, or API calls. Always respond with direct function calls using the exact function names provided.
|
|
10
|
+
|
|
11
|
+
## Tool Selection Guidelines
|
|
12
|
+
|
|
13
|
+
**Context Retrieval (queries, lookups):**
|
|
14
|
+
- `find_knowledge_topics` - Search the context tree for curated knowledge (try this first)
|
|
15
|
+
- `grep_content` - Search code files when context tree has no answers
|
|
16
|
+
- `glob_files` - Find files by name patterns
|
|
17
|
+
- `read_file` - Read specific files after locating them
|
|
18
|
+
|
|
19
|
+
**Context Curation (organizing knowledge):**
|
|
20
|
+
- `detect_domains` - Identify knowledge domains in user input (required first step)
|
|
21
|
+
- `find_knowledge_topics` - Check existing context before creating duplicates
|
|
22
|
+
- `create_knowledge_topic` - Organize new context into the context tree
|
|
23
|
+
- Use `grep_content`, `glob_files`, `read_file` to gather information from codebase
|
|
24
|
+
|
|
25
|
+
**File Modification:**
|
|
26
|
+
- `write_file` - Create new files
|
|
27
|
+
- `edit_file` - Modify existing files
|
|
28
|
+
|
|
29
|
+
**Process Execution:**
|
|
30
|
+
- `bash_exec` - Execute shell commands
|
|
31
|
+
- `bash_output` - Read output from background processes
|
|
32
|
+
- `kill_process` - Terminate background processes
|
|
33
|
+
|
|
34
|
+
**Most Important:** Avoid reading the entire context tree. Use targeted searches with `find_knowledge_topics` for the context tree, or `grep_content` for code files. Every tool call has a cost - if you have the answer, provide it immediately.
|
|
35
|
+
|
|
36
|
+
## Common Mistakes to Avoid
|
|
37
|
+
|
|
38
|
+
- Don't use `detect_domains` for queries (only for context curation)
|
|
39
|
+
- Don't use bash `ls` or `find` when `glob_files` or `find_knowledge_topics` exist
|
|
40
|
+
- Don't read multiple files without confirming relevance first
|
|
41
|
+
- Don't continue exploring after you have the answer
|
|
42
|
+
|
|
43
|
+
## Task Management with write_todos
|
|
44
|
+
|
|
45
|
+
Use the `write_todos` tool to create and manage a structured task list for complex tasks. This helps you:
|
|
46
|
+
- Track progress on multi-step operations
|
|
47
|
+
- Organize complex tasks into manageable steps
|
|
48
|
+
- Demonstrate thoroughness to the user
|
|
49
|
+
|
|
50
|
+
**When to use write_todos:**
|
|
51
|
+
- Complex multi-step tasks (3+ distinct steps)
|
|
52
|
+
- Non-trivial tasks requiring careful planning
|
|
53
|
+
- When the user provides multiple tasks or a list of things to do
|
|
54
|
+
- After receiving new instructions, to capture requirements
|
|
55
|
+
|
|
56
|
+
**When NOT to use write_todos:**
|
|
57
|
+
- Single, straightforward tasks
|
|
58
|
+
- Trivial tasks completed in less than 3 steps
|
|
59
|
+
- Purely conversational or informational requests
|
|
60
|
+
|
|
61
|
+
**Task States:**
|
|
62
|
+
- `pending`: Task not yet started
|
|
63
|
+
- `in_progress`: Currently working on (ONLY ONE at a time)
|
|
64
|
+
- `completed`: Task finished successfully
|
|
65
|
+
- `cancelled`: Task no longer needed
|
|
66
|
+
|
|
67
|
+
**Important Rules:**
|
|
68
|
+
- Mark tasks as `in_progress` BEFORE starting work
|
|
69
|
+
- Mark tasks as `completed` IMMEDIATELY after finishing
|
|
70
|
+
- Only ONE task can be `in_progress` at any time
|
|
71
|
+
- Each task needs both `content` (imperative: "Run tests") and `activeForm` (present continuous: "Running tests")
|
|
72
|
+
|
|
73
|
+
## Context Tree Structure
|
|
74
|
+
|
|
75
|
+
Contexts are define by the path name in the context tree. for example, the context tree is located at `.brv/context-tree/` and the context is located at `.brv/context-tree/domain-name/topic-name/`. the context is the topic-name and the content of the context is the content of the `context.md` file in the topic-name directory. under the topic-name directory, you can have subtopics and each subtopic has its own `context.md` file.
|
|
76
|
+
|
|
77
|
+
the context tree maintains a flat hierarchy with a maximum depth of 2 levels: domain → topic → subtopic. subtopics represent the deepest organizational level and cannot contain nested subtopics. when dealing with complex information that seems to require deeper nesting, restructure it as separate topics within the same domain instead
|
|
78
|
+
|
|
79
|
+
{{datetime}}
|
|
80
|
+
|
|
81
|
+
Available tools: {{available_tools}}
|
|
82
|
+
excluded_tools: []
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
description: "Tool-specific output guidance prompts for Cipher agent"
|
|
2
|
+
prompts:
|
|
3
|
+
write_memory_output: |
|
|
4
|
+
Memory saved successfully. You can reference this memory later using its ID.
|
|
5
|
+
Make sure all context has been saved to context tree.
|
|
6
|
+
|
|
7
|
+
read_memory_output: |
|
|
8
|
+
Memory retrieved. Use this information to complete your task.
|
|
9
|
+
Make sure all context has been gathered for the task.
|
|
10
|
+
|
|
11
|
+
list_memories_output: |
|
|
12
|
+
Memories listed. Use read_memory for full details if truly needed, or proceed with your task.
|
|
13
|
+
|
|
14
|
+
edit_memory_output: |
|
|
15
|
+
Memory updated successfully.
|
|
16
|
+
|
|
17
|
+
delete_memory_output: |
|
|
18
|
+
Memory deleted successfully.
|
|
19
|
+
|
|
20
|
+
detect_domains_output: |
|
|
21
|
+
Domains detected. Now use create_knowledge_topic to organize them into the context tree.
|
|
22
|
+
|
|
23
|
+
create_knowledge_topic_output: |
|
|
24
|
+
Knowledge topic created successfully.
|
|
25
|
+
If you detected multiple domains, create topics for the remaining ones.
|
|
26
|
+
Once all domains are organized, your curation task is complete.
|
|
27
|
+
|
|
28
|
+
find_knowledge_topics_output: |
|
|
29
|
+
Search complete. If results contain the information needed, use it to answer the question.
|
|
30
|
+
Use includeContent or followRelations if the current results are insufficient.
|
package/dist/templates/README.md
CHANGED
|
@@ -24,16 +24,15 @@ The main template structure that combines all sections into the final output.
|
|
|
24
24
|
- `{{command_reference}}` - Content from `sections/command-reference.md`
|
|
25
25
|
|
|
26
26
|
### `sections/workflow.md`
|
|
27
|
-
Complete guide to the
|
|
27
|
+
Complete guide to the context tree workflow:
|
|
28
28
|
- Quick start examples
|
|
29
|
-
- Command reference for
|
|
30
|
-
-
|
|
31
|
-
- Best practices for using ACE
|
|
29
|
+
- Command reference for context management
|
|
30
|
+
- Best practices for using context tree
|
|
32
31
|
- Examples with real use cases
|
|
33
32
|
|
|
34
33
|
### `sections/command-reference.md`
|
|
35
34
|
Comprehensive documentation of all BR CLI commands:
|
|
36
|
-
- Root commands (login, init, status, add, gen-rules,
|
|
35
|
+
- Root commands (login, init, status, add, gen-rules, push, watch, cipher-agent)
|
|
37
36
|
- Space commands (list, switch)
|
|
38
37
|
|
|
39
38
|
Each command includes:
|
|
@@ -64,7 +63,7 @@ The template system supports simple variable substitution using `{{variable_name
|
|
|
64
63
|
### To Update Command Documentation:
|
|
65
64
|
Edit `sections/command-reference.md` - changes will be reflected next time `brv gen-rules` runs.
|
|
66
65
|
|
|
67
|
-
### To Update
|
|
66
|
+
### To Update Context Tree Workflow Guide:
|
|
68
67
|
Edit `sections/workflow.md` - changes will be reflected next time `brv gen-rules` runs.
|
|
69
68
|
|
|
70
69
|
### To Change Output Structure:
|
|
@@ -83,7 +82,7 @@ This template system is designed to support future improvements:
|
|
|
83
82
|
- Context-aware content (show different sections based on project state)
|
|
84
83
|
- Agent-specific customizations (per-agent template overrides)
|
|
85
84
|
- Conditional sections (e.g., show memory commands only if authenticated)
|
|
86
|
-
- Dynamic variable injection (project status,
|
|
85
|
+
- Dynamic variable injection (project status, context tree stats, etc.)
|
|
87
86
|
|
|
88
87
|
## Technical Details
|
|
89
88
|
|
|
@@ -2,158 +2,87 @@
|
|
|
2
2
|
|
|
3
3
|
## Memory Commands
|
|
4
4
|
|
|
5
|
-
### `brv
|
|
5
|
+
### `brv curate`
|
|
6
6
|
|
|
7
|
-
**Description:**
|
|
7
|
+
**Description:** Curate context to the context tree (interactive or autonomous mode)
|
|
8
8
|
|
|
9
|
-
**
|
|
10
|
-
|
|
11
|
-
- `-s, --section <string>`: Section name for the bullet (required)
|
|
12
|
-
- `-c, --content <string>`: Content of the bullet (required)
|
|
13
|
-
- `-b, --bullet-id <string>`: Bullet ID to update (optional, creates new if omitted)
|
|
14
|
-
|
|
15
|
-
**Examples:**
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
brv add --section "Common Errors" --content "Authentication fails when token expires"
|
|
19
|
-
brv add --section "Common Errors" --bullet-id "common-00001" --content "Updated: Auth fails when token expires"
|
|
20
|
-
brv add -s "Best Practices" -c "Always validate user input before processing"
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
**Suggested Sections:** Common Errors, Best Practices, Strategies, Lessons Learned, Project Structure and Dependencies, Testing, Code Style and Quality, Styling and Design
|
|
24
|
-
|
|
25
|
-
**Behavior:**
|
|
26
|
-
|
|
27
|
-
- Warns if using non-standard section name
|
|
28
|
-
- Creates new bullet with auto-generated ID if `--bullet-id` not provided
|
|
29
|
-
- Updates existing bullet if `--bullet-id` matches existing bullet
|
|
30
|
-
- Displays bullet ID, section, content, and tags after operation
|
|
31
|
-
|
|
32
|
-
**Requirements:** Playbook must exist (run `brv init` first)
|
|
9
|
+
**Arguments:**
|
|
33
10
|
|
|
34
|
-
|
|
11
|
+
- `CONTEXT`: Knowledge context: patterns, decisions, errors, or insights (triggers autonomous mode, optional)
|
|
35
12
|
|
|
36
|
-
|
|
13
|
+
**Good examples of context:**
|
|
37
14
|
|
|
38
|
-
|
|
15
|
+
- "Auth uses JWT with 24h expiry. Tokens stored in httpOnly cookies via authMiddleware.ts"
|
|
16
|
+
- "API rate limit is 100 req/min per user. Implemented using Redis with sliding window in rateLimiter.ts"
|
|
39
17
|
|
|
40
|
-
**
|
|
18
|
+
**Bad examples:**
|
|
41
19
|
|
|
42
|
-
-
|
|
43
|
-
-
|
|
20
|
+
- "Authentication" or "JWT tokens" (too vague, lacks context)
|
|
21
|
+
- "Rate limiting" (no implementation details or file references)
|
|
44
22
|
|
|
45
23
|
**Examples:**
|
|
46
24
|
|
|
47
25
|
```bash
|
|
48
|
-
|
|
49
|
-
brv
|
|
50
|
-
|
|
26
|
+
# Interactive mode (manually choose domain/topic)
|
|
27
|
+
brv curate
|
|
28
|
+
|
|
29
|
+
# Autonomous mode - LLM auto-categorizes your context
|
|
30
|
+
brv curate "Auth uses JWT with 24h expiry. Tokens stored in httpOnly cookies via authMiddleware.ts"
|
|
51
31
|
```
|
|
52
32
|
|
|
53
33
|
**Behavior:**
|
|
54
34
|
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
- Combines both result sets into playbook
|
|
58
|
-
- Maps memory fields: `bulletId` → `id`, `tags` → `metadata.tags`, `nodeKeys` → `metadata.relatedFiles`
|
|
59
|
-
- Displays results with score, content preview (200 chars), and related file paths
|
|
60
|
-
- Fail-safe: warns on save error but still displays results
|
|
61
|
-
|
|
62
|
-
**Output:** Shows count of memories and related memories, displays each with score and content
|
|
35
|
+
- Interactive mode: Navigate context tree, create topic folder, edit context.md
|
|
36
|
+
- Autonomous mode: LLM automatically categorizes and places context in appropriate location
|
|
63
37
|
|
|
64
|
-
**Requirements:**
|
|
38
|
+
**Requirements:** Project must be initialized (`brv init`) and authenticated (`brv login`)
|
|
65
39
|
|
|
66
40
|
---
|
|
67
41
|
|
|
68
|
-
### `brv
|
|
42
|
+
### `brv query`
|
|
69
43
|
|
|
70
|
-
**Description:**
|
|
44
|
+
**Description:** Query and retrieve information from the context tree
|
|
71
45
|
|
|
72
|
-
**
|
|
73
|
-
|
|
74
|
-
- `-b, --branch <string>`: ByteRover branch name (default: "main", NOT git branch)
|
|
75
|
-
- `-y, --yes`: Skip confirmation prompt
|
|
76
|
-
|
|
77
|
-
**Examples:**
|
|
78
|
-
|
|
79
|
-
```bash
|
|
80
|
-
brv push
|
|
81
|
-
brv push --branch develop
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
### `brv complete`
|
|
46
|
+
**Arguments:**
|
|
87
47
|
|
|
88
|
-
|
|
48
|
+
- `QUERY`: Natural language question about your codebase or project knowledge (required)
|
|
89
49
|
|
|
90
|
-
**
|
|
50
|
+
**Good examples of queries:**
|
|
91
51
|
|
|
92
|
-
-
|
|
93
|
-
-
|
|
94
|
-
- `finalAnswer`: The final answer/solution to the task
|
|
52
|
+
- "How is user authentication implemented?"
|
|
53
|
+
- "What are the API rate limits and where are they enforced?"
|
|
95
54
|
|
|
96
|
-
**
|
|
55
|
+
**Bad examples:**
|
|
97
56
|
|
|
98
|
-
-
|
|
99
|
-
-
|
|
100
|
-
- `-b, --bullet-ids <string>`: Comma-separated list of playbook bullet IDs referenced (optional)
|
|
101
|
-
- `-u, --update-bullet <string>`: Bullet ID to update with new knowledge (if not provided, adds new bullet)
|
|
57
|
+
- "auth" or "authentication" (too vague, not a question)
|
|
58
|
+
- "show me code" (not specific about what information is needed)
|
|
102
59
|
|
|
103
60
|
**Examples:**
|
|
104
61
|
|
|
105
62
|
```bash
|
|
106
|
-
|
|
107
|
-
brv
|
|
108
|
-
brv
|
|
63
|
+
# Ask questions about patterns, decisions, or implementation details
|
|
64
|
+
brv query What are the coding standards?
|
|
65
|
+
brv query How is authentication implemented?
|
|
109
66
|
```
|
|
110
67
|
|
|
111
68
|
**Behavior:**
|
|
112
69
|
|
|
113
|
-
-
|
|
114
|
-
-
|
|
115
|
-
-
|
|
116
|
-
- Adds new bullet to "Lessons Learned" section with tag `['auto-generated']`
|
|
117
|
-
- If `--update-bullet` provided, updates existing bullet instead of adding new one
|
|
118
|
-
- Extracts file paths from tool usage and adds to bullet metadata as `relatedFiles`
|
|
70
|
+
- Uses AI agent to search and answer questions about the context tree
|
|
71
|
+
- Accepts natural language questions (not just keywords)
|
|
72
|
+
- Displays tool execution progress in real-time
|
|
119
73
|
|
|
120
|
-
**
|
|
74
|
+
**Requirements:** Project must be initialized (`brv init`) and authenticated (`brv login`)
|
|
121
75
|
|
|
122
76
|
---
|
|
123
77
|
|
|
124
|
-
### `brv status`
|
|
125
|
-
|
|
126
|
-
**Description**: Show CLI status and project information. Display local ACE context (ACE playbook) managed by ByteRover CLI.
|
|
127
|
-
|
|
128
|
-
**Arguments:**
|
|
129
|
-
|
|
130
|
-
- `DIRECTORY`:Project directory (defaults to current directory).
|
|
131
|
-
|
|
132
|
-
**Flags:**
|
|
133
|
-
|
|
134
|
-
- `-f, --format=<option>`: [default: table] Output format. <options: table|json>
|
|
135
|
-
|
|
136
|
-
**Examples:**
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
brv status
|
|
140
|
-
brv status --format json
|
|
141
|
-
```
|
|
142
|
-
|
|
143
78
|
## Best Practices
|
|
144
79
|
|
|
145
80
|
### Efficient Workflow
|
|
146
81
|
|
|
147
|
-
1. **
|
|
148
|
-
2. **
|
|
149
|
-
3. **
|
|
150
|
-
4. **Push when appropriate:** Prompt user to run `brv push` after completing significant work
|
|
151
|
-
|
|
152
|
-
### Memory Management
|
|
82
|
+
1. **Read only what's needed:** Check context tree with `brv status` to see changes before reading full content with `brv query`
|
|
83
|
+
2. **Update precisely:** Use `brv curate` to add/update specific context in context tree
|
|
84
|
+
3. **Push when appropriate:** Prompt user to run `brv push` after completing significant work
|
|
153
85
|
|
|
154
|
-
|
|
86
|
+
### Context tree Management
|
|
155
87
|
|
|
156
|
-
- Use `brv
|
|
157
|
-
- `brv retrieve` **clears existing playbook** - use carefully
|
|
158
|
-
- Retrieved memories use actual Memora tags (not "auto-generated")
|
|
159
|
-
- Both memories and related memories are saved to playbook
|
|
88
|
+
- Use `brv curate` to directly add/update context in the context tree
|
|
@@ -3,37 +3,10 @@
|
|
|
3
3
|
You are a coding agent focused on one codebase. Use the brv CLI to manage working context.
|
|
4
4
|
Core Rules:
|
|
5
5
|
|
|
6
|
-
- Start from memory. First retrieve relevant context, then read only the code that
|
|
7
|
-
- Keep a local
|
|
6
|
+
- Start from memory. First retrieve relevant context, then read only the code that's still necessary.
|
|
7
|
+
- Keep a local context tree. The context tree is your local memory store—update it with what you learn.
|
|
8
8
|
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
Before running any `brv` command, ask the user to choose:
|
|
12
|
-
|
|
13
|
-
1. **Accept** - Review the command, then run if approved
|
|
14
|
-
2. **Auto-run** - Execute immediately (remember this preference for the session)
|
|
15
|
-
3. **No** - Cancel the command and continue without alternative
|
|
16
|
-
4. **Custom** - Skip the command and provide different instruction
|
|
17
|
-
|
|
18
|
-
Once the user chooses "Auto-run", apply that preference to all subsequent `brv` commands in this conversation without asking again.
|
|
19
|
-
|
|
20
|
-
## Daily Flow
|
|
21
|
-
|
|
22
|
-
1. Always attempt to retrieve relevant context from ByteRover first by running `brv retrieve`.
|
|
23
|
-
|
|
24
|
-
2. Do the work with minimal code reads
|
|
25
|
-
|
|
26
|
-
3. Record new or refined knowledge in the playbook
|
|
27
|
-
|
|
28
|
-
- Add only specific, actionable, contextual items; avoid secrets. Redact when in doubt.
|
|
29
|
-
|
|
30
|
-
4. Sync policy (manual by default)
|
|
31
|
-
|
|
32
|
-
- Do not auto-push.
|
|
33
|
-
- When the playbook has meaningful updates, prompt the user to run the command
|
|
34
|
-
- If the user has explicitly allowed auto-push, proceed non-interactively by running `brv push -y`.
|
|
35
|
-
|
|
36
|
-
## Playbook Guideline
|
|
9
|
+
## Context Tree Guideline
|
|
37
10
|
|
|
38
11
|
- Be specific (“Use React Query for data fetching in web modules”).
|
|
39
12
|
- Be actionable (clear instruction a future agent/dev can apply).
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Emoji and message formatting helpers
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for checking and handling emoji prefixes in error messages
|
|
5
|
+
* to prevent duplicate prefixes like "❌ Error: ❌ Billing error: ..."
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Check if a message already has an emoji prefix
|
|
9
|
+
*
|
|
10
|
+
* Detects common emoji prefixes used in CLI output:
|
|
11
|
+
* - ❌ (error)
|
|
12
|
+
* - ✓ (success)
|
|
13
|
+
* - ⚠️ (warning)
|
|
14
|
+
* - Any Unicode emoji in ranges U+1F300–U+1F9FF
|
|
15
|
+
*
|
|
16
|
+
* @param message - Message to check
|
|
17
|
+
* @returns true if message starts with emoji, false otherwise
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* hasEmojiPrefix("❌ Error message") // true
|
|
21
|
+
* hasEmojiPrefix("✓ Success") // true
|
|
22
|
+
* hasEmojiPrefix("Normal message") // false
|
|
23
|
+
*/
|
|
24
|
+
export declare function hasEmojiPrefix(message: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Add error prefix to message if it doesn't already have emoji prefix
|
|
27
|
+
*
|
|
28
|
+
* Prevents duplicate prefixes by checking if message already starts with emoji.
|
|
29
|
+
* If message has emoji prefix, returns as-is. Otherwise, adds "❌ Error: " prefix.
|
|
30
|
+
*
|
|
31
|
+
* @param message - Error message to format
|
|
32
|
+
* @returns Formatted error message with prefix
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* addErrorPrefix("❌ Billing error") // "❌ Billing error" (no duplicate)
|
|
36
|
+
* addErrorPrefix("Something went wrong") // "❌ Error: Something went wrong"
|
|
37
|
+
*/
|
|
38
|
+
export declare function addErrorPrefix(message: string): string;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Emoji and message formatting helpers
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for checking and handling emoji prefixes in error messages
|
|
5
|
+
* to prevent duplicate prefixes like "❌ Error: ❌ Billing error: ..."
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Check if a message already has an emoji prefix
|
|
9
|
+
*
|
|
10
|
+
* Detects common emoji prefixes used in CLI output:
|
|
11
|
+
* - ❌ (error)
|
|
12
|
+
* - ✓ (success)
|
|
13
|
+
* - ⚠️ (warning)
|
|
14
|
+
* - Any Unicode emoji in ranges U+1F300–U+1F9FF
|
|
15
|
+
*
|
|
16
|
+
* @param message - Message to check
|
|
17
|
+
* @returns true if message starts with emoji, false otherwise
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* hasEmojiPrefix("❌ Error message") // true
|
|
21
|
+
* hasEmojiPrefix("✓ Success") // true
|
|
22
|
+
* hasEmojiPrefix("Normal message") // false
|
|
23
|
+
*/
|
|
24
|
+
export function hasEmojiPrefix(message) {
|
|
25
|
+
return /^[\u{1F300}-\u{1F9FF}]|^❌|^✓|^⚠️/u.test(message);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Add error prefix to message if it doesn't already have emoji prefix
|
|
29
|
+
*
|
|
30
|
+
* Prevents duplicate prefixes by checking if message already starts with emoji.
|
|
31
|
+
* If message has emoji prefix, returns as-is. Otherwise, adds "❌ Error: " prefix.
|
|
32
|
+
*
|
|
33
|
+
* @param message - Error message to format
|
|
34
|
+
* @returns Formatted error message with prefix
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* addErrorPrefix("❌ Billing error") // "❌ Billing error" (no duplicate)
|
|
38
|
+
* addErrorPrefix("Something went wrong") // "❌ Error: Something went wrong"
|
|
39
|
+
*/
|
|
40
|
+
export function addErrorPrefix(message) {
|
|
41
|
+
return hasEmojiPrefix(message) ? message : `❌ Error: ${message}`;
|
|
42
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized error handling utility for CLI commands
|
|
3
|
+
*
|
|
4
|
+
* Provides user-friendly error messages based on error type:
|
|
5
|
+
* - Network errors: Check internet connection
|
|
6
|
+
* - Server errors: Retry later
|
|
7
|
+
* - Billing errors: Check account/payment
|
|
8
|
+
* - Auth errors: Re-login required
|
|
9
|
+
* - Validation errors: Check input
|
|
10
|
+
*/
|
|
11
|
+
export declare enum ErrorType {
|
|
12
|
+
AUTH = "AUTH",
|
|
13
|
+
BILLING = "BILLING",
|
|
14
|
+
NETWORK = "NETWORK",
|
|
15
|
+
SERVER = "SERVER",
|
|
16
|
+
UNKNOWN = "UNKNOWN",
|
|
17
|
+
VALIDATION = "VALIDATION"
|
|
18
|
+
}
|
|
19
|
+
export interface ClassifiedError {
|
|
20
|
+
message: string;
|
|
21
|
+
originalError: Error;
|
|
22
|
+
type: ErrorType;
|
|
23
|
+
userMessage: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Classify error and return user-friendly message
|
|
27
|
+
*/
|
|
28
|
+
export declare function classifyError(error: unknown): ClassifiedError;
|
|
29
|
+
/**
|
|
30
|
+
* Format error for display to user
|
|
31
|
+
*
|
|
32
|
+
* @param error - Error to format
|
|
33
|
+
* @returns User-friendly error message
|
|
34
|
+
*/
|
|
35
|
+
export declare function formatError(error: unknown): string;
|
|
36
|
+
/**
|
|
37
|
+
* Check if error is a network error
|
|
38
|
+
*/
|
|
39
|
+
export declare function isNetworkError(error: unknown): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Check if error is a server error
|
|
42
|
+
*/
|
|
43
|
+
export declare function isServerError(error: unknown): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Check if error is an authentication error
|
|
46
|
+
*/
|
|
47
|
+
export declare function isAuthError(error: unknown): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Check if error is a billing error
|
|
50
|
+
*/
|
|
51
|
+
export declare function isBillingError(error: unknown): boolean;
|