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,173 @@
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 class ProcessError extends Error {
8
+ code;
9
+ details;
10
+ suggestion;
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, code, details, suggestion) {
20
+ super(message);
21
+ this.name = 'ProcessError';
22
+ this.code = code;
23
+ this.details = details;
24
+ this.suggestion = suggestion;
25
+ }
26
+ /**
27
+ * Factory method: Command matches blocked pattern.
28
+ *
29
+ * @param command - Command that was blocked
30
+ * @param reason - Reason why command is blocked
31
+ * @returns ProcessError instance
32
+ */
33
+ static commandBlocked(command, reason) {
34
+ return new ProcessError(`Command blocked by security policy: ${command}. Reason: ${reason}`, ProcessErrorCode.COMMAND_BLOCKED, { command, reason }, 'Modify the command to avoid dangerous patterns or adjust security level.');
35
+ }
36
+ /**
37
+ * Factory method: Command injection detected.
38
+ *
39
+ * @param command - Command with injection pattern
40
+ * @param pattern - Detected injection pattern
41
+ * @returns ProcessError instance
42
+ */
43
+ static commandInjection(command, pattern) {
44
+ return new ProcessError(`Command injection detected: ${command}. Pattern: ${pattern}`, ProcessErrorCode.INJECTION_DETECTED, { command, pattern }, 'Remove unsafe command chaining or substitution patterns.');
45
+ }
46
+ /**
47
+ * Factory method: Command not found in PATH.
48
+ *
49
+ * @param command - Command that was not found
50
+ * @returns ProcessError instance
51
+ */
52
+ static commandNotFound(command) {
53
+ const commandName = command.split(/\s+/)[0];
54
+ return new ProcessError(`Command not found: ${commandName}`, ProcessErrorCode.COMMAND_NOT_FOUND, { command, commandName }, `Ensure '${commandName}' is installed and available in PATH.`);
55
+ }
56
+ /**
57
+ * Factory method: Command exceeds maximum length.
58
+ *
59
+ * @param length - Actual command length
60
+ * @param maxLength - Maximum allowed length
61
+ * @returns ProcessError instance
62
+ */
63
+ static commandTooLong(length, maxLength) {
64
+ return new ProcessError(`Command exceeds maximum length: ${length} > ${maxLength}`, ProcessErrorCode.COMMAND_TOO_LONG, { length, maxLength }, `Reduce command length to ${maxLength} characters or less.`);
65
+ }
66
+ /**
67
+ * Factory method: Command execution failed.
68
+ *
69
+ * @param command - Command that failed
70
+ * @param cause - Cause of failure
71
+ * @returns ProcessError instance
72
+ */
73
+ static executionFailed(command, cause) {
74
+ return new ProcessError(`Command execution failed: ${command}. Cause: ${cause}`, ProcessErrorCode.EXECUTION_FAILED, { cause, command }, 'Check command syntax and try again.');
75
+ }
76
+ /**
77
+ * Factory method: Invalid command validation.
78
+ *
79
+ * @param command - Command that failed validation
80
+ * @param reason - Reason for validation failure
81
+ * @returns ProcessError instance
82
+ */
83
+ static invalidCommand(command, reason) {
84
+ return new ProcessError(`Invalid command: ${command}. Reason: ${reason}`, ProcessErrorCode.INVALID_COMMAND, { command, reason }, 'Ensure command is properly formatted and contains valid characters.');
85
+ }
86
+ /**
87
+ * Factory method: Invalid process configuration.
88
+ *
89
+ * @param reason - Reason why configuration is invalid
90
+ * @returns ProcessError instance
91
+ */
92
+ static invalidConfig(reason) {
93
+ return new ProcessError(`Invalid process configuration: ${reason}`, ProcessErrorCode.INVALID_CONFIG, { reason }, 'Review and correct ProcessConfig settings.');
94
+ }
95
+ /**
96
+ * Factory method: Invalid or unsafe working directory.
97
+ *
98
+ * @param path - Working directory path that failed validation
99
+ * @param reason - Reason why path is invalid
100
+ * @returns ProcessError instance
101
+ */
102
+ static invalidWorkingDirectory(path, reason) {
103
+ return new ProcessError(`Invalid working directory: ${path}. Reason: ${reason}`, ProcessErrorCode.WORKING_DIRECTORY_INVALID, { path, reason }, 'Use a path within the configured base directory without ".." traversal.');
104
+ }
105
+ /**
106
+ * Factory method: Failed to terminate background process.
107
+ *
108
+ * @param processId - ID of process that failed to terminate
109
+ * @param cause - Cause of failure
110
+ * @returns ProcessError instance
111
+ */
112
+ static killFailed(processId, cause) {
113
+ return new ProcessError(`Failed to kill process: ${processId}. Cause: ${cause}`, ProcessErrorCode.KILL_FAILED, { cause, processId }, 'Process may have already terminated or lacks permissions to kill.');
114
+ }
115
+ /**
116
+ * Factory method: ProcessService not initialized.
117
+ *
118
+ * @returns ProcessError instance
119
+ */
120
+ static notInitialized() {
121
+ return new ProcessError('ProcessService not initialized', ProcessErrorCode.SERVICE_NOT_INITIALIZED, undefined, 'Call initialize() before executing commands.');
122
+ }
123
+ /**
124
+ * Factory method: Output buffer exceeded size limit.
125
+ *
126
+ * @param processId - ID of process with full buffer
127
+ * @param size - Current buffer size
128
+ * @param maxSize - Maximum allowed size
129
+ * @returns ProcessError instance
130
+ */
131
+ static outputBufferFull(processId, size, maxSize) {
132
+ return new ProcessError(`Output buffer full for process ${processId}: ${size} >= ${maxSize} bytes`, ProcessErrorCode.OUTPUT_BUFFER_FULL, { maxSize, processId, size }, 'Increase maxOutputBuffer in ProcessConfig or read output more frequently.');
133
+ }
134
+ /**
135
+ * Factory method: Permission denied executing command.
136
+ *
137
+ * @param command - Command that was denied
138
+ * @returns ProcessError instance
139
+ */
140
+ static permissionDenied(command) {
141
+ const commandName = command.split(/\s+/)[0];
142
+ return new ProcessError(`Permission denied: ${commandName}`, ProcessErrorCode.PERMISSION_DENIED, { command, commandName }, `Ensure you have permission to execute '${commandName}' or run with appropriate privileges.`);
143
+ }
144
+ /**
145
+ * Factory method: Background process not found.
146
+ *
147
+ * @param processId - ID of process that was not found
148
+ * @returns ProcessError instance
149
+ */
150
+ static processNotFound(processId) {
151
+ return new ProcessError(`Process not found: ${processId}`, ProcessErrorCode.PROCESS_NOT_FOUND, { processId }, 'Process may have completed and been cleaned up, or the ID is invalid.');
152
+ }
153
+ /**
154
+ * Factory method: Command execution timed out.
155
+ *
156
+ * @param command - Command that timed out
157
+ * @param timeout - Timeout value in milliseconds
158
+ * @returns ProcessError instance
159
+ */
160
+ static timeout(command, timeout) {
161
+ return new ProcessError(`Command timed out after ${timeout}ms: ${command}`, ProcessErrorCode.TIMEOUT, { command, timeout }, 'Increase timeout value or optimize the command to run faster.');
162
+ }
163
+ /**
164
+ * Factory method: Too many concurrent background processes.
165
+ *
166
+ * @param current - Current number of running processes
167
+ * @param max - Maximum allowed concurrent processes
168
+ * @returns ProcessError instance
169
+ */
170
+ static tooManyProcesses(current, max) {
171
+ return new ProcessError(`Too many concurrent processes: ${current} >= ${max}`, ProcessErrorCode.TOO_MANY_PROCESSES, { current, max }, 'Wait for existing processes to complete or increase maxConcurrentProcesses.');
172
+ }
173
+ }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Base error class for session operations.
3
+ * All session-specific errors extend this base class.
4
+ */
5
+ export declare class SessionError extends Error {
6
+ readonly code: string;
7
+ readonly details?: Record<string, unknown>;
8
+ /**
9
+ * Creates a new session error
10
+ * @param message - Error message describing what went wrong
11
+ * @param code - Error code for categorization
12
+ * @param details - Additional error context
13
+ */
14
+ constructor(message: string, code: string, details?: Record<string, unknown>);
15
+ }
16
+ /**
17
+ * Error thrown when tool execution loop exceeds maximum iterations.
18
+ */
19
+ export declare class MaxIterationsExceededError extends SessionError {
20
+ /**
21
+ * Creates a new max iterations exceeded error
22
+ * @param maxIterations - Maximum iterations allowed
23
+ * @param sessionId - Session ID where error occurred
24
+ */
25
+ constructor(maxIterations: number, sessionId: string);
26
+ }
27
+ /**
28
+ * Error thrown when a session operation is cancelled.
29
+ */
30
+ export declare class SessionCancelledError extends SessionError {
31
+ /**
32
+ * Creates a new session cancelled error
33
+ * @param sessionId - Session ID where cancellation occurred
34
+ */
35
+ constructor(sessionId: string);
36
+ }
37
+ /**
38
+ * Error thrown when LLM service call fails.
39
+ */
40
+ export declare class LLMError extends SessionError {
41
+ /**
42
+ * Creates a new LLM error
43
+ * @param reason - Reason for the failure (already formatted, user-friendly message)
44
+ * @param sessionId - Session ID where error occurred
45
+ */
46
+ constructor(reason: string, sessionId: string);
47
+ }
48
+ /**
49
+ * Error thrown when session is not initialized.
50
+ */
51
+ export declare class SessionNotInitializedError extends SessionError {
52
+ /**
53
+ * Creates a new session not initialized error
54
+ */
55
+ constructor();
56
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Base error class for session operations.
3
+ * All session-specific errors extend this base class.
4
+ */
5
+ export class SessionError extends Error {
6
+ code;
7
+ details;
8
+ /**
9
+ * Creates a new session error
10
+ * @param message - Error message describing what went wrong
11
+ * @param code - Error code for categorization
12
+ * @param details - Additional error context
13
+ */
14
+ constructor(message, code, details) {
15
+ super(message);
16
+ this.name = 'SessionError';
17
+ this.code = code;
18
+ this.details = details;
19
+ }
20
+ }
21
+ /**
22
+ * Error thrown when tool execution loop exceeds maximum iterations.
23
+ */
24
+ export class MaxIterationsExceededError extends SessionError {
25
+ /**
26
+ * Creates a new max iterations exceeded error
27
+ * @param maxIterations - Maximum iterations allowed
28
+ * @param sessionId - Session ID where error occurred
29
+ */
30
+ constructor(maxIterations, sessionId) {
31
+ super(`Tool execution loop exceeded maximum iterations (${maxIterations}). This may indicate an infinite loop.`, 'MAX_ITERATIONS_EXCEEDED', { maxIterations, sessionId });
32
+ this.name = 'MaxIterationsExceededError';
33
+ }
34
+ }
35
+ /**
36
+ * Error thrown when a session operation is cancelled.
37
+ */
38
+ export class SessionCancelledError extends SessionError {
39
+ /**
40
+ * Creates a new session cancelled error
41
+ * @param sessionId - Session ID where cancellation occurred
42
+ */
43
+ constructor(sessionId) {
44
+ super('Session operation was cancelled by user', 'SESSION_CANCELLED', { sessionId });
45
+ this.name = 'SessionCancelledError';
46
+ }
47
+ }
48
+ /**
49
+ * Error thrown when LLM service call fails.
50
+ */
51
+ export class LLMError extends SessionError {
52
+ /**
53
+ * Creates a new LLM error
54
+ * @param reason - Reason for the failure (already formatted, user-friendly message)
55
+ * @param sessionId - Session ID where error occurred
56
+ */
57
+ constructor(reason, sessionId) {
58
+ // Pass reason as-is since it's already formatted with user-friendly message
59
+ super(reason, 'LLM_ERROR', { reason, sessionId });
60
+ this.name = 'LLMError';
61
+ }
62
+ }
63
+ /**
64
+ * Error thrown when session is not initialized.
65
+ */
66
+ export class SessionNotInitializedError extends SessionError {
67
+ /**
68
+ * Creates a new session not initialized error
69
+ */
70
+ constructor() {
71
+ super('Session not initialized. Cannot perform operations.', 'SESSION_NOT_INITIALIZED');
72
+ this.name = 'SessionNotInitializedError';
73
+ }
74
+ }
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Base error class for tool operations.
3
+ * All tool-specific errors extend this base class.
4
+ */
5
+ export declare class ToolError extends Error {
6
+ readonly code: string;
7
+ readonly details?: Record<string, unknown>;
8
+ /**
9
+ * Creates a new tool error
10
+ * @param message - Error message describing what went wrong
11
+ * @param code - Error code for categorization
12
+ * @param details - Additional error context
13
+ */
14
+ constructor(message: string, code: string, details?: Record<string, unknown>);
15
+ }
16
+ /**
17
+ * Error thrown when a tool is not found.
18
+ */
19
+ export declare class ToolNotFoundError extends ToolError {
20
+ /**
21
+ * Creates a new tool not found error
22
+ * @param toolName - Name of the tool that was not found
23
+ */
24
+ constructor(toolName: string);
25
+ }
26
+ /**
27
+ * Error thrown when tool execution fails.
28
+ */
29
+ export declare class ToolExecutionError extends ToolError {
30
+ /**
31
+ * Creates a new tool execution error
32
+ * @param toolName - Name of the tool that failed
33
+ * @param reason - Reason for the failure
34
+ * @param sessionId - Optional session ID
35
+ */
36
+ constructor(toolName: string, reason: string, sessionId?: string);
37
+ }
38
+ /**
39
+ * Error thrown when tool input validation fails.
40
+ */
41
+ export declare class ToolValidationError extends ToolError {
42
+ /**
43
+ * Creates a new tool validation error
44
+ * @param toolName - Name of the tool
45
+ * @param validationErrors - Validation error details
46
+ */
47
+ constructor(toolName: string, validationErrors: string);
48
+ }
49
+ /**
50
+ * Error thrown when the tool provider is not initialized.
51
+ */
52
+ export declare class ToolProviderNotInitializedError extends ToolError {
53
+ /**
54
+ * Creates a new tool provider not initialized error
55
+ */
56
+ constructor();
57
+ }
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Base error class for tool operations.
3
+ * All tool-specific errors extend this base class.
4
+ */
5
+ export class ToolError extends Error {
6
+ code;
7
+ details;
8
+ /**
9
+ * Creates a new tool error
10
+ * @param message - Error message describing what went wrong
11
+ * @param code - Error code for categorization
12
+ * @param details - Additional error context
13
+ */
14
+ constructor(message, code, details) {
15
+ super(message);
16
+ this.name = 'ToolError';
17
+ this.code = code;
18
+ this.details = details;
19
+ }
20
+ }
21
+ /**
22
+ * Error thrown when a tool is not found.
23
+ */
24
+ export class ToolNotFoundError extends ToolError {
25
+ /**
26
+ * Creates a new tool not found error
27
+ * @param toolName - Name of the tool that was not found
28
+ */
29
+ constructor(toolName) {
30
+ super(`Tool not found: ${toolName}`, 'TOOL_NOT_FOUND', { toolName });
31
+ this.name = 'ToolNotFoundError';
32
+ }
33
+ }
34
+ /**
35
+ * Error thrown when tool execution fails.
36
+ */
37
+ export class ToolExecutionError extends ToolError {
38
+ /**
39
+ * Creates a new tool execution error
40
+ * @param toolName - Name of the tool that failed
41
+ * @param reason - Reason for the failure
42
+ * @param sessionId - Optional session ID
43
+ */
44
+ constructor(toolName, reason, sessionId) {
45
+ super(`Tool execution failed: ${toolName}. Reason: ${reason}`, 'TOOL_EXECUTION_FAILED', {
46
+ reason,
47
+ sessionId,
48
+ toolName,
49
+ });
50
+ this.name = 'ToolExecutionError';
51
+ }
52
+ }
53
+ /**
54
+ * Error thrown when tool input validation fails.
55
+ */
56
+ export class ToolValidationError extends ToolError {
57
+ /**
58
+ * Creates a new tool validation error
59
+ * @param toolName - Name of the tool
60
+ * @param validationErrors - Validation error details
61
+ */
62
+ constructor(toolName, validationErrors) {
63
+ super(`Tool input validation failed: ${toolName}. ${validationErrors}`, 'TOOL_VALIDATION_FAILED', {
64
+ toolName,
65
+ validationErrors,
66
+ });
67
+ this.name = 'ToolValidationError';
68
+ }
69
+ }
70
+ /**
71
+ * Error thrown when the tool provider is not initialized.
72
+ */
73
+ export class ToolProviderNotInitializedError extends ToolError {
74
+ /**
75
+ * Creates a new tool provider not initialized error
76
+ */
77
+ constructor() {
78
+ super('ToolProvider not initialized. Call initialize() before using tools', 'TOOL_PROVIDER_NOT_INITIALIZED');
79
+ this.name = 'ToolProviderNotInitializedError';
80
+ }
81
+ }
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Buffer encoding type from Node.js
3
+ */
4
+ export type BufferEncoding = 'ascii' | 'base64' | 'base64url' | 'binary' | 'hex' | 'latin1' | 'ucs2' | 'ucs-2' | 'utf8' | 'utf16le';
5
+ /**
6
+ * Configuration for the file system service.
7
+ * Defines security policies and operational limits.
8
+ */
9
+ export interface FileSystemConfig {
10
+ /** Whitelist of allowed base paths (relative to working directory) */
11
+ allowedPaths: string[];
12
+ /** Blacklist of forbidden file extensions (e.g., .exe, .dll) */
13
+ blockedExtensions: string[];
14
+ /** Blacklist of forbidden paths (e.g., .git, node_modules/.bin) */
15
+ blockedPaths: string[];
16
+ /** Maximum file size in bytes for read operations */
17
+ maxFileSize: number;
18
+ /** Working directory for relative path resolution */
19
+ workingDirectory: string;
20
+ }
21
+ /**
22
+ * Options for reading files.
23
+ */
24
+ export interface ReadFileOptions {
25
+ /** Character encoding */
26
+ encoding?: BufferEncoding;
27
+ /** Maximum number of lines to read */
28
+ limit?: number;
29
+ /** Starting line number (1-based, like text editors) */
30
+ offset?: number;
31
+ }
32
+ /**
33
+ * Options for writing files.
34
+ */
35
+ export interface WriteFileOptions {
36
+ /** Create parent directories if they don't exist */
37
+ createDirs?: boolean;
38
+ /** Character encoding */
39
+ encoding?: BufferEncoding;
40
+ }
41
+ /**
42
+ * Options for editing files.
43
+ */
44
+ export interface EditFileOptions {
45
+ /** Character encoding */
46
+ encoding?: BufferEncoding;
47
+ }
48
+ /**
49
+ * Options for glob file discovery.
50
+ */
51
+ export interface GlobOptions {
52
+ /** Case-sensitive pattern matching (default: true) */
53
+ caseSensitive?: boolean;
54
+ /** Working directory for glob pattern */
55
+ cwd?: string;
56
+ /** Include file metadata (size, modified date) */
57
+ includeMetadata?: boolean;
58
+ /** Maximum number of results to return */
59
+ maxResults?: number;
60
+ /** Respect .gitignore rules when matching files (default: true) */
61
+ respectGitignore?: boolean;
62
+ }
63
+ /**
64
+ * Options for content search.
65
+ */
66
+ export interface SearchOptions {
67
+ /** Abort signal for cancellation */
68
+ abortSignal?: AbortSignal;
69
+ /** Case-insensitive search */
70
+ caseInsensitive?: boolean;
71
+ /** Number of context lines before/after match */
72
+ contextLines?: number;
73
+ /** Working directory for search */
74
+ cwd?: string;
75
+ /** Glob pattern to filter files (default: all files) */
76
+ globPattern?: string;
77
+ /** Maximum number of matches to return */
78
+ maxResults?: number;
79
+ }
80
+ /**
81
+ * Result of a file read operation.
82
+ */
83
+ export interface FileContent {
84
+ /** File content as string */
85
+ content: string;
86
+ /** Character encoding used */
87
+ encoding: string;
88
+ /** Total number of lines in the returned content */
89
+ lines: number;
90
+ /** File size in bytes */
91
+ size: number;
92
+ /** Whether content was truncated due to size/line limits */
93
+ truncated: boolean;
94
+ }
95
+ /**
96
+ * Result of a file write operation.
97
+ */
98
+ export interface WriteResult {
99
+ /** Number of bytes written */
100
+ bytesWritten: number;
101
+ /** Absolute path to the written file */
102
+ path: string;
103
+ /** Whether the write was successful */
104
+ success: boolean;
105
+ }
106
+ /**
107
+ * Result of a file edit operation.
108
+ */
109
+ export interface EditResult {
110
+ /** Number of bytes written */
111
+ bytesWritten: number;
112
+ /** Absolute path to the edited file */
113
+ path: string;
114
+ /** Number of replacements made */
115
+ replacements: number;
116
+ /** Whether the edit was successful */
117
+ success: boolean;
118
+ }
119
+ /**
120
+ * Metadata about a file.
121
+ */
122
+ export interface FileMetadata {
123
+ /** Whether this is a directory */
124
+ isDirectory: boolean;
125
+ /** Last modified date */
126
+ modified: Date;
127
+ /** Absolute path to the file */
128
+ path: string;
129
+ /** File size in bytes */
130
+ size: number;
131
+ }
132
+ /**
133
+ * Result of a glob file discovery operation.
134
+ */
135
+ export interface GlobResult {
136
+ /** Array of matching files with metadata */
137
+ files: FileMetadata[];
138
+ /** Number of files ignored due to .gitignore rules */
139
+ ignoredCount: number;
140
+ /** Human-readable message describing the results */
141
+ message?: string;
142
+ /** Total number of files found (before truncation) */
143
+ totalFound: number;
144
+ /** Whether results were truncated due to maxResults limit */
145
+ truncated: boolean;
146
+ }
147
+ /**
148
+ * A single search match with context.
149
+ */
150
+ export interface SearchMatch {
151
+ /** Context lines before and after the match */
152
+ context?: {
153
+ /** Lines after the match */
154
+ after: string[];
155
+ /** Lines before the match */
156
+ before: string[];
157
+ };
158
+ /** File path where match was found */
159
+ file: string;
160
+ /** Matching line content */
161
+ line: string;
162
+ /** Line number (1-based) */
163
+ lineNumber: number;
164
+ }
165
+ /**
166
+ * Result of a content search operation.
167
+ */
168
+ export interface SearchResult {
169
+ /** Number of files searched */
170
+ filesSearched: number;
171
+ /** Array of matches */
172
+ matches: SearchMatch[];
173
+ /** Total number of matches found */
174
+ totalMatches: number;
175
+ /** Whether results were truncated due to maxResults limit */
176
+ truncated: boolean;
177
+ }
178
+ /**
179
+ * Edit operation definition.
180
+ */
181
+ export interface EditOperation {
182
+ /** String to replace with */
183
+ newString: string;
184
+ /** String to search for */
185
+ oldString: string;
186
+ /** Replace all occurrences (default: false, requires unique match) */
187
+ replaceAll?: boolean;
188
+ }
189
+ /**
190
+ * Result of path validation.
191
+ * Uses discriminated union for type safety.
192
+ */
193
+ export type ValidationResult = {
194
+ /** Error message explaining why path is invalid */
195
+ error: string;
196
+ /** Path is invalid */
197
+ valid: false;
198
+ } | {
199
+ /** Normalized absolute path */
200
+ normalizedPath: string;
201
+ /** Path is valid */
202
+ valid: true;
203
+ };