byterover-cli 0.2.0 → 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 (498) 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 +53 -2
  18. package/dist/commands/init.js +279 -66
  19. package/dist/commands/login.js +9 -4
  20. package/dist/commands/logout.d.ts +16 -0
  21. package/dist/commands/logout.js +61 -0
  22. package/dist/commands/pull.d.ts +33 -0
  23. package/dist/commands/pull.js +115 -0
  24. package/dist/commands/push.d.ts +13 -13
  25. package/dist/commands/push.js +81 -101
  26. package/dist/commands/query.d.ts +63 -0
  27. package/dist/commands/query.js +349 -0
  28. package/dist/commands/space/list.d.ts +5 -2
  29. package/dist/commands/space/list.js +60 -56
  30. package/dist/commands/space/switch.d.ts +16 -0
  31. package/dist/commands/space/switch.js +102 -53
  32. package/dist/commands/status.d.ts +5 -2
  33. package/dist/commands/status.js +43 -33
  34. package/dist/commands/watch.d.ts +23 -0
  35. package/dist/commands/watch.js +171 -0
  36. package/dist/config/auth.config.js +14 -2
  37. package/dist/config/context-tree-domains.d.ts +12 -0
  38. package/dist/config/context-tree-domains.js +29 -0
  39. package/dist/config/environment.d.ts +6 -0
  40. package/dist/config/environment.js +9 -2
  41. package/dist/constants.d.ts +5 -0
  42. package/dist/constants.js +6 -0
  43. package/dist/core/domain/cipher/agent/agent-state-machine.d.ts +128 -0
  44. package/dist/core/domain/cipher/agent/agent-state-machine.js +183 -0
  45. package/dist/core/domain/cipher/agent/agent-state.d.ts +77 -0
  46. package/dist/core/domain/cipher/agent/agent-state.js +59 -0
  47. package/dist/core/domain/cipher/agent/index.d.ts +7 -0
  48. package/dist/core/domain/cipher/agent/index.js +7 -0
  49. package/dist/core/domain/cipher/agent-events/index.d.ts +8 -0
  50. package/dist/core/domain/cipher/agent-events/index.js +7 -0
  51. package/dist/core/domain/cipher/agent-events/types.d.ts +419 -0
  52. package/dist/core/domain/cipher/agent-events/types.js +42 -0
  53. package/dist/core/domain/cipher/blob/types.d.ts +108 -0
  54. package/dist/core/domain/cipher/errors/blob-error.d.ts +36 -0
  55. package/dist/core/domain/cipher/errors/blob-error.js +68 -0
  56. package/dist/core/domain/cipher/errors/file-system-error.d.ts +211 -0
  57. package/dist/core/domain/cipher/errors/file-system-error.js +291 -0
  58. package/dist/core/domain/cipher/errors/llm-error.d.ts +120 -0
  59. package/dist/core/domain/cipher/errors/llm-error.js +161 -0
  60. package/dist/core/domain/cipher/errors/memory-error.d.ts +35 -0
  61. package/dist/core/domain/cipher/errors/memory-error.js +62 -0
  62. package/dist/core/domain/cipher/errors/process-error-code.d.ts +97 -0
  63. package/dist/core/domain/cipher/errors/process-error-code.js +98 -0
  64. package/dist/core/domain/cipher/errors/process-error.d.ts +135 -0
  65. package/dist/core/domain/cipher/errors/process-error.js +173 -0
  66. package/dist/core/domain/cipher/errors/session-error.d.ts +56 -0
  67. package/dist/core/domain/cipher/errors/session-error.js +74 -0
  68. package/dist/core/domain/cipher/errors/tool-error.d.ts +57 -0
  69. package/dist/core/domain/cipher/errors/tool-error.js +81 -0
  70. package/dist/core/domain/cipher/file-system/types.d.ts +203 -0
  71. package/dist/core/domain/cipher/memory/types.d.ts +102 -0
  72. package/dist/core/domain/cipher/memory/types.js +4 -0
  73. package/dist/core/domain/cipher/parsed-interaction.d.ts +47 -0
  74. package/dist/core/domain/cipher/parsed-interaction.js +25 -0
  75. package/dist/core/domain/cipher/process/types.d.ts +286 -0
  76. package/dist/core/domain/cipher/session/types.d.ts +54 -0
  77. package/dist/core/domain/cipher/storage/history-types.d.ts +38 -0
  78. package/dist/core/domain/cipher/system-prompt/types.d.ts +131 -0
  79. package/dist/core/domain/cipher/todos/index.d.ts +4 -0
  80. package/dist/core/domain/cipher/todos/index.js +4 -0
  81. package/dist/core/domain/cipher/todos/types.d.ts +57 -0
  82. package/dist/core/domain/cipher/todos/types.js +5 -0
  83. package/dist/core/domain/cipher/tools/constants.d.ts +28 -0
  84. package/dist/core/domain/cipher/tools/constants.js +24 -0
  85. package/dist/core/domain/cipher/tools/tool-error.d.ts +183 -0
  86. package/dist/core/domain/cipher/tools/tool-error.js +246 -0
  87. package/dist/core/domain/cipher/tools/types.d.ts +145 -0
  88. package/dist/core/domain/entities/brv-config.d.ts +42 -6
  89. package/dist/core/domain/entities/brv-config.js +115 -17
  90. package/dist/core/domain/entities/cogit-push-context.d.ts +38 -0
  91. package/dist/core/domain/entities/cogit-push-context.js +91 -0
  92. package/dist/core/domain/entities/cogit-push-response.d.ts +20 -0
  93. package/dist/core/domain/entities/cogit-push-response.js +31 -0
  94. package/dist/core/domain/entities/cogit-snapshot-author.d.ts +24 -0
  95. package/dist/core/domain/entities/cogit-snapshot-author.js +39 -0
  96. package/dist/core/domain/entities/cogit-snapshot-file.d.ts +34 -0
  97. package/dist/core/domain/entities/cogit-snapshot-file.js +59 -0
  98. package/dist/core/domain/entities/cogit-snapshot.d.ts +31 -0
  99. package/dist/core/domain/entities/cogit-snapshot.js +58 -0
  100. package/dist/core/domain/entities/context-tree-index.d.ts +26 -0
  101. package/dist/core/domain/entities/context-tree-index.js +27 -0
  102. package/dist/core/domain/entities/context-tree-snapshot.d.ts +56 -0
  103. package/dist/core/domain/entities/context-tree-snapshot.js +83 -0
  104. package/dist/core/domain/entities/event.d.ts +1 -1
  105. package/dist/core/domain/entities/event.js +4 -1
  106. package/dist/core/domain/entities/parser.d.ts +567 -0
  107. package/dist/core/domain/entities/parser.js +10 -0
  108. package/dist/core/domain/entities/playbook.d.ts +2 -23
  109. package/dist/core/domain/entities/playbook.js +2 -70
  110. package/dist/core/domain/errors/brv-config-version-error.d.ts +16 -0
  111. package/dist/core/domain/errors/brv-config-version-error.js +21 -0
  112. package/dist/core/domain/knowledge/directory-manager.d.ts +80 -0
  113. package/dist/core/domain/knowledge/directory-manager.js +145 -0
  114. package/dist/core/domain/knowledge/markdown-writer.d.ts +18 -0
  115. package/dist/core/domain/knowledge/markdown-writer.js +18 -0
  116. package/dist/core/domain/knowledge/relation-parser.d.ts +90 -0
  117. package/dist/core/domain/knowledge/relation-parser.js +131 -0
  118. package/dist/core/interfaces/cipher/cipher-services.d.ts +71 -0
  119. package/dist/core/interfaces/cipher/cipher-services.js +1 -0
  120. package/dist/core/interfaces/cipher/i-blob-storage.d.ts +78 -0
  121. package/dist/core/interfaces/cipher/i-blob-storage.js +1 -0
  122. package/dist/core/interfaces/cipher/i-chat-session.d.ts +62 -0
  123. package/dist/core/interfaces/cipher/i-chat-session.js +1 -0
  124. package/dist/core/interfaces/cipher/i-cipher-agent.d.ts +88 -0
  125. package/dist/core/interfaces/cipher/i-cipher-agent.js +1 -0
  126. package/dist/core/interfaces/cipher/i-coding-agent-log-parser.d.ts +20 -0
  127. package/dist/core/interfaces/cipher/i-coding-agent-log-parser.js +1 -0
  128. package/dist/core/interfaces/cipher/i-coding-agent-log-watcher.d.ts +31 -0
  129. package/dist/core/interfaces/cipher/i-coding-agent-log-watcher.js +1 -0
  130. package/dist/core/interfaces/cipher/i-content-generator.d.ts +120 -0
  131. package/dist/core/interfaces/cipher/i-content-generator.js +12 -0
  132. package/dist/core/interfaces/cipher/i-event-emitter.d.ts +76 -0
  133. package/dist/core/interfaces/cipher/i-event-emitter.js +1 -0
  134. package/dist/core/interfaces/cipher/i-file-system.d.ts +68 -0
  135. package/dist/core/interfaces/cipher/i-file-system.js +1 -0
  136. package/dist/core/interfaces/cipher/i-history-storage.d.ts +53 -0
  137. package/dist/core/interfaces/cipher/i-history-storage.js +1 -0
  138. package/dist/core/interfaces/cipher/i-llm-provider.d.ts +14 -0
  139. package/dist/core/interfaces/cipher/i-llm-provider.js +1 -0
  140. package/dist/core/interfaces/cipher/i-llm-service.d.ts +62 -0
  141. package/dist/core/interfaces/cipher/i-llm-service.js +1 -0
  142. package/dist/core/interfaces/cipher/i-logger.d.ts +78 -0
  143. package/dist/core/interfaces/cipher/i-logger.js +28 -0
  144. package/dist/core/interfaces/cipher/i-message-formatter.d.ts +44 -0
  145. package/dist/core/interfaces/cipher/i-message-formatter.js +1 -0
  146. package/dist/core/interfaces/cipher/i-policy-engine.d.ts +102 -0
  147. package/dist/core/interfaces/cipher/i-policy-engine.js +9 -0
  148. package/dist/core/interfaces/cipher/i-process-service.d.ts +65 -0
  149. package/dist/core/interfaces/cipher/i-process-service.js +1 -0
  150. package/dist/core/interfaces/cipher/i-system-prompt-contributor.d.ts +25 -0
  151. package/dist/core/interfaces/cipher/i-system-prompt-contributor.js +1 -0
  152. package/dist/core/interfaces/cipher/i-tokenizer.d.ts +15 -0
  153. package/dist/core/interfaces/cipher/i-tokenizer.js +1 -0
  154. package/dist/core/interfaces/cipher/i-tool-provider.d.ts +64 -0
  155. package/dist/core/interfaces/cipher/i-tool-provider.js +1 -0
  156. package/dist/core/interfaces/cipher/i-tool-scheduler.d.ts +103 -0
  157. package/dist/core/interfaces/cipher/i-tool-scheduler.js +11 -0
  158. package/dist/core/interfaces/cipher/llm-types.d.ts +46 -0
  159. package/dist/core/interfaces/cipher/llm-types.js +5 -0
  160. package/dist/core/interfaces/cipher/message-types.d.ts +118 -0
  161. package/dist/core/interfaces/cipher/message-types.js +5 -0
  162. package/dist/core/interfaces/cipher/tokenizer-types.d.ts +11 -0
  163. package/dist/core/interfaces/cipher/tokenizer-types.js +14 -0
  164. package/dist/core/interfaces/i-cogit-pull-service.d.ts +24 -0
  165. package/dist/core/interfaces/i-cogit-pull-service.js +1 -0
  166. package/dist/core/interfaces/i-cogit-push-service.d.ts +27 -0
  167. package/dist/core/interfaces/i-cogit-push-service.js +1 -0
  168. package/dist/core/interfaces/i-context-file-reader.d.ts +32 -0
  169. package/dist/core/interfaces/i-context-file-reader.js +1 -0
  170. package/dist/core/interfaces/i-context-tree-service.d.ts +21 -0
  171. package/dist/core/interfaces/i-context-tree-service.js +1 -0
  172. package/dist/core/interfaces/i-context-tree-snapshot-service.d.ts +36 -0
  173. package/dist/core/interfaces/i-context-tree-snapshot-service.js +1 -0
  174. package/dist/core/interfaces/i-context-tree-writer-service.d.ts +32 -0
  175. package/dist/core/interfaces/i-context-tree-writer-service.js +1 -0
  176. package/dist/core/interfaces/i-file-watcher-service.d.ts +41 -0
  177. package/dist/core/interfaces/i-file-watcher-service.js +1 -0
  178. package/dist/core/interfaces/i-rule-template-service.d.ts +0 -4
  179. package/dist/core/interfaces/i-rule-template-service.js +1 -4
  180. package/dist/core/interfaces/parser/i-clean-parser-service.d.ts +18 -0
  181. package/dist/core/interfaces/parser/i-clean-parser-service.js +1 -0
  182. package/dist/core/interfaces/parser/i-raw-parser-service.d.ts +17 -0
  183. package/dist/core/interfaces/parser/i-raw-parser-service.js +1 -0
  184. package/dist/core/interfaces/parser/i-session-normalizer.d.ts +56 -0
  185. package/dist/core/interfaces/parser/i-session-normalizer.js +1 -0
  186. package/dist/hooks/command_not_found/handle-invalid-commands.d.ts +7 -0
  187. package/dist/hooks/command_not_found/handle-invalid-commands.js +32 -0
  188. package/dist/hooks/error/clean-errors.d.ts +7 -0
  189. package/dist/hooks/error/clean-errors.js +50 -0
  190. package/dist/hooks/init/welcome.js +72 -1
  191. package/dist/hooks/prerun/validate-brv-config-version.d.ts +28 -0
  192. package/dist/hooks/prerun/validate-brv-config-version.js +43 -0
  193. package/dist/infra/cipher/agent-service-factory.d.ts +86 -0
  194. package/dist/infra/cipher/agent-service-factory.js +212 -0
  195. package/dist/infra/cipher/blob/blob-storage-factory.d.ts +13 -0
  196. package/dist/infra/cipher/blob/blob-storage-factory.js +14 -0
  197. package/dist/infra/cipher/blob/index.d.ts +10 -0
  198. package/dist/infra/cipher/blob/index.js +12 -0
  199. package/dist/infra/cipher/blob/migrations.d.ts +63 -0
  200. package/dist/infra/cipher/blob/migrations.js +148 -0
  201. package/dist/infra/cipher/blob/sqlite-blob-storage.d.ts +82 -0
  202. package/dist/infra/cipher/blob/sqlite-blob-storage.js +307 -0
  203. package/dist/infra/cipher/cipher-agent-state-manager.d.ts +63 -0
  204. package/dist/infra/cipher/cipher-agent-state-manager.js +108 -0
  205. package/dist/infra/cipher/cipher-agent.d.ts +182 -0
  206. package/dist/infra/cipher/cipher-agent.js +317 -0
  207. package/dist/infra/cipher/command-parser.d.ts +23 -0
  208. package/dist/infra/cipher/command-parser.js +85 -0
  209. package/dist/infra/cipher/display/todo-display.d.ts +23 -0
  210. package/dist/infra/cipher/display/todo-display.js +129 -0
  211. package/dist/infra/cipher/events/event-emitter.d.ts +137 -0
  212. package/dist/infra/cipher/events/event-emitter.js +158 -0
  213. package/dist/infra/cipher/exit-codes.d.ts +44 -0
  214. package/dist/infra/cipher/exit-codes.js +58 -0
  215. package/dist/infra/cipher/file-system/file-system-service.d.ts +105 -0
  216. package/dist/infra/cipher/file-system/file-system-service.js +641 -0
  217. package/dist/infra/cipher/file-system/gitignore-filter.d.ts +77 -0
  218. package/dist/infra/cipher/file-system/gitignore-filter.js +120 -0
  219. package/dist/infra/cipher/file-system/glob-utils.d.ts +60 -0
  220. package/dist/infra/cipher/file-system/glob-utils.js +120 -0
  221. package/dist/infra/cipher/file-system/path-validator.d.ts +69 -0
  222. package/dist/infra/cipher/file-system/path-validator.js +184 -0
  223. package/dist/infra/cipher/grpc/internal-llm-grpc-service.d.ts +149 -0
  224. package/dist/infra/cipher/grpc/internal-llm-grpc-service.js +364 -0
  225. package/dist/infra/cipher/grpc/internal-llm-grpc.proto +94 -0
  226. package/dist/infra/cipher/interactive-commands.d.ts +16 -0
  227. package/dist/infra/cipher/interactive-commands.js +198 -0
  228. package/dist/infra/cipher/interactive-loop.d.ts +24 -0
  229. package/dist/infra/cipher/interactive-loop.js +352 -0
  230. package/dist/infra/cipher/llm/context/async-mutex.d.ts +59 -0
  231. package/dist/infra/cipher/llm/context/async-mutex.js +92 -0
  232. package/dist/infra/cipher/llm/context/compression/index.d.ts +6 -0
  233. package/dist/infra/cipher/llm/context/compression/index.js +5 -0
  234. package/dist/infra/cipher/llm/context/compression/middle-removal.d.ts +40 -0
  235. package/dist/infra/cipher/llm/context/compression/middle-removal.js +76 -0
  236. package/dist/infra/cipher/llm/context/compression/oldest-removal.d.ts +38 -0
  237. package/dist/infra/cipher/llm/context/compression/oldest-removal.js +53 -0
  238. package/dist/infra/cipher/llm/context/compression/types.d.ts +36 -0
  239. package/dist/infra/cipher/llm/context/compression/types.js +1 -0
  240. package/dist/infra/cipher/llm/context/context-manager.d.ts +234 -0
  241. package/dist/infra/cipher/llm/context/context-manager.js +419 -0
  242. package/dist/infra/cipher/llm/context/index.d.ts +2 -0
  243. package/dist/infra/cipher/llm/context/index.js +2 -0
  244. package/dist/infra/cipher/llm/context/loop-detector.d.ts +125 -0
  245. package/dist/infra/cipher/llm/context/loop-detector.js +194 -0
  246. package/dist/infra/cipher/llm/context/utils.d.ts +17 -0
  247. package/dist/infra/cipher/llm/context/utils.js +89 -0
  248. package/dist/infra/cipher/llm/formatters/claude-formatter.d.ts +54 -0
  249. package/dist/infra/cipher/llm/formatters/claude-formatter.js +182 -0
  250. package/dist/infra/cipher/llm/formatters/gemini-formatter.d.ts +69 -0
  251. package/dist/infra/cipher/llm/formatters/gemini-formatter.js +253 -0
  252. package/dist/infra/cipher/llm/formatters/openrouter-formatter.d.ts +47 -0
  253. package/dist/infra/cipher/llm/formatters/openrouter-formatter.js +238 -0
  254. package/dist/infra/cipher/llm/generators/byterover-content-generator.d.ts +92 -0
  255. package/dist/infra/cipher/llm/generators/byterover-content-generator.js +211 -0
  256. package/dist/infra/cipher/llm/generators/index.d.ts +13 -0
  257. package/dist/infra/cipher/llm/generators/index.js +13 -0
  258. package/dist/infra/cipher/llm/generators/logging-content-generator.d.ts +104 -0
  259. package/dist/infra/cipher/llm/generators/logging-content-generator.js +182 -0
  260. package/dist/infra/cipher/llm/generators/openrouter-content-generator.d.ts +93 -0
  261. package/dist/infra/cipher/llm/generators/openrouter-content-generator.js +254 -0
  262. package/dist/infra/cipher/llm/generators/retryable-content-generator.d.ts +90 -0
  263. package/dist/infra/cipher/llm/generators/retryable-content-generator.js +157 -0
  264. package/dist/infra/cipher/llm/index.d.ts +9 -0
  265. package/dist/infra/cipher/llm/index.js +13 -0
  266. package/dist/infra/cipher/llm/internal-llm-service.d.ts +308 -0
  267. package/dist/infra/cipher/llm/internal-llm-service.js +724 -0
  268. package/dist/infra/cipher/llm/openrouter-llm-service.d.ts +183 -0
  269. package/dist/infra/cipher/llm/openrouter-llm-service.js +386 -0
  270. package/dist/infra/cipher/llm/response-validator.d.ts +89 -0
  271. package/dist/infra/cipher/llm/response-validator.js +157 -0
  272. package/dist/infra/cipher/llm/retry/index.d.ts +10 -0
  273. package/dist/infra/cipher/llm/retry/index.js +10 -0
  274. package/dist/infra/cipher/llm/retry/retry-policy.d.ts +74 -0
  275. package/dist/infra/cipher/llm/retry/retry-policy.js +146 -0
  276. package/dist/infra/cipher/llm/retry/retry-with-backoff.d.ts +113 -0
  277. package/dist/infra/cipher/llm/retry/retry-with-backoff.js +247 -0
  278. package/dist/infra/cipher/llm/thought-parser.d.ts +145 -0
  279. package/dist/infra/cipher/llm/thought-parser.js +190 -0
  280. package/dist/infra/cipher/llm/tokenizers/claude-tokenizer.d.ts +47 -0
  281. package/dist/infra/cipher/llm/tokenizers/claude-tokenizer.js +55 -0
  282. package/dist/infra/cipher/llm/tokenizers/default-tokenizer.d.ts +31 -0
  283. package/dist/infra/cipher/llm/tokenizers/default-tokenizer.js +38 -0
  284. package/dist/infra/cipher/llm/tokenizers/gemini-tokenizer.d.ts +37 -0
  285. package/dist/infra/cipher/llm/tokenizers/gemini-tokenizer.js +45 -0
  286. package/dist/infra/cipher/llm/tokenizers/openrouter-tokenizer.d.ts +29 -0
  287. package/dist/infra/cipher/llm/tokenizers/openrouter-tokenizer.js +37 -0
  288. package/dist/infra/cipher/llm/tool-output-processor.d.ts +117 -0
  289. package/dist/infra/cipher/llm/tool-output-processor.js +153 -0
  290. package/dist/infra/cipher/logger/console-logger.d.ts +42 -0
  291. package/dist/infra/cipher/logger/console-logger.js +63 -0
  292. package/dist/infra/cipher/logger/event-based-logger.d.ts +54 -0
  293. package/dist/infra/cipher/logger/event-based-logger.js +92 -0
  294. package/dist/infra/cipher/memory/index.d.ts +6 -0
  295. package/dist/infra/cipher/memory/index.js +7 -0
  296. package/dist/infra/cipher/memory/memory-manager.d.ts +136 -0
  297. package/dist/infra/cipher/memory/memory-manager.js +523 -0
  298. package/dist/infra/cipher/parsers/coding-agent-log-parser.d.ts +24 -0
  299. package/dist/infra/cipher/parsers/coding-agent-log-parser.js +51 -0
  300. package/dist/infra/cipher/process/command-validator.d.ts +59 -0
  301. package/dist/infra/cipher/process/command-validator.js +266 -0
  302. package/dist/infra/cipher/process/index.d.ts +8 -0
  303. package/dist/infra/cipher/process/index.js +8 -0
  304. package/dist/infra/cipher/process/process-service.d.ts +95 -0
  305. package/dist/infra/cipher/process/process-service.js +439 -0
  306. package/dist/infra/cipher/session/chat-session.d.ts +80 -0
  307. package/dist/infra/cipher/session/chat-session.js +165 -0
  308. package/dist/infra/cipher/session/index.d.ts +6 -0
  309. package/dist/infra/cipher/session/index.js +5 -0
  310. package/dist/infra/cipher/session/session-event-forwarder.d.ts +37 -0
  311. package/dist/infra/cipher/session/session-event-forwarder.js +83 -0
  312. package/dist/infra/cipher/session/session-manager.d.ts +109 -0
  313. package/dist/infra/cipher/session/session-manager.js +172 -0
  314. package/dist/infra/cipher/storage/blob-history-storage.d.ts +76 -0
  315. package/dist/infra/cipher/storage/blob-history-storage.js +178 -0
  316. package/dist/infra/cipher/system-prompt/simple-prompt-factory.d.ts +105 -0
  317. package/dist/infra/cipher/system-prompt/simple-prompt-factory.js +290 -0
  318. package/dist/infra/cipher/tools/core-tool-scheduler.d.ts +99 -0
  319. package/dist/infra/cipher/tools/core-tool-scheduler.js +161 -0
  320. package/dist/infra/cipher/tools/default-policy-rules.d.ts +26 -0
  321. package/dist/infra/cipher/tools/default-policy-rules.js +125 -0
  322. package/dist/infra/cipher/tools/implementations/bash-exec-tool.d.ts +12 -0
  323. package/dist/infra/cipher/tools/implementations/bash-exec-tool.js +93 -0
  324. package/dist/infra/cipher/tools/implementations/bash-output-tool.d.ts +12 -0
  325. package/dist/infra/cipher/tools/implementations/bash-output-tool.js +47 -0
  326. package/dist/infra/cipher/tools/implementations/create-knowledge-topic-tool.d.ts +11 -0
  327. package/dist/infra/cipher/tools/implementations/create-knowledge-topic-tool.js +142 -0
  328. package/dist/infra/cipher/tools/implementations/delete-memory-tool.d.ts +12 -0
  329. package/dist/infra/cipher/tools/implementations/delete-memory-tool.js +37 -0
  330. package/dist/infra/cipher/tools/implementations/detect-domains-tool.d.ts +7 -0
  331. package/dist/infra/cipher/tools/implementations/detect-domains-tool.js +73 -0
  332. package/dist/infra/cipher/tools/implementations/edit-file-tool.d.ts +13 -0
  333. package/dist/infra/cipher/tools/implementations/edit-file-tool.js +50 -0
  334. package/dist/infra/cipher/tools/implementations/edit-memory-tool.d.ts +13 -0
  335. package/dist/infra/cipher/tools/implementations/edit-memory-tool.js +53 -0
  336. package/dist/infra/cipher/tools/implementations/find-knowledge-topics-tool.d.ts +7 -0
  337. package/dist/infra/cipher/tools/implementations/find-knowledge-topics-tool.js +421 -0
  338. package/dist/infra/cipher/tools/implementations/glob-files-tool.d.ts +18 -0
  339. package/dist/infra/cipher/tools/implementations/glob-files-tool.js +70 -0
  340. package/dist/infra/cipher/tools/implementations/grep-content-tool.d.ts +12 -0
  341. package/dist/infra/cipher/tools/implementations/grep-content-tool.js +77 -0
  342. package/dist/infra/cipher/tools/implementations/kill-process-tool.d.ts +12 -0
  343. package/dist/infra/cipher/tools/implementations/kill-process-tool.js +55 -0
  344. package/dist/infra/cipher/tools/implementations/list-memories-tool.d.ts +12 -0
  345. package/dist/infra/cipher/tools/implementations/list-memories-tool.js +63 -0
  346. package/dist/infra/cipher/tools/implementations/read-file-tool.d.ts +12 -0
  347. package/dist/infra/cipher/tools/implementations/read-file-tool.js +54 -0
  348. package/dist/infra/cipher/tools/implementations/read-memory-tool.d.ts +12 -0
  349. package/dist/infra/cipher/tools/implementations/read-memory-tool.js +39 -0
  350. package/dist/infra/cipher/tools/implementations/search-history-tool.d.ts +10 -0
  351. package/dist/infra/cipher/tools/implementations/search-history-tool.js +36 -0
  352. package/dist/infra/cipher/tools/implementations/write-file-tool.d.ts +12 -0
  353. package/dist/infra/cipher/tools/implementations/write-file-tool.js +52 -0
  354. package/dist/infra/cipher/tools/implementations/write-memory-tool.d.ts +13 -0
  355. package/dist/infra/cipher/tools/implementations/write-memory-tool.js +52 -0
  356. package/dist/infra/cipher/tools/implementations/write-todos-tool.d.ts +10 -0
  357. package/dist/infra/cipher/tools/implementations/write-todos-tool.js +165 -0
  358. package/dist/infra/cipher/tools/index.d.ts +18 -0
  359. package/dist/infra/cipher/tools/index.js +19 -0
  360. package/dist/infra/cipher/tools/policy-engine.d.ts +80 -0
  361. package/dist/infra/cipher/tools/policy-engine.js +110 -0
  362. package/dist/infra/cipher/tools/tool-invocation-queue.d.ts +191 -0
  363. package/dist/infra/cipher/tools/tool-invocation-queue.js +254 -0
  364. package/dist/infra/cipher/tools/tool-invocation.d.ts +216 -0
  365. package/dist/infra/cipher/tools/tool-invocation.js +294 -0
  366. package/dist/infra/cipher/tools/tool-manager.d.ts +135 -0
  367. package/dist/infra/cipher/tools/tool-manager.js +209 -0
  368. package/dist/infra/cipher/tools/tool-markers.d.ts +48 -0
  369. package/dist/infra/cipher/tools/tool-markers.js +49 -0
  370. package/dist/infra/cipher/tools/tool-provider.d.ts +77 -0
  371. package/dist/infra/cipher/tools/tool-provider.js +196 -0
  372. package/dist/infra/cipher/tools/tool-registry.d.ts +52 -0
  373. package/dist/infra/cipher/tools/tool-registry.js +144 -0
  374. package/dist/infra/cipher/tools/utils/schema-converter.d.ts +10 -0
  375. package/dist/infra/cipher/tools/utils/schema-converter.js +29 -0
  376. package/dist/infra/cipher/validation/workspace-validator.d.ts +19 -0
  377. package/dist/infra/cipher/validation/workspace-validator.js +37 -0
  378. package/dist/infra/cipher/watcher/coding-agent-log-watcher.d.ts +14 -0
  379. package/dist/infra/cipher/watcher/coding-agent-log-watcher.js +55 -0
  380. package/dist/infra/cogit/context-tree-to-push-context-mapper.d.ts +21 -0
  381. package/dist/infra/cogit/context-tree-to-push-context-mapper.js +32 -0
  382. package/dist/infra/cogit/http-cogit-pull-service.d.ts +15 -0
  383. package/dist/infra/cogit/http-cogit-pull-service.js +30 -0
  384. package/dist/infra/cogit/http-cogit-push-service.d.ts +17 -0
  385. package/dist/infra/cogit/http-cogit-push-service.js +104 -0
  386. package/dist/infra/config/file-config-store.js +9 -3
  387. package/dist/infra/context-tree/file-context-file-reader.d.ts +14 -0
  388. package/dist/infra/context-tree/file-context-file-reader.js +46 -0
  389. package/dist/infra/context-tree/file-context-tree-service.d.ts +14 -0
  390. package/dist/infra/context-tree/file-context-tree-service.js +46 -0
  391. package/dist/infra/context-tree/file-context-tree-snapshot-service.d.ts +34 -0
  392. package/dist/infra/context-tree/file-context-tree-snapshot-service.js +117 -0
  393. package/dist/infra/context-tree/file-context-tree-writer-service.d.ts +22 -0
  394. package/dist/infra/context-tree/file-context-tree-writer-service.js +61 -0
  395. package/dist/infra/memory/http-memory-retrieval-service.js +2 -1
  396. package/dist/infra/memory/http-memory-storage-service.js +4 -3
  397. package/dist/infra/parsers/clean/clean-claude-service.d.ts +111 -0
  398. package/dist/infra/parsers/clean/clean-claude-service.js +271 -0
  399. package/dist/infra/parsers/clean/clean-codex-service.d.ts +231 -0
  400. package/dist/infra/parsers/clean/clean-codex-service.js +534 -0
  401. package/dist/infra/parsers/clean/clean-copilot-service.d.ts +255 -0
  402. package/dist/infra/parsers/clean/clean-copilot-service.js +729 -0
  403. package/dist/infra/parsers/clean/clean-cursor-service.d.ts +161 -0
  404. package/dist/infra/parsers/clean/clean-cursor-service.js +432 -0
  405. package/dist/infra/parsers/clean/clean-parser-service-factory.d.ts +54 -0
  406. package/dist/infra/parsers/clean/clean-parser-service-factory.js +80 -0
  407. package/dist/infra/parsers/clean/shared.d.ts +84 -0
  408. package/dist/infra/parsers/clean/shared.js +273 -0
  409. package/dist/infra/parsers/raw/raw-claude-service.d.ts +195 -0
  410. package/dist/infra/parsers/raw/raw-claude-service.js +548 -0
  411. package/dist/infra/parsers/raw/raw-codex-service.d.ts +313 -0
  412. package/dist/infra/parsers/raw/raw-codex-service.js +782 -0
  413. package/dist/infra/parsers/raw/raw-copilot-service.d.ts +196 -0
  414. package/dist/infra/parsers/raw/raw-copilot-service.js +558 -0
  415. package/dist/infra/parsers/raw/raw-cursor-service.d.ts +316 -0
  416. package/dist/infra/parsers/raw/raw-cursor-service.js +818 -0
  417. package/dist/infra/parsers/raw/raw-parser-service-factory.d.ts +54 -0
  418. package/dist/infra/parsers/raw/raw-parser-service-factory.js +81 -0
  419. package/dist/infra/rule/constants.d.ts +4 -0
  420. package/dist/infra/rule/constants.js +4 -0
  421. package/dist/infra/rule/rule-template-service.js +1 -1
  422. package/dist/infra/rule/rule-writer-service.js +1 -5
  423. package/dist/infra/space/http-space-service.js +2 -1
  424. package/dist/infra/team/http-team-service.js +2 -1
  425. package/dist/infra/user/http-user-service.js +2 -1
  426. package/dist/infra/watcher/file-watcher-service.d.ts +10 -0
  427. package/dist/infra/watcher/file-watcher-service.js +81 -0
  428. package/dist/infra/workspace/workspace-detector-service.d.ts +60 -0
  429. package/dist/infra/workspace/workspace-detector-service.js +165 -0
  430. package/dist/resources/prompts/curate-context-tree-curation.yml +48 -0
  431. package/dist/resources/prompts/modes/autonomous.yml +9 -0
  432. package/dist/resources/prompts/query-context-tree-retrieval.yml +49 -0
  433. package/dist/resources/prompts/reflection.yml +27 -0
  434. package/dist/resources/prompts/system-prompt.yml +82 -0
  435. package/dist/resources/prompts/tool-outputs.yml +30 -0
  436. package/dist/templates/README.md +6 -7
  437. package/dist/templates/sections/command-reference.md +40 -93
  438. package/dist/templates/sections/workflow.md +3 -30
  439. package/dist/utils/emoji-helpers.d.ts +38 -0
  440. package/dist/utils/emoji-helpers.js +42 -0
  441. package/dist/utils/error-handler.d.ts +51 -0
  442. package/dist/utils/error-handler.js +169 -0
  443. package/dist/utils/error-helpers.d.ts +30 -0
  444. package/dist/utils/error-helpers.js +47 -0
  445. package/dist/utils/file-helpers.d.ts +15 -0
  446. package/dist/utils/file-helpers.js +44 -0
  447. package/dist/utils/oclif-error-helpers.d.ts +40 -0
  448. package/dist/utils/oclif-error-helpers.js +46 -0
  449. package/dist/utils/tool-display-formatter.d.ts +53 -0
  450. package/dist/utils/tool-display-formatter.js +257 -0
  451. package/oclif.manifest.json +422 -142
  452. package/package.json +29 -10
  453. package/dist/commands/add.d.ts +0 -49
  454. package/dist/commands/add.js +0 -192
  455. package/dist/commands/complete.d.ts +0 -108
  456. package/dist/commands/complete.js +0 -340
  457. package/dist/commands/retrieve.d.ts +0 -26
  458. package/dist/commands/retrieve.js +0 -101
  459. package/dist/core/domain/entities/curator-output.d.ts +0 -14
  460. package/dist/core/domain/entities/curator-output.js +0 -23
  461. package/dist/core/domain/entities/delta-batch.d.ts +0 -30
  462. package/dist/core/domain/entities/delta-batch.js +0 -52
  463. package/dist/core/domain/entities/delta-operation.d.ts +0 -31
  464. package/dist/core/domain/entities/delta-operation.js +0 -50
  465. package/dist/core/domain/entities/executor-output.d.ts +0 -27
  466. package/dist/core/domain/entities/executor-output.js +0 -33
  467. package/dist/core/domain/entities/reflector-output.d.ts +0 -38
  468. package/dist/core/domain/entities/reflector-output.js +0 -44
  469. package/dist/core/interfaces/i-ace-prompt-builder.d.ts +0 -48
  470. package/dist/core/interfaces/i-bullet-content-store.d.ts +0 -36
  471. package/dist/core/interfaces/i-delta-store.d.ts +0 -15
  472. package/dist/core/interfaces/i-executor-output-store.d.ts +0 -14
  473. package/dist/core/interfaces/i-playbook-service.d.ts +0 -69
  474. package/dist/core/interfaces/i-playbook-store.d.ts +0 -38
  475. package/dist/core/interfaces/i-reflection-store.d.ts +0 -21
  476. package/dist/infra/ace/ace-file-utils.d.ts +0 -46
  477. package/dist/infra/ace/ace-file-utils.js +0 -83
  478. package/dist/infra/ace/ace-prompt-templates.d.ts +0 -13
  479. package/dist/infra/ace/ace-prompt-templates.js +0 -177
  480. package/dist/infra/ace/file-bullet-content-store.d.ts +0 -27
  481. package/dist/infra/ace/file-bullet-content-store.js +0 -89
  482. package/dist/infra/ace/file-delta-store.d.ts +0 -9
  483. package/dist/infra/ace/file-delta-store.js +0 -26
  484. package/dist/infra/ace/file-executor-output-store.d.ts +0 -9
  485. package/dist/infra/ace/file-executor-output-store.js +0 -26
  486. package/dist/infra/ace/file-playbook-store.d.ts +0 -29
  487. package/dist/infra/ace/file-playbook-store.js +0 -107
  488. package/dist/infra/ace/file-reflection-store.d.ts +0 -10
  489. package/dist/infra/ace/file-reflection-store.js +0 -55
  490. package/dist/infra/playbook/file-playbook-service.d.ts +0 -42
  491. package/dist/infra/playbook/file-playbook-service.js +0 -132
  492. /package/dist/core/{interfaces/i-ace-prompt-builder.js → domain/cipher/blob/types.js} +0 -0
  493. /package/dist/core/{interfaces/i-bullet-content-store.js → domain/cipher/file-system/types.js} +0 -0
  494. /package/dist/core/{interfaces/i-delta-store.js → domain/cipher/process/types.js} +0 -0
  495. /package/dist/core/{interfaces/i-executor-output-store.js → domain/cipher/session/types.js} +0 -0
  496. /package/dist/core/{interfaces/i-playbook-service.js → domain/cipher/storage/history-types.js} +0 -0
  497. /package/dist/core/{interfaces/i-playbook-store.js → domain/cipher/system-prompt/types.js} +0 -0
  498. /package/dist/core/{interfaces/i-reflection-store.js → domain/cipher/tools/types.js} +0 -0
@@ -1,27 +0,0 @@
1
- export interface ExecutorOutputJson {
2
- bulletIds: string[];
3
- finalAnswer: string;
4
- hint: string;
5
- reasoning: string;
6
- toolUsage: string[];
7
- }
8
- export interface ExecutorOutputOptions {
9
- bulletIds?: string[];
10
- finalAnswer: string;
11
- hint: string;
12
- reasoning: string;
13
- toolUsage?: string[];
14
- }
15
- /**
16
- * Output from the executor (the coding agent) phase.
17
- * Contains reasoning, final answer, and bullets referenced.
18
- */
19
- export declare class ExecutorOutput {
20
- readonly bulletIds: string[];
21
- readonly finalAnswer: string;
22
- readonly hint: string;
23
- readonly reasoning: string;
24
- readonly toolUsage: string[];
25
- constructor(options: ExecutorOutputOptions);
26
- toJson(): ExecutorOutputJson;
27
- }
@@ -1,33 +0,0 @@
1
- /**
2
- * Output from the executor (the coding agent) phase.
3
- * Contains reasoning, final answer, and bullets referenced.
4
- */
5
- export class ExecutorOutput {
6
- bulletIds;
7
- finalAnswer;
8
- hint;
9
- reasoning;
10
- toolUsage;
11
- constructor(options) {
12
- if (options.reasoning.trim().length === 0) {
13
- throw new Error('Executor reasoning cannot be empty');
14
- }
15
- if (options.finalAnswer.trim().length === 0) {
16
- throw new Error('Executor final answer cannot be empty');
17
- }
18
- this.hint = options.hint;
19
- this.reasoning = options.reasoning;
20
- this.finalAnswer = options.finalAnswer;
21
- this.bulletIds = [...(options.bulletIds ?? [])];
22
- this.toolUsage = [...(options.toolUsage ?? [])];
23
- }
24
- toJson() {
25
- return {
26
- bulletIds: this.bulletIds,
27
- finalAnswer: this.finalAnswer,
28
- hint: this.hint,
29
- reasoning: this.reasoning,
30
- toolUsage: this.toolUsage,
31
- };
32
- }
33
- }
@@ -1,38 +0,0 @@
1
- export interface BulletTag {
2
- id: string;
3
- tag: string;
4
- }
5
- export interface ReflectorOutputInput {
6
- bulletTags: BulletTag[];
7
- correctApproach: string;
8
- errorIdentification: string;
9
- hint: string;
10
- keyInsight: string;
11
- reasoning: string;
12
- rootCauseAnalysis: string;
13
- }
14
- export interface ReflectorOutputJson {
15
- bulletTags: BulletTag[];
16
- correctApproach: string;
17
- errorIdentification: string;
18
- hint: string;
19
- keyInsight: string;
20
- reasoning: string;
21
- rootCauseAnalysis: string;
22
- }
23
- /**
24
- * Output from the reflector phase.
25
- * Contains error analysis and bullet tagging.
26
- */
27
- export declare class ReflectorOutput {
28
- readonly bulletTags: BulletTag[];
29
- readonly correctApproach: string;
30
- readonly errorIdentification: string;
31
- readonly hint: string;
32
- readonly keyInsight: string;
33
- readonly reasoning: string;
34
- readonly rootCauseAnalysis: string;
35
- constructor(input: ReflectorOutputInput);
36
- static fromJson(json: ReflectorOutputJson): ReflectorOutput;
37
- toJson(): ReflectorOutputJson;
38
- }
@@ -1,44 +0,0 @@
1
- /**
2
- * Output from the reflector phase.
3
- * Contains error analysis and bullet tagging.
4
- */
5
- export class ReflectorOutput {
6
- bulletTags;
7
- correctApproach;
8
- errorIdentification;
9
- hint;
10
- keyInsight;
11
- reasoning;
12
- rootCauseAnalysis;
13
- constructor(input) {
14
- this.reasoning = input.reasoning;
15
- this.errorIdentification = input.errorIdentification;
16
- this.rootCauseAnalysis = input.rootCauseAnalysis;
17
- this.correctApproach = input.correctApproach;
18
- this.keyInsight = input.keyInsight;
19
- this.hint = input.hint;
20
- this.bulletTags = [...input.bulletTags];
21
- }
22
- static fromJson(json) {
23
- return new ReflectorOutput({
24
- bulletTags: json.bulletTags,
25
- correctApproach: json.correctApproach,
26
- errorIdentification: json.errorIdentification,
27
- hint: json.hint || '',
28
- keyInsight: json.keyInsight,
29
- reasoning: json.reasoning,
30
- rootCauseAnalysis: json.rootCauseAnalysis,
31
- });
32
- }
33
- toJson() {
34
- return {
35
- bulletTags: this.bulletTags,
36
- correctApproach: this.correctApproach,
37
- errorIdentification: this.errorIdentification,
38
- hint: this.hint,
39
- keyInsight: this.keyInsight,
40
- reasoning: this.reasoning,
41
- rootCauseAnalysis: this.rootCauseAnalysis,
42
- };
43
- }
44
- }
@@ -1,48 +0,0 @@
1
- import type { ExecutorOutput } from '../domain/entities/executor-output.js';
2
- import type { Playbook } from '../domain/entities/playbook.js';
3
- import type { ReflectorOutput } from '../domain/entities/reflector-output.js';
4
- /**
5
- * Parameters for building a reflector prompt
6
- */
7
- export interface ReflectorPromptParams {
8
- executorOutput: ExecutorOutput;
9
- feedback: string;
10
- groundTruth?: string;
11
- playbook: Playbook;
12
- task: string;
13
- }
14
- /**
15
- * Port for building prompts for ACE pipeline
16
- * This abstraction allows different prompt strategies for different roles of coding agent
17
- */
18
- export interface IAcePromptBuilder {
19
- /**
20
- * Builds the curator prompt for updating the playbook.
21
- * The curator transforms reflections into structured playbook updates.
22
- *
23
- * @param reflection The reflector's analysis and insights
24
- * @param playbook The current playbook to update
25
- * @param questionContext Context about what task was being solved
26
- * @returns A prompt string ready for the coding agent
27
- */
28
- buildCuratorPrompt: (reflection: ReflectorOutput, playbook: Playbook, questionContext: string) => string;
29
- /**
30
- * Builds the executor (generator) prompt for coding agents.
31
- * The executor uses the playbook to solve tasks with context-aware reasoning.
32
- *
33
- * @param task The task or question to solve
34
- * @param context Additional context about the task (e.g., file contents, error messages)
35
- * @param playbook The knowledge playbook containing strategies and lessons
36
- * @param recentReflections Recent reflection summaries to avoid repeating mistakes
37
- * @returns A prompt string ready for the coding aqgent
38
- */
39
- buildExecutorPrompt: (task: string, context: string, playbook: Playbook, recentReflections: string[]) => string;
40
- /**
41
- * Builds the reflector prompt for analyzing execution results.
42
- * The reflector identifies errors, root causes, and key insights.
43
- *
44
- * @param params The reflector prompt parameters
45
- * @returns A prompt string ready for the coding agent
46
- */
47
- buildReflectorPrompt: (params: ReflectorPromptParams) => string;
48
- }
@@ -1,36 +0,0 @@
1
- /**
2
- * Port for bullet content file persistence operations.
3
- * Manages individual markdown files for bullet content.
4
- */
5
- export interface IBulletContentStore {
6
- /**
7
- * Deletes a bullet content file from storage.
8
- * Does nothing if the content file doesn't exist.
9
- * @param bulletId The bullet ID
10
- * @param directory The project directory (defaults to current working directory)
11
- */
12
- delete: (bulletId: string, directory?: string) => Promise<void>;
13
- /**
14
- * Checks if a bullet content file exists.
15
- * @param bulletId The bullet ID
16
- * @param directory The project directory (defaults to current working directory)
17
- * @returns True if content file exists, false otherwise
18
- */
19
- exists: (bulletId: string, directory?: string) => Promise<boolean>;
20
- /**
21
- * Loads bullet content from a markdown file.
22
- * @param bulletId The bullet ID
23
- * @param directory The project directory (defaults to current working directory)
24
- * @returns The content, or undefined if not found
25
- */
26
- load: (bulletId: string, directory?: string) => Promise<string | undefined>;
27
- /**
28
- * Saves bullet content to a markdown file.
29
- * Creates the directory structure if it doesn't exist.
30
- * @param bulletId The bullet ID
31
- * @param content The bullet content
32
- * @param directory The project directory (defaults to current working directory)
33
- * @returns The file path where content was saved
34
- */
35
- save: (bulletId: string, content: string, directory?: string) => Promise<string>;
36
- }
@@ -1,15 +0,0 @@
1
- import type { DeltaBatch } from '../domain/entities/delta-batch.js';
2
- /**
3
- * Interface for delta batch storage operations.
4
- * Implementations can be file-based (for production) or in-memory (for testing).
5
- */
6
- export interface IDeltaStore {
7
- /**
8
- * Saves a delta batch to storage.
9
- * @param deltaBatch - The delta batch to save
10
- * @param hint - Optional hint to include in the filename for identification
11
- * @param directory - Optional base directory (defaults to current working directory)
12
- * @returns The absolute path where the delta batch was saved
13
- */
14
- save(deltaBatch: DeltaBatch, hint?: string, directory?: string): Promise<string>;
15
- }
@@ -1,14 +0,0 @@
1
- import type { ExecutorOutput } from '../domain/entities/executor-output.js';
2
- /**
3
- * Interface for executor output storage operations.
4
- * Implementations can be file-based (for production) or in-memory (for testing).
5
- */
6
- export interface IExecutorOutputStore {
7
- /**
8
- * Saves executor output to storage.
9
- * @param output - The executor output to save
10
- * @param directory - Optional base directory (defaults to current working directory)
11
- * @returns The absolute path where the executor output was saved
12
- */
13
- save(output: ExecutorOutput, directory?: string): Promise<string>;
14
- }
@@ -1,69 +0,0 @@
1
- import type { Bullet, BulletMetadata } from '../domain/entities/bullet.js';
2
- import type { DeltaBatch } from '../domain/entities/delta-batch.js';
3
- import type { Playbook } from '../domain/entities/playbook.js';
4
- import type { ReflectorOutput } from '../domain/entities/reflector-output.js';
5
- /**
6
- * Interface for playbook operations service.
7
- * Provides high-level operations for managing ACE playbooks including
8
- * initialization, bullet management, delta application, and reflection tag processing.
9
- */
10
- export interface IPlaybookService {
11
- /**
12
- * Adds a new bullet or updates an existing bullet in the playbook.
13
- * @param params - Bullet parameters
14
- * @param params.section - Section name for the bullet
15
- * @param params.content - Content of the bullet
16
- * @param params.bulletId - Optional bullet ID for update operation
17
- * @param params.metadata - Optional metadata (tags, related files, timestamp)
18
- * @param params.directory - Optional base directory (defaults to current working directory)
19
- * @returns The created or updated bullet
20
- * @throws Error if validation fails or bulletId not found for updates
21
- */
22
- addOrUpdateBullet(params: {
23
- bulletId?: string;
24
- content: string;
25
- directory?: string;
26
- metadata?: BulletMetadata;
27
- section: string;
28
- }): Promise<Bullet>;
29
- /**
30
- * Applies delta operations (ADD/UPDATE/REMOVE) to the playbook.
31
- * Creates a new playbook if it doesn't exist.
32
- * @param params - Delta application parameters
33
- * @param params.delta - Delta batch containing operations to apply
34
- * @param params.directory - Optional base directory (defaults to current working directory)
35
- * @returns Result containing operations applied count and updated playbook
36
- * @throws Error if delta application fails
37
- */
38
- applyDelta(params: {
39
- delta: DeltaBatch;
40
- directory?: string;
41
- }): Promise<{
42
- operationsApplied: number;
43
- playbook: Playbook;
44
- }>;
45
- /**
46
- * Applies reflection bullet tags to existing bullets in the playbook.
47
- * Skips bullets that don't exist in the playbook.
48
- * @param params - Reflection tag parameters
49
- * @param params.reflection - Reflection output containing bullet tags
50
- * @param params.directory - Optional base directory (defaults to current working directory)
51
- * @returns Result containing tags applied count and updated playbook
52
- * @throws Error if playbook not found or tag application fails
53
- */
54
- applyReflectionTags(params: {
55
- directory?: string;
56
- reflection: ReflectorOutput;
57
- }): Promise<{
58
- playbook: Playbook;
59
- tagsApplied: number;
60
- }>;
61
- /**
62
- * Initializes the ACE playbook directory structure and creates an empty playbook.
63
- * Creates .brv/ace/ directory with subdirectories: reflections/, executor-outputs/, deltas/
64
- * @param directory - Optional base directory (defaults to current working directory)
65
- * @returns The absolute path to the created playbook file
66
- * @throws Error if playbook already exists or initialization fails
67
- */
68
- initialize(directory?: string): Promise<string>;
69
- }
@@ -1,38 +0,0 @@
1
- import type { Playbook } from '../domain/entities/playbook.js';
2
- /**
3
- * Port for playbook persistence operations.
4
- * Implementations can use file system, database, or remote storage.
5
- */
6
- export interface IPlaybookStore {
7
- /**
8
- * Clears the playbook content by replacing it with an empty playbook.
9
- * Does nothing if the playbook doesn't exist.
10
- * @param directory The project directory (defaults to current working directory)
11
- */
12
- clear: (directory?: string) => Promise<void>;
13
- /**
14
- * Deletes a playbook from storage.
15
- * Does nothing if the playbook doesn't exist.
16
- * @param directory The project directory (defaults to current working directory)
17
- */
18
- delete: (directory?: string) => Promise<void>;
19
- /**
20
- * Checks if a playbook exists in the specified directory.
21
- * @param directory The project directory (defaults to current working directory)
22
- * @returns True if playbook exists, false otherwise
23
- */
24
- exists: (directory?: string) => Promise<boolean>;
25
- /**
26
- * Loads a playbook from storage.
27
- * @param directory The project directory (defaults to current working directory)
28
- * @returns The playbook, or undefined if not found
29
- */
30
- load: (directory?: string) => Promise<Playbook | undefined>;
31
- /**
32
- * Saves a playbook to storage.
33
- * Creates the directory structure if it doesn't exist.
34
- * @param playbook The playbook to save
35
- * @param directory The project directory (defaults to current working directory)
36
- */
37
- save: (playbook: Playbook, directory?: string) => Promise<void>;
38
- }
@@ -1,21 +0,0 @@
1
- import type { ReflectorOutput } from '../domain/entities/reflector-output.js';
2
- /**
3
- * Interface for reflection output storage operations.
4
- * Implementations can be file-based (for production) or in-memory (for testing).
5
- */
6
- export interface IReflectionStore {
7
- /**
8
- * Loads the most recent reflections from storage.
9
- * @param directory - Optional base directory (defaults to current working directory)
10
- * @param count - Maximum number of recent reflections to load (default: 3)
11
- * @returns Array of recent reflections, ordered from most recent to oldest
12
- */
13
- loadRecent(directory?: string, count?: number): Promise<ReflectorOutput[]>;
14
- /**
15
- * Saves a reflection output to storage.
16
- * @param reflection - The reflection output to save
17
- * @param directory - Optional base directory (defaults to current working directory)
18
- * @returns The absolute path where the reflection was saved
19
- */
20
- save(reflection: ReflectorOutput, directory?: string): Promise<string>;
21
- }
@@ -1,46 +0,0 @@
1
- import { DeltaBatch } from '../../core/domain/entities/delta-batch.js';
2
- import { ExecutorOutput } from '../../core/domain/entities/executor-output.js';
3
- import { ReflectorOutput } from '../../core/domain/entities/reflector-output.js';
4
- /**
5
- * Sanitize hint for use in filename.
6
- * Converts to lowercase, replaces spaces/underscores with hyphens,
7
- * removes all non-alphanumeric characters except hyphens.
8
- * @param hint - The hint string to sanitize
9
- * @returns Sanitized hint suitable for filename
10
- */
11
- export declare function sanitizeHint(hint: string): string;
12
- /**
13
- * Generates a timestamped filename for ACE output files.
14
- * @param type - The file type prefix (e.g., 'delta', 'reflection', 'executor-output')
15
- * @param hint - Optional hint to include in filename
16
- * @returns Filename in format: {type}-{hint}-{timestamp}.json or {type}-{timestamp}.json
17
- */
18
- export declare function generateTimestampedFilename(type: string, hint?: string): string;
19
- /**
20
- * Ensures that an ACE subdirectory exists, creating it if necessary.
21
- * @param baseDir - The base project directory (defaults to current working directory)
22
- * @param subdir - The ACE subdirectory name (e.g., 'deltas', 'reflections', 'executor-outputs')
23
- * @returns The absolute path to the subdirectory
24
- */
25
- export declare function ensureAceDirectory(baseDir: string | undefined, subdir: string): Promise<string>;
26
- /**
27
- * Loads and parses an executor output file.
28
- * @param filePath - Absolute path to executor output JSON file
29
- * @returns ExecutorOutput entity
30
- * @throws Error if file doesn't exist or JSON is invalid
31
- */
32
- export declare function loadExecutorOutput(filePath: string): Promise<ExecutorOutput>;
33
- /**
34
- * Loads and parses a reflection output file.
35
- * @param filePath - Absolute path to reflection output JSON file
36
- * @returns ReflectorOutput entity
37
- * @throws Error if file doesn't exist or JSON is invalid
38
- */
39
- export declare function loadReflectionOutput(filePath: string): Promise<ReflectorOutput>;
40
- /**
41
- * Loads and parses a delta batch file.
42
- * @param filePath - Absolute path to delta batch JSON file
43
- * @returns DeltaBatch entity
44
- * @throws Error if file doesn't exist or JSON is invalid
45
- */
46
- export declare function loadDeltaBatch(filePath: string): Promise<DeltaBatch>;
@@ -1,83 +0,0 @@
1
- import { mkdir, readFile } from 'node:fs/promises';
2
- import { join } from 'node:path';
3
- import { ACE_DIR, BRV_DIR } from '../../constants.js';
4
- import { DeltaBatch } from '../../core/domain/entities/delta-batch.js';
5
- import { ExecutorOutput } from '../../core/domain/entities/executor-output.js';
6
- import { ReflectorOutput } from '../../core/domain/entities/reflector-output.js';
7
- /**
8
- * Sanitize hint for use in filename.
9
- * Converts to lowercase, replaces spaces/underscores with hyphens,
10
- * removes all non-alphanumeric characters except hyphens.
11
- * @param hint - The hint string to sanitize
12
- * @returns Sanitized hint suitable for filename
13
- */
14
- export function sanitizeHint(hint) {
15
- return hint
16
- .toLowerCase()
17
- .replaceAll(/[\s_]+/g, '-')
18
- .replaceAll(/[^\da-z-]/g, '')
19
- .replaceAll(/-+/g, '-')
20
- .replaceAll(/^-|-$/g, '');
21
- }
22
- /**
23
- * Generates a timestamped filename for ACE output files.
24
- * @param type - The file type prefix (e.g., 'delta', 'reflection', 'executor-output')
25
- * @param hint - Optional hint to include in filename
26
- * @returns Filename in format: {type}-{hint}-{timestamp}.json or {type}-{timestamp}.json
27
- */
28
- export function generateTimestampedFilename(type, hint) {
29
- const timestamp = new Date().toISOString().replaceAll(':', '-');
30
- const sanitizedHint = hint ? sanitizeHint(hint) : '';
31
- return sanitizedHint ? `${type}-${sanitizedHint}-${timestamp}.json` : `${type}-${timestamp}.json`;
32
- }
33
- /**
34
- * Ensures that an ACE subdirectory exists, creating it if necessary.
35
- * @param baseDir - The base project directory (defaults to current working directory)
36
- * @param subdir - The ACE subdirectory name (e.g., 'deltas', 'reflections', 'executor-outputs')
37
- * @returns The absolute path to the subdirectory
38
- */
39
- export async function ensureAceDirectory(baseDir, subdir) {
40
- const resolvedBaseDir = baseDir ?? process.cwd();
41
- const aceSubdir = join(resolvedBaseDir, BRV_DIR, ACE_DIR, subdir);
42
- await mkdir(aceSubdir, { recursive: true });
43
- return aceSubdir;
44
- }
45
- /**
46
- * Loads and parses an executor output file.
47
- * @param filePath - Absolute path to executor output JSON file
48
- * @returns ExecutorOutput entity
49
- * @throws Error if file doesn't exist or JSON is invalid
50
- */
51
- export async function loadExecutorOutput(filePath) {
52
- const content = await readFile(filePath, 'utf8');
53
- const json = JSON.parse(content);
54
- return new ExecutorOutput({
55
- bulletIds: json.bulletIds,
56
- finalAnswer: json.finalAnswer,
57
- hint: json.hint || '',
58
- reasoning: json.reasoning,
59
- toolUsage: json.toolUsage,
60
- });
61
- }
62
- /**
63
- * Loads and parses a reflection output file.
64
- * @param filePath - Absolute path to reflection output JSON file
65
- * @returns ReflectorOutput entity
66
- * @throws Error if file doesn't exist or JSON is invalid
67
- */
68
- export async function loadReflectionOutput(filePath) {
69
- const content = await readFile(filePath, 'utf8');
70
- const json = JSON.parse(content);
71
- return ReflectorOutput.fromJson(json);
72
- }
73
- /**
74
- * Loads and parses a delta batch file.
75
- * @param filePath - Absolute path to delta batch JSON file
76
- * @returns DeltaBatch entity
77
- * @throws Error if file doesn't exist or JSON is invalid
78
- */
79
- export async function loadDeltaBatch(filePath) {
80
- const content = await readFile(filePath, 'utf8');
81
- const json = JSON.parse(content);
82
- return DeltaBatch.fromJson(json);
83
- }
@@ -1,13 +0,0 @@
1
- import type { Playbook } from '../../core/domain/entities/playbook.js';
2
- import type { ReflectorOutput } from '../../core/domain/entities/reflector-output.js';
3
- import type { IAcePromptBuilder, ReflectorPromptParams } from '../../core/interfaces/i-ace-prompt-builder.js';
4
- /**
5
- * Default implementation of ACE prompts using template strings.
6
- * These prompts are designed to work with coding agents (Claude Code, Cursor, etc.)
7
- * and LLMs that understand structured JSON output.
8
- */
9
- export declare class AcePromptTemplates implements IAcePromptBuilder {
10
- buildCuratorPrompt(reflection: ReflectorOutput, playbook: Playbook, questionContext: string): string;
11
- buildExecutorPrompt(task: string, context: string, playbook: Playbook, recentReflections: string[]): string;
12
- buildReflectorPrompt(params: ReflectorPromptParams): string;
13
- }