byterover-cli 0.4.1 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (474) hide show
  1. package/README.md +1 -9
  2. package/dist/commands/curate.d.ts +1 -3
  3. package/dist/commands/curate.js +14 -51
  4. package/dist/commands/main.d.ts +8 -0
  5. package/dist/commands/main.js +29 -8
  6. package/dist/commands/query.d.ts +1 -3
  7. package/dist/commands/query.js +8 -35
  8. package/dist/config/context-tree-domains.d.ts +5 -0
  9. package/dist/config/context-tree-domains.js +6 -1
  10. package/dist/config/environment.js +9 -9
  11. package/dist/constants.d.ts +14 -0
  12. package/dist/constants.js +18 -0
  13. package/dist/core/domain/cipher/agent/agent-info.d.ts +199 -0
  14. package/dist/core/domain/cipher/agent/agent-info.js +143 -0
  15. package/dist/core/domain/cipher/agent/agent-registry.d.ts +96 -0
  16. package/dist/core/domain/cipher/agent/agent-registry.js +254 -0
  17. package/dist/core/domain/cipher/agent/index.d.ts +4 -1
  18. package/dist/core/domain/cipher/agent/index.js +7 -1
  19. package/dist/core/domain/cipher/agent-events/types.d.ts +355 -2
  20. package/dist/core/domain/cipher/agent-events/types.js +11 -0
  21. package/dist/core/domain/cipher/errors/error-normalizer.d.ts +156 -0
  22. package/dist/core/domain/cipher/errors/error-normalizer.js +379 -0
  23. package/dist/core/domain/cipher/errors/file-system-error.d.ts +2 -1
  24. package/dist/core/domain/cipher/errors/file-system-error.js +3 -2
  25. package/dist/core/domain/cipher/errors/system-prompt-error-codes.d.ts +79 -0
  26. package/dist/core/domain/cipher/errors/system-prompt-error-codes.js +80 -0
  27. package/dist/core/domain/cipher/errors/system-prompt-error.d.ts +114 -0
  28. package/dist/core/domain/cipher/errors/system-prompt-error.js +144 -0
  29. package/dist/core/domain/cipher/file-system/types.d.ts +57 -0
  30. package/dist/core/domain/cipher/llm/error-codes.d.ts +51 -0
  31. package/dist/core/domain/cipher/llm/error-codes.js +51 -0
  32. package/dist/core/domain/cipher/llm/index.d.ts +9 -0
  33. package/dist/core/domain/cipher/llm/index.js +13 -0
  34. package/dist/core/domain/cipher/llm/registry.d.ts +113 -0
  35. package/dist/core/domain/cipher/llm/registry.js +244 -0
  36. package/dist/core/domain/cipher/llm/schemas.d.ts +155 -0
  37. package/dist/core/domain/cipher/llm/schemas.js +151 -0
  38. package/dist/core/domain/cipher/llm/types.d.ts +121 -0
  39. package/dist/core/domain/cipher/llm/types.js +60 -0
  40. package/dist/core/domain/cipher/storage/message-storage-types.d.ts +114 -5
  41. package/dist/core/domain/cipher/streaming/types.d.ts +119 -0
  42. package/dist/core/domain/cipher/streaming/types.js +16 -0
  43. package/dist/core/domain/cipher/system-prompt/types.d.ts +44 -0
  44. package/dist/core/domain/cipher/todos/types.d.ts +34 -0
  45. package/dist/core/domain/cipher/tools/constants.d.ts +5 -2
  46. package/dist/core/domain/cipher/tools/constants.js +5 -2
  47. package/dist/core/domain/cipher/tools/types.d.ts +31 -0
  48. package/dist/core/domain/errors/connection-error.d.ts +33 -0
  49. package/dist/core/domain/errors/connection-error.js +54 -0
  50. package/dist/core/domain/errors/core-process-error.d.ts +27 -0
  51. package/dist/core/domain/errors/core-process-error.js +43 -0
  52. package/dist/core/domain/errors/task-error.d.ts +64 -0
  53. package/dist/core/domain/errors/task-error.js +116 -0
  54. package/dist/core/domain/errors/transport-error.d.ts +72 -0
  55. package/dist/core/domain/errors/transport-error.js +114 -0
  56. package/dist/core/domain/instance/index.d.ts +1 -0
  57. package/dist/core/domain/instance/index.js +1 -0
  58. package/dist/core/domain/instance/types.d.ts +57 -0
  59. package/dist/core/domain/instance/types.js +72 -0
  60. package/dist/core/domain/knowledge/directory-manager.d.ts +16 -0
  61. package/dist/core/domain/knowledge/directory-manager.js +31 -0
  62. package/dist/core/domain/transport/index.d.ts +2 -0
  63. package/dist/core/domain/transport/index.js +2 -0
  64. package/dist/core/domain/transport/schemas.d.ts +1149 -0
  65. package/dist/core/domain/transport/schemas.js +554 -0
  66. package/dist/core/domain/transport/types.d.ts +67 -0
  67. package/dist/core/domain/transport/types.js +7 -0
  68. package/dist/core/interfaces/cipher/cipher-services.d.ts +15 -3
  69. package/dist/core/interfaces/cipher/i-chat-session.d.ts +47 -5
  70. package/dist/core/interfaces/cipher/i-cipher-agent.d.ts +39 -4
  71. package/dist/core/interfaces/cipher/i-content-generator.d.ts +3 -5
  72. package/dist/core/interfaces/cipher/i-file-system.d.ts +12 -1
  73. package/dist/core/interfaces/cipher/i-llm-service.d.ts +4 -5
  74. package/dist/core/interfaces/cipher/i-todo-storage.d.ts +24 -0
  75. package/dist/core/interfaces/cipher/i-todo-storage.js +1 -0
  76. package/dist/core/interfaces/cipher/i-tool-plugin.d.ts +90 -0
  77. package/dist/core/interfaces/cipher/i-tool-plugin.js +1 -0
  78. package/dist/core/interfaces/cipher/i-tool-provider.d.ts +3 -2
  79. package/dist/core/interfaces/cipher/i-tool-scheduler.d.ts +4 -0
  80. package/dist/core/interfaces/cipher/index.d.ts +35 -0
  81. package/dist/core/interfaces/cipher/index.js +11 -0
  82. package/dist/core/interfaces/cipher/message-factory.d.ts +155 -0
  83. package/dist/core/interfaces/cipher/message-factory.js +252 -0
  84. package/dist/core/interfaces/cipher/message-type-guards.d.ts +139 -0
  85. package/dist/core/interfaces/cipher/message-type-guards.js +173 -0
  86. package/dist/core/interfaces/cipher/message-types.d.ts +279 -5
  87. package/dist/core/interfaces/cipher/message-types.js +6 -0
  88. package/dist/core/interfaces/cipher/sanitization-types.d.ts +147 -0
  89. package/dist/core/interfaces/cipher/sanitization-types.js +46 -0
  90. package/dist/core/interfaces/executor/i-curate-executor.d.ts +34 -0
  91. package/dist/core/interfaces/executor/i-curate-executor.js +1 -0
  92. package/dist/core/interfaces/executor/i-query-executor.d.ts +32 -0
  93. package/dist/core/interfaces/executor/i-query-executor.js +1 -0
  94. package/dist/core/interfaces/executor/index.d.ts +2 -0
  95. package/dist/core/interfaces/executor/index.js +2 -0
  96. package/dist/core/interfaces/instance/i-instance-discovery.d.ts +45 -0
  97. package/dist/core/interfaces/instance/i-instance-discovery.js +1 -0
  98. package/dist/core/interfaces/instance/i-instance-manager.d.ts +58 -0
  99. package/dist/core/interfaces/instance/i-instance-manager.js +1 -0
  100. package/dist/core/interfaces/instance/index.d.ts +2 -0
  101. package/dist/core/interfaces/instance/index.js +2 -0
  102. package/dist/core/interfaces/noop-implementations.d.ts +53 -0
  103. package/dist/core/interfaces/noop-implementations.js +62 -0
  104. package/dist/core/interfaces/transport/i-transport-client.d.ts +97 -0
  105. package/dist/core/interfaces/transport/i-transport-client.js +1 -0
  106. package/dist/core/interfaces/transport/i-transport-server.d.ts +93 -0
  107. package/dist/core/interfaces/transport/i-transport-server.js +1 -0
  108. package/dist/core/interfaces/transport/index.d.ts +2 -0
  109. package/dist/core/interfaces/transport/index.js +2 -0
  110. package/dist/infra/cipher/agent/agent-error-codes.d.ts +16 -0
  111. package/dist/infra/cipher/agent/agent-error-codes.js +17 -0
  112. package/dist/infra/cipher/agent/agent-error.d.ts +54 -0
  113. package/dist/infra/cipher/agent/agent-error.js +79 -0
  114. package/dist/infra/cipher/agent/agent-schemas.d.ts +264 -0
  115. package/dist/infra/cipher/agent/agent-schemas.js +97 -0
  116. package/dist/infra/cipher/agent/agent-state-manager.d.ts +140 -0
  117. package/dist/infra/cipher/agent/agent-state-manager.js +275 -0
  118. package/dist/infra/cipher/agent/base-agent.d.ts +118 -0
  119. package/dist/infra/cipher/agent/base-agent.js +240 -0
  120. package/dist/infra/cipher/agent/cipher-agent.d.ts +165 -0
  121. package/dist/infra/cipher/agent/cipher-agent.js +546 -0
  122. package/dist/infra/cipher/agent/index.d.ts +22 -0
  123. package/dist/infra/cipher/agent/index.js +24 -0
  124. package/dist/infra/cipher/agent/service-initializer.d.ts +79 -0
  125. package/dist/infra/cipher/{agent-service-factory.js → agent/service-initializer.js} +117 -68
  126. package/dist/infra/cipher/agent/types.d.ts +35 -0
  127. package/dist/infra/cipher/agent/types.js +1 -0
  128. package/dist/infra/cipher/blob/blob-reference-resolver.d.ts +107 -0
  129. package/dist/infra/cipher/blob/blob-reference-resolver.js +228 -0
  130. package/dist/infra/cipher/blob/blob-reference-utils.d.ts +117 -0
  131. package/dist/infra/cipher/blob/blob-reference-utils.js +230 -0
  132. package/dist/infra/cipher/consumer/consumer-lock.js +1 -0
  133. package/dist/infra/cipher/consumer/consumer-service.js +1 -0
  134. package/dist/infra/cipher/consumer/execution-consumer.d.ts +6 -1
  135. package/dist/infra/cipher/consumer/execution-consumer.js +54 -16
  136. package/dist/infra/cipher/consumer/index.d.ts +1 -1
  137. package/dist/infra/cipher/consumer/index.js +2 -1
  138. package/dist/infra/cipher/consumer/queue-polling-service.js +1 -0
  139. package/dist/infra/cipher/file-system/binary-utils.d.ts +43 -0
  140. package/dist/infra/cipher/file-system/binary-utils.js +164 -0
  141. package/dist/infra/cipher/file-system/context-tree-file-system-factory.d.ts +9 -0
  142. package/dist/infra/cipher/file-system/context-tree-file-system-factory.js +24 -0
  143. package/dist/infra/cipher/file-system/file-system-service.d.ts +17 -1
  144. package/dist/infra/cipher/file-system/file-system-service.js +327 -36
  145. package/dist/infra/cipher/file-system/path-validator.d.ts +32 -0
  146. package/dist/infra/cipher/file-system/path-validator.js +111 -6
  147. package/dist/infra/cipher/interactive-loop.js +41 -33
  148. package/dist/infra/cipher/llm/capability-cache.d.ts +87 -0
  149. package/dist/infra/cipher/llm/capability-cache.js +125 -0
  150. package/dist/infra/cipher/llm/context/compaction/compaction-service.d.ts +32 -0
  151. package/dist/infra/cipher/llm/context/compaction/compaction-service.js +44 -3
  152. package/dist/infra/cipher/llm/context/compression/enhanced-compaction.d.ts +112 -0
  153. package/dist/infra/cipher/llm/context/compression/enhanced-compaction.js +175 -0
  154. package/dist/infra/cipher/llm/context/compression/filter-compacted.d.ts +83 -0
  155. package/dist/infra/cipher/llm/context/compression/filter-compacted.js +150 -0
  156. package/dist/infra/cipher/llm/context/compression/index.d.ts +5 -0
  157. package/dist/infra/cipher/llm/context/compression/index.js +6 -0
  158. package/dist/infra/cipher/llm/context/compression/reactive-overflow.d.ts +107 -0
  159. package/dist/infra/cipher/llm/context/compression/reactive-overflow.js +272 -0
  160. package/dist/infra/cipher/llm/context/context-manager.d.ts +47 -1
  161. package/dist/infra/cipher/llm/context/context-manager.js +129 -0
  162. package/dist/infra/cipher/llm/context/utils.js +17 -4
  163. package/dist/infra/cipher/llm/generators/byterover-content-generator.js +4 -2
  164. package/dist/infra/cipher/llm/internal-llm-service.d.ts +50 -17
  165. package/dist/infra/cipher/llm/internal-llm-service.js +273 -50
  166. package/dist/infra/cipher/llm/openrouter-llm-service.d.ts +6 -8
  167. package/dist/infra/cipher/llm/openrouter-llm-service.js +14 -16
  168. package/dist/infra/cipher/llm/retry/retry-policy.d.ts +1 -0
  169. package/dist/infra/cipher/llm/retry/retry-policy.js +11 -0
  170. package/dist/infra/cipher/llm/retry/retry-with-backoff.js +3 -2
  171. package/dist/infra/cipher/llm/sanitization/base64-utils.d.ts +102 -0
  172. package/dist/infra/cipher/llm/sanitization/base64-utils.js +182 -0
  173. package/dist/infra/cipher/llm/sanitization/index.d.ts +12 -0
  174. package/dist/infra/cipher/llm/sanitization/index.js +13 -0
  175. package/dist/infra/cipher/llm/sanitization/tool-sanitizer.d.ts +74 -0
  176. package/dist/infra/cipher/llm/sanitization/tool-sanitizer.js +398 -0
  177. package/dist/infra/cipher/llm/stream-processor.d.ts +158 -0
  178. package/dist/infra/cipher/llm/stream-processor.js +276 -0
  179. package/dist/infra/cipher/llm/tokenizers/claude-tokenizer.d.ts +13 -20
  180. package/dist/infra/cipher/llm/tokenizers/claude-tokenizer.js +17 -24
  181. package/dist/infra/cipher/llm/tokenizers/gemini-tokenizer.d.ts +12 -11
  182. package/dist/infra/cipher/llm/tokenizers/gemini-tokenizer.js +16 -15
  183. package/dist/infra/cipher/llm/tokenizers/openrouter-tokenizer.d.ts +15 -7
  184. package/dist/infra/cipher/llm/tokenizers/openrouter-tokenizer.js +22 -10
  185. package/dist/infra/cipher/llm/tool-output-processor.d.ts +51 -0
  186. package/dist/infra/cipher/llm/tool-output-processor.js +139 -0
  187. package/dist/infra/cipher/process/command-validator.d.ts +23 -0
  188. package/dist/infra/cipher/process/command-validator.js +75 -0
  189. package/dist/infra/cipher/process/path-utils.d.ts +66 -0
  190. package/dist/infra/cipher/process/path-utils.js +94 -0
  191. package/dist/infra/cipher/process/process-service.d.ts +32 -0
  192. package/dist/infra/cipher/process/process-service.js +98 -17
  193. package/dist/infra/cipher/session/chat-session.d.ts +56 -7
  194. package/dist/infra/cipher/session/chat-session.js +163 -13
  195. package/dist/infra/cipher/session/index.d.ts +1 -0
  196. package/dist/infra/cipher/session/index.js +2 -0
  197. package/dist/infra/cipher/session/message-queue.d.ts +65 -0
  198. package/dist/infra/cipher/session/message-queue.js +90 -0
  199. package/dist/infra/cipher/session/session-manager.d.ts +106 -5
  200. package/dist/infra/cipher/session/session-manager.js +254 -7
  201. package/dist/infra/cipher/session/session-status.d.ts +137 -0
  202. package/dist/infra/cipher/session/session-status.js +184 -0
  203. package/dist/infra/cipher/session/title-generator.d.ts +8 -0
  204. package/dist/infra/cipher/session/title-generator.js +31 -0
  205. package/dist/infra/cipher/storage/message-storage-service.d.ts +65 -2
  206. package/dist/infra/cipher/storage/message-storage-service.js +300 -54
  207. package/dist/infra/cipher/storage/tool-part-factory.d.ts +116 -0
  208. package/dist/infra/cipher/storage/tool-part-factory.js +197 -0
  209. package/dist/infra/cipher/system-prompt/contributor-schemas.d.ts +516 -0
  210. package/dist/infra/cipher/system-prompt/contributor-schemas.js +85 -0
  211. package/dist/infra/cipher/system-prompt/contributors/agent-prompt-contributor.d.ts +59 -0
  212. package/dist/infra/cipher/system-prompt/contributors/agent-prompt-contributor.js +131 -0
  213. package/dist/infra/cipher/system-prompt/contributors/companion-contributor.d.ts +54 -0
  214. package/dist/infra/cipher/system-prompt/contributors/companion-contributor.js +107 -0
  215. package/dist/infra/cipher/system-prompt/contributors/context-tree-structure-contributor.d.ts +68 -0
  216. package/dist/infra/cipher/system-prompt/contributors/context-tree-structure-contributor.js +179 -0
  217. package/dist/infra/cipher/system-prompt/contributors/datetime-contributor.d.ts +25 -0
  218. package/dist/infra/cipher/system-prompt/contributors/datetime-contributor.js +29 -0
  219. package/dist/infra/cipher/system-prompt/contributors/environment-contributor.d.ts +25 -0
  220. package/dist/infra/cipher/system-prompt/contributors/environment-contributor.js +54 -0
  221. package/dist/infra/cipher/system-prompt/contributors/file-contributor.d.ts +60 -0
  222. package/dist/infra/cipher/system-prompt/contributors/file-contributor.js +128 -0
  223. package/dist/infra/cipher/system-prompt/contributors/index.d.ts +13 -0
  224. package/dist/infra/cipher/system-prompt/contributors/index.js +8 -0
  225. package/dist/infra/cipher/system-prompt/contributors/memory-contributor.d.ts +40 -0
  226. package/dist/infra/cipher/system-prompt/contributors/memory-contributor.js +56 -0
  227. package/dist/infra/cipher/system-prompt/contributors/static-contributor.d.ts +26 -0
  228. package/dist/infra/cipher/system-prompt/contributors/static-contributor.js +31 -0
  229. package/dist/infra/cipher/system-prompt/environment-context-builder.d.ts +112 -0
  230. package/dist/infra/cipher/system-prompt/environment-context-builder.js +256 -0
  231. package/dist/infra/cipher/system-prompt/prompt-cache.d.ts +102 -0
  232. package/dist/infra/cipher/system-prompt/prompt-cache.js +156 -0
  233. package/dist/infra/cipher/system-prompt/schemas.d.ts +151 -0
  234. package/dist/infra/cipher/system-prompt/schemas.js +94 -0
  235. package/dist/infra/cipher/system-prompt/system-prompt-manager.d.ts +136 -0
  236. package/dist/infra/cipher/system-prompt/system-prompt-manager.js +307 -0
  237. package/dist/infra/cipher/todos/todo-storage-service.d.ts +26 -0
  238. package/dist/infra/cipher/todos/todo-storage-service.js +28 -0
  239. package/dist/infra/cipher/tools/core-tool-scheduler.js +5 -1
  240. package/dist/infra/cipher/tools/default-policy-rules.js +1 -1
  241. package/dist/infra/cipher/tools/implementations/bash-exec-tool.d.ts +1 -0
  242. package/dist/infra/cipher/tools/implementations/bash-exec-tool.js +27 -10
  243. package/dist/infra/cipher/tools/implementations/bash-output-tool.js +1 -5
  244. package/dist/infra/cipher/tools/implementations/batch-tool.d.ts +12 -0
  245. package/dist/infra/cipher/tools/implementations/batch-tool.js +142 -0
  246. package/dist/infra/cipher/tools/implementations/curate-tool.js +195 -68
  247. package/dist/infra/cipher/tools/implementations/list-directory-tool.d.ts +12 -0
  248. package/dist/infra/cipher/tools/implementations/list-directory-tool.js +52 -0
  249. package/dist/infra/cipher/tools/implementations/read-file-tool.d.ts +8 -1
  250. package/dist/infra/cipher/tools/implementations/read-file-tool.js +17 -7
  251. package/dist/infra/cipher/tools/implementations/read-todos-tool.d.ts +11 -0
  252. package/dist/infra/cipher/tools/implementations/read-todos-tool.js +39 -0
  253. package/dist/infra/cipher/tools/implementations/{detect-domains-tool.d.ts → spec-analyze-tool.d.ts} +1 -1
  254. package/dist/infra/cipher/tools/implementations/{detect-domains-tool.js → spec-analyze-tool.js} +9 -7
  255. package/dist/infra/cipher/tools/implementations/task-tool.d.ts +34 -0
  256. package/dist/infra/cipher/tools/implementations/task-tool.js +207 -0
  257. package/dist/infra/cipher/tools/implementations/write-todos-tool.d.ts +4 -1
  258. package/dist/infra/cipher/tools/implementations/write-todos-tool.js +19 -63
  259. package/dist/infra/cipher/tools/index.d.ts +1 -1
  260. package/dist/infra/cipher/tools/index.js +1 -1
  261. package/dist/infra/cipher/tools/plugins/index.d.ts +3 -0
  262. package/dist/infra/cipher/tools/plugins/index.js +2 -0
  263. package/dist/infra/cipher/tools/plugins/logging-plugin.d.ts +28 -0
  264. package/dist/infra/cipher/tools/plugins/logging-plugin.js +66 -0
  265. package/dist/infra/cipher/tools/plugins/plugin-manager.d.ts +81 -0
  266. package/dist/infra/cipher/tools/plugins/plugin-manager.js +122 -0
  267. package/dist/infra/cipher/tools/streaming/index.d.ts +1 -0
  268. package/dist/infra/cipher/tools/streaming/index.js +1 -0
  269. package/dist/infra/cipher/tools/streaming/metadata-handler.d.ts +31 -0
  270. package/dist/infra/cipher/tools/streaming/metadata-handler.js +39 -0
  271. package/dist/infra/cipher/tools/tool-description-loader.d.ts +57 -0
  272. package/dist/infra/cipher/tools/tool-description-loader.js +108 -0
  273. package/dist/infra/cipher/tools/tool-manager.d.ts +38 -4
  274. package/dist/infra/cipher/tools/tool-manager.js +107 -11
  275. package/dist/infra/cipher/tools/tool-provider-getter.d.ts +6 -0
  276. package/dist/infra/cipher/tools/tool-provider-getter.js +1 -0
  277. package/dist/infra/cipher/tools/tool-provider.d.ts +32 -7
  278. package/dist/infra/cipher/tools/tool-provider.js +81 -25
  279. package/dist/infra/cipher/tools/tool-registry.d.ts +23 -0
  280. package/dist/infra/cipher/tools/tool-registry.js +58 -16
  281. package/dist/infra/context-tree/file-context-tree-snapshot-service.js +10 -4
  282. package/dist/infra/context-tree/file-context-tree-writer-service.d.ts +4 -3
  283. package/dist/infra/context-tree/file-context-tree-writer-service.js +6 -4
  284. package/dist/infra/context-tree/path-utils.d.ts +7 -0
  285. package/dist/infra/context-tree/path-utils.js +7 -0
  286. package/dist/infra/core/executors/curate-executor.d.ts +35 -0
  287. package/dist/infra/core/executors/curate-executor.js +123 -0
  288. package/dist/infra/core/executors/index.d.ts +2 -0
  289. package/dist/infra/core/executors/index.js +2 -0
  290. package/dist/infra/core/executors/query-executor.d.ts +23 -0
  291. package/dist/infra/core/executors/query-executor.js +51 -0
  292. package/dist/infra/core/task-processor.d.ts +81 -0
  293. package/dist/infra/core/task-processor.js +115 -0
  294. package/dist/infra/instance/file-instance-discovery.d.ts +31 -0
  295. package/dist/infra/instance/file-instance-discovery.js +84 -0
  296. package/dist/infra/instance/file-instance-manager.d.ts +46 -0
  297. package/dist/infra/instance/file-instance-manager.js +123 -0
  298. package/dist/infra/instance/index.d.ts +3 -0
  299. package/dist/infra/instance/index.js +3 -0
  300. package/dist/infra/instance/process-utils.d.ts +14 -0
  301. package/dist/infra/instance/process-utils.js +39 -0
  302. package/dist/infra/process/agent-worker.d.ts +20 -0
  303. package/dist/infra/process/agent-worker.js +602 -0
  304. package/dist/infra/process/index.d.ts +12 -0
  305. package/dist/infra/process/index.js +11 -0
  306. package/dist/infra/process/ipc-types.d.ts +55 -0
  307. package/dist/infra/process/ipc-types.js +12 -0
  308. package/dist/infra/process/process-manager.d.ts +154 -0
  309. package/dist/infra/process/process-manager.js +471 -0
  310. package/dist/infra/process/task-queue-manager.d.ts +123 -0
  311. package/dist/infra/process/task-queue-manager.js +226 -0
  312. package/dist/infra/process/transport-handlers.d.ts +124 -0
  313. package/dist/infra/process/transport-handlers.js +348 -0
  314. package/dist/infra/process/transport-worker.d.ts +20 -0
  315. package/dist/infra/process/transport-worker.js +168 -0
  316. package/dist/infra/repl/commands/curate-command.js +0 -5
  317. package/dist/infra/repl/commands/query-command.js +0 -3
  318. package/dist/infra/repl/repl-startup.d.ts +4 -0
  319. package/dist/infra/repl/repl-startup.js +8 -1
  320. package/dist/infra/repl/transport-client-helper.d.ts +9 -0
  321. package/dist/infra/repl/transport-client-helper.js +96 -0
  322. package/dist/infra/transport/index.d.ts +4 -0
  323. package/dist/infra/transport/index.js +4 -0
  324. package/dist/infra/transport/port-utils.d.ts +42 -0
  325. package/dist/infra/transport/port-utils.js +84 -0
  326. package/dist/infra/transport/socket-io-transport-client.d.ts +45 -0
  327. package/dist/infra/transport/socket-io-transport-client.js +270 -0
  328. package/dist/infra/transport/socket-io-transport-server.d.ts +35 -0
  329. package/dist/infra/transport/socket-io-transport-server.js +207 -0
  330. package/dist/infra/transport/transport-client-factory.d.ts +76 -0
  331. package/dist/infra/transport/transport-client-factory.js +168 -0
  332. package/dist/infra/transport/transport-factory.d.ts +33 -0
  333. package/dist/infra/transport/transport-factory.js +59 -0
  334. package/dist/infra/usecase/curate-use-case.d.ts +8 -55
  335. package/dist/infra/usecase/curate-use-case.js +71 -262
  336. package/dist/infra/usecase/init-use-case.js +3 -2
  337. package/dist/infra/usecase/query-use-case.d.ts +18 -45
  338. package/dist/infra/usecase/query-use-case.js +250 -326
  339. package/dist/infra/usecase/status-use-case.js +1 -1
  340. package/dist/resources/prompts/{curate-context-tree-curation.yml → curate.yml} +25 -22
  341. package/dist/resources/prompts/explore.yml +78 -0
  342. package/dist/resources/prompts/plan.yml +114 -0
  343. package/dist/resources/prompts/reflection.yml +1 -1
  344. package/dist/resources/prompts/system-prompt.yml +15 -8
  345. package/dist/resources/prompts/tool-outputs.yml +0 -5
  346. package/dist/resources/tools/bash_exec.txt +98 -0
  347. package/dist/resources/tools/bash_output.txt +40 -0
  348. package/dist/resources/tools/batch.txt +28 -0
  349. package/dist/resources/tools/create_knowledge_topic.txt +23 -0
  350. package/dist/resources/tools/curate.txt +22 -0
  351. package/dist/resources/tools/delete_memory.txt +1 -0
  352. package/dist/resources/tools/detect_domains.txt +11 -0
  353. package/dist/resources/tools/edit_file.txt +1 -0
  354. package/dist/resources/tools/edit_memory.txt +1 -0
  355. package/dist/resources/tools/glob_files.txt +20 -0
  356. package/dist/resources/tools/grep_content.txt +18 -0
  357. package/dist/resources/tools/kill_process.txt +16 -0
  358. package/dist/resources/tools/list_directory.txt +16 -0
  359. package/dist/resources/tools/list_memories.txt +1 -0
  360. package/dist/resources/tools/read_file.txt +31 -0
  361. package/dist/resources/tools/read_memory.txt +1 -0
  362. package/dist/resources/tools/read_todos.txt +17 -0
  363. package/dist/resources/tools/search_history.txt +1 -0
  364. package/dist/resources/tools/task.txt +23 -0
  365. package/dist/resources/tools/write_file.txt +1 -0
  366. package/dist/resources/tools/write_memory.txt +1 -0
  367. package/dist/resources/tools/write_todos.txt +29 -0
  368. package/dist/tui/app.js +9 -13
  369. package/dist/tui/components/command-details.d.ts +14 -0
  370. package/dist/tui/components/command-details.js +35 -0
  371. package/dist/tui/components/execution/execution-changes.d.ts +5 -0
  372. package/dist/tui/components/execution/execution-changes.js +19 -4
  373. package/dist/tui/components/execution/execution-content.d.ts +4 -2
  374. package/dist/tui/components/execution/execution-content.js +26 -13
  375. package/dist/tui/components/execution/execution-input.js +3 -3
  376. package/dist/tui/components/execution/execution-progress.d.ts +2 -2
  377. package/dist/tui/components/execution/execution-progress.js +8 -6
  378. package/dist/tui/components/execution/log-item.d.ts +3 -4
  379. package/dist/tui/components/execution/log-item.js +2 -5
  380. package/dist/tui/components/footer.js +9 -4
  381. package/dist/tui/components/header.d.ts +3 -3
  382. package/dist/tui/components/header.js +5 -3
  383. package/dist/tui/components/index.d.ts +1 -0
  384. package/dist/tui/components/index.js +1 -0
  385. package/dist/tui/components/onboarding/copyable-prompt.d.ts +5 -3
  386. package/dist/tui/components/onboarding/copyable-prompt.js +7 -8
  387. package/dist/tui/components/onboarding/onboarding-flow.js +35 -25
  388. package/dist/tui/components/scrollable-list.js +12 -10
  389. package/dist/tui/components/suggestions.js +39 -41
  390. package/dist/tui/components/tab-bar.d.ts +2 -1
  391. package/dist/tui/components/tab-bar.js +3 -4
  392. package/dist/tui/constants.d.ts +0 -5
  393. package/dist/tui/constants.js +0 -5
  394. package/dist/tui/contexts/auth-context.js +9 -2
  395. package/dist/tui/contexts/{use-commands.js → commands-context.js} +3 -3
  396. package/dist/tui/contexts/index.d.ts +6 -1
  397. package/dist/tui/contexts/index.js +6 -1
  398. package/dist/tui/contexts/onboarding-context.d.ts +1 -1
  399. package/dist/tui/contexts/onboarding-context.js +9 -9
  400. package/dist/tui/contexts/tasks-context.d.ts +84 -0
  401. package/dist/tui/contexts/tasks-context.js +218 -0
  402. package/dist/tui/contexts/transport-context.d.ts +29 -0
  403. package/dist/tui/contexts/transport-context.js +82 -0
  404. package/dist/tui/hooks/index.d.ts +10 -6
  405. package/dist/tui/hooks/index.js +7 -6
  406. package/dist/tui/hooks/use-activity-logs.d.ts +3 -11
  407. package/dist/tui/hooks/use-activity-logs.js +87 -34
  408. package/dist/tui/hooks/use-auth-polling.d.ts +24 -0
  409. package/dist/tui/hooks/use-auth-polling.js +104 -0
  410. package/dist/tui/hooks/use-slash-command-processor.js +0 -1
  411. package/dist/tui/hooks/use-slash-completion.js +1 -1
  412. package/dist/tui/hooks/use-tab-navigation.d.ts +2 -1
  413. package/dist/tui/hooks/use-tab-navigation.js +16 -7
  414. package/dist/tui/hooks/use-terminal-breakpoint.d.ts +21 -0
  415. package/dist/tui/hooks/use-terminal-breakpoint.js +38 -0
  416. package/dist/tui/hooks/use-ui-heights.d.ts +120 -0
  417. package/dist/tui/hooks/use-ui-heights.js +88 -0
  418. package/dist/tui/providers/app-providers.js +2 -6
  419. package/dist/tui/types/commands.d.ts +0 -26
  420. package/dist/tui/types/index.d.ts +1 -1
  421. package/dist/tui/types/ui.d.ts +9 -4
  422. package/dist/tui/utils/line.d.ts +11 -0
  423. package/dist/tui/utils/line.js +16 -0
  424. package/dist/tui/utils/log.d.ts +27 -0
  425. package/dist/tui/utils/log.js +114 -0
  426. package/dist/tui/views/command-view.d.ts +7 -0
  427. package/dist/tui/views/command-view.js +103 -80
  428. package/dist/tui/views/login-view.js +7 -4
  429. package/dist/tui/views/logs-view.d.ts +13 -0
  430. package/dist/tui/views/logs-view.js +27 -52
  431. package/dist/utils/connection-error-handler.d.ts +16 -0
  432. package/dist/utils/connection-error-handler.js +49 -0
  433. package/dist/utils/crash-log.d.ts +14 -0
  434. package/dist/utils/crash-log.js +19 -0
  435. package/dist/utils/file-helpers.d.ts +14 -0
  436. package/dist/utils/file-helpers.js +21 -0
  437. package/dist/utils/global-logs-path.d.ts +11 -0
  438. package/dist/utils/global-logs-path.js +37 -0
  439. package/dist/utils/process-logger.d.ts +53 -0
  440. package/dist/utils/process-logger.js +253 -0
  441. package/dist/utils/sandbox-detector.d.ts +31 -0
  442. package/dist/utils/sandbox-detector.js +122 -0
  443. package/oclif.manifest.json +10 -198
  444. package/package.json +5 -1
  445. package/dist/commands/cipher-agent/run.d.ts +0 -142
  446. package/dist/commands/cipher-agent/run.js +0 -555
  447. package/dist/commands/cipher-agent/set-prompt.d.ts +0 -16
  448. package/dist/commands/cipher-agent/set-prompt.js +0 -58
  449. package/dist/commands/cipher-agent/show-prompt.d.ts +0 -13
  450. package/dist/commands/cipher-agent/show-prompt.js +0 -53
  451. package/dist/commands/foo.d.ts +0 -14
  452. package/dist/commands/foo.js +0 -66
  453. package/dist/infra/cipher/agent-service-factory.d.ts +0 -93
  454. package/dist/infra/cipher/cipher-agent-state-manager.d.ts +0 -63
  455. package/dist/infra/cipher/cipher-agent-state-manager.js +0 -108
  456. package/dist/infra/cipher/cipher-agent.d.ts +0 -182
  457. package/dist/infra/cipher/cipher-agent.js +0 -317
  458. package/dist/infra/cipher/system-prompt/simple-prompt-factory.d.ts +0 -106
  459. package/dist/infra/cipher/system-prompt/simple-prompt-factory.js +0 -297
  460. package/dist/infra/cipher/tools/implementations/find-knowledge-topics-tool.d.ts +0 -7
  461. package/dist/infra/cipher/tools/implementations/find-knowledge-topics-tool.js +0 -424
  462. package/dist/resources/prompts/modes/autonomous.yml +0 -9
  463. package/dist/resources/prompts/query-context-tree-retrieval.yml +0 -48
  464. package/dist/tui/contexts/consumer.d.ts +0 -31
  465. package/dist/tui/contexts/consumer.js +0 -56
  466. package/dist/tui/hooks/use-consumer.d.ts +0 -12
  467. package/dist/tui/hooks/use-consumer.js +0 -50
  468. package/dist/tui/hooks/use-queue-polling.d.ts +0 -31
  469. package/dist/tui/hooks/use-queue-polling.js +0 -90
  470. /package/dist/tui/contexts/{use-commands.d.ts → commands-context.d.ts} +0 -0
  471. /package/dist/tui/contexts/{use-mode.d.ts → mode-context.d.ts} +0 -0
  472. /package/dist/tui/contexts/{use-mode.js → mode-context.js} +0 -0
  473. /package/dist/tui/contexts/{use-theme.d.ts → theme-context.d.ts} +0 -0
  474. /package/dist/tui/contexts/{use-theme.js → theme-context.js} +0 -0
@@ -1,53 +0,0 @@
1
- import { Command } from '@oclif/core';
2
- import { isDevelopment } from '../../config/environment.js';
3
- import { ProjectConfigStore } from '../../infra/config/file-config-store.js';
4
- import { OclifTerminal } from '../../infra/terminal/oclif-terminal.js';
5
- import { getErrorMessage } from '../../utils/error-helpers.js';
6
- export default class CipherAgentShowPrompt extends Command {
7
- static description = 'Show the current CipherAgent system prompt [Development only]';
8
- static examples = ['<%= config.bin %> <%= command.id %>'];
9
- static hidden = !isDevelopment();
10
- terminal = {};
11
- createServices() {
12
- this.terminal = new OclifTerminal(this);
13
- return {
14
- projectConfigStore: new ProjectConfigStore(),
15
- };
16
- }
17
- async run() {
18
- const { projectConfigStore } = this.createServices();
19
- if (!isDevelopment()) {
20
- this.terminal.error('This command is only available in development environment');
21
- return;
22
- }
23
- try {
24
- // Check if config exists
25
- const configExists = await projectConfigStore.exists();
26
- if (!configExists) {
27
- this.terminal.log('No ByteRover config found.');
28
- this.terminal.log('CipherAgent will use the default system prompt.');
29
- return;
30
- }
31
- // Read existing config
32
- const config = await projectConfigStore.read();
33
- if (!config) {
34
- this.terminal.error('Failed to read config.');
35
- return;
36
- }
37
- // Show system prompt
38
- if (config.cipherAgentSystemPrompt) {
39
- this.terminal.log('Current CipherAgent system prompt:');
40
- this.terminal.log('─'.repeat(60));
41
- this.terminal.log(config.cipherAgentSystemPrompt);
42
- this.terminal.log('─'.repeat(60));
43
- }
44
- else {
45
- this.terminal.log('No custom system prompt configured.');
46
- this.terminal.log('CipherAgent is using the default system prompt.');
47
- }
48
- }
49
- catch (error) {
50
- this.terminal.error(`Failed to show system prompt: ${getErrorMessage(error)}`);
51
- }
52
- }
53
- }
@@ -1,14 +0,0 @@
1
- import { Command } from '@oclif/core';
2
- import type { ICodingAgentLogWatcher } from '../core/interfaces/cipher/i-coding-agent-log-watcher.js';
3
- import type { IProjectConfigStore } from '../core/interfaces/i-project-config-store.js';
4
- import type { ITerminal } from '../core/interfaces/i-terminal.js';
5
- export default class Foo extends Command {
6
- static description: string;
7
- static hidden: boolean;
8
- protected terminal: ITerminal;
9
- protected createServices(): Promise<{
10
- codingAgentLogWatcher: ICodingAgentLogWatcher;
11
- projectConfigStore: IProjectConfigStore;
12
- }>;
13
- run(): Promise<void>;
14
- }
@@ -1,66 +0,0 @@
1
- import { Command } from '@oclif/core';
2
- import { isDevelopment } from '../config/environment.js';
3
- import { CodingAgentLogParser } from '../infra/cipher/parsers/coding-agent-log-parser.js';
4
- import { CodingAgentLogWatcher } from '../infra/cipher/watcher/coding-agent-log-watcher.js';
5
- import { ProjectConfigStore } from '../infra/config/file-config-store.js';
6
- import { OclifTerminal } from '../infra/terminal/oclif-terminal.js';
7
- import { FileWatcherService } from '../infra/watcher/file-watcher-service.js';
8
- export default class Foo extends Command {
9
- static description = 'Purely for testing CodingAgentLogWatcher [Development only]';
10
- static hidden = !isDevelopment();
11
- terminal = {};
12
- async createServices() {
13
- this.terminal = new OclifTerminal(this);
14
- const projectConfigStore = new ProjectConfigStore();
15
- const fileWatcherService = new FileWatcherService();
16
- const codingAgentLogParser = new CodingAgentLogParser();
17
- const codingAgentLogWatcher = new CodingAgentLogWatcher(fileWatcherService, codingAgentLogParser);
18
- return {
19
- codingAgentLogWatcher,
20
- projectConfigStore,
21
- };
22
- }
23
- async run() {
24
- const { codingAgentLogWatcher, projectConfigStore } = await this.createServices();
25
- if (!isDevelopment()) {
26
- this.terminal.error('This command is only available in development environment');
27
- return;
28
- }
29
- const projectConfig = await projectConfigStore.read();
30
- if (projectConfig === undefined) {
31
- this.terminal.error('No project config found. Run "brv init" first.');
32
- return;
33
- }
34
- // Defensive checking nill
35
- if (projectConfig.chatLogPath === undefined) {
36
- this.terminal.error('No chat log path configured in project config. Run "brv init" first.');
37
- }
38
- if (projectConfig.ide === undefined) {
39
- this.terminal.error('No coding agent selected. Run "brv init" first.');
40
- }
41
- this.terminal.log(`Watching ${projectConfig.ide} log files...`);
42
- await codingAgentLogWatcher.start({
43
- codingAgentInfo: {
44
- chatLogPath: projectConfig.chatLogPath,
45
- name: projectConfig.ide,
46
- },
47
- onCleanSession: (cleanSession) => new Promise((resolve) => {
48
- this.terminal.log(`New Clean Session from ${cleanSession.type}:`);
49
- this.terminal.log(`Clean Session title: ${cleanSession.title}`);
50
- this.terminal.log('Clean Session messages:');
51
- for (const message of cleanSession.messages) {
52
- this.terminal.log(`${JSON.stringify(message, undefined, 2)}]\n`);
53
- }
54
- this.terminal.log(`Clean Session ID: ${cleanSession.id}`);
55
- this.terminal.log(`Clean Session Metadata: ${JSON.stringify(cleanSession.metadata, undefined, 2)}`);
56
- resolve();
57
- this.terminal.log(`Clean Session timestamp: ${cleanSession.timestamp}`);
58
- this.terminal.log(`Clean Session workspace paths:`);
59
- for (const workspacePath of cleanSession.workspacePaths) {
60
- this.terminal.log(`${workspacePath}`);
61
- }
62
- this.terminal.log('\n\n');
63
- }),
64
- });
65
- }
66
- }
@@ -1,93 +0,0 @@
1
- import type { BlobStorageConfig } from '../../core/domain/cipher/blob/types.js';
2
- import type { FileSystemConfig } from '../../core/domain/cipher/file-system/types.js';
3
- import type { CipherAgentServices, SessionServices } from '../../core/interfaces/cipher/cipher-services.js';
4
- /**
5
- * LLM configuration for CipherAgent
6
- */
7
- export interface CipherLLMConfig {
8
- accessToken: string;
9
- apiBaseUrl: string;
10
- apiKey?: string;
11
- blobStorageConfig?: Partial<BlobStorageConfig>;
12
- fileSystemConfig?: Partial<FileSystemConfig>;
13
- httpReferer?: string;
14
- maxIterations?: number;
15
- maxTokens?: number;
16
- model: string;
17
- openRouterApiKey?: string;
18
- projectId: string;
19
- region?: string;
20
- sessionKey: string;
21
- siteName?: string;
22
- temperature?: number;
23
- topK?: number;
24
- topP?: number;
25
- /**
26
- * Enable granular history storage for new sessions.
27
- * When enabled, new sessions use per-message storage with streaming support.
28
- * Existing sessions continue using blob storage (no migration).
29
- * Default: false (use blob storage for all sessions)
30
- */
31
- useGranularStorage?: boolean;
32
- verbose?: boolean;
33
- }
34
- /**
35
- * HTTP configuration for ByteRover LLM service
36
- */
37
- export interface ByteRoverHttpConfig {
38
- accessToken: string;
39
- apiBaseUrl: string;
40
- projectId: string;
41
- region?: string;
42
- sessionKey: string;
43
- spaceId: string;
44
- teamId: string;
45
- timeout?: number;
46
- }
47
- export type { CipherAgentServices, SessionManagerConfig, SessionServices, } from '../../core/interfaces/cipher/cipher-services.js';
48
- /**
49
- * Creates shared services for CipherAgent.
50
- * These services are singletons shared across all sessions.
51
- *
52
- * Following Dexto's pattern: shared services are created once at agent level,
53
- * while session-specific services (LLM, EventBus) are created per session.
54
- *
55
- * @param llmConfig - LLM configuration
56
- * @returns Initialized shared services
57
- */
58
- export declare function createCipherAgentServices(llmConfig: CipherLLMConfig): Promise<CipherAgentServices>;
59
- /**
60
- * Creates session-specific services for a ChatSession.
61
- *
62
- * Following Dexto's pattern: each session gets its own LLM service and event bus
63
- * for conversation isolation, while using shared services for tools/prompts.
64
- *
65
- * Generator composition order (innermost to outermost):
66
- * 1. Base generator (ByteRoverContentGenerator or OpenRouterContentGenerator)
67
- * 2. RetryableContentGenerator - handles transient errors with backoff
68
- * 3. LoggingContentGenerator - debug logging (if verbose enabled)
69
- *
70
- * @param sessionId - Unique session identifier
71
- * @param sharedServices - Shared services from agent
72
- * @param httpConfig - HTTP configuration
73
- * @param llmConfig - LLM service configuration
74
- * @param llmConfig.openRouterApiKey - Optional OpenRouter API key for OpenRouter service
75
- * @param llmConfig.httpReferer - Optional HTTP Referer for OpenRouter rankings
76
- * @param llmConfig.siteName - Optional site name for OpenRouter rankings
77
- * @param llmConfig.maxIterations - Maximum iterations for agentic loop
78
- * @param llmConfig.maxTokens - Maximum output tokens
79
- * @param llmConfig.model - LLM model identifier
80
- * @param llmConfig.temperature - Temperature for generation
81
- * @param llmConfig.verbose - Enable verbose debug output
82
- * @returns Initialized session services
83
- */
84
- export declare function createSessionServices(sessionId: string, sharedServices: CipherAgentServices, httpConfig: ByteRoverHttpConfig, llmConfig: {
85
- httpReferer?: string;
86
- maxIterations?: number;
87
- maxTokens?: number;
88
- model: string;
89
- openRouterApiKey?: string;
90
- siteName?: string;
91
- temperature?: number;
92
- verbose?: boolean;
93
- }): SessionServices;
@@ -1,63 +0,0 @@
1
- import type { TerminationReason } from '../../core/domain/cipher/agent/agent-state.js';
2
- import type { AgentExecutionState, AgentState } from '../../core/interfaces/cipher/i-cipher-agent.js';
3
- /**
4
- * Manages the runtime state of the CipherAgent.
5
- *
6
- * Enhanced to track execution state, termination reasons, timing,
7
- * and tool metrics following gemini-cli patterns. Maintains backward
8
- * compatibility with legacy fields (executionHistory).
9
- */
10
- export declare class CipherAgentStateManager {
11
- private currentIteration;
12
- private durationMs?;
13
- private endTime?;
14
- private executionHistory;
15
- private executionState;
16
- private startTime?;
17
- private terminationReason?;
18
- private toolCallsExecuted;
19
- /**
20
- * Add an execution record to history (legacy method).
21
- * @param record - Execution record to add
22
- */
23
- addExecutionRecord(record: string): void;
24
- /**
25
- * Mark execution as complete with reason.
26
- * @param reason - Why execution terminated
27
- */
28
- complete(reason: TerminationReason): void;
29
- /**
30
- * Mark execution as errored.
31
- * @param reason - Error termination reason
32
- */
33
- fail(reason: TerminationReason): void;
34
- /**
35
- * Get the current state.
36
- * @returns Current agent state with all enhanced fields
37
- */
38
- getState(): AgentState;
39
- /**
40
- * Increment the iteration counter.
41
- * @returns The new iteration count
42
- */
43
- incrementIteration(): number;
44
- /**
45
- * Increment the tool calls counter.
46
- * @returns The new tool calls count
47
- */
48
- incrementToolCalls(): number;
49
- /**
50
- * Reset the state to initial values.
51
- */
52
- reset(): void;
53
- /**
54
- * Set the current execution state.
55
- * @param state - New execution state
56
- */
57
- setExecutionState(state: AgentExecutionState): void;
58
- /**
59
- * Start execution tracking.
60
- * Sets startTime and transitions to executing state.
61
- */
62
- startExecution(): void;
63
- }
@@ -1,108 +0,0 @@
1
- /**
2
- * Manages the runtime state of the CipherAgent.
3
- *
4
- * Enhanced to track execution state, termination reasons, timing,
5
- * and tool metrics following gemini-cli patterns. Maintains backward
6
- * compatibility with legacy fields (executionHistory).
7
- */
8
- export class CipherAgentStateManager {
9
- currentIteration = 0;
10
- durationMs;
11
- endTime;
12
- executionHistory = [];
13
- executionState = 'idle';
14
- startTime;
15
- terminationReason;
16
- toolCallsExecuted = 0;
17
- /**
18
- * Add an execution record to history (legacy method).
19
- * @param record - Execution record to add
20
- */
21
- addExecutionRecord(record) {
22
- this.executionHistory.push(record);
23
- }
24
- /**
25
- * Mark execution as complete with reason.
26
- * @param reason - Why execution terminated
27
- */
28
- complete(reason) {
29
- this.executionState = 'complete';
30
- this.terminationReason = reason;
31
- this.endTime = new Date();
32
- if (this.startTime) {
33
- this.durationMs = this.endTime.getTime() - this.startTime.getTime();
34
- }
35
- }
36
- /**
37
- * Mark execution as errored.
38
- * @param reason - Error termination reason
39
- */
40
- fail(reason) {
41
- this.executionState = 'error';
42
- this.terminationReason = reason;
43
- this.endTime = new Date();
44
- if (this.startTime) {
45
- this.durationMs = this.endTime.getTime() - this.startTime.getTime();
46
- }
47
- }
48
- /**
49
- * Get the current state.
50
- * @returns Current agent state with all enhanced fields
51
- */
52
- getState() {
53
- return {
54
- currentIteration: this.currentIteration,
55
- durationMs: this.durationMs,
56
- endTime: this.endTime,
57
- executionHistory: [...this.executionHistory],
58
- executionState: this.executionState,
59
- startTime: this.startTime,
60
- terminationReason: this.terminationReason,
61
- toolCallsExecuted: this.toolCallsExecuted,
62
- };
63
- }
64
- /**
65
- * Increment the iteration counter.
66
- * @returns The new iteration count
67
- */
68
- incrementIteration() {
69
- this.currentIteration++;
70
- return this.currentIteration;
71
- }
72
- /**
73
- * Increment the tool calls counter.
74
- * @returns The new tool calls count
75
- */
76
- incrementToolCalls() {
77
- this.toolCallsExecuted++;
78
- return this.toolCallsExecuted;
79
- }
80
- /**
81
- * Reset the state to initial values.
82
- */
83
- reset() {
84
- this.currentIteration = 0;
85
- this.durationMs = undefined;
86
- this.endTime = undefined;
87
- this.executionHistory = [];
88
- this.executionState = 'idle';
89
- this.startTime = undefined;
90
- this.terminationReason = undefined;
91
- this.toolCallsExecuted = 0;
92
- }
93
- /**
94
- * Set the current execution state.
95
- * @param state - New execution state
96
- */
97
- setExecutionState(state) {
98
- this.executionState = state;
99
- }
100
- /**
101
- * Start execution tracking.
102
- * Sets startTime and transitions to executing state.
103
- */
104
- startExecution() {
105
- this.startTime = new Date();
106
- this.executionState = 'executing';
107
- }
108
- }
@@ -1,182 +0,0 @@
1
- import type { BrvConfig } from '../../core/domain/entities/brv-config.js';
2
- import type { IChatSession } from '../../core/interfaces/cipher/i-chat-session.js';
3
- import type { AgentState, ExecutionContext, ICipherAgent } from '../../core/interfaces/cipher/i-cipher-agent.js';
4
- import type { IHistoryStorage } from '../../core/interfaces/cipher/i-history-storage.js';
5
- import type { CipherLLMConfig } from './agent-service-factory.js';
6
- import type { AgentEventBus } from './events/event-emitter.js';
7
- import type { FileSystemService } from './file-system/file-system-service.js';
8
- import type { MemoryManager } from './memory/memory-manager.js';
9
- import type { ProcessService } from './process/process-service.js';
10
- import type { SimplePromptFactory } from './system-prompt/simple-prompt-factory.js';
11
- import type { ToolManager } from './tools/tool-manager.js';
12
- import type { ToolProvider } from './tools/tool-provider.js';
13
- /**
14
- * CipherAgent - Main agent implementation
15
- *
16
- * Following Dexto's pattern: CipherAgent orchestrates sessions and delegates
17
- * execution to ChatSession instances. Each session maintains isolated conversation
18
- * context while sharing global services (tools, prompts, file system, etc.).
19
- *
20
- * Architecture:
21
- * - Agent creates and owns shared services (ToolManager, SystemPromptManager, etc.)
22
- * - SessionManager creates session-specific services (LLM, EventBus)
23
- * - Agent delegates execution to sessions via session.run()
24
- *
25
- * Follows two-phase initialization:
26
- * 1. Constructor: validates and stores config
27
- * 2. start(): asynchronously creates all services and SessionManager
28
- *
29
- * Backward compatible:
30
- * - execute(input) uses default session automatically
31
- * - New: execute(input, sessionId) for multi-session support
32
- */
33
- export declare class CipherAgent implements ICipherAgent {
34
- readonly agentEventBus?: AgentEventBus;
35
- readonly fileSystemService?: FileSystemService;
36
- readonly historyStorage?: IHistoryStorage;
37
- readonly memoryManager?: MemoryManager;
38
- readonly processService?: ProcessService;
39
- readonly promptFactory?: SimplePromptFactory;
40
- readonly toolManager?: ToolManager;
41
- readonly toolProvider?: ToolProvider;
42
- private readonly _brvConfig?;
43
- private _isStarted;
44
- private readonly currentDefaultSessionId;
45
- private defaultSession;
46
- private readonly llmConfig;
47
- private sessionManager?;
48
- private readonly stateManager;
49
- /**
50
- * Creates a new CipherAgent instance
51
- * Does NOT initialize services - call start() for async initialization
52
- *
53
- * @param llmConfig - LLM configuration (API key, model settings)
54
- * @param brvConfig - Optional ByteRover config (for custom system prompt)
55
- */
56
- constructor(llmConfig: CipherLLMConfig, brvConfig?: BrvConfig);
57
- /**
58
- * Create a new session.
59
- *
60
- * @param sessionId - Optional session ID (generates UUID if not provided)
61
- * @returns New or existing chat session
62
- */
63
- createSession(sessionId?: string): Promise<IChatSession>;
64
- /**
65
- * Delete a session completely (memory + history).
66
- *
67
- * @param sessionId - Session ID to delete
68
- * @returns True if session existed and was deleted
69
- */
70
- deleteSession(sessionId: string): Promise<boolean>;
71
- /**
72
- * Execute the agent with user input.
73
- *
74
- * Following Dexto's pattern: determine target session, get or create it,
75
- * then delegate to session.run().
76
- *
77
- * @param input - User input string
78
- * @param sessionId - Optional session ID (uses 'default' if not provided)
79
- * @param options - Optional execution options
80
- * @param options.mode - Optional mode for system prompt ('autonomous' enables autonomous mode)
81
- * @param options.executionContext - Optional execution context
82
- * @returns Agent response from LLM
83
- * @throws Error if agent is not started
84
- */
85
- execute(input: string, sessionId?: string, options?: {
86
- executionContext?: ExecutionContext;
87
- mode?: 'autonomous' | 'default' | 'query';
88
- }): Promise<string>;
89
- /**
90
- * Get an existing session or create a new one.
91
- * Useful for ensuring a session exists before pre-loading history.
92
- *
93
- * @param sessionId - Session ID to get or create
94
- * @returns Existing or newly created chat session
95
- */
96
- getOrCreateSession(sessionId: string): Promise<IChatSession>;
97
- /**
98
- * Get a session by ID.
99
- *
100
- * @param sessionId - Session ID
101
- * @returns Session instance or undefined if not found
102
- */
103
- getSession(sessionId: string): IChatSession | undefined;
104
- /**
105
- * Get session metadata without loading full history.
106
- *
107
- * @param sessionId - Session ID
108
- * @returns Session metadata or undefined if not found
109
- */
110
- getSessionMetadata(sessionId: string): Promise<import('../../core/domain/cipher/storage/history-types.js').SessionMetadata | undefined>;
111
- /**
112
- * Get current agent state
113
- *
114
- * @returns Current state information
115
- */
116
- getState(): AgentState;
117
- /**
118
- * Get the current system prompt from SimplePromptFactory
119
- * Useful for debugging and inspection
120
- *
121
- * @returns Current system prompt (built dynamically)
122
- */
123
- getSystemPrompt(): Promise<string>;
124
- /**
125
- * List all persisted session IDs from history storage.
126
- *
127
- * @returns Array of session IDs
128
- */
129
- listPersistedSessions(): Promise<string[]>;
130
- /**
131
- * List all session IDs (in-memory only).
132
- *
133
- * @returns Array of session IDs
134
- */
135
- listSessions(): string[];
136
- /**
137
- * Reset the agent to initial state.
138
- * Clears execution history, resets iteration counter, and resets default session.
139
- */
140
- reset(): void;
141
- /**
142
- * Start the agent - initializes all services asynchronously
143
- * Must be called before execute()
144
- *
145
- * @throws Error if agent is already started
146
- */
147
- start(): Promise<void>;
148
- /**
149
- * Ensure the agent has been started and all services are initialized
150
- *
151
- * @throws Error if agent is not started or services are not initialized
152
- */
153
- private ensureStarted;
154
- /**
155
- * Get initialized agent event bus (guaranteed to be defined after start())
156
- *
157
- * @returns AgentEventBus instance
158
- * @throws Error if not initialized
159
- */
160
- private getAgentEventBus;
161
- /**
162
- * Get initialized history storage (guaranteed to be defined after start())
163
- *
164
- * @returns IHistoryStorage instance
165
- * @throws Error if not initialized
166
- */
167
- private getHistoryStorage;
168
- /**
169
- * Get initialized prompt factory (guaranteed to be defined after start())
170
- *
171
- * @returns SimplePromptFactory instance
172
- * @throws Error if not initialized
173
- */
174
- private getPromptFactory;
175
- /**
176
- * Get initialized session manager (guaranteed to be defined after start())
177
- *
178
- * @returns SessionManager instance
179
- * @throws Error if not initialized
180
- */
181
- private getSessionManager;
182
- }