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
@@ -0,0 +1,264 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * LLM configuration schema with validation and defaults.
4
+ */
5
+ export declare const LLMConfigSchema: z.ZodObject<{
6
+ maxIterations: z.ZodDefault<z.ZodNumber>;
7
+ maxTokens: z.ZodDefault<z.ZodNumber>;
8
+ temperature: z.ZodDefault<z.ZodNumber>;
9
+ topK: z.ZodOptional<z.ZodNumber>;
10
+ topP: z.ZodOptional<z.ZodNumber>;
11
+ verbose: z.ZodDefault<z.ZodBoolean>;
12
+ }, "strict", z.ZodTypeAny, {
13
+ maxIterations: number;
14
+ verbose: boolean;
15
+ maxTokens: number;
16
+ temperature: number;
17
+ topK?: number | undefined;
18
+ topP?: number | undefined;
19
+ }, {
20
+ maxIterations?: number | undefined;
21
+ verbose?: boolean | undefined;
22
+ maxTokens?: number | undefined;
23
+ temperature?: number | undefined;
24
+ topK?: number | undefined;
25
+ topP?: number | undefined;
26
+ }>;
27
+ export type LLMConfig = z.input<typeof LLMConfigSchema>;
28
+ export type ValidatedLLMConfig = z.output<typeof LLMConfigSchema>;
29
+ /**
30
+ * Session configuration schema.
31
+ */
32
+ export declare const SessionConfigSchema: z.ZodObject<{
33
+ maxSessions: z.ZodDefault<z.ZodNumber>;
34
+ sessionTTL: z.ZodDefault<z.ZodNumber>;
35
+ }, "strict", z.ZodTypeAny, {
36
+ maxSessions: number;
37
+ sessionTTL: number;
38
+ }, {
39
+ maxSessions?: number | undefined;
40
+ sessionTTL?: number | undefined;
41
+ }>;
42
+ export type SessionConfig = z.input<typeof SessionConfigSchema>;
43
+ export type ValidatedSessionConfig = z.output<typeof SessionConfigSchema>;
44
+ /**
45
+ * File system configuration schema.
46
+ */
47
+ export declare const FileSystemConfigSchema: z.ZodObject<{
48
+ allowedExtensions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
49
+ maxFileSize: z.ZodOptional<z.ZodNumber>;
50
+ workingDirectory: z.ZodOptional<z.ZodString>;
51
+ }, "strict", z.ZodTypeAny, {
52
+ allowedExtensions?: string[] | undefined;
53
+ maxFileSize?: number | undefined;
54
+ workingDirectory?: string | undefined;
55
+ }, {
56
+ allowedExtensions?: string[] | undefined;
57
+ maxFileSize?: number | undefined;
58
+ workingDirectory?: string | undefined;
59
+ }>;
60
+ export type FileSystemConfig = z.input<typeof FileSystemConfigSchema>;
61
+ export type ValidatedFileSystemConfig = z.output<typeof FileSystemConfigSchema>;
62
+ /**
63
+ * Blob storage configuration schema.
64
+ */
65
+ export declare const BlobStorageConfigSchema: z.ZodObject<{
66
+ maxBlobSize: z.ZodDefault<z.ZodNumber>;
67
+ maxTotalSize: z.ZodDefault<z.ZodNumber>;
68
+ storageDir: z.ZodString;
69
+ }, "strict", z.ZodTypeAny, {
70
+ maxBlobSize: number;
71
+ maxTotalSize: number;
72
+ storageDir: string;
73
+ }, {
74
+ storageDir: string;
75
+ maxBlobSize?: number | undefined;
76
+ maxTotalSize?: number | undefined;
77
+ }>;
78
+ export type BlobStorageConfig = z.input<typeof BlobStorageConfigSchema>;
79
+ export type ValidatedBlobStorageConfig = z.output<typeof BlobStorageConfigSchema>;
80
+ /**
81
+ * Main agent configuration schema.
82
+ * Combines all sub-schemas with validation and defaults.
83
+ *
84
+ * This schema validates and transforms raw config into a fully-typed
85
+ * configuration with all defaults applied.
86
+ */
87
+ export declare const AgentConfigSchema: z.ZodObject<{
88
+ accessToken: z.ZodString;
89
+ apiBaseUrl: z.ZodString;
90
+ blobStorage: z.ZodOptional<z.ZodObject<{
91
+ maxBlobSize: z.ZodDefault<z.ZodNumber>;
92
+ maxTotalSize: z.ZodDefault<z.ZodNumber>;
93
+ storageDir: z.ZodString;
94
+ }, "strict", z.ZodTypeAny, {
95
+ maxBlobSize: number;
96
+ maxTotalSize: number;
97
+ storageDir: string;
98
+ }, {
99
+ storageDir: string;
100
+ maxBlobSize?: number | undefined;
101
+ maxTotalSize?: number | undefined;
102
+ }>>;
103
+ fileSystem: z.ZodOptional<z.ZodObject<{
104
+ allowedExtensions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
105
+ maxFileSize: z.ZodOptional<z.ZodNumber>;
106
+ workingDirectory: z.ZodOptional<z.ZodString>;
107
+ }, "strict", z.ZodTypeAny, {
108
+ allowedExtensions?: string[] | undefined;
109
+ maxFileSize?: number | undefined;
110
+ workingDirectory?: string | undefined;
111
+ }, {
112
+ allowedExtensions?: string[] | undefined;
113
+ maxFileSize?: number | undefined;
114
+ workingDirectory?: string | undefined;
115
+ }>>;
116
+ httpReferer: z.ZodOptional<z.ZodString>;
117
+ llm: z.ZodDefault<z.ZodObject<{
118
+ maxIterations: z.ZodDefault<z.ZodNumber>;
119
+ maxTokens: z.ZodDefault<z.ZodNumber>;
120
+ temperature: z.ZodDefault<z.ZodNumber>;
121
+ topK: z.ZodOptional<z.ZodNumber>;
122
+ topP: z.ZodOptional<z.ZodNumber>;
123
+ verbose: z.ZodDefault<z.ZodBoolean>;
124
+ }, "strict", z.ZodTypeAny, {
125
+ maxIterations: number;
126
+ verbose: boolean;
127
+ maxTokens: number;
128
+ temperature: number;
129
+ topK?: number | undefined;
130
+ topP?: number | undefined;
131
+ }, {
132
+ maxIterations?: number | undefined;
133
+ verbose?: boolean | undefined;
134
+ maxTokens?: number | undefined;
135
+ temperature?: number | undefined;
136
+ topK?: number | undefined;
137
+ topP?: number | undefined;
138
+ }>>;
139
+ model: z.ZodString;
140
+ openRouterApiKey: z.ZodOptional<z.ZodString>;
141
+ projectId: z.ZodString;
142
+ region: z.ZodOptional<z.ZodString>;
143
+ sessionKey: z.ZodString;
144
+ sessions: z.ZodDefault<z.ZodObject<{
145
+ maxSessions: z.ZodDefault<z.ZodNumber>;
146
+ sessionTTL: z.ZodDefault<z.ZodNumber>;
147
+ }, "strict", z.ZodTypeAny, {
148
+ maxSessions: number;
149
+ sessionTTL: number;
150
+ }, {
151
+ maxSessions?: number | undefined;
152
+ sessionTTL?: number | undefined;
153
+ }>>;
154
+ siteName: z.ZodOptional<z.ZodString>;
155
+ spaceId: z.ZodOptional<z.ZodString>;
156
+ teamId: z.ZodOptional<z.ZodString>;
157
+ useGranularStorage: z.ZodDefault<z.ZodBoolean>;
158
+ }, "strict", z.ZodTypeAny, {
159
+ accessToken: string;
160
+ sessionKey: string;
161
+ model: string;
162
+ sessions: {
163
+ maxSessions: number;
164
+ sessionTTL: number;
165
+ };
166
+ apiBaseUrl: string;
167
+ llm: {
168
+ maxIterations: number;
169
+ verbose: boolean;
170
+ maxTokens: number;
171
+ temperature: number;
172
+ topK?: number | undefined;
173
+ topP?: number | undefined;
174
+ };
175
+ projectId: string;
176
+ useGranularStorage: boolean;
177
+ teamId?: string | undefined;
178
+ spaceId?: string | undefined;
179
+ blobStorage?: {
180
+ maxBlobSize: number;
181
+ maxTotalSize: number;
182
+ storageDir: string;
183
+ } | undefined;
184
+ fileSystem?: {
185
+ allowedExtensions?: string[] | undefined;
186
+ maxFileSize?: number | undefined;
187
+ workingDirectory?: string | undefined;
188
+ } | undefined;
189
+ httpReferer?: string | undefined;
190
+ openRouterApiKey?: string | undefined;
191
+ region?: string | undefined;
192
+ siteName?: string | undefined;
193
+ }, {
194
+ accessToken: string;
195
+ sessionKey: string;
196
+ model: string;
197
+ apiBaseUrl: string;
198
+ projectId: string;
199
+ sessions?: {
200
+ maxSessions?: number | undefined;
201
+ sessionTTL?: number | undefined;
202
+ } | undefined;
203
+ teamId?: string | undefined;
204
+ spaceId?: string | undefined;
205
+ blobStorage?: {
206
+ storageDir: string;
207
+ maxBlobSize?: number | undefined;
208
+ maxTotalSize?: number | undefined;
209
+ } | undefined;
210
+ fileSystem?: {
211
+ allowedExtensions?: string[] | undefined;
212
+ maxFileSize?: number | undefined;
213
+ workingDirectory?: string | undefined;
214
+ } | undefined;
215
+ httpReferer?: string | undefined;
216
+ llm?: {
217
+ maxIterations?: number | undefined;
218
+ verbose?: boolean | undefined;
219
+ maxTokens?: number | undefined;
220
+ temperature?: number | undefined;
221
+ topK?: number | undefined;
222
+ topP?: number | undefined;
223
+ } | undefined;
224
+ openRouterApiKey?: string | undefined;
225
+ region?: string | undefined;
226
+ siteName?: string | undefined;
227
+ useGranularStorage?: boolean | undefined;
228
+ }>;
229
+ export type AgentConfig = z.input<typeof AgentConfigSchema>;
230
+ export type ValidatedAgentConfig = z.output<typeof AgentConfigSchema>;
231
+ /**
232
+ * LLM updates schema for runtime config changes.
233
+ * All fields optional - only provided fields will be updated.
234
+ */
235
+ export declare const LLMUpdatesSchema: z.ZodObject<{
236
+ maxIterations: z.ZodOptional<z.ZodNumber>;
237
+ maxTokens: z.ZodOptional<z.ZodNumber>;
238
+ model: z.ZodOptional<z.ZodString>;
239
+ temperature: z.ZodOptional<z.ZodNumber>;
240
+ verbose: z.ZodOptional<z.ZodBoolean>;
241
+ }, "strict", z.ZodTypeAny, {
242
+ maxIterations?: number | undefined;
243
+ model?: string | undefined;
244
+ verbose?: boolean | undefined;
245
+ maxTokens?: number | undefined;
246
+ temperature?: number | undefined;
247
+ }, {
248
+ maxIterations?: number | undefined;
249
+ model?: string | undefined;
250
+ verbose?: boolean | undefined;
251
+ maxTokens?: number | undefined;
252
+ temperature?: number | undefined;
253
+ }>;
254
+ export type LLMUpdates = z.input<typeof LLMUpdatesSchema>;
255
+ /**
256
+ * Validate agent configuration.
257
+ * Returns validated config with defaults applied, or throws on validation error.
258
+ */
259
+ export declare function validateAgentConfig(config: unknown): ValidatedAgentConfig;
260
+ /**
261
+ * Safely validate agent configuration.
262
+ * Returns result object with success flag and either data or error.
263
+ */
264
+ export declare function safeValidateAgentConfig(config: unknown): z.SafeParseReturnType<AgentConfig, ValidatedAgentConfig>;
@@ -0,0 +1,97 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * LLM configuration schema with validation and defaults.
4
+ */
5
+ export const LLMConfigSchema = z
6
+ .object({
7
+ maxIterations: z.number().positive().default(50).describe('Maximum agentic loop iterations'),
8
+ maxTokens: z.number().positive().default(8192).describe('Maximum output tokens'),
9
+ temperature: z.number().min(0).max(2).default(0.7).describe('Temperature for generation'),
10
+ topK: z.number().positive().optional().describe('Top-K sampling parameter'),
11
+ topP: z.number().min(0).max(1).optional().describe('Top-P (nucleus) sampling parameter'),
12
+ verbose: z.boolean().default(false).describe('Enable verbose debug output'),
13
+ })
14
+ .strict();
15
+ /**
16
+ * Session configuration schema.
17
+ */
18
+ export const SessionConfigSchema = z
19
+ .object({
20
+ maxSessions: z.number().positive().default(100).describe('Maximum concurrent sessions'),
21
+ sessionTTL: z.number().positive().default(3_600_000).describe('Session TTL in milliseconds (1 hour default)'),
22
+ })
23
+ .strict();
24
+ /**
25
+ * File system configuration schema.
26
+ */
27
+ export const FileSystemConfigSchema = z
28
+ .object({
29
+ allowedExtensions: z.array(z.string()).optional().describe('Allowed file extensions'),
30
+ maxFileSize: z.number().positive().optional().describe('Maximum file size in bytes'),
31
+ workingDirectory: z.string().optional().describe('Working directory for file operations'),
32
+ })
33
+ .strict();
34
+ /**
35
+ * Blob storage configuration schema.
36
+ */
37
+ export const BlobStorageConfigSchema = z
38
+ .object({
39
+ maxBlobSize: z.number().positive().default(100 * 1024 * 1024).describe('Max blob size (100MB default)'),
40
+ maxTotalSize: z.number().positive().default(1024 * 1024 * 1024).describe('Max total size (1GB default)'),
41
+ storageDir: z.string().describe('Directory for blob storage'),
42
+ })
43
+ .strict();
44
+ /**
45
+ * Main agent configuration schema.
46
+ * Combines all sub-schemas with validation and defaults.
47
+ *
48
+ * This schema validates and transforms raw config into a fully-typed
49
+ * configuration with all defaults applied.
50
+ */
51
+ export const AgentConfigSchema = z
52
+ .object({
53
+ accessToken: z.string().min(1).describe('ByteRover access token'),
54
+ apiBaseUrl: z.string().url().describe('ByteRover API base URL'),
55
+ blobStorage: BlobStorageConfigSchema.optional().describe('Blob storage configuration'),
56
+ fileSystem: FileSystemConfigSchema.optional().describe('File system configuration'),
57
+ httpReferer: z.string().optional().describe('HTTP Referer for OpenRouter rankings'),
58
+ llm: LLMConfigSchema.default({}).describe('LLM configuration'),
59
+ model: z.string().min(1).describe('LLM model identifier'),
60
+ openRouterApiKey: z.string().optional().describe('OpenRouter API key'),
61
+ projectId: z.string().min(1).describe('ByteRover project ID'),
62
+ region: z.string().optional().describe('API region'),
63
+ sessionKey: z.string().min(1).describe('ByteRover session key'),
64
+ sessions: SessionConfigSchema.default({}).describe('Session management configuration'),
65
+ siteName: z.string().optional().describe('Site name for OpenRouter rankings'),
66
+ spaceId: z.string().optional().describe('ByteRover space ID'),
67
+ teamId: z.string().optional().describe('ByteRover team ID'),
68
+ useGranularStorage: z.boolean().default(false).describe('Enable granular history storage'),
69
+ })
70
+ .strict();
71
+ /**
72
+ * LLM updates schema for runtime config changes.
73
+ * All fields optional - only provided fields will be updated.
74
+ */
75
+ export const LLMUpdatesSchema = z
76
+ .object({
77
+ maxIterations: z.number().positive().optional(),
78
+ maxTokens: z.number().positive().optional(),
79
+ model: z.string().min(1).optional(),
80
+ temperature: z.number().min(0).max(2).optional(),
81
+ verbose: z.boolean().optional(),
82
+ })
83
+ .strict();
84
+ /**
85
+ * Validate agent configuration.
86
+ * Returns validated config with defaults applied, or throws on validation error.
87
+ */
88
+ export function validateAgentConfig(config) {
89
+ return AgentConfigSchema.parse(config);
90
+ }
91
+ /**
92
+ * Safely validate agent configuration.
93
+ * Returns result object with success flag and either data or error.
94
+ */
95
+ export function safeValidateAgentConfig(config) {
96
+ return AgentConfigSchema.safeParse(config);
97
+ }
@@ -0,0 +1,140 @@
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
+ import type { AgentEventBus } from '../events/event-emitter.js';
4
+ import type { ValidatedAgentConfig, ValidatedLLMConfig } from './agent-schemas.js';
5
+ /**
6
+ * Session-specific overrides that can differ from the global configuration.
7
+ */
8
+ export interface SessionOverride {
9
+ llm?: Partial<ValidatedLLMConfig>;
10
+ }
11
+ /**
12
+ * Unified agent state manager combining DextoAgent config patterns with execution state tracking.
13
+ *
14
+ * Manages two concerns:
15
+ *
16
+ * 1. Configuration State (DextoAgent pattern):
17
+ * - baselineConfig: Original validated config, never mutated
18
+ * - runtimeConfig: Current active config, can be mutated
19
+ * - sessionOverrides: Per-session config overrides
20
+ *
21
+ * 2. Execution State (runtime tracking):
22
+ * - currentIteration: Turn counter
23
+ * - executionState: idle | executing | complete | error | aborted | tool_calling
24
+ * - terminationReason: Why execution ended
25
+ * - timing: startTime, endTime, durationMs
26
+ * - toolCallsExecuted: Tool call counter
27
+ * - executionHistory: Legacy history records
28
+ */
29
+ export declare class AgentStateManager {
30
+ private readonly agentEventBus;
31
+ private readonly baselineConfig;
32
+ private currentIteration;
33
+ private durationMs?;
34
+ private endTime?;
35
+ private executionHistory;
36
+ private executionState;
37
+ private runtimeConfig;
38
+ private readonly sessionOverrides;
39
+ private startTime?;
40
+ private terminationReason?;
41
+ private toolCallsExecuted;
42
+ constructor(staticConfig: ValidatedAgentConfig, agentEventBus: AgentEventBus);
43
+ /**
44
+ * Add an execution record to history (legacy method).
45
+ * @param record - Execution record to add
46
+ */
47
+ addExecutionRecord(record: string): void;
48
+ /**
49
+ * Clear session-specific overrides.
50
+ */
51
+ clearSessionOverride(sessionId: string): void;
52
+ /**
53
+ * Mark execution as complete with reason.
54
+ * @param reason - Why execution terminated
55
+ */
56
+ complete(reason: TerminationReason): void;
57
+ /**
58
+ * Export current runtime state as a config object.
59
+ */
60
+ exportAsConfig(): ValidatedAgentConfig;
61
+ /**
62
+ * Mark execution as errored.
63
+ * @param reason - Error termination reason
64
+ */
65
+ fail(reason: TerminationReason): void;
66
+ /**
67
+ * Get the original baseline configuration.
68
+ */
69
+ getBaselineConfig(): Readonly<ValidatedAgentConfig>;
70
+ /**
71
+ * Get the current execution state.
72
+ * @returns Current agent state with all execution fields
73
+ */
74
+ getExecutionState(): AgentState;
75
+ /**
76
+ * Get effective LLM config for a session.
77
+ */
78
+ getLLMConfig(sessionId?: string): Readonly<ValidatedLLMConfig>;
79
+ /**
80
+ * Get the current model identifier.
81
+ */
82
+ getModel(sessionId?: string): string;
83
+ /**
84
+ * Get runtime configuration for a session (includes session overrides if sessionId provided).
85
+ */
86
+ getRuntimeConfig(sessionId?: string): Readonly<ValidatedAgentConfig>;
87
+ /**
88
+ * Get all session IDs that have overrides.
89
+ */
90
+ getSessionsWithOverrides(): string[];
91
+ /**
92
+ * Check if a session has overrides.
93
+ */
94
+ hasSessionOverride(sessionId: string): boolean;
95
+ /**
96
+ * Increment the iteration counter.
97
+ * @returns The new iteration count
98
+ */
99
+ incrementIteration(): number;
100
+ /**
101
+ * Increment the tool calls counter.
102
+ * @returns The new tool calls count
103
+ */
104
+ incrementToolCalls(): number;
105
+ /**
106
+ * Reset all state to initial values.
107
+ * Resets both execution state and configuration state.
108
+ */
109
+ reset(): void;
110
+ /**
111
+ * Reset runtime configuration to baseline.
112
+ * Also clears all session overrides.
113
+ */
114
+ resetToBaseline(): void;
115
+ /**
116
+ * Set the current execution state.
117
+ * @param state - New execution state
118
+ */
119
+ setExecutionState(state: AgentExecutionState): void;
120
+ /**
121
+ * Start execution tracking.
122
+ * Sets startTime and transitions to executing state.
123
+ */
124
+ startExecution(): void;
125
+ /**
126
+ * Update LLM configuration globally or for a specific session.
127
+ *
128
+ * @param updates - Partial LLM configuration updates
129
+ * @param sessionId - Optional session ID for session-specific override
130
+ */
131
+ updateLLM(updates: Partial<ValidatedLLMConfig>, sessionId?: string): void;
132
+ /**
133
+ * Update the model globally or for a specific session.
134
+ */
135
+ updateModel(model: string, sessionId?: string): void;
136
+ /**
137
+ * Set a session-specific override.
138
+ */
139
+ private setSessionOverride;
140
+ }