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
package/package.json
CHANGED
|
@@ -1,36 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "byterover-cli",
|
|
3
3
|
"description": "ByteRover's CLI",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"author": "ByteRover",
|
|
6
6
|
"bin": {
|
|
7
7
|
"brv": "./bin/run.js"
|
|
8
8
|
},
|
|
9
9
|
"bugs": "https://github.com/campfirein/byterover-cli/issues",
|
|
10
10
|
"dependencies": {
|
|
11
|
+
"@anthropic-ai/sdk": "^0.70.1",
|
|
12
|
+
"@anthropic-ai/vertex-sdk": "^0.14.0",
|
|
13
|
+
"@google/genai": "^1.29.0",
|
|
14
|
+
"@grpc/grpc-js": "^1.10.0",
|
|
15
|
+
"@grpc/proto-loader": "^0.7.13",
|
|
11
16
|
"@inquirer/prompts": "^7.9.0",
|
|
12
17
|
"@oclif/core": "^4",
|
|
13
18
|
"@oclif/plugin-help": "^6",
|
|
14
19
|
"axios": "^1.12.2",
|
|
20
|
+
"better-sqlite3": "^11.5.0",
|
|
15
21
|
"chalk": "^5.6.2",
|
|
22
|
+
"chokidar": "^4.0.3",
|
|
16
23
|
"express": "^5.1.0",
|
|
24
|
+
"glob": "^11.0.3",
|
|
25
|
+
"ignore": "^7.0.5",
|
|
26
|
+
"inquirer-file-selector": "^1.0.1",
|
|
27
|
+
"js-yaml": "^4.1.1",
|
|
17
28
|
"keytar": "^7.9.0",
|
|
18
29
|
"mixpanel": "^0.18.1",
|
|
19
|
-
"
|
|
30
|
+
"nanoid": "^5.1.6",
|
|
31
|
+
"open": "^10.2.0",
|
|
32
|
+
"openai": "^6.9.1",
|
|
33
|
+
"zod": "^3.25.76",
|
|
34
|
+
"zod-to-json-schema": "^3.24.6"
|
|
20
35
|
},
|
|
21
36
|
"devDependencies": {
|
|
22
37
|
"@eslint/compat": "^1",
|
|
23
38
|
"@oclif/prettier-config": "^0.2.1",
|
|
24
39
|
"@oclif/test": "^4",
|
|
40
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
25
41
|
"@types/chai": "^4",
|
|
26
42
|
"@types/express": "^5.0.3",
|
|
43
|
+
"@types/js-yaml": "^4.0.9",
|
|
27
44
|
"@types/mocha": "^10",
|
|
28
|
-
"@types/node": "^
|
|
45
|
+
"@types/node": "^20",
|
|
29
46
|
"@types/sinon": "^17.0.4",
|
|
30
47
|
"chai": "^4",
|
|
31
48
|
"eslint": "^9",
|
|
32
49
|
"eslint-config-oclif": "^6",
|
|
33
50
|
"eslint-config-prettier": "^10",
|
|
51
|
+
"expect-type": "^1.2.2",
|
|
34
52
|
"mocha": "^10",
|
|
35
53
|
"nock": "^14.0.10",
|
|
36
54
|
"oclif": "^4",
|
|
@@ -40,7 +58,7 @@
|
|
|
40
58
|
"typescript": "^5"
|
|
41
59
|
},
|
|
42
60
|
"engines": {
|
|
43
|
-
"node": ">=
|
|
61
|
+
"node": ">=20.0.0"
|
|
44
62
|
},
|
|
45
63
|
"files": [
|
|
46
64
|
"./bin",
|
|
@@ -57,7 +75,10 @@
|
|
|
57
75
|
"dirname": "brv",
|
|
58
76
|
"commands": "./dist/commands",
|
|
59
77
|
"hooks": {
|
|
60
|
-
"init": "./dist/hooks/init/welcome"
|
|
78
|
+
"init": "./dist/hooks/init/welcome",
|
|
79
|
+
"command_not_found": "./dist/hooks/command_not_found/handle-invalid-commands",
|
|
80
|
+
"error": "./dist/hooks/error/clean-errors",
|
|
81
|
+
"prerun": "./dist/hooks/prerun/validate-brv-config-version"
|
|
61
82
|
},
|
|
62
83
|
"plugins": [
|
|
63
84
|
"@oclif/plugin-help"
|
|
@@ -71,7 +92,7 @@
|
|
|
71
92
|
},
|
|
72
93
|
"repository": "campfirein/byterover-cli",
|
|
73
94
|
"scripts": {
|
|
74
|
-
"build": "shx rm -rf dist && tsc -b && shx cp -r src/templates dist/templates",
|
|
95
|
+
"build": "shx rm -rf dist && tsc -b && shx cp -r src/templates dist/templates && shx cp -r src/resources dist/resources && shx cp src/infra/cipher/grpc/internal-llm-grpc.proto dist/infra/cipher/grpc/",
|
|
75
96
|
"lint": "eslint",
|
|
76
97
|
"postpack": "shx rm -f oclif.manifest.json",
|
|
77
98
|
"posttest": "npm run lint",
|
package/dist/commands/add.d.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { Command } from '@oclif/core';
|
|
2
|
-
import type { IPlaybookService } from '../core/interfaces/i-playbook-service.js';
|
|
3
|
-
import type { IPlaybookStore } from '../core/interfaces/i-playbook-store.js';
|
|
4
|
-
import type { ITrackingService } from '../core/interfaces/i-tracking-service.js';
|
|
5
|
-
interface SectionPromptOptions {
|
|
6
|
-
readonly existingSections: readonly string[];
|
|
7
|
-
readonly suggestedSections: readonly string[];
|
|
8
|
-
}
|
|
9
|
-
export default class Add extends Command {
|
|
10
|
-
static description: string;
|
|
11
|
-
static examples: string[];
|
|
12
|
-
static flags: {
|
|
13
|
-
'bullet-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
-
content: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
-
interactive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
16
|
-
section: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
-
};
|
|
18
|
-
protected createServices(): {
|
|
19
|
-
playbookService: IPlaybookService;
|
|
20
|
-
playbookStore: IPlaybookStore;
|
|
21
|
-
trackingService: ITrackingService;
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Prompt user to confirm adding the bullet
|
|
25
|
-
*/
|
|
26
|
-
protected promptForConfirmation(bulletId: string, section: string, content: string): Promise<boolean>;
|
|
27
|
-
/**
|
|
28
|
-
* Prompt user to enter bullet content
|
|
29
|
-
*/
|
|
30
|
-
protected promptForContent(section: string): Promise<string>;
|
|
31
|
-
/**
|
|
32
|
-
* Prompt user to select or create a section name
|
|
33
|
-
*/
|
|
34
|
-
protected promptForSection(options: SectionPromptOptions): Promise<string>;
|
|
35
|
-
run(): Promise<void>;
|
|
36
|
-
/**
|
|
37
|
-
* Display success message after adding a bullet
|
|
38
|
-
*/
|
|
39
|
-
private displaySuccess;
|
|
40
|
-
/**
|
|
41
|
-
* Run in flag-based mode (non-interactive)
|
|
42
|
-
*/
|
|
43
|
-
private runFlagBased;
|
|
44
|
-
/**
|
|
45
|
-
* Run in interactive mode
|
|
46
|
-
*/
|
|
47
|
-
private runInteractive;
|
|
48
|
-
}
|
|
49
|
-
export {};
|
package/dist/commands/add.js
DELETED
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import { confirm, input, search } from '@inquirer/prompts';
|
|
2
|
-
import { Command, Flags } from '@oclif/core';
|
|
3
|
-
import { Playbook } from '../core/domain/entities/playbook.js';
|
|
4
|
-
import { FilePlaybookStore } from '../infra/ace/file-playbook-store.js';
|
|
5
|
-
import { FilePlaybookService } from '../infra/playbook/file-playbook-service.js';
|
|
6
|
-
import { KeychainTokenStore } from '../infra/storage/keychain-token-store.js';
|
|
7
|
-
import { MixpanelTrackingService } from '../infra/tracking/mixpanel-tracking-service.js';
|
|
8
|
-
// Constants
|
|
9
|
-
const SUGGESTED_SECTIONS = [
|
|
10
|
-
'Common Errors',
|
|
11
|
-
'Best Practices',
|
|
12
|
-
'Strategies',
|
|
13
|
-
'Lessons Learned',
|
|
14
|
-
'Architecture',
|
|
15
|
-
'Testing',
|
|
16
|
-
];
|
|
17
|
-
const validateContent = (content) => content.trim().length > 0;
|
|
18
|
-
export default class Add extends Command {
|
|
19
|
-
static description = 'Add or update a bullet in the playbook (bypasses ACE workflow for direct agent usage)';
|
|
20
|
-
static examples = [
|
|
21
|
-
'<%= config.bin %> <%= command.id %> --interactive',
|
|
22
|
-
'<%= config.bin %> <%= command.id %> -i',
|
|
23
|
-
'<%= config.bin %> <%= command.id %> --section "Common Errors" --content "Authentication fails when token expires"',
|
|
24
|
-
'<%= config.bin %> <%= command.id %> --section "Common Errors" --bullet-id "common-00001" --content "Updated: Auth fails when token expires"',
|
|
25
|
-
'<%= config.bin %> <%= command.id %> -s "Best Practices" -c "Always validate user input before processing"',
|
|
26
|
-
];
|
|
27
|
-
static flags = {
|
|
28
|
-
'bullet-id': Flags.string({
|
|
29
|
-
char: 'b',
|
|
30
|
-
description: 'Bullet ID to update (if not provided, a new bullet will be created)',
|
|
31
|
-
required: false,
|
|
32
|
-
}),
|
|
33
|
-
content: Flags.string({
|
|
34
|
-
char: 'c',
|
|
35
|
-
description: 'Content of the bullet',
|
|
36
|
-
required: false,
|
|
37
|
-
}),
|
|
38
|
-
interactive: Flags.boolean({
|
|
39
|
-
char: 'i',
|
|
40
|
-
default: false,
|
|
41
|
-
description: 'Run in interactive mode',
|
|
42
|
-
}),
|
|
43
|
-
section: Flags.string({
|
|
44
|
-
char: 's',
|
|
45
|
-
description: 'Section name for the bullet',
|
|
46
|
-
required: false,
|
|
47
|
-
}),
|
|
48
|
-
};
|
|
49
|
-
createServices() {
|
|
50
|
-
return {
|
|
51
|
-
playbookService: new FilePlaybookService(),
|
|
52
|
-
playbookStore: new FilePlaybookStore(),
|
|
53
|
-
trackingService: new MixpanelTrackingService(new KeychainTokenStore()),
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Prompt user to confirm adding the bullet
|
|
58
|
-
*/
|
|
59
|
-
async promptForConfirmation(bulletId, section, content) {
|
|
60
|
-
this.log('\nReview your bullet:');
|
|
61
|
-
this.log(` ID: ${bulletId}`);
|
|
62
|
-
this.log(` Section: ${section}`);
|
|
63
|
-
const contentDisplay = content.length > 200 ? `${content.slice(0, 200)}...` : content;
|
|
64
|
-
this.log(` Content: ${contentDisplay}`);
|
|
65
|
-
this.log('\nTip: Use `brv status` to view and update bullets later');
|
|
66
|
-
const confirmed = await confirm({
|
|
67
|
-
default: true,
|
|
68
|
-
message: 'Add this bullet?',
|
|
69
|
-
});
|
|
70
|
-
return confirmed;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Prompt user to enter bullet content
|
|
74
|
-
*/
|
|
75
|
-
async promptForContent(section) {
|
|
76
|
-
const message = `Enter content for new bullet in "${section}":`;
|
|
77
|
-
const content = await input({
|
|
78
|
-
message,
|
|
79
|
-
validate(value) {
|
|
80
|
-
if (!validateContent(value)) {
|
|
81
|
-
return 'Content cannot be empty';
|
|
82
|
-
}
|
|
83
|
-
return true;
|
|
84
|
-
},
|
|
85
|
-
});
|
|
86
|
-
return content;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Prompt user to select or create a section name
|
|
90
|
-
*/
|
|
91
|
-
async promptForSection(options) {
|
|
92
|
-
const allSections = [...new Set([...options.existingSections, ...options.suggestedSections])];
|
|
93
|
-
const section = await search({
|
|
94
|
-
message: 'Select or type a section name:',
|
|
95
|
-
async source(input) {
|
|
96
|
-
if (!input) {
|
|
97
|
-
return allSections.map((s) => ({ name: s, value: s }));
|
|
98
|
-
}
|
|
99
|
-
const filtered = allSections.filter((s) => s.toLowerCase().includes(input.toLowerCase()));
|
|
100
|
-
// Allow creating new section
|
|
101
|
-
if (filtered.length === 0 || !filtered.includes(input)) {
|
|
102
|
-
filtered.unshift(input);
|
|
103
|
-
}
|
|
104
|
-
return filtered.map((s) => ({ name: s, value: s }));
|
|
105
|
-
},
|
|
106
|
-
});
|
|
107
|
-
return section;
|
|
108
|
-
}
|
|
109
|
-
async run() {
|
|
110
|
-
const { flags } = await this.parse(Add);
|
|
111
|
-
return flags.interactive ? this.runInteractive() : this.runFlagBased(flags);
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Display success message after adding a bullet
|
|
115
|
-
*/
|
|
116
|
-
displaySuccess(bullet) {
|
|
117
|
-
this.log(`\n✓ Added bullet successfully!`);
|
|
118
|
-
this.log(` ID: ${bullet.id}`);
|
|
119
|
-
this.log(` Section: ${bullet.section}`);
|
|
120
|
-
this.log(` Content: ${bullet.content}`);
|
|
121
|
-
if (bullet.metadata.tags.length > 0) {
|
|
122
|
-
this.log(` Tags: ${bullet.metadata.tags.join(', ')}`);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Run in flag-based mode (non-interactive)
|
|
127
|
-
*/
|
|
128
|
-
async runFlagBased(flags) {
|
|
129
|
-
const { playbookService, trackingService } = this.createServices();
|
|
130
|
-
try {
|
|
131
|
-
// Validate required flags
|
|
132
|
-
if (!flags.section || !flags.content) {
|
|
133
|
-
this.error('--section and --content are required in non-interactive mode');
|
|
134
|
-
}
|
|
135
|
-
// Warn if section is not a standard ACE section
|
|
136
|
-
if (!SUGGESTED_SECTIONS.includes(flags.section)) {
|
|
137
|
-
this.warn(`Section "${flags.section}" is not a standard ACE section.\n` +
|
|
138
|
-
` Suggested sections: ${SUGGESTED_SECTIONS.join(', ')}\n` +
|
|
139
|
-
` You can still proceed, but consider using a standard section for consistency.`);
|
|
140
|
-
}
|
|
141
|
-
await trackingService.track('ace:add_bullet');
|
|
142
|
-
const bullet = await playbookService.addOrUpdateBullet({
|
|
143
|
-
bulletId: flags['bullet-id'],
|
|
144
|
-
content: flags.content,
|
|
145
|
-
section: flags.section,
|
|
146
|
-
});
|
|
147
|
-
this.displaySuccess(bullet);
|
|
148
|
-
}
|
|
149
|
-
catch (error) {
|
|
150
|
-
this.error(error instanceof Error ? error.message : 'Unexpected error occurred');
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Run in interactive mode
|
|
155
|
-
*/
|
|
156
|
-
async runInteractive() {
|
|
157
|
-
const { playbookService, playbookStore, trackingService } = this.createServices();
|
|
158
|
-
try {
|
|
159
|
-
// Display welcome message
|
|
160
|
-
this.log('Press Ctrl+C at any time to cancel the process\n');
|
|
161
|
-
// Load existing playbook or create new one
|
|
162
|
-
let playbook = await playbookStore.load();
|
|
163
|
-
if (!playbook) {
|
|
164
|
-
playbook = new Playbook();
|
|
165
|
-
}
|
|
166
|
-
const sectionOptions = {
|
|
167
|
-
existingSections: playbook.getSections(),
|
|
168
|
-
suggestedSections: SUGGESTED_SECTIONS,
|
|
169
|
-
};
|
|
170
|
-
const section = await this.promptForSection(sectionOptions);
|
|
171
|
-
const content = await this.promptForContent(section);
|
|
172
|
-
// Get next bullet ID for confirmation
|
|
173
|
-
const nextId = playbook.getNextId();
|
|
174
|
-
// Prompt for confirmation
|
|
175
|
-
const confirmed = await this.promptForConfirmation(nextId, section, content);
|
|
176
|
-
if (!confirmed) {
|
|
177
|
-
this.log('\nBullet not added. Operation cancelled.');
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
const bullet = await playbookService.addOrUpdateBullet({
|
|
181
|
-
bulletId: undefined,
|
|
182
|
-
content,
|
|
183
|
-
section,
|
|
184
|
-
});
|
|
185
|
-
await trackingService.track('ace:add_bullet');
|
|
186
|
-
this.displaySuccess(bullet);
|
|
187
|
-
}
|
|
188
|
-
catch (error) {
|
|
189
|
-
this.error(error instanceof Error ? error.message : 'Unexpected error occurred');
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { Command } from '@oclif/core';
|
|
2
|
-
import type { IAcePromptBuilder } from '../core/interfaces/i-ace-prompt-builder.js';
|
|
3
|
-
import type { IDeltaStore } from '../core/interfaces/i-delta-store.js';
|
|
4
|
-
import type { IExecutorOutputStore } from '../core/interfaces/i-executor-output-store.js';
|
|
5
|
-
import type { IPlaybookService } from '../core/interfaces/i-playbook-service.js';
|
|
6
|
-
import type { IReflectionStore } from '../core/interfaces/i-reflection-store.js';
|
|
7
|
-
export default class Complete extends Command {
|
|
8
|
-
static args: {
|
|
9
|
-
hint: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
10
|
-
reasoning: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
11
|
-
finalAnswer: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
12
|
-
};
|
|
13
|
-
static description: string;
|
|
14
|
-
static examples: string[];
|
|
15
|
-
static flags: {
|
|
16
|
-
'bullet-ids': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
-
feedback: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
|
-
'tool-usage': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
19
|
-
'update-bullet': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
20
|
-
};
|
|
21
|
-
protected createServices(): {
|
|
22
|
-
deltaStore: IDeltaStore;
|
|
23
|
-
executorOutputStore: IExecutorOutputStore;
|
|
24
|
-
playbookService: IPlaybookService;
|
|
25
|
-
promptBuilder: IAcePromptBuilder;
|
|
26
|
-
reflectionStore: IReflectionStore;
|
|
27
|
-
};
|
|
28
|
-
run(): Promise<void>;
|
|
29
|
-
/**
|
|
30
|
-
* Displays a formatted summary of the completed ACE workflow.
|
|
31
|
-
* Shows file paths, delta operations breakdown, and success confirmation.
|
|
32
|
-
*
|
|
33
|
-
* @param summary - Summary data containing all workflow outputs
|
|
34
|
-
* @param summary.curatorOutput - The curator output containing delta operations
|
|
35
|
-
* @param summary.deltaFilePath - Path to the saved delta file
|
|
36
|
-
* @param summary.executorPath - Path to the saved executor output file
|
|
37
|
-
* @param summary.hint - The hint used for naming output files
|
|
38
|
-
* @param summary.reflectionFilePath - Path to the saved reflection file
|
|
39
|
-
* @param summary.tagsApplied - Number of tags applied to the playbook
|
|
40
|
-
*/
|
|
41
|
-
private displayFinalSummary;
|
|
42
|
-
/**
|
|
43
|
-
* Extracts file paths from tool usage strings and formats them with project name prefix.
|
|
44
|
-
* Converts tool usage entries like "Read:src/file.ts" to "projectName/src/file.ts".
|
|
45
|
-
* Filters out non-file-like arguments (e.g., "Bash:npm test" is excluded).
|
|
46
|
-
*
|
|
47
|
-
* @param toolUsage - Array of tool usage strings (e.g., ["Read:src/file.ts", "Edit:src/other.ts"])
|
|
48
|
-
* @returns Array of formatted file paths with project name prefix
|
|
49
|
-
*/
|
|
50
|
-
private extractFilePaths;
|
|
51
|
-
/**
|
|
52
|
-
* Phase 3: Generates curation and applies delta operations to the playbook.
|
|
53
|
-
* Creates delta operations (ADD or UPDATE) based on reflection insights and applies them to the playbook.
|
|
54
|
-
*
|
|
55
|
-
* @param services - The service instances
|
|
56
|
-
* @param services.deltaStore - Delta store for persisting deltas
|
|
57
|
-
* @param services.playbookService - Playbook service for applying deltas
|
|
58
|
-
* @param services.promptBuilder - Prompt builder for curation prompts
|
|
59
|
-
* @param reflection - The reflection output from Phase 2
|
|
60
|
-
* @param executorOutput - The executor output from Phase 1
|
|
61
|
-
* @param flags - Command flags containing optional update-bullet ID
|
|
62
|
-
* @returns Object containing curator output and delta file path
|
|
63
|
-
*/
|
|
64
|
-
private generateCurationAndApplyDelta;
|
|
65
|
-
/**
|
|
66
|
-
* Phase 2: Generates reflection based on executor output and applies tags to the playbook.
|
|
67
|
-
* Auto-generates reflection analysis from feedback and applies bullet tags to relevant playbook sections.
|
|
68
|
-
*
|
|
69
|
-
* @param services - The service instances
|
|
70
|
-
* @param services.playbookService - Playbook service for applying reflection tags
|
|
71
|
-
* @param services.promptBuilder - Prompt builder for reflection prompts
|
|
72
|
-
* @param services.reflectionStore - Reflection store for persisting reflections
|
|
73
|
-
* @param executorOutput - The executor output from Phase 1
|
|
74
|
-
* @param feedback - Environment feedback about task execution (e.g., "Tests passed", "Build failed")
|
|
75
|
-
* @returns Object containing reflection output, file path, and number of tags applied
|
|
76
|
-
*/
|
|
77
|
-
private generateReflectionAndApplyTags;
|
|
78
|
-
/**
|
|
79
|
-
* Parses comma-separated bullet IDs string into an array of trimmed IDs.
|
|
80
|
-
* Empty strings and whitespace-only entries are filtered out.
|
|
81
|
-
*
|
|
82
|
-
* @param bulletIdsStr - Comma-separated string of bullet IDs (e.g., "bullet-1, bullet-2")
|
|
83
|
-
* @returns Array of trimmed bullet ID strings (empty array if input is empty string)
|
|
84
|
-
*/
|
|
85
|
-
private parseBulletIds;
|
|
86
|
-
/**
|
|
87
|
-
* Parses comma-separated tool usage string into an array of trimmed entries.
|
|
88
|
-
* Empty strings and whitespace-only entries are filtered out.
|
|
89
|
-
*
|
|
90
|
-
* @param toolUsageStr - Comma-separated string of tool usage (e.g., "Read:file.ts, Edit:other.ts")
|
|
91
|
-
* @returns Array of trimmed tool usage strings
|
|
92
|
-
*/
|
|
93
|
-
private parseToolUsage;
|
|
94
|
-
/**
|
|
95
|
-
* Phase 1: Saves executor output to a file.
|
|
96
|
-
* Creates an ExecutorOutput entity from command arguments and persists it using the executor output store service.
|
|
97
|
-
*
|
|
98
|
-
* @param executorOutputStore - The executor output store service
|
|
99
|
-
* @param args - Command arguments
|
|
100
|
-
* @param args.hint - Short hint for naming output files
|
|
101
|
-
* @param args.reasoning - Detailed reasoning and approach for completing the task
|
|
102
|
-
* @param args.finalAnswer - The final answer/solution to the task
|
|
103
|
-
* @param bulletIds - Array of playbook bullet IDs referenced during task execution
|
|
104
|
-
* @param toolUsage - Array of tool usage strings (e.g., ["Read:src/file.ts", "Bash:npm test"])
|
|
105
|
-
* @returns Object containing the executor output entity and file path where it was saved
|
|
106
|
-
*/
|
|
107
|
-
private saveExecutorOutput;
|
|
108
|
-
}
|