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,161 @@
1
+ /**
2
+ * Base error class for LLM-related operations.
3
+ * All LLM-specific errors extend this base class.
4
+ */
5
+ export class LlmError extends Error {
6
+ code;
7
+ details;
8
+ model;
9
+ provider;
10
+ /**
11
+ * Creates a new LLM error
12
+ * @param message - Error message describing what went wrong
13
+ * @param code - Error code for categorization (e.g., 'LLM_GENERATION_FAILED')
14
+ * @param provider - LLM provider name (e.g., 'gemini', 'openai')
15
+ * @param model - Model name that was being used (e.g., 'gemini-2.5-flash')
16
+ */
17
+ constructor(message, code, provider, model) {
18
+ super(message);
19
+ this.name = 'LlmError';
20
+ this.code = code;
21
+ this.provider = provider;
22
+ this.model = model;
23
+ }
24
+ }
25
+ /**
26
+ * Error thrown when LLM generation fails.
27
+ * This can happen due to API errors, network issues, or model failures.
28
+ */
29
+ export class LlmGenerationError extends LlmError {
30
+ originalError;
31
+ /**
32
+ * Creates a new generation error
33
+ * @param error - The original error message from the LLM provider
34
+ * @param provider - LLM provider name
35
+ * @param model - Model name that was being used
36
+ */
37
+ constructor(error, provider, model) {
38
+ // Don't add "Generation failed:" prefix if error already has emoji prefix (user-friendly message)
39
+ const message = error.startsWith('❌') ? error : `Generation failed: ${error}`;
40
+ super(message, 'LLM_GENERATION_FAILED', provider, model);
41
+ this.name = 'LlmGenerationError';
42
+ this.originalError = error;
43
+ }
44
+ }
45
+ /**
46
+ * Error thrown when rate limits are exceeded.
47
+ * Includes optional retry delay information.
48
+ */
49
+ export class LlmRateLimitError extends LlmError {
50
+ retryAfter;
51
+ /**
52
+ * Creates a new rate limit error
53
+ * @param provider - LLM provider name
54
+ * @param retryAfter - Optional number of seconds to wait before retrying
55
+ */
56
+ constructor(provider, retryAfter) {
57
+ const message = retryAfter
58
+ ? `Rate limit exceeded for ${provider}. Retry after ${retryAfter} seconds`
59
+ : `Rate limit exceeded for ${provider}. Please wait before retrying`;
60
+ super(message, 'LLM_RATE_LIMIT_EXCEEDED', provider);
61
+ this.name = 'LlmRateLimitError';
62
+ this.retryAfter = retryAfter;
63
+ }
64
+ /**
65
+ * Gets the retry delay in milliseconds
66
+ * @returns Delay in milliseconds, or undefined if not specified
67
+ */
68
+ getRetryAfterMs() {
69
+ return this.retryAfter ? this.retryAfter * 1000 : undefined;
70
+ }
71
+ }
72
+ /**
73
+ * Error thrown when maximum iterations are exceeded in agentic loops.
74
+ * This prevents infinite loops when tool calling doesn't converge.
75
+ */
76
+ export class LlmMaxIterationsError extends LlmError {
77
+ maxIterations;
78
+ /**
79
+ * Creates a new max iterations error
80
+ * @param maxIterations - The maximum number of iterations that was configured
81
+ * @param provider - LLM provider name
82
+ * @param model - Model name that was being used
83
+ */
84
+ constructor(maxIterations, provider, model) {
85
+ super(`Maximum iterations (${maxIterations}) reached without completion`, 'LLM_MAX_ITERATIONS_EXCEEDED', provider, model);
86
+ this.name = 'LlmMaxIterationsError';
87
+ this.maxIterations = maxIterations;
88
+ }
89
+ }
90
+ /**
91
+ * Error thrown when tool execution fails during LLM operations.
92
+ * This occurs when the LLM requests a tool call but the execution fails.
93
+ */
94
+ export class LlmToolExecutionError extends LlmError {
95
+ originalError;
96
+ toolName;
97
+ /**
98
+ * Creates a new tool execution error
99
+ * @param toolName - Name of the tool that failed
100
+ * @param error - The original error message
101
+ * @param provider - LLM provider name
102
+ * @param model - Model name that was being used
103
+ */
104
+ constructor(toolName, error, provider, model) {
105
+ super(`Tool execution failed for '${toolName}': ${error}`, 'LLM_TOOL_EXECUTION_FAILED', provider, model);
106
+ this.name = 'LlmToolExecutionError';
107
+ this.toolName = toolName;
108
+ this.originalError = error;
109
+ }
110
+ }
111
+ /**
112
+ * Error thrown when LLM configuration is invalid or missing.
113
+ * This includes missing API keys, invalid settings, etc.
114
+ */
115
+ export class LlmConfigurationError extends LlmError {
116
+ configKey;
117
+ /**
118
+ * Creates a new configuration error
119
+ * @param configKey - The configuration key that is problematic
120
+ * @param message - Description of the configuration issue
121
+ * @param provider - LLM provider name
122
+ */
123
+ constructor(configKey, message, provider) {
124
+ super(`Configuration error for '${configKey}': ${message}`, 'LLM_CONFIGURATION_ERROR', provider);
125
+ this.name = 'LlmConfigurationError';
126
+ this.configKey = configKey;
127
+ }
128
+ }
129
+ /**
130
+ * Error thrown when parsing LLM responses fails.
131
+ * This occurs when the response format is unexpected or malformed.
132
+ */
133
+ export class LlmResponseParsingError extends LlmError {
134
+ originalError;
135
+ /**
136
+ * Creates a new response parsing error
137
+ * @param error - Description of the parsing error
138
+ * @param provider - LLM provider name
139
+ * @param model - Model name that was being used
140
+ */
141
+ constructor(error, provider, model) {
142
+ super(`Response parsing failed: ${error}`, 'LLM_RESPONSE_PARSING_FAILED', provider, model);
143
+ this.name = 'LlmResponseParsingError';
144
+ this.originalError = error;
145
+ }
146
+ }
147
+ /**
148
+ * Error thrown when no tool executor is provided but tools are requested.
149
+ * This is a configuration issue where the LLM wants to call tools but can't.
150
+ */
151
+ export class LlmMissingToolExecutorError extends LlmError {
152
+ /**
153
+ * Creates a new missing tool executor error
154
+ * @param provider - LLM provider name
155
+ * @param model - Model name that was being used
156
+ */
157
+ constructor(provider, model) {
158
+ super('Function calls requested but no tool executor provided', 'LLM_TOOL_EXECUTOR_MISSING', provider, model);
159
+ this.name = 'LlmMissingToolExecutorError';
160
+ }
161
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Memory error class with factory methods for creating specific error instances
3
+ */
4
+ /**
5
+ * Error codes for memory operations
6
+ */
7
+ export declare enum MemoryErrorCode {
8
+ MEMORY_ALREADY_EXISTS = "MEMORY_ALREADY_EXISTS",
9
+ MEMORY_CONTENT_REQUIRED = "MEMORY_CONTENT_REQUIRED",
10
+ MEMORY_CONTENT_TOO_LONG = "MEMORY_CONTENT_TOO_LONG",
11
+ MEMORY_DELETE_ERROR = "MEMORY_DELETE_ERROR",
12
+ MEMORY_INVALID_ID = "MEMORY_INVALID_ID",
13
+ MEMORY_INVALID_TAGS = "MEMORY_INVALID_TAGS",
14
+ MEMORY_NOT_FOUND = "MEMORY_NOT_FOUND",
15
+ MEMORY_RETRIEVAL_ERROR = "MEMORY_RETRIEVAL_ERROR",
16
+ MEMORY_STORAGE_ERROR = "MEMORY_STORAGE_ERROR"
17
+ }
18
+ /**
19
+ * Memory error class with factory methods for creating specific error instances
20
+ */
21
+ export declare class MemoryError extends Error {
22
+ readonly code: MemoryErrorCode;
23
+ readonly details?: Record<string, unknown> | undefined;
24
+ readonly suggestion?: string | undefined;
25
+ constructor(message: string, code: MemoryErrorCode, details?: Record<string, unknown> | undefined, suggestion?: string | undefined);
26
+ static alreadyExists(id: string): MemoryError;
27
+ static contentRequired(): MemoryError;
28
+ static contentTooLong(length: number, maxLength: number): MemoryError;
29
+ static deleteError(message: string, cause?: Error): MemoryError;
30
+ static invalidId(id: unknown): MemoryError;
31
+ static invalidTags(tags: unknown): MemoryError;
32
+ static notFound(id: string): MemoryError;
33
+ static retrievalError(message: string, cause?: Error): MemoryError;
34
+ static storageError(message: string, cause?: Error): MemoryError;
35
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Memory error class with factory methods for creating specific error instances
3
+ */
4
+ /**
5
+ * Error codes for memory operations
6
+ */
7
+ export var MemoryErrorCode;
8
+ (function (MemoryErrorCode) {
9
+ // General errors
10
+ MemoryErrorCode["MEMORY_ALREADY_EXISTS"] = "MEMORY_ALREADY_EXISTS";
11
+ MemoryErrorCode["MEMORY_CONTENT_REQUIRED"] = "MEMORY_CONTENT_REQUIRED";
12
+ MemoryErrorCode["MEMORY_CONTENT_TOO_LONG"] = "MEMORY_CONTENT_TOO_LONG";
13
+ MemoryErrorCode["MEMORY_DELETE_ERROR"] = "MEMORY_DELETE_ERROR";
14
+ MemoryErrorCode["MEMORY_INVALID_ID"] = "MEMORY_INVALID_ID";
15
+ MemoryErrorCode["MEMORY_INVALID_TAGS"] = "MEMORY_INVALID_TAGS";
16
+ MemoryErrorCode["MEMORY_NOT_FOUND"] = "MEMORY_NOT_FOUND";
17
+ // Storage errors
18
+ MemoryErrorCode["MEMORY_RETRIEVAL_ERROR"] = "MEMORY_RETRIEVAL_ERROR";
19
+ MemoryErrorCode["MEMORY_STORAGE_ERROR"] = "MEMORY_STORAGE_ERROR";
20
+ })(MemoryErrorCode || (MemoryErrorCode = {}));
21
+ /**
22
+ * Memory error class with factory methods for creating specific error instances
23
+ */
24
+ export class MemoryError 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 = 'MemoryError';
34
+ }
35
+ static alreadyExists(id) {
36
+ return new MemoryError(`Memory already exists: ${id}`, MemoryErrorCode.MEMORY_ALREADY_EXISTS, { id }, 'Use update() to modify existing memory or delete() first before creating a new one.');
37
+ }
38
+ static contentRequired() {
39
+ return new MemoryError('Memory content is required', MemoryErrorCode.MEMORY_CONTENT_REQUIRED, undefined, 'Provide a non-empty content string when creating or updating a memory.');
40
+ }
41
+ static contentTooLong(length, maxLength) {
42
+ return new MemoryError(`Memory content too long: ${length} characters (max: ${maxLength})`, MemoryErrorCode.MEMORY_CONTENT_TOO_LONG, { length, maxLength }, `Reduce the content to ${maxLength} characters or less.`);
43
+ }
44
+ static deleteError(message, cause) {
45
+ return new MemoryError(`Memory deletion error: ${message}`, MemoryErrorCode.MEMORY_DELETE_ERROR, { cause }, 'Check if the memory file exists and you have write permissions.');
46
+ }
47
+ static invalidId(id) {
48
+ return new MemoryError(`Invalid memory ID: ${String(id)}`, MemoryErrorCode.MEMORY_INVALID_ID, { id }, 'Provide a valid non-empty string as the memory ID.');
49
+ }
50
+ static invalidTags(tags) {
51
+ return new MemoryError(`Invalid tags format: ${JSON.stringify(tags)}`, MemoryErrorCode.MEMORY_INVALID_TAGS, { tags }, 'Tags must be an array of strings, each 1-50 characters long, with a maximum of 10 tags.');
52
+ }
53
+ static notFound(id) {
54
+ return new MemoryError(`Memory not found: ${id}`, MemoryErrorCode.MEMORY_NOT_FOUND, { id }, 'Check if the memory ID is correct or use list() to find available memories.');
55
+ }
56
+ static retrievalError(message, cause) {
57
+ return new MemoryError(`Memory retrieval error: ${message}`, MemoryErrorCode.MEMORY_RETRIEVAL_ERROR, { cause }, 'Check if the memory storage is accessible and readable.');
58
+ }
59
+ static storageError(message, cause) {
60
+ return new MemoryError(`Memory storage error: ${message}`, MemoryErrorCode.MEMORY_STORAGE_ERROR, { cause }, 'Check if the storage directory exists and you have write permissions.');
61
+ }
62
+ }
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Error codes for process execution failures.
3
+ *
4
+ * Used by ProcessError factory to create structured error objects.
5
+ */
6
+ export declare enum ProcessErrorCode {
7
+ /**
8
+ * Command matches a blocked pattern.
9
+ *
10
+ * Command is explicitly forbidden by security policy.
11
+ */
12
+ COMMAND_BLOCKED = "COMMAND_BLOCKED",
13
+ /**
14
+ * Command not found in PATH.
15
+ *
16
+ * System returned ENOENT error.
17
+ */
18
+ COMMAND_NOT_FOUND = "COMMAND_NOT_FOUND",
19
+ /**
20
+ * Command exceeds maximum length.
21
+ *
22
+ * Commands longer than 10,000 characters are rejected.
23
+ */
24
+ COMMAND_TOO_LONG = "COMMAND_TOO_LONG",
25
+ /**
26
+ * Command execution failed.
27
+ *
28
+ * Generic execution error (non-zero exit code, spawn failure, etc.).
29
+ */
30
+ EXECUTION_FAILED = "EXECUTION_FAILED",
31
+ /**
32
+ * Command injection detected.
33
+ *
34
+ * Command contains unsafe patterns like command chaining or substitution.
35
+ */
36
+ INJECTION_DETECTED = "INJECTION_DETECTED",
37
+ /**
38
+ * Command validation failed.
39
+ *
40
+ * Command is malformed or violates security policy.
41
+ */
42
+ INVALID_COMMAND = "INVALID_COMMAND",
43
+ /**
44
+ * Process configuration is invalid.
45
+ *
46
+ * Invalid ProcessConfig provided to constructor.
47
+ */
48
+ INVALID_CONFIG = "INVALID_CONFIG",
49
+ /**
50
+ * Failed to terminate background process.
51
+ *
52
+ * Process.kill() threw an error or process didn't stop.
53
+ */
54
+ KILL_FAILED = "KILL_FAILED",
55
+ /**
56
+ * Output buffer exceeded size limit.
57
+ *
58
+ * Background process output exceeded maxOutputBuffer bytes.
59
+ */
60
+ OUTPUT_BUFFER_FULL = "OUTPUT_BUFFER_FULL",
61
+ /**
62
+ * Permission denied executing command.
63
+ *
64
+ * System returned EACCES error.
65
+ */
66
+ PERMISSION_DENIED = "PERMISSION_DENIED",
67
+ /**
68
+ * Background process not found.
69
+ *
70
+ * Invalid or expired processId.
71
+ */
72
+ PROCESS_NOT_FOUND = "PROCESS_NOT_FOUND",
73
+ /**
74
+ * ProcessService not initialized.
75
+ *
76
+ * Must call initialize() before executing commands.
77
+ */
78
+ SERVICE_NOT_INITIALIZED = "SERVICE_NOT_INITIALIZED",
79
+ /**
80
+ * Command execution timed out.
81
+ *
82
+ * Process exceeded timeout limit and was killed.
83
+ */
84
+ TIMEOUT = "TIMEOUT",
85
+ /**
86
+ * Too many concurrent background processes.
87
+ *
88
+ * Exceeded maxConcurrentProcesses limit.
89
+ */
90
+ TOO_MANY_PROCESSES = "TOO_MANY_PROCESSES",
91
+ /**
92
+ * Working directory is invalid or unsafe.
93
+ *
94
+ * Directory doesn't exist, is outside base directory, or contains path traversal.
95
+ */
96
+ WORKING_DIRECTORY_INVALID = "WORKING_DIRECTORY_INVALID"
97
+ }
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Error codes for process execution failures.
3
+ *
4
+ * Used by ProcessError factory to create structured error objects.
5
+ */
6
+ export var ProcessErrorCode;
7
+ (function (ProcessErrorCode) {
8
+ /**
9
+ * Command matches a blocked pattern.
10
+ *
11
+ * Command is explicitly forbidden by security policy.
12
+ */
13
+ ProcessErrorCode["COMMAND_BLOCKED"] = "COMMAND_BLOCKED";
14
+ /**
15
+ * Command not found in PATH.
16
+ *
17
+ * System returned ENOENT error.
18
+ */
19
+ ProcessErrorCode["COMMAND_NOT_FOUND"] = "COMMAND_NOT_FOUND";
20
+ /**
21
+ * Command exceeds maximum length.
22
+ *
23
+ * Commands longer than 10,000 characters are rejected.
24
+ */
25
+ ProcessErrorCode["COMMAND_TOO_LONG"] = "COMMAND_TOO_LONG";
26
+ /**
27
+ * Command execution failed.
28
+ *
29
+ * Generic execution error (non-zero exit code, spawn failure, etc.).
30
+ */
31
+ ProcessErrorCode["EXECUTION_FAILED"] = "EXECUTION_FAILED";
32
+ /**
33
+ * Command injection detected.
34
+ *
35
+ * Command contains unsafe patterns like command chaining or substitution.
36
+ */
37
+ ProcessErrorCode["INJECTION_DETECTED"] = "INJECTION_DETECTED";
38
+ /**
39
+ * Command validation failed.
40
+ *
41
+ * Command is malformed or violates security policy.
42
+ */
43
+ ProcessErrorCode["INVALID_COMMAND"] = "INVALID_COMMAND";
44
+ /**
45
+ * Process configuration is invalid.
46
+ *
47
+ * Invalid ProcessConfig provided to constructor.
48
+ */
49
+ ProcessErrorCode["INVALID_CONFIG"] = "INVALID_CONFIG";
50
+ /**
51
+ * Failed to terminate background process.
52
+ *
53
+ * Process.kill() threw an error or process didn't stop.
54
+ */
55
+ ProcessErrorCode["KILL_FAILED"] = "KILL_FAILED";
56
+ /**
57
+ * Output buffer exceeded size limit.
58
+ *
59
+ * Background process output exceeded maxOutputBuffer bytes.
60
+ */
61
+ ProcessErrorCode["OUTPUT_BUFFER_FULL"] = "OUTPUT_BUFFER_FULL";
62
+ /**
63
+ * Permission denied executing command.
64
+ *
65
+ * System returned EACCES error.
66
+ */
67
+ ProcessErrorCode["PERMISSION_DENIED"] = "PERMISSION_DENIED";
68
+ /**
69
+ * Background process not found.
70
+ *
71
+ * Invalid or expired processId.
72
+ */
73
+ ProcessErrorCode["PROCESS_NOT_FOUND"] = "PROCESS_NOT_FOUND";
74
+ /**
75
+ * ProcessService not initialized.
76
+ *
77
+ * Must call initialize() before executing commands.
78
+ */
79
+ ProcessErrorCode["SERVICE_NOT_INITIALIZED"] = "SERVICE_NOT_INITIALIZED";
80
+ /**
81
+ * Command execution timed out.
82
+ *
83
+ * Process exceeded timeout limit and was killed.
84
+ */
85
+ ProcessErrorCode["TIMEOUT"] = "TIMEOUT";
86
+ /**
87
+ * Too many concurrent background processes.
88
+ *
89
+ * Exceeded maxConcurrentProcesses limit.
90
+ */
91
+ ProcessErrorCode["TOO_MANY_PROCESSES"] = "TOO_MANY_PROCESSES";
92
+ /**
93
+ * Working directory is invalid or unsafe.
94
+ *
95
+ * Directory doesn't exist, is outside base directory, or contains path traversal.
96
+ */
97
+ ProcessErrorCode["WORKING_DIRECTORY_INVALID"] = "WORKING_DIRECTORY_INVALID";
98
+ })(ProcessErrorCode || (ProcessErrorCode = {}));
@@ -0,0 +1,135 @@
1
+ import { ProcessErrorCode } from './process-error-code.js';
2
+ /**
3
+ * Base error class for process execution operations.
4
+ *
5
+ * All process-specific errors extend this base class.
6
+ */
7
+ export declare class ProcessError extends Error {
8
+ readonly code: ProcessErrorCode;
9
+ readonly details?: Record<string, unknown>;
10
+ readonly suggestion?: string;
11
+ /**
12
+ * Creates a new process error.
13
+ *
14
+ * @param message - Error message describing what went wrong
15
+ * @param code - Error code for categorization
16
+ * @param details - Additional error context
17
+ * @param suggestion - Optional recovery suggestion
18
+ */
19
+ constructor(message: string, code: ProcessErrorCode, details?: Record<string, unknown>, suggestion?: string);
20
+ /**
21
+ * Factory method: Command matches blocked pattern.
22
+ *
23
+ * @param command - Command that was blocked
24
+ * @param reason - Reason why command is blocked
25
+ * @returns ProcessError instance
26
+ */
27
+ static commandBlocked(command: string, reason: string): ProcessError;
28
+ /**
29
+ * Factory method: Command injection detected.
30
+ *
31
+ * @param command - Command with injection pattern
32
+ * @param pattern - Detected injection pattern
33
+ * @returns ProcessError instance
34
+ */
35
+ static commandInjection(command: string, pattern: string): ProcessError;
36
+ /**
37
+ * Factory method: Command not found in PATH.
38
+ *
39
+ * @param command - Command that was not found
40
+ * @returns ProcessError instance
41
+ */
42
+ static commandNotFound(command: string): ProcessError;
43
+ /**
44
+ * Factory method: Command exceeds maximum length.
45
+ *
46
+ * @param length - Actual command length
47
+ * @param maxLength - Maximum allowed length
48
+ * @returns ProcessError instance
49
+ */
50
+ static commandTooLong(length: number, maxLength: number): ProcessError;
51
+ /**
52
+ * Factory method: Command execution failed.
53
+ *
54
+ * @param command - Command that failed
55
+ * @param cause - Cause of failure
56
+ * @returns ProcessError instance
57
+ */
58
+ static executionFailed(command: string, cause: string): ProcessError;
59
+ /**
60
+ * Factory method: Invalid command validation.
61
+ *
62
+ * @param command - Command that failed validation
63
+ * @param reason - Reason for validation failure
64
+ * @returns ProcessError instance
65
+ */
66
+ static invalidCommand(command: string, reason: string): ProcessError;
67
+ /**
68
+ * Factory method: Invalid process configuration.
69
+ *
70
+ * @param reason - Reason why configuration is invalid
71
+ * @returns ProcessError instance
72
+ */
73
+ static invalidConfig(reason: string): ProcessError;
74
+ /**
75
+ * Factory method: Invalid or unsafe working directory.
76
+ *
77
+ * @param path - Working directory path that failed validation
78
+ * @param reason - Reason why path is invalid
79
+ * @returns ProcessError instance
80
+ */
81
+ static invalidWorkingDirectory(path: string, reason: string): ProcessError;
82
+ /**
83
+ * Factory method: Failed to terminate background process.
84
+ *
85
+ * @param processId - ID of process that failed to terminate
86
+ * @param cause - Cause of failure
87
+ * @returns ProcessError instance
88
+ */
89
+ static killFailed(processId: string, cause: string): ProcessError;
90
+ /**
91
+ * Factory method: ProcessService not initialized.
92
+ *
93
+ * @returns ProcessError instance
94
+ */
95
+ static notInitialized(): ProcessError;
96
+ /**
97
+ * Factory method: Output buffer exceeded size limit.
98
+ *
99
+ * @param processId - ID of process with full buffer
100
+ * @param size - Current buffer size
101
+ * @param maxSize - Maximum allowed size
102
+ * @returns ProcessError instance
103
+ */
104
+ static outputBufferFull(processId: string, size: number, maxSize: number): ProcessError;
105
+ /**
106
+ * Factory method: Permission denied executing command.
107
+ *
108
+ * @param command - Command that was denied
109
+ * @returns ProcessError instance
110
+ */
111
+ static permissionDenied(command: string): ProcessError;
112
+ /**
113
+ * Factory method: Background process not found.
114
+ *
115
+ * @param processId - ID of process that was not found
116
+ * @returns ProcessError instance
117
+ */
118
+ static processNotFound(processId: string): ProcessError;
119
+ /**
120
+ * Factory method: Command execution timed out.
121
+ *
122
+ * @param command - Command that timed out
123
+ * @param timeout - Timeout value in milliseconds
124
+ * @returns ProcessError instance
125
+ */
126
+ static timeout(command: string, timeout: number): ProcessError;
127
+ /**
128
+ * Factory method: Too many concurrent background processes.
129
+ *
130
+ * @param current - Current number of running processes
131
+ * @param max - Maximum allowed concurrent processes
132
+ * @returns ProcessError instance
133
+ */
134
+ static tooManyProcesses(current: number, max: number): ProcessError;
135
+ }