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,53 @@
1
+ import type { SessionMetadata } from '../../domain/cipher/storage/history-types.js';
2
+ import type { InternalMessage } from '../cipher/message-types.js';
3
+ /**
4
+ * Interface for session history persistence.
5
+ *
6
+ * Implementations can use different storage backends (blob storage, database, etc.)
7
+ * to persist and restore conversation history across sessions.
8
+ */
9
+ export interface IHistoryStorage {
10
+ /**
11
+ * Delete all history for a specific session.
12
+ *
13
+ * @param sessionId - Unique session identifier
14
+ * @returns Promise that resolves when history is deleted
15
+ */
16
+ deleteHistory(sessionId: string): Promise<void>;
17
+ /**
18
+ * Check if history exists for a specific session.
19
+ *
20
+ * @param sessionId - Unique session identifier
21
+ * @returns Promise that resolves to true if history exists
22
+ */
23
+ exists(sessionId: string): Promise<boolean>;
24
+ /**
25
+ * Get metadata for a specific session without loading full history.
26
+ *
27
+ * @param sessionId - Unique session identifier
28
+ * @returns Promise that resolves to session metadata or undefined if not found
29
+ */
30
+ getSessionMetadata(sessionId: string): Promise<SessionMetadata | undefined>;
31
+ /**
32
+ * List all session IDs that have persisted history.
33
+ *
34
+ * @returns Promise that resolves to array of session IDs
35
+ */
36
+ listSessions(): Promise<string[]>;
37
+ /**
38
+ * Load conversation history for a specific session.
39
+ *
40
+ * @param sessionId - Unique session identifier
41
+ * @returns Promise that resolves to array of messages, or undefined if session not found
42
+ */
43
+ loadHistory(sessionId: string): Promise<InternalMessage[] | undefined>;
44
+ /**
45
+ * Save conversation history for a specific session.
46
+ * Overwrites any existing history for the session.
47
+ *
48
+ * @param sessionId - Unique session identifier
49
+ * @param messages - Array of messages to persist
50
+ * @returns Promise that resolves when history is saved
51
+ */
52
+ saveHistory(sessionId: string, messages: InternalMessage[]): Promise<void>;
53
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ export type LlmGenerateParams = {
2
+ maxTokens?: number;
3
+ model?: string;
4
+ prompt: string;
5
+ temperature?: number;
6
+ };
7
+ export interface ILlmProvider {
8
+ /**
9
+ * Generate a response from the LLM
10
+ * @param params - Generation parameters including prompt and optional model settings
11
+ * @returns The generated text response
12
+ */
13
+ generate: (params: LlmGenerateParams) => Promise<string>;
14
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,62 @@
1
+ import type { ContextManager, FileData, ImageData } from '../../../infra/cipher/llm/context/context-manager.js';
2
+ import type { LLMServiceConfig } from '../../../infra/cipher/llm/internal-llm-service.js';
3
+ import type { ToolSet } from '../../domain/cipher/tools/types.js';
4
+ import type { ExecutionContext } from './i-cipher-agent.js';
5
+ /**
6
+ * LLM Service interface.
7
+ *
8
+ * Defines the contract for LLM service implementations.
9
+ * Services handle the agentic loop, tool calling, and context management.
10
+ *
11
+ * Based on dexto's ILLMService pattern.
12
+ */
13
+ export interface ILLMService {
14
+ /**
15
+ * Complete a task with agentic tool calling support.
16
+ *
17
+ * Main entry point for executing user requests with tool support.
18
+ * The service handles:
19
+ * - Adding user message to context
20
+ * - Agentic loop (LLM → tool calls → LLM)
21
+ * - Returning final response
22
+ *
23
+ * @param textInput - User input text
24
+ * @param sessionId - Session ID for tracking the conversation
25
+ * @param options - Execution options
26
+ * @param options.signal - Optional abort signal for cancellation
27
+ * @param options.imageData - Optional image data
28
+ * @param options.fileData - Optional file data
29
+ * @param options.stream - Whether to stream the response (optional)
30
+ * @param options.executionContext - Optional execution context (for autonomous mode, etc.)
31
+ * @param options.mode - Optional mode for system prompt ('autonomous' enables autonomous mode)
32
+ * @returns Final assistant response
33
+ */
34
+ completeTask(textInput: string, sessionId: string, options?: {
35
+ executionContext?: ExecutionContext;
36
+ fileData?: FileData;
37
+ imageData?: ImageData;
38
+ mode?: 'autonomous' | 'default' | 'query';
39
+ signal?: AbortSignal;
40
+ stream?: boolean;
41
+ }): Promise<string>;
42
+ /**
43
+ * Get all available tools.
44
+ *
45
+ * @returns Tool set with JSON Schema definitions
46
+ */
47
+ getAllTools(): Promise<ToolSet>;
48
+ /**
49
+ * Get service configuration.
50
+ *
51
+ * @returns Service configuration including model, provider, token limits
52
+ */
53
+ getConfig(): LLMServiceConfig;
54
+ /**
55
+ * Get the context manager instance.
56
+ *
57
+ * Allows access to conversation history and context management.
58
+ *
59
+ * @returns Context manager instance
60
+ */
61
+ getContextManager(): ContextManager<unknown>;
62
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Log level enumeration
3
+ */
4
+ export declare enum LogLevel {
5
+ DEBUG = "debug",
6
+ ERROR = "error",
7
+ INFO = "info",
8
+ WARN = "warn"
9
+ }
10
+ /**
11
+ * Logger interface for Clean Architecture compliance.
12
+ *
13
+ * This interface defines the contract for logging in the application.
14
+ * Domain and infrastructure layers should depend on this interface,
15
+ * not on concrete logging implementations.
16
+ *
17
+ * Design principles:
18
+ * - No dependencies on external libraries (console, winston, etc.)
19
+ * - Simple, focused API for common logging needs
20
+ * - Supports structured logging with context objects
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * class MyService {
25
+ * constructor(private readonly logger: ILogger) {}
26
+ *
27
+ * async doWork(): Promise<void> {
28
+ * this.logger.info('Starting work', { taskId: '123' });
29
+ * try {
30
+ * // ... work ...
31
+ * this.logger.debug('Work completed', { duration: 100 });
32
+ * } catch (error) {
33
+ * this.logger.error('Work failed', { error });
34
+ * }
35
+ * }
36
+ * }
37
+ * ```
38
+ */
39
+ export interface ILogger {
40
+ /**
41
+ * Log a debug message (verbose, for development).
42
+ *
43
+ * @param message - Human-readable message
44
+ * @param context - Optional structured context data
45
+ */
46
+ debug(message: string, context?: Record<string, unknown>): void;
47
+ /**
48
+ * Log an error message (for failures and exceptions).
49
+ *
50
+ * @param message - Human-readable error message
51
+ * @param context - Optional structured context data (e.g., error object, stack trace)
52
+ */
53
+ error(message: string, context?: Record<string, unknown>): void;
54
+ /**
55
+ * Log an info message (general informational).
56
+ *
57
+ * @param message - Human-readable message
58
+ * @param context - Optional structured context data
59
+ */
60
+ info(message: string, context?: Record<string, unknown>): void;
61
+ /**
62
+ * Log a warning message (potential issues).
63
+ *
64
+ * @param message - Human-readable warning message
65
+ * @param context - Optional structured context data
66
+ */
67
+ warn(message: string, context?: Record<string, unknown>): void;
68
+ }
69
+ /**
70
+ * No-op logger implementation that discards all log messages.
71
+ * Useful for testing or when logging is disabled.
72
+ */
73
+ export declare class NoOpLogger implements ILogger {
74
+ debug(_message: string, _context?: Record<string, unknown>): void;
75
+ error(_message: string, _context?: Record<string, unknown>): void;
76
+ info(_message: string, _context?: Record<string, unknown>): void;
77
+ warn(_message: string, _context?: Record<string, unknown>): void;
78
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Log level enumeration
3
+ */
4
+ export var LogLevel;
5
+ (function (LogLevel) {
6
+ LogLevel["DEBUG"] = "debug";
7
+ LogLevel["ERROR"] = "error";
8
+ LogLevel["INFO"] = "info";
9
+ LogLevel["WARN"] = "warn";
10
+ })(LogLevel || (LogLevel = {}));
11
+ /**
12
+ * No-op logger implementation that discards all log messages.
13
+ * Useful for testing or when logging is disabled.
14
+ */
15
+ export class NoOpLogger {
16
+ debug(_message, _context) {
17
+ // No-op
18
+ }
19
+ error(_message, _context) {
20
+ // No-op
21
+ }
22
+ info(_message, _context) {
23
+ // No-op
24
+ }
25
+ warn(_message, _context) {
26
+ // No-op
27
+ }
28
+ }
@@ -0,0 +1,44 @@
1
+ import type { InternalMessage } from './message-types.js';
2
+ /**
3
+ * Interface for converting internal message format to LLM provider-specific formats.
4
+ * Each LLM provider requires a different message structure, and the formatter's job
5
+ * is to handle these conversions while maintaining a consistent internal representation.
6
+ *
7
+ * @template TProviderMessage The provider-specific message type (e.g., Content for Gemini)
8
+ */
9
+ export interface IMessageFormatter<TProviderMessage> {
10
+ /**
11
+ * Formats the internal message history for a specific LLM provider API.
12
+ * Transforms our standardized internal message format into the specific structure
13
+ * required by the target LLM API.
14
+ *
15
+ * @param history The raw internal message history (read-only to prevent modifications)
16
+ * @param systemPrompt Optional system prompt to include
17
+ * @returns The message history structured for the target API (provider-specific type)
18
+ */
19
+ format: (history: Readonly<InternalMessage[]>, systemPrompt?: null | string) => TProviderMessage[];
20
+ /**
21
+ * Optional method for handling system prompt separately.
22
+ * Some LLM providers (like Anthropic) don't include the system prompt in the
23
+ * messages array but pass it as a separate parameter.
24
+ *
25
+ * @param systemPrompt The system prompt to format
26
+ * @returns The formatted system prompt or null/undefined if not needed
27
+ */
28
+ formatSystemPrompt?: (systemPrompt: null | string) => null | string | undefined;
29
+ /**
30
+ * Parses raw LLM response into an array of InternalMessage objects.
31
+ * Converts provider-specific response format back to our internal representation.
32
+ *
33
+ * @param response The raw response from the LLM provider
34
+ * @returns Array of internal messages extracted from the response
35
+ */
36
+ parseResponse: (response: unknown) => InternalMessage[];
37
+ /**
38
+ * Optional method for parsing streaming LLM responses into InternalMessage objects.
39
+ *
40
+ * @param response The streaming response from the LLM provider
41
+ * @returns Promise that resolves to an array of InternalMessage objects
42
+ */
43
+ parseStreamResponse?(response: unknown): Promise<InternalMessage[]>;
44
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Policy Engine Interface.
3
+ *
4
+ * Provides rule-based ALLOW/DENY decisions for tool execution.
5
+ * Designed for autonomous execution - no ASK_USER decisions.
6
+ *
7
+ * Based on gemini-cli's policy engine pattern, simplified for autonomous mode.
8
+ */
9
+ /**
10
+ * Policy decision for autonomous execution.
11
+ * Note: No ASK_USER - agent runs autonomously without user confirmation.
12
+ */
13
+ export type PolicyDecision = 'ALLOW' | 'DENY';
14
+ /**
15
+ * A policy rule that determines whether a tool execution should be allowed.
16
+ */
17
+ export interface PolicyRule {
18
+ /**
19
+ * Optional condition function for fine-grained control.
20
+ * Only evaluated if toolPattern matches.
21
+ *
22
+ * @param toolName - The name of the tool being executed
23
+ * @param args - The arguments passed to the tool
24
+ * @returns True if this rule should apply, false to skip to next rule
25
+ */
26
+ condition?: (toolName: string, args: Record<string, unknown>) => boolean;
27
+ /**
28
+ * The decision to return if this rule matches.
29
+ */
30
+ decision: PolicyDecision;
31
+ /**
32
+ * Unique name for this rule (used for removal/debugging).
33
+ */
34
+ name: string;
35
+ /**
36
+ * Optional human-readable reason for this rule.
37
+ * Useful for logging and debugging.
38
+ */
39
+ reason?: string;
40
+ /**
41
+ * Tool name pattern to match.
42
+ * - String: exact match or '*' for all tools
43
+ * - RegExp: pattern matching for tool names
44
+ */
45
+ toolPattern: RegExp | string;
46
+ }
47
+ /**
48
+ * Result of evaluating a tool execution against policy rules.
49
+ */
50
+ export interface PolicyEvaluationResult {
51
+ /**
52
+ * The policy decision (ALLOW or DENY).
53
+ */
54
+ decision: PolicyDecision;
55
+ /**
56
+ * Human-readable reason for the decision.
57
+ */
58
+ reason?: string;
59
+ /**
60
+ * The rule that matched (if any).
61
+ * Undefined if using default policy.
62
+ */
63
+ rule?: PolicyRule;
64
+ }
65
+ /**
66
+ * Interface for the policy engine.
67
+ *
68
+ * The policy engine evaluates tool execution requests against a set of rules
69
+ * to determine whether execution should be allowed or denied.
70
+ *
71
+ * Rules are evaluated in order - first matching rule wins.
72
+ */
73
+ export interface IPolicyEngine {
74
+ /**
75
+ * Add a policy rule.
76
+ * Rules are evaluated in the order they are added.
77
+ *
78
+ * @param rule - The policy rule to add
79
+ */
80
+ addRule(rule: PolicyRule): void;
81
+ /**
82
+ * Evaluate a tool execution request against policy rules.
83
+ *
84
+ * @param toolName - Name of the tool to execute
85
+ * @param args - Arguments for the tool
86
+ * @returns Policy evaluation result with decision and reason
87
+ */
88
+ evaluate(toolName: string, args: Record<string, unknown>): PolicyEvaluationResult;
89
+ /**
90
+ * Get all registered policy rules.
91
+ * Useful for debugging and introspection.
92
+ *
93
+ * @returns Read-only array of policy rules
94
+ */
95
+ getRules(): readonly PolicyRule[];
96
+ /**
97
+ * Remove a policy rule by name.
98
+ *
99
+ * @param name - The name of the rule to remove
100
+ */
101
+ removeRule(name: string): void;
102
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Policy Engine Interface.
3
+ *
4
+ * Provides rule-based ALLOW/DENY decisions for tool execution.
5
+ * Designed for autonomous execution - no ASK_USER decisions.
6
+ *
7
+ * Based on gemini-cli's policy engine pattern, simplified for autonomous mode.
8
+ */
9
+ export {};
@@ -0,0 +1,65 @@
1
+ import type { ExecuteOptions, ProcessConfig, ProcessHandle, ProcessInfo, ProcessOutput, ProcessResult } from '../../domain/cipher/process/types.js';
2
+ /**
3
+ * Process service interface.
4
+ *
5
+ * Provides secure command execution with foreground/background support,
6
+ * security validation, and resource management.
7
+ */
8
+ export interface IProcessService {
9
+ /**
10
+ * Clean up completed background processes.
11
+ *
12
+ * Removes processes that have been completed for more than 1 hour.
13
+ */
14
+ cleanup(): Promise<void>;
15
+ /**
16
+ * Execute a shell command.
17
+ *
18
+ * Validates command security, handles approval if needed, and executes
19
+ * either in foreground (waiting for completion) or background (returns immediately).
20
+ *
21
+ * @param command - Shell command to execute
22
+ * @param options - Execution options (timeout, cwd, background, etc.)
23
+ * @returns Process result (foreground) or process handle (background)
24
+ * @throws ProcessError if validation fails, approval denied, or execution fails
25
+ */
26
+ executeCommand(command: string, options?: ExecuteOptions): Promise<ProcessHandle | ProcessResult>;
27
+ /**
28
+ * Get the current process configuration.
29
+ *
30
+ * @returns Readonly configuration object
31
+ */
32
+ getConfig(): Readonly<ProcessConfig>;
33
+ /**
34
+ * Get output from a background process.
35
+ *
36
+ * Retrieves new output since last read and clears the buffer (destructive read).
37
+ *
38
+ * @param processId - Unique process identifier
39
+ * @returns Process output with status and exit code (if completed)
40
+ * @throws ProcessError if process not found
41
+ */
42
+ getProcessOutput(processId: string): Promise<ProcessOutput>;
43
+ /**
44
+ * Initialize the process service.
45
+ *
46
+ * Must be called before executing commands.
47
+ * Performs cleanup of any stale processes from previous runs.
48
+ */
49
+ initialize(): Promise<void>;
50
+ /**
51
+ * Terminate a background process.
52
+ *
53
+ * Sends SIGTERM, waits 5 seconds, then escalates to SIGKILL if still running.
54
+ *
55
+ * @param processId - Unique process identifier
56
+ * @throws ProcessError if process not found or kill fails
57
+ */
58
+ killProcess(processId: string): Promise<void>;
59
+ /**
60
+ * List all background processes.
61
+ *
62
+ * @returns Array of process information (status, timestamps, etc.)
63
+ */
64
+ listProcesses(): Promise<ProcessInfo[]>;
65
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,25 @@
1
+ import type { SystemPromptContext } from '../../domain/cipher/system-prompt/types.js';
2
+ /**
3
+ * Interface for system prompt contributors.
4
+ * Contributors are responsible for generating parts of the system prompt
5
+ * that will be sent to the LLM. Each contributor has a priority that
6
+ * determines the order in which its content appears in the final prompt.
7
+ */
8
+ export interface ISystemPromptContributor {
9
+ /**
10
+ * Generate the content for this contributor.
11
+ * @param context - Runtime context containing dependencies and configuration
12
+ * @returns The generated content string
13
+ */
14
+ getContent(context: SystemPromptContext): Promise<string>;
15
+ /**
16
+ * Unique identifier for this contributor
17
+ */
18
+ id: string;
19
+ /**
20
+ * Priority for ordering contributors. Lower numbers = higher priority.
21
+ * Contributors are executed in priority order, and their content is
22
+ * concatenated in that order.
23
+ */
24
+ priority: number;
25
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Interface for tokenizing text according to LLM provider-specific rules.
3
+ * Different LLM providers use different tokenization algorithms, and this interface
4
+ * provides a unified way to count tokens across providers.
5
+ */
6
+ export interface ITokenizer {
7
+ /**
8
+ * Counts the number of tokens in the provided text according to
9
+ * the specific LLM provider's tokenization rules.
10
+ *
11
+ * @param text - Text content to count tokens for
12
+ * @returns Number of tokens in the text
13
+ */
14
+ countTokens: (text: string) => number;
15
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,64 @@
1
+ import type { ToolMarker } from '../../../infra/cipher/tools/tool-markers.js';
2
+ import type { ToolSet } from '../../domain/cipher/tools/types.js';
3
+ /**
4
+ * Interface for tool provider.
5
+ * Manages tool registration, validation, and execution.
6
+ */
7
+ export interface IToolProvider {
8
+ /**
9
+ * Execute a tool with the given arguments.
10
+ *
11
+ * @param toolName - Name of the tool to execute
12
+ * @param args - Tool arguments (will be validated against schema)
13
+ * @param sessionId - Optional session ID for context
14
+ * @returns Tool execution result
15
+ * @throws ToolNotFoundError if tool doesn't exist
16
+ * @throws ToolValidationError if input validation fails
17
+ * @throws ToolExecutionError if execution fails
18
+ */
19
+ executeTool(toolName: string, args: Record<string, unknown>, sessionId?: string): Promise<unknown>;
20
+ /**
21
+ * Get all registered tools in JSON Schema format.
22
+ * Used to expose tools to the LLM.
23
+ *
24
+ * @returns Tool set with JSON Schema definitions
25
+ */
26
+ getAllTools(): ToolSet;
27
+ /**
28
+ * Get all available tool markers from registered tools.
29
+ *
30
+ * @returns Set of tool marker strings
31
+ */
32
+ getAvailableMarkers(): Set<string>;
33
+ /**
34
+ * Get the count of registered tools.
35
+ *
36
+ * @returns Number of registered tools
37
+ */
38
+ getToolCount(): number;
39
+ /**
40
+ * Get names of all registered tools.
41
+ *
42
+ * @returns Array of tool names
43
+ */
44
+ getToolNames(): string[];
45
+ /**
46
+ * Get tool names that have a specific marker.
47
+ *
48
+ * @param marker - The tool marker to filter by
49
+ * @returns Array of tool names with the specified marker
50
+ */
51
+ getToolsByMarker(marker: ToolMarker): string[];
52
+ /**
53
+ * Check if a tool exists.
54
+ *
55
+ * @param toolName - Name of the tool
56
+ * @returns True if the tool exists
57
+ */
58
+ hasTool(toolName: string): boolean;
59
+ /**
60
+ * Initialize the tool provider.
61
+ * Registers all available tools based on available services.
62
+ */
63
+ initialize(): Promise<void>;
64
+ }
@@ -0,0 +1 @@
1
+ export {};