byterover-cli 0.2.1 → 0.3.1

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 +63 -3
  18. package/dist/commands/init.js +285 -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,419 @@
1
+ /**
2
+ * Agent-level event names for CipherAgent.
3
+ * These events are emitted at the agent level and include sessionId in payloads.
4
+ */
5
+ export declare const AGENT_EVENT_NAMES: readonly ["cipher:conversationReset", "cipher:executionStarted", "cipher:executionTerminated", "cipher:log", "cipher:stateChanged", "cipher:stateReset", "cipher:ui"];
6
+ /**
7
+ * Session-level event names for LLM service operations.
8
+ * These events are emitted at the session level and do not include sessionId in payloads.
9
+ */
10
+ export declare const SESSION_EVENT_NAMES: readonly ["llmservice:chunk", "llmservice:error", "llmservice:outputTruncated", "llmservice:response", "llmservice:thinking", "llmservice:thought", "llmservice:toolCall", "llmservice:toolResult", "llmservice:unsupportedInput", "llmservice:warning"];
11
+ /**
12
+ * All event names (union of agent and session events).
13
+ */
14
+ export declare const EVENT_NAMES: readonly ["cipher:conversationReset", "cipher:executionStarted", "cipher:executionTerminated", "cipher:log", "cipher:stateChanged", "cipher:stateReset", "cipher:ui", "llmservice:chunk", "llmservice:error", "llmservice:outputTruncated", "llmservice:response", "llmservice:thinking", "llmservice:thought", "llmservice:toolCall", "llmservice:toolResult", "llmservice:unsupportedInput", "llmservice:warning"];
15
+ /**
16
+ * Union type of all agent event names.
17
+ */
18
+ export type AgentEventName = (typeof AGENT_EVENT_NAMES)[number];
19
+ /**
20
+ * Union type of all session event names.
21
+ */
22
+ export type SessionEventName = (typeof SESSION_EVENT_NAMES)[number];
23
+ /**
24
+ * Union type of all event names.
25
+ */
26
+ export type EventName = (typeof EVENT_NAMES)[number];
27
+ /**
28
+ * Token usage information for LLM responses.
29
+ */
30
+ export interface TokenUsage {
31
+ inputTokens: number;
32
+ outputTokens: number;
33
+ totalTokens: number;
34
+ }
35
+ /**
36
+ * Log level for structured logging events.
37
+ */
38
+ export type LogLevel = 'debug' | 'error' | 'info' | 'warn';
39
+ /**
40
+ * UI event type for user interface actions.
41
+ */
42
+ export type UIEventType = 'banner' | 'help' | 'prompt' | 'response' | 'separator' | 'shutdown';
43
+ /**
44
+ * Tool error type classification.
45
+ * Used for structured error reporting in tool execution.
46
+ */
47
+ export type ToolErrorType = 'CANCELLED' | 'CONFIRMATION_REJECTED' | 'EXECUTION_FAILED' | 'INTERNAL_ERROR' | 'INVALID_PARAM_TYPE' | 'INVALID_PARAMS' | 'MISSING_REQUIRED_PARAM' | 'PARAM_VALIDATION_FAILED' | 'PERMISSION_DENIED' | 'PROVIDER_ERROR' | 'TIMEOUT' | 'TOOL_DISABLED' | 'TOOL_NOT_FOUND';
48
+ /**
49
+ * Termination reason type for agent execution.
50
+ * Matches TerminationReason enum values as strings.
51
+ */
52
+ export type AgentTerminationReason = 'ABORTED' | 'ERROR' | 'GOAL' | 'MAX_TURNS' | 'PROTOCOL_VIOLATION' | 'TIMEOUT';
53
+ /**
54
+ * Agent execution state type.
55
+ * Matches AgentState enum values as strings.
56
+ */
57
+ export type AgentExecutionStateType = 'ABORTED' | 'COMPLETE' | 'ERROR' | 'EXECUTING' | 'IDLE' | 'TOOL_CALLING';
58
+ /**
59
+ * Agent-level event payloads.
60
+ * All agent events include sessionId for tracking which session triggered the event.
61
+ */
62
+ export interface AgentEventMap {
63
+ /**
64
+ * Emitted when a conversation is reset.
65
+ * @property {string} sessionId - ID of the session being reset
66
+ */
67
+ 'cipher:conversationReset': {
68
+ sessionId: string;
69
+ };
70
+ /**
71
+ * Emitted when agent execution starts.
72
+ * @property {number} maxIterations - Maximum iterations allowed
73
+ * @property {number} [maxTimeMs] - Maximum execution time in milliseconds
74
+ * @property {string} sessionId - ID of the session
75
+ * @property {Date} startTime - When execution started
76
+ */
77
+ 'cipher:executionStarted': {
78
+ maxIterations: number;
79
+ maxTimeMs?: number;
80
+ sessionId: string;
81
+ startTime: Date;
82
+ };
83
+ /**
84
+ * Emitted when agent execution terminates.
85
+ * @property {number} [durationMs] - Execution duration in milliseconds
86
+ * @property {Date} endTime - When execution ended
87
+ * @property {Error} [error] - Error if terminated due to error
88
+ * @property {AgentTerminationReason} reason - Why execution terminated
89
+ * @property {string} sessionId - ID of the session
90
+ * @property {number} toolCallsExecuted - Number of tool calls made
91
+ * @property {number} turnCount - Number of turns completed
92
+ */
93
+ 'cipher:executionTerminated': {
94
+ durationMs?: number;
95
+ endTime: Date;
96
+ error?: Error;
97
+ reason: AgentTerminationReason;
98
+ sessionId: string;
99
+ toolCallsExecuted: number;
100
+ turnCount: number;
101
+ };
102
+ /**
103
+ * Emitted for structured logging from any layer.
104
+ * @property {Record<string, unknown>} [context] - Optional structured context data
105
+ * @property {LogLevel} level - Log level (debug, info, warn, error)
106
+ * @property {string} message - Human-readable log message
107
+ * @property {string} [sessionId] - Optional session ID (if log is session-specific)
108
+ * @property {string} [source] - Optional source identifier (e.g., class name, module)
109
+ */
110
+ 'cipher:log': {
111
+ context?: Record<string, unknown>;
112
+ level: LogLevel;
113
+ message: string;
114
+ sessionId?: string;
115
+ source?: string;
116
+ };
117
+ /**
118
+ * Emitted when agent state changes.
119
+ * @property {string} field - Name of the state field that changed
120
+ * @property {unknown} newValue - New value
121
+ * @property {unknown} [oldValue] - Previous value (if applicable)
122
+ * @property {string} [sessionId] - ID of the session (optional for global state changes)
123
+ */
124
+ 'cipher:stateChanged': {
125
+ field: string;
126
+ newValue: unknown;
127
+ oldValue?: unknown;
128
+ sessionId?: string;
129
+ };
130
+ /**
131
+ * Emitted when agent state is completely reset.
132
+ * @property {string} [sessionId] - ID of the session (optional for global state resets)
133
+ */
134
+ 'cipher:stateReset': {
135
+ sessionId?: string;
136
+ };
137
+ /**
138
+ * Emitted for UI-related actions (banners, prompts, responses, etc.).
139
+ * This separates UI concerns from business logic logging.
140
+ * @property {Record<string, unknown>} [context] - Optional context (e.g., colors, formatting data)
141
+ * @property {string} [message] - Optional human-readable message
142
+ * @property {string} [sessionId] - Optional session ID
143
+ * @property {UIEventType} type - Type of UI event
144
+ */
145
+ 'cipher:ui': {
146
+ context?: Record<string, unknown>;
147
+ message?: string;
148
+ sessionId?: string;
149
+ type: UIEventType;
150
+ };
151
+ /**
152
+ * Session events forwarded to agent bus with sessionId added.
153
+ */
154
+ /**
155
+ * Emitted when a chunk of content is received (streaming).
156
+ * @property {string} content - Content of the chunk
157
+ * @property {boolean} [isComplete] - Whether this is the final chunk
158
+ * @property {string} sessionId - ID of the session
159
+ * @property {'reasoning' | 'text'} type - Type of chunk (text or reasoning)
160
+ */
161
+ 'llmservice:chunk': {
162
+ content: string;
163
+ isComplete?: boolean;
164
+ sessionId: string;
165
+ type: 'reasoning' | 'text';
166
+ };
167
+ /**
168
+ * Emitted when an error occurs during LLM service operation.
169
+ * @property {string} [code] - Error code (optional)
170
+ * @property {string} error - Error message
171
+ * @property {string} sessionId - ID of the session
172
+ */
173
+ 'llmservice:error': {
174
+ code?: string;
175
+ error: string;
176
+ sessionId: string;
177
+ };
178
+ /**
179
+ * Emitted when tool output is truncated due to size.
180
+ * @property {number} originalLength - Original output length before truncation
181
+ * @property {string} savedToFile - Path to file where full output was saved
182
+ * @property {string} sessionId - ID of the session
183
+ * @property {string} toolName - Name of the tool that produced the output
184
+ */
185
+ 'llmservice:outputTruncated': {
186
+ originalLength: number;
187
+ savedToFile: string;
188
+ sessionId: string;
189
+ toolName: string;
190
+ };
191
+ /**
192
+ * Emitted when LLM completes a response.
193
+ * @property {string} content - Full response content
194
+ * @property {string} [model] - Model identifier
195
+ * @property {boolean} [partial] - Whether this is a partial response (e.g., max iterations reached)
196
+ * @property {string} [provider] - LLM provider name
197
+ * @property {string} [reasoning] - Internal reasoning (if available)
198
+ * @property {string} sessionId - ID of the session
199
+ * @property {TokenUsage} [tokenUsage] - Token usage statistics
200
+ */
201
+ 'llmservice:response': {
202
+ content: string;
203
+ model?: string;
204
+ partial?: boolean;
205
+ provider?: string;
206
+ reasoning?: string;
207
+ sessionId: string;
208
+ tokenUsage?: TokenUsage;
209
+ };
210
+ /**
211
+ * Emitted when LLM service starts thinking/processing.
212
+ * @property {string} sessionId - ID of the session
213
+ */
214
+ 'llmservice:thinking': {
215
+ sessionId: string;
216
+ };
217
+ /**
218
+ * Emitted when LLM generates a thought (Gemini models only).
219
+ * @property {string} description - Detailed thought description
220
+ * @property {string} sessionId - ID of the session
221
+ * @property {string} subject - Brief thought subject
222
+ */
223
+ 'llmservice:thought': {
224
+ description: string;
225
+ sessionId: string;
226
+ subject: string;
227
+ };
228
+ /**
229
+ * Emitted when the todo list is updated via write_todos tool.
230
+ * @property {string} sessionId - ID of the session
231
+ * @property {Array<{content: string, status: string, activeForm: string}>} todos - Updated todo list
232
+ */
233
+ 'llmservice:todoUpdated': {
234
+ sessionId: string;
235
+ todos: Array<{
236
+ activeForm: string;
237
+ content: string;
238
+ status: 'cancelled' | 'completed' | 'in_progress' | 'pending';
239
+ }>;
240
+ };
241
+ /**
242
+ * Emitted when LLM requests a tool call.
243
+ * @property {Record<string, unknown>} args - Arguments for the tool
244
+ * @property {string} [callId] - Unique identifier for this tool call
245
+ * @property {string} sessionId - ID of the session
246
+ * @property {string} toolName - Name of the tool to execute
247
+ */
248
+ 'llmservice:toolCall': {
249
+ args: Record<string, unknown>;
250
+ callId?: string;
251
+ sessionId: string;
252
+ toolName: string;
253
+ };
254
+ /**
255
+ * Emitted when a tool execution completes.
256
+ * @property {string} [callId] - Tool call identifier
257
+ * @property {string} [error] - Error message (if failed)
258
+ * @property {ToolErrorType} [errorType] - Classified error type (if failed)
259
+ * @property {Record<string, unknown>} [metadata] - Execution metadata (duration, tokens, etc.)
260
+ * @property {unknown} [result] - Tool execution result
261
+ * @property {string} sessionId - ID of the session
262
+ * @property {boolean} success - Whether execution succeeded
263
+ * @property {string} toolName - Name of the executed tool
264
+ */
265
+ 'llmservice:toolResult': {
266
+ callId?: string;
267
+ error?: string;
268
+ errorType?: ToolErrorType;
269
+ metadata?: Record<string, unknown>;
270
+ result?: unknown;
271
+ sessionId: string;
272
+ success: boolean;
273
+ toolName: string;
274
+ };
275
+ /**
276
+ * Emitted when LLM receives unsupported input.
277
+ * @property {string} reason - Reason why input is unsupported
278
+ * @property {string} sessionId - ID of the session
279
+ */
280
+ 'llmservice:unsupportedInput': {
281
+ reason: string;
282
+ sessionId: string;
283
+ };
284
+ /**
285
+ * Emitted when LLM service encounters a warning (e.g., max iterations reached).
286
+ * @property {string} message - Warning message
287
+ * @property {string} [model] - Model identifier
288
+ * @property {string} [provider] - LLM provider name
289
+ * @property {string} sessionId - ID of the session
290
+ */
291
+ 'llmservice:warning': {
292
+ message: string;
293
+ model?: string;
294
+ provider?: string;
295
+ sessionId: string;
296
+ };
297
+ }
298
+ /**
299
+ * Session-level event payloads.
300
+ * These are scoped to a specific session and do not include sessionId.
301
+ */
302
+ export interface SessionEventMap {
303
+ /**
304
+ * Emitted when a chunk of content is received (streaming).
305
+ * @property {string} content - Content of the chunk
306
+ * @property {boolean} [isComplete] - Whether this is the final chunk
307
+ * @property {'reasoning' | 'text'} type - Type of chunk (text or reasoning)
308
+ */
309
+ 'llmservice:chunk': {
310
+ content: string;
311
+ isComplete?: boolean;
312
+ type: 'reasoning' | 'text';
313
+ };
314
+ /**
315
+ * Emitted when an error occurs during LLM service operation.
316
+ * @property {string} [code] - Error code (optional)
317
+ * @property {string} error - Error message
318
+ */
319
+ 'llmservice:error': {
320
+ code?: string;
321
+ error: string;
322
+ };
323
+ /**
324
+ * Emitted when tool output is truncated due to size.
325
+ * @property {number} originalLength - Original output length before truncation
326
+ * @property {string} savedToFile - Path to file where full output was saved
327
+ * @property {string} toolName - Name of the tool that produced the output
328
+ */
329
+ 'llmservice:outputTruncated': {
330
+ originalLength: number;
331
+ savedToFile: string;
332
+ toolName: string;
333
+ };
334
+ /**
335
+ * Emitted when LLM completes a response.
336
+ * @property {string} content - Full response content
337
+ * @property {string} [model] - Model identifier
338
+ * @property {boolean} [partial] - Whether this is a partial response (e.g., max iterations reached)
339
+ * @property {string} [provider] - LLM provider name
340
+ * @property {string} [reasoning] - Internal reasoning (if available)
341
+ * @property {TokenUsage} [tokenUsage] - Token usage statistics
342
+ */
343
+ 'llmservice:response': {
344
+ content: string;
345
+ model?: string;
346
+ partial?: boolean;
347
+ provider?: string;
348
+ reasoning?: string;
349
+ tokenUsage?: TokenUsage;
350
+ };
351
+ /**
352
+ * Emitted when LLM service starts thinking/processing.
353
+ */
354
+ 'llmservice:thinking': void;
355
+ /**
356
+ * Emitted when LLM generates a thought (Gemini models only).
357
+ * @property {string} description - Detailed thought description
358
+ * @property {string} subject - Brief thought subject
359
+ */
360
+ 'llmservice:thought': {
361
+ description: string;
362
+ subject: string;
363
+ };
364
+ /**
365
+ * Emitted when LLM requests a tool call.
366
+ * @property {Record<string, unknown>} args - Arguments for the tool
367
+ * @property {string} [callId] - Unique identifier for this tool call
368
+ * @property {string} toolName - Name of the tool to execute
369
+ */
370
+ 'llmservice:toolCall': {
371
+ args: Record<string, unknown>;
372
+ callId?: string;
373
+ toolName: string;
374
+ };
375
+ /**
376
+ * Emitted when a tool execution completes.
377
+ * @property {string} [callId] - Tool call identifier
378
+ * @property {string} [error] - Error message (if failed)
379
+ * @property {ToolErrorType} [errorType] - Classified error type (if failed)
380
+ * @property {Record<string, unknown>} [metadata] - Execution metadata (duration, tokens, etc.)
381
+ * @property {unknown} [result] - Tool execution result
382
+ * @property {boolean} success - Whether execution succeeded
383
+ * @property {string} toolName - Name of the executed tool
384
+ */
385
+ 'llmservice:toolResult': {
386
+ callId?: string;
387
+ error?: string;
388
+ errorType?: ToolErrorType;
389
+ metadata?: Record<string, unknown>;
390
+ result?: unknown;
391
+ success: boolean;
392
+ toolName: string;
393
+ };
394
+ /**
395
+ * Emitted when LLM receives unsupported input.
396
+ * @property {string} reason - Reason why input is unsupported
397
+ */
398
+ 'llmservice:unsupportedInput': {
399
+ reason: string;
400
+ };
401
+ /**
402
+ * Emitted when LLM service encounters a warning (e.g., max iterations reached).
403
+ * @property {string} message - Warning message
404
+ * @property {string} [model] - Model identifier
405
+ * @property {string} [provider] - LLM provider name
406
+ */
407
+ 'llmservice:warning': {
408
+ message: string;
409
+ model?: string;
410
+ provider?: string;
411
+ };
412
+ }
413
+ /**
414
+ * Prevent unused variable warnings for compile-time checks.
415
+ */
416
+ export declare const __compileTimeChecks: {
417
+ _checkAgentEventNames: true;
418
+ _checkSessionEventNames: true;
419
+ };
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Agent-level event names for CipherAgent.
3
+ * These events are emitted at the agent level and include sessionId in payloads.
4
+ */
5
+ export const AGENT_EVENT_NAMES = [
6
+ 'cipher:conversationReset',
7
+ 'cipher:executionStarted',
8
+ 'cipher:executionTerminated',
9
+ 'cipher:log',
10
+ 'cipher:stateChanged',
11
+ 'cipher:stateReset',
12
+ 'cipher:ui',
13
+ ];
14
+ /**
15
+ * Session-level event names for LLM service operations.
16
+ * These events are emitted at the session level and do not include sessionId in payloads.
17
+ */
18
+ export const SESSION_EVENT_NAMES = [
19
+ 'llmservice:chunk',
20
+ 'llmservice:error',
21
+ 'llmservice:outputTruncated',
22
+ 'llmservice:response',
23
+ 'llmservice:thinking',
24
+ 'llmservice:thought',
25
+ 'llmservice:toolCall',
26
+ 'llmservice:toolResult',
27
+ 'llmservice:unsupportedInput',
28
+ 'llmservice:warning',
29
+ ];
30
+ /**
31
+ * All event names (union of agent and session events).
32
+ */
33
+ export const EVENT_NAMES = [...AGENT_EVENT_NAMES, ...SESSION_EVENT_NAMES];
34
+ const _checkAgentEventNames = true;
35
+ const _checkSessionEventNames = true;
36
+ /**
37
+ * Prevent unused variable warnings for compile-time checks.
38
+ */
39
+ export const __compileTimeChecks = {
40
+ _checkAgentEventNames,
41
+ _checkSessionEventNames,
42
+ };
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Blob metadata type
3
+ * Contains information about a stored blob
4
+ */
5
+ export type BlobMetadata = {
6
+ /**
7
+ * MIME type of the blob content
8
+ * @example 'image/png', 'application/pdf', 'text/plain'
9
+ */
10
+ contentType?: string;
11
+ /**
12
+ * Timestamp when the blob was created (Unix timestamp in milliseconds)
13
+ */
14
+ createdAt: number;
15
+ /**
16
+ * Original filename if the blob was created from a file
17
+ * @example 'screenshot.png', 'document.pdf'
18
+ */
19
+ originalName?: string;
20
+ /**
21
+ * Size of the blob in bytes
22
+ */
23
+ size: number;
24
+ /**
25
+ * Custom metadata tags for categorization and filtering
26
+ * @example { category: 'screenshot', project: 'myapp' }
27
+ */
28
+ tags?: Record<string, string>;
29
+ /**
30
+ * Timestamp when the blob was last updated (Unix timestamp in milliseconds)
31
+ */
32
+ updatedAt: number;
33
+ };
34
+ /**
35
+ * Stored blob with content and metadata
36
+ * Represents a complete blob retrieved from storage
37
+ */
38
+ export type StoredBlob = {
39
+ /**
40
+ * Binary content of the blob
41
+ */
42
+ content: Buffer;
43
+ /**
44
+ * Unique identifier for the blob
45
+ * Must be alphanumeric with hyphens and underscores only
46
+ */
47
+ key: string;
48
+ /**
49
+ * Associated metadata
50
+ */
51
+ metadata: BlobMetadata;
52
+ };
53
+ /**
54
+ * Simple logger interface for blob storage operations
55
+ */
56
+ export interface BlobLogger {
57
+ error: (message: string) => void;
58
+ info: (message: string) => void;
59
+ }
60
+ /**
61
+ * Configuration options for blob storage
62
+ * SQLite is always used as the backend
63
+ */
64
+ export type BlobStorageConfig = {
65
+ /**
66
+ * Use in-memory storage (useful for testing)
67
+ * When true, no file is created - data lives only in memory
68
+ * @default false
69
+ */
70
+ inMemory?: boolean;
71
+ /**
72
+ * Logger for blob storage operations
73
+ * If not provided, console will be used as fallback
74
+ */
75
+ logger?: BlobLogger;
76
+ /**
77
+ * Maximum size for a single blob in bytes
78
+ * @default 104857600 (100MB)
79
+ */
80
+ maxBlobSize?: number;
81
+ /**
82
+ * Maximum total size for all blobs in bytes
83
+ * @default 1073741824 (1GB)
84
+ */
85
+ maxTotalSize?: number;
86
+ /**
87
+ * Base directory where blobs/database will be stored
88
+ * @default '.brv/blobs'
89
+ */
90
+ storageDir?: string;
91
+ };
92
+ /**
93
+ * Statistics about blob storage
94
+ */
95
+ export type BlobStats = {
96
+ /**
97
+ * Timestamp when stats were last calculated (Unix timestamp in milliseconds)
98
+ */
99
+ lastUpdated: number;
100
+ /**
101
+ * Total number of blobs stored
102
+ */
103
+ totalBlobs: number;
104
+ /**
105
+ * Total size of all blobs in bytes
106
+ */
107
+ totalSize: number;
108
+ };
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Error codes for blob storage operations
3
+ */
4
+ export declare enum BlobErrorCode {
5
+ BLOB_ALREADY_EXISTS = "BLOB_ALREADY_EXISTS",
6
+ BLOB_DELETE_ERROR = "BLOB_DELETE_ERROR",
7
+ BLOB_INITIALIZATION_ERROR = "BLOB_INITIALIZATION_ERROR",
8
+ BLOB_INVALID_CONTENT = "BLOB_INVALID_CONTENT",
9
+ BLOB_INVALID_KEY = "BLOB_INVALID_KEY",
10
+ BLOB_NOT_FOUND = "BLOB_NOT_FOUND",
11
+ BLOB_NOT_INITIALIZED = "BLOB_NOT_INITIALIZED",
12
+ BLOB_RETRIEVAL_ERROR = "BLOB_RETRIEVAL_ERROR",
13
+ BLOB_STORAGE_ERROR = "BLOB_STORAGE_ERROR",
14
+ BLOB_TOO_LARGE = "BLOB_TOO_LARGE",
15
+ BLOB_TOTAL_SIZE_EXCEEDED = "BLOB_TOTAL_SIZE_EXCEEDED"
16
+ }
17
+ /**
18
+ * Blob error class with factory methods for creating specific error instances
19
+ */
20
+ export declare class BlobError extends Error {
21
+ readonly code: BlobErrorCode;
22
+ readonly details?: Record<string, unknown> | undefined;
23
+ readonly suggestion?: string | undefined;
24
+ constructor(message: string, code: BlobErrorCode, details?: Record<string, unknown> | undefined, suggestion?: string | undefined);
25
+ static alreadyExists(key: string): BlobError;
26
+ static deleteError(message: string, cause?: Error): BlobError;
27
+ static initializationError(message: string, cause?: Error): BlobError;
28
+ static invalidContent(reason: string): BlobError;
29
+ static invalidKey(key: string, reason: string): BlobError;
30
+ static notFound(key: string): BlobError;
31
+ static notInitialized(): BlobError;
32
+ static retrievalError(message: string, cause?: Error): BlobError;
33
+ static storageError(message: string, cause?: Error): BlobError;
34
+ static tooLarge(size: number, maxSize: number): BlobError;
35
+ static totalSizeExceeded(currentSize: number, blobSize: number, maxTotalSize: number): BlobError;
36
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Error codes for blob storage operations
3
+ */
4
+ export var BlobErrorCode;
5
+ (function (BlobErrorCode) {
6
+ BlobErrorCode["BLOB_ALREADY_EXISTS"] = "BLOB_ALREADY_EXISTS";
7
+ BlobErrorCode["BLOB_DELETE_ERROR"] = "BLOB_DELETE_ERROR";
8
+ BlobErrorCode["BLOB_INITIALIZATION_ERROR"] = "BLOB_INITIALIZATION_ERROR";
9
+ BlobErrorCode["BLOB_INVALID_CONTENT"] = "BLOB_INVALID_CONTENT";
10
+ BlobErrorCode["BLOB_INVALID_KEY"] = "BLOB_INVALID_KEY";
11
+ // Blob errors
12
+ BlobErrorCode["BLOB_NOT_FOUND"] = "BLOB_NOT_FOUND";
13
+ // State errors
14
+ BlobErrorCode["BLOB_NOT_INITIALIZED"] = "BLOB_NOT_INITIALIZED";
15
+ BlobErrorCode["BLOB_RETRIEVAL_ERROR"] = "BLOB_RETRIEVAL_ERROR";
16
+ // Storage operation errors
17
+ BlobErrorCode["BLOB_STORAGE_ERROR"] = "BLOB_STORAGE_ERROR";
18
+ BlobErrorCode["BLOB_TOO_LARGE"] = "BLOB_TOO_LARGE";
19
+ BlobErrorCode["BLOB_TOTAL_SIZE_EXCEEDED"] = "BLOB_TOTAL_SIZE_EXCEEDED";
20
+ })(BlobErrorCode || (BlobErrorCode = {}));
21
+ /**
22
+ * Blob error class with factory methods for creating specific error instances
23
+ */
24
+ export class BlobError extends Error {
25
+ code;
26
+ details;
27
+ suggestion;
28
+ constructor(message, code, details, suggestion) {
29
+ super(message);
30
+ this.code = code;
31
+ this.details = details;
32
+ this.suggestion = suggestion;
33
+ this.name = 'BlobError';
34
+ }
35
+ static alreadyExists(key) {
36
+ return new BlobError(`Blob already exists: ${key}`, BlobErrorCode.BLOB_ALREADY_EXISTS, { key }, 'Use a different key or delete the existing blob first.');
37
+ }
38
+ static deleteError(message, cause) {
39
+ return new BlobError(`Blob deletion error: ${message}`, BlobErrorCode.BLOB_DELETE_ERROR, { cause }, 'Check if the blob file exists and you have write permissions.');
40
+ }
41
+ static initializationError(message, cause) {
42
+ return new BlobError(`Blob storage initialization error: ${message}`, BlobErrorCode.BLOB_INITIALIZATION_ERROR, { cause }, 'Check if the storage directory can be created and you have necessary permissions.');
43
+ }
44
+ static invalidContent(reason) {
45
+ return new BlobError(`Invalid blob content: ${reason}`, BlobErrorCode.BLOB_INVALID_CONTENT, { reason }, 'Provide valid Buffer or string content.');
46
+ }
47
+ static invalidKey(key, reason) {
48
+ return new BlobError(`Invalid blob key: ${key} - ${reason}`, BlobErrorCode.BLOB_INVALID_KEY, { key, reason }, 'Use only alphanumeric characters, hyphens, and underscores in blob keys.');
49
+ }
50
+ static notFound(key) {
51
+ return new BlobError(`Blob not found: ${key}`, BlobErrorCode.BLOB_NOT_FOUND, { key }, 'Check if the blob key is correct or use list() to find available blobs.');
52
+ }
53
+ static notInitialized() {
54
+ return new BlobError('Blob storage not initialized', BlobErrorCode.BLOB_NOT_INITIALIZED, undefined, 'Call initialize() before performing any blob operations.');
55
+ }
56
+ static retrievalError(message, cause) {
57
+ return new BlobError(`Blob retrieval error: ${message}`, BlobErrorCode.BLOB_RETRIEVAL_ERROR, { cause }, 'Check if the blob storage is accessible and readable.');
58
+ }
59
+ static storageError(message, cause) {
60
+ return new BlobError(`Blob storage error: ${message}`, BlobErrorCode.BLOB_STORAGE_ERROR, { cause }, 'Check if the storage directory exists and you have write permissions.');
61
+ }
62
+ static tooLarge(size, maxSize) {
63
+ return new BlobError(`Blob too large: ${size} bytes exceeds maximum ${maxSize} bytes`, BlobErrorCode.BLOB_TOO_LARGE, { maxSize, size }, `Reduce the blob size to ${maxSize} bytes or less, or increase the maxBlobSize configuration.`);
64
+ }
65
+ static totalSizeExceeded(currentSize, blobSize, maxTotalSize) {
66
+ return new BlobError(`Total storage size exceeded: ${currentSize + blobSize} bytes would exceed maximum ${maxTotalSize} bytes`, BlobErrorCode.BLOB_TOTAL_SIZE_EXCEEDED, { blobSize, currentSize, maxTotalSize, wouldBe: currentSize + blobSize }, 'Delete some blobs to free up space or increase the maxTotalSize configuration.');
67
+ }
68
+ }