@excitedjs/dreamux 0.26.0-beta.265 → 0.26.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 (494) hide show
  1. package/CHANGELOG.json +393 -0
  2. package/CHANGELOG.md +71 -1
  3. package/README.md +47 -34
  4. package/dist/admin/client.js +18 -7
  5. package/dist/admin/client.js.map +1 -1
  6. package/dist/admin/socket.js +15 -104
  7. package/dist/admin/socket.js.map +1 -1
  8. package/dist/agent-runtime/capabilities.js +4 -17
  9. package/dist/agent-runtime/capabilities.js.map +1 -1
  10. package/dist/agent-runtime/catalog.js.map +1 -1
  11. package/dist/agent-runtime/external-provider.js.map +1 -1
  12. package/dist/agent-runtime/host-context.js +1 -12
  13. package/dist/agent-runtime/host-context.js.map +1 -1
  14. package/dist/agent-runtime/host-paths.js +1 -1
  15. package/dist/agent-runtime/host-paths.js.map +1 -1
  16. package/dist/agent-runtime/index.js +7 -0
  17. package/dist/agent-runtime/index.js.map +1 -1
  18. package/dist/agent-runtime/skill-sources.js +23 -6
  19. package/dist/agent-runtime/skill-sources.js.map +1 -1
  20. package/dist/channel/catalog.js.map +1 -1
  21. package/dist/channel/external-channel-provider.js.map +1 -1
  22. package/dist/cli/commands/daemon.js +5 -8
  23. package/dist/cli/commands/daemon.js.map +1 -1
  24. package/dist/cli/commands/dispatcher.js +11 -15
  25. package/dist/cli/commands/dispatcher.js.map +1 -1
  26. package/dist/cli/commands/index.js +4 -4
  27. package/dist/cli/commands/index.js.map +1 -1
  28. package/dist/cli/commands/mcp.js +2 -4
  29. package/dist/cli/commands/mcp.js.map +1 -1
  30. package/dist/cli/commands/onboard.js +0 -4
  31. package/dist/cli/commands/onboard.js.map +1 -1
  32. package/dist/cli/commands/parse.js +1 -1
  33. package/dist/cli/commands/parse.js.map +1 -1
  34. package/dist/cli/commands/serve.js +3 -2
  35. package/dist/cli/commands/serve.js.map +1 -1
  36. package/dist/cli/commands/status.js +3 -3
  37. package/dist/cli/commands/status.js.map +1 -1
  38. package/dist/cli/commands/types.js +25 -3
  39. package/dist/cli/commands/types.js.map +1 -1
  40. package/dist/cli/commands/uninstall.js +2 -8
  41. package/dist/cli/commands/uninstall.js.map +1 -1
  42. package/dist/cli/doctor-plugins.js +44 -0
  43. package/dist/cli/doctor-plugins.js.map +1 -0
  44. package/dist/cli/doctor-types.js +2 -0
  45. package/dist/cli/doctor-types.js.map +1 -0
  46. package/dist/cli/doctor.js +48 -125
  47. package/dist/cli/doctor.js.map +1 -1
  48. package/dist/cli/dreamux.js +2 -30
  49. package/dist/cli/dreamux.js.map +1 -1
  50. package/dist/cli/server.js +55 -70
  51. package/dist/cli/server.js.map +1 -1
  52. package/dist/command/errors.js +43 -2
  53. package/dist/command/errors.js.map +1 -1
  54. package/dist/command/host.js +10 -17
  55. package/dist/command/host.js.map +1 -1
  56. package/dist/command/payload.js +0 -9
  57. package/dist/command/payload.js.map +1 -1
  58. package/dist/command/port.js +0 -4
  59. package/dist/command/port.js.map +1 -1
  60. package/dist/command/registry.js +0 -4
  61. package/dist/command/registry.js.map +1 -1
  62. package/dist/command/schema.js.map +1 -1
  63. package/dist/command/types.js.map +1 -0
  64. package/dist/command/validate.js +22 -41
  65. package/dist/command/validate.js.map +1 -1
  66. package/dist/config/commands.js +46 -0
  67. package/dist/config/commands.js.map +1 -0
  68. package/dist/config/config.js +155 -169
  69. package/dist/config/config.js.map +1 -1
  70. package/dist/config/load.js +138 -0
  71. package/dist/config/load.js.map +1 -0
  72. package/dist/config/service.js +196 -0
  73. package/dist/config/service.js.map +1 -0
  74. package/dist/daemon/{service-control.js → control.js} +15 -16
  75. package/dist/daemon/control.js.map +1 -0
  76. package/dist/daemon/environment.js +353 -0
  77. package/dist/daemon/environment.js.map +1 -0
  78. package/dist/daemon/host.js +16 -0
  79. package/dist/daemon/host.js.map +1 -0
  80. package/dist/daemon/install.js +167 -69
  81. package/dist/daemon/install.js.map +1 -1
  82. package/dist/daemon/status.js +87 -0
  83. package/dist/daemon/status.js.map +1 -0
  84. package/dist/{cli/service-status-parse.js → daemon/unit.js} +90 -12
  85. package/dist/daemon/unit.js.map +1 -0
  86. package/dist/{service/mcp/descriptor.js → mcp/launch.js} +3 -7
  87. package/dist/mcp/launch.js.map +1 -0
  88. package/dist/mcp/server.js +9 -5
  89. package/dist/mcp/server.js.map +1 -1
  90. package/dist/mcp/shim.js +18 -16
  91. package/dist/mcp/shim.js.map +1 -1
  92. package/dist/onboard/config-files.js +12 -26
  93. package/dist/onboard/config-files.js.map +1 -1
  94. package/dist/onboard/run.js +47 -66
  95. package/dist/onboard/run.js.map +1 -1
  96. package/dist/onboard/uninstall.js +59 -42
  97. package/dist/onboard/uninstall.js.map +1 -1
  98. package/dist/onboard/wizard.js +33 -18
  99. package/dist/onboard/wizard.js.map +1 -1
  100. package/dist/{onboard/commands.js → platform/command-runner.js} +7 -3
  101. package/dist/platform/command-runner.js.map +1 -0
  102. package/dist/platform/deduplicate.js +32 -0
  103. package/dist/platform/deduplicate.js.map +1 -0
  104. package/dist/{state → platform}/dispatcher-id.js +1 -1
  105. package/dist/platform/dispatcher-id.js.map +1 -0
  106. package/dist/platform/errors.js +23 -23
  107. package/dist/platform/errors.js.map +1 -1
  108. package/dist/{onboard/ledger.js → platform/file-ledger.js} +13 -38
  109. package/dist/platform/file-ledger.js.map +1 -0
  110. package/dist/platform/history-page.js +62 -0
  111. package/dist/platform/history-page.js.map +1 -0
  112. package/dist/platform/in-flight-work.js.map +1 -0
  113. package/dist/platform/instance-lock.js +95 -0
  114. package/dist/platform/instance-lock.js.map +1 -0
  115. package/dist/platform/json-value.js +26 -15
  116. package/dist/platform/json-value.js.map +1 -1
  117. package/dist/platform/jsonl.js.map +1 -1
  118. package/dist/platform/logger.js +5 -5
  119. package/dist/platform/logger.js.map +1 -1
  120. package/dist/platform/package-bin.js +3 -1
  121. package/dist/platform/package-bin.js.map +1 -1
  122. package/dist/platform/paths.js +42 -69
  123. package/dist/platform/paths.js.map +1 -1
  124. package/dist/platform/runtime-sockets.js +7 -2
  125. package/dist/platform/runtime-sockets.js.map +1 -1
  126. package/dist/platform/serial-queue.js +22 -0
  127. package/dist/platform/serial-queue.js.map +1 -0
  128. package/dist/platform/shutdown-errors.js.map +1 -0
  129. package/dist/platform/work-fence.js +30 -0
  130. package/dist/platform/work-fence.js.map +1 -0
  131. package/dist/plugin/hooks.js +407 -0
  132. package/dist/plugin/hooks.js.map +1 -0
  133. package/dist/plugin/host.js +97 -0
  134. package/dist/plugin/host.js.map +1 -0
  135. package/dist/plugin/loader.js +250 -0
  136. package/dist/plugin/loader.js.map +1 -0
  137. package/dist/provider-diagnostics.js +12 -8
  138. package/dist/provider-diagnostics.js.map +1 -1
  139. package/dist/registry/builtins.js +49 -45
  140. package/dist/registry/builtins.js.map +1 -1
  141. package/dist/registry/index.js +10 -2
  142. package/dist/registry/index.js.map +1 -1
  143. package/dist/registry/provider-loader.js +41 -61
  144. package/dist/registry/provider-loader.js.map +1 -1
  145. package/dist/registry/provider-ref.js.map +1 -1
  146. package/dist/registry/registry.js +14 -22
  147. package/dist/registry/registry.js.map +1 -1
  148. package/dist/{command/catalog.js → server/command-catalog.js} +14 -5
  149. package/dist/server/command-catalog.js.map +1 -0
  150. package/dist/server/command-host.js +2 -0
  151. package/dist/server/command-host.js.map +1 -0
  152. package/dist/server-commands.js +1 -1
  153. package/dist/server-commands.js.map +1 -1
  154. package/dist/server.js +70 -129
  155. package/dist/server.js.map +1 -1
  156. package/dist/service/{agent-entity/activity-reader.js → agent/activity.js} +86 -34
  157. package/dist/service/agent/activity.js.map +1 -0
  158. package/dist/service/{teammate-service/admission-ledger.js → agent/admission.js} +66 -1
  159. package/dist/service/agent/admission.js.map +1 -0
  160. package/dist/service/{channel-submission.js → agent/channel-submission.js} +5 -5
  161. package/dist/service/agent/channel-submission.js.map +1 -0
  162. package/dist/service/{teammate-collection → agent}/commands.js +38 -50
  163. package/dist/service/agent/commands.js.map +1 -0
  164. package/dist/service/{teammate-service → agent}/completion-renderer.js +30 -5
  165. package/dist/service/agent/completion-renderer.js.map +1 -0
  166. package/dist/service/agent/errors.js.map +1 -0
  167. package/dist/service/agent/factory.js +78 -0
  168. package/dist/service/agent/factory.js.map +1 -0
  169. package/dist/service/{agent-entity/types.js → agent/identity.js} +28 -34
  170. package/dist/service/agent/identity.js.map +1 -0
  171. package/dist/service/agent/index.js +769 -0
  172. package/dist/service/agent/index.js.map +1 -0
  173. package/dist/service/agent/mcp.js +420 -0
  174. package/dist/service/agent/mcp.js.map +1 -0
  175. package/dist/service/agent/records.js +74 -0
  176. package/dist/service/agent/records.js.map +1 -0
  177. package/dist/service/agent/requests.js +172 -0
  178. package/dist/service/agent/requests.js.map +1 -0
  179. package/dist/service/{teammate-service/runtime-owner.js → agent/runtime-generation.js} +81 -79
  180. package/dist/service/agent/runtime-generation.js.map +1 -0
  181. package/dist/service/agent/runtime-id.js +22 -0
  182. package/dist/service/agent/runtime-id.js.map +1 -0
  183. package/dist/service/{agent-entity → agent}/runtime-state.js +33 -40
  184. package/dist/service/agent/runtime-state.js.map +1 -0
  185. package/dist/service/agent/service-types.js +28 -0
  186. package/dist/service/agent/service-types.js.map +1 -0
  187. package/dist/service/{teammate-service/index.js → agent/service.js} +236 -102
  188. package/dist/service/agent/service.js.map +1 -0
  189. package/dist/service/{agent-entity/identity-store.js → agent/store.js} +175 -96
  190. package/dist/service/agent/store.js.map +1 -0
  191. package/dist/service/agent/submission.js.map +1 -0
  192. package/dist/service/{teammate-collection → agent}/system-prompt.js +7 -3
  193. package/dist/service/agent/system-prompt.js.map +1 -0
  194. package/dist/service/agent/turn.js +89 -0
  195. package/dist/service/agent/turn.js.map +1 -0
  196. package/dist/service/agent/types.js.map +1 -0
  197. package/dist/service/channel-service/commands.js +7 -3
  198. package/dist/service/channel-service/commands.js.map +1 -1
  199. package/dist/{channel → service/channel-service}/core-port.js +6 -5
  200. package/dist/service/channel-service/core-port.js.map +1 -0
  201. package/dist/service/channel-service/index.js +211 -93
  202. package/dist/service/channel-service/index.js.map +1 -1
  203. package/dist/service/channel-service/mcp-delegate.js +8 -9
  204. package/dist/service/channel-service/mcp-delegate.js.map +1 -1
  205. package/dist/service/completion-router/index.js +27 -27
  206. package/dist/service/completion-router/index.js.map +1 -1
  207. package/dist/{channel → service/dispatcher-core-events}/conversation-projection.js +9 -7
  208. package/dist/service/dispatcher-core-events/conversation-projection.js.map +1 -0
  209. package/dist/service/dispatcher-core-events/index.js +76 -68
  210. package/dist/service/dispatcher-core-events/index.js.map +1 -1
  211. package/dist/service/dispatcher-core-events/seal.js +1 -24
  212. package/dist/service/dispatcher-core-events/seal.js.map +1 -1
  213. package/dist/service/dispatcher-service/agent.js +267 -45
  214. package/dist/service/dispatcher-service/agent.js.map +1 -1
  215. package/dist/service/dispatcher-service/base-prompt.js +2 -2
  216. package/dist/service/dispatcher-service/base-prompt.js.map +1 -1
  217. package/dist/service/dispatcher-service/index.js +139 -378
  218. package/dist/service/dispatcher-service/index.js.map +1 -1
  219. package/dist/service/dispatcher-service/lifecycle.js +230 -0
  220. package/dist/service/dispatcher-service/lifecycle.js.map +1 -0
  221. package/dist/{daemon → service/dispatcher-service}/restart-intent.js +17 -38
  222. package/dist/service/dispatcher-service/restart-intent.js.map +1 -0
  223. package/dist/service/dispatcher-workspace.js +10 -23
  224. package/dist/service/dispatcher-workspace.js.map +1 -1
  225. package/dist/service/dispatchers/commands.js +30 -31
  226. package/dist/service/dispatchers/commands.js.map +1 -1
  227. package/dist/service/dispatchers/index.js +92 -64
  228. package/dist/service/dispatchers/index.js.map +1 -1
  229. package/dist/service/index.js +2 -2
  230. package/dist/service/index.js.map +1 -1
  231. package/dist/{mcp → service/mcp}/catalog.js +11 -48
  232. package/dist/service/mcp/catalog.js.map +1 -0
  233. package/dist/service/mcp/commands.js +3 -3
  234. package/dist/service/mcp/commands.js.map +1 -1
  235. package/dist/service/mcp/dispatch-reminders.js +1 -1
  236. package/dist/service/mcp/dispatch-reminders.js.map +1 -1
  237. package/dist/service/mcp/identity-version.js +14 -0
  238. package/dist/service/mcp/identity-version.js.map +1 -1
  239. package/dist/service/mcp/leases.js +12 -33
  240. package/dist/service/mcp/leases.js.map +1 -1
  241. package/dist/service/mcp/tool-metadata.js +15 -76
  242. package/dist/service/mcp/tool-metadata.js.map +1 -1
  243. package/dist/service/name-allocator.js +2 -3
  244. package/dist/service/name-allocator.js.map +1 -1
  245. package/dist/service/scheduler/commands.js +7 -19
  246. package/dist/service/scheduler/commands.js.map +1 -1
  247. package/dist/service/scheduler/errors.js +1 -1
  248. package/dist/service/scheduler/errors.js.map +1 -1
  249. package/dist/service/scheduler/{service.js → index.js} +175 -142
  250. package/dist/service/scheduler/index.js.map +1 -0
  251. package/dist/service/scheduler/{mcp-delegate.js → mcp.js} +61 -58
  252. package/dist/service/scheduler/mcp.js.map +1 -0
  253. package/dist/service/scheduler/requests.js +60 -0
  254. package/dist/service/scheduler/requests.js.map +1 -0
  255. package/dist/service/scheduler/store.js +183 -151
  256. package/dist/service/scheduler/store.js.map +1 -1
  257. package/dist/service/scheduler/types.js +1 -33
  258. package/dist/service/scheduler/types.js.map +1 -1
  259. package/dist/service/{team-collection → team}/commands.js +45 -59
  260. package/dist/service/team/commands.js.map +1 -0
  261. package/dist/service/{team-collection → team}/create-request.js +8 -20
  262. package/dist/service/team/create-request.js.map +1 -0
  263. package/dist/service/{team-collection → team}/errors.js +7 -10
  264. package/dist/service/team/errors.js.map +1 -0
  265. package/dist/service/team/index.js +817 -0
  266. package/dist/service/team/index.js.map +1 -0
  267. package/dist/service/team/leader-mcp.js +42 -0
  268. package/dist/service/team/leader-mcp.js.map +1 -0
  269. package/dist/service/team/leader.js +157 -0
  270. package/dist/service/team/leader.js.map +1 -0
  271. package/dist/service/team/mcp.js +328 -0
  272. package/dist/service/team/mcp.js.map +1 -0
  273. package/dist/service/{team-collection/types.js → team/requests.js} +64 -15
  274. package/dist/service/team/requests.js.map +1 -0
  275. package/dist/service/team/service.js +903 -0
  276. package/dist/service/team/service.js.map +1 -0
  277. package/dist/service/team/store.js +373 -0
  278. package/dist/service/team/store.js.map +1 -0
  279. package/dist/service/team/team-summary.js.map +1 -0
  280. package/dist/service/team/teams-port.js +2 -0
  281. package/dist/service/team/teams-port.js.map +1 -0
  282. package/dist/service/team/types.js +22 -0
  283. package/dist/service/team/types.js.map +1 -0
  284. package/dist/service/workflow-service/commands.js +5 -6
  285. package/dist/service/workflow-service/commands.js.map +1 -1
  286. package/dist/service/workflow-service/errors.js +2 -0
  287. package/dist/service/workflow-service/errors.js.map +1 -1
  288. package/dist/service/workflow-service/index.js +80 -112
  289. package/dist/service/workflow-service/index.js.map +1 -1
  290. package/dist/service/workflow-service/journal.js +90 -6
  291. package/dist/service/workflow-service/journal.js.map +1 -1
  292. package/dist/service/workflow-service/limits.js +20 -9
  293. package/dist/service/workflow-service/limits.js.map +1 -1
  294. package/dist/service/workflow-service/mcp.js +171 -0
  295. package/dist/service/workflow-service/mcp.js.map +1 -0
  296. package/dist/service/workflow-service/protocol.js +72 -1
  297. package/dist/service/workflow-service/protocol.js.map +1 -1
  298. package/dist/service/workflow-service/requests.js +70 -0
  299. package/dist/service/workflow-service/requests.js.map +1 -0
  300. package/dist/service/workflow-service/run.js +258 -145
  301. package/dist/service/workflow-service/run.js.map +1 -1
  302. package/dist/service/workflow-service/runner-process.js +0 -19
  303. package/dist/service/workflow-service/runner-process.js.map +1 -1
  304. package/dist/service/workflow-service/runner.js +6 -30
  305. package/dist/service/workflow-service/runner.js.map +1 -1
  306. package/dist/service/workflow-service/script-compiler.js +7 -9
  307. package/dist/service/workflow-service/script-compiler.js.map +1 -1
  308. package/dist/service/workflow-service/{run-support.js → semaphore.js} +1 -30
  309. package/dist/service/workflow-service/semaphore.js.map +1 -0
  310. package/dist/service/workflow-service/store.js +105 -25
  311. package/dist/service/workflow-service/store.js.map +1 -1
  312. package/dist/service/workflow-service/types.js +1 -77
  313. package/dist/service/workflow-service/types.js.map +1 -1
  314. package/dist/service/worktree/manager.js +29 -62
  315. package/dist/service/worktree/manager.js.map +1 -1
  316. package/dist/service/worktree/paths.js +4 -1
  317. package/dist/service/worktree/paths.js.map +1 -1
  318. package/dist/service/worktree/repo-request.js +38 -14
  319. package/dist/service/worktree/repo-request.js.map +1 -1
  320. package/dist/service/worktree/types.js +2 -0
  321. package/dist/service/worktree/types.js.map +1 -0
  322. package/dist/service/worktree/workspaces.js +27 -34
  323. package/dist/service/worktree/workspaces.js.map +1 -1
  324. package/package.json +13 -8
  325. package/skills/dispatcher/dreamux-maintenance/SKILL.md +5 -4
  326. package/skills/dispatcher/dreamux-maintenance/references/builtin-bootstrap.md +50 -0
  327. package/skills/dispatcher/dreamux-maintenance/references/builtin-codex.md +4 -5
  328. package/skills/dispatcher/dreamux-maintenance/references/builtin-feishu.md +69 -11
  329. package/skills/dispatcher/dreamux-maintenance/references/config-envelope.md +77 -12
  330. package/skills/dispatcher/dreamux-maintenance/references/feishu-access-v3.md +39 -24
  331. package/skills/dispatcher/dreamux-maintenance/references/service-lifecycle.md +105 -37
  332. package/dist/channel/conversation-projection.js.map +0 -1
  333. package/dist/channel/core-port.js.map +0 -1
  334. package/dist/cli/server-ctl.js +0 -163
  335. package/dist/cli/server-ctl.js.map +0 -1
  336. package/dist/cli/service-status-parse.js.map +0 -1
  337. package/dist/command/catalog.js.map +0 -1
  338. package/dist/config/config-helpers.js +0 -100
  339. package/dist/config/config-helpers.js.map +0 -1
  340. package/dist/daemon/restart-intent.js.map +0 -1
  341. package/dist/daemon/service-control.js.map +0 -1
  342. package/dist/mcp/catalog.js.map +0 -1
  343. package/dist/mcp/failure-text.js +0 -46
  344. package/dist/mcp/failure-text.js.map +0 -1
  345. package/dist/onboard/commands.js.map +0 -1
  346. package/dist/onboard/ledger.js.map +0 -1
  347. package/dist/onboard/service-node.js +0 -183
  348. package/dist/onboard/service-node.js.map +0 -1
  349. package/dist/onboard/service.js +0 -310
  350. package/dist/onboard/service.js.map +0 -1
  351. package/dist/platform/atomic-write.js +0 -63
  352. package/dist/platform/atomic-write.js.map +0 -1
  353. package/dist/platform/error-info.js +0 -11
  354. package/dist/platform/error-info.js.map +0 -1
  355. package/dist/platform/json-document-store.js +0 -54
  356. package/dist/platform/json-document-store.js.map +0 -1
  357. package/dist/service/agent-entity/activity-errors.js +0 -71
  358. package/dist/service/agent-entity/activity-errors.js.map +0 -1
  359. package/dist/service/agent-entity/activity-reader.js.map +0 -1
  360. package/dist/service/agent-entity/agent-config.js +0 -48
  361. package/dist/service/agent-entity/agent-config.js.map +0 -1
  362. package/dist/service/agent-entity/history-query.js +0 -60
  363. package/dist/service/agent-entity/history-query.js.map +0 -1
  364. package/dist/service/agent-entity/identity-store.js.map +0 -1
  365. package/dist/service/agent-entity/read-helpers.js +0 -172
  366. package/dist/service/agent-entity/read-helpers.js.map +0 -1
  367. package/dist/service/agent-entity/runtime-profile.js +0 -53
  368. package/dist/service/agent-entity/runtime-profile.js.map +0 -1
  369. package/dist/service/agent-entity/runtime-state.js.map +0 -1
  370. package/dist/service/agent-entity/types.js.map +0 -1
  371. package/dist/service/channel-service/mcp-delegates.js +0 -21
  372. package/dist/service/channel-service/mcp-delegates.js.map +0 -1
  373. package/dist/service/channel-service/types.js.map +0 -1
  374. package/dist/service/channel-submission.js.map +0 -1
  375. package/dist/service/closed-fact.js +0 -49
  376. package/dist/service/closed-fact.js.map +0 -1
  377. package/dist/service/deduplicate.js +0 -42
  378. package/dist/service/deduplicate.js.map +0 -1
  379. package/dist/service/dispatcher-core-events/scoped-source.js +0 -59
  380. package/dist/service/dispatcher-core-events/scoped-source.js.map +0 -1
  381. package/dist/service/dispatcher-service/dispatcher-workflows.js +0 -50
  382. package/dist/service/dispatcher-service/dispatcher-workflows.js.map +0 -1
  383. package/dist/service/dispatcher-service/identity.js +0 -97
  384. package/dist/service/dispatcher-service/identity.js.map +0 -1
  385. package/dist/service/dispatcher-service/inbound-task-drain.js +0 -37
  386. package/dist/service/dispatcher-service/inbound-task-drain.js.map +0 -1
  387. package/dist/service/dispatcher-service/input-source-lifecycle.js +0 -312
  388. package/dist/service/dispatcher-service/input-source-lifecycle.js.map +0 -1
  389. package/dist/service/dispatcher-service/input-source-start-rollback.js +0 -53
  390. package/dist/service/dispatcher-service/input-source-start-rollback.js.map +0 -1
  391. package/dist/service/dispatcher-service/mcp-delegates.js +0 -67
  392. package/dist/service/dispatcher-service/mcp-delegates.js.map +0 -1
  393. package/dist/service/dispatcher-service/restart-notice.js +0 -27
  394. package/dist/service/dispatcher-service/restart-notice.js.map +0 -1
  395. package/dist/service/dispatcher-service/runnable-channel.js +0 -13
  396. package/dist/service/dispatcher-service/runnable-channel.js.map +0 -1
  397. package/dist/service/dispatcher-service/runtime-helpers.js +0 -11
  398. package/dist/service/dispatcher-service/runtime-helpers.js.map +0 -1
  399. package/dist/service/dispatcher-service/runtime-status.js +0 -35
  400. package/dist/service/dispatcher-service/runtime-status.js.map +0 -1
  401. package/dist/service/dispatcher-service/team-leader-handle.js +0 -29
  402. package/dist/service/dispatcher-service/team-leader-handle.js.map +0 -1
  403. package/dist/service/dispatcher-service/team-runtime-stop.js +0 -13
  404. package/dist/service/dispatcher-service/team-runtime-stop.js.map +0 -1
  405. package/dist/service/dispatcher-service/teammate-ops.js +0 -14
  406. package/dist/service/dispatcher-service/teammate-ops.js.map +0 -1
  407. package/dist/service/frozen-snapshot.js +0 -16
  408. package/dist/service/frozen-snapshot.js.map +0 -1
  409. package/dist/service/in-flight-work.js.map +0 -1
  410. package/dist/service/legacy-state.js +0 -119
  411. package/dist/service/legacy-state.js.map +0 -1
  412. package/dist/service/mcp/descriptor.js.map +0 -1
  413. package/dist/service/scheduler/mcp-delegate.js.map +0 -1
  414. package/dist/service/scheduler/service.js.map +0 -1
  415. package/dist/service/serial-queue.js +0 -64
  416. package/dist/service/serial-queue.js.map +0 -1
  417. package/dist/service/shutdown-errors.js.map +0 -1
  418. package/dist/service/team-collection/commands.js.map +0 -1
  419. package/dist/service/team-collection/create-request.js.map +0 -1
  420. package/dist/service/team-collection/errors.js.map +0 -1
  421. package/dist/service/team-collection/index.js +0 -304
  422. package/dist/service/team-collection/index.js.map +0 -1
  423. package/dist/service/team-collection/mcp-delegate.js +0 -389
  424. package/dist/service/team-collection/mcp-delegate.js.map +0 -1
  425. package/dist/service/team-collection/read-helpers.js +0 -66
  426. package/dist/service/team-collection/read-helpers.js.map +0 -1
  427. package/dist/service/team-collection/read-model.js +0 -120
  428. package/dist/service/team-collection/read-model.js.map +0 -1
  429. package/dist/service/team-collection/roster-reader.js +0 -52
  430. package/dist/service/team-collection/roster-reader.js.map +0 -1
  431. package/dist/service/team-collection/runtime-registry.js +0 -369
  432. package/dist/service/team-collection/runtime-registry.js.map +0 -1
  433. package/dist/service/team-collection/store.js +0 -320
  434. package/dist/service/team-collection/store.js.map +0 -1
  435. package/dist/service/team-collection/types.js.map +0 -1
  436. package/dist/service/team-collection/worktree-cleanup.js +0 -45
  437. package/dist/service/team-collection/worktree-cleanup.js.map +0 -1
  438. package/dist/service/team-service/closing.js +0 -279
  439. package/dist/service/team-service/closing.js.map +0 -1
  440. package/dist/service/team-service/collaborators.js +0 -82
  441. package/dist/service/team-service/collaborators.js.map +0 -1
  442. package/dist/service/team-service/completion-targets.js +0 -72
  443. package/dist/service/team-service/completion-targets.js.map +0 -1
  444. package/dist/service/team-service/index.js +0 -559
  445. package/dist/service/team-service/index.js.map +0 -1
  446. package/dist/service/team-service/leader-agent.js +0 -170
  447. package/dist/service/team-service/leader-agent.js.map +0 -1
  448. package/dist/service/team-service/roster-projection.js +0 -69
  449. package/dist/service/team-service/roster-projection.js.map +0 -1
  450. package/dist/service/team-service/team-summary.js.map +0 -1
  451. package/dist/service/team-service/types.js +0 -61
  452. package/dist/service/team-service/types.js.map +0 -1
  453. package/dist/service/teammate-collection/commands.js.map +0 -1
  454. package/dist/service/teammate-collection/dissolve-members.js +0 -44
  455. package/dist/service/teammate-collection/dissolve-members.js.map +0 -1
  456. package/dist/service/teammate-collection/errors.js.map +0 -1
  457. package/dist/service/teammate-collection/index.js +0 -497
  458. package/dist/service/teammate-collection/index.js.map +0 -1
  459. package/dist/service/teammate-collection/mcp-delegate.js +0 -210
  460. package/dist/service/teammate-collection/mcp-delegate.js.map +0 -1
  461. package/dist/service/teammate-collection/mcp-tool-descriptors.js +0 -421
  462. package/dist/service/teammate-collection/mcp-tool-descriptors.js.map +0 -1
  463. package/dist/service/teammate-collection/system-prompt.js.map +0 -1
  464. package/dist/service/teammate-collection/types.js.map +0 -1
  465. package/dist/service/teammate-service/admission-ledger.js.map +0 -1
  466. package/dist/service/teammate-service/completion-renderer.js.map +0 -1
  467. package/dist/service/teammate-service/factory.js +0 -5
  468. package/dist/service/teammate-service/factory.js.map +0 -1
  469. package/dist/service/teammate-service/index.js.map +0 -1
  470. package/dist/service/teammate-service/runtime-owner.js.map +0 -1
  471. package/dist/service/teammate-service/submission.js.map +0 -1
  472. package/dist/service/teammate-service/turn-coordinator.js +0 -93
  473. package/dist/service/teammate-service/turn-coordinator.js.map +0 -1
  474. package/dist/service/teammate-service/turn-recording.js +0 -178
  475. package/dist/service/teammate-service/turn-recording.js.map +0 -1
  476. package/dist/service/teammate-service/types.js +0 -12
  477. package/dist/service/teammate-service/types.js.map +0 -1
  478. package/dist/service/workflow-service/agent-policy.js +0 -6
  479. package/dist/service/workflow-service/agent-policy.js.map +0 -1
  480. package/dist/service/workflow-service/json-args.js +0 -72
  481. package/dist/service/workflow-service/json-args.js.map +0 -1
  482. package/dist/service/workflow-service/run-support.js.map +0 -1
  483. package/dist/service/workflow-service/run-terminal.js +0 -111
  484. package/dist/service/workflow-service/run-terminal.js.map +0 -1
  485. package/dist/state/dispatcher-id.js.map +0 -1
  486. package/dist/state/dispatcher-store.js +0 -73
  487. package/dist/state/dispatcher-store.js.map +0 -1
  488. /package/dist/{service/channel-service → command}/types.js +0 -0
  489. /package/dist/{service → platform}/in-flight-work.js +0 -0
  490. /package/dist/{service → platform}/shutdown-errors.js +0 -0
  491. /package/dist/service/{teammate-collection → agent}/errors.js +0 -0
  492. /package/dist/service/{teammate-service → agent}/submission.js +0 -0
  493. /package/dist/service/{teammate-collection → agent}/types.js +0 -0
  494. /package/dist/service/{team-service → team}/team-summary.js +0 -0
@@ -1,25 +1,28 @@
1
- import { readFile } from 'node:fs/promises';
2
- import { homedir, userInfo } from 'node:os';
3
- import { BUILT_IN_DEFAULTS, globalConfigDir, globalConfigFile, loadConfig, } from '../config/config.js';
1
+ import { userInfo } from 'node:os';
2
+ import { BUILT_IN_DEFAULTS, globalConfigFile, } from '../config/config.js';
3
+ import { loadConfig } from '../config/load.js';
4
4
  import { AgentRuntimeProviderCatalog } from '../agent-runtime/catalog.js';
5
5
  import { ChannelProviderCatalog } from '../channel/catalog.js';
6
- import { createBuiltinProviderRegistry, } from '../registry/index.js';
6
+ import { ProviderRegistry } from '../registry/index.js';
7
+ import { createLogger } from '../platform/logger.js';
8
+ import { PluginLoadError } from '../plugin/loader.js';
9
+ import { pluginDoctorChecks, pluginLoadFailureCheck, } from './doctor-plugins.js';
7
10
  import { providerBinChecksForConfig, runDispatcherProviderDiagnostics, } from '../provider-diagnostics.js';
8
11
  import { pathExists } from '../platform/fs-errors.js';
9
- import { dispatcherCronJobsPath, dispatcherTeamCronJobsPath, dispatcherTeamDir, setRuntimeConfig, stateRoot, } from '../platform/paths.js';
12
+ import { dispatcherCronJobsPath, dispatcherTeamCronJobsPath, dispatcherTeamDir, stateRoot, } from '../platform/paths.js';
10
13
  import { diagnoseDispatcherWorkspace } from '../service/dispatcher-workspace.js';
11
- import { detectLegacyDispatcherState, legacyDispatcherStateMessage, } from '../service/legacy-state.js';
12
14
  import { detectLegacyCronJobStore } from '../service/scheduler/store.js';
13
- import { TeamStore } from '../service/team-collection/store.js';
14
- import { ExecaCommandRunner } from '../onboard/commands.js';
15
- import { defaultServiceNodeProbe, detectServiceNodeVersionManager, MIN_SERVICE_NODE_VERSION, nodeVersionSatisfies, serviceUnitPath, SYSTEMD_UNIT, } from '../onboard/service.js';
16
- import { launchdTarget, parseLaunchdDetail, parseLaunchdPid, parseLaunchdPlist, parsePositiveInt, parseSystemdProperties, parseSystemdUnit, systemdDetail, } from './service-status-parse.js';
15
+ import { readTeamRecords } from '../service/team/store.js';
16
+ import { defaultServiceNodeProbe, detectServiceNodeVersionManager, MIN_SERVICE_NODE_VERSION, nodeVersionSatisfies, } from '../daemon/environment.js';
17
+ import { createServiceHost } from '../daemon/host.js';
18
+ import { getServiceStatus } from '../daemon/status.js';
17
19
  export async function runDreamuxDoctor(options = {}) {
18
- const runner = options.runner ?? new ExecaCommandRunner();
20
+ const host = createServiceHost(options);
19
21
  const checks = [];
20
- const configDir = globalConfigDir();
21
- const { config, configFile, catalogs } = await readConfigForDoctor(configDir, checks);
22
- setRuntimeConfig(config);
22
+ const { config, configFile, catalogs, plugins } = await readConfigForDoctor(checks);
23
+ // Before the channel diagnostics below: api publication is where extensions
24
+ // register into their channel provider.
25
+ checks.push(...pluginDoctorChecks(plugins, createLogger({ name: 'doctor' })));
23
26
  checks.push({
24
27
  name: 'state directory',
25
28
  ok: await pathExists(stateRoot()),
@@ -29,7 +32,7 @@ export async function runDreamuxDoctor(options = {}) {
29
32
  for (const check of providerBinaryChecks(catalogs, config, doctorEnv, false)) {
30
33
  checks.push({
31
34
  name: check.name,
32
- ok: await runner.check(check.bin, check.args, { env: doctorEnv }),
35
+ ok: await host.runner.check(check.bin, check.args, { env: doctorEnv }),
33
36
  detail: check.bin,
34
37
  });
35
38
  }
@@ -49,28 +52,20 @@ export async function runDreamuxDoctor(options = {}) {
49
52
  detail: diagnosis.detail,
50
53
  });
51
54
  }
52
- const legacy = await detectLegacyDispatcherState(dispatcher.id);
53
- checks.push({
54
- name: `dispatcher ${dispatcher.id} legacy state`,
55
- ok: legacy.length === 0,
56
- detail: legacy.length === 0
57
- ? 'no removed state paths found'
58
- : legacyDispatcherStateMessage(dispatcher.id, legacy),
59
- });
60
- const cronLegacy = await detectLegacyCronJobStore(dispatcherCronJobsPath(dispatcher.id), dispatcher.id);
55
+ const cronLegacy = await detectLegacyCronJobStore(dispatcherCronJobsPath(dispatcher.id));
61
56
  checks.push({
62
57
  name: `dispatcher ${dispatcher.id} cron jobs`,
63
58
  ok: cronLegacy === null,
64
59
  detail: cronLegacy ?? 'cron job store is current (v1) or absent',
65
60
  });
66
- const teams = new TeamStore({
61
+ const teams = await readTeamRecords({
67
62
  root: dispatcherTeamDir(dispatcher.id),
68
63
  dispatcherId: dispatcher.id,
69
64
  });
70
- for (const team of await teams.list()) {
65
+ for (const team of teams) {
71
66
  if (team.status === 'closed')
72
67
  continue;
73
- const teamCronLegacy = await detectLegacyCronJobStore(dispatcherTeamCronJobsPath(dispatcher.id, team.team_id), dispatcher.id);
68
+ const teamCronLegacy = await detectLegacyCronJobStore(dispatcherTeamCronJobsPath(dispatcher.id, team.team_id));
74
69
  checks.push({
75
70
  name: `dispatcher ${dispatcher.id} team ${team.team_id} cron jobs`,
76
71
  ok: teamCronLegacy === null,
@@ -78,12 +73,7 @@ export async function runDreamuxDoctor(options = {}) {
78
73
  });
79
74
  }
80
75
  }
81
- const service = await getServiceStatus({
82
- runner,
83
- platform: options.platform,
84
- homeDir: options.homeDir,
85
- uid: options.uid,
86
- });
76
+ const service = await getServiceStatus(host);
87
77
  checks.push({
88
78
  name: 'user service',
89
79
  ok: true,
@@ -92,10 +82,10 @@ export async function runDreamuxDoctor(options = {}) {
92
82
  : `not installed at ${service.unitPath}`,
93
83
  });
94
84
  if (service.platform === 'systemd' && service.installed) {
95
- checks.push(await systemdLingerCheck(runner, options.userName ?? userInfo().username));
85
+ checks.push(await systemdLingerCheck(host.runner, options.userName ?? userInfo().username));
96
86
  }
97
- await addManagedServiceLaunchChecks(checks, service, runner, options.nodeProbe ?? defaultServiceNodeProbe, catalogs, config);
98
- const dispatchers = await readDispatchers(catalogs, config, runner, options.env ?? process.env, service);
87
+ await addManagedServiceLaunchChecks(checks, service, host.runner, options.nodeProbe ?? defaultServiceNodeProbe, catalogs, config);
88
+ const dispatchers = await readDispatchers(catalogs, config, host.runner, options.env ?? process.env, service);
99
89
  if (dispatchers.length === 0) {
100
90
  checks.push({
101
91
  name: 'dispatchers',
@@ -130,9 +120,9 @@ export function printDoctorResult(result) {
130
120
  printDispatcherDoctor(dispatcher);
131
121
  }
132
122
  }
133
- async function readConfigForDoctor(configDir, checks) {
123
+ async function readConfigForDoctor(checks) {
134
124
  try {
135
- const loaded = await loadConfig({ configDir });
125
+ const loaded = await loadConfig();
136
126
  checks.push({
137
127
  name: 'config',
138
128
  ok: true,
@@ -142,19 +132,26 @@ async function readConfigForDoctor(configDir, checks) {
142
132
  config: loaded.config,
143
133
  configFile: loaded.configFile,
144
134
  catalogs: catalogsFromRegistry(loaded.providerRegistry),
135
+ plugins: loaded.plugins,
145
136
  };
146
137
  }
147
138
  catch (err) {
148
- const detail = err instanceof Error ? err.message : String(err);
149
- checks.push({
150
- name: 'config',
151
- ok: false,
152
- detail,
153
- });
139
+ if (err instanceof PluginLoadError) {
140
+ checks.push({
141
+ name: 'config',
142
+ ok: false,
143
+ detail: `not loaded: plugin "${err.plugin}" failed`,
144
+ }, pluginLoadFailureCheck(err));
145
+ }
146
+ else {
147
+ const detail = err instanceof Error ? err.message : String(err);
148
+ checks.push({ name: 'config', ok: false, detail });
149
+ }
154
150
  return {
155
151
  config: BUILT_IN_DEFAULTS,
156
- configFile: globalConfigFile({ configDir }),
157
- catalogs: catalogsFromRegistry(createBuiltinProviderRegistry()),
152
+ configFile: globalConfigFile(),
153
+ catalogs: catalogsFromRegistry(new ProviderRegistry()),
154
+ plugins: [],
158
155
  };
159
156
  }
160
157
  }
@@ -167,6 +164,7 @@ function catalogsFromRegistry(registry) {
167
164
  async function readDispatchers(catalogs, config, runner, env, service) {
168
165
  return Promise.all(config.dispatchers.map(async (dispatcher) => {
169
166
  const foreground = await runDispatcherProviderDiagnostics({
167
+ config,
170
168
  dispatcher,
171
169
  catalogs,
172
170
  runner,
@@ -175,6 +173,7 @@ async function readDispatchers(catalogs, config, runner, env, service) {
175
173
  });
176
174
  const managedService = service.installed
177
175
  ? await runDispatcherProviderDiagnostics({
176
+ config,
178
177
  dispatcher,
179
178
  catalogs,
180
179
  runner,
@@ -188,84 +187,6 @@ async function readDispatchers(catalogs, config, runner, env, service) {
188
187
  };
189
188
  }));
190
189
  }
191
- async function getServiceStatus(options) {
192
- const runner = options.runner ?? new ExecaCommandRunner();
193
- const unit = serviceUnitPath(options.platform, options.homeDir ?? homedir());
194
- if (unit.platform === 'launchd') {
195
- return launchdStatus(unit.path, runner, options.uid);
196
- }
197
- return systemdStatus(unit.path, runner);
198
- }
199
- async function launchdStatus(unitPath, runner, uid) {
200
- const installed = await pathExists(unitPath);
201
- const target = launchdTarget(uid);
202
- let raw = '';
203
- let loaded = false;
204
- try {
205
- raw = await runner.capture('launchctl', ['print', target]);
206
- loaded = true;
207
- }
208
- catch {
209
- loaded = false;
210
- }
211
- const pid = parseLaunchdPid(raw);
212
- const unitFile = installed
213
- ? parseLaunchdPlist(await readFile(unitPath, 'utf8'))
214
- : { environment: null, execStart: null };
215
- return {
216
- platform: 'launchd',
217
- unitPath,
218
- installed,
219
- enabled: installed,
220
- loaded,
221
- running: pid !== null || /\bstate = running\b/.test(raw),
222
- pid,
223
- detail: parseLaunchdDetail(raw),
224
- environment: unitFile.environment,
225
- execStart: unitFile.execStart,
226
- };
227
- }
228
- async function systemdStatus(unitPath, runner) {
229
- const enabled = await runner.check('systemctl', [
230
- '--user',
231
- 'is-enabled',
232
- SYSTEMD_UNIT,
233
- ]);
234
- const active = await runner.check('systemctl', [
235
- '--user',
236
- 'is-active',
237
- SYSTEMD_UNIT,
238
- ]);
239
- let raw = '';
240
- try {
241
- raw = await runner.capture('systemctl', [
242
- '--user',
243
- 'show',
244
- SYSTEMD_UNIT,
245
- '--property=LoadState,ActiveState,SubState,MainPID,Result',
246
- ]);
247
- }
248
- catch {
249
- raw = '';
250
- }
251
- const installed = await pathExists(unitPath);
252
- const unitFile = installed
253
- ? parseSystemdUnit(await readFile(unitPath, 'utf8'))
254
- : { environment: null, execStart: null };
255
- const props = parseSystemdProperties(raw);
256
- return {
257
- platform: 'systemd',
258
- unitPath,
259
- installed,
260
- enabled,
261
- loaded: props['LoadState'] === 'loaded',
262
- running: active || props['ActiveState'] === 'active',
263
- pid: parsePositiveInt(props['MainPID']),
264
- detail: systemdDetail(props),
265
- environment: unitFile.environment,
266
- execStart: unitFile.execStart,
267
- };
268
- }
269
190
  async function systemdLingerCheck(runner, userName) {
270
191
  const fix = 'enable it with `loginctl enable-linger` (or rerun `dreamux daemon install`)';
271
192
  try {
@@ -367,7 +288,9 @@ async function checkHelpLaunch(name, command, args, env, runner, missingDetail)
367
288
  return {
368
289
  name,
369
290
  ok,
370
- detail: ok ? command : `${command} failed under installed service environment; rerun dreamux onboard`,
291
+ detail: ok
292
+ ? command
293
+ : `${command} failed under installed service environment; rerun dreamux onboard`,
371
294
  };
372
295
  }
373
296
  function printDispatcherDoctor(dispatcher) {
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
@@ -5,42 +5,14 @@
5
5
  * owns only root parser setup. Every top-level command is registered through a
6
6
  * yargs CommandModule from `commands/`.
7
7
  */
8
- import { spawn } from 'node:child_process';
9
- import { dirname, join } from 'node:path';
10
- import { fileURLToPath } from 'node:url';
11
8
  import yargs from 'yargs';
12
9
  import { hideBin } from 'yargs/helpers';
13
- import { createDreamuxCommands, } from './commands/index.js';
14
- const HERE = dirname(fileURLToPath(import.meta.url));
15
- const SERVER_ENTRY = join(HERE, 'server.js');
16
- const SERVER_CTL_ENTRY = join(HERE, 'server-ctl.js');
17
- const execEntry = async function execEntry(entry, argv, env = process.env) {
18
- const child = spawn(process.execPath, [entry, ...argv], {
19
- env,
20
- stdio: 'inherit',
21
- });
22
- await new Promise((_resolve, reject) => {
23
- child.once('error', reject);
24
- child.once('exit', (code, signal) => {
25
- if (signal !== null) {
26
- process.kill(process.pid, signal);
27
- return;
28
- }
29
- process.exit(code ?? 0);
30
- });
31
- });
32
- process.exit(0);
33
- };
10
+ import { createDreamuxCommands } from './commands/index.js';
34
11
  async function main() {
35
- const deps = {
36
- serverEntry: SERVER_ENTRY,
37
- serverCtlEntry: SERVER_CTL_ENTRY,
38
- execEntry,
39
- };
40
12
  await yargs(hideBin(process.argv))
41
13
  .scriptName('dreamux')
42
14
  .usage('$0 <command> [options]')
43
- .command(createDreamuxCommands(deps))
15
+ .command(createDreamuxCommands())
44
16
  .demandCommand(1, 'Choose a command')
45
17
  .strict()
46
18
  .help()
@@ -1 +1 @@
1
- {"version":3,"file":"dreamux.js","sourceRoot":"","sources":["../../src/cli/dreamux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dreamux.js","sourceRoot":"","sources":["../../src/cli/dreamux.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,KAAK,UAAU,IAAI;IACjB,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC/B,UAAU,CAAC,SAAS,CAAC;SACrB,KAAK,CAAC,wBAAwB,CAAC;SAC/B,OAAO,CAAC,qBAAqB,EAAE,CAAC;SAChC,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC;SACpC,MAAM,EAAE;SACR,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;SAClB,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QACzD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC;SACD,UAAU,EAAE,CAAC;AAClB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1,9 +1,7 @@
1
1
  /**
2
- * Internal server entry point for `dreamux serve`.
3
- *
4
- * Usage:
5
- * dreamux serve # run in foreground; logs to stderr
6
- * dreamux serve --help
2
+ * `dreamux serve`'s implementation: {@link runServe} runs in-process inside
3
+ * the `dreamux` CLI process — `cli/commands/serve.ts` calls it directly, no
4
+ * child process involved. It logs to stderr for a foreground run.
7
5
  *
8
6
  * Configuration sources:
9
7
  * - ~/.dreamux/config.json — named agents[], dispatcher declarations, and
@@ -12,33 +10,46 @@
12
10
  * referenced via dispatchers[].agentRuntime
13
11
  * - built-in defaults compiled into the binary
14
12
  *
13
+ * Plugins (the optional top-level plugins[] plus the always-loaded built-in
14
+ * plugins) load and contribute providers inside ConfigService.open; their
15
+ * `server` entries run once the file logger exists, before the Server is
16
+ * constructed, so every host hook is tapped before the first Dispatcher exists.
17
+ *
15
18
  * Per-dispatcher channel secrets live in the dreamux JSON config.
16
19
  */
17
20
  import { mkdir } from 'node:fs/promises';
18
21
  import { Server } from '../server.js';
19
- import { loadConfig } from '../config/config.js';
20
- import { createBuiltinProviderRegistry } from '../registry/index.js';
22
+ import { ConfigService } from '../config/service.js';
23
+ import { ProviderRegistry } from '../registry/index.js';
24
+ import { startPlugins } from '../plugin/host.js';
21
25
  import { createLogger } from '../platform/logger.js';
22
- import { errorInfo } from '../platform/error-info.js';
23
- import { adminSocketPath, channelLogDir, channelLogPath, legacyAdminSocketPath, logsRoot, serverLogPath, stateRoot, workflowLogDir, workflowLogPath, } from '../platform/paths.js';
26
+ import { errorInfo } from '@excitedjs/dreamux-utils';
27
+ import { adminSocketLockPath, adminSocketPath, channelLogDir, channelLogPath, legacyAdminSocketPath, logsRoot, serverLogPath, stateRoot, workflowLogDir, workflowLogPath, } from '../platform/paths.js';
24
28
  import { sweepRuntimeSocketDirs } from '../platform/runtime-sockets.js';
25
- async function main() {
26
- if (process.argv.includes('--help') || process.argv.includes('-h')) {
27
- printHelp();
28
- return;
29
- }
30
- // Seed a registry with the builtin provider DESCRIPTORS and hand it to
31
- // loadConfig, which loads every referenced provider implementation — builtin
32
- // AND npm, both kinds — through the single dynamic loader before parsing
33
- // agents[]/channels[] (each entry's config is parsed through its provider's
34
- // readConfig, so the implementation must be present first). `builtin:*` is
35
- // just an alias the loader resolves to a package name; there is no separate
36
- // static builtin-registration path. The populated registry then backs the
37
- // Server's runtime + channel catalogs (Server builds them from it).
38
- const providerRegistry = createBuiltinProviderRegistry();
39
- // Load ~/.dreamux/config.json before anything else starts. Missing or invalid
29
+ /**
30
+ * Upper bound on a signal-initiated shutdown. A healthy shutdown reaps each
31
+ * runtime child within a couple of seconds (SIGTERM, then SIGKILL, one second
32
+ * each), so this only fires for a shutdown that is stuck. It stays below both
33
+ * service managers' default stop timeouts (launchd's ExitTimeOut is 20s,
34
+ * systemd's TimeoutStopSec is 90s; the installed units set neither), so the
35
+ * daemon reports its own hang before the manager kills it.
36
+ */
37
+ const SHUTDOWN_DEADLINE_MS = 15_000;
38
+ export async function runServe() {
39
+ // Hand an empty registry to ConfigService.open, which loads plugins first —
40
+ // contributing codex/claude-code/feishu, the always-loaded built-ins, each
41
+ // with its descriptor and implementation registered together — then loads
42
+ // any npm:-ref provider agents[]/channels[] name, before parsing them (each
43
+ // entry's config is parsed through its provider's readConfig, so the
44
+ // implementation must be present first). The populated registry then backs
45
+ // the Server's runtime + channel catalogs (Server builds them from it).
46
+ const providerRegistry = new ProviderRegistry();
47
+ // Open ~/.dreamux/config.json before anything else starts. Missing or invalid
40
48
  // config is a setup error; `dreamux serve` must not silently create defaults.
41
- const { config, configFile } = await loadConfig({ providerRegistry });
49
+ // The ConfigService is this process's single authority over config.json for
50
+ // the rest of its life — every long-lived object that needs the current
51
+ // config holds it, rather than a DreamuxConfig value read once here.
52
+ const configService = await ConfigService.open({ providerRegistry });
42
53
  await mkdir(stateRoot(), { recursive: true });
43
54
  await mkdir(logsRoot(), { recursive: true });
44
55
  await mkdir(channelLogDir(), { recursive: true });
@@ -47,64 +58,38 @@ async function main() {
47
58
  // (tests) gets stderr-only defaults. Both stream to stderr too, so a
48
59
  // foreground `serve` stays visible.
49
60
  const logger = createLogger({ name: 'server', filePath: serverLogPath() });
50
- logger.info({ config_file: configFile }, 'loaded global config');
61
+ logger.info({ config_file: configService.file }, 'loaded global config');
62
+ const { hooks } = startPlugins(configService.plugins, logger);
51
63
  const server = new Server({
52
- config,
64
+ config: configService,
53
65
  providerRegistry,
66
+ hooks,
54
67
  logger,
55
68
  channelLoggerFactory: (id) => createLogger({ name: `channel/${id}`, filePath: channelLogPath(id) }),
56
69
  workflowLoggerFactory: (id) => createLogger({ name: `workflow/${id}`, filePath: workflowLogPath(id) }),
57
70
  runtimeSocketSweep: () => sweepRuntimeSocketDirs(),
58
- legacyAdminLockPath: `${legacyAdminSocketPath()}.lock`,
71
+ legacyAdminLockPath: adminSocketLockPath(legacyAdminSocketPath()),
59
72
  });
60
73
  await server.start();
61
74
  logger.info({ admin_socket: adminSocketPath() }, 'server up');
62
- const shutdown = async (signal) => {
63
- logger.info({ signal }, 'received signal');
64
- await server.shutdown();
65
- process.exit(0);
66
- };
75
+ // A termination signal always ends the process, whatever shutdown does: a
76
+ // rejected shutdown exits non-zero, and a shutdown that never settles (it
77
+ // drains admitted work, and a runtime start has no timeout of its own) is cut
78
+ // off by the deadline, which does not depend on the shutdown promise. A
79
+ // dispatcher's own close retry serves a daemon that keeps running after a
80
+ // failed start; it is not a reason for the process to outlive a signal.
67
81
  const requestShutdown = (signal) => {
68
- void shutdown(signal).catch((error) => {
69
- logger.error({ signal, err: errorInfo(error) }, 'server shutdown failed; process remains fenced for teardown retry');
82
+ logger.info({ signal }, 'received signal');
83
+ setTimeout(() => {
84
+ logger.error({ signal, deadline_ms: SHUTDOWN_DEADLINE_MS }, 'server shutdown did not settle before its deadline; exiting');
85
+ process.exit(1);
86
+ }, SHUTDOWN_DEADLINE_MS);
87
+ server.shutdown().then(() => process.exit(0), (error) => {
88
+ logger.error({ signal, err: errorInfo(error) }, 'server shutdown failed; exiting');
89
+ process.exit(1);
70
90
  });
71
91
  };
72
92
  process.on('SIGTERM', () => requestShutdown('SIGTERM'));
73
93
  process.on('SIGINT', () => requestShutdown('SIGINT'));
74
94
  }
75
- function printHelp() {
76
- console.log(`dreamux serve — local dreamux server
77
-
78
- Usage:
79
- dreamux serve [--help]
80
-
81
- Global config:
82
- ~/.dreamux/config.json Created by 'dreamux onboard'. Override with the
83
- DREAMUX_CONFIG_DIR env var. Edit and restart to
84
- apply. Holds named agents[], dispatcher
85
- declarations (channels[] + agentRuntime), and
86
- channel secrets.
87
-
88
- Runtime data:
89
- ~/.dreamux/run/ volatile run files: admin socket + lock, one-shot
90
- restart marker, and runtime rendezvous sockets.
91
- Safe to clear while no server is running.
92
- ~/.dreamux/state/ durable server state: per-dispatcher status/access
93
- files and TeamMate records.
94
- ~/.dreamux/logs/ server, channel, agent runtime, and MCP
95
- shim logs.
96
-
97
- Environment overrides:
98
- DREAMUX_CONFIG_DIR Overrides ~/.dreamux (where config.json lives)
99
-
100
- Dispatcher declarations:
101
- Edit ~/.dreamux/config.json dispatchers[] and restart dreamux serve.
102
- Provider refs load through the registry before config validation.
103
- Built-in refs are resolved through the same provider loading path as npm:<package>[#export].
104
- `);
105
- }
106
- main().catch((err) => {
107
- console.error('[server] fatal:', err);
108
- process.exit(1);
109
- });
110
95
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/cli/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/cli/server.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,12 @@
11
11
  * so a domain Command module has one import for the base, the generic failures,
12
12
  * and the one failure the registry owns.
13
13
  */
14
- import { DreamuxError, RuleViolation, StatedFailure, ValidationError, errorMessage, } from '../platform/errors.js';
15
- export { DreamuxError, InternalError, RuleViolation, ServerShuttingDownError, StatedFailure, TransportError, ValidationError, errorMessage, } from '../platform/errors.js';
14
+ import { errorMessage, RuleViolation } from '@excitedjs/dreamux-utils';
15
+ import { DreamuxError, StatedFailure, ValidationError, } from '../platform/errors.js';
16
+ // eslint-disable-next-line no-restricted-syntax -- callers import the Command failure vocabulary from this module today (see file-level comment above), not from platform/errors.js or dreamux-utils directly
17
+ export { DreamuxError, InternalError, ServerShuttingDownError, StatedFailure, TransportError, ValidationError, } from '../platform/errors.js';
18
+ // eslint-disable-next-line no-restricted-syntax -- same one-import convenience re-export as above, for the canonical helper's new home and the one shared rule-violation class
19
+ export { errorMessage, RuleViolation } from '@excitedjs/dreamux-utils';
16
20
  export function commandFailure(error) {
17
21
  if (error instanceof StatedFailure) {
18
22
  return { code: error.code, message: error.message, action: error.action };
@@ -22,6 +26,43 @@ export function commandFailure(error) {
22
26
  }
23
27
  return { code: 'INTERNAL', message: errorMessage(error) };
24
28
  }
29
+ /**
30
+ * The sentence for one already-classified Command failure.
31
+ *
32
+ * `commandFailure` sets `action` for exactly the failures a domain stated for
33
+ * itself, so `action === undefined` here means exactly "not one of those" —
34
+ * the code and message travel as given, with no next step invented for a
35
+ * failure that never authored one. When it is set, the reason is turned into
36
+ * a full sentence and the action follows it, so a caller reads the same three
37
+ * parts a stated failure's own author wrote.
38
+ *
39
+ * Takes a {@link CommandFailure} directly rather than only `unknown`, because
40
+ * a value that already carries that exact shape — a Command failure that
41
+ * crossed a wire and was reconstructed on the other side, for instance —
42
+ * needs the same rendering without being re-classified as if it were a fresh
43
+ * thrown value.
44
+ */
45
+ export function commandFailureText(failure) {
46
+ return failure.action === undefined
47
+ ? `${failure.code}: ${failure.message}`
48
+ : `${failure.code}: ${sentence(failure.message)} ${failure.action}`;
49
+ }
50
+ /**
51
+ * The sentence for any thrown value, by the class it already is.
52
+ *
53
+ * Built on {@link commandFailure}'s own classification, so every caller gets
54
+ * the same answer `commandFailure(err)` would already commit to, in one call.
55
+ */
56
+ export function failureText(error) {
57
+ return commandFailureText(commandFailure(error));
58
+ }
59
+ /** A reason always ends as a sentence, whether or not its author ended it. */
60
+ function sentence(reason) {
61
+ const stated = reason.trim();
62
+ if (stated === '')
63
+ return 'No further detail is available.';
64
+ return /[.!?]$/.test(stated) ? stated : `${stated}.`;
65
+ }
25
66
  /**
26
67
  * Re-type one broken domain rule as the caller's mistake.
27
68
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/command/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,eAAe,EACf,YAAY,GACb,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,cAAc,EACd,eAAe,EACf,YAAY,GACb,MAAM,uBAAuB,CAAC;AAsB/B,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IAC5E,CAAC;IACD,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IACtD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,KAAK,YAAY,aAAa;QAAE,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7E,MAAM,KAAK,CAAC;AACd,CAAC;AAED,yDAAyD;AACzD,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IACpD,YAAY,IAAY;QACtB,KAAK,CACH,gBAAgB,EAChB,mBAAmB,IAAI,GAAG,EAC1B,uEAAuE;YACrE,wBAAwB,CAC3B,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/command/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEvE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAE/B,8MAA8M;AAC9M,OAAO,EACL,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,cAAc,EACd,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,+KAA+K;AAC/K,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAsBvE,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IAC5E,CAAC;IACD,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IACtD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAuB;IACxD,OAAO,OAAO,CAAC,MAAM,KAAK,SAAS;QACjC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE;QACvC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AACxE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,8EAA8E;AAC9E,SAAS,QAAQ,CAAC,MAAc;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,iCAAiC,CAAC;IAC5D,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;AACvD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,KAAK,YAAY,aAAa;QAAE,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7E,MAAM,KAAK,CAAC;AACd,CAAC;AAED,yDAAyD;AACzD,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IACpD,YAAY,IAAY;QACtB,KAAK,CACH,gBAAgB,EAChB,mBAAmB,IAAI,GAAG,EAC1B,uEAAuE;YACrE,wBAAwB,CAC3B,CAAC;IACJ,CAAC;CACF"}