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,103 @@
1
+ /**
2
+ * Tool Scheduler Interface.
3
+ *
4
+ * Orchestrates tool execution with:
5
+ * 1. Policy checking (ALLOW/DENY)
6
+ * 2. State tracking (pending → executing → completed/failed/denied)
7
+ * 3. Execution history for debugging/auditing
8
+ *
9
+ * Based on gemini-cli's CoreToolScheduler pattern, simplified for autonomous mode.
10
+ */
11
+ import type { PolicyEvaluationResult } from './i-policy-engine.js';
12
+ /**
13
+ * Status of a scheduled tool execution.
14
+ */
15
+ export type ScheduledToolStatus = 'completed' | 'denied' | 'executing' | 'failed' | 'pending';
16
+ /**
17
+ * Represents a scheduled tool execution with tracking information.
18
+ */
19
+ export interface ScheduledToolExecution {
20
+ /**
21
+ * Arguments passed to the tool.
22
+ */
23
+ args: Record<string, unknown>;
24
+ /**
25
+ * When execution completed (success, failure, or denial).
26
+ */
27
+ completedAt?: Date;
28
+ /**
29
+ * Error that occurred (if failed or denied).
30
+ */
31
+ error?: Error;
32
+ /**
33
+ * Unique identifier for this execution.
34
+ */
35
+ id: string;
36
+ /**
37
+ * Result of policy evaluation (if performed).
38
+ */
39
+ policyResult?: PolicyEvaluationResult;
40
+ /**
41
+ * Tool execution result (if completed successfully).
42
+ */
43
+ result?: unknown;
44
+ /**
45
+ * When execution started.
46
+ */
47
+ startedAt?: Date;
48
+ /**
49
+ * Current status of the execution.
50
+ */
51
+ status: ScheduledToolStatus;
52
+ /**
53
+ * Name of the tool being executed.
54
+ */
55
+ toolName: string;
56
+ }
57
+ /**
58
+ * Context for tool execution.
59
+ */
60
+ export interface ToolSchedulerContext {
61
+ /**
62
+ * Session ID for the current session.
63
+ */
64
+ sessionId: string;
65
+ }
66
+ /**
67
+ * Interface for the tool scheduler.
68
+ *
69
+ * The scheduler coordinates tool execution by:
70
+ * 1. Checking policy rules before execution
71
+ * 2. Tracking execution state transitions
72
+ * 3. Maintaining execution history for debugging
73
+ */
74
+ export interface IToolScheduler {
75
+ /**
76
+ * Clear execution history.
77
+ * Useful for testing or memory management.
78
+ */
79
+ clearHistory(): void;
80
+ /**
81
+ * Schedule and execute a tool call.
82
+ *
83
+ * Flow:
84
+ * 1. Create execution record (pending)
85
+ * 2. Evaluate policy (ALLOW/DENY)
86
+ * 3. If ALLOW: execute tool (executing → completed/failed)
87
+ * 4. If DENY: throw error (denied)
88
+ *
89
+ * @param toolName - Name of the tool to execute
90
+ * @param args - Arguments for the tool
91
+ * @param context - Execution context with session info
92
+ * @returns Tool execution result
93
+ * @throws Error if tool is denied by policy or execution fails
94
+ */
95
+ execute(toolName: string, args: Record<string, unknown>, context: ToolSchedulerContext): Promise<unknown>;
96
+ /**
97
+ * Get execution history for debugging/auditing.
98
+ * Returns most recent executions (implementation may limit size).
99
+ *
100
+ * @returns Read-only array of scheduled executions
101
+ */
102
+ getHistory(): readonly ScheduledToolExecution[];
103
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Tool Scheduler Interface.
3
+ *
4
+ * Orchestrates tool execution with:
5
+ * 1. Policy checking (ALLOW/DENY)
6
+ * 2. State tracking (pending → executing → completed/failed/denied)
7
+ * 3. Execution history for debugging/auditing
8
+ *
9
+ * Based on gemini-cli's CoreToolScheduler pattern, simplified for autonomous mode.
10
+ */
11
+ export {};
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Shared types for LLM providers.
3
+ * These types are common across all LLM provider implementations.
4
+ */
5
+ /**
6
+ * Tool definition for LLM function calling.
7
+ * Describes a function that the LLM can call during execution.
8
+ */
9
+ export type Tool = {
10
+ /** Description of what the tool does */
11
+ description: string;
12
+ /** The name of the tool/function */
13
+ name: string;
14
+ /** JSON Schema defining the parameters */
15
+ parameters: {
16
+ properties: Record<string, unknown>;
17
+ required?: string[];
18
+ type: 'object';
19
+ };
20
+ };
21
+ /**
22
+ * Executor function that implements the actual tool logic.
23
+ * Called by the LLM provider when the model requests a tool execution.
24
+ *
25
+ * @param name - The name of the tool being executed
26
+ * @param args - The arguments passed by the LLM
27
+ * @returns The result as a string to be sent back to the LLM
28
+ */
29
+ export type ToolExecutor = (name: string, args: Record<string, unknown>) => Promise<string>;
30
+ /**
31
+ * Base configuration shared by all LLM providers.
32
+ */
33
+ export type BaseLlmConfig = {
34
+ /** API key for authentication */
35
+ apiKey: string;
36
+ /** Maximum iterations for agentic loops */
37
+ maxIterations?: number;
38
+ /** Maximum tokens in the response */
39
+ maxTokens?: number;
40
+ /** Model name/identifier */
41
+ model?: string;
42
+ /** Temperature for randomness (0-1) */
43
+ temperature?: number;
44
+ /** Request timeout in milliseconds */
45
+ timeout?: number;
46
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Shared types for LLM providers.
3
+ * These types are common across all LLM provider implementations.
4
+ */
5
+ export {};
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Internal representation of messages in a conversation.
3
+ * Standardizes message format across different LLM providers.
4
+ */
5
+ /**
6
+ * Text content part
7
+ */
8
+ export interface TextPart {
9
+ text: string;
10
+ type: 'text';
11
+ }
12
+ /**
13
+ * Image content part
14
+ */
15
+ export interface ImagePart {
16
+ image: ArrayBuffer | Buffer | string | Uint8Array | URL;
17
+ mimeType?: string;
18
+ type: 'image';
19
+ }
20
+ /**
21
+ * File content part
22
+ */
23
+ export interface FilePart {
24
+ data: ArrayBuffer | Buffer | string | Uint8Array | URL;
25
+ filename?: string;
26
+ mimeType: string;
27
+ type: 'file';
28
+ }
29
+ /**
30
+ * Union type for message content parts
31
+ */
32
+ export type MessagePart = FilePart | ImagePart | TextPart;
33
+ /**
34
+ * Tool call made by the assistant
35
+ */
36
+ export interface ToolCall {
37
+ /**
38
+ * Function call details
39
+ */
40
+ function: {
41
+ /**
42
+ * Arguments for the function in JSON string format
43
+ */
44
+ arguments: string;
45
+ /**
46
+ * Name of the function to call
47
+ */
48
+ name: string;
49
+ };
50
+ /**
51
+ * Unique identifier for this tool call
52
+ */
53
+ id: string;
54
+ /**
55
+ * The type of tool call (currently only 'function' is supported)
56
+ */
57
+ type: 'function';
58
+ }
59
+ /**
60
+ * Internal message representation used across all LLM providers.
61
+ * This standardized format is converted to/from provider-specific formats by formatters.
62
+ */
63
+ export interface InternalMessage {
64
+ /**
65
+ * The content of the message.
66
+ * - String for system, assistant (text only), and tool messages.
67
+ * - Array of parts for user messages (can include text, images, and files).
68
+ * - null if an assistant message only contains tool calls.
69
+ */
70
+ content: Array<MessagePart> | null | string;
71
+ /**
72
+ * Name of the tool that produced this result.
73
+ * Only present in tool messages.
74
+ */
75
+ name?: string;
76
+ /**
77
+ * Optional model reasoning text associated with an assistant response.
78
+ * Present when the provider supports reasoning and returns a final reasoning trace.
79
+ */
80
+ reasoning?: string;
81
+ /**
82
+ * The role of the entity sending the message.
83
+ * - 'system': System instructions or context
84
+ * - 'user': End-user input
85
+ * - 'assistant': LLM response
86
+ * - 'tool': Result from a tool execution
87
+ */
88
+ role: 'assistant' | 'system' | 'tool' | 'user';
89
+ /**
90
+ * Raw thought text from the model (Gemini only).
91
+ * Contains the model's thinking process before generating a response.
92
+ */
93
+ thought?: string;
94
+ /**
95
+ * Parsed thought summary with subject and description (Gemini only).
96
+ * Extracted from the thought text for easier display.
97
+ */
98
+ thoughtSummary?: {
99
+ /**
100
+ * Detailed description of the thought
101
+ */
102
+ description: string;
103
+ /**
104
+ * Brief subject of the thought
105
+ */
106
+ subject: string;
107
+ };
108
+ /**
109
+ * ID of the tool call this message is responding to.
110
+ * Only present in tool messages.
111
+ */
112
+ toolCallId?: string;
113
+ /**
114
+ * Tool calls made by the assistant.
115
+ * Only present in assistant messages when the LLM requests tool execution.
116
+ */
117
+ toolCalls?: ToolCall[];
118
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Internal representation of messages in a conversation.
3
+ * Standardizes message format across different LLM providers.
4
+ */
5
+ export {};
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Custom error class for tokenization-related errors.
3
+ * Used to distinguish tokenization failures from other types of errors.
4
+ */
5
+ export declare class TokenizationError extends Error {
6
+ /**
7
+ * Creates a new TokenizationError
8
+ * @param message - Error message describing what went wrong
9
+ */
10
+ constructor(message: string);
11
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Custom error class for tokenization-related errors.
3
+ * Used to distinguish tokenization failures from other types of errors.
4
+ */
5
+ export class TokenizationError extends Error {
6
+ /**
7
+ * Creates a new TokenizationError
8
+ * @param message - Error message describing what went wrong
9
+ */
10
+ constructor(message) {
11
+ super(message);
12
+ this.name = 'TokenizationError';
13
+ }
14
+ }
@@ -0,0 +1,24 @@
1
+ import type { CogitSnapshot } from '../domain/entities/cogit-snapshot.js';
2
+ /**
3
+ * Parameters for pulling a snapshot from CoGit.
4
+ */
5
+ export type PullParams = {
6
+ accessToken: string;
7
+ branch: string;
8
+ sessionKey: string;
9
+ spaceId: string;
10
+ teamId: string;
11
+ };
12
+ /**
13
+ * Interface for pulling context tree snapshots from the CoGit service.
14
+ * Retrieves the complete state of context files from a CoGit repository.
15
+ */
16
+ export interface ICogitPullService {
17
+ /**
18
+ * Pulls the latest snapshot from the CoGit repository.
19
+ * @param params Pull parameters including auth and branch
20
+ * @returns CogitSnapshot containing files and metadata
21
+ * @throws Error if pull fails
22
+ */
23
+ pull: (params: PullParams) => Promise<CogitSnapshot>;
24
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,27 @@
1
+ import type { CogitPushContext } from '../domain/entities/cogit-push-context.js';
2
+ import type { CogitPushResponse } from '../domain/entities/cogit-push-response.js';
3
+ /**
4
+ * Parameters for pushing context files to CoGit.
5
+ */
6
+ export type PushParams = {
7
+ accessToken: string;
8
+ branch: string;
9
+ contexts: CogitPushContext[];
10
+ sessionKey: string;
11
+ spaceId: string;
12
+ teamId: string;
13
+ };
14
+ /**
15
+ * Interface for pushing context files to the CoGit service.
16
+ * Handles the push operation to store context files in the CoGit repository.
17
+ */
18
+ export interface ICogitPushService {
19
+ /**
20
+ * Pushes context files to the CoGit repository.
21
+ * Implements a two-request SHA flow to handle concurrent updates.
22
+ * @param params Push parameters including auth, branch, and context files
23
+ * @returns CogitPushResponse containing commit SHA and status
24
+ * @throws Error if push fails
25
+ */
26
+ push: (params: PushParams) => Promise<CogitPushResponse>;
27
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Represents the content of a context file with extracted metadata.
3
+ */
4
+ export type ContextFileContent = {
5
+ /** The raw content of the file */
6
+ content: string;
7
+ /** Relative path within the context tree (e.g., "structure/context.md") */
8
+ path: string;
9
+ /** Title extracted from the first heading, or the relative path if no heading found */
10
+ title: string;
11
+ };
12
+ /**
13
+ * Interface for reading context files and extracting their metadata.
14
+ * Used to prepare context files for the CoGit API.
15
+ */
16
+ export interface IContextFileReader {
17
+ /**
18
+ * Reads a single context file and extracts its metadata.
19
+ * @param relativePath - Relative path within the context tree (e.g., "structure/context.md")
20
+ * @param directory - Optional base directory (defaults to current working directory)
21
+ * @returns ContextFileContent if file exists and can be read, undefined otherwise
22
+ */
23
+ read(relativePath: string, directory?: string): Promise<ContextFileContent | undefined>;
24
+ /**
25
+ * Reads multiple context files and extracts their metadata.
26
+ * Files that cannot be read are silently skipped.
27
+ * @param relativePaths - Array of relative paths within the context tree
28
+ * @param directory - Optional base directory (defaults to current working directory)
29
+ * @returns Array of ContextFileContent for successfully read files
30
+ */
31
+ readMany(relativePaths: string[], directory?: string): Promise<ContextFileContent[]>;
32
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Interface for context tree operations service.
3
+ * Provides operations for managing the context tree structure including
4
+ * initialization and existence checking.
5
+ */
6
+ export interface IContextTreeService {
7
+ /**
8
+ * Checks if the context tree structure exists in the project.
9
+ * @param directory - Optional base directory (defaults to current working directory)
10
+ * @returns True if context tree directory exists
11
+ */
12
+ exists(directory?: string): Promise<boolean>;
13
+ /**
14
+ * Initializes the context tree directory structure.
15
+ * Creates .brv/context-tree/ directory with domain subdirectories and context.md files.
16
+ * @param directory - Optional base directory (defaults to current working directory)
17
+ * @returns The absolute path to the created context tree directory
18
+ * @throws Error if context tree already exists or initialization fails
19
+ */
20
+ initialize(directory?: string): Promise<string>;
21
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,36 @@
1
+ import type { ContextTreeChanges, FileState } from '../domain/entities/context-tree-snapshot.js';
2
+ /**
3
+ * Interface for context tree snapshot operations.
4
+ * Provides change tracking by comparing current file states against saved snapshots.
5
+ */
6
+ export interface IContextTreeSnapshotService {
7
+ /**
8
+ * Compares current context tree state against the saved snapshot.
9
+ * @param directory - Optional base directory (defaults to current working directory)
10
+ * @returns Changes detected (added, modified, deleted files)
11
+ */
12
+ getChanges(directory?: string): Promise<ContextTreeChanges>;
13
+ /**
14
+ * Gets the current state of all files in the context tree.
15
+ * @param directory - Optional base directory (defaults to current working directory)
16
+ * @returns Map of relative file paths to their current state (hash and size)
17
+ */
18
+ getCurrentState(directory?: string): Promise<Map<string, FileState>>;
19
+ /**
20
+ * Checks if a snapshot file exists.
21
+ * @param directory - Optional base directory (defaults to current working directory)
22
+ * @returns True if snapshot exists
23
+ */
24
+ hasSnapshot(directory?: string): Promise<boolean>;
25
+ /**
26
+ * Creates an empty snapshot (no files tracked).
27
+ * Use this to establish a baseline where all current files will appear as "added".
28
+ * @param directory - Optional base directory (defaults to current working directory)
29
+ */
30
+ initEmptySnapshot(directory?: string): Promise<void>;
31
+ /**
32
+ * Creates or updates the snapshot from current context tree state.
33
+ * @param directory - Optional base directory (defaults to current working directory)
34
+ */
35
+ saveSnapshot(directory?: string): Promise<void>;
36
+ }
@@ -0,0 +1,32 @@
1
+ import type { CogitSnapshotFile } from '../domain/entities/cogit-snapshot-file.js';
2
+ /**
3
+ * Result of a sync operation.
4
+ */
5
+ export type SyncResult = {
6
+ added: string[];
7
+ deleted: string[];
8
+ edited: string[];
9
+ };
10
+ /**
11
+ * Parameters for the sync operation.
12
+ */
13
+ export type SyncParams = {
14
+ directory?: string;
15
+ files: readonly CogitSnapshotFile[];
16
+ };
17
+ /**
18
+ * Interface for context tree writer operations.
19
+ * This should be used to process pull response from Cogit.
20
+ * Provides file synchronization capabilities for the context tree.
21
+ */
22
+ export interface IContextTreeWriterService {
23
+ /**
24
+ * Synchronizes the context tree with the provided files.
25
+ * - Files present in params but not locally are added
26
+ * - Files present in both are edited
27
+ * - Files present locally but not in params are deleted
28
+ * @param params - Sync parameters including files and optional directory
29
+ * @returns Result containing arrays of added, edited, and deleted file paths
30
+ */
31
+ sync: (params: SyncParams) => Promise<SyncResult>;
32
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Represents a file system event.
3
+ */
4
+ export type FileEvent = {
5
+ /**
6
+ * The path to the file or directory that changed.
7
+ */
8
+ path: string;
9
+ /**
10
+ * The type of event that occurred.
11
+ * - add: File added
12
+ * - addDir: Directory added
13
+ * - change: File modified
14
+ * - unlink: File deleted
15
+ * - unlinkDir: Directory deleted
16
+ */
17
+ type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir';
18
+ };
19
+ /**
20
+ * Interface for a file watcher service that monitors file system changes.
21
+ */
22
+ export interface IFileWatcherService {
23
+ /**
24
+ * Sets the handler to be called when file system events occur.
25
+ * Only one handler can be registered at a time.
26
+ * The handler is async to support file reading and processing.
27
+ * @param handler The async callback function to invoke with file events.
28
+ */
29
+ setFileEventHandler: (handler: (event: FileEvent) => Promise<void>) => void;
30
+ /**
31
+ * Starts watching the specified paths for file system changes.
32
+ * @param paths Array of directory paths to watch.
33
+ * @returns Promise that resolves when watching has started.
34
+ */
35
+ start: (paths: string[]) => Promise<void>;
36
+ /**
37
+ * Stops watching and cleans up resources.
38
+ * @returns Promise that resolves when cleanup is complete.
39
+ */
40
+ stop: () => Promise<void>;
41
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ import type { CleanSession } from '../../domain/entities/parser.js';
2
+ /**
3
+ * Interface for clean parser services
4
+ * Implementations handle transformation of raw IDE session data to clean normalized format
5
+ */
6
+ export interface ICleanParserService {
7
+ /**
8
+ * Parse and transform raw IDE sessions to clean normalized format
9
+ *
10
+ * Reads raw session files and transforms them into standardized format with
11
+ * normalized messages, metadata, and workspace information.
12
+ * Returns parsed sessions in-memory without writing to disk.
13
+ *
14
+ * @param rawDir - Path to directory containing raw IDE session files
15
+ * @returns Promise resolving to array of CleanSession objects
16
+ */
17
+ parse: (rawDir: string) => Promise<readonly CleanSession[]>;
18
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Interface for raw parser services
3
+ * Implementations handle extraction and transformation of raw IDE session data
4
+ */
5
+ export interface IRawParserService {
6
+ /**
7
+ * Parse IDE sessions from a custom directory
8
+ *
9
+ * Extracts raw session data from IDE storage and writes normalized JSON files
10
+ * to output directory (.brv/logs/{ide}/raw by default).
11
+ *
12
+ * @param customDir - Path to directory containing IDE session data
13
+ * @param outputDir - Optional output directory for parsed files (defaults to process.cwd()/.brv/logs/{ide}/raw)
14
+ * @returns Promise resolving to true if parsing succeeded, false otherwise
15
+ */
16
+ parse(customDir: string, outputDir?: string): Promise<boolean>;
17
+ }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Interface for session normalization utilities
3
+ * Provides standardized transformation of raw session data to clean normalized format
4
+ */
5
+ import { CleanMessage, CleanSession, SessionType } from '../../domain/entities/parser.js';
6
+ export interface ISessionNormalizer {
7
+ /**
8
+ * Add turn_id to each message based on order
9
+ *
10
+ * @param messages - Array of messages to assign turn IDs to
11
+ * @returns Array of messages with turn_id property added
12
+ */
13
+ addTurnIds(messages: CleanMessage[]): CleanMessage[];
14
+ /**
15
+ * Combine tool_use and tool_result messages
16
+ *
17
+ * @param messages - Array of clean messages to process
18
+ * @returns Array of messages with combined tool execution blocks
19
+ */
20
+ combineToolResults(messages: CleanMessage[]): CleanMessage[];
21
+ /**
22
+ * Extract unique workspace paths from session messages and metadata
23
+ *
24
+ * @param messages - Array of clean messages to extract paths from
25
+ * @param metadata - Session metadata object (may contain cwd property)
26
+ * @param existingPaths - Optional pre-existing paths to include
27
+ * @returns Sorted array of unique workspace paths
28
+ */
29
+ extractWorkspacePaths(messages: CleanMessage[], metadata: unknown, existingPaths?: string[]): string[];
30
+ /**
31
+ * Normalize message content to always be an array of content blocks
32
+ *
33
+ * @param content - Content to normalize (can be string, array of blocks, object, or any value)
34
+ * @returns Array of normalized ContentBlock objects
35
+ */
36
+ normalizeContent(content: unknown): unknown[];
37
+ /**
38
+ * Normalize a single content block
39
+ *
40
+ * @param block - Block to normalize (string, object, or any value)
41
+ * @returns Normalized ContentBlock with proper type inference
42
+ */
43
+ normalizeContentBlock(block: unknown): unknown;
44
+ /**
45
+ * Normalize session to clean format
46
+ *
47
+ * Transforms raw session data into standardized CleanSession format. Normalizes message
48
+ * content to content blocks, combines tool calls with results, assigns turn IDs,
49
+ * and extracts workspace paths.
50
+ *
51
+ * @param session - Raw session object with messages and metadata
52
+ * @param sessionType - Type of session (Claude, Copilot, Cursor, Codex)
53
+ * @returns Normalized CleanSession with standardized format
54
+ */
55
+ normalizeSession(session: Record<string, unknown>, sessionType?: SessionType): CleanSession;
56
+ }