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.
Files changed (490) hide show
  1. package/README.md +56 -56
  2. package/bin/dev.js +1 -1
  3. package/dist/commands/cipher-agent/run.d.ts +111 -0
  4. package/dist/commands/cipher-agent/run.js +493 -0
  5. package/dist/commands/cipher-agent/set-prompt.d.ts +14 -0
  6. package/dist/commands/cipher-agent/set-prompt.js +53 -0
  7. package/dist/commands/cipher-agent/show-prompt.d.ts +11 -0
  8. package/dist/commands/cipher-agent/show-prompt.js +48 -0
  9. package/dist/commands/clear.d.ts +6 -0
  10. package/dist/commands/clear.js +36 -15
  11. package/dist/commands/curate.d.ts +74 -0
  12. package/dist/commands/curate.js +396 -0
  13. package/dist/commands/foo.d.ts +12 -0
  14. package/dist/commands/foo.js +61 -0
  15. package/dist/commands/gen-rules.d.ts +3 -0
  16. package/dist/commands/gen-rules.js +39 -20
  17. package/dist/commands/init.d.ts +48 -3
  18. package/dist/commands/init.js +242 -70
  19. package/dist/commands/login.js +9 -4
  20. package/dist/commands/pull.d.ts +33 -0
  21. package/dist/commands/pull.js +115 -0
  22. package/dist/commands/push.d.ts +13 -13
  23. package/dist/commands/push.js +81 -101
  24. package/dist/commands/query.d.ts +63 -0
  25. package/dist/commands/query.js +349 -0
  26. package/dist/commands/space/list.d.ts +5 -2
  27. package/dist/commands/space/list.js +60 -56
  28. package/dist/commands/space/switch.d.ts +16 -0
  29. package/dist/commands/space/switch.js +102 -53
  30. package/dist/commands/status.d.ts +5 -2
  31. package/dist/commands/status.js +43 -33
  32. package/dist/commands/watch.d.ts +23 -0
  33. package/dist/commands/watch.js +171 -0
  34. package/dist/config/auth.config.js +14 -2
  35. package/dist/config/context-tree-domains.d.ts +12 -0
  36. package/dist/config/context-tree-domains.js +29 -0
  37. package/dist/config/environment.d.ts +6 -0
  38. package/dist/config/environment.js +9 -2
  39. package/dist/constants.d.ts +5 -0
  40. package/dist/constants.js +6 -0
  41. package/dist/core/domain/cipher/agent/agent-state-machine.d.ts +128 -0
  42. package/dist/core/domain/cipher/agent/agent-state-machine.js +183 -0
  43. package/dist/core/domain/cipher/agent/agent-state.d.ts +77 -0
  44. package/dist/core/domain/cipher/agent/agent-state.js +59 -0
  45. package/dist/core/domain/cipher/agent/index.d.ts +7 -0
  46. package/dist/core/domain/cipher/agent/index.js +7 -0
  47. package/dist/core/domain/cipher/agent-events/index.d.ts +8 -0
  48. package/dist/core/domain/cipher/agent-events/index.js +7 -0
  49. package/dist/core/domain/cipher/agent-events/types.d.ts +419 -0
  50. package/dist/core/domain/cipher/agent-events/types.js +42 -0
  51. package/dist/core/domain/cipher/blob/types.d.ts +108 -0
  52. package/dist/core/domain/cipher/errors/blob-error.d.ts +36 -0
  53. package/dist/core/domain/cipher/errors/blob-error.js +68 -0
  54. package/dist/core/domain/cipher/errors/file-system-error.d.ts +211 -0
  55. package/dist/core/domain/cipher/errors/file-system-error.js +291 -0
  56. package/dist/core/domain/cipher/errors/llm-error.d.ts +120 -0
  57. package/dist/core/domain/cipher/errors/llm-error.js +161 -0
  58. package/dist/core/domain/cipher/errors/memory-error.d.ts +35 -0
  59. package/dist/core/domain/cipher/errors/memory-error.js +62 -0
  60. package/dist/core/domain/cipher/errors/process-error-code.d.ts +97 -0
  61. package/dist/core/domain/cipher/errors/process-error-code.js +98 -0
  62. package/dist/core/domain/cipher/errors/process-error.d.ts +135 -0
  63. package/dist/core/domain/cipher/errors/process-error.js +173 -0
  64. package/dist/core/domain/cipher/errors/session-error.d.ts +56 -0
  65. package/dist/core/domain/cipher/errors/session-error.js +74 -0
  66. package/dist/core/domain/cipher/errors/tool-error.d.ts +57 -0
  67. package/dist/core/domain/cipher/errors/tool-error.js +81 -0
  68. package/dist/core/domain/cipher/file-system/types.d.ts +203 -0
  69. package/dist/core/domain/cipher/memory/types.d.ts +102 -0
  70. package/dist/core/domain/cipher/memory/types.js +4 -0
  71. package/dist/core/domain/cipher/parsed-interaction.d.ts +47 -0
  72. package/dist/core/domain/cipher/parsed-interaction.js +25 -0
  73. package/dist/core/domain/cipher/process/types.d.ts +286 -0
  74. package/dist/core/domain/cipher/session/types.d.ts +54 -0
  75. package/dist/core/domain/cipher/storage/history-types.d.ts +38 -0
  76. package/dist/core/domain/cipher/system-prompt/types.d.ts +131 -0
  77. package/dist/core/domain/cipher/todos/index.d.ts +4 -0
  78. package/dist/core/domain/cipher/todos/index.js +4 -0
  79. package/dist/core/domain/cipher/todos/types.d.ts +57 -0
  80. package/dist/core/domain/cipher/todos/types.js +5 -0
  81. package/dist/core/domain/cipher/tools/constants.d.ts +28 -0
  82. package/dist/core/domain/cipher/tools/constants.js +24 -0
  83. package/dist/core/domain/cipher/tools/tool-error.d.ts +183 -0
  84. package/dist/core/domain/cipher/tools/tool-error.js +246 -0
  85. package/dist/core/domain/cipher/tools/types.d.ts +145 -0
  86. package/dist/core/domain/entities/brv-config.d.ts +42 -6
  87. package/dist/core/domain/entities/brv-config.js +115 -17
  88. package/dist/core/domain/entities/cogit-push-context.d.ts +38 -0
  89. package/dist/core/domain/entities/cogit-push-context.js +91 -0
  90. package/dist/core/domain/entities/cogit-push-response.d.ts +20 -0
  91. package/dist/core/domain/entities/cogit-push-response.js +31 -0
  92. package/dist/core/domain/entities/cogit-snapshot-author.d.ts +24 -0
  93. package/dist/core/domain/entities/cogit-snapshot-author.js +39 -0
  94. package/dist/core/domain/entities/cogit-snapshot-file.d.ts +34 -0
  95. package/dist/core/domain/entities/cogit-snapshot-file.js +59 -0
  96. package/dist/core/domain/entities/cogit-snapshot.d.ts +31 -0
  97. package/dist/core/domain/entities/cogit-snapshot.js +58 -0
  98. package/dist/core/domain/entities/context-tree-index.d.ts +26 -0
  99. package/dist/core/domain/entities/context-tree-index.js +27 -0
  100. package/dist/core/domain/entities/context-tree-snapshot.d.ts +56 -0
  101. package/dist/core/domain/entities/context-tree-snapshot.js +83 -0
  102. package/dist/core/domain/entities/event.d.ts +1 -1
  103. package/dist/core/domain/entities/event.js +3 -1
  104. package/dist/core/domain/entities/parser.d.ts +567 -0
  105. package/dist/core/domain/entities/parser.js +10 -0
  106. package/dist/core/domain/entities/playbook.d.ts +2 -23
  107. package/dist/core/domain/entities/playbook.js +2 -70
  108. package/dist/core/domain/errors/brv-config-version-error.d.ts +16 -0
  109. package/dist/core/domain/errors/brv-config-version-error.js +21 -0
  110. package/dist/core/domain/knowledge/directory-manager.d.ts +80 -0
  111. package/dist/core/domain/knowledge/directory-manager.js +145 -0
  112. package/dist/core/domain/knowledge/markdown-writer.d.ts +18 -0
  113. package/dist/core/domain/knowledge/markdown-writer.js +18 -0
  114. package/dist/core/domain/knowledge/relation-parser.d.ts +90 -0
  115. package/dist/core/domain/knowledge/relation-parser.js +131 -0
  116. package/dist/core/interfaces/cipher/cipher-services.d.ts +71 -0
  117. package/dist/core/interfaces/cipher/cipher-services.js +1 -0
  118. package/dist/core/interfaces/cipher/i-blob-storage.d.ts +78 -0
  119. package/dist/core/interfaces/cipher/i-blob-storage.js +1 -0
  120. package/dist/core/interfaces/cipher/i-chat-session.d.ts +62 -0
  121. package/dist/core/interfaces/cipher/i-chat-session.js +1 -0
  122. package/dist/core/interfaces/cipher/i-cipher-agent.d.ts +88 -0
  123. package/dist/core/interfaces/cipher/i-cipher-agent.js +1 -0
  124. package/dist/core/interfaces/cipher/i-coding-agent-log-parser.d.ts +20 -0
  125. package/dist/core/interfaces/cipher/i-coding-agent-log-parser.js +1 -0
  126. package/dist/core/interfaces/cipher/i-coding-agent-log-watcher.d.ts +31 -0
  127. package/dist/core/interfaces/cipher/i-coding-agent-log-watcher.js +1 -0
  128. package/dist/core/interfaces/cipher/i-content-generator.d.ts +120 -0
  129. package/dist/core/interfaces/cipher/i-content-generator.js +12 -0
  130. package/dist/core/interfaces/cipher/i-event-emitter.d.ts +76 -0
  131. package/dist/core/interfaces/cipher/i-event-emitter.js +1 -0
  132. package/dist/core/interfaces/cipher/i-file-system.d.ts +68 -0
  133. package/dist/core/interfaces/cipher/i-file-system.js +1 -0
  134. package/dist/core/interfaces/cipher/i-history-storage.d.ts +53 -0
  135. package/dist/core/interfaces/cipher/i-history-storage.js +1 -0
  136. package/dist/core/interfaces/cipher/i-llm-provider.d.ts +14 -0
  137. package/dist/core/interfaces/cipher/i-llm-provider.js +1 -0
  138. package/dist/core/interfaces/cipher/i-llm-service.d.ts +62 -0
  139. package/dist/core/interfaces/cipher/i-llm-service.js +1 -0
  140. package/dist/core/interfaces/cipher/i-logger.d.ts +78 -0
  141. package/dist/core/interfaces/cipher/i-logger.js +28 -0
  142. package/dist/core/interfaces/cipher/i-message-formatter.d.ts +44 -0
  143. package/dist/core/interfaces/cipher/i-message-formatter.js +1 -0
  144. package/dist/core/interfaces/cipher/i-policy-engine.d.ts +102 -0
  145. package/dist/core/interfaces/cipher/i-policy-engine.js +9 -0
  146. package/dist/core/interfaces/cipher/i-process-service.d.ts +65 -0
  147. package/dist/core/interfaces/cipher/i-process-service.js +1 -0
  148. package/dist/core/interfaces/cipher/i-system-prompt-contributor.d.ts +25 -0
  149. package/dist/core/interfaces/cipher/i-system-prompt-contributor.js +1 -0
  150. package/dist/core/interfaces/cipher/i-tokenizer.d.ts +15 -0
  151. package/dist/core/interfaces/cipher/i-tokenizer.js +1 -0
  152. package/dist/core/interfaces/cipher/i-tool-provider.d.ts +64 -0
  153. package/dist/core/interfaces/cipher/i-tool-provider.js +1 -0
  154. package/dist/core/interfaces/cipher/i-tool-scheduler.d.ts +103 -0
  155. package/dist/core/interfaces/cipher/i-tool-scheduler.js +11 -0
  156. package/dist/core/interfaces/cipher/llm-types.d.ts +46 -0
  157. package/dist/core/interfaces/cipher/llm-types.js +5 -0
  158. package/dist/core/interfaces/cipher/message-types.d.ts +118 -0
  159. package/dist/core/interfaces/cipher/message-types.js +5 -0
  160. package/dist/core/interfaces/cipher/tokenizer-types.d.ts +11 -0
  161. package/dist/core/interfaces/cipher/tokenizer-types.js +14 -0
  162. package/dist/core/interfaces/i-cogit-pull-service.d.ts +24 -0
  163. package/dist/core/interfaces/i-cogit-pull-service.js +1 -0
  164. package/dist/core/interfaces/i-cogit-push-service.d.ts +27 -0
  165. package/dist/core/interfaces/i-cogit-push-service.js +1 -0
  166. package/dist/core/interfaces/i-context-file-reader.d.ts +32 -0
  167. package/dist/core/interfaces/i-context-file-reader.js +1 -0
  168. package/dist/core/interfaces/i-context-tree-service.d.ts +21 -0
  169. package/dist/core/interfaces/i-context-tree-service.js +1 -0
  170. package/dist/core/interfaces/i-context-tree-snapshot-service.d.ts +36 -0
  171. package/dist/core/interfaces/i-context-tree-snapshot-service.js +1 -0
  172. package/dist/core/interfaces/i-context-tree-writer-service.d.ts +32 -0
  173. package/dist/core/interfaces/i-context-tree-writer-service.js +1 -0
  174. package/dist/core/interfaces/i-file-watcher-service.d.ts +41 -0
  175. package/dist/core/interfaces/i-file-watcher-service.js +1 -0
  176. package/dist/core/interfaces/parser/i-clean-parser-service.d.ts +18 -0
  177. package/dist/core/interfaces/parser/i-clean-parser-service.js +1 -0
  178. package/dist/core/interfaces/parser/i-raw-parser-service.d.ts +17 -0
  179. package/dist/core/interfaces/parser/i-raw-parser-service.js +1 -0
  180. package/dist/core/interfaces/parser/i-session-normalizer.d.ts +56 -0
  181. package/dist/core/interfaces/parser/i-session-normalizer.js +1 -0
  182. package/dist/hooks/command_not_found/handle-invalid-commands.d.ts +7 -0
  183. package/dist/hooks/command_not_found/handle-invalid-commands.js +32 -0
  184. package/dist/hooks/error/clean-errors.d.ts +7 -0
  185. package/dist/hooks/error/clean-errors.js +50 -0
  186. package/dist/hooks/init/welcome.js +72 -1
  187. package/dist/hooks/prerun/validate-brv-config-version.d.ts +28 -0
  188. package/dist/hooks/prerun/validate-brv-config-version.js +43 -0
  189. package/dist/infra/cipher/agent-service-factory.d.ts +86 -0
  190. package/dist/infra/cipher/agent-service-factory.js +212 -0
  191. package/dist/infra/cipher/blob/blob-storage-factory.d.ts +13 -0
  192. package/dist/infra/cipher/blob/blob-storage-factory.js +14 -0
  193. package/dist/infra/cipher/blob/index.d.ts +10 -0
  194. package/dist/infra/cipher/blob/index.js +12 -0
  195. package/dist/infra/cipher/blob/migrations.d.ts +63 -0
  196. package/dist/infra/cipher/blob/migrations.js +148 -0
  197. package/dist/infra/cipher/blob/sqlite-blob-storage.d.ts +82 -0
  198. package/dist/infra/cipher/blob/sqlite-blob-storage.js +307 -0
  199. package/dist/infra/cipher/cipher-agent-state-manager.d.ts +63 -0
  200. package/dist/infra/cipher/cipher-agent-state-manager.js +108 -0
  201. package/dist/infra/cipher/cipher-agent.d.ts +182 -0
  202. package/dist/infra/cipher/cipher-agent.js +317 -0
  203. package/dist/infra/cipher/command-parser.d.ts +23 -0
  204. package/dist/infra/cipher/command-parser.js +85 -0
  205. package/dist/infra/cipher/display/todo-display.d.ts +23 -0
  206. package/dist/infra/cipher/display/todo-display.js +129 -0
  207. package/dist/infra/cipher/events/event-emitter.d.ts +137 -0
  208. package/dist/infra/cipher/events/event-emitter.js +158 -0
  209. package/dist/infra/cipher/exit-codes.d.ts +44 -0
  210. package/dist/infra/cipher/exit-codes.js +58 -0
  211. package/dist/infra/cipher/file-system/file-system-service.d.ts +105 -0
  212. package/dist/infra/cipher/file-system/file-system-service.js +641 -0
  213. package/dist/infra/cipher/file-system/gitignore-filter.d.ts +77 -0
  214. package/dist/infra/cipher/file-system/gitignore-filter.js +120 -0
  215. package/dist/infra/cipher/file-system/glob-utils.d.ts +60 -0
  216. package/dist/infra/cipher/file-system/glob-utils.js +120 -0
  217. package/dist/infra/cipher/file-system/path-validator.d.ts +69 -0
  218. package/dist/infra/cipher/file-system/path-validator.js +184 -0
  219. package/dist/infra/cipher/grpc/internal-llm-grpc-service.d.ts +149 -0
  220. package/dist/infra/cipher/grpc/internal-llm-grpc-service.js +364 -0
  221. package/dist/infra/cipher/grpc/internal-llm-grpc.proto +94 -0
  222. package/dist/infra/cipher/interactive-commands.d.ts +16 -0
  223. package/dist/infra/cipher/interactive-commands.js +198 -0
  224. package/dist/infra/cipher/interactive-loop.d.ts +24 -0
  225. package/dist/infra/cipher/interactive-loop.js +352 -0
  226. package/dist/infra/cipher/llm/context/async-mutex.d.ts +59 -0
  227. package/dist/infra/cipher/llm/context/async-mutex.js +92 -0
  228. package/dist/infra/cipher/llm/context/compression/index.d.ts +6 -0
  229. package/dist/infra/cipher/llm/context/compression/index.js +5 -0
  230. package/dist/infra/cipher/llm/context/compression/middle-removal.d.ts +40 -0
  231. package/dist/infra/cipher/llm/context/compression/middle-removal.js +76 -0
  232. package/dist/infra/cipher/llm/context/compression/oldest-removal.d.ts +38 -0
  233. package/dist/infra/cipher/llm/context/compression/oldest-removal.js +53 -0
  234. package/dist/infra/cipher/llm/context/compression/types.d.ts +36 -0
  235. package/dist/infra/cipher/llm/context/compression/types.js +1 -0
  236. package/dist/infra/cipher/llm/context/context-manager.d.ts +234 -0
  237. package/dist/infra/cipher/llm/context/context-manager.js +419 -0
  238. package/dist/infra/cipher/llm/context/index.d.ts +2 -0
  239. package/dist/infra/cipher/llm/context/index.js +2 -0
  240. package/dist/infra/cipher/llm/context/loop-detector.d.ts +125 -0
  241. package/dist/infra/cipher/llm/context/loop-detector.js +194 -0
  242. package/dist/infra/cipher/llm/context/utils.d.ts +17 -0
  243. package/dist/infra/cipher/llm/context/utils.js +89 -0
  244. package/dist/infra/cipher/llm/formatters/claude-formatter.d.ts +54 -0
  245. package/dist/infra/cipher/llm/formatters/claude-formatter.js +182 -0
  246. package/dist/infra/cipher/llm/formatters/gemini-formatter.d.ts +69 -0
  247. package/dist/infra/cipher/llm/formatters/gemini-formatter.js +253 -0
  248. package/dist/infra/cipher/llm/formatters/openrouter-formatter.d.ts +47 -0
  249. package/dist/infra/cipher/llm/formatters/openrouter-formatter.js +238 -0
  250. package/dist/infra/cipher/llm/generators/byterover-content-generator.d.ts +92 -0
  251. package/dist/infra/cipher/llm/generators/byterover-content-generator.js +211 -0
  252. package/dist/infra/cipher/llm/generators/index.d.ts +13 -0
  253. package/dist/infra/cipher/llm/generators/index.js +13 -0
  254. package/dist/infra/cipher/llm/generators/logging-content-generator.d.ts +104 -0
  255. package/dist/infra/cipher/llm/generators/logging-content-generator.js +182 -0
  256. package/dist/infra/cipher/llm/generators/openrouter-content-generator.d.ts +93 -0
  257. package/dist/infra/cipher/llm/generators/openrouter-content-generator.js +254 -0
  258. package/dist/infra/cipher/llm/generators/retryable-content-generator.d.ts +90 -0
  259. package/dist/infra/cipher/llm/generators/retryable-content-generator.js +157 -0
  260. package/dist/infra/cipher/llm/index.d.ts +9 -0
  261. package/dist/infra/cipher/llm/index.js +13 -0
  262. package/dist/infra/cipher/llm/internal-llm-service.d.ts +308 -0
  263. package/dist/infra/cipher/llm/internal-llm-service.js +724 -0
  264. package/dist/infra/cipher/llm/openrouter-llm-service.d.ts +183 -0
  265. package/dist/infra/cipher/llm/openrouter-llm-service.js +386 -0
  266. package/dist/infra/cipher/llm/response-validator.d.ts +89 -0
  267. package/dist/infra/cipher/llm/response-validator.js +157 -0
  268. package/dist/infra/cipher/llm/retry/index.d.ts +10 -0
  269. package/dist/infra/cipher/llm/retry/index.js +10 -0
  270. package/dist/infra/cipher/llm/retry/retry-policy.d.ts +74 -0
  271. package/dist/infra/cipher/llm/retry/retry-policy.js +146 -0
  272. package/dist/infra/cipher/llm/retry/retry-with-backoff.d.ts +113 -0
  273. package/dist/infra/cipher/llm/retry/retry-with-backoff.js +247 -0
  274. package/dist/infra/cipher/llm/thought-parser.d.ts +145 -0
  275. package/dist/infra/cipher/llm/thought-parser.js +190 -0
  276. package/dist/infra/cipher/llm/tokenizers/claude-tokenizer.d.ts +47 -0
  277. package/dist/infra/cipher/llm/tokenizers/claude-tokenizer.js +55 -0
  278. package/dist/infra/cipher/llm/tokenizers/default-tokenizer.d.ts +31 -0
  279. package/dist/infra/cipher/llm/tokenizers/default-tokenizer.js +38 -0
  280. package/dist/infra/cipher/llm/tokenizers/gemini-tokenizer.d.ts +37 -0
  281. package/dist/infra/cipher/llm/tokenizers/gemini-tokenizer.js +45 -0
  282. package/dist/infra/cipher/llm/tokenizers/openrouter-tokenizer.d.ts +29 -0
  283. package/dist/infra/cipher/llm/tokenizers/openrouter-tokenizer.js +37 -0
  284. package/dist/infra/cipher/llm/tool-output-processor.d.ts +117 -0
  285. package/dist/infra/cipher/llm/tool-output-processor.js +153 -0
  286. package/dist/infra/cipher/logger/console-logger.d.ts +42 -0
  287. package/dist/infra/cipher/logger/console-logger.js +63 -0
  288. package/dist/infra/cipher/logger/event-based-logger.d.ts +54 -0
  289. package/dist/infra/cipher/logger/event-based-logger.js +92 -0
  290. package/dist/infra/cipher/memory/index.d.ts +6 -0
  291. package/dist/infra/cipher/memory/index.js +7 -0
  292. package/dist/infra/cipher/memory/memory-manager.d.ts +136 -0
  293. package/dist/infra/cipher/memory/memory-manager.js +523 -0
  294. package/dist/infra/cipher/parsers/coding-agent-log-parser.d.ts +24 -0
  295. package/dist/infra/cipher/parsers/coding-agent-log-parser.js +51 -0
  296. package/dist/infra/cipher/process/command-validator.d.ts +59 -0
  297. package/dist/infra/cipher/process/command-validator.js +266 -0
  298. package/dist/infra/cipher/process/index.d.ts +8 -0
  299. package/dist/infra/cipher/process/index.js +8 -0
  300. package/dist/infra/cipher/process/process-service.d.ts +95 -0
  301. package/dist/infra/cipher/process/process-service.js +439 -0
  302. package/dist/infra/cipher/session/chat-session.d.ts +80 -0
  303. package/dist/infra/cipher/session/chat-session.js +165 -0
  304. package/dist/infra/cipher/session/index.d.ts +6 -0
  305. package/dist/infra/cipher/session/index.js +5 -0
  306. package/dist/infra/cipher/session/session-event-forwarder.d.ts +37 -0
  307. package/dist/infra/cipher/session/session-event-forwarder.js +83 -0
  308. package/dist/infra/cipher/session/session-manager.d.ts +109 -0
  309. package/dist/infra/cipher/session/session-manager.js +172 -0
  310. package/dist/infra/cipher/storage/blob-history-storage.d.ts +76 -0
  311. package/dist/infra/cipher/storage/blob-history-storage.js +178 -0
  312. package/dist/infra/cipher/system-prompt/simple-prompt-factory.d.ts +105 -0
  313. package/dist/infra/cipher/system-prompt/simple-prompt-factory.js +290 -0
  314. package/dist/infra/cipher/tools/core-tool-scheduler.d.ts +99 -0
  315. package/dist/infra/cipher/tools/core-tool-scheduler.js +161 -0
  316. package/dist/infra/cipher/tools/default-policy-rules.d.ts +26 -0
  317. package/dist/infra/cipher/tools/default-policy-rules.js +125 -0
  318. package/dist/infra/cipher/tools/implementations/bash-exec-tool.d.ts +12 -0
  319. package/dist/infra/cipher/tools/implementations/bash-exec-tool.js +93 -0
  320. package/dist/infra/cipher/tools/implementations/bash-output-tool.d.ts +12 -0
  321. package/dist/infra/cipher/tools/implementations/bash-output-tool.js +47 -0
  322. package/dist/infra/cipher/tools/implementations/create-knowledge-topic-tool.d.ts +11 -0
  323. package/dist/infra/cipher/tools/implementations/create-knowledge-topic-tool.js +142 -0
  324. package/dist/infra/cipher/tools/implementations/delete-memory-tool.d.ts +12 -0
  325. package/dist/infra/cipher/tools/implementations/delete-memory-tool.js +37 -0
  326. package/dist/infra/cipher/tools/implementations/detect-domains-tool.d.ts +7 -0
  327. package/dist/infra/cipher/tools/implementations/detect-domains-tool.js +73 -0
  328. package/dist/infra/cipher/tools/implementations/edit-file-tool.d.ts +13 -0
  329. package/dist/infra/cipher/tools/implementations/edit-file-tool.js +50 -0
  330. package/dist/infra/cipher/tools/implementations/edit-memory-tool.d.ts +13 -0
  331. package/dist/infra/cipher/tools/implementations/edit-memory-tool.js +53 -0
  332. package/dist/infra/cipher/tools/implementations/find-knowledge-topics-tool.d.ts +7 -0
  333. package/dist/infra/cipher/tools/implementations/find-knowledge-topics-tool.js +421 -0
  334. package/dist/infra/cipher/tools/implementations/glob-files-tool.d.ts +18 -0
  335. package/dist/infra/cipher/tools/implementations/glob-files-tool.js +70 -0
  336. package/dist/infra/cipher/tools/implementations/grep-content-tool.d.ts +12 -0
  337. package/dist/infra/cipher/tools/implementations/grep-content-tool.js +77 -0
  338. package/dist/infra/cipher/tools/implementations/kill-process-tool.d.ts +12 -0
  339. package/dist/infra/cipher/tools/implementations/kill-process-tool.js +55 -0
  340. package/dist/infra/cipher/tools/implementations/list-memories-tool.d.ts +12 -0
  341. package/dist/infra/cipher/tools/implementations/list-memories-tool.js +63 -0
  342. package/dist/infra/cipher/tools/implementations/read-file-tool.d.ts +12 -0
  343. package/dist/infra/cipher/tools/implementations/read-file-tool.js +54 -0
  344. package/dist/infra/cipher/tools/implementations/read-memory-tool.d.ts +12 -0
  345. package/dist/infra/cipher/tools/implementations/read-memory-tool.js +39 -0
  346. package/dist/infra/cipher/tools/implementations/search-history-tool.d.ts +10 -0
  347. package/dist/infra/cipher/tools/implementations/search-history-tool.js +36 -0
  348. package/dist/infra/cipher/tools/implementations/write-file-tool.d.ts +12 -0
  349. package/dist/infra/cipher/tools/implementations/write-file-tool.js +52 -0
  350. package/dist/infra/cipher/tools/implementations/write-memory-tool.d.ts +13 -0
  351. package/dist/infra/cipher/tools/implementations/write-memory-tool.js +52 -0
  352. package/dist/infra/cipher/tools/implementations/write-todos-tool.d.ts +10 -0
  353. package/dist/infra/cipher/tools/implementations/write-todos-tool.js +165 -0
  354. package/dist/infra/cipher/tools/index.d.ts +18 -0
  355. package/dist/infra/cipher/tools/index.js +19 -0
  356. package/dist/infra/cipher/tools/policy-engine.d.ts +80 -0
  357. package/dist/infra/cipher/tools/policy-engine.js +110 -0
  358. package/dist/infra/cipher/tools/tool-invocation-queue.d.ts +191 -0
  359. package/dist/infra/cipher/tools/tool-invocation-queue.js +254 -0
  360. package/dist/infra/cipher/tools/tool-invocation.d.ts +216 -0
  361. package/dist/infra/cipher/tools/tool-invocation.js +294 -0
  362. package/dist/infra/cipher/tools/tool-manager.d.ts +135 -0
  363. package/dist/infra/cipher/tools/tool-manager.js +209 -0
  364. package/dist/infra/cipher/tools/tool-markers.d.ts +48 -0
  365. package/dist/infra/cipher/tools/tool-markers.js +49 -0
  366. package/dist/infra/cipher/tools/tool-provider.d.ts +77 -0
  367. package/dist/infra/cipher/tools/tool-provider.js +196 -0
  368. package/dist/infra/cipher/tools/tool-registry.d.ts +52 -0
  369. package/dist/infra/cipher/tools/tool-registry.js +144 -0
  370. package/dist/infra/cipher/tools/utils/schema-converter.d.ts +10 -0
  371. package/dist/infra/cipher/tools/utils/schema-converter.js +29 -0
  372. package/dist/infra/cipher/validation/workspace-validator.d.ts +19 -0
  373. package/dist/infra/cipher/validation/workspace-validator.js +37 -0
  374. package/dist/infra/cipher/watcher/coding-agent-log-watcher.d.ts +14 -0
  375. package/dist/infra/cipher/watcher/coding-agent-log-watcher.js +55 -0
  376. package/dist/infra/cogit/context-tree-to-push-context-mapper.d.ts +21 -0
  377. package/dist/infra/cogit/context-tree-to-push-context-mapper.js +32 -0
  378. package/dist/infra/cogit/http-cogit-pull-service.d.ts +15 -0
  379. package/dist/infra/cogit/http-cogit-pull-service.js +30 -0
  380. package/dist/infra/cogit/http-cogit-push-service.d.ts +17 -0
  381. package/dist/infra/cogit/http-cogit-push-service.js +104 -0
  382. package/dist/infra/config/file-config-store.js +9 -3
  383. package/dist/infra/context-tree/file-context-file-reader.d.ts +14 -0
  384. package/dist/infra/context-tree/file-context-file-reader.js +46 -0
  385. package/dist/infra/context-tree/file-context-tree-service.d.ts +14 -0
  386. package/dist/infra/context-tree/file-context-tree-service.js +46 -0
  387. package/dist/infra/context-tree/file-context-tree-snapshot-service.d.ts +34 -0
  388. package/dist/infra/context-tree/file-context-tree-snapshot-service.js +117 -0
  389. package/dist/infra/context-tree/file-context-tree-writer-service.d.ts +22 -0
  390. package/dist/infra/context-tree/file-context-tree-writer-service.js +61 -0
  391. package/dist/infra/memory/http-memory-retrieval-service.js +2 -1
  392. package/dist/infra/memory/http-memory-storage-service.js +4 -3
  393. package/dist/infra/parsers/clean/clean-claude-service.d.ts +111 -0
  394. package/dist/infra/parsers/clean/clean-claude-service.js +271 -0
  395. package/dist/infra/parsers/clean/clean-codex-service.d.ts +231 -0
  396. package/dist/infra/parsers/clean/clean-codex-service.js +534 -0
  397. package/dist/infra/parsers/clean/clean-copilot-service.d.ts +255 -0
  398. package/dist/infra/parsers/clean/clean-copilot-service.js +729 -0
  399. package/dist/infra/parsers/clean/clean-cursor-service.d.ts +161 -0
  400. package/dist/infra/parsers/clean/clean-cursor-service.js +432 -0
  401. package/dist/infra/parsers/clean/clean-parser-service-factory.d.ts +54 -0
  402. package/dist/infra/parsers/clean/clean-parser-service-factory.js +80 -0
  403. package/dist/infra/parsers/clean/shared.d.ts +84 -0
  404. package/dist/infra/parsers/clean/shared.js +273 -0
  405. package/dist/infra/parsers/raw/raw-claude-service.d.ts +195 -0
  406. package/dist/infra/parsers/raw/raw-claude-service.js +548 -0
  407. package/dist/infra/parsers/raw/raw-codex-service.d.ts +313 -0
  408. package/dist/infra/parsers/raw/raw-codex-service.js +782 -0
  409. package/dist/infra/parsers/raw/raw-copilot-service.d.ts +196 -0
  410. package/dist/infra/parsers/raw/raw-copilot-service.js +558 -0
  411. package/dist/infra/parsers/raw/raw-cursor-service.d.ts +316 -0
  412. package/dist/infra/parsers/raw/raw-cursor-service.js +818 -0
  413. package/dist/infra/parsers/raw/raw-parser-service-factory.d.ts +54 -0
  414. package/dist/infra/parsers/raw/raw-parser-service-factory.js +81 -0
  415. package/dist/infra/space/http-space-service.js +2 -1
  416. package/dist/infra/team/http-team-service.js +2 -1
  417. package/dist/infra/user/http-user-service.js +2 -1
  418. package/dist/infra/watcher/file-watcher-service.d.ts +10 -0
  419. package/dist/infra/watcher/file-watcher-service.js +81 -0
  420. package/dist/infra/workspace/workspace-detector-service.d.ts +60 -0
  421. package/dist/infra/workspace/workspace-detector-service.js +165 -0
  422. package/dist/resources/prompts/curate-context-tree-curation.yml +48 -0
  423. package/dist/resources/prompts/modes/autonomous.yml +9 -0
  424. package/dist/resources/prompts/query-context-tree-retrieval.yml +49 -0
  425. package/dist/resources/prompts/reflection.yml +27 -0
  426. package/dist/resources/prompts/system-prompt.yml +82 -0
  427. package/dist/resources/prompts/tool-outputs.yml +30 -0
  428. package/dist/templates/README.md +6 -7
  429. package/dist/templates/sections/command-reference.md +40 -111
  430. package/dist/templates/sections/workflow.md +3 -30
  431. package/dist/utils/emoji-helpers.d.ts +38 -0
  432. package/dist/utils/emoji-helpers.js +42 -0
  433. package/dist/utils/error-handler.d.ts +51 -0
  434. package/dist/utils/error-handler.js +169 -0
  435. package/dist/utils/error-helpers.d.ts +30 -0
  436. package/dist/utils/error-helpers.js +47 -0
  437. package/dist/utils/file-helpers.d.ts +15 -0
  438. package/dist/utils/file-helpers.js +44 -0
  439. package/dist/utils/oclif-error-helpers.d.ts +40 -0
  440. package/dist/utils/oclif-error-helpers.js +46 -0
  441. package/dist/utils/tool-display-formatter.d.ts +53 -0
  442. package/dist/utils/tool-display-formatter.js +257 -0
  443. package/oclif.manifest.json +381 -141
  444. package/package.json +27 -6
  445. package/dist/commands/add.d.ts +0 -49
  446. package/dist/commands/add.js +0 -192
  447. package/dist/commands/complete.d.ts +0 -108
  448. package/dist/commands/complete.js +0 -340
  449. package/dist/commands/retrieve.d.ts +0 -26
  450. package/dist/commands/retrieve.js +0 -101
  451. package/dist/core/domain/entities/curator-output.d.ts +0 -14
  452. package/dist/core/domain/entities/curator-output.js +0 -23
  453. package/dist/core/domain/entities/delta-batch.d.ts +0 -30
  454. package/dist/core/domain/entities/delta-batch.js +0 -52
  455. package/dist/core/domain/entities/delta-operation.d.ts +0 -31
  456. package/dist/core/domain/entities/delta-operation.js +0 -50
  457. package/dist/core/domain/entities/executor-output.d.ts +0 -27
  458. package/dist/core/domain/entities/executor-output.js +0 -33
  459. package/dist/core/domain/entities/reflector-output.d.ts +0 -38
  460. package/dist/core/domain/entities/reflector-output.js +0 -44
  461. package/dist/core/interfaces/i-ace-prompt-builder.d.ts +0 -48
  462. package/dist/core/interfaces/i-bullet-content-store.d.ts +0 -36
  463. package/dist/core/interfaces/i-delta-store.d.ts +0 -15
  464. package/dist/core/interfaces/i-executor-output-store.d.ts +0 -14
  465. package/dist/core/interfaces/i-playbook-service.d.ts +0 -69
  466. package/dist/core/interfaces/i-playbook-store.d.ts +0 -38
  467. package/dist/core/interfaces/i-reflection-store.d.ts +0 -21
  468. package/dist/infra/ace/ace-file-utils.d.ts +0 -46
  469. package/dist/infra/ace/ace-file-utils.js +0 -83
  470. package/dist/infra/ace/ace-prompt-templates.d.ts +0 -13
  471. package/dist/infra/ace/ace-prompt-templates.js +0 -177
  472. package/dist/infra/ace/file-bullet-content-store.d.ts +0 -27
  473. package/dist/infra/ace/file-bullet-content-store.js +0 -89
  474. package/dist/infra/ace/file-delta-store.d.ts +0 -9
  475. package/dist/infra/ace/file-delta-store.js +0 -26
  476. package/dist/infra/ace/file-executor-output-store.d.ts +0 -9
  477. package/dist/infra/ace/file-executor-output-store.js +0 -26
  478. package/dist/infra/ace/file-playbook-store.d.ts +0 -29
  479. package/dist/infra/ace/file-playbook-store.js +0 -107
  480. package/dist/infra/ace/file-reflection-store.d.ts +0 -10
  481. package/dist/infra/ace/file-reflection-store.js +0 -55
  482. package/dist/infra/playbook/file-playbook-service.d.ts +0 -42
  483. package/dist/infra/playbook/file-playbook-service.js +0 -132
  484. /package/dist/core/{interfaces/i-ace-prompt-builder.js → domain/cipher/blob/types.js} +0 -0
  485. /package/dist/core/{interfaces/i-bullet-content-store.js → domain/cipher/file-system/types.js} +0 -0
  486. /package/dist/core/{interfaces/i-delta-store.js → domain/cipher/process/types.js} +0 -0
  487. /package/dist/core/{interfaces/i-executor-output-store.js → domain/cipher/session/types.js} +0 -0
  488. /package/dist/core/{interfaces/i-playbook-service.js → domain/cipher/storage/history-types.js} +0 -0
  489. /package/dist/core/{interfaces/i-playbook-store.js → domain/cipher/system-prompt/types.js} +0 -0
  490. /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.
@@ -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 ACE (Agentic Context Engineering) workflow:
27
+ Complete guide to the context tree workflow:
28
28
  - Quick start examples
29
- - Command reference for ACE commands
30
- - ADD vs UPDATE modes explanation
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, ace, push, retrieve, show, clear)
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 ACE Workflow Guide:
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, playbook stats, etc.)
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 add`
5
+ ### `brv curate`
6
6
 
7
- **Description:** Add or update a bullet in the playbook (bypasses ACE workflow for direct agent usage)
7
+ **Description:** Curate context to the context tree (interactive or autonomous mode)
8
8
 
9
- **Flags:**
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
- ### `brv retrieve`
13
+ **Good examples of context:**
37
14
 
38
- **Description:** Retrieve memories from ByteRover Memora service and save to local ACE playbook
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
- **Flags:**
18
+ **Bad examples:**
41
19
 
42
- - `-q, --query <string>`: Search query string (required)
43
- - `-n, --node-keys <string>`: Comma-separated list of node keys (file paths) to filter results
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
- brv retrieve --query "authentication best practices"
49
- brv retrieve -q "error handling" -n "src/auth/login.ts,src/auth/oauth.ts"
50
- brv retrieve -q "database connection issues"
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
- - **Clears existing playbook first** (destructive operation)
56
- - Retrieves memories and related memories from Memora service
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:** Must be authenticated and project initialized
38
+ **Requirements:** Project must be initialized (`brv init`) and authenticated (`brv login`)
65
39
 
66
40
  ---
67
41
 
68
- ### `brv push`
42
+ ### `brv query`
69
43
 
70
- **Description:** Push playbook to ByteRover memory storage and clean up local ACE files
44
+ **Description:** Query and retrieve information from the context tree
71
45
 
72
- **Flags:**
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
- **Description:** Complete ACE workflow: save executor output, generate reflection, and update playbook in one command
48
+ - `QUERY`: Natural language question about your codebase or project knowledge (required)
89
49
 
90
- **Arguments:**
50
+ **Good examples of queries:**
91
51
 
92
- - `hint`: Short hint for naming output files (e.g., "user-auth", "bug-fix")
93
- - `reasoning`: Detailed reasoning and approach for completing the task
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
- **Flags:**
55
+ **Bad examples:**
97
56
 
98
- - `-t, --tool-usage <string>`: Comma-separated list of tool calls with arguments (format: "ToolName:argument", required)
99
- - `-f, --feedback <string>`: Environment feedback about task execution (e.g., "Tests passed", "Build failed", required)
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
- brv complete "user-auth" "Implemented OAuth2 flow" "Auth works" --tool-usage "Read:src/auth.ts,Edit:src/auth.ts,Bash:npm test" --feedback "All tests passed"
107
- brv complete "validation-fix" "Analyzed validator" "Fixed bug" --tool-usage "Grep:pattern:\"validate\",Read:src/validator.ts" --bullet-ids "bullet-123" --feedback "Tests passed"
108
- brv complete "auth-update" "Improved error handling" "Better errors" --tool-usage "Edit:src/auth.ts" --feedback "Tests passed" --update-bullet "bullet-5"
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
- - **Phase 1 (Executor):** Saves executor output with hint, reasoning, answer, tool usage, and bullet IDs
114
- - **Phase 2 (Reflector):** Auto-generates reflection based on feedback and applies tags to playbook
115
- - **Phase 3 (Curator):** Creates delta operation (ADD or UPDATE) and applies to playbook
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
- **Output:** Shows summary with file paths, tags applied count, and delta operations breakdown
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. **Retrieve wisely:** Use `brv retrieve` with specific queries and `--node-keys` to filter
148
- 2. **Read only what's needed:** Check playbook with `brv status` to see statistics before reading full content
149
- 3. **Update precisely:** Use `brv add` to add/update specific bullets or `brv complete` for complete workflow
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
- **Retrieve pattern:**
86
+ ### Context tree Management
155
87
 
156
- - Use `brv add` to directly add/update bullets
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 thats still necessary.
7
- - Keep a local playbook. playbook.json is your local memory store—update it with what you learn.
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
- ## user-centric
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;