byterover-cli 0.4.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,25 @@
1
+ import type { ContributorContext, SystemPromptContributor } from '../../../../core/domain/cipher/system-prompt/types.js';
2
+ /**
3
+ * DateTime contributor that provides current date and time.
4
+ *
5
+ * Returns the current date/time in ISO format wrapped in XML tags
6
+ * for clear delineation in the system prompt.
7
+ */
8
+ export declare class DateTimeContributor implements SystemPromptContributor {
9
+ readonly id: string;
10
+ readonly priority: number;
11
+ /**
12
+ * Creates a new datetime contributor.
13
+ *
14
+ * @param id - Unique identifier for this contributor
15
+ * @param priority - Execution priority (lower = first)
16
+ */
17
+ constructor(id: string, priority: number);
18
+ /**
19
+ * Returns the current date and time in ISO format.
20
+ *
21
+ * @param _context - Contributor context (unused)
22
+ * @returns Formatted datetime string with XML tags
23
+ */
24
+ getContent(_context: ContributorContext): Promise<string>;
25
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * DateTime contributor that provides current date and time.
3
+ *
4
+ * Returns the current date/time in ISO format wrapped in XML tags
5
+ * for clear delineation in the system prompt.
6
+ */
7
+ export class DateTimeContributor {
8
+ id;
9
+ priority;
10
+ /**
11
+ * Creates a new datetime contributor.
12
+ *
13
+ * @param id - Unique identifier for this contributor
14
+ * @param priority - Execution priority (lower = first)
15
+ */
16
+ constructor(id, priority) {
17
+ this.id = id;
18
+ this.priority = priority;
19
+ }
20
+ /**
21
+ * Returns the current date and time in ISO format.
22
+ *
23
+ * @param _context - Contributor context (unused)
24
+ * @returns Formatted datetime string with XML tags
25
+ */
26
+ async getContent(_context) {
27
+ return `<dateTime>Current date and time: ${new Date().toISOString()}</dateTime>`;
28
+ }
29
+ }
@@ -0,0 +1,25 @@
1
+ import type { ContributorContext, SystemPromptContributor } from '../../../../core/domain/cipher/system-prompt/types.js';
2
+ /**
3
+ * Environment contributor that provides environment context.
4
+ *
5
+ * Formats the environment context (working directory, git status,
6
+ * platform info, file tree, etc.) for inclusion in the system prompt.
7
+ */
8
+ export declare class EnvironmentContributor implements SystemPromptContributor {
9
+ readonly id: string;
10
+ readonly priority: number;
11
+ /**
12
+ * Creates a new environment contributor.
13
+ *
14
+ * @param id - Unique identifier for this contributor
15
+ * @param priority - Execution priority (lower = first)
16
+ */
17
+ constructor(id: string, priority: number);
18
+ /**
19
+ * Formats and returns the environment context.
20
+ *
21
+ * @param context - Contributor context with environment context
22
+ * @returns Formatted environment context string, or empty string if not available
23
+ */
24
+ getContent(context: ContributorContext): Promise<string>;
25
+ }
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Environment contributor that provides environment context.
3
+ *
4
+ * Formats the environment context (working directory, git status,
5
+ * platform info, file tree, etc.) for inclusion in the system prompt.
6
+ */
7
+ export class EnvironmentContributor {
8
+ id;
9
+ priority;
10
+ /**
11
+ * Creates a new environment contributor.
12
+ *
13
+ * @param id - Unique identifier for this contributor
14
+ * @param priority - Execution priority (lower = first)
15
+ */
16
+ constructor(id, priority) {
17
+ this.id = id;
18
+ this.priority = priority;
19
+ }
20
+ /**
21
+ * Formats and returns the environment context.
22
+ *
23
+ * @param context - Contributor context with environment context
24
+ * @returns Formatted environment context string, or empty string if not available
25
+ */
26
+ async getContent(context) {
27
+ if (!context.environmentContext) {
28
+ return '';
29
+ }
30
+ const env = context.environmentContext;
31
+ const dateOptions = {
32
+ day: 'numeric',
33
+ month: 'short',
34
+ weekday: 'short',
35
+ year: 'numeric',
36
+ };
37
+ const formattedDate = new Date().toLocaleDateString('en-US', dateOptions);
38
+ let result = '<env>\n';
39
+ result += ` Working directory: ${env.workingDirectory}\n`;
40
+ result += ` Is directory a git repo: ${env.isGitRepository ? 'Yes' : 'No'}\n`;
41
+ result += ` Platform: ${env.platform}\n`;
42
+ result += ` OS Version: ${env.osVersion}\n`;
43
+ result += ` Node Version: ${env.nodeVersion}\n`;
44
+ result += ` Today's date: ${formattedDate}\n`;
45
+ result += '</env>';
46
+ if (env.fileTree) {
47
+ result += '\n\n' + env.fileTree;
48
+ }
49
+ if (env.brvStructure) {
50
+ result += '\n\n' + env.brvStructure;
51
+ }
52
+ return result;
53
+ }
54
+ }
@@ -0,0 +1,60 @@
1
+ import type { ContributorContext, SystemPromptContributor } from '../../../../core/domain/cipher/system-prompt/types.js';
2
+ /**
3
+ * Options for file contributor configuration.
4
+ */
5
+ export interface FileContributorOptions {
6
+ /** Base path for resolving relative file paths */
7
+ basePath?: string;
8
+ /** Whether to cache file contents (default: true) */
9
+ cache?: boolean;
10
+ /** Whether to render template variables (default: false) */
11
+ renderTemplate?: boolean;
12
+ /** Whether to validate file modification time (default: true) */
13
+ validateMtime?: boolean;
14
+ }
15
+ /**
16
+ * File contributor that loads prompt content from YAML files.
17
+ *
18
+ * Features:
19
+ * - Loads and parses YAML prompt files
20
+ * - Validates content using Zod schema
21
+ * - Caches content with optional mtime validation
22
+ */
23
+ export declare class FileContributor implements SystemPromptContributor {
24
+ readonly id: string;
25
+ readonly priority: number;
26
+ private readonly basePath;
27
+ private readonly cache;
28
+ private readonly filepath;
29
+ private readonly renderTemplate;
30
+ private readonly useCache;
31
+ private readonly validateMtime;
32
+ /**
33
+ * Creates a new file contributor.
34
+ *
35
+ * @param id - Unique identifier for this contributor
36
+ * @param priority - Execution priority (lower = first)
37
+ * @param filepath - Path to the YAML prompt file
38
+ * @param options - Configuration options
39
+ */
40
+ constructor(id: string, priority: number, filepath: string, options?: FileContributorOptions);
41
+ /**
42
+ * Loads and returns the prompt content from the file.
43
+ *
44
+ * @param context - Contributor context with template variables
45
+ * @returns Prompt content string
46
+ */
47
+ getContent(context: ContributorContext): Promise<string>;
48
+ /**
49
+ * Invalidate the cache for this contributor's file.
50
+ */
51
+ invalidateCache(): void;
52
+ /**
53
+ * Render template variables in the prompt content.
54
+ *
55
+ * @param template - Template string with {{variable}} placeholders
56
+ * @param context - Contributor context with values
57
+ * @returns Rendered string
58
+ */
59
+ private renderTemplateVariables;
60
+ }
@@ -0,0 +1,128 @@
1
+ import { load as loadYaml } from 'js-yaml';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ import { SystemPromptError } from '../../../../core/domain/cipher/errors/system-prompt-error.js';
5
+ import { PromptCache } from '../prompt-cache.js';
6
+ import { PromptConfigSchema } from '../schemas.js';
7
+ /**
8
+ * File contributor that loads prompt content from YAML files.
9
+ *
10
+ * Features:
11
+ * - Loads and parses YAML prompt files
12
+ * - Validates content using Zod schema
13
+ * - Caches content with optional mtime validation
14
+ */
15
+ export class FileContributor {
16
+ id;
17
+ priority;
18
+ basePath;
19
+ cache;
20
+ filepath;
21
+ renderTemplate;
22
+ useCache;
23
+ validateMtime;
24
+ /**
25
+ * Creates a new file contributor.
26
+ *
27
+ * @param id - Unique identifier for this contributor
28
+ * @param priority - Execution priority (lower = first)
29
+ * @param filepath - Path to the YAML prompt file
30
+ * @param options - Configuration options
31
+ */
32
+ constructor(id, priority, filepath, options = {}) {
33
+ this.id = id;
34
+ this.priority = priority;
35
+ this.filepath = filepath;
36
+ this.basePath = options.basePath ?? '';
37
+ this.useCache = options.cache ?? true;
38
+ this.renderTemplate = options.renderTemplate ?? false;
39
+ this.validateMtime = options.validateMtime ?? true;
40
+ this.cache = new PromptCache({
41
+ maxSize: 50,
42
+ validateMtime: this.validateMtime,
43
+ });
44
+ }
45
+ /**
46
+ * Loads and returns the prompt content from the file.
47
+ *
48
+ * @param context - Contributor context with template variables
49
+ * @returns Prompt content string
50
+ */
51
+ async getContent(context) {
52
+ const fullPath = this.basePath ? path.join(this.basePath, this.filepath) : this.filepath;
53
+ // Check cache first (only for raw content, not rendered)
54
+ let prompt;
55
+ if (this.useCache) {
56
+ const cached = this.cache.get(fullPath);
57
+ if (cached?.prompt) {
58
+ prompt = cached.prompt;
59
+ }
60
+ }
61
+ // Load from file if not cached
62
+ if (!prompt) {
63
+ if (!fs.existsSync(fullPath)) {
64
+ throw SystemPromptError.fileNotFound(fullPath);
65
+ }
66
+ let yamlContent;
67
+ try {
68
+ yamlContent = fs.readFileSync(fullPath, 'utf8');
69
+ }
70
+ catch (error) {
71
+ const reason = error instanceof Error ? error.message : String(error);
72
+ throw SystemPromptError.fileReadFailed(fullPath, reason);
73
+ }
74
+ const rawConfig = loadYaml(yamlContent);
75
+ // Validate with Zod schema
76
+ const parseResult = PromptConfigSchema.safeParse(rawConfig);
77
+ if (!parseResult.success) {
78
+ const errorMessages = parseResult.error.errors.map((err) => `${err.path.join('.')}: ${err.message}`).join('; ');
79
+ throw SystemPromptError.configInvalid(errorMessages, parseResult.error.errors);
80
+ }
81
+ const config = parseResult.data;
82
+ if (!config.prompt) {
83
+ throw SystemPromptError.configMissingField('prompt', fullPath);
84
+ }
85
+ // Cache the config
86
+ if (this.useCache) {
87
+ this.cache.set(fullPath, config);
88
+ }
89
+ prompt = config.prompt;
90
+ }
91
+ // Render template if enabled
92
+ if (this.renderTemplate) {
93
+ return this.renderTemplateVariables(prompt, context);
94
+ }
95
+ return prompt;
96
+ }
97
+ /**
98
+ * Invalidate the cache for this contributor's file.
99
+ */
100
+ invalidateCache() {
101
+ const fullPath = this.basePath ? path.join(this.basePath, this.filepath) : this.filepath;
102
+ this.cache.invalidate(fullPath);
103
+ }
104
+ /**
105
+ * Render template variables in the prompt content.
106
+ *
107
+ * @param template - Template string with {{variable}} placeholders
108
+ * @param context - Contributor context with values
109
+ * @returns Rendered string
110
+ */
111
+ renderTemplateVariables(template, context) {
112
+ let result = template;
113
+ // Build variables from context
114
+ /* eslint-disable camelcase */
115
+ const variables = {
116
+ available_markers: context.availableMarkers ? Object.keys(context.availableMarkers).join(', ') : '',
117
+ available_tools: context.availableTools?.join(', ') ?? '',
118
+ datetime: `<dateTime>Current date and time: ${new Date().toISOString()}</dateTime>`,
119
+ };
120
+ /* eslint-enable camelcase */
121
+ // Replace {{variable}} with values
122
+ for (const [key, value] of Object.entries(variables)) {
123
+ const regex = new RegExp(`{{\\s*${key}\\s*}}`, 'g');
124
+ result = result.replaceAll(regex, value ?? '');
125
+ }
126
+ return result;
127
+ }
128
+ }
@@ -0,0 +1,13 @@
1
+ export { AgentPromptContributor } from './agent-prompt-contributor.js';
2
+ export type { AgentPromptContributorOptions } from './agent-prompt-contributor.js';
3
+ export { CompanionContributor } from './companion-contributor.js';
4
+ export type { CompanionContributorOptions } from './companion-contributor.js';
5
+ export { ContextTreeStructureContributor } from './context-tree-structure-contributor.js';
6
+ export type { ContextTreeStructureContributorOptions } from './context-tree-structure-contributor.js';
7
+ export { DateTimeContributor } from './datetime-contributor.js';
8
+ export { EnvironmentContributor } from './environment-contributor.js';
9
+ export { FileContributor } from './file-contributor.js';
10
+ export type { FileContributorOptions } from './file-contributor.js';
11
+ export { MemoryContributor } from './memory-contributor.js';
12
+ export type { MemoryContributorOptions } from './memory-contributor.js';
13
+ export { StaticContributor } from './static-contributor.js';
@@ -0,0 +1,8 @@
1
+ export { AgentPromptContributor } from './agent-prompt-contributor.js';
2
+ export { CompanionContributor } from './companion-contributor.js';
3
+ export { ContextTreeStructureContributor } from './context-tree-structure-contributor.js';
4
+ export { DateTimeContributor } from './datetime-contributor.js';
5
+ export { EnvironmentContributor } from './environment-contributor.js';
6
+ export { FileContributor } from './file-contributor.js';
7
+ export { MemoryContributor } from './memory-contributor.js';
8
+ export { StaticContributor } from './static-contributor.js';
@@ -0,0 +1,40 @@
1
+ import type { ContributorContext, SystemPromptContributor } from '../../../../core/domain/cipher/system-prompt/types.js';
2
+ /**
3
+ * Options for memory contributor configuration.
4
+ */
5
+ export interface MemoryContributorOptions {
6
+ /** Whether to include tags in memory display (default: true) */
7
+ includeTags?: boolean;
8
+ /** Maximum number of memories to include (default: 20) */
9
+ limit?: number;
10
+ /** Only include pinned memories (default: false) */
11
+ pinnedOnly?: boolean;
12
+ }
13
+ /**
14
+ * Memory contributor that loads agent memories.
15
+ *
16
+ * Retrieves memories from the memory manager and formats them
17
+ * for inclusion in the system prompt.
18
+ */
19
+ export declare class MemoryContributor implements SystemPromptContributor {
20
+ readonly id: string;
21
+ readonly priority: number;
22
+ private readonly includeTags;
23
+ private readonly limit;
24
+ private readonly pinnedOnly;
25
+ /**
26
+ * Creates a new memory contributor.
27
+ *
28
+ * @param id - Unique identifier for this contributor
29
+ * @param priority - Execution priority (lower = first)
30
+ * @param options - Configuration options
31
+ */
32
+ constructor(id: string, priority: number, options?: MemoryContributorOptions);
33
+ /**
34
+ * Loads and formats memories from the memory manager.
35
+ *
36
+ * @param context - Contributor context with memory manager
37
+ * @returns Formatted memories string, or empty string if no memories
38
+ */
39
+ getContent(context: ContributorContext): Promise<string>;
40
+ }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Memory contributor that loads agent memories.
3
+ *
4
+ * Retrieves memories from the memory manager and formats them
5
+ * for inclusion in the system prompt.
6
+ */
7
+ export class MemoryContributor {
8
+ id;
9
+ priority;
10
+ includeTags;
11
+ limit;
12
+ pinnedOnly;
13
+ /**
14
+ * Creates a new memory contributor.
15
+ *
16
+ * @param id - Unique identifier for this contributor
17
+ * @param priority - Execution priority (lower = first)
18
+ * @param options - Configuration options
19
+ */
20
+ constructor(id, priority, options = {}) {
21
+ this.id = id;
22
+ this.priority = priority;
23
+ this.includeTags = options.includeTags ?? true;
24
+ this.limit = options.limit ?? 20;
25
+ this.pinnedOnly = options.pinnedOnly ?? false;
26
+ }
27
+ /**
28
+ * Loads and formats memories from the memory manager.
29
+ *
30
+ * @param context - Contributor context with memory manager
31
+ * @returns Formatted memories string, or empty string if no memories
32
+ */
33
+ async getContent(context) {
34
+ if (!context.memoryManager) {
35
+ return '';
36
+ }
37
+ try {
38
+ const memories = await context.memoryManager.list({
39
+ limit: this.limit,
40
+ ...(this.pinnedOnly && { pinned: true }),
41
+ });
42
+ if (!memories || memories.length === 0) {
43
+ return '';
44
+ }
45
+ const items = memories.map((memory) => {
46
+ const tags = this.includeTags && memory.tags?.length ? ` [${memory.tags.join(', ')}]` : '';
47
+ return `- ${memory.content}${tags}`;
48
+ });
49
+ return `\n# Agent Memories\n${items.join('\n')}\n`;
50
+ }
51
+ catch {
52
+ // Silently return empty string on error to not break prompt generation
53
+ return '';
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,26 @@
1
+ import type { ContributorContext, SystemPromptContributor } from '../../../../core/domain/cipher/system-prompt/types.js';
2
+ /**
3
+ * Static contributor that returns inline content.
4
+ *
5
+ * Use this for fixed prompt content that doesn't change at runtime.
6
+ */
7
+ export declare class StaticContributor implements SystemPromptContributor {
8
+ readonly id: string;
9
+ readonly priority: number;
10
+ private readonly content;
11
+ /**
12
+ * Creates a new static contributor.
13
+ *
14
+ * @param id - Unique identifier for this contributor
15
+ * @param priority - Execution priority (lower = first)
16
+ * @param content - Static content to return
17
+ */
18
+ constructor(id: string, priority: number, content: string);
19
+ /**
20
+ * Returns the static content.
21
+ *
22
+ * @param _context - Contributor context (unused)
23
+ * @returns Static content string
24
+ */
25
+ getContent(_context: ContributorContext): Promise<string>;
26
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Static contributor that returns inline content.
3
+ *
4
+ * Use this for fixed prompt content that doesn't change at runtime.
5
+ */
6
+ export class StaticContributor {
7
+ id;
8
+ priority;
9
+ content;
10
+ /**
11
+ * Creates a new static contributor.
12
+ *
13
+ * @param id - Unique identifier for this contributor
14
+ * @param priority - Execution priority (lower = first)
15
+ * @param content - Static content to return
16
+ */
17
+ constructor(id, priority, content) {
18
+ this.id = id;
19
+ this.priority = priority;
20
+ this.content = content;
21
+ }
22
+ /**
23
+ * Returns the static content.
24
+ *
25
+ * @param _context - Contributor context (unused)
26
+ * @returns Static content string
27
+ */
28
+ async getContent(_context) {
29
+ return this.content;
30
+ }
31
+ }
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Environment context information for system prompts.
3
+ * Provides the Cipher agent with awareness of its operating environment.
4
+ */
5
+ export interface EnvironmentContext {
6
+ /** Formatted .brv directory structure explanation */
7
+ brvStructure: string;
8
+ /** Formatted project file tree */
9
+ fileTree: string;
10
+ /** Whether the working directory is a git repository */
11
+ isGitRepository: boolean;
12
+ /** Node.js version */
13
+ nodeVersion: string;
14
+ /** Operating system version */
15
+ osVersion: string;
16
+ /** Operating system platform (darwin, linux, win32) */
17
+ platform: string;
18
+ /** Absolute path to the working directory */
19
+ workingDirectory: string;
20
+ }
21
+ /**
22
+ * Options for building environment context.
23
+ * @deprecated Use ValidatedEnvironmentContextOptions from schemas.ts instead
24
+ */
25
+ export interface EnvironmentContextOptions {
26
+ /** Whether to include .brv structure explanation (default: true) */
27
+ includeBrvStructure?: boolean;
28
+ /** Whether to include file tree (default: true) */
29
+ includeFileTree?: boolean;
30
+ /** Maximum depth for file tree traversal (default: 3) */
31
+ maxFileTreeDepth?: number;
32
+ /** Maximum number of entries in file tree (default: 100) */
33
+ maxFileTreeEntries?: number;
34
+ /** Working directory path */
35
+ workingDirectory: string;
36
+ }
37
+ /**
38
+ * Builds environment context for system prompts.
39
+ *
40
+ * Gathers information about:
41
+ * - Working directory
42
+ * - Git repository status
43
+ * - Platform and OS version
44
+ * - Project file tree
45
+ * - .brv directory structure
46
+ */
47
+ export declare class EnvironmentContextBuilder {
48
+ /**
49
+ * Build the complete environment context.
50
+ *
51
+ * @param options - Configuration options
52
+ * @returns Environment context object
53
+ */
54
+ build(options: EnvironmentContextOptions): Promise<EnvironmentContext>;
55
+ /**
56
+ * Build an explanation of the .brv directory structure.
57
+ *
58
+ * @param dir - Working directory path
59
+ * @returns Formatted .brv structure explanation
60
+ */
61
+ private buildBrvStructure;
62
+ /**
63
+ * Build a formatted file tree of the project.
64
+ *
65
+ * @param dir - Root directory to start from
66
+ * @param maxDepth - Maximum traversal depth
67
+ * @param maxEntries - Maximum number of entries to include
68
+ * @returns Formatted file tree string
69
+ */
70
+ private buildFileTree;
71
+ /**
72
+ * Check if a directory is a git repository.
73
+ *
74
+ * @param dir - Directory path to check
75
+ * @returns True if the directory contains a .git folder
76
+ */
77
+ private detectGitRepository;
78
+ /**
79
+ * Get description for a .brv directory.
80
+ *
81
+ * @param name - Directory name
82
+ * @returns Description string
83
+ */
84
+ private getBrvDirectoryDescription;
85
+ /**
86
+ * Get description for a .brv file.
87
+ *
88
+ * @param name - File name
89
+ * @returns Description string
90
+ */
91
+ private getBrvFileDescription;
92
+ /**
93
+ * Check if a file or directory should be excluded from the tree.
94
+ *
95
+ * @param name - File or directory name
96
+ * @returns True if should be excluded
97
+ */
98
+ private shouldExclude;
99
+ /**
100
+ * Recursively traverse a directory and build tree lines.
101
+ *
102
+ * @param options - Traversal options
103
+ * @param options.dir - Current directory path
104
+ * @param options.maxDepth - Maximum depth to traverse
105
+ * @param options.maxEntries - Maximum entries to include
106
+ * @param options.currentDepth - Current traversal depth
107
+ * @param options.entriesCount - Counter for entries added (mutable object with value property)
108
+ * @param options.truncatedCount - Counter for truncated entries (mutable object with value property)
109
+ * @param options.lines - Array to append lines to
110
+ */
111
+ private traverseDirectory;
112
+ }