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,58 @@
1
+ import type { InstanceInfo } from '../../domain/instance/types.js';
2
+ /**
3
+ * Result of attempting to acquire an instance lock.
4
+ */
5
+ export type AcquireResult = {
6
+ acquired: false;
7
+ existingInstance: InstanceInfo;
8
+ reason: 'already_running';
9
+ } | {
10
+ acquired: true;
11
+ instance: InstanceInfo;
12
+ };
13
+ /**
14
+ * Interface for managing instance lifecycle.
15
+ *
16
+ * Architecture notes (Section 6 - Instance Lock):
17
+ * - 1 FOLDER = 1 TRANSPORT SERVER
18
+ * - Handles acquire/release semantics for instance.json
19
+ * - Verifies PID to detect crashed instances (no status field needed)
20
+ */
21
+ export interface IInstanceManager {
22
+ /**
23
+ * Attempts to acquire an instance lock for the given project root.
24
+ *
25
+ * Flow:
26
+ * 1. Check if instance.json exists
27
+ * 2. If exists and pid alive → return already_running
28
+ * 3. If exists but stale (pid dead) → overwrite
29
+ * 4. Create new instance.json
30
+ *
31
+ * @param projectRoot - Root directory containing .brv/
32
+ * @param port - Port the transport server will use
33
+ * @returns AcquireResult indicating success or existing instance
34
+ */
35
+ acquire: (projectRoot: string, port: number) => Promise<AcquireResult>;
36
+ /**
37
+ * Reads instance info from the project root.
38
+ * Returns undefined if instance.json doesn't exist.
39
+ *
40
+ * @param projectRoot - Root directory containing .brv/
41
+ */
42
+ load: (projectRoot: string) => Promise<InstanceInfo | undefined>;
43
+ /**
44
+ * Releases the instance lock by deleting instance.json.
45
+ *
46
+ * Called during graceful shutdown.
47
+ *
48
+ * @param projectRoot - Root directory containing .brv/
49
+ */
50
+ release: (projectRoot: string) => Promise<void>;
51
+ /**
52
+ * Updates the current session ID in instance.json.
53
+ *
54
+ * @param projectRoot - Root directory containing .brv/
55
+ * @param sessionId - New session ID to set
56
+ */
57
+ updateSessionId: (projectRoot: string, sessionId: string) => Promise<void>;
58
+ }
@@ -0,0 +1,2 @@
1
+ export * from './i-instance-discovery.js';
2
+ export * from './i-instance-manager.js';
@@ -0,0 +1,2 @@
1
+ export * from './i-instance-discovery.js';
2
+ export * from './i-instance-manager.js';
@@ -0,0 +1,53 @@
1
+ /**
2
+ * NoOp Implementations for Core Interfaces
3
+ *
4
+ * These are used by CoreProcess when creating UseCases for Transport mode.
5
+ * Transport mode receives auth/config directly and doesn't use these stores,
6
+ * so NoOp implementations are sufficient.
7
+ */
8
+ import type { AuthToken } from '../domain/entities/auth-token.js';
9
+ import type { BrvConfig } from '../domain/entities/brv-config.js';
10
+ import type { EventName, PropertyDict } from '../domain/entities/event.js';
11
+ import type { IProjectConfigStore } from './i-project-config-store.js';
12
+ import type { ConfirmOptions, FileSelectorItem, FileSelectorOptions, InputOptions, ITerminal, SearchOptions, SelectOptions } from './i-terminal.js';
13
+ import type { ITokenStore } from './i-token-store.js';
14
+ import type { ITrackingService } from './i-tracking-service.js';
15
+ /**
16
+ * NoOp Terminal - Does nothing, used for headless Transport mode.
17
+ */
18
+ export declare class NoOpTerminal implements ITerminal {
19
+ actionStart(_message: string): void;
20
+ actionStop(_message?: string): void;
21
+ confirm(_options: ConfirmOptions): Promise<boolean>;
22
+ error(_message: string): void;
23
+ fileSelector(_options: FileSelectorOptions): Promise<FileSelectorItem | null>;
24
+ input(_options: InputOptions): Promise<string>;
25
+ log(_message?: string): void;
26
+ search<T>(_options: SearchOptions<T>): Promise<T>;
27
+ select<T>(_options: SelectOptions<T>): Promise<T>;
28
+ warn(_message: string): void;
29
+ }
30
+ /**
31
+ * NoOp Tracking Service - Does nothing, used for headless Transport mode.
32
+ */
33
+ export declare class NoOpTrackingService implements ITrackingService {
34
+ track(_eventName: EventName, _properties?: PropertyDict): Promise<void>;
35
+ }
36
+ /**
37
+ * NoOp Token Store - Always returns undefined, used when Core loads auth separately.
38
+ * In Transport mode, auth is passed directly to UseCases.
39
+ */
40
+ export declare class NoOpTokenStore implements ITokenStore {
41
+ clear(): Promise<void>;
42
+ load(): Promise<AuthToken | undefined>;
43
+ save(_token: AuthToken): Promise<void>;
44
+ }
45
+ /**
46
+ * NoOp Project Config Store - Always returns undefined, used when Core loads config separately.
47
+ * In Transport mode, brvConfig is passed directly to UseCases.
48
+ */
49
+ export declare class NoOpProjectConfigStore implements IProjectConfigStore {
50
+ exists(_directory?: string): Promise<boolean>;
51
+ read(_directory?: string): Promise<BrvConfig | undefined>;
52
+ write(_config: BrvConfig, _directory?: string): Promise<void>;
53
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * NoOp Implementations for Core Interfaces
3
+ *
4
+ * These are used by CoreProcess when creating UseCases for Transport mode.
5
+ * Transport mode receives auth/config directly and doesn't use these stores,
6
+ * so NoOp implementations are sufficient.
7
+ */
8
+ /**
9
+ * NoOp Terminal - Does nothing, used for headless Transport mode.
10
+ */
11
+ export class NoOpTerminal {
12
+ actionStart(_message) { }
13
+ actionStop(_message) { }
14
+ async confirm(_options) {
15
+ return false;
16
+ }
17
+ error(_message) { }
18
+ async fileSelector(_options) {
19
+ return null;
20
+ }
21
+ async input(_options) {
22
+ return '';
23
+ }
24
+ log(_message) { }
25
+ async search(_options) {
26
+ throw new Error('NoOpTerminal: search not supported in headless mode');
27
+ }
28
+ async select(_options) {
29
+ throw new Error('NoOpTerminal: select not supported in headless mode');
30
+ }
31
+ warn(_message) { }
32
+ }
33
+ /**
34
+ * NoOp Tracking Service - Does nothing, used for headless Transport mode.
35
+ */
36
+ export class NoOpTrackingService {
37
+ async track(_eventName, _properties) { }
38
+ }
39
+ /**
40
+ * NoOp Token Store - Always returns undefined, used when Core loads auth separately.
41
+ * In Transport mode, auth is passed directly to UseCases.
42
+ */
43
+ export class NoOpTokenStore {
44
+ async clear() { }
45
+ async load() {
46
+ return undefined;
47
+ }
48
+ async save(_token) { }
49
+ }
50
+ /**
51
+ * NoOp Project Config Store - Always returns undefined, used when Core loads config separately.
52
+ * In Transport mode, brvConfig is passed directly to UseCases.
53
+ */
54
+ export class NoOpProjectConfigStore {
55
+ async exists(_directory) {
56
+ return false;
57
+ }
58
+ async read(_directory) {
59
+ return undefined;
60
+ }
61
+ async write(_config, _directory) { }
62
+ }
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Handler for server-broadcasted events.
3
+ * @param data - The event payload from server
4
+ */
5
+ export type EventHandler<T = unknown> = (data: T) => void;
6
+ /**
7
+ * Connection state of the transport client.
8
+ */
9
+ export type ConnectionState = 'connected' | 'connecting' | 'disconnected' | 'reconnecting';
10
+ /**
11
+ * Handler for connection state changes.
12
+ * @param state - The new connection state
13
+ */
14
+ export type ConnectionStateHandler = (state: ConnectionState) => void;
15
+ /**
16
+ * Options for client requests.
17
+ */
18
+ export type RequestOptions = {
19
+ /**
20
+ * Timeout in milliseconds for the request.
21
+ * If not specified, uses the default timeout.
22
+ */
23
+ timeout?: number;
24
+ };
25
+ /**
26
+ * Interface for transport client operations.
27
+ * Provides abstraction over real-time communication protocols (Socket.IO, WebSocket, etc.)
28
+ * following Clean Architecture principles.
29
+ *
30
+ * The client:
31
+ * - Connects to a transport server
32
+ * - Sends requests and receives responses
33
+ * - Listens for broadcast events
34
+ * - Joins rooms for targeted broadcasts
35
+ */
36
+ export interface ITransportClient {
37
+ /**
38
+ * Connects to the transport server at the specified URL.
39
+ * @param url - The server URL to connect to (e.g., "http://localhost:9847")
40
+ * @throws Error if connection fails
41
+ */
42
+ connect: (url: string) => Promise<void>;
43
+ /**
44
+ * Disconnects from the transport server.
45
+ * Cleans up resources and stops reconnection attempts.
46
+ */
47
+ disconnect: () => Promise<void>;
48
+ /**
49
+ * Returns the unique client ID assigned by the server.
50
+ * Returns undefined if not connected.
51
+ */
52
+ getClientId: () => string | undefined;
53
+ /**
54
+ * Returns the current connection state.
55
+ */
56
+ getState: () => ConnectionState;
57
+ /**
58
+ * Joins a room for targeted broadcasts.
59
+ * @param room - The room identifier to join
60
+ */
61
+ joinRoom: (room: string) => Promise<void>;
62
+ /**
63
+ * Leaves a room.
64
+ * @param room - The room identifier to leave
65
+ */
66
+ leaveRoom: (room: string) => Promise<void>;
67
+ /**
68
+ * Registers a handler for a specific event from the server.
69
+ * Multiple handlers can be registered for the same event.
70
+ * @param event - The event name to listen for
71
+ * @param handler - The function to handle incoming events
72
+ * @returns A function to unsubscribe the handler
73
+ */
74
+ on: <T = unknown>(event: string, handler: EventHandler<T>) => () => void;
75
+ /**
76
+ * Registers a one-time handler for a specific event.
77
+ * The handler will be automatically removed after first invocation.
78
+ * @param event - The event name to listen for
79
+ * @param handler - The function to handle the event
80
+ */
81
+ once: <T = unknown>(event: string, handler: EventHandler<T>) => void;
82
+ /**
83
+ * Registers a handler for connection state changes.
84
+ * @param handler - Called when connection state changes
85
+ * @returns A function to unsubscribe the handler
86
+ */
87
+ onStateChange: (handler: ConnectionStateHandler) => () => void;
88
+ /**
89
+ * Sends a request to the server and waits for a response.
90
+ * @param event - The event name
91
+ * @param data - The request payload
92
+ * @param options - Optional request configuration
93
+ * @returns The server's response
94
+ * @throws Error if request times out or server returns an error
95
+ */
96
+ request: <TResponse = unknown, TRequest = unknown>(event: string, data?: TRequest, options?: RequestOptions) => Promise<TResponse>;
97
+ }
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Handler for incoming client requests.
3
+ * @param data - The request payload from client
4
+ * @param clientId - Unique identifier of the requesting client
5
+ * @returns Response data or void for fire-and-forget events
6
+ */
7
+ export type RequestHandler<TRequest = unknown, TResponse = unknown> = (data: TRequest, clientId: string) => Promise<TResponse> | TResponse;
8
+ /**
9
+ * Connection event handler.
10
+ * @param clientId - Unique identifier of the connected/disconnected client
11
+ */
12
+ export type ConnectionHandler = (clientId: string) => void;
13
+ /**
14
+ * Interface for transport server operations.
15
+ * Provides abstraction over real-time communication protocols (Socket.IO, WebSocket, etc.)
16
+ * following Clean Architecture principles.
17
+ *
18
+ * The server acts as a hub that:
19
+ * - Accepts client connections
20
+ * - Routes requests to handlers
21
+ * - Broadcasts events to connected clients
22
+ */
23
+ export interface ITransportServer {
24
+ /**
25
+ * Adds a client to a room for targeted broadcasts.
26
+ * @param clientId - The client to add
27
+ * @param room - The room to join
28
+ */
29
+ addToRoom: (clientId: string, room: string) => void;
30
+ /**
31
+ * Broadcasts an event to all connected clients.
32
+ * @param event - The event name
33
+ * @param data - The data to send
34
+ */
35
+ broadcast: <T = unknown>(event: string, data: T) => void;
36
+ /**
37
+ * Broadcasts an event to clients in a specific room.
38
+ * @param room - The room identifier
39
+ * @param event - The event name
40
+ * @param data - The data to send
41
+ */
42
+ broadcastTo: <T = unknown>(room: string, event: string, data: T) => void;
43
+ /**
44
+ * Returns the port the server is listening on.
45
+ * Returns undefined if server is not started.
46
+ */
47
+ getPort: () => number | undefined;
48
+ /**
49
+ * Returns whether the server is currently running.
50
+ */
51
+ isRunning: () => boolean;
52
+ /**
53
+ * Registers a handler for client connection events.
54
+ * @param handler - Called when a client connects
55
+ */
56
+ onConnection: (handler: ConnectionHandler) => void;
57
+ /**
58
+ * Registers a handler for client disconnection events.
59
+ * @param handler - Called when a client disconnects
60
+ */
61
+ onDisconnection: (handler: ConnectionHandler) => void;
62
+ /**
63
+ * Registers a handler for a specific event type.
64
+ * The handler will be called when any client emits that event.
65
+ * @param event - The event name to listen for
66
+ * @param handler - The function to handle incoming requests
67
+ */
68
+ onRequest: <TRequest = unknown, TResponse = unknown>(event: string, handler: RequestHandler<TRequest, TResponse>) => void;
69
+ /**
70
+ * Removes a client from a room.
71
+ * @param clientId - The client to remove
72
+ * @param room - The room to leave
73
+ */
74
+ removeFromRoom: (clientId: string, room: string) => void;
75
+ /**
76
+ * Sends an event directly to a specific client.
77
+ * @param clientId - The target client ID
78
+ * @param event - The event name
79
+ * @param data - The data to send
80
+ */
81
+ sendTo: <T = unknown>(clientId: string, event: string, data: T) => void;
82
+ /**
83
+ * Starts the transport server on the specified port.
84
+ * @param port - The port number to listen on
85
+ * @throws Error if server fails to start (e.g., port in use)
86
+ */
87
+ start: (port: number) => Promise<void>;
88
+ /**
89
+ * Gracefully stops the transport server.
90
+ * Closes all client connections and releases resources.
91
+ */
92
+ stop: () => Promise<void>;
93
+ }
@@ -0,0 +1,2 @@
1
+ export * from './i-transport-client.js';
2
+ export * from './i-transport-server.js';
@@ -0,0 +1,2 @@
1
+ export * from './i-transport-client.js';
2
+ export * from './i-transport-server.js';
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Agent-specific error codes.
3
+ * Follows DextoAgent pattern for typed error identification.
4
+ */
5
+ export declare enum AgentErrorCode {
6
+ ALREADY_STARTED = "agent_already_started",
7
+ EXECUTION_FAILED = "agent_execution_failed",
8
+ INITIALIZATION_FAILED = "agent_initialization_failed",
9
+ INVALID_CONFIG = "agent_invalid_config",
10
+ MISSING_REQUIRED_SERVICE = "agent_missing_required_service",
11
+ NOT_STARTED = "agent_not_started",
12
+ SERVICE_NOT_INITIALIZED = "agent_service_not_initialized",
13
+ SESSION_LIMIT_EXCEEDED = "agent_session_limit_exceeded",
14
+ SESSION_NOT_FOUND = "agent_session_not_found",
15
+ STOPPED = "agent_stopped"
16
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Agent-specific error codes.
3
+ * Follows DextoAgent pattern for typed error identification.
4
+ */
5
+ export var AgentErrorCode;
6
+ (function (AgentErrorCode) {
7
+ AgentErrorCode["ALREADY_STARTED"] = "agent_already_started";
8
+ AgentErrorCode["EXECUTION_FAILED"] = "agent_execution_failed";
9
+ AgentErrorCode["INITIALIZATION_FAILED"] = "agent_initialization_failed";
10
+ AgentErrorCode["INVALID_CONFIG"] = "agent_invalid_config";
11
+ AgentErrorCode["MISSING_REQUIRED_SERVICE"] = "agent_missing_required_service";
12
+ AgentErrorCode["NOT_STARTED"] = "agent_not_started";
13
+ AgentErrorCode["SERVICE_NOT_INITIALIZED"] = "agent_service_not_initialized";
14
+ AgentErrorCode["SESSION_LIMIT_EXCEEDED"] = "agent_session_limit_exceeded";
15
+ AgentErrorCode["SESSION_NOT_FOUND"] = "agent_session_not_found";
16
+ AgentErrorCode["STOPPED"] = "agent_stopped";
17
+ })(AgentErrorCode || (AgentErrorCode = {}));
@@ -0,0 +1,54 @@
1
+ import { ExitCode, ExitError } from '../exit-codes.js';
2
+ import { AgentErrorCode } from './agent-error-codes.js';
3
+ /**
4
+ * Agent-specific error with typed error codes.
5
+ * Extends ExitError for oclif CLI integration.
6
+ *
7
+ * Follows DextoAgent pattern with static factory methods
8
+ * for creating well-typed errors.
9
+ */
10
+ export declare class AgentError extends ExitError {
11
+ readonly agentErrorCode: AgentErrorCode;
12
+ readonly details?: unknown;
13
+ constructor(agentErrorCode: AgentErrorCode, exitCode: ExitCode, message: string, details?: unknown);
14
+ /**
15
+ * Agent is already started and cannot be started again.
16
+ */
17
+ static alreadyStarted(): AgentError;
18
+ /**
19
+ * Agent execution failed.
20
+ */
21
+ static executionFailed(reason: string, details?: unknown): AgentError;
22
+ /**
23
+ * Agent initialization failed.
24
+ */
25
+ static initializationFailed(reason: string, details?: unknown): AgentError;
26
+ /**
27
+ * Invalid agent configuration.
28
+ */
29
+ static invalidConfig(reason: string, details?: unknown): AgentError;
30
+ /**
31
+ * Required service is missing during agent start.
32
+ */
33
+ static missingRequiredService(serviceName: string): AgentError;
34
+ /**
35
+ * Agent must be started before performing operations.
36
+ */
37
+ static notStarted(): AgentError;
38
+ /**
39
+ * Service not initialized (internal bug).
40
+ */
41
+ static serviceNotInitialized(serviceName: string): AgentError;
42
+ /**
43
+ * Maximum session limit exceeded.
44
+ */
45
+ static sessionLimitExceeded(limit: number): AgentError;
46
+ /**
47
+ * Session not found.
48
+ */
49
+ static sessionNotFound(sessionId: string): AgentError;
50
+ /**
51
+ * Agent has been stopped and cannot be used.
52
+ */
53
+ static stopped(): AgentError;
54
+ }
@@ -0,0 +1,79 @@
1
+ import { ExitCode, ExitError } from '../exit-codes.js';
2
+ import { AgentErrorCode } from './agent-error-codes.js';
3
+ /**
4
+ * Agent-specific error with typed error codes.
5
+ * Extends ExitError for oclif CLI integration.
6
+ *
7
+ * Follows DextoAgent pattern with static factory methods
8
+ * for creating well-typed errors.
9
+ */
10
+ export class AgentError extends ExitError {
11
+ agentErrorCode;
12
+ details;
13
+ constructor(agentErrorCode, exitCode, message, details) {
14
+ super(exitCode, message);
15
+ this.name = 'AgentError';
16
+ this.agentErrorCode = agentErrorCode;
17
+ this.details = details;
18
+ }
19
+ /**
20
+ * Agent is already started and cannot be started again.
21
+ */
22
+ static alreadyStarted() {
23
+ return new AgentError(AgentErrorCode.ALREADY_STARTED, ExitCode.RUNTIME_ERROR, 'Agent is already started. Call stop() before restarting.');
24
+ }
25
+ /**
26
+ * Agent execution failed.
27
+ */
28
+ static executionFailed(reason, details) {
29
+ return new AgentError(AgentErrorCode.EXECUTION_FAILED, ExitCode.RUNTIME_ERROR, `Agent execution failed: ${reason}`, details);
30
+ }
31
+ /**
32
+ * Agent initialization failed.
33
+ */
34
+ static initializationFailed(reason, details) {
35
+ return new AgentError(AgentErrorCode.INITIALIZATION_FAILED, ExitCode.RUNTIME_ERROR, `Agent initialization failed: ${reason}`, details);
36
+ }
37
+ /**
38
+ * Invalid agent configuration.
39
+ */
40
+ static invalidConfig(reason, details) {
41
+ return new AgentError(AgentErrorCode.INVALID_CONFIG, ExitCode.CONFIG_ERROR, `Invalid agent configuration: ${reason}`, details);
42
+ }
43
+ /**
44
+ * Required service is missing during agent start.
45
+ */
46
+ static missingRequiredService(serviceName) {
47
+ return new AgentError(AgentErrorCode.MISSING_REQUIRED_SERVICE, ExitCode.RUNTIME_ERROR, `Required service '${serviceName}' is missing during agent start.`);
48
+ }
49
+ /**
50
+ * Agent must be started before performing operations.
51
+ */
52
+ static notStarted() {
53
+ return new AgentError(AgentErrorCode.NOT_STARTED, ExitCode.RUNTIME_ERROR, 'Agent must be started before use. Call start() first.');
54
+ }
55
+ /**
56
+ * Service not initialized (internal bug).
57
+ */
58
+ static serviceNotInitialized(serviceName) {
59
+ return new AgentError(AgentErrorCode.SERVICE_NOT_INITIALIZED, ExitCode.RUNTIME_ERROR, `Service '${serviceName}' not initialized. This is a bug.`);
60
+ }
61
+ /**
62
+ * Maximum session limit exceeded.
63
+ */
64
+ static sessionLimitExceeded(limit) {
65
+ return new AgentError(AgentErrorCode.SESSION_LIMIT_EXCEEDED, ExitCode.RUNTIME_ERROR, `Maximum sessions (${limit}) reached. Delete unused sessions or increase limit.`);
66
+ }
67
+ /**
68
+ * Session not found.
69
+ */
70
+ static sessionNotFound(sessionId) {
71
+ return new AgentError(AgentErrorCode.SESSION_NOT_FOUND, ExitCode.VALIDATION_ERROR, `Session '${sessionId}' not found.`);
72
+ }
73
+ /**
74
+ * Agent has been stopped and cannot be used.
75
+ */
76
+ static stopped() {
77
+ return new AgentError(AgentErrorCode.STOPPED, ExitCode.RUNTIME_ERROR, 'Agent has been stopped and cannot be used. Create a new instance or call start() again.');
78
+ }
79
+ }