byterover-cli 1.8.0 → 2.1.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 (1362) hide show
  1. package/README.md +19 -594
  2. package/bin/kill-daemon.js +78 -0
  3. package/bin/run.js +2 -2
  4. package/dist/agent/core/domain/blob/types.d.ts +8 -2
  5. package/dist/agent/core/domain/llm/index.d.ts +2 -2
  6. package/dist/agent/core/domain/llm/index.js +2 -2
  7. package/dist/agent/core/domain/llm/registry.d.ts +8 -0
  8. package/dist/agent/core/domain/llm/registry.js +387 -14
  9. package/dist/agent/core/domain/llm/schemas.d.ts +13 -13
  10. package/dist/agent/core/domain/llm/schemas.js +3 -3
  11. package/dist/agent/core/domain/llm/types.d.ts +15 -5
  12. package/dist/agent/core/domain/llm/types.js +8 -2
  13. package/dist/agent/core/domain/sandbox/types.d.ts +8 -0
  14. package/dist/agent/core/domain/session/session-metadata.d.ts +7 -2
  15. package/dist/agent/core/domain/session/session-metadata.js +14 -4
  16. package/dist/agent/core/domain/streaming/types.d.ts +2 -0
  17. package/dist/agent/core/domain/tools/constants.d.ts +3 -0
  18. package/dist/agent/core/domain/tools/constants.js +3 -0
  19. package/dist/agent/core/domain/tools/types.d.ts +2 -0
  20. package/dist/agent/core/interfaces/cipher-services.d.ts +2 -4
  21. package/dist/agent/core/interfaces/i-chat-session.d.ts +1 -1
  22. package/dist/agent/core/interfaces/i-cipher-agent.d.ts +70 -0
  23. package/dist/agent/core/interfaces/i-curate-service.d.ts +23 -8
  24. package/dist/agent/core/interfaces/i-history-storage.d.ts +8 -0
  25. package/dist/agent/core/interfaces/i-key-storage.d.ts +11 -0
  26. package/dist/agent/core/interfaces/i-llm-service.d.ts +1 -1
  27. package/dist/agent/core/interfaces/i-sandbox-service.d.ts +34 -0
  28. package/dist/agent/core/interfaces/i-session-persistence.d.ts +3 -36
  29. package/dist/agent/core/interfaces/i-session-persistence.js +1 -1
  30. package/dist/agent/core/interfaces/i-tool-provider.d.ts +10 -0
  31. package/dist/agent/core/interfaces/i-tool-scheduler.d.ts +9 -0
  32. package/dist/agent/infra/agent/agent-schemas.d.ts +20 -8
  33. package/dist/agent/infra/agent/agent-schemas.js +8 -4
  34. package/dist/agent/infra/agent/cipher-agent.d.ts +111 -2
  35. package/dist/agent/infra/agent/cipher-agent.js +322 -20
  36. package/dist/agent/infra/agent/interactive-loop.js +1 -5
  37. package/dist/agent/infra/agent/provider-update-config.d.ts +17 -0
  38. package/dist/agent/infra/agent/service-initializer.d.ts +24 -7
  39. package/dist/agent/infra/agent/service-initializer.js +85 -92
  40. package/dist/agent/infra/blob/blob-storage-factory.d.ts +3 -3
  41. package/dist/agent/infra/blob/blob-storage-factory.js +5 -5
  42. package/dist/agent/infra/blob/file-blob-storage.d.ts +96 -0
  43. package/dist/agent/infra/blob/file-blob-storage.js +454 -0
  44. package/dist/agent/infra/blob/index.d.ts +2 -3
  45. package/dist/agent/infra/blob/index.js +4 -6
  46. package/dist/agent/infra/file-system/file-system-service.js +6 -3
  47. package/dist/agent/infra/http/internal-llm-http-service.d.ts +9 -5
  48. package/dist/agent/infra/http/internal-llm-http-service.js +12 -7
  49. package/dist/agent/infra/llm/agent-llm-service.d.ts +423 -0
  50. package/dist/agent/infra/llm/agent-llm-service.js +1273 -0
  51. package/dist/agent/infra/llm/context/compaction/compaction-service.d.ts +14 -12
  52. package/dist/agent/infra/llm/context/compaction/compaction-service.js +26 -9
  53. package/dist/agent/infra/llm/context/compression/compression-helpers.d.ts +35 -0
  54. package/dist/agent/infra/llm/context/compression/compression-helpers.js +124 -0
  55. package/dist/agent/infra/llm/context/compression/escalated-compression.d.ts +62 -0
  56. package/dist/agent/infra/llm/context/compression/escalated-compression.js +144 -0
  57. package/dist/agent/infra/llm/context/compression/index.d.ts +3 -0
  58. package/dist/agent/infra/llm/context/compression/index.js +3 -0
  59. package/dist/agent/infra/llm/context/compression/reactive-overflow.d.ts +0 -27
  60. package/dist/agent/infra/llm/context/compression/reactive-overflow.js +5 -113
  61. package/dist/agent/infra/llm/context/context-manager.d.ts +64 -4
  62. package/dist/agent/infra/llm/context/context-manager.js +239 -104
  63. package/dist/agent/infra/llm/context/deferred-effects.d.ts +30 -0
  64. package/dist/agent/infra/llm/context/deferred-effects.js +40 -0
  65. package/dist/agent/infra/llm/formatters/gemini-formatter.d.ts +1 -1
  66. package/dist/agent/infra/llm/formatters/gemini-formatter.js +14 -10
  67. package/dist/agent/infra/llm/generators/ai-sdk-content-generator.d.ts +33 -0
  68. package/dist/agent/infra/llm/generators/ai-sdk-content-generator.js +166 -0
  69. package/dist/agent/infra/llm/generators/ai-sdk-message-converter.d.ts +20 -0
  70. package/dist/agent/infra/llm/generators/ai-sdk-message-converter.js +182 -0
  71. package/dist/agent/infra/llm/generators/index.d.ts +3 -3
  72. package/dist/agent/infra/llm/generators/index.js +3 -3
  73. package/dist/agent/infra/llm/generators/retryable-content-generator.d.ts +7 -0
  74. package/dist/agent/infra/llm/generators/retryable-content-generator.js +29 -5
  75. package/dist/agent/infra/llm/index.d.ts +1 -2
  76. package/dist/agent/infra/llm/index.js +2 -3
  77. package/dist/agent/infra/llm/model-capabilities.d.ts +1 -0
  78. package/dist/agent/infra/llm/model-capabilities.js +31 -0
  79. package/dist/agent/infra/llm/providers/anthropic.d.ts +7 -0
  80. package/dist/agent/infra/llm/providers/anthropic.js +27 -0
  81. package/dist/agent/infra/llm/providers/byterover.d.ts +9 -0
  82. package/dist/agent/infra/llm/providers/byterover.js +37 -0
  83. package/dist/agent/infra/llm/providers/cerebras.d.ts +7 -0
  84. package/dist/agent/infra/llm/providers/cerebras.js +31 -0
  85. package/dist/agent/infra/llm/providers/cohere.d.ts +7 -0
  86. package/dist/agent/infra/llm/providers/cohere.js +26 -0
  87. package/dist/agent/infra/llm/providers/deepinfra.d.ts +7 -0
  88. package/dist/agent/infra/llm/providers/deepinfra.js +26 -0
  89. package/dist/agent/infra/llm/providers/glm.d.ts +7 -0
  90. package/dist/agent/infra/llm/providers/glm.js +30 -0
  91. package/dist/agent/infra/llm/providers/google.d.ts +7 -0
  92. package/dist/agent/infra/llm/providers/google.js +25 -0
  93. package/dist/agent/infra/llm/providers/groq.d.ts +7 -0
  94. package/dist/agent/infra/llm/providers/groq.js +26 -0
  95. package/dist/agent/infra/llm/providers/index.d.ts +24 -0
  96. package/dist/agent/infra/llm/providers/index.js +73 -0
  97. package/dist/agent/infra/llm/providers/minimax.d.ts +7 -0
  98. package/dist/agent/infra/llm/providers/minimax.js +30 -0
  99. package/dist/agent/infra/llm/providers/mistral.d.ts +7 -0
  100. package/dist/agent/infra/llm/providers/mistral.js +26 -0
  101. package/dist/agent/infra/llm/providers/moonshot.d.ts +7 -0
  102. package/dist/agent/infra/llm/providers/moonshot.js +30 -0
  103. package/dist/agent/infra/llm/providers/openai-compatible.d.ts +9 -0
  104. package/dist/agent/infra/llm/providers/openai-compatible.js +30 -0
  105. package/dist/agent/infra/llm/providers/openai.d.ts +7 -0
  106. package/dist/agent/infra/llm/providers/openai.js +26 -0
  107. package/dist/agent/infra/llm/providers/openrouter.d.ts +7 -0
  108. package/dist/agent/infra/llm/providers/openrouter.js +26 -0
  109. package/dist/agent/infra/llm/providers/perplexity.d.ts +7 -0
  110. package/dist/agent/infra/llm/providers/perplexity.js +26 -0
  111. package/dist/agent/infra/llm/providers/togetherai.d.ts +7 -0
  112. package/dist/agent/infra/llm/providers/togetherai.js +26 -0
  113. package/dist/agent/infra/llm/providers/types.d.ts +77 -0
  114. package/dist/agent/infra/llm/providers/types.js +7 -0
  115. package/dist/agent/infra/llm/providers/vercel.d.ts +7 -0
  116. package/dist/agent/infra/llm/providers/vercel.js +32 -0
  117. package/dist/agent/infra/llm/providers/xai.d.ts +7 -0
  118. package/dist/agent/infra/llm/providers/xai.js +26 -0
  119. package/dist/agent/infra/llm/retry/retry-policy.d.ts +13 -0
  120. package/dist/agent/infra/llm/retry/retry-policy.js +207 -0
  121. package/dist/agent/infra/llm/tokenizers/openrouter-tokenizer.js +1 -1
  122. package/dist/agent/infra/llm/tool-output-processor.d.ts +16 -4
  123. package/dist/agent/infra/llm/tool-output-processor.js +61 -16
  124. package/dist/agent/infra/map/agentic-map-service.d.ts +97 -0
  125. package/dist/agent/infra/map/agentic-map-service.js +309 -0
  126. package/dist/agent/infra/map/context-tree-store.d.ts +94 -0
  127. package/dist/agent/infra/map/context-tree-store.js +278 -0
  128. package/dist/agent/infra/map/index.d.ts +4 -0
  129. package/dist/agent/infra/map/index.js +4 -0
  130. package/dist/agent/infra/map/llm-map-memory.d.ts +59 -0
  131. package/dist/agent/infra/map/llm-map-memory.js +187 -0
  132. package/dist/agent/infra/map/llm-map-service.d.ts +36 -0
  133. package/dist/agent/infra/map/llm-map-service.js +118 -0
  134. package/dist/agent/infra/map/map-shared.d.ts +140 -0
  135. package/dist/agent/infra/map/map-shared.js +325 -0
  136. package/dist/agent/infra/map/worker-pool.d.ts +45 -0
  137. package/dist/agent/infra/map/worker-pool.js +73 -0
  138. package/dist/agent/infra/sandbox/curate-result-collector.d.ts +30 -0
  139. package/dist/agent/infra/sandbox/curate-result-collector.js +39 -0
  140. package/dist/agent/infra/sandbox/curate-service.d.ts +4 -1
  141. package/dist/agent/infra/sandbox/curate-service.js +12 -3
  142. package/dist/agent/infra/sandbox/curation-helpers.d.ts +62 -0
  143. package/dist/agent/infra/sandbox/curation-helpers.js +219 -0
  144. package/dist/agent/infra/sandbox/local-sandbox.d.ts +13 -0
  145. package/dist/agent/infra/sandbox/local-sandbox.js +41 -4
  146. package/dist/agent/infra/sandbox/sandbox-service.d.ts +52 -5
  147. package/dist/agent/infra/sandbox/sandbox-service.js +133 -18
  148. package/dist/agent/infra/sandbox/tools-sdk.d.ts +89 -4
  149. package/dist/agent/infra/sandbox/tools-sdk.js +80 -4
  150. package/dist/agent/infra/session/chat-session.d.ts +1 -1
  151. package/dist/agent/infra/session/chat-session.js +2 -2
  152. package/dist/agent/infra/session/session-event-forwarder.js +6 -3
  153. package/dist/agent/infra/session/session-manager.d.ts +20 -3
  154. package/dist/agent/infra/session/session-manager.js +49 -12
  155. package/dist/agent/infra/session/session-metadata-store.d.ts +17 -10
  156. package/dist/agent/infra/session/session-metadata-store.js +12 -87
  157. package/dist/agent/infra/storage/file-key-storage.d.ts +142 -0
  158. package/dist/agent/infra/storage/file-key-storage.js +572 -0
  159. package/dist/agent/infra/storage/granular-history-storage.d.ts +1 -1
  160. package/dist/agent/infra/storage/granular-history-storage.js +1 -1
  161. package/dist/agent/infra/storage/message-storage-service.js +134 -22
  162. package/dist/agent/infra/system-prompt/contributors/context-tree-structure-contributor.d.ts +4 -0
  163. package/dist/agent/infra/system-prompt/contributors/context-tree-structure-contributor.js +44 -16
  164. package/dist/agent/infra/system-prompt/contributors/map-selection-contributor.d.ts +16 -0
  165. package/dist/agent/infra/system-prompt/contributors/map-selection-contributor.js +47 -0
  166. package/dist/agent/infra/tools/core-tool-scheduler.js +3 -1
  167. package/dist/agent/infra/tools/implementations/agentic-map-tool.d.ts +35 -0
  168. package/dist/agent/infra/tools/implementations/agentic-map-tool.js +156 -0
  169. package/dist/agent/infra/tools/implementations/code-exec-tool.js +44 -2
  170. package/dist/agent/infra/tools/implementations/curate-tool.d.ts +98 -32
  171. package/dist/agent/infra/tools/implementations/curate-tool.js +86 -23
  172. package/dist/agent/infra/tools/implementations/expand-knowledge-tool.d.ts +18 -0
  173. package/dist/agent/infra/tools/implementations/expand-knowledge-tool.js +43 -0
  174. package/dist/agent/infra/tools/implementations/llm-map-tool.d.ts +24 -0
  175. package/dist/agent/infra/tools/implementations/llm-map-tool.js +87 -0
  176. package/dist/agent/infra/tools/implementations/memory-path-matcher.d.ts +48 -0
  177. package/dist/agent/infra/tools/implementations/memory-path-matcher.js +217 -0
  178. package/dist/agent/infra/tools/implementations/memory-symbol-tree.d.ts +128 -0
  179. package/dist/agent/infra/tools/implementations/memory-symbol-tree.js +283 -0
  180. package/dist/agent/infra/tools/implementations/search-knowledge-service.d.ts +49 -6
  181. package/dist/agent/infra/tools/implementations/search-knowledge-service.js +393 -46
  182. package/dist/agent/infra/tools/implementations/search-knowledge-tool.d.ts +2 -1
  183. package/dist/agent/infra/tools/implementations/search-knowledge-tool.js +50 -6
  184. package/dist/agent/infra/tools/tool-manager.js +6 -0
  185. package/dist/agent/infra/tools/tool-provider.d.ts +12 -0
  186. package/dist/agent/infra/tools/tool-provider.js +78 -0
  187. package/dist/agent/infra/tools/tool-registry.d.ts +14 -0
  188. package/dist/agent/infra/tools/tool-registry.js +34 -2
  189. package/dist/agent/infra/transport/transport-event-bridge.d.ts +42 -0
  190. package/dist/agent/infra/transport/transport-event-bridge.js +90 -0
  191. package/dist/agent/infra/validation/workspace-validator.d.ts +3 -3
  192. package/dist/agent/infra/validation/workspace-validator.js +3 -8
  193. package/dist/agent/resources/prompts/curate-detail-preservation.yml +29 -1
  194. package/dist/agent/resources/prompts/system-prompt.yml +320 -102
  195. package/dist/agent/resources/tools/code_exec.txt +97 -0
  196. package/dist/agent/resources/tools/curate.txt +25 -13
  197. package/dist/agent/resources/tools/detect_domains.txt +4 -3
  198. package/dist/agent/resources/tools/expand_knowledge.txt +20 -0
  199. package/dist/oclif/commands/connectors/index.d.ts +12 -0
  200. package/dist/oclif/commands/connectors/index.js +53 -0
  201. package/dist/oclif/commands/connectors/install.d.ts +31 -0
  202. package/dist/oclif/commands/connectors/install.js +148 -0
  203. package/dist/oclif/commands/connectors/list.d.ts +5 -0
  204. package/dist/oclif/commands/connectors/list.js +8 -0
  205. package/dist/oclif/commands/curate/index.d.ts +25 -0
  206. package/dist/oclif/commands/curate/index.js +255 -0
  207. package/dist/oclif/commands/curate/view.d.ts +18 -0
  208. package/dist/oclif/commands/curate/view.js +104 -0
  209. package/dist/oclif/commands/debug.d.ts +35 -0
  210. package/dist/oclif/commands/debug.js +436 -0
  211. package/dist/oclif/commands/hub/index.d.ts +5 -0
  212. package/dist/oclif/commands/hub/index.js +7 -0
  213. package/dist/oclif/commands/hub/install.d.ts +23 -0
  214. package/dist/oclif/commands/hub/install.js +74 -0
  215. package/dist/oclif/commands/hub/list.d.ts +13 -0
  216. package/dist/oclif/commands/hub/list.js +65 -0
  217. package/dist/oclif/commands/hub/registry/add.d.ts +19 -0
  218. package/dist/oclif/commands/hub/registry/add.js +74 -0
  219. package/dist/oclif/commands/hub/registry/index.d.ts +5 -0
  220. package/dist/oclif/commands/hub/registry/index.js +7 -0
  221. package/dist/oclif/commands/hub/registry/list.d.ts +12 -0
  222. package/dist/oclif/commands/hub/registry/list.js +49 -0
  223. package/dist/oclif/commands/hub/registry/remove.d.ts +15 -0
  224. package/dist/oclif/commands/hub/registry/remove.js +46 -0
  225. package/dist/oclif/commands/login.d.ts +4 -0
  226. package/dist/oclif/commands/login.js +51 -31
  227. package/dist/oclif/commands/main.d.ts +3 -17
  228. package/dist/oclif/commands/main.js +16 -96
  229. package/dist/oclif/commands/mcp.js +24 -5
  230. package/dist/oclif/commands/model/index.d.ts +15 -0
  231. package/dist/oclif/commands/model/index.js +59 -0
  232. package/dist/oclif/commands/model/list.d.ts +17 -0
  233. package/dist/oclif/commands/model/list.js +89 -0
  234. package/dist/oclif/commands/model/switch.d.ts +21 -0
  235. package/dist/oclif/commands/model/switch.js +81 -0
  236. package/dist/oclif/commands/providers/connect.d.ts +26 -0
  237. package/dist/oclif/commands/providers/connect.js +119 -0
  238. package/dist/oclif/commands/providers/disconnect.d.ts +14 -0
  239. package/dist/oclif/commands/providers/disconnect.js +61 -0
  240. package/dist/oclif/commands/providers/index.d.ts +15 -0
  241. package/dist/oclif/commands/providers/index.js +59 -0
  242. package/dist/oclif/commands/providers/list.d.ts +12 -0
  243. package/dist/oclif/commands/providers/list.js +45 -0
  244. package/dist/oclif/commands/providers/switch.d.ts +17 -0
  245. package/dist/oclif/commands/providers/switch.js +61 -0
  246. package/dist/oclif/commands/pull.d.ts +1 -6
  247. package/dist/oclif/commands/pull.js +46 -49
  248. package/dist/oclif/commands/push.d.ts +1 -7
  249. package/dist/oclif/commands/push.js +66 -59
  250. package/dist/oclif/commands/query.d.ts +5 -7
  251. package/dist/oclif/commands/query.js +141 -43
  252. package/dist/oclif/commands/restart.d.ts +95 -0
  253. package/dist/oclif/commands/restart.js +333 -0
  254. package/dist/oclif/commands/space/list.d.ts +12 -0
  255. package/dist/oclif/commands/space/list.js +66 -0
  256. package/dist/oclif/commands/space/switch.d.ts +17 -0
  257. package/dist/oclif/commands/space/switch.js +87 -0
  258. package/dist/oclif/commands/status.d.ts +4 -9
  259. package/dist/oclif/commands/status.js +94 -49
  260. package/dist/oclif/hooks/prerun/validate-brv-config-version.d.ts +16 -11
  261. package/dist/oclif/hooks/prerun/validate-brv-config-version.js +67 -24
  262. package/dist/oclif/lib/daemon-client.d.ts +40 -0
  263. package/dist/oclif/lib/daemon-client.js +142 -0
  264. package/dist/oclif/lib/json-response.d.ts +9 -0
  265. package/dist/oclif/lib/json-response.js +10 -0
  266. package/dist/oclif/lib/task-client.d.ts +68 -0
  267. package/dist/oclif/lib/task-client.js +227 -0
  268. package/dist/server/config/environment.d.ts +1 -1
  269. package/dist/server/config/environment.js +2 -2
  270. package/dist/server/constants.d.ts +37 -1
  271. package/dist/server/constants.js +51 -2
  272. package/dist/server/core/domain/client/client-info.d.ts +82 -0
  273. package/dist/server/core/domain/client/client-info.js +87 -0
  274. package/dist/server/core/domain/entities/agent.d.ts +3 -6
  275. package/dist/server/core/domain/entities/agent.js +49 -54
  276. package/dist/server/core/domain/entities/brv-config.d.ts +31 -10
  277. package/dist/server/core/domain/entities/brv-config.js +68 -39
  278. package/dist/server/core/domain/entities/connector-type.d.ts +1 -11
  279. package/dist/server/core/domain/entities/connector-type.js +1 -10
  280. package/dist/server/core/domain/entities/context-tree-snapshot.d.ts +2 -11
  281. package/dist/server/core/domain/entities/curate-log-entry.d.ts +41 -0
  282. package/dist/server/core/domain/entities/curation-status.d.ts +28 -0
  283. package/dist/server/core/domain/entities/provider-config.d.ts +14 -1
  284. package/dist/server/core/domain/entities/provider-config.js +17 -6
  285. package/dist/server/core/domain/entities/provider-registry.d.ts +3 -1
  286. package/dist/server/core/domain/entities/provider-registry.js +216 -10
  287. package/dist/server/core/domain/errors/task-error.d.ts +17 -4
  288. package/dist/server/core/domain/errors/task-error.js +35 -10
  289. package/dist/server/core/domain/knowledge/markdown-writer.d.ts +58 -1
  290. package/dist/server/core/domain/knowledge/markdown-writer.js +288 -30
  291. package/dist/server/core/domain/knowledge/memory-scoring.d.ts +118 -0
  292. package/dist/server/core/domain/knowledge/memory-scoring.js +217 -0
  293. package/dist/server/core/domain/knowledge/relation-parser.d.ts +16 -0
  294. package/dist/server/core/domain/knowledge/relation-parser.js +21 -8
  295. package/dist/server/core/domain/knowledge/summary-types.d.ts +126 -0
  296. package/dist/server/core/domain/knowledge/summary-types.js +7 -0
  297. package/dist/server/core/domain/project/project-info.d.ts +54 -0
  298. package/dist/server/core/domain/project/project-info.js +62 -0
  299. package/dist/server/core/domain/transport/schemas.d.ts +93 -19
  300. package/dist/server/core/domain/transport/schemas.js +40 -1
  301. package/dist/server/core/domain/transport/task-info.d.ts +21 -0
  302. package/dist/server/core/interfaces/agent/i-agent-pool.d.ts +88 -0
  303. package/dist/server/core/interfaces/client/i-client-manager.d.ts +117 -0
  304. package/dist/server/core/interfaces/context-tree/i-context-file-reader.d.ts +5 -1
  305. package/dist/server/core/interfaces/context-tree/i-context-tree-archive-service.d.ts +30 -0
  306. package/dist/server/core/interfaces/context-tree/i-context-tree-manifest-service.d.ts +30 -0
  307. package/dist/server/core/interfaces/context-tree/i-context-tree-merger.d.ts +80 -0
  308. package/dist/server/core/interfaces/context-tree/i-context-tree-service.d.ts +5 -0
  309. package/dist/server/core/interfaces/context-tree/i-context-tree-snapshot-service.d.ts +15 -0
  310. package/dist/server/core/interfaces/context-tree/i-context-tree-summary-service.d.ts +29 -0
  311. package/dist/server/core/interfaces/daemon/i-agent-idle-timeout-policy.d.ts +39 -0
  312. package/dist/server/core/interfaces/daemon/i-daemon-resilience.d.ts +24 -0
  313. package/dist/server/core/interfaces/daemon/i-heartbeat-writer.d.ts +28 -0
  314. package/dist/server/core/interfaces/daemon/i-idle-timeout-policy.d.ts +34 -0
  315. package/dist/server/core/interfaces/daemon/i-shutdown-handler.d.ts +20 -0
  316. package/dist/server/core/interfaces/daemon/index.d.ts +4 -0
  317. package/dist/server/core/interfaces/daemon/index.js +2 -0
  318. package/dist/server/core/interfaces/executor/i-curate-executor.d.ts +2 -2
  319. package/dist/server/core/interfaces/executor/i-query-executor.d.ts +2 -2
  320. package/dist/server/core/interfaces/hub/i-hub-install-service.d.ts +45 -0
  321. package/dist/server/core/interfaces/hub/i-hub-install-service.js +1 -0
  322. package/dist/server/core/interfaces/hub/i-hub-keychain-store.d.ts +27 -0
  323. package/dist/server/core/interfaces/hub/i-hub-keychain-store.js +1 -0
  324. package/dist/server/core/interfaces/hub/i-hub-registry-config-store.d.ts +27 -0
  325. package/dist/server/core/interfaces/hub/i-hub-registry-config-store.js +1 -0
  326. package/dist/server/core/interfaces/hub/i-hub-registry-service.d.ts +30 -0
  327. package/dist/server/core/interfaces/hub/i-hub-registry-service.js +1 -0
  328. package/dist/server/core/interfaces/i-provider-config-store.d.ts +3 -1
  329. package/dist/server/core/interfaces/i-provider-model-fetcher.d.ts +59 -0
  330. package/dist/server/core/interfaces/i-provider-model-fetcher.js +7 -0
  331. package/dist/server/core/interfaces/process/i-task-lifecycle-hook.d.ts +27 -0
  332. package/dist/server/core/interfaces/process/i-task-lifecycle-hook.js +1 -0
  333. package/dist/server/core/interfaces/project/i-project-registry.d.ts +46 -0
  334. package/dist/server/core/interfaces/project/i-project-registry.js +1 -0
  335. package/dist/server/core/interfaces/routing/i-project-router.d.ts +45 -0
  336. package/dist/server/core/interfaces/routing/i-project-router.js +1 -0
  337. package/dist/server/core/interfaces/routing/index.d.ts +1 -0
  338. package/dist/server/core/interfaces/routing/index.js +1 -0
  339. package/dist/server/core/interfaces/session/i-session-reader.d.ts +13 -0
  340. package/dist/server/core/interfaces/session/i-session-reader.js +1 -0
  341. package/dist/server/core/interfaces/state/i-auth-state-store.d.ts +68 -0
  342. package/dist/server/core/interfaces/state/i-auth-state-store.js +1 -0
  343. package/dist/server/core/interfaces/state/i-project-state-loader.d.ts +110 -0
  344. package/dist/server/core/interfaces/state/i-project-state-loader.js +1 -0
  345. package/dist/server/core/interfaces/storage/i-curate-log-store.d.ts +20 -0
  346. package/dist/server/core/interfaces/storage/i-curate-log-store.js +1 -0
  347. package/dist/server/core/interfaces/storage/i-global-config-store.d.ts +1 -15
  348. package/dist/server/core/interfaces/storage/i-mcp-config-writer.d.ts +5 -1
  349. package/dist/server/core/interfaces/storage/i-project-config-store.d.ts +6 -1
  350. package/dist/server/core/interfaces/transport/i-transport-server.d.ts +12 -2
  351. package/dist/server/core/interfaces/usecase/i-curate-log-use-case.d.ts +12 -0
  352. package/dist/server/core/interfaces/usecase/i-curate-log-use-case.js +1 -0
  353. package/dist/server/infra/client/client-manager.d.ts +51 -0
  354. package/dist/server/infra/client/client-manager.js +144 -0
  355. package/dist/server/infra/cogit/context-tree-to-push-context-mapper.js +12 -5
  356. package/dist/server/infra/config/auto-init.d.ts +14 -0
  357. package/dist/server/infra/config/auto-init.js +18 -0
  358. package/dist/server/infra/config/file-config-store.d.ts +1 -0
  359. package/dist/server/infra/config/file-config-store.js +15 -7
  360. package/dist/server/infra/connectors/mcp/json-mcp-config-writer.d.ts +1 -2
  361. package/dist/server/infra/connectors/mcp/json-mcp-config-writer.js +9 -8
  362. package/dist/server/infra/connectors/mcp/mcp-connector-config.d.ts +29 -6
  363. package/dist/server/infra/connectors/mcp/mcp-connector-config.js +28 -1
  364. package/dist/server/infra/connectors/mcp/mcp-connector.js +5 -5
  365. package/dist/server/infra/connectors/mcp/toml-mcp-config-writer.d.ts +1 -2
  366. package/dist/server/infra/connectors/rules/rules-connector-config.d.ts +8 -0
  367. package/dist/server/infra/connectors/rules/rules-connector-config.js +8 -0
  368. package/dist/server/infra/connectors/rules/rules-connector.js +34 -7
  369. package/dist/server/infra/connectors/shared/constants.d.ts +5 -0
  370. package/dist/server/infra/connectors/shared/constants.js +12 -0
  371. package/dist/server/infra/connectors/shared/rule-segment-patcher.d.ts +29 -0
  372. package/dist/server/infra/connectors/shared/rule-segment-patcher.js +208 -0
  373. package/dist/server/infra/connectors/skill/skill-connector-config.d.ts +79 -20
  374. package/dist/server/infra/connectors/skill/skill-connector-config.js +74 -10
  375. package/dist/server/infra/connectors/skill/skill-connector.d.ts +35 -4
  376. package/dist/server/infra/connectors/skill/skill-connector.js +140 -39
  377. package/dist/server/infra/context-tree/children-hash.d.ts +20 -0
  378. package/dist/server/infra/context-tree/children-hash.js +22 -0
  379. package/dist/server/infra/context-tree/derived-artifact.d.ts +28 -0
  380. package/dist/server/infra/context-tree/derived-artifact.js +48 -0
  381. package/dist/server/infra/context-tree/file-context-file-reader.js +6 -2
  382. package/dist/server/infra/context-tree/file-context-tree-archive-service.d.ts +37 -0
  383. package/dist/server/infra/context-tree/file-context-tree-archive-service.js +219 -0
  384. package/dist/server/infra/context-tree/file-context-tree-manifest-service.d.ts +50 -0
  385. package/dist/server/infra/context-tree/file-context-tree-manifest-service.js +278 -0
  386. package/dist/server/infra/context-tree/file-context-tree-merger.d.ts +51 -0
  387. package/dist/server/infra/context-tree/file-context-tree-merger.js +265 -0
  388. package/dist/server/infra/context-tree/file-context-tree-service.d.ts +1 -0
  389. package/dist/server/infra/context-tree/file-context-tree-service.js +6 -1
  390. package/dist/server/infra/context-tree/file-context-tree-snapshot-service.d.ts +2 -4
  391. package/dist/server/infra/context-tree/file-context-tree-snapshot-service.js +31 -13
  392. package/dist/server/infra/context-tree/file-context-tree-summary-service.d.ts +44 -0
  393. package/dist/server/infra/context-tree/file-context-tree-summary-service.js +313 -0
  394. package/dist/server/infra/context-tree/file-context-tree-writer-service.js +5 -0
  395. package/dist/server/infra/context-tree/hash-utils.d.ts +6 -0
  396. package/dist/server/infra/context-tree/hash-utils.js +9 -0
  397. package/dist/server/infra/context-tree/prompts/summary-generation.d.ts +22 -0
  398. package/dist/server/infra/context-tree/prompts/summary-generation.js +45 -0
  399. package/dist/server/infra/context-tree/snapshot-diff.d.ts +19 -0
  400. package/dist/server/infra/context-tree/snapshot-diff.js +39 -0
  401. package/dist/server/infra/context-tree/summary-frontmatter.d.ts +24 -0
  402. package/dist/server/infra/context-tree/summary-frontmatter.js +111 -0
  403. package/dist/server/infra/daemon/agent-idle-timeout-policy.d.ts +36 -0
  404. package/dist/server/infra/daemon/agent-idle-timeout-policy.js +89 -0
  405. package/dist/server/infra/daemon/agent-logger.d.ts +10 -0
  406. package/dist/server/infra/daemon/agent-logger.js +22 -0
  407. package/dist/server/infra/daemon/agent-pool.d.ts +112 -0
  408. package/dist/server/infra/daemon/agent-pool.js +335 -0
  409. package/dist/server/infra/daemon/agent-process.d.ts +21 -0
  410. package/dist/server/infra/daemon/agent-process.js +598 -0
  411. package/dist/server/infra/daemon/brv-server.d.ts +23 -0
  412. package/dist/server/infra/daemon/brv-server.js +405 -0
  413. package/dist/server/infra/daemon/daemon-resilience.d.ts +34 -0
  414. package/dist/server/infra/daemon/daemon-resilience.js +100 -0
  415. package/dist/server/infra/daemon/heartbeat.d.ts +28 -0
  416. package/dist/server/infra/daemon/heartbeat.js +81 -0
  417. package/dist/server/infra/daemon/idle-timeout-policy.d.ts +38 -0
  418. package/dist/server/infra/daemon/idle-timeout-policy.js +91 -0
  419. package/dist/server/infra/daemon/index.d.ts +5 -0
  420. package/dist/server/infra/daemon/index.js +11 -0
  421. package/dist/server/infra/daemon/port-selector.d.ts +28 -0
  422. package/dist/server/infra/daemon/port-selector.js +45 -0
  423. package/dist/server/infra/daemon/project-task-queue.d.ts +54 -0
  424. package/dist/server/infra/daemon/project-task-queue.js +103 -0
  425. package/dist/server/infra/daemon/session-resolver.d.ts +26 -0
  426. package/dist/server/infra/daemon/session-resolver.js +88 -0
  427. package/dist/server/infra/daemon/shutdown-handler.d.ts +42 -0
  428. package/dist/server/infra/daemon/shutdown-handler.js +101 -0
  429. package/dist/server/infra/executor/curate-executor.d.ts +11 -2
  430. package/dist/server/infra/executor/curate-executor.js +135 -13
  431. package/dist/server/infra/executor/direct-search-responder.d.ts +11 -8
  432. package/dist/server/infra/executor/direct-search-responder.js +16 -14
  433. package/dist/server/infra/executor/folder-pack-executor.js +58 -17
  434. package/dist/server/infra/executor/pre-compaction/compaction-escalation.d.ts +6 -0
  435. package/dist/server/infra/executor/pre-compaction/compaction-escalation.js +6 -0
  436. package/dist/server/infra/executor/pre-compaction/index.d.ts +3 -0
  437. package/dist/server/infra/executor/pre-compaction/index.js +1 -0
  438. package/dist/server/infra/executor/pre-compaction/pre-compaction-service.d.ts +59 -0
  439. package/dist/server/infra/executor/pre-compaction/pre-compaction-service.js +124 -0
  440. package/dist/server/infra/executor/pre-compaction/prompts.d.ts +24 -0
  441. package/dist/server/infra/executor/pre-compaction/prompts.js +47 -0
  442. package/dist/server/infra/executor/query-executor.d.ts +26 -6
  443. package/dist/server/infra/executor/query-executor.js +181 -40
  444. package/dist/server/infra/http/authenticated-http-client.js +4 -0
  445. package/dist/server/infra/http/provider-model-fetcher-registry.d.ts +31 -0
  446. package/dist/server/infra/http/provider-model-fetcher-registry.js +117 -0
  447. package/dist/server/infra/http/provider-model-fetchers.d.ts +94 -0
  448. package/dist/server/infra/http/provider-model-fetchers.js +450 -0
  449. package/dist/server/infra/hub/composite-hub-registry-service.d.ts +17 -0
  450. package/dist/server/infra/hub/composite-hub-registry-service.js +54 -0
  451. package/dist/server/infra/hub/hub-auth-headers.d.ts +11 -0
  452. package/dist/server/infra/hub/hub-auth-headers.js +29 -0
  453. package/dist/server/infra/hub/hub-install-service.d.ts +22 -0
  454. package/dist/server/infra/hub/hub-install-service.js +99 -0
  455. package/dist/server/infra/hub/hub-keychain-store.d.ts +29 -0
  456. package/dist/server/infra/hub/hub-keychain-store.js +98 -0
  457. package/dist/server/infra/hub/hub-registry-config-store.d.ts +24 -0
  458. package/dist/server/infra/hub/hub-registry-config-store.js +92 -0
  459. package/dist/server/infra/hub/hub-registry-service.d.ts +33 -0
  460. package/dist/server/infra/hub/hub-registry-service.js +109 -0
  461. package/dist/server/infra/mcp/mcp-mode-detector.d.ts +21 -0
  462. package/dist/server/infra/mcp/mcp-mode-detector.js +25 -0
  463. package/dist/server/infra/mcp/mcp-server.d.ts +15 -9
  464. package/dist/server/infra/mcp/mcp-server.js +84 -98
  465. package/dist/server/infra/mcp/tools/brv-curate-tool.d.ts +5 -10
  466. package/dist/server/infra/mcp/tools/brv-curate-tool.js +47 -17
  467. package/dist/server/infra/mcp/tools/brv-query-tool.d.ts +4 -1
  468. package/dist/server/infra/mcp/tools/brv-query-tool.js +39 -12
  469. package/dist/server/infra/mcp/tools/index.d.ts +1 -0
  470. package/dist/server/infra/mcp/tools/index.js +1 -0
  471. package/dist/server/infra/mcp/tools/resolve-client-cwd.d.ts +17 -0
  472. package/dist/server/infra/mcp/tools/resolve-client-cwd.js +27 -0
  473. package/dist/server/infra/mcp/tools/task-result-waiter.js +6 -5
  474. package/dist/server/infra/process/broadcast-utils.d.ts +16 -0
  475. package/dist/server/infra/process/broadcast-utils.js +22 -0
  476. package/dist/server/infra/process/connection-coordinator.d.ts +85 -0
  477. package/dist/server/infra/process/connection-coordinator.js +333 -0
  478. package/dist/server/infra/process/curate-log-handler.d.ts +35 -0
  479. package/dist/server/infra/process/curate-log-handler.js +179 -0
  480. package/dist/server/infra/process/feature-handlers.d.ts +25 -0
  481. package/dist/server/infra/process/feature-handlers.js +165 -0
  482. package/dist/server/infra/process/index.d.ts +6 -7
  483. package/dist/server/infra/process/index.js +5 -6
  484. package/dist/server/infra/process/task-router.d.ts +139 -0
  485. package/dist/server/infra/process/task-router.js +503 -0
  486. package/dist/server/infra/process/transport-handlers.d.ts +55 -117
  487. package/dist/server/infra/process/transport-handlers.js +50 -437
  488. package/dist/server/infra/process/types.d.ts +5 -0
  489. package/dist/server/infra/process/types.js +1 -0
  490. package/dist/server/infra/project/project-registry.d.ts +37 -0
  491. package/dist/server/infra/project/project-registry.js +147 -0
  492. package/dist/server/infra/provider/env-provider-detector.d.ts +33 -0
  493. package/dist/server/infra/provider/env-provider-detector.js +52 -0
  494. package/dist/server/infra/provider/provider-config-resolver.d.ts +30 -0
  495. package/dist/server/infra/provider/provider-config-resolver.js +112 -0
  496. package/dist/server/infra/routing/project-router.d.ts +35 -0
  497. package/dist/server/infra/routing/project-router.js +60 -0
  498. package/dist/server/infra/session/session-reader.d.ts +18 -0
  499. package/dist/server/infra/session/session-reader.js +17 -0
  500. package/dist/server/infra/state/auth-state-store.d.ts +55 -0
  501. package/dist/server/infra/state/auth-state-store.js +111 -0
  502. package/dist/server/infra/state/project-state-loader.d.ts +69 -0
  503. package/dist/server/infra/state/project-state-loader.js +154 -0
  504. package/dist/server/infra/storage/file-curate-log-store.d.ts +61 -0
  505. package/dist/server/infra/storage/file-curate-log-store.js +198 -0
  506. package/dist/server/infra/storage/file-global-config-store.d.ts +0 -2
  507. package/dist/server/infra/storage/file-global-config-store.js +0 -19
  508. package/dist/server/infra/storage/file-onboarding-preference-store.d.ts +1 -1
  509. package/dist/server/infra/storage/file-onboarding-preference-store.js +7 -8
  510. package/dist/server/infra/storage/file-provider-config-store.d.ts +3 -2
  511. package/dist/server/infra/storage/file-provider-config-store.js +3 -3
  512. package/dist/server/infra/storage/file-provider-keychain-store.d.ts +31 -0
  513. package/dist/server/infra/storage/file-provider-keychain-store.js +110 -0
  514. package/dist/server/infra/storage/file-token-store.d.ts +2 -5
  515. package/dist/server/infra/storage/file-token-store.js +2 -5
  516. package/dist/server/infra/storage/provider-keychain-store.d.ts +2 -33
  517. package/dist/server/infra/storage/provider-keychain-store.js +4 -71
  518. package/dist/server/infra/storage/token-store.d.ts +3 -8
  519. package/dist/server/infra/storage/token-store.js +4 -11
  520. package/dist/server/infra/transport/agent-instance-discovery.d.ts +20 -0
  521. package/dist/server/infra/transport/agent-instance-discovery.js +32 -0
  522. package/dist/server/infra/transport/handlers/agent-dto-mapper.d.ts +6 -0
  523. package/dist/server/infra/transport/handlers/agent-dto-mapper.js +16 -0
  524. package/dist/server/infra/transport/handlers/auth-handler.d.ts +60 -0
  525. package/dist/server/infra/transport/handlers/auth-handler.js +257 -0
  526. package/dist/server/infra/transport/handlers/config-handler.d.ts +13 -0
  527. package/dist/server/infra/transport/handlers/config-handler.js +22 -0
  528. package/dist/server/infra/transport/handlers/connectors-handler.d.ts +23 -0
  529. package/dist/server/infra/transport/handlers/connectors-handler.js +73 -0
  530. package/dist/server/infra/transport/handlers/handler-types.d.ts +23 -0
  531. package/dist/server/infra/transport/handlers/handler-types.js +21 -0
  532. package/dist/server/infra/transport/handlers/hub-handler.d.ts +34 -0
  533. package/dist/server/infra/transport/handlers/hub-handler.js +218 -0
  534. package/dist/server/infra/transport/handlers/index.d.ts +26 -0
  535. package/dist/server/infra/transport/handlers/index.js +13 -0
  536. package/dist/server/infra/transport/handlers/init-handler.d.ts +50 -0
  537. package/dist/server/infra/transport/handlers/init-handler.js +157 -0
  538. package/dist/server/infra/transport/handlers/model-handler.d.ts +22 -0
  539. package/dist/server/infra/transport/handlers/model-handler.js +107 -0
  540. package/dist/server/infra/transport/handlers/provider-handler.d.ts +25 -0
  541. package/dist/server/infra/transport/handlers/provider-handler.js +101 -0
  542. package/dist/server/infra/transport/handlers/pull-handler.d.ts +35 -0
  543. package/dist/server/infra/transport/handlers/pull-handler.js +87 -0
  544. package/dist/server/infra/transport/handlers/push-handler.d.ts +37 -0
  545. package/dist/server/infra/transport/handlers/push-handler.js +109 -0
  546. package/dist/server/infra/transport/handlers/reset-handler.d.ts +23 -0
  547. package/dist/server/infra/transport/handlers/reset-handler.js +33 -0
  548. package/dist/server/infra/transport/handlers/space-handler.d.ts +44 -0
  549. package/dist/server/infra/transport/handlers/space-handler.js +206 -0
  550. package/dist/server/infra/transport/handlers/status-handler.d.ts +29 -0
  551. package/dist/server/infra/transport/handlers/status-handler.js +99 -0
  552. package/dist/server/infra/transport/index.d.ts +1 -1
  553. package/dist/server/infra/transport/index.js +0 -1
  554. package/dist/server/infra/transport/port-utils.d.ts +0 -35
  555. package/dist/server/infra/transport/port-utils.js +0 -62
  556. package/dist/server/infra/transport/socket-io-transport-server.d.ts +6 -1
  557. package/dist/server/infra/transport/socket-io-transport-server.js +30 -10
  558. package/dist/server/infra/transport/transport-connector.d.ts +13 -0
  559. package/dist/server/infra/transport/transport-connector.js +18 -0
  560. package/dist/server/infra/usecase/curate-log-use-case.d.ts +32 -0
  561. package/dist/server/infra/usecase/curate-log-use-case.js +142 -0
  562. package/dist/server/templates/sections/brv-instructions.md +8 -0
  563. package/dist/server/templates/sections/command-reference.md +5 -2
  564. package/dist/server/templates/sections/workflow.md +2 -0
  565. package/dist/server/templates/skill/SKILL.md +138 -59
  566. package/dist/server/utils/config-xdg-sync.d.ts +13 -0
  567. package/dist/server/utils/config-xdg-sync.js +25 -0
  568. package/dist/server/utils/curate-result-parser.d.ts +121 -0
  569. package/dist/server/utils/curate-result-parser.js +120 -0
  570. package/dist/server/utils/global-config-path.d.ts +1 -1
  571. package/dist/server/utils/global-config-path.js +5 -2
  572. package/dist/server/utils/global-data-path.d.ts +2 -2
  573. package/dist/server/utils/global-data-path.js +8 -3
  574. package/dist/server/utils/path-utils.d.ts +38 -0
  575. package/dist/server/utils/path-utils.js +92 -0
  576. package/dist/server/utils/process-logger.js +1 -1
  577. package/dist/server/utils/server-main-resolver.d.ts +9 -0
  578. package/dist/server/utils/server-main-resolver.js +17 -0
  579. package/dist/shared/constants/curation.d.ts +6 -0
  580. package/dist/shared/constants/curation.js +6 -0
  581. package/dist/shared/transport/events/agent-events.d.ts +16 -0
  582. package/dist/shared/transport/events/agent-events.js +10 -0
  583. package/dist/shared/transport/events/auth-events.d.ts +45 -0
  584. package/dist/shared/transport/events/auth-events.js +11 -0
  585. package/dist/shared/transport/events/config-events.d.ts +18 -0
  586. package/dist/shared/transport/events/config-events.js +5 -0
  587. package/dist/shared/transport/events/connector-events.d.ts +35 -0
  588. package/dist/shared/transport/events/connector-events.js +6 -0
  589. package/dist/shared/transport/events/hub-events.d.ts +62 -0
  590. package/dist/shared/transport/events/hub-events.js +10 -0
  591. package/dist/shared/transport/events/index.d.ts +123 -0
  592. package/dist/shared/transport/events/index.js +73 -0
  593. package/dist/shared/transport/events/init-events.d.ts +41 -0
  594. package/dist/shared/transport/events/init-events.js +8 -0
  595. package/dist/shared/transport/events/llm-events.d.ts +13 -0
  596. package/dist/shared/transport/events/llm-events.js +13 -0
  597. package/dist/shared/transport/events/model-events.d.ts +30 -0
  598. package/dist/shared/transport/events/model-events.js +5 -0
  599. package/dist/shared/transport/events/onboarding-events.d.ts +18 -0
  600. package/dist/shared/transport/events/onboarding-events.js +5 -0
  601. package/dist/shared/transport/events/provider-events.d.ts +44 -0
  602. package/dist/shared/transport/events/provider-events.js +8 -0
  603. package/dist/shared/transport/events/pull-events.d.ts +26 -0
  604. package/dist/shared/transport/events/pull-events.js +5 -0
  605. package/dist/shared/transport/events/push-events.d.ts +27 -0
  606. package/dist/shared/transport/events/push-events.js +5 -0
  607. package/dist/shared/transport/events/reset-events.d.ts +6 -0
  608. package/dist/shared/transport/events/reset-events.js +3 -0
  609. package/dist/shared/transport/events/session-events.d.ts +3 -0
  610. package/dist/shared/transport/events/session-events.js +3 -0
  611. package/dist/shared/transport/events/space-events.d.ts +30 -0
  612. package/dist/shared/transport/events/space-events.js +4 -0
  613. package/dist/shared/transport/events/status-events.d.ts +7 -0
  614. package/dist/shared/transport/events/status-events.js +3 -0
  615. package/dist/shared/transport/events/task-events.d.ts +19 -0
  616. package/dist/shared/transport/events/task-events.js +9 -0
  617. package/dist/shared/transport/types/auth-scheme.d.ts +1 -0
  618. package/dist/shared/transport/types/auth-scheme.js +1 -0
  619. package/dist/shared/transport/types/dto.d.ts +112 -0
  620. package/dist/shared/transport/types/dto.js +6 -0
  621. package/dist/shared/transport/types/index.d.ts +1 -0
  622. package/dist/shared/transport/types/index.js +1 -0
  623. package/dist/shared/types/agent.d.ts +5 -0
  624. package/dist/shared/types/agent.js +27 -0
  625. package/dist/shared/types/connector-type.d.ts +18 -0
  626. package/dist/shared/types/connector-type.js +26 -0
  627. package/dist/shared/types/context-tree-changes.d.ts +11 -0
  628. package/dist/shared/types/context-tree-changes.js +1 -0
  629. package/dist/shared/types/index.d.ts +3 -0
  630. package/dist/shared/types/index.js +2 -0
  631. package/dist/shared/utils/escalation-utils.d.ts +59 -0
  632. package/dist/shared/utils/escalation-utils.js +141 -0
  633. package/dist/tui/app/index.d.ts +9 -0
  634. package/dist/tui/app/index.js +4 -0
  635. package/dist/tui/app/layouts/main-layout.d.ts +14 -0
  636. package/dist/tui/app/layouts/main-layout.js +19 -0
  637. package/dist/tui/app/pages/config-provider-page.d.ts +8 -0
  638. package/dist/tui/app/pages/config-provider-page.js +19 -0
  639. package/dist/tui/app/pages/home-page.d.ts +8 -0
  640. package/dist/tui/app/pages/home-page.js +85 -0
  641. package/dist/tui/app/pages/login-page.d.ts +12 -0
  642. package/dist/tui/app/pages/login-page.js +87 -0
  643. package/dist/tui/app/pages/protected-routes.d.ts +8 -0
  644. package/dist/tui/app/pages/protected-routes.js +14 -0
  645. package/dist/tui/app/router.d.ts +11 -0
  646. package/dist/tui/app/router.js +21 -0
  647. package/dist/tui/components/command/command-output.d.ts +1 -1
  648. package/dist/tui/components/command/command-output.js +5 -7
  649. package/dist/tui/components/command/expanded-command-view.d.ts +1 -1
  650. package/dist/tui/components/command/expanded-command-view.js +5 -6
  651. package/dist/tui/components/command/live-streaming-output.d.ts +2 -4
  652. package/dist/tui/components/command/live-streaming-output.js +5 -19
  653. package/dist/tui/components/command-details.d.ts +1 -1
  654. package/dist/tui/components/command-details.js +3 -3
  655. package/dist/tui/components/command-input.js +84 -171
  656. package/dist/tui/components/command-item.d.ts +1 -1
  657. package/dist/tui/components/command-item.js +6 -7
  658. package/dist/tui/components/execution/execution-status.d.ts +1 -1
  659. package/dist/tui/components/execution/execution-tool.d.ts +1 -1
  660. package/dist/tui/components/execution/expanded-log-view.d.ts +1 -1
  661. package/dist/tui/components/execution/expanded-log-view.js +1 -1
  662. package/dist/tui/components/execution/log-item.d.ts +1 -1
  663. package/dist/tui/components/execution/log-item.js +1 -1
  664. package/dist/tui/components/footer.js +6 -4
  665. package/dist/tui/components/header.js +2 -2
  666. package/dist/tui/components/index.d.ts +0 -2
  667. package/dist/tui/components/index.js +0 -2
  668. package/dist/tui/components/init.d.ts +1 -1
  669. package/dist/tui/components/init.js +26 -32
  670. package/dist/tui/components/inline-prompts/inline-confirm.js +6 -1
  671. package/dist/tui/components/inline-prompts/inline-file-selector.d.ts +1 -1
  672. package/dist/tui/components/inline-prompts/inline-input.d.ts +6 -0
  673. package/dist/tui/components/inline-prompts/inline-input.js +53 -16
  674. package/dist/tui/components/inline-prompts/inline-search.d.ts +2 -2
  675. package/dist/tui/components/inline-prompts/inline-search.js +1 -1
  676. package/dist/tui/components/inline-prompts/inline-select.d.ts +1 -1
  677. package/dist/tui/components/inline-prompts/inline-select.js +1 -1
  678. package/dist/tui/components/message-item.d.ts +1 -1
  679. package/dist/tui/components/message-item.js +2 -2
  680. package/dist/tui/components/onboarding/welcome-box.d.ts +1 -8
  681. package/dist/tui/components/onboarding/welcome-box.js +11 -12
  682. package/dist/tui/components/onboarding-item.d.ts +1 -1
  683. package/dist/tui/components/selectable-list.d.ts +3 -1
  684. package/dist/tui/components/selectable-list.js +7 -15
  685. package/dist/tui/components/status-badge.js +1 -1
  686. package/dist/tui/components/suggestions.js +5 -18
  687. package/dist/tui/features/activity/hooks/index.d.ts +2 -0
  688. package/dist/tui/features/activity/hooks/index.js +2 -0
  689. package/dist/tui/features/activity/hooks/use-activity-logs.d.ts +18 -0
  690. package/dist/tui/features/activity/hooks/use-activity-logs.js +208 -0
  691. package/dist/tui/features/activity/hooks/use-feed-navigation.d.ts +24 -0
  692. package/dist/tui/features/activity/hooks/use-feed-navigation.js +43 -0
  693. package/dist/tui/features/activity/index.d.ts +1 -0
  694. package/dist/tui/features/activity/index.js +1 -0
  695. package/dist/tui/features/auth/api/get-auth-state.d.ts +16 -0
  696. package/dist/tui/features/auth/api/get-auth-state.js +21 -0
  697. package/dist/tui/features/auth/api/login.d.ts +3 -0
  698. package/dist/tui/features/auth/api/login.js +14 -0
  699. package/dist/tui/features/auth/api/logout.d.ts +8 -0
  700. package/dist/tui/features/auth/api/logout.js +24 -0
  701. package/dist/tui/features/auth/api/refresh-auth.d.ts +8 -0
  702. package/dist/tui/features/auth/api/refresh-auth.js +24 -0
  703. package/dist/tui/features/auth/components/auth-initializer.d.ts +10 -0
  704. package/dist/tui/features/auth/components/auth-initializer.js +82 -0
  705. package/dist/tui/features/auth/components/login-flow.d.ts +8 -0
  706. package/dist/tui/features/auth/components/login-flow.js +62 -0
  707. package/dist/tui/features/auth/components/logout-flow.d.ts +12 -0
  708. package/dist/tui/features/auth/components/logout-flow.js +81 -0
  709. package/dist/tui/features/auth/guards/auth-guard.d.ts +2 -0
  710. package/dist/tui/features/auth/guards/auth-guard.js +11 -0
  711. package/dist/tui/features/auth/stores/auth-store.d.ts +27 -0
  712. package/dist/tui/features/auth/stores/auth-store.js +29 -0
  713. package/dist/tui/features/commands/components/command-view.d.ts +17 -0
  714. package/dist/tui/features/commands/components/command-view.js +34 -0
  715. package/dist/tui/features/commands/definitions/connectors.d.ts +2 -0
  716. package/dist/tui/features/commands/definitions/connectors.js +9 -0
  717. package/dist/tui/features/commands/definitions/curate.d.ts +2 -0
  718. package/dist/tui/features/commands/definitions/curate.js +53 -0
  719. package/dist/tui/features/commands/definitions/exit.d.ts +2 -0
  720. package/dist/tui/features/commands/definitions/exit.js +9 -0
  721. package/dist/tui/features/commands/definitions/hub-list.d.ts +2 -0
  722. package/dist/tui/features/commands/definitions/hub-list.js +9 -0
  723. package/dist/tui/features/commands/definitions/hub-registry-add.d.ts +2 -0
  724. package/dist/tui/features/commands/definitions/hub-registry-add.js +36 -0
  725. package/dist/tui/features/commands/definitions/hub-registry-list.d.ts +2 -0
  726. package/dist/tui/features/commands/definitions/hub-registry-list.js +9 -0
  727. package/dist/tui/features/commands/definitions/hub-registry-remove.d.ts +2 -0
  728. package/dist/tui/features/commands/definitions/hub-registry-remove.js +25 -0
  729. package/dist/tui/features/commands/definitions/hub-registry.d.ts +2 -0
  730. package/dist/tui/features/commands/definitions/hub-registry.js +8 -0
  731. package/dist/tui/features/commands/definitions/hub.d.ts +2 -0
  732. package/dist/tui/features/commands/definitions/hub.js +7 -0
  733. package/dist/tui/features/commands/definitions/index.d.ts +8 -0
  734. package/dist/tui/features/commands/definitions/index.js +48 -0
  735. package/dist/tui/features/commands/definitions/login.d.ts +2 -0
  736. package/dist/tui/features/commands/definitions/login.js +12 -0
  737. package/dist/tui/features/commands/definitions/logout.d.ts +2 -0
  738. package/dist/tui/features/commands/definitions/logout.js +26 -0
  739. package/dist/tui/features/commands/definitions/model.d.ts +2 -0
  740. package/dist/tui/features/commands/definitions/model.js +9 -0
  741. package/dist/tui/features/commands/definitions/new.d.ts +2 -0
  742. package/dist/tui/features/commands/definitions/new.js +27 -0
  743. package/dist/tui/features/commands/definitions/providers.d.ts +2 -0
  744. package/dist/tui/features/commands/definitions/providers.js +9 -0
  745. package/dist/tui/features/commands/definitions/pull.d.ts +2 -0
  746. package/dist/tui/features/commands/definitions/pull.js +23 -0
  747. package/dist/tui/features/commands/definitions/push.d.ts +2 -0
  748. package/dist/tui/features/commands/definitions/push.js +29 -0
  749. package/dist/tui/features/commands/definitions/query.d.ts +2 -0
  750. package/dist/tui/features/commands/definitions/query.js +36 -0
  751. package/dist/tui/features/commands/definitions/reset.d.ts +2 -0
  752. package/dist/tui/features/commands/definitions/reset.js +22 -0
  753. package/dist/tui/features/commands/definitions/space-list.d.ts +2 -0
  754. package/dist/tui/features/commands/definitions/space-list.js +22 -0
  755. package/dist/tui/features/commands/definitions/space-switch.d.ts +2 -0
  756. package/dist/tui/features/commands/definitions/space-switch.js +9 -0
  757. package/dist/tui/features/commands/definitions/space.d.ts +2 -0
  758. package/dist/tui/features/commands/definitions/space.js +7 -0
  759. package/dist/tui/features/commands/definitions/status.d.ts +2 -0
  760. package/dist/tui/features/commands/definitions/status.js +11 -0
  761. package/dist/tui/features/commands/hooks/use-commands-controller.d.ts +38 -0
  762. package/dist/tui/features/commands/hooks/use-commands-controller.js +43 -0
  763. package/dist/tui/features/commands/hooks/use-slash-command-processor.d.ts +16 -0
  764. package/dist/tui/features/commands/hooks/use-slash-command-processor.js +134 -0
  765. package/dist/tui/features/commands/hooks/use-slash-completion.d.ts +30 -0
  766. package/dist/tui/features/commands/hooks/use-slash-completion.js +256 -0
  767. package/dist/tui/features/commands/stores/commands-store.d.ts +32 -0
  768. package/dist/tui/features/commands/stores/commands-store.js +23 -0
  769. package/dist/tui/features/commands/utils/arg-parser.d.ts +102 -0
  770. package/dist/tui/features/connectors/api/get-agent-config-paths.d.ts +18 -0
  771. package/dist/tui/features/connectors/api/get-agent-config-paths.js +17 -0
  772. package/dist/tui/features/connectors/api/get-agents.d.ts +16 -0
  773. package/dist/tui/features/connectors/api/get-agents.js +19 -0
  774. package/dist/tui/features/connectors/api/get-connectors.d.ts +16 -0
  775. package/dist/tui/features/connectors/api/get-connectors.js +17 -0
  776. package/dist/tui/features/connectors/api/install-connector.d.ts +14 -0
  777. package/dist/tui/features/connectors/api/install-connector.js +27 -0
  778. package/dist/tui/features/connectors/components/agent-search-step.d.ts +9 -0
  779. package/dist/tui/features/connectors/components/agent-search-step.js +18 -0
  780. package/dist/tui/features/connectors/components/confirm-switch-step.d.ts +10 -0
  781. package/dist/tui/features/connectors/components/confirm-switch-step.js +13 -0
  782. package/dist/tui/features/connectors/components/connector-list-step.d.ts +11 -0
  783. package/dist/tui/features/connectors/components/connector-list-step.js +29 -0
  784. package/dist/tui/features/connectors/components/connector-type-step.d.ts +13 -0
  785. package/dist/tui/features/connectors/components/connector-type-step.js +23 -0
  786. package/dist/tui/features/connectors/components/connectors-flow.d.ts +17 -0
  787. package/dist/tui/features/connectors/components/connectors-flow.js +179 -0
  788. package/dist/tui/features/connectors/utils/get-connector-name.d.ts +3 -0
  789. package/dist/tui/features/connectors/utils/get-connector-name.js +33 -0
  790. package/dist/tui/features/curate/api/create-curate-task.d.ts +22 -0
  791. package/dist/tui/features/curate/api/create-curate-task.js +40 -0
  792. package/dist/tui/features/curate/components/curate-flow.d.ts +20 -0
  793. package/dist/tui/features/curate/components/curate-flow.js +41 -0
  794. package/dist/tui/features/exit/components/exit-flow.d.ts +10 -0
  795. package/dist/tui/features/exit/components/exit-flow.js +19 -0
  796. package/dist/tui/features/hub/api/add-hub-registry.d.ts +15 -0
  797. package/dist/tui/features/hub/api/add-hub-registry.js +30 -0
  798. package/dist/tui/features/hub/api/get-hub-entries.d.ts +16 -0
  799. package/dist/tui/features/hub/api/get-hub-entries.js +17 -0
  800. package/dist/tui/features/hub/api/install-hub-entry.d.ts +14 -0
  801. package/dist/tui/features/hub/api/install-hub-entry.js +24 -0
  802. package/dist/tui/features/hub/api/list-hub-registries.d.ts +16 -0
  803. package/dist/tui/features/hub/api/list-hub-registries.js +17 -0
  804. package/dist/tui/features/hub/api/remove-hub-registry.d.ts +11 -0
  805. package/dist/tui/features/hub/api/remove-hub-registry.js +24 -0
  806. package/dist/tui/features/hub/components/hub-agent-step.d.ts +8 -0
  807. package/dist/tui/features/hub/components/hub-agent-step.js +14 -0
  808. package/dist/tui/features/hub/components/hub-detail-step.d.ts +10 -0
  809. package/dist/tui/features/hub/components/hub-detail-step.js +25 -0
  810. package/dist/tui/features/hub/components/hub-flow.d.ts +7 -0
  811. package/dist/tui/features/hub/components/hub-flow.js +90 -0
  812. package/dist/tui/features/hub/components/hub-list-step.d.ts +10 -0
  813. package/dist/tui/features/hub/components/hub-list-step.js +34 -0
  814. package/dist/tui/features/hub/components/hub-registry-add-view.d.ts +12 -0
  815. package/dist/tui/features/hub/components/hub-registry-add-view.js +36 -0
  816. package/dist/tui/features/hub/components/hub-registry-list-view.d.ts +7 -0
  817. package/dist/tui/features/hub/components/hub-registry-list-view.js +38 -0
  818. package/dist/tui/features/hub/components/hub-registry-remove-view.d.ts +8 -0
  819. package/dist/tui/features/hub/components/hub-registry-remove-view.js +17 -0
  820. package/dist/tui/features/model/api/get-models-by-providers.d.ts +20 -0
  821. package/dist/tui/features/model/api/get-models-by-providers.js +17 -0
  822. package/dist/tui/features/model/api/get-models.d.ts +20 -0
  823. package/dist/tui/features/model/api/get-models.js +17 -0
  824. package/dist/tui/features/model/api/set-active-model.d.ts +13 -0
  825. package/dist/tui/features/model/api/set-active-model.js +13 -0
  826. package/dist/tui/features/model/components/model-dialog.d.ts +67 -0
  827. package/dist/tui/features/model/components/model-dialog.js +96 -0
  828. package/dist/tui/features/model/components/model-flow.d.ts +17 -0
  829. package/dist/tui/features/model/components/model-flow.js +108 -0
  830. package/dist/tui/features/model/stores/model-store.d.ts +35 -0
  831. package/dist/tui/features/model/stores/model-store.js +26 -0
  832. package/dist/tui/features/onboarding/api/auto-setup-onboarding.d.ts +8 -0
  833. package/dist/tui/features/onboarding/api/auto-setup-onboarding.js +24 -0
  834. package/dist/tui/features/onboarding/api/complete-onboarding.d.ts +11 -0
  835. package/dist/tui/features/onboarding/api/complete-onboarding.js +24 -0
  836. package/dist/tui/features/onboarding/api/get-onboarding-state.d.ts +16 -0
  837. package/dist/tui/features/onboarding/api/get-onboarding-state.js +17 -0
  838. package/dist/tui/features/onboarding/hooks/use-app-view-mode.d.ts +27 -0
  839. package/dist/tui/features/onboarding/hooks/use-app-view-mode.js +36 -0
  840. package/dist/tui/features/onboarding/types.d.ts +7 -0
  841. package/dist/tui/features/onboarding/types.js +4 -0
  842. package/dist/tui/features/onboarding/utils.d.ts +28 -0
  843. package/dist/tui/features/onboarding/utils.js +76 -0
  844. package/dist/tui/features/provider/api/connect-provider.d.ts +13 -0
  845. package/dist/tui/features/provider/api/connect-provider.js +28 -0
  846. package/dist/tui/features/provider/api/disconnect-provider.d.ts +11 -0
  847. package/dist/tui/features/provider/api/disconnect-provider.js +26 -0
  848. package/dist/tui/features/provider/api/get-active-provider-config.d.ts +16 -0
  849. package/dist/tui/features/provider/api/get-active-provider-config.js +17 -0
  850. package/dist/tui/features/provider/api/get-providers.d.ts +16 -0
  851. package/dist/tui/features/provider/api/get-providers.js +17 -0
  852. package/dist/tui/features/provider/api/set-active-provider.d.ts +11 -0
  853. package/dist/tui/features/provider/api/set-active-provider.js +24 -0
  854. package/dist/tui/features/provider/api/validate-api-key.d.ts +12 -0
  855. package/dist/tui/features/provider/api/validate-api-key.js +13 -0
  856. package/dist/tui/features/provider/components/api-key-dialog.d.ts +41 -0
  857. package/dist/tui/features/provider/components/api-key-dialog.js +126 -0
  858. package/dist/tui/features/provider/components/base-url-dialog.d.ts +24 -0
  859. package/dist/tui/features/provider/components/base-url-dialog.js +77 -0
  860. package/dist/tui/features/provider/components/model-select-step.d.ts +20 -0
  861. package/dist/tui/features/provider/components/model-select-step.js +73 -0
  862. package/dist/tui/features/provider/components/provider-dialog.d.ts +29 -0
  863. package/dist/tui/features/provider/components/provider-dialog.js +20 -0
  864. package/dist/tui/features/provider/components/provider-flow.d.ts +25 -0
  865. package/dist/tui/features/provider/components/provider-flow.js +257 -0
  866. package/dist/tui/features/provider/stores/provider-store.d.ts +28 -0
  867. package/dist/tui/features/provider/stores/provider-store.js +22 -0
  868. package/dist/tui/features/pull/api/execute-pull.d.ts +11 -0
  869. package/dist/tui/features/pull/api/execute-pull.js +13 -0
  870. package/dist/tui/features/pull/api/prepare-pull.d.ts +20 -0
  871. package/dist/tui/features/pull/api/prepare-pull.js +17 -0
  872. package/dist/tui/features/pull/components/pull-flow.d.ts +12 -0
  873. package/dist/tui/features/pull/components/pull-flow.js +70 -0
  874. package/dist/tui/features/push/api/execute-push.d.ts +11 -0
  875. package/dist/tui/features/push/api/execute-push.js +13 -0
  876. package/dist/tui/features/push/api/prepare-push.d.ts +20 -0
  877. package/dist/tui/features/push/api/prepare-push.js +17 -0
  878. package/dist/tui/features/push/components/push-flow.d.ts +13 -0
  879. package/dist/tui/features/push/components/push-flow.js +86 -0
  880. package/dist/tui/features/query/api/create-query-task.d.ts +17 -0
  881. package/dist/tui/features/query/api/create-query-task.js +27 -0
  882. package/dist/tui/features/query/components/query-flow.d.ts +18 -0
  883. package/dist/tui/features/query/components/query-flow.js +36 -0
  884. package/dist/tui/features/reset/api/execute-reset.d.ts +8 -0
  885. package/dist/tui/features/reset/api/execute-reset.js +13 -0
  886. package/dist/tui/features/reset/components/reset-flow.d.ts +12 -0
  887. package/dist/tui/features/reset/components/reset-flow.js +44 -0
  888. package/dist/tui/features/session/components/new-session-flow.d.ts +12 -0
  889. package/dist/tui/features/session/components/new-session-flow.js +28 -0
  890. package/dist/tui/features/space/api/get-spaces.d.ts +16 -0
  891. package/dist/tui/features/space/api/get-spaces.js +17 -0
  892. package/dist/tui/features/space/api/switch-space.d.ts +11 -0
  893. package/dist/tui/features/space/api/switch-space.js +24 -0
  894. package/dist/tui/features/space/components/space-list-view.d.ts +12 -0
  895. package/dist/tui/features/space/components/space-list-view.js +56 -0
  896. package/dist/tui/features/space/components/space-switch-flow.d.ts +13 -0
  897. package/dist/tui/features/space/components/space-switch-flow.js +97 -0
  898. package/dist/tui/features/status/api/get-status.d.ts +16 -0
  899. package/dist/tui/features/status/api/get-status.js +17 -0
  900. package/dist/tui/features/status/components/status-view.d.ts +12 -0
  901. package/dist/tui/features/status/components/status-view.js +26 -0
  902. package/dist/tui/features/status/utils/format-status.d.ts +5 -0
  903. package/dist/tui/features/status/utils/format-status.js +62 -0
  904. package/dist/tui/features/tasks/components/task-subscription-initializer.d.ts +5 -0
  905. package/dist/tui/features/tasks/components/task-subscription-initializer.js +9 -0
  906. package/dist/tui/features/tasks/hooks/use-task-subscriptions.d.ts +5 -0
  907. package/dist/tui/features/tasks/hooks/use-task-subscriptions.js +74 -0
  908. package/dist/tui/features/tasks/stores/tasks-store.d.ts +92 -0
  909. package/dist/tui/features/tasks/stores/tasks-store.js +262 -0
  910. package/dist/tui/features/transport/components/transport-initializer.d.ts +13 -0
  911. package/dist/tui/features/transport/components/transport-initializer.js +107 -0
  912. package/dist/tui/features/transport/hooks/use-transport.d.ts +19 -0
  913. package/dist/tui/features/transport/hooks/use-transport.js +16 -0
  914. package/dist/tui/hooks/index.d.ts +14 -13
  915. package/dist/tui/hooks/index.js +15 -9
  916. package/dist/tui/hooks/use-terminal-breakpoint.js +3 -2
  917. package/dist/tui/lib/api-client.d.ts +20 -0
  918. package/dist/tui/lib/api-client.js +29 -0
  919. package/dist/tui/lib/environment.d.ts +18 -0
  920. package/dist/tui/lib/environment.js +18 -0
  921. package/dist/tui/lib/react-query.d.ts +17 -0
  922. package/dist/tui/lib/react-query.js +17 -0
  923. package/dist/tui/lib/transport-logger.d.ts +13 -0
  924. package/dist/tui/lib/transport-logger.js +40 -0
  925. package/dist/tui/providers/app-providers.d.ts +1 -16
  926. package/dist/tui/providers/app-providers.js +26 -4
  927. package/dist/tui/repl-startup.d.ts +1 -12
  928. package/dist/tui/repl-startup.js +6 -24
  929. package/dist/tui/stores/mode-store.d.ts +25 -0
  930. package/dist/tui/stores/mode-store.js +49 -0
  931. package/dist/tui/stores/theme-store.d.ts +43 -0
  932. package/dist/tui/stores/theme-store.js +39 -0
  933. package/dist/tui/stores/transport-store.d.ts +40 -0
  934. package/dist/tui/stores/transport-store.js +40 -0
  935. package/dist/tui/types/commands.d.ts +23 -91
  936. package/dist/tui/types/commands.js +1 -13
  937. package/dist/tui/types/index.d.ts +3 -4
  938. package/dist/tui/types/index.js +0 -2
  939. package/dist/tui/types/messages.d.ts +8 -1
  940. package/dist/tui/types/ui.d.ts +0 -5
  941. package/dist/tui/utils/error-messages.d.ts +22 -0
  942. package/dist/tui/utils/error-messages.js +45 -0
  943. package/dist/tui/utils/index.d.ts +2 -0
  944. package/dist/tui/utils/index.js +2 -0
  945. package/dist/tui/utils/input.d.ts +14 -0
  946. package/dist/tui/utils/input.js +17 -0
  947. package/dist/tui/utils/log.d.ts +1 -1
  948. package/node_modules/@campfirein/brv-transport-client/README.md +79 -338
  949. package/node_modules/@campfirein/brv-transport-client/dist/constants.d.ts +18 -3
  950. package/node_modules/@campfirein/brv-transport-client/dist/constants.d.ts.map +1 -1
  951. package/node_modules/@campfirein/brv-transport-client/dist/constants.js +25 -4
  952. package/node_modules/@campfirein/brv-transport-client/dist/constants.js.map +1 -1
  953. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/entities/instance-info.d.ts +4 -9
  954. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/entities/instance-info.d.ts.map +1 -1
  955. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/entities/instance-info.js +9 -24
  956. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/entities/instance-info.js.map +1 -1
  957. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/connection-error.d.ts +20 -0
  958. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/connection-error.d.ts.map +1 -1
  959. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/connection-error.js +30 -0
  960. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/connection-error.js.map +1 -1
  961. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/transport-error.d.ts +3 -1
  962. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/transport-error.d.ts.map +1 -1
  963. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/transport-error.js +4 -1
  964. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/errors/transport-error.js.map +1 -1
  965. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/event-names.d.ts +10 -1
  966. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/event-names.d.ts.map +1 -1
  967. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/event-names.js +10 -0
  968. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/event-names.js.map +1 -1
  969. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/index.d.ts +1 -1
  970. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/index.d.ts.map +1 -1
  971. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/index.js +1 -1
  972. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/events/index.js.map +1 -1
  973. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/types.d.ts +9 -0
  974. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/types.d.ts.map +1 -1
  975. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/types.js +8 -1
  976. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/types.js.map +1 -1
  977. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/common.d.ts.map +1 -1
  978. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/common.js.map +1 -1
  979. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/event-name-validator.d.ts.map +1 -1
  980. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/event-name-validator.js.map +1 -1
  981. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/index.d.ts.map +1 -1
  982. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/index.js.map +1 -1
  983. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/room-name-validator.d.ts.map +1 -1
  984. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/room-name-validator.js.map +1 -1
  985. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/url-validator.d.ts.map +1 -1
  986. package/node_modules/@campfirein/brv-transport-client/dist/core/domain/validators/url-validator.js.map +1 -1
  987. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-factory-config.d.ts +150 -0
  988. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-factory-config.d.ts.map +1 -0
  989. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-factory-config.js +8 -0
  990. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-factory-config.js.map +1 -0
  991. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-factory.d.ts +9 -4
  992. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-factory.d.ts.map +1 -1
  993. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-factory.js.map +1 -1
  994. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-logger.d.ts.map +1 -1
  995. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client-logger.js.map +1 -1
  996. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client.d.ts.map +1 -1
  997. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-client.js.map +1 -1
  998. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-connection-state.d.ts.map +1 -1
  999. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-connection-state.js.map +1 -1
  1000. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-event-dispatcher.d.ts.map +1 -1
  1001. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-event-dispatcher.js.map +1 -1
  1002. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-force-reconnect-manager.d.ts.map +1 -1
  1003. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-force-reconnect-manager.js.map +1 -1
  1004. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-discovery.d.ts +9 -22
  1005. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-discovery.d.ts.map +1 -1
  1006. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-discovery.js.map +1 -1
  1007. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-manager.d.ts +46 -0
  1008. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-manager.d.ts.map +1 -0
  1009. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-manager.js +2 -0
  1010. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-manager.js.map +1 -0
  1011. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-reconnection-strategy.d.ts.map +1 -1
  1012. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-reconnection-strategy.js.map +1 -1
  1013. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-room-manager.d.ts.map +1 -1
  1014. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-room-manager.js.map +1 -1
  1015. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-socket-provider.d.ts.map +1 -1
  1016. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-socket-provider.js.map +1 -1
  1017. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-socket.d.ts.map +1 -1
  1018. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-socket.js.map +1 -1
  1019. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-spawn-lock.d.ts +27 -0
  1020. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-spawn-lock.d.ts.map +1 -0
  1021. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-spawn-lock.js +2 -0
  1022. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-spawn-lock.js.map +1 -0
  1023. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-wake-detector.d.ts.map +1 -1
  1024. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-wake-detector.js.map +1 -1
  1025. package/node_modules/@campfirein/brv-transport-client/dist/index.d.ts +26 -16
  1026. package/node_modules/@campfirein/brv-transport-client/dist/index.d.ts.map +1 -1
  1027. package/node_modules/@campfirein/brv-transport-client/dist/index.js +28 -18
  1028. package/node_modules/@campfirein/brv-transport-client/dist/index.js.map +1 -1
  1029. package/node_modules/@campfirein/brv-transport-client/dist/infra/client-factory.d.ts +49 -167
  1030. package/node_modules/@campfirein/brv-transport-client/dist/infra/client-factory.d.ts.map +1 -1
  1031. package/node_modules/@campfirein/brv-transport-client/dist/infra/client-factory.js +161 -260
  1032. package/node_modules/@campfirein/brv-transport-client/dist/infra/client-factory.js.map +1 -1
  1033. package/node_modules/@campfirein/brv-transport-client/dist/infra/connection-state-manager.d.ts.map +1 -1
  1034. package/node_modules/@campfirein/brv-transport-client/dist/infra/connection-state-manager.js.map +1 -1
  1035. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-connector.d.ts +46 -0
  1036. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-connector.d.ts.map +1 -0
  1037. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-connector.js +47 -0
  1038. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-connector.js.map +1 -0
  1039. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-discovery-sync.d.ts +41 -0
  1040. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-discovery-sync.d.ts.map +1 -0
  1041. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-discovery-sync.js +48 -0
  1042. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-discovery-sync.js.map +1 -0
  1043. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-health.d.ts +37 -0
  1044. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-health.d.ts.map +1 -0
  1045. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-health.js +35 -0
  1046. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-health.js.map +1 -0
  1047. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-instance-discovery.d.ts +22 -0
  1048. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-instance-discovery.d.ts.map +1 -0
  1049. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-instance-discovery.js +83 -0
  1050. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-instance-discovery.js.map +1 -0
  1051. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-reconnector.d.ts +60 -0
  1052. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-reconnector.d.ts.map +1 -0
  1053. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-reconnector.js +101 -0
  1054. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-reconnector.js.map +1 -0
  1055. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-spawner.d.ts +33 -0
  1056. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-spawner.d.ts.map +1 -0
  1057. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-spawner.js +161 -0
  1058. package/node_modules/@campfirein/brv-transport-client/dist/infra/daemon-spawner.js.map +1 -0
  1059. package/node_modules/@campfirein/brv-transport-client/dist/infra/event-dispatcher.d.ts.map +1 -1
  1060. package/node_modules/@campfirein/brv-transport-client/dist/infra/event-dispatcher.js.map +1 -1
  1061. package/node_modules/@campfirein/brv-transport-client/dist/infra/find-project-root.d.ts +11 -0
  1062. package/node_modules/@campfirein/brv-transport-client/dist/infra/find-project-root.d.ts.map +1 -0
  1063. package/node_modules/@campfirein/brv-transport-client/dist/infra/find-project-root.js +31 -0
  1064. package/node_modules/@campfirein/brv-transport-client/dist/infra/find-project-root.js.map +1 -0
  1065. package/node_modules/@campfirein/brv-transport-client/dist/infra/force-reconnect-manager.d.ts +1 -0
  1066. package/node_modules/@campfirein/brv-transport-client/dist/infra/force-reconnect-manager.d.ts.map +1 -1
  1067. package/node_modules/@campfirein/brv-transport-client/dist/infra/force-reconnect-manager.js +4 -0
  1068. package/node_modules/@campfirein/brv-transport-client/dist/infra/force-reconnect-manager.js.map +1 -1
  1069. package/node_modules/@campfirein/brv-transport-client/dist/infra/global-data-path.d.ts +12 -0
  1070. package/node_modules/@campfirein/brv-transport-client/dist/infra/global-data-path.d.ts.map +1 -0
  1071. package/node_modules/@campfirein/brv-transport-client/dist/infra/global-data-path.js +38 -0
  1072. package/node_modules/@campfirein/brv-transport-client/dist/infra/global-data-path.js.map +1 -0
  1073. package/node_modules/@campfirein/brv-transport-client/dist/infra/global-instance-manager.d.ts +37 -0
  1074. package/node_modules/@campfirein/brv-transport-client/dist/infra/global-instance-manager.d.ts.map +1 -0
  1075. package/node_modules/@campfirein/brv-transport-client/dist/infra/global-instance-manager.js +100 -0
  1076. package/node_modules/@campfirein/brv-transport-client/dist/infra/global-instance-manager.js.map +1 -0
  1077. package/node_modules/@campfirein/brv-transport-client/dist/infra/heartbeat-utils.d.ts +12 -0
  1078. package/node_modules/@campfirein/brv-transport-client/dist/infra/heartbeat-utils.d.ts.map +1 -0
  1079. package/node_modules/@campfirein/brv-transport-client/dist/infra/heartbeat-utils.js +29 -0
  1080. package/node_modules/@campfirein/brv-transport-client/dist/infra/heartbeat-utils.js.map +1 -0
  1081. package/node_modules/@campfirein/brv-transport-client/dist/infra/no-op-client-logger.d.ts.map +1 -1
  1082. package/node_modules/@campfirein/brv-transport-client/dist/infra/no-op-client-logger.js.map +1 -1
  1083. package/node_modules/@campfirein/brv-transport-client/dist/infra/process-utils.d.ts.map +1 -1
  1084. package/node_modules/@campfirein/brv-transport-client/dist/infra/process-utils.js.map +1 -1
  1085. package/node_modules/@campfirein/brv-transport-client/dist/infra/reconnection-strategy.d.ts.map +1 -1
  1086. package/node_modules/@campfirein/brv-transport-client/dist/infra/reconnection-strategy.js.map +1 -1
  1087. package/node_modules/@campfirein/brv-transport-client/dist/infra/resolve-server-path.d.ts +12 -0
  1088. package/node_modules/@campfirein/brv-transport-client/dist/infra/resolve-server-path.d.ts.map +1 -0
  1089. package/node_modules/@campfirein/brv-transport-client/dist/infra/resolve-server-path.js +52 -0
  1090. package/node_modules/@campfirein/brv-transport-client/dist/infra/resolve-server-path.js.map +1 -0
  1091. package/node_modules/@campfirein/brv-transport-client/dist/infra/room-manager.d.ts.map +1 -1
  1092. package/node_modules/@campfirein/brv-transport-client/dist/infra/room-manager.js.map +1 -1
  1093. package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/index.d.ts +2 -2
  1094. package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/index.d.ts.map +1 -1
  1095. package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/index.js +4 -2
  1096. package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/index.js.map +1 -1
  1097. package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/schemas.d.ts +65 -3
  1098. package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/schemas.d.ts.map +1 -1
  1099. package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/schemas.js +44 -1
  1100. package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/schemas.js.map +1 -1
  1101. package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/types.d.ts +11 -1
  1102. package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/types.d.ts.map +1 -1
  1103. package/node_modules/@campfirein/brv-transport-client/dist/infra/schemas/types.js.map +1 -1
  1104. package/node_modules/@campfirein/brv-transport-client/dist/infra/socket-io-client.d.ts +32 -61
  1105. package/node_modules/@campfirein/brv-transport-client/dist/infra/socket-io-client.d.ts.map +1 -1
  1106. package/node_modules/@campfirein/brv-transport-client/dist/infra/socket-io-client.js +133 -37
  1107. package/node_modules/@campfirein/brv-transport-client/dist/infra/socket-io-client.js.map +1 -1
  1108. package/node_modules/@campfirein/brv-transport-client/dist/infra/spawn-lock.d.ts +27 -0
  1109. package/node_modules/@campfirein/brv-transport-client/dist/infra/spawn-lock.d.ts.map +1 -0
  1110. package/node_modules/@campfirein/brv-transport-client/dist/infra/spawn-lock.js +124 -0
  1111. package/node_modules/@campfirein/brv-transport-client/dist/infra/spawn-lock.js.map +1 -0
  1112. package/node_modules/@campfirein/brv-transport-client/dist/infra/utils/deep-freeze.d.ts.map +1 -1
  1113. package/node_modules/@campfirein/brv-transport-client/dist/infra/utils/deep-freeze.js.map +1 -1
  1114. package/node_modules/@campfirein/brv-transport-client/dist/infra/wait-for-connected-client.d.ts +13 -0
  1115. package/node_modules/@campfirein/brv-transport-client/dist/infra/wait-for-connected-client.d.ts.map +1 -0
  1116. package/node_modules/@campfirein/brv-transport-client/dist/infra/wait-for-connected-client.js +33 -0
  1117. package/node_modules/@campfirein/brv-transport-client/dist/infra/wait-for-connected-client.js.map +1 -0
  1118. package/node_modules/@campfirein/brv-transport-client/dist/infra/wake-detector.d.ts.map +1 -1
  1119. package/node_modules/@campfirein/brv-transport-client/dist/infra/wake-detector.js.map +1 -1
  1120. package/node_modules/@campfirein/brv-transport-client/package.json +3 -12
  1121. package/oclif.manifest.json +1215 -180
  1122. package/package.json +56 -10
  1123. package/dist/agent/infra/blob/migrations.d.ts +0 -63
  1124. package/dist/agent/infra/blob/migrations.js +0 -148
  1125. package/dist/agent/infra/blob/sqlite-blob-storage.d.ts +0 -82
  1126. package/dist/agent/infra/blob/sqlite-blob-storage.js +0 -304
  1127. package/dist/agent/infra/llm/generators/openrouter-content-generator.d.ts +0 -94
  1128. package/dist/agent/infra/llm/generators/openrouter-content-generator.js +0 -280
  1129. package/dist/agent/infra/llm/internal-llm-service.d.ts +0 -375
  1130. package/dist/agent/infra/llm/internal-llm-service.js +0 -1079
  1131. package/dist/agent/infra/llm/openrouter-llm-service.d.ts +0 -215
  1132. package/dist/agent/infra/llm/openrouter-llm-service.js +0 -572
  1133. package/dist/agent/infra/llm/stream-processor.d.ts +0 -178
  1134. package/dist/agent/infra/llm/stream-processor.js +0 -350
  1135. package/dist/agent/infra/llm/transformers/openrouter-stream-transformer.d.ts +0 -49
  1136. package/dist/agent/infra/llm/transformers/openrouter-stream-transformer.js +0 -270
  1137. package/dist/agent/infra/storage/blob-history-storage.d.ts +0 -76
  1138. package/dist/agent/infra/storage/blob-history-storage.js +0 -178
  1139. package/dist/agent/infra/storage/dual-format-history-storage.d.ts +0 -77
  1140. package/dist/agent/infra/storage/dual-format-history-storage.js +0 -149
  1141. package/dist/agent/infra/storage/sqlite-key-storage.d.ts +0 -105
  1142. package/dist/agent/infra/storage/sqlite-key-storage.js +0 -404
  1143. package/dist/oclif/commands/curate.d.ts +0 -21
  1144. package/dist/oclif/commands/curate.js +0 -96
  1145. package/dist/oclif/commands/init.d.ts +0 -18
  1146. package/dist/oclif/commands/init.js +0 -129
  1147. package/dist/server/core/domain/entities/context-tree-index.d.ts +0 -26
  1148. package/dist/server/core/domain/entities/context-tree-index.js +0 -27
  1149. package/dist/server/core/domain/entities/event.d.ts +0 -8
  1150. package/dist/server/core/domain/entities/event.js +0 -25
  1151. package/dist/server/core/domain/errors/ace-error.d.ts +0 -34
  1152. package/dist/server/core/domain/errors/ace-error.js +0 -53
  1153. package/dist/server/core/domain/errors/brv-config-version-error.d.ts +0 -16
  1154. package/dist/server/core/domain/errors/brv-config-version-error.js +0 -21
  1155. package/dist/server/core/domain/errors/core-process-error.d.ts +0 -27
  1156. package/dist/server/core/domain/errors/core-process-error.js +0 -43
  1157. package/dist/server/core/domain/instance/index.d.ts +0 -1
  1158. package/dist/server/core/domain/instance/index.js +0 -1
  1159. package/dist/server/core/domain/instance/types.d.ts +0 -57
  1160. package/dist/server/core/domain/instance/types.js +0 -72
  1161. package/dist/server/core/interfaces/instance/i-instance-discovery.d.ts +0 -45
  1162. package/dist/server/core/interfaces/instance/i-instance-manager.d.ts +0 -58
  1163. package/dist/server/core/interfaces/instance/index.d.ts +0 -2
  1164. package/dist/server/core/interfaces/instance/index.js +0 -2
  1165. package/dist/server/core/interfaces/noop-implementations.d.ts +0 -53
  1166. package/dist/server/core/interfaces/noop-implementations.js +0 -62
  1167. package/dist/server/core/interfaces/services/i-tracking-service.d.ts +0 -21
  1168. package/dist/server/core/interfaces/usecase/i-connectors-use-case.d.ts +0 -3
  1169. package/dist/server/core/interfaces/usecase/i-curate-use-case.d.ts +0 -14
  1170. package/dist/server/core/interfaces/usecase/i-init-use-case.d.ts +0 -11
  1171. package/dist/server/core/interfaces/usecase/i-login-use-case.d.ts +0 -6
  1172. package/dist/server/core/interfaces/usecase/i-logout-use-case.d.ts +0 -5
  1173. package/dist/server/core/interfaces/usecase/i-pull-use-case.d.ts +0 -7
  1174. package/dist/server/core/interfaces/usecase/i-push-use-case.d.ts +0 -8
  1175. package/dist/server/core/interfaces/usecase/i-query-use-case.d.ts +0 -11
  1176. package/dist/server/core/interfaces/usecase/i-reset-use-case.d.ts +0 -6
  1177. package/dist/server/core/interfaces/usecase/i-space-list-use-case.d.ts +0 -3
  1178. package/dist/server/core/interfaces/usecase/i-space-switch-use-case.d.ts +0 -3
  1179. package/dist/server/core/interfaces/usecase/i-status-use-case.d.ts +0 -6
  1180. package/dist/server/infra/executor/task-processor.d.ts +0 -89
  1181. package/dist/server/infra/executor/task-processor.js +0 -133
  1182. package/dist/server/infra/instance/file-instance-discovery.d.ts +0 -31
  1183. package/dist/server/infra/instance/file-instance-discovery.js +0 -84
  1184. package/dist/server/infra/instance/file-instance-manager.d.ts +0 -46
  1185. package/dist/server/infra/instance/file-instance-manager.js +0 -123
  1186. package/dist/server/infra/instance/index.d.ts +0 -3
  1187. package/dist/server/infra/instance/index.js +0 -3
  1188. package/dist/server/infra/instance/process-utils.d.ts +0 -14
  1189. package/dist/server/infra/instance/process-utils.js +0 -39
  1190. package/dist/server/infra/process/agent-worker.d.ts +0 -20
  1191. package/dist/server/infra/process/agent-worker.js +0 -1399
  1192. package/dist/server/infra/process/inline-agent-executor.d.ts +0 -32
  1193. package/dist/server/infra/process/inline-agent-executor.js +0 -278
  1194. package/dist/server/infra/process/ipc-types.d.ts +0 -68
  1195. package/dist/server/infra/process/ipc-types.js +0 -12
  1196. package/dist/server/infra/process/parent-heartbeat.d.ts +0 -47
  1197. package/dist/server/infra/process/parent-heartbeat.js +0 -118
  1198. package/dist/server/infra/process/process-manager.d.ts +0 -242
  1199. package/dist/server/infra/process/process-manager.js +0 -765
  1200. package/dist/server/infra/process/task-queue-manager.d.ts +0 -125
  1201. package/dist/server/infra/process/task-queue-manager.js +0 -185
  1202. package/dist/server/infra/process/transport-worker.d.ts +0 -20
  1203. package/dist/server/infra/process/transport-worker.js +0 -196
  1204. package/dist/server/infra/storage/keychain-token-store.d.ts +0 -13
  1205. package/dist/server/infra/storage/keychain-token-store.js +0 -42
  1206. package/dist/server/infra/terminal/oclif-terminal.d.ts +0 -19
  1207. package/dist/server/infra/terminal/oclif-terminal.js +0 -60
  1208. package/dist/server/infra/terminal/repl-terminal.d.ts +0 -31
  1209. package/dist/server/infra/terminal/repl-terminal.js +0 -116
  1210. package/dist/server/infra/tracking/mixpanel-tracking-service.d.ts +0 -24
  1211. package/dist/server/infra/tracking/mixpanel-tracking-service.js +0 -49
  1212. package/dist/server/infra/transport/transport-factory.d.ts +0 -17
  1213. package/dist/server/infra/transport/transport-factory.js +0 -31
  1214. package/dist/server/infra/usecase/connectors-use-case.d.ts +0 -63
  1215. package/dist/server/infra/usecase/connectors-use-case.js +0 -234
  1216. package/dist/server/infra/usecase/curate-use-case.d.ts +0 -59
  1217. package/dist/server/infra/usecase/curate-use-case.js +0 -274
  1218. package/dist/server/infra/usecase/init-use-case.d.ts +0 -126
  1219. package/dist/server/infra/usecase/init-use-case.js +0 -538
  1220. package/dist/server/infra/usecase/login-use-case.d.ts +0 -30
  1221. package/dist/server/infra/usecase/login-use-case.js +0 -127
  1222. package/dist/server/infra/usecase/logout-use-case.d.ts +0 -19
  1223. package/dist/server/infra/usecase/logout-use-case.js +0 -48
  1224. package/dist/server/infra/usecase/pull-use-case.d.ts +0 -49
  1225. package/dist/server/infra/usecase/pull-use-case.js +0 -147
  1226. package/dist/server/infra/usecase/push-use-case.d.ts +0 -50
  1227. package/dist/server/infra/usecase/push-use-case.js +0 -191
  1228. package/dist/server/infra/usecase/query-use-case.d.ts +0 -73
  1229. package/dist/server/infra/usecase/query-use-case.js +0 -420
  1230. package/dist/server/infra/usecase/reset-use-case.d.ts +0 -21
  1231. package/dist/server/infra/usecase/reset-use-case.js +0 -60
  1232. package/dist/server/infra/usecase/space-list-use-case.d.ts +0 -27
  1233. package/dist/server/infra/usecase/space-list-use-case.js +0 -64
  1234. package/dist/server/infra/usecase/space-switch-use-case.d.ts +0 -26
  1235. package/dist/server/infra/usecase/space-switch-use-case.js +0 -110
  1236. package/dist/server/infra/usecase/status-use-case.d.ts +0 -75
  1237. package/dist/server/infra/usecase/status-use-case.js +0 -268
  1238. package/dist/server/templates/skill/TROUBLESHOOTING.md +0 -50
  1239. package/dist/server/templates/skill/WORKFLOWS.md +0 -229
  1240. package/dist/server/utils/environment-detector.d.ts +0 -20
  1241. package/dist/server/utils/environment-detector.js +0 -92
  1242. package/dist/tui/app.d.ts +0 -9
  1243. package/dist/tui/app.js +0 -28
  1244. package/dist/tui/commands/arg-parser.d.ts +0 -102
  1245. package/dist/tui/commands/connectors-command.d.ts +0 -8
  1246. package/dist/tui/commands/connectors-command.js +0 -49
  1247. package/dist/tui/commands/curate-command.d.ts +0 -9
  1248. package/dist/tui/commands/curate-command.js +0 -80
  1249. package/dist/tui/commands/index.d.ts +0 -8
  1250. package/dist/tui/commands/index.js +0 -45
  1251. package/dist/tui/commands/init-command.d.ts +0 -7
  1252. package/dist/tui/commands/init-command.js +0 -87
  1253. package/dist/tui/commands/login-command.d.ts +0 -7
  1254. package/dist/tui/commands/login-command.js +0 -50
  1255. package/dist/tui/commands/logout-command.d.ts +0 -5
  1256. package/dist/tui/commands/logout-command.js +0 -46
  1257. package/dist/tui/commands/model-command.d.ts +0 -13
  1258. package/dist/tui/commands/model-command.js +0 -212
  1259. package/dist/tui/commands/new-command.d.ts +0 -14
  1260. package/dist/tui/commands/new-command.js +0 -61
  1261. package/dist/tui/commands/provider-command.d.ts +0 -13
  1262. package/dist/tui/commands/provider-command.js +0 -181
  1263. package/dist/tui/commands/pull-command.d.ts +0 -5
  1264. package/dist/tui/commands/pull-command.js +0 -61
  1265. package/dist/tui/commands/push-command.d.ts +0 -5
  1266. package/dist/tui/commands/push-command.js +0 -66
  1267. package/dist/tui/commands/query-command.d.ts +0 -5
  1268. package/dist/tui/commands/query-command.js +0 -63
  1269. package/dist/tui/commands/reset-command.d.ts +0 -5
  1270. package/dist/tui/commands/reset-command.js +0 -61
  1271. package/dist/tui/commands/space/index.d.ts +0 -5
  1272. package/dist/tui/commands/space/index.js +0 -14
  1273. package/dist/tui/commands/space/list-command.d.ts +0 -5
  1274. package/dist/tui/commands/space/list-command.js +0 -70
  1275. package/dist/tui/commands/space/switch-command.d.ts +0 -5
  1276. package/dist/tui/commands/space/switch-command.js +0 -35
  1277. package/dist/tui/commands/status-command.d.ts +0 -5
  1278. package/dist/tui/commands/status-command.js +0 -39
  1279. package/dist/tui/components/api-key-dialog.d.ts +0 -39
  1280. package/dist/tui/components/api-key-dialog.js +0 -94
  1281. package/dist/tui/components/message-list.d.ts +0 -16
  1282. package/dist/tui/components/message-list.js +0 -120
  1283. package/dist/tui/components/model-dialog.d.ts +0 -63
  1284. package/dist/tui/components/model-dialog.js +0 -89
  1285. package/dist/tui/components/provider-dialog.d.ts +0 -27
  1286. package/dist/tui/components/provider-dialog.js +0 -31
  1287. package/dist/tui/components/tab-bar.d.ts +0 -11
  1288. package/dist/tui/components/tab-bar.js +0 -11
  1289. package/dist/tui/constants.d.ts +0 -6
  1290. package/dist/tui/constants.js +0 -8
  1291. package/dist/tui/contexts/auth-context.d.ts +0 -33
  1292. package/dist/tui/contexts/auth-context.js +0 -193
  1293. package/dist/tui/contexts/commands-context.d.ts +0 -37
  1294. package/dist/tui/contexts/commands-context.js +0 -65
  1295. package/dist/tui/contexts/index.d.ts +0 -11
  1296. package/dist/tui/contexts/index.js +0 -11
  1297. package/dist/tui/contexts/mode-context.d.ts +0 -43
  1298. package/dist/tui/contexts/mode-context.js +0 -70
  1299. package/dist/tui/contexts/onboarding-context.d.ts +0 -49
  1300. package/dist/tui/contexts/onboarding-context.js +0 -193
  1301. package/dist/tui/contexts/services-context.d.ts +0 -32
  1302. package/dist/tui/contexts/services-context.js +0 -27
  1303. package/dist/tui/contexts/tasks-context.d.ts +0 -101
  1304. package/dist/tui/contexts/tasks-context.js +0 -422
  1305. package/dist/tui/contexts/theme-context.d.ts +0 -55
  1306. package/dist/tui/contexts/theme-context.js +0 -62
  1307. package/dist/tui/contexts/transport-context.d.ts +0 -29
  1308. package/dist/tui/contexts/transport-context.js +0 -81
  1309. package/dist/tui/hooks/use-activity-logs.d.ts +0 -18
  1310. package/dist/tui/hooks/use-activity-logs.js +0 -207
  1311. package/dist/tui/hooks/use-auth-polling.d.ts +0 -27
  1312. package/dist/tui/hooks/use-auth-polling.js +0 -118
  1313. package/dist/tui/hooks/use-onboarding-logs.d.ts +0 -17
  1314. package/dist/tui/hooks/use-onboarding-logs.js +0 -26
  1315. package/dist/tui/hooks/use-onboarding.d.ts +0 -7
  1316. package/dist/tui/hooks/use-onboarding.js +0 -6
  1317. package/dist/tui/hooks/use-slash-command-processor.d.ts +0 -16
  1318. package/dist/tui/hooks/use-slash-command-processor.js +0 -132
  1319. package/dist/tui/hooks/use-slash-completion.d.ts +0 -30
  1320. package/dist/tui/hooks/use-slash-completion.js +0 -251
  1321. package/dist/tui/index.d.ts +0 -1
  1322. package/dist/tui/index.js +0 -1
  1323. package/dist/tui/types.d.ts +0 -1
  1324. package/dist/tui/types.js +0 -1
  1325. package/dist/tui/utils/transport-client-helper.d.ts +0 -9
  1326. package/dist/tui/utils/transport-client-helper.js +0 -99
  1327. package/dist/tui/views/index.d.ts +0 -5
  1328. package/dist/tui/views/index.js +0 -5
  1329. package/dist/tui/views/init-view.d.ts +0 -15
  1330. package/dist/tui/views/init-view.js +0 -41
  1331. package/dist/tui/views/login-view.d.ts +0 -10
  1332. package/dist/tui/views/login-view.js +0 -33
  1333. package/dist/tui/views/main-view.d.ts +0 -12
  1334. package/dist/tui/views/main-view.js +0 -20
  1335. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-reader.d.ts +0 -19
  1336. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-reader.d.ts.map +0 -1
  1337. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-reader.js +0 -2
  1338. package/node_modules/@campfirein/brv-transport-client/dist/core/interfaces/i-instance-reader.js.map +0 -1
  1339. package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-discovery.d.ts +0 -32
  1340. package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-discovery.d.ts.map +0 -1
  1341. package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-discovery.js +0 -85
  1342. package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-discovery.js.map +0 -1
  1343. package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-reader.d.ts +0 -16
  1344. package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-reader.d.ts.map +0 -1
  1345. package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-reader.js +0 -47
  1346. package/node_modules/@campfirein/brv-transport-client/dist/infra/file-instance-reader.js.map +0 -1
  1347. /package/dist/{server/core/interfaces/instance/i-instance-discovery.js → agent/infra/agent/provider-update-config.js} +0 -0
  1348. /package/dist/server/core/{interfaces/instance/i-instance-manager.js → domain/entities/curate-log-entry.js} +0 -0
  1349. /package/dist/server/core/{interfaces/services/i-tracking-service.js → domain/entities/curation-status.js} +0 -0
  1350. /package/dist/server/core/{interfaces/usecase/i-connectors-use-case.js → domain/transport/task-info.js} +0 -0
  1351. /package/dist/server/core/interfaces/{usecase/i-curate-use-case.js → agent/i-agent-pool.js} +0 -0
  1352. /package/dist/server/core/interfaces/{usecase/i-init-use-case.js → client/i-client-manager.js} +0 -0
  1353. /package/dist/server/core/interfaces/{usecase/i-login-use-case.js → context-tree/i-context-tree-archive-service.js} +0 -0
  1354. /package/dist/server/core/interfaces/{usecase/i-logout-use-case.js → context-tree/i-context-tree-manifest-service.js} +0 -0
  1355. /package/dist/server/core/interfaces/{usecase/i-pull-use-case.js → context-tree/i-context-tree-merger.js} +0 -0
  1356. /package/dist/server/core/interfaces/{usecase/i-push-use-case.js → context-tree/i-context-tree-summary-service.js} +0 -0
  1357. /package/dist/server/core/interfaces/{usecase/i-query-use-case.js → daemon/i-agent-idle-timeout-policy.js} +0 -0
  1358. /package/dist/server/core/interfaces/{usecase/i-reset-use-case.js → daemon/i-daemon-resilience.js} +0 -0
  1359. /package/dist/server/core/interfaces/{usecase/i-space-list-use-case.js → daemon/i-heartbeat-writer.js} +0 -0
  1360. /package/dist/server/core/interfaces/{usecase/i-space-switch-use-case.js → daemon/i-idle-timeout-policy.js} +0 -0
  1361. /package/dist/server/core/interfaces/{usecase/i-status-use-case.js → daemon/i-shutdown-handler.js} +0 -0
  1362. /package/dist/tui/{commands → features/commands/utils}/arg-parser.js +0 -0
@@ -1,1399 +0,0 @@
1
- /**
2
- * Agent Worker - Entry point for Agent Process.
3
- *
4
- * Architecture v0.5.0:
5
- * - Connects to Transport as Socket.IO CLIENT
6
- * - Contains TaskProcessor + UseCases + CipherAgent
7
- * - Receives tasks via Socket.IO (task:execute)
8
- * - Sends results back via Socket.IO (task:chunk, task:completed, etc.)
9
- * - NO Socket.IO server (Transport is the only server)
10
- *
11
- * IPC messages:
12
- * - Receives: 'ping', 'shutdown', 'health-check'
13
- * - Sends: 'ready', 'pong', 'stopped', 'error', 'health-check-result'
14
- *
15
- * Socket.IO events (as client):
16
- * - Sends: 'agent:register' (identify as Agent)
17
- * - Receives: 'task:execute', 'task:cancel', 'shutdown'
18
- * - Sends: 'task:started', 'task:chunk', 'task:completed', 'task:error', 'task:toolCall', 'task:toolResult'
19
- */
20
- import { TransportClient } from '@campfirein/brv-transport-client';
21
- import { randomUUID } from 'node:crypto';
22
- import { CipherAgent } from '../../../agent/infra/agent/index.js';
23
- import { FileSystemService } from '../../../agent/infra/file-system/file-system-service.js';
24
- import { FolderPackService } from '../../../agent/infra/folder-pack/folder-pack-service.js';
25
- import { createSearchKnowledgeService } from '../../../agent/infra/tools/implementations/search-knowledge-service.js';
26
- import { getCurrentConfig } from '../../config/environment.js';
27
- import { DEFAULT_LLM_MODEL, PROJECT } from '../../constants.js';
28
- import { AgentNotInitializedError, NotAuthenticatedError, ProcessorNotInitError, serializeTaskError, } from '../../core/domain/errors/task-error.js';
29
- import { agentLog } from '../../utils/process-logger.js';
30
- import { ProjectConfigStore } from '../config/file-config-store.js';
31
- import { CurateExecutor } from '../executor/curate-executor.js';
32
- import { FolderPackExecutor } from '../executor/folder-pack-executor.js';
33
- import { QueryExecutor } from '../executor/query-executor.js';
34
- import { createTaskProcessor } from '../executor/task-processor.js';
35
- import { FileProviderConfigStore } from '../storage/file-provider-config-store.js';
36
- import { ProviderKeychainStore } from '../storage/provider-keychain-store.js';
37
- import { createTokenStore } from '../storage/token-store.js';
38
- import { createParentHeartbeat } from './parent-heartbeat.js';
39
- import { TaskQueueManager } from './task-queue-manager.js';
40
- // IPC types imported from ./ipc-types.ts
41
- function sendToParent(message) {
42
- process.send?.(message);
43
- }
44
- /**
45
- * Log transport errors instead of silently swallowing them.
46
- * Used for fire-and-forget transport calls where we don't want to crash
47
- * but still want visibility into failures for debugging.
48
- */
49
- function logTransportError(error) {
50
- const message = error instanceof Error ? error.message : String(error);
51
- agentLog(`Transport error (non-fatal): ${message}`);
52
- }
53
- /**
54
- * Send a critical transport event with retry logic.
55
- * Uses exponential backoff for retries to handle transient network issues.
56
- * Inspired by opencode's robust event forwarding pattern.
57
- *
58
- * Critical events include: task:completed, task:error, task:cancelled
59
- * These should be retried because if they fail, TUI won't know the task ended.
60
- *
61
- * @param eventName - The event name to send
62
- * @param data - The event payload
63
- * @param maxRetries - Maximum number of retry attempts (default: 3)
64
- */
65
- function sendCriticalEvent(eventName, data, maxRetries = 3) {
66
- const BASE_DELAY_MS = 100;
67
- const attemptSend = (attempt) => {
68
- transportClient
69
- ?.requestWithAck(eventName, data)
70
- .then(() => {
71
- // Success - nothing more to do
72
- })
73
- .catch((error) => {
74
- const isLastAttempt = attempt >= maxRetries;
75
- const message = error instanceof Error ? error.message : String(error);
76
- if (isLastAttempt) {
77
- agentLog(`Critical event ${eventName} failed after ${maxRetries + 1} attempts: ${message}`);
78
- return;
79
- }
80
- // Retry with exponential backoff
81
- const delay = BASE_DELAY_MS * 2 ** attempt;
82
- agentLog(`Critical event ${eventName} failed (attempt ${attempt + 1}/${maxRetries + 1}), retrying in ${delay}ms: ${message}`);
83
- setTimeout(() => attemptSend(attempt + 1), delay);
84
- });
85
- };
86
- attemptSend(0);
87
- }
88
- // Task types imported from core/domain/transport/schemas.ts:
89
- // - TaskExecute: Transport → Agent (task:execute event)
90
- // - TaskCancel: Transport → Agent (task:cancel event)
91
- // ============================================================================
92
- // Agent Process
93
- // ============================================================================
94
- let transportClient;
95
- let taskProcessor;
96
- let cipherAgent;
97
- /** ChatSession ID - created once when agent starts, used for all tasks */
98
- let chatSessionId;
99
- /** Whether the agent is fully initialized (has auth + config) */
100
- let isAgentInitialized = false;
101
- /** Initialization error if agent couldn't be initialized */
102
- let initializationError;
103
- /** Guard: prevent concurrent initialization attempts */
104
- let isInitializing = false;
105
- /** Guard: prevent double cleanup */
106
- let isCleaningUp = false;
107
- /** Parent heartbeat monitor - lazily initialized in runWorker() */
108
- let parentHeartbeat;
109
- // ============================================================================
110
- // Credentials Polling (detects auth/config changes)
111
- // ============================================================================
112
- /**
113
- * Credentials polling interval in milliseconds.
114
- *
115
- * 5 seconds balances:
116
- * - Responsiveness: User expects agent to react within ~5s after login/logout/space switch
117
- * - Efficiency: Polling every 5s has minimal CPU/IO overhead (reads 2 small files)
118
- * - UX: Faster than explicit restart, acceptable latency for credential changes
119
- */
120
- const CREDENTIALS_POLL_INTERVAL_MS = 5000;
121
- /** Current cached credentials (set after successful init) */
122
- let cachedCredentials;
123
- /** Guard: prevent concurrent polling checks */
124
- let isPolling = false;
125
- /** Credentials polling running flag */
126
- let credentialsPollingRunning = false;
127
- /** Guard: prevent task enqueueing during reinit (fixes TOCTOU race condition) */
128
- let isReinitializing = false;
129
- /**
130
- * Lazy-initialized stores for credentials polling.
131
- * Avoids side effects at import time (file system access).
132
- * Created once on first poll, then reused (avoid creating new instances every 5 seconds).
133
- */
134
- let pollingTokenStore;
135
- let pollingConfigStore;
136
- function getPollingStores() {
137
- pollingTokenStore ??= createTokenStore();
138
- pollingConfigStore ??= new ProjectConfigStore();
139
- return { pollingConfigStore, pollingTokenStore };
140
- }
141
- let eventForwarders = [];
142
- // ============================================================================
143
- // Task Queue Manager (replaces inline queue logic)
144
- // ============================================================================
145
- /**
146
- * Task queue manager handles:
147
- * - Unified queue for all task types (curate, query)
148
- * - Sequential FIFO execution (max 1 concurrent)
149
- * - Task deduplication (same taskId can't be queued twice)
150
- * - Cancel tasks from queue before processing
151
- */
152
- const taskQueueManager = new TaskQueueManager({
153
- maxConcurrent: 1, // Sequential FIFO execution for all tasks
154
- onExecutorError(taskId, error) {
155
- agentLog(`Executor error for task ${taskId}: ${error}`);
156
- },
157
- });
158
- /**
159
- * Notify clients about dropped tasks and clear the queue.
160
- * Extracted to avoid DRY violation across reinit, stop, and shutdown paths.
161
- */
162
- function notifyQueuedTasksAboutDropAndClear(reason) {
163
- const queuedTasks = taskQueueManager.getQueuedTasks();
164
- if (queuedTasks.length > 0) {
165
- const error = serializeTaskError(new AgentNotInitializedError(`Task dropped - ${reason}`));
166
- if (transportClient) {
167
- agentLog(`Notifying ${queuedTasks.length} queued task(s): ${reason}`);
168
- for (const task of queuedTasks) {
169
- transportClient.requestWithAck('task:error', { error, taskId: task.taskId }).catch(logTransportError);
170
- }
171
- }
172
- else {
173
- agentLog(`Cannot notify ${queuedTasks.length} queued task(s): no transport client`);
174
- }
175
- }
176
- taskQueueManager.clear();
177
- }
178
- /**
179
- * Get Transport port from environment.
180
- */
181
- function getTransportPort() {
182
- const portStr = process.env.TRANSPORT_PORT;
183
- if (!portStr) {
184
- throw new Error('TRANSPORT_PORT environment variable not set');
185
- }
186
- const port = Number.parseInt(portStr, 10);
187
- if (Number.isNaN(port)) {
188
- throw new TypeError(`Invalid TRANSPORT_PORT: ${portStr}`);
189
- }
190
- return port;
191
- }
192
- /**
193
- * Cleanup event forwarders from previous agent instance.
194
- * Prevents memory leaks when agent is reinitialized.
195
- */
196
- function cleanupAgentEventForwarding() {
197
- if (eventForwarders.length === 0) {
198
- return;
199
- }
200
- // Get the old agent's event bus (if still available)
201
- const eventBus = cipherAgent?.agentEventBus;
202
- if (eventBus) {
203
- for (const { event, handler } of eventForwarders) {
204
- // Uses fallback signature: off(eventName: string, listener: (data?: unknown) => void)
205
- eventBus.off(event, handler);
206
- }
207
- }
208
- // Clear the stored references
209
- eventForwarders = [];
210
- agentLog('Event forwarders cleaned up');
211
- }
212
- /**
213
- * Check if there is pending work that would be disrupted by reinit.
214
- * Returns true if tasks are active (running) OR queued (waiting).
215
- */
216
- function hasPendingWork() {
217
- return taskQueueManager.hasActiveTasks() || taskQueueManager.getQueuedCount() > 0;
218
- }
219
- /**
220
- * Wait for active tasks to complete with a timeout.
221
- * Used before reinit to allow in-flight tasks to finish gracefully.
222
- */
223
- async function waitForActiveTasksToComplete(timeoutMs) {
224
- const start = Date.now();
225
- const checkInterval = 100;
226
- // Poll until no active tasks or timeout
227
- const pollUntilDone = async () => {
228
- while (taskQueueManager.hasActiveTasks()) {
229
- if (Date.now() - start >= timeoutMs) {
230
- agentLog('Timeout waiting for active tasks - proceeding with reinit');
231
- return;
232
- }
233
- // eslint-disable-next-line no-await-in-loop
234
- await new Promise((resolve) => {
235
- setTimeout(resolve, checkInterval);
236
- });
237
- }
238
- agentLog('Task queue drained successfully');
239
- };
240
- await pollUntilDone();
241
- }
242
- /**
243
- * Setup event forwarding from CipherAgent to Transport.
244
- * agent-worker subscribes directly to agentEventBus (owns the agent).
245
- * Events are forwarded with currentTaskId.
246
- *
247
- * IMPORTANT: This function now stores handler references and cleans up
248
- * old handlers on reinit to prevent memory leaks.
249
- */
250
- function setupAgentEventForwarding(agent) {
251
- // Clean up old forwarders first (prevents accumulation on reinit)
252
- cleanupAgentEventForwarding();
253
- const eventBus = agent.agentEventBus;
254
- if (!eventBus) {
255
- agentLog('No agentEventBus available for event forwarding');
256
- return;
257
- }
258
- // Helper to register and track event forwarder.
259
- // Wraps typed handler to match event bus fallback signature.
260
- const registerForwarder = (event, handler) => {
261
- // Wrapper matches fallback: (data?: unknown) => void
262
- // BOUNDARY CAST: Event bus delivers unknown data; handler expects T.
263
- // Type guard not possible for generic T at runtime.
264
- const wrappedHandler = (data) => {
265
- handler(data);
266
- };
267
- // Uses fallback signature: on(eventName: string, listener: (data?: unknown) => void)
268
- eventBus.on(event, wrappedHandler);
269
- eventForwarders.push({ event, handler: wrappedHandler });
270
- };
271
- // Forward llmservice:thinking
272
- registerForwarder('llmservice:thinking', (payload) => {
273
- if (payload.taskId) {
274
- transportClient
275
- ?.requestWithAck('llmservice:thinking', { sessionId: payload.sessionId, taskId: payload.taskId })
276
- .catch(logTransportError);
277
- }
278
- });
279
- // Forward llmservice:chunk
280
- registerForwarder('llmservice:chunk', (payload) => {
281
- if (payload.taskId) {
282
- transportClient
283
- ?.requestWithAck('llmservice:chunk', {
284
- content: payload.content,
285
- isComplete: payload.isComplete,
286
- sessionId: payload.sessionId,
287
- taskId: payload.taskId,
288
- type: payload.type,
289
- })
290
- .catch(logTransportError);
291
- }
292
- });
293
- // Forward llmservice:response
294
- registerForwarder('llmservice:response', (payload) => {
295
- if (payload.taskId && payload.content) {
296
- transportClient
297
- ?.requestWithAck('llmservice:response', {
298
- content: payload.content,
299
- model: payload.model,
300
- partial: payload.partial,
301
- provider: payload.provider,
302
- reasoning: payload.reasoning,
303
- sessionId: payload.sessionId,
304
- taskId: payload.taskId,
305
- tokenUsage: payload.tokenUsage,
306
- })
307
- .catch(logTransportError);
308
- }
309
- });
310
- // Forward llmservice:toolCall
311
- registerForwarder('llmservice:toolCall', (payload) => {
312
- if (payload.taskId && payload.callId) {
313
- transportClient
314
- ?.requestWithAck('llmservice:toolCall', {
315
- args: payload.args,
316
- callId: payload.callId,
317
- sessionId: payload.sessionId,
318
- taskId: payload.taskId,
319
- toolName: payload.toolName,
320
- })
321
- .catch(logTransportError);
322
- }
323
- });
324
- // Forward llmservice:toolResult
325
- registerForwarder('llmservice:toolResult', (payload) => {
326
- if (payload.taskId && payload.callId) {
327
- transportClient
328
- ?.requestWithAck('llmservice:toolResult', {
329
- callId: payload.callId,
330
- error: payload.error,
331
- errorType: payload.errorType,
332
- metadata: payload.metadata,
333
- result: payload.result,
334
- sessionId: payload.sessionId,
335
- success: payload.success,
336
- taskId: payload.taskId,
337
- toolName: payload.toolName,
338
- })
339
- .catch(logTransportError);
340
- }
341
- });
342
- // Forward llmservice:error
343
- registerForwarder('llmservice:error', (payload) => {
344
- if (payload.taskId) {
345
- transportClient
346
- ?.requestWithAck('llmservice:error', {
347
- code: payload.code,
348
- error: payload.error,
349
- sessionId: payload.sessionId,
350
- taskId: payload.taskId,
351
- })
352
- .catch(logTransportError);
353
- }
354
- });
355
- // Forward llmservice:unsupportedInput
356
- registerForwarder('llmservice:unsupportedInput', (payload) => {
357
- if (payload.taskId) {
358
- transportClient
359
- ?.requestWithAck('llmservice:unsupportedInput', {
360
- reason: payload.reason,
361
- sessionId: payload.sessionId,
362
- taskId: payload.taskId,
363
- })
364
- .catch(logTransportError);
365
- }
366
- });
367
- agentLog(`Event forwarding setup complete (${eventForwarders.length} forwarders registered)`);
368
- }
369
- /** Task execution timeout: 5 minutes */
370
- const TASK_EXECUTION_TIMEOUT_MS = 5 * 60 * 1000;
371
- /**
372
- * Setup the task executor for TaskQueueManager.
373
- * Fix #2: Now called unconditionally at startup (before tryInitializeAgent).
374
- * Lazy init inside executor enables processing tasks even if initial init failed.
375
- */
376
- function setupTaskExecutor() {
377
- taskQueueManager.setExecutor(async (task) => {
378
- const { taskId, type } = task;
379
- const stats = taskQueueManager.getStats();
380
- agentLog(`Processing task ${taskId} (${type}), ${stats.queued} queued, ${stats.active} active`);
381
- // Fix #2: Lazy initialization - if agent not ready, try to initialize now
382
- // This enables processing tasks that arrived while init was failing
383
- if (!isAgentInitialized) {
384
- agentLog(`Task ${taskId} - agent not initialized, attempting lazy init...`);
385
- const initialized = await tryInitializeAgent();
386
- if (!initialized) {
387
- agentLog(`Task ${taskId} rejected - lazy initialization failed`);
388
- const error = serializeTaskError(initializationError ?? new AgentNotInitializedError('Agent initialization failed'));
389
- sendCriticalEvent('task:error', { error, taskId });
390
- return;
391
- }
392
- agentLog(`Task ${taskId} - lazy initialization successful, proceeding`);
393
- }
394
- // Pre-execution guard: Verify agent is still ready (catches race conditions)
395
- // This catches the case where credentials polling stopped the agent
396
- // between when lazy init succeeded and when execution starts.
397
- if (!isAgentInitialized || !taskProcessor) {
398
- agentLog(`Task ${taskId} rejected - agent stopped during queue wait`);
399
- const error = serializeTaskError(new AgentNotInitializedError('Agent stopped during execution wait'));
400
- sendCriticalEvent('task:error', { error, taskId });
401
- return;
402
- }
403
- // Track timeout state for error handling
404
- let timedOut = false;
405
- const timeoutId = setTimeout(() => {
406
- timedOut = true;
407
- agentLog(`Task ${taskId} timed out after 5 minutes - cancelling via CipherAgent`);
408
- // Cancel via CipherAgent's existing cancel() method
409
- // This aborts activeStreamControllers and session, causing generate() to throw
410
- if (cipherAgent) {
411
- cipherAgent.cancel().catch((error) => {
412
- agentLog(`Error cancelling CipherAgent on timeout: ${error}`);
413
- });
414
- }
415
- }, TASK_EXECUTION_TIMEOUT_MS);
416
- try {
417
- // Execute task - if timeout fires, cipherAgent.cancel() will cause this to throw
418
- await handleTaskExecute(task);
419
- }
420
- catch (error) {
421
- // Handle timeout-triggered cancellation
422
- if (timedOut) {
423
- agentLog(`Task ${taskId} cancelled due to timeout`);
424
- const errorData = serializeTaskError(new Error('Task exceeded 5 minute timeout'));
425
- sendCriticalEvent('task:error', { error: errorData, taskId });
426
- return;
427
- }
428
- // Handle other errors (not timeout)
429
- agentLog(`Task execution failed: ${error}`);
430
- const errorData = serializeTaskError(error);
431
- sendCriticalEvent('task:error', { error: errorData, taskId });
432
- }
433
- finally {
434
- // Always clear timeout to prevent memory leak
435
- clearTimeout(timeoutId);
436
- }
437
- });
438
- agentLog('Task executor setup complete');
439
- }
440
- /**
441
- * Timeout for CipherAgent initialization operations.
442
- * This prevents isInitializing flag from getting stuck if agent.start() or createSession() hangs.
443
- * ProcessManager has 30s timeout for startup, but runtime reinit needs its own protection.
444
- */
445
- const AGENT_INIT_TIMEOUT_MS = 30_000;
446
- /**
447
- * Helper to wrap a promise with a timeout.
448
- * Throws an error if the operation doesn't complete within the timeout.
449
- */
450
- async function withTimeout(promise, timeoutMs, operation) {
451
- let timeoutId;
452
- const timeoutPromise = new Promise((_, reject) => {
453
- timeoutId = setTimeout(() => {
454
- reject(new Error(`${operation} timed out after ${timeoutMs}ms`));
455
- }, timeoutMs);
456
- });
457
- try {
458
- return await Promise.race([promise, timeoutPromise]);
459
- }
460
- finally {
461
- if (timeoutId) {
462
- clearTimeout(timeoutId);
463
- }
464
- }
465
- }
466
- /**
467
- * Validate auth token for initialization.
468
- * Returns the token if valid, undefined if invalid (also sets initializationError).
469
- */
470
- function validateAuthToken(authToken) {
471
- if (!authToken) {
472
- initializationError = new NotAuthenticatedError();
473
- agentLog('Cannot initialize - no auth token');
474
- return undefined;
475
- }
476
- if (authToken.isExpired()) {
477
- initializationError = new NotAuthenticatedError();
478
- agentLog('Cannot initialize - token expired (please run /login to re-authenticate)');
479
- return undefined;
480
- }
481
- return authToken;
482
- }
483
- /**
484
- * Check if cleanup started during init and abort if so.
485
- * Returns true if should abort (cleanup started), false otherwise.
486
- */
487
- async function shouldAbortInitForCleanup(agent, phase) {
488
- if (isCleaningUp) {
489
- agentLog(`Cleanup started during ${phase}, aborting`);
490
- await agent.stop();
491
- return true;
492
- }
493
- return false;
494
- }
495
- /**
496
- * Stop a pending agent that was created but not yet assigned to cipherAgent.
497
- * Used in catch block when timeout/error occurs during agent.start() or createSession().
498
- */
499
- async function stopPendingAgent(agent) {
500
- if (!agent)
501
- return;
502
- try {
503
- await agent.stop();
504
- }
505
- catch (stopError) {
506
- agentLog(`Error stopping pending agent: ${stopError}`);
507
- }
508
- }
509
- /**
510
- * Stop existing agent during force reinit.
511
- */
512
- async function stopExistingAgentForReinit() {
513
- if (!cipherAgent)
514
- return;
515
- agentLog('Reinitializing with new config...');
516
- try {
517
- await cipherAgent.stop();
518
- }
519
- catch (error) {
520
- agentLog(`Error stopping previous agent: ${error}`);
521
- }
522
- cipherAgent = undefined;
523
- taskProcessor = undefined;
524
- isAgentInitialized = false;
525
- }
526
- /**
527
- * Prepare for reinitialization by draining queue and stopping existing agent.
528
- *
529
- * NOTE: We do NOT cleanup transport event handlers here because they are meant
530
- * to be long-lived for the entire worker process lifecycle. Only agent event
531
- * forwarders (which are tied to the CipherAgent instance) are cleaned up via
532
- * cleanupAgentEventForwarding() in stopExistingAgentForReinit().
533
- */
534
- async function prepareForReinit() {
535
- // Drain task queue before reinit to prevent tasks executing with stale processor
536
- agentLog('Draining task queue before reinit...');
537
- notifyQueuedTasksAboutDropAndClear('credential/config change');
538
- // Wait for active tasks to complete (with timeout)
539
- await waitForActiveTasksToComplete(10_000);
540
- await stopExistingAgentForReinit();
541
- }
542
- /**
543
- * Load provider configuration and return API key and model if using external provider.
544
- */
545
- async function loadProviderConfiguration() {
546
- const providerConfigStore = new FileProviderConfigStore();
547
- const providerKeychainStore = new ProviderKeychainStore();
548
- const providerConfig = await providerConfigStore.read();
549
- const activeProviderId = providerConfig.activeProvider;
550
- // Get OpenRouter API key if using external provider
551
- let openRouterApiKey;
552
- let modelFromProvider;
553
- if (activeProviderId !== 'byterover') {
554
- openRouterApiKey = await providerKeychainStore.getApiKey(activeProviderId);
555
- modelFromProvider = await providerConfigStore.getActiveModel(activeProviderId);
556
- if (openRouterApiKey) {
557
- agentLog(`Using external provider: ${activeProviderId}${modelFromProvider ? ` with model: ${modelFromProvider}` : ''}`);
558
- }
559
- }
560
- return { modelFromProvider, openRouterApiKey };
561
- }
562
- /**
563
- * Build agent configuration object from auth token and provider settings.
564
- */
565
- function buildAgentConfig(authToken, modelFromProvider, openRouterApiKey) {
566
- const envConfig = getCurrentConfig();
567
- return {
568
- accessToken: authToken.accessToken,
569
- apiBaseUrl: envConfig.llmApiBaseUrl,
570
- fileSystem: { workingDirectory: process.cwd() },
571
- llm: {
572
- maxIterations: 10,
573
- maxTokens: 4096,
574
- temperature: 0.7,
575
- topK: 10,
576
- topP: 0.95,
577
- verbose: false,
578
- },
579
- model: modelFromProvider ?? DEFAULT_LLM_MODEL,
580
- openRouterApiKey,
581
- projectId: PROJECT,
582
- sessionKey: authToken.sessionKey,
583
- };
584
- }
585
- /**
586
- * Initialize agent instance by starting it and creating a session.
587
- * Returns the initialized agent or undefined if cleanup was triggered.
588
- */
589
- async function initializeAgentInstance(agent) {
590
- // Wrap agent.start() with timeout to prevent isInitializing from getting stuck
591
- await withTimeout(agent.start(), AGENT_INIT_TIMEOUT_MS, 'CipherAgent.start()');
592
- agentLog('CipherAgent started');
593
- // Check if cleanup started during agent.start() (fixes zombie agent race)
594
- if (await shouldAbortInitForCleanup(agent, 'agent.start()')) {
595
- return undefined;
596
- }
597
- // Create ChatSession (also with timeout to prevent hanging)
598
- chatSessionId = `agent-session-${randomUUID()}`;
599
- await withTimeout(agent.createSession(chatSessionId), AGENT_INIT_TIMEOUT_MS, 'CipherAgent.createSession()');
600
- agentLog(`ChatSession created: ${chatSessionId}`);
601
- // Check if cleanup started during createSession() (fixes zombie agent race)
602
- if (await shouldAbortInitForCleanup(agent, 'createSession()')) {
603
- return undefined;
604
- }
605
- return agent;
606
- }
607
- /**
608
- * Finalize agent initialization by setting up event forwarding, creating task processor,
609
- * and updating cached credentials.
610
- */
611
- function finalizeAgentInitialization(params) {
612
- const { agent, authToken, brvConfig, curateExecutor, folderPackExecutor, queryExecutor } = params;
613
- // Setup event forwarding
614
- setupAgentEventForwarding(agent);
615
- cipherAgent = agent;
616
- // Create TaskProcessor
617
- taskProcessor = createTaskProcessor({
618
- curateExecutor,
619
- folderPackExecutor,
620
- queryExecutor,
621
- });
622
- taskProcessor.setAgent(cipherAgent);
623
- // NOTE: setupTaskExecutor() is called once in startAgent() before tryInitializeAgent()
624
- // No need to call again here - executor is already set and handles lazy init
625
- // Mark as initialized
626
- isAgentInitialized = true;
627
- initializationError = undefined;
628
- // Cache credentials for change detection polling
629
- updateCachedCredentials(authToken.accessToken, authToken.sessionKey, brvConfig ? { spaceId: brvConfig.spaceId, teamId: brvConfig.teamId } : undefined);
630
- if (brvConfig) {
631
- agentLog(`Fully initialized with auth and config (team=${brvConfig.teamId}, space=${brvConfig.spaceId})`);
632
- }
633
- else {
634
- agentLog('Initialized with auth only (no project config yet - will reinit when config available)');
635
- }
636
- // Broadcast status change to Transport (init success)
637
- broadcastStatusChange();
638
- }
639
- /**
640
- * Try to initialize/reinitialize the CipherAgent.
641
- * Called on startup and lazily when tasks arrive but agent is not initialized.
642
- * This handles the case where user completes onboarding after agent starts.
643
- *
644
- * @param forceReinit - Force reinitialization even if already initialized (for config reload)
645
- */
646
- async function tryInitializeAgent(forceReinit = false) {
647
- // Guard: prevent initialization during cleanup or if already in progress
648
- if (isCleaningUp || isInitializing) {
649
- agentLog('Initialization blocked (cleanup or already in progress)');
650
- // Clear isReinitializing if WE set it (forceReinit case)
651
- // Without this, the flag would be stuck forever since we return before try block
652
- // and thus finally block never runs. Next poll will re-detect and retry.
653
- if (forceReinit) {
654
- isReinitializing = false;
655
- }
656
- return false;
657
- }
658
- // Already initialized and not forcing reinit
659
- if (!forceReinit && isAgentInitialized && cipherAgent && taskProcessor) {
660
- return true;
661
- }
662
- isInitializing = true;
663
- // Set isReinitializing flag for forceReinit to reject tasks during reinit
664
- // Note: caller (pollCredentialsAndSync) may have already set this - that's OK, we'll clear in finally
665
- if (forceReinit) {
666
- isReinitializing = true;
667
- }
668
- // Declare outside try block so catch can cleanup on timeout/error
669
- let pendingAgent;
670
- try {
671
- // If forcing reinit, drain queue and stop existing agent first
672
- if (forceReinit) {
673
- await prepareForReinit();
674
- }
675
- const tokenStore = createTokenStore();
676
- const configStore = new ProjectConfigStore();
677
- const rawToken = await tokenStore.load();
678
- const brvConfig = await configStore.read();
679
- // Validate auth token (sets initializationError if invalid)
680
- const authToken = validateAuthToken(rawToken);
681
- if (!authToken) {
682
- return false;
683
- }
684
- // Create Executors
685
- const curateExecutor = new CurateExecutor();
686
- // Create shared FileSystemService (used by FolderPackExecutor and QueryExecutor)
687
- const fileSystemService = new FileSystemService();
688
- await fileSystemService.initialize();
689
- // Create QueryExecutor with smart routing and caching dependencies
690
- const searchService = createSearchKnowledgeService(fileSystemService);
691
- const queryExecutor = new QueryExecutor({
692
- enableCache: true,
693
- fileSystem: fileSystemService,
694
- searchService,
695
- });
696
- const folderPackService = new FolderPackService(fileSystemService);
697
- await folderPackService.initialize();
698
- const folderPackExecutor = new FolderPackExecutor(folderPackService);
699
- // Read provider configuration
700
- const { modelFromProvider, openRouterApiKey } = await loadProviderConfiguration();
701
- // Build agent configuration
702
- const agentConfig = buildAgentConfig(authToken, modelFromProvider, openRouterApiKey);
703
- // Initialize agent instance
704
- pendingAgent = new CipherAgent(agentConfig, brvConfig ?? undefined);
705
- const initializedAgent = await initializeAgentInstance(pendingAgent);
706
- if (!initializedAgent) {
707
- return false;
708
- }
709
- // Finalize initialization
710
- finalizeAgentInitialization({
711
- agent: initializedAgent,
712
- authToken,
713
- brvConfig,
714
- curateExecutor,
715
- folderPackExecutor,
716
- queryExecutor,
717
- });
718
- pendingAgent = undefined; // Clear local ref - cipherAgent now owns it
719
- return true;
720
- }
721
- catch (error) {
722
- // Stop pendingAgent if it was created but not yet assigned to cipherAgent
723
- // This handles timeout/error during agent.start() or createSession()
724
- await stopPendingAgent(pendingAgent);
725
- pendingAgent = undefined;
726
- // Cleanup partial state before recording error
727
- // This prevents stale refs from accumulating on repeated failures
728
- await cleanupPartialInit();
729
- // Catch errors and return false instead of throwing
730
- // This allows lazy init to retry when tasks arrive
731
- initializationError = error instanceof Error ? error : new Error(String(error));
732
- agentLog(`Agent initialization failed: ${error}`);
733
- // Broadcast status change to Transport (init failed)
734
- broadcastStatusChange();
735
- return false;
736
- }
737
- finally {
738
- isInitializing = false;
739
- // Clear isReinitializing flag (matches the set above for forceReinit)
740
- if (forceReinit) {
741
- isReinitializing = false;
742
- }
743
- }
744
- }
745
- /**
746
- * Handle task:execute from Transport.
747
- */
748
- async function handleTaskExecute(data) {
749
- const { clientCwd, content, files, folderPath, taskId, type } = data;
750
- agentLog(`Processing task: ${taskId} (type=${type})`);
751
- // NOTE: Lazy initialization is handled in setupTaskExecutor() executor callback.
752
- // By the time we reach here, agent is already initialized (executor does lazy init first).
753
- if (!taskProcessor) {
754
- agentLog('TaskProcessor not initialized');
755
- const error = serializeTaskError(new ProcessorNotInitError());
756
- sendCriticalEvent('task:error', { error, taskId });
757
- return;
758
- }
759
- // Notify task started - use sendCriticalEvent for reliability
760
- sendCriticalEvent('task:started', { taskId });
761
- try {
762
- // Process task - events stream via agentEventBus subscription
763
- // Response is forwarded via llmservice:response event (no manual send needed)
764
- // Agent uses its default session (Single-Session pattern)
765
- // File validation is handled by UseCase (business logic belongs there)
766
- // Note: taskId is passed to UseCase → CipherAgent → ChatSession, which adds it to all events
767
- const result = await taskProcessor.process({
768
- clientCwd,
769
- content,
770
- files,
771
- folderPath,
772
- taskId,
773
- type,
774
- });
775
- // Notify completion with result (required by TaskCompletedEventSchema)
776
- // Use sendCriticalEvent for retry logic - TUI must know task ended
777
- agentLog(`Task completed: ${taskId}`);
778
- sendCriticalEvent('task:completed', { result, taskId });
779
- }
780
- catch (error) {
781
- const errorData = serializeTaskError(error);
782
- agentLog(`Task error: ${taskId} - [${errorData.name}] ${errorData.message}`);
783
- // Use sendCriticalEvent for retry logic - TUI must know task ended
784
- sendCriticalEvent('task:error', { error: errorData, taskId });
785
- }
786
- }
787
- /**
788
- * Handle task:cancel from Transport.
789
- * Uses TaskQueueManager to remove from queue or signal cancellation.
790
- */
791
- function handleTaskCancel(data) {
792
- const { taskId } = data;
793
- agentLog(`Cancelling task: ${taskId}`);
794
- const result = taskQueueManager.cancel(taskId);
795
- if (result.success) {
796
- if (result.wasQueued) {
797
- // Task was in queue, not yet processing - removed by queue manager
798
- agentLog(`Task ${taskId} removed from ${result.taskType} queue (was waiting)`);
799
- // Notify transport that task was cancelled - use retry for reliability
800
- sendCriticalEvent('task:cancelled', { taskId });
801
- }
802
- else {
803
- // Task is currently processing - cancel via taskProcessor
804
- agentLog(`Task ${taskId} is processing, forwarding cancel to taskProcessor`);
805
- taskProcessor?.cancel(taskId);
806
- }
807
- }
808
- else {
809
- agentLog(`Task ${taskId} not found in queue or processing`);
810
- }
811
- }
812
- /**
813
- * Start Agent Process.
814
- */
815
- async function startAgent() {
816
- const port = getTransportPort();
817
- agentLog(`Connecting to Transport on port ${port}`);
818
- // Create Transport client (low-level: worker connects to specific port, not via discovery)
819
- transportClient = new TransportClient();
820
- // Connect to Transport
821
- await transportClient.connect(`http://localhost:${port}`);
822
- agentLog('Connected to Transport');
823
- // Register as Agent
824
- await transportClient.requestWithAck('agent:register', {});
825
- agentLog('Registered with Transport');
826
- // Fix #1: Re-register on any reconnect (Socket.IO auto-reconnect OR force reconnect)
827
- // When connection is restored, agent needs to re-register with Transport.
828
- // Using onStateChange instead of 'connect' event to handle all reconnect types.
829
- // Fix #4: Include status in register payload to prevent race condition window
830
- let wasDisconnected = false;
831
- transportClient.onStateChange(async (state) => {
832
- agentLog(`Transport state changed: ${state}`);
833
- if (state === 'disconnected' || state === 'reconnecting') {
834
- wasDisconnected = true;
835
- }
836
- else if (state === 'connected' && wasDisconnected) {
837
- agentLog('Transport reconnected - re-registering with Transport');
838
- // Retry with exponential backoff (50ms, 100ms, 200ms, 400ms, 800ms)
839
- // Socket.IO may fire 'connected' state before socket is fully ready
840
- const retryDelays = [50, 100, 200, 400, 800];
841
- for (let attempt = 0; attempt <= retryDelays.length; attempt++) {
842
- try {
843
- // Include status in register payload (Transport caches it atomically)
844
- // eslint-disable-next-line no-await-in-loop -- Sequential retries with backoff required
845
- await transportClient?.requestWithAck('agent:register', { status: getAgentStatus() });
846
- // Only clear flag after successful registration
847
- wasDisconnected = false;
848
- agentLog('Re-registered with Transport after reconnect');
849
- return; // Success - exit retry loop
850
- }
851
- catch (error) {
852
- if (attempt < retryDelays.length) {
853
- agentLog(`Re-register attempt ${attempt + 1} failed, retrying in ${retryDelays[attempt]}ms: ${error}`);
854
- // eslint-disable-next-line no-await-in-loop -- Sequential retries with backoff required
855
- await new Promise((resolve) => {
856
- setTimeout(resolve, retryDelays[attempt]);
857
- });
858
- }
859
- else {
860
- // Keep wasDisconnected = true so next reconnect retries registration
861
- agentLog(`Failed to re-register after ${attempt + 1} attempts: ${error}`);
862
- }
863
- }
864
- }
865
- }
866
- });
867
- // Fix #2: Setup task executor BEFORE init - enables lazy init when tasks arrive
868
- // This ensures tasks don't get stuck in queue if initial init fails
869
- setupTaskExecutor();
870
- // Try to initialize agent (may fail if no auth yet - that's OK)
871
- // tryInitializeAgent() broadcasts status on both success and failure,
872
- // so Transport will have cached status before any task can arrive.
873
- // If init fails, lazy init will retry when tasks arrive (handled by executor).
874
- const initialized = await tryInitializeAgent();
875
- if (!initialized) {
876
- agentLog('Initial setup incomplete - will retry when tasks arrive (lazy init)');
877
- }
878
- // Setup event handlers - TaskQueueManager handles queueing and deduplication
879
- // These handlers are registered once and persist for the worker's lifetime
880
- transportClient.on('task:execute', (data) => {
881
- // Reject tasks during reinit to prevent TOCTOU race condition
882
- if (isReinitializing) {
883
- agentLog(`Task ${data.taskId} rejected - agent reinitializing`);
884
- const error = serializeTaskError(new AgentNotInitializedError('Agent is reinitializing'));
885
- sendCriticalEvent('task:error', { error, taskId: data.taskId });
886
- return;
887
- }
888
- const result = taskQueueManager.enqueue(data);
889
- if (result.success) {
890
- const stats = taskQueueManager.getStats();
891
- agentLog(`Task ${data.taskId} (${data.type}) queued at position ${result.position}, ${stats.queued} in queue`);
892
- }
893
- else if (result.reason === 'duplicate') {
894
- agentLog(`Task ${data.taskId} already known (duplicate), ignoring`);
895
- }
896
- else {
897
- agentLog(`Task ${data.taskId} rejected: ${result.reason}`);
898
- }
899
- });
900
- transportClient.on('task:cancel', handleTaskCancel);
901
- // Handle shutdown from Transport
902
- transportClient.on('shutdown', () => {
903
- agentLog('Received shutdown from Transport');
904
- stopAgent()
905
- .then(() => {
906
- sendToParent({ type: 'stopped' });
907
- // eslint-disable-next-line n/no-process-exit, unicorn/no-process-exit
908
- process.exit(0);
909
- })
910
- .catch((error) => {
911
- agentLog(`Error during shutdown: ${error}`);
912
- sendToParent({ type: 'stopped' });
913
- // eslint-disable-next-line n/no-process-exit, unicorn/no-process-exit
914
- process.exit(1);
915
- });
916
- });
917
- // Handle agent:restart from Transport (triggered by client, e.g., after /init)
918
- transportClient.on('agent:restart', async (data) => {
919
- agentLog(`Agent restart requested: ${data.reason ?? 'no reason'}`);
920
- // Guard: reject if initialization already in progress (prevents concurrent reinit race condition)
921
- if (isInitializing || isReinitializing) {
922
- agentLog('Agent restart rejected - initialization already in progress');
923
- await transportClient?.requestWithAck('agent:restarted', {
924
- error: 'Initialization already in progress',
925
- success: false,
926
- });
927
- return;
928
- }
929
- // Reject restart if tasks are in progress or queued (prevents killing active tasks)
930
- if (hasPendingWork()) {
931
- agentLog('Agent restart rejected - tasks in progress or queued');
932
- await transportClient?.requestWithAck('agent:restarted', {
933
- error: 'Tasks in progress. Please wait for tasks to complete.',
934
- success: false,
935
- });
936
- return;
937
- }
938
- try {
939
- // Reinitialize agent with fresh config
940
- const success = await tryInitializeAgent(true); // forceReinit = true
941
- if (success) {
942
- agentLog('Agent reinitialized successfully');
943
- // Notify Transport that restart completed
944
- await transportClient?.requestWithAck('agent:restarted', { success: true });
945
- }
946
- else if (isCleaningUp) {
947
- // Cleanup in progress - can't restart during shutdown
948
- agentLog('Agent reinitialization rejected - cleanup in progress');
949
- await transportClient?.requestWithAck('agent:restarted', {
950
- error: 'Agent is shutting down',
951
- success: false,
952
- });
953
- }
954
- else {
955
- // Actual failure - missing auth or config
956
- // Note: isInitializing is guaranteed to be false here because tryInitializeAgent()
957
- // always clears it in its finally block before returning
958
- agentLog('Agent reinitialization failed - config incomplete');
959
- await transportClient?.requestWithAck('agent:restarted', {
960
- error: initializationError?.message ?? 'Config incomplete (no auth token or config)',
961
- success: false,
962
- });
963
- }
964
- }
965
- catch (error) {
966
- const message = error instanceof Error ? error.message : String(error);
967
- agentLog(`Agent reinitialization error: ${message}`);
968
- await transportClient?.requestWithAck('agent:restarted', { error: message, success: false });
969
- }
970
- });
971
- // Handle agent:newSession from Transport (triggered by /new command)
972
- transportClient.on('agent:newSession', async (data) => {
973
- agentLog(`New session requested: ${data.reason ?? 'no reason'}`);
974
- try {
975
- if (!cipherAgent) {
976
- agentLog('Cannot create new session - agent not initialized');
977
- await transportClient?.requestWithAck('agent:newSessionCreated', {
978
- error: 'Agent not initialized',
979
- success: false,
980
- });
981
- return;
982
- }
983
- // Generate new session ID
984
- const newSessionId = `agent-session-${randomUUID()}`;
985
- // Create new session
986
- await cipherAgent.createSession(newSessionId);
987
- // Switch the agent's default session to the new one
988
- // This ensures execute()/generate()/stream() use the new session
989
- cipherAgent.switchDefaultSession(newSessionId);
990
- // Update the local session ID reference
991
- chatSessionId = newSessionId;
992
- agentLog(`New session created: ${newSessionId}`);
993
- // Notify Transport that new session was created
994
- await transportClient?.requestWithAck('agent:newSessionCreated', {
995
- sessionId: newSessionId,
996
- success: true,
997
- });
998
- }
999
- catch (error) {
1000
- const message = error instanceof Error ? error.message : String(error);
1001
- agentLog(`New session creation error: ${message}`);
1002
- await transportClient?.requestWithAck('agent:newSessionCreated', {
1003
- error: message,
1004
- success: false,
1005
- });
1006
- }
1007
- });
1008
- agentLog('Ready to process tasks');
1009
- }
1010
- // ============================================================================
1011
- // Credentials Polling Functions
1012
- // ============================================================================
1013
- /**
1014
- * Stop CipherAgent only (does NOT exit process or disconnect transport).
1015
- * Used when credentials are missing/invalid but we want to keep polling.
1016
- */
1017
- async function stopCipherAgent() {
1018
- // Cleanup event forwarders
1019
- cleanupAgentEventForwarding();
1020
- // Notify and clear task queue (can't process without agent)
1021
- notifyQueuedTasksAboutDropAndClear('agent stopped');
1022
- // Stop CipherAgent
1023
- if (cipherAgent) {
1024
- try {
1025
- await cipherAgent.stop();
1026
- }
1027
- catch (error) {
1028
- agentLog(`Error stopping CipherAgent: ${error}`);
1029
- }
1030
- cipherAgent = undefined;
1031
- }
1032
- taskProcessor = undefined;
1033
- chatSessionId = undefined;
1034
- isAgentInitialized = false;
1035
- cachedCredentials = undefined;
1036
- agentLog('CipherAgent stopped (credentials missing or invalid)');
1037
- // Broadcast status change to Transport (cipher stopped)
1038
- broadcastStatusChange();
1039
- }
1040
- /**
1041
- * Cleanup partial state after failed initialization.
1042
- * Called when tryInitializeAgent() fails partway through.
1043
- * Does NOT broadcast status (caller handles that).
1044
- */
1045
- async function cleanupPartialInit() {
1046
- agentLog('Cleaning up partial initialization state...');
1047
- // Cleanup event forwarders (may have been partially set up)
1048
- cleanupAgentEventForwarding();
1049
- // Stop CipherAgent if it was partially started
1050
- if (cipherAgent) {
1051
- try {
1052
- await cipherAgent.stop();
1053
- }
1054
- catch (error) {
1055
- agentLog(`Error stopping partial CipherAgent: ${error}`);
1056
- }
1057
- cipherAgent = undefined;
1058
- }
1059
- // Clear partial state
1060
- taskProcessor = undefined;
1061
- chatSessionId = undefined;
1062
- // Note: DON'T clear cachedCredentials here - keep old credentials for comparison
1063
- // Note: DON'T set isAgentInitialized - it should already be false
1064
- agentLog('Partial initialization state cleaned up');
1065
- }
1066
- /**
1067
- * Update cached credentials after successful initialization.
1068
- */
1069
- function updateCachedCredentials(accessToken, sessionKey, config) {
1070
- cachedCredentials = {
1071
- accessToken,
1072
- sessionKey,
1073
- spaceId: config?.spaceId,
1074
- teamId: config?.teamId,
1075
- };
1076
- }
1077
- /**
1078
- * Check if credentials have changed compared to cache.
1079
- */
1080
- function credentialsChanged(currentToken, currentConfig) {
1081
- // No cached credentials = first run or was stopped
1082
- if (!cachedCredentials) {
1083
- return currentToken ? 'changed' : 'missing';
1084
- }
1085
- // Token missing = credentials gone
1086
- if (!currentToken) {
1087
- return 'missing';
1088
- }
1089
- // Compare token
1090
- if (currentToken.accessToken !== cachedCredentials.accessToken ||
1091
- currentToken.sessionKey !== cachedCredentials.sessionKey) {
1092
- return 'changed';
1093
- }
1094
- // Compare config (spaceId/teamId)
1095
- const currentSpaceId = currentConfig?.spaceId;
1096
- const currentTeamId = currentConfig?.teamId;
1097
- if (currentSpaceId !== cachedCredentials.spaceId || currentTeamId !== cachedCredentials.teamId) {
1098
- return 'changed';
1099
- }
1100
- return 'unchanged';
1101
- }
1102
- /**
1103
- * Poll credentials and sync CipherAgent state.
1104
- *
1105
- * Called periodically to detect auth/config changes:
1106
- * - If credentials MISSING → stop CipherAgent
1107
- * - If credentials CHANGED → reinit CipherAgent
1108
- * - If UNCHANGED → do nothing
1109
- */
1110
- async function pollCredentialsAndSync() {
1111
- // Guard: prevent concurrent polling
1112
- if (isPolling) {
1113
- return;
1114
- }
1115
- // Guard: don't poll during cleanup or initialization
1116
- if (isCleaningUp || isInitializing) {
1117
- return;
1118
- }
1119
- isPolling = true;
1120
- try {
1121
- // Use lazy-initialized cached stores (avoid creating new instances every poll)
1122
- const stores = getPollingStores();
1123
- const authToken = await stores.pollingTokenStore.load();
1124
- const brvConfig = await stores.pollingConfigStore.read();
1125
- // Detect change
1126
- const tokenInfo = authToken ? { accessToken: authToken.accessToken, sessionKey: authToken.sessionKey } : undefined;
1127
- const configInfo = brvConfig ? { spaceId: brvConfig.spaceId, teamId: brvConfig.teamId } : undefined;
1128
- const changeStatus = credentialsChanged(tokenInfo, configInfo);
1129
- switch (changeStatus) {
1130
- case 'changed': {
1131
- // Check RIGHT BEFORE reinit - after all awaits, to catch tasks added during awaits
1132
- // Must check BOTH active (running) AND queued tasks to prevent race condition
1133
- // where task is enqueued after this check but before stopCipherAgent() clears taskProcessor
1134
- if (hasPendingWork() || isReinitializing) {
1135
- agentLog('Credentials changed but tasks in progress, queued, or reinit in progress - deferring');
1136
- return;
1137
- }
1138
- // Set flag IMMEDIATELY after check to close TOCTOU window
1139
- // tryInitializeAgent will manage the flag from here (set on entry, clear in finally)
1140
- isReinitializing = true;
1141
- // Credentials changed - reinit CipherAgent
1142
- agentLog('Credentials changed - reinitializing CipherAgent');
1143
- const success = await tryInitializeAgent(true); // forceReinit
1144
- if (success) {
1145
- agentLog('CipherAgent reinitialized with new credentials');
1146
- }
1147
- else {
1148
- agentLog('CipherAgent reinitialization failed');
1149
- }
1150
- break;
1151
- }
1152
- case 'missing': {
1153
- // Credentials gone - stop CipherAgent if running
1154
- if (isAgentInitialized) {
1155
- if (hasPendingWork()) {
1156
- agentLog('Credentials missing but tasks in progress - deferring stop');
1157
- return;
1158
- }
1159
- agentLog('Credentials missing - stopping CipherAgent');
1160
- await stopCipherAgent();
1161
- }
1162
- break;
1163
- }
1164
- case 'unchanged': {
1165
- // No change - check if token expired (edge case)
1166
- if (authToken?.isExpired() && isAgentInitialized) {
1167
- if (hasPendingWork()) {
1168
- agentLog('Token expired but tasks in progress - deferring stop');
1169
- return;
1170
- }
1171
- agentLog('Token expired - stopping CipherAgent');
1172
- await stopCipherAgent();
1173
- }
1174
- break;
1175
- }
1176
- }
1177
- }
1178
- catch (error) {
1179
- // Don't crash on poll errors - just log and continue
1180
- agentLog(`Credentials poll error: ${error}`);
1181
- }
1182
- finally {
1183
- isPolling = false;
1184
- }
1185
- }
1186
- /**
1187
- * Start credentials polling.
1188
- * Uses recursive setTimeout pattern (same as parent heartbeat).
1189
- */
1190
- function startCredentialsPolling() {
1191
- if (credentialsPollingRunning) {
1192
- return;
1193
- }
1194
- credentialsPollingRunning = true;
1195
- const poll = () => {
1196
- if (!credentialsPollingRunning) {
1197
- return;
1198
- }
1199
- pollCredentialsAndSync()
1200
- .catch((error) => {
1201
- agentLog(`Credentials poll failed: ${error}`);
1202
- })
1203
- .finally(() => {
1204
- // Schedule next poll (only if still running)
1205
- if (credentialsPollingRunning) {
1206
- setTimeout(poll, CREDENTIALS_POLL_INTERVAL_MS);
1207
- }
1208
- });
1209
- };
1210
- // Start first poll after delay
1211
- setTimeout(poll, CREDENTIALS_POLL_INTERVAL_MS);
1212
- agentLog('Credentials polling started');
1213
- }
1214
- /**
1215
- * Stop credentials polling.
1216
- */
1217
- function stopCredentialsPolling() {
1218
- credentialsPollingRunning = false;
1219
- }
1220
- // ============================================================================
1221
- // Agent Status Reporting
1222
- // ============================================================================
1223
- /**
1224
- * Get current agent status for health check.
1225
- * Used by Transport to check if agent is ready before forwarding tasks.
1226
- */
1227
- function getAgentStatus() {
1228
- return {
1229
- activeTasks: taskQueueManager.getActiveCount(),
1230
- hasAuth: cachedCredentials !== undefined,
1231
- // Check both spaceId and teamId for safety (both must be set after /init)
1232
- hasConfig: cachedCredentials?.spaceId !== undefined && cachedCredentials?.teamId !== undefined,
1233
- isInitialized: isAgentInitialized,
1234
- lastError: initializationError?.message,
1235
- queuedTasks: taskQueueManager.getQueuedCount(),
1236
- };
1237
- }
1238
- /**
1239
- * Broadcast status change to Transport.
1240
- * Called when cipher state changes (init success/fail, stop, credentials change).
1241
- * Transport will forward to all connected clients.
1242
- */
1243
- function broadcastStatusChange() {
1244
- const status = getAgentStatus();
1245
- transportClient?.requestWithAck('agent:status:changed', status).catch(logTransportError);
1246
- }
1247
- /**
1248
- * Stop Agent Process.
1249
- */
1250
- async function stopAgent() {
1251
- // Guard: prevent double cleanup
1252
- if (isCleaningUp) {
1253
- agentLog('Cleanup already in progress, skipping');
1254
- return;
1255
- }
1256
- isCleaningUp = true;
1257
- try {
1258
- // Stop polling and heartbeat first
1259
- stopCredentialsPolling();
1260
- parentHeartbeat?.stop();
1261
- // Notify and clear task queue
1262
- notifyQueuedTasksAboutDropAndClear('agent shutting down');
1263
- // Cleanup event forwarders before stopping agent
1264
- cleanupAgentEventForwarding();
1265
- // Stop CipherAgent first
1266
- if (cipherAgent) {
1267
- await cipherAgent.stop();
1268
- cipherAgent = undefined;
1269
- agentLog('CipherAgent stopped');
1270
- }
1271
- if (transportClient) {
1272
- await transportClient.disconnect();
1273
- transportClient = undefined;
1274
- }
1275
- taskProcessor = undefined;
1276
- isAgentInitialized = false;
1277
- agentLog('Stopped');
1278
- }
1279
- finally {
1280
- isCleaningUp = false;
1281
- }
1282
- }
1283
- // ============================================================================
1284
- // Worker Entry Point
1285
- // ============================================================================
1286
- async function runWorker() {
1287
- try {
1288
- await startAgent();
1289
- sendToParent({ type: 'ready' });
1290
- // Start parent heartbeat monitoring after ready
1291
- // This ensures we self-terminate if parent dies (SIGKILL scenario)
1292
- parentHeartbeat = createParentHeartbeat({
1293
- cleanup: stopAgent,
1294
- log: agentLog,
1295
- });
1296
- parentHeartbeat.start();
1297
- // Start credentials polling to detect auth/config changes
1298
- // This ensures CipherAgent stays in sync with user's login state
1299
- startCredentialsPolling();
1300
- }
1301
- catch (error) {
1302
- const message = error instanceof Error ? error.message : String(error);
1303
- agentLog(`Failed to start: ${message}`);
1304
- sendToParent({ error: message, type: 'error' });
1305
- // Cleanup before exit to release any acquired resources
1306
- await stopAgent().catch(() => { });
1307
- // eslint-disable-next-line n/no-process-exit, unicorn/no-process-exit
1308
- process.exit(1);
1309
- }
1310
- // IPC message handler
1311
- process.on('message', async (msg) => {
1312
- switch (msg.type) {
1313
- case 'health-check': {
1314
- // Fix #3: Health-check after sleep/wake - verify and repair connection
1315
- agentLog('Received health-check from parent - verifying connection');
1316
- // Guard: skip health check during initialization (would interfere with startup sequence)
1317
- if (isInitializing) {
1318
- agentLog('Health-check skipped - initialization in progress');
1319
- sendToParent({ success: true, type: 'health-check-result' });
1320
- break;
1321
- }
1322
- // Guard: transportClient must exist for health check
1323
- if (!transportClient) {
1324
- agentLog('Health-check failed - transportClient not initialized');
1325
- sendToParent({ success: false, type: 'health-check-result' });
1326
- break;
1327
- }
1328
- try {
1329
- // Fix #5: Fail-fast - verify socket is responsive before expensive operation
1330
- // After sleep, socket.connected may be true but TCP connection is dead
1331
- const isAlive = await transportClient.isConnected(2000); // 2s timeout
1332
- agentLog(`Health-check: isConnected=${isAlive}, state=${transportClient.getState()}`);
1333
- if (!isAlive) {
1334
- agentLog('Health-check failed - socket not responsive (connection stale)');
1335
- sendToParent({ success: false, type: 'health-check-result' });
1336
- break;
1337
- }
1338
- // Re-register with Transport to ensure connection is alive
1339
- // Include status in register payload (Transport caches it atomically)
1340
- await transportClient.requestWithAck('agent:register', { status: getAgentStatus() });
1341
- agentLog('Health-check passed - connection verified');
1342
- sendToParent({ success: true, type: 'health-check-result' });
1343
- }
1344
- catch (error) {
1345
- agentLog(`Health-check failed - connection may be stale: ${error}`);
1346
- sendToParent({ success: false, type: 'health-check-result' });
1347
- // Socket.IO will attempt reconnection automatically
1348
- }
1349
- break;
1350
- }
1351
- case 'ping': {
1352
- sendToParent({ type: 'pong' });
1353
- break;
1354
- }
1355
- case 'shutdown': {
1356
- await stopAgent();
1357
- sendToParent({ type: 'stopped' });
1358
- // eslint-disable-next-line n/no-process-exit
1359
- process.exit(0);
1360
- // Note: break unreachable due to process.exit() above
1361
- }
1362
- }
1363
- });
1364
- // Signal handlers
1365
- const cleanup = async () => {
1366
- await stopAgent();
1367
- // eslint-disable-next-line n/no-process-exit, unicorn/no-process-exit
1368
- process.exit(0);
1369
- };
1370
- process.once('SIGTERM', cleanup);
1371
- process.once('SIGINT', cleanup);
1372
- process.once('disconnect', cleanup);
1373
- // Global exception handlers - ensure cleanup on unexpected errors
1374
- process.on('uncaughtException', async (error) => {
1375
- agentLog(`Uncaught exception: ${error}`);
1376
- await stopAgent().catch(() => { });
1377
- // eslint-disable-next-line n/no-process-exit
1378
- process.exit(1);
1379
- });
1380
- process.on('unhandledRejection', async (reason) => {
1381
- agentLog(`Unhandled rejection: ${reason}`);
1382
- await stopAgent().catch(() => { });
1383
- // eslint-disable-next-line n/no-process-exit
1384
- process.exit(1);
1385
- });
1386
- }
1387
- // ============================================================================
1388
- // Run
1389
- // ============================================================================
1390
- try {
1391
- await runWorker();
1392
- }
1393
- catch (error) {
1394
- agentLog(`Fatal error: ${error}`);
1395
- // Cleanup before exit to release any acquired resources
1396
- await stopAgent().catch(() => { });
1397
- // eslint-disable-next-line n/no-process-exit, unicorn/no-process-exit
1398
- process.exit(1);
1399
- }