@agimon-ai/doompi-task 0.0.1-alpha.73 → 0.0.1-alpha.75

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 (420) hide show
  1. package/package.json +6 -6
  2. package/dist/_virtual/_rolldown/runtime.cjs +0 -23
  3. package/dist/api-contracts.cjs +0 -7
  4. package/dist/api-contracts.d.cts +0 -2
  5. package/dist/api-contracts.d.mts +0 -2
  6. package/dist/api-contracts.mjs +0 -2
  7. package/dist/commands.cjs +0 -4
  8. package/dist/commands.d.cts +0 -2
  9. package/dist/commands.d.mts +0 -2
  10. package/dist/commands.mjs +0 -2
  11. package/dist/config.cjs +0 -19
  12. package/dist/config.d.cts +0 -2
  13. package/dist/config.d.mts +0 -2
  14. package/dist/config.mjs +0 -2
  15. package/dist/delegation-manager.cjs +0 -10
  16. package/dist/delegation-manager.d.cts +0 -3
  17. package/dist/delegation-manager.d.mts +0 -3
  18. package/dist/delegation-manager.mjs +0 -3
  19. package/dist/extensions/pi.cjs +0 -50
  20. package/dist/extensions/pi.cjs.map +0 -1
  21. package/dist/extensions/pi.d.cts +0 -5
  22. package/dist/extensions/pi.d.cts.map +0 -1
  23. package/dist/extensions/pi.d.mts +0 -5
  24. package/dist/extensions/pi.d.mts.map +0 -1
  25. package/dist/extensions/pi.mjs +0 -45
  26. package/dist/extensions/pi.mjs.map +0 -1
  27. package/dist/extensions/server.cjs +0 -57
  28. package/dist/extensions/server.cjs.map +0 -1
  29. package/dist/extensions/server.d.cts +0 -5
  30. package/dist/extensions/server.d.cts.map +0 -1
  31. package/dist/extensions/server.d.mts +0 -5
  32. package/dist/extensions/server.d.mts.map +0 -1
  33. package/dist/extensions/server.mjs +0 -52
  34. package/dist/extensions/server.mjs.map +0 -1
  35. package/dist/extensions/web.mjs +0 -1013
  36. package/dist/extensions/web.mjs.map +0 -1
  37. package/dist/index.cjs +0 -106
  38. package/dist/index.d.cts +0 -16
  39. package/dist/index.d.mts +0 -16
  40. package/dist/index.mjs +0 -16
  41. package/dist/logSinkTelemetry.cjs +0 -6
  42. package/dist/logSinkTelemetry.d.cts +0 -3
  43. package/dist/logSinkTelemetry.d.mts +0 -3
  44. package/dist/logSinkTelemetry.mjs +0 -3
  45. package/dist/src/constants/promptGuidelines.cjs +0 -26
  46. package/dist/src/constants/promptGuidelines.cjs.map +0 -1
  47. package/dist/src/constants/promptGuidelines.d.cts +0 -13
  48. package/dist/src/constants/promptGuidelines.d.cts.map +0 -1
  49. package/dist/src/constants/promptGuidelines.d.mts +0 -13
  50. package/dist/src/constants/promptGuidelines.d.mts.map +0 -1
  51. package/dist/src/constants/promptGuidelines.mjs +0 -26
  52. package/dist/src/constants/promptGuidelines.mjs.map +0 -1
  53. package/dist/src/constants/task.cjs +0 -6
  54. package/dist/src/constants/task.cjs.map +0 -1
  55. package/dist/src/constants/task.d.cts +0 -4
  56. package/dist/src/constants/task.d.cts.map +0 -1
  57. package/dist/src/constants/task.d.mts +0 -4
  58. package/dist/src/constants/task.d.mts.map +0 -1
  59. package/dist/src/constants/task.mjs +0 -6
  60. package/dist/src/constants/task.mjs.map +0 -1
  61. package/dist/src/extensions/(backend)/channel/_lib/task-graph.cjs +0 -90
  62. package/dist/src/extensions/(backend)/channel/_lib/task-graph.cjs.map +0 -1
  63. package/dist/src/extensions/(backend)/channel/_lib/task-graph.mjs +0 -89
  64. package/dist/src/extensions/(backend)/channel/_lib/task-graph.mjs.map +0 -1
  65. package/dist/src/extensions/(backend)/channel/task-graph.server.cjs +0 -7
  66. package/dist/src/extensions/(backend)/channel/task-graph.server.cjs.map +0 -1
  67. package/dist/src/extensions/(backend)/channel/task-graph.server.mjs +0 -8
  68. package/dist/src/extensions/(backend)/channel/task-graph.server.mjs.map +0 -1
  69. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.cjs +0 -317
  70. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.cjs.map +0 -1
  71. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.d.cts +0 -39
  72. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.d.cts.map +0 -1
  73. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.d.mts +0 -39
  74. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.d.mts.map +0 -1
  75. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.mjs +0 -317
  76. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.mjs.map +0 -1
  77. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.cjs +0 -95
  78. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.cjs.map +0 -1
  79. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.mjs +0 -95
  80. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.mjs.map +0 -1
  81. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.cjs +0 -30
  82. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.cjs.map +0 -1
  83. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.d.cts +0 -20
  84. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.d.cts.map +0 -1
  85. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.d.mts +0 -20
  86. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.d.mts.map +0 -1
  87. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.mjs +0 -29
  88. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.mjs.map +0 -1
  89. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.server.cjs +0 -19
  90. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.server.cjs.map +0 -1
  91. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.server.mjs +0 -19
  92. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.server.mjs.map +0 -1
  93. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.cli.cjs +0 -8
  94. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.cli.cjs.map +0 -1
  95. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.cli.mjs +0 -9
  96. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.cli.mjs.map +0 -1
  97. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.server.cjs +0 -7
  98. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.server.cjs.map +0 -1
  99. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.server.mjs +0 -8
  100. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.server.mjs.map +0 -1
  101. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-compact.cli.cjs +0 -6
  102. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-compact.cli.cjs.map +0 -1
  103. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-compact.cli.mjs +0 -6
  104. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-compact.cli.mjs.map +0 -1
  105. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-start.cli.cjs +0 -6
  106. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-start.cli.cjs.map +0 -1
  107. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-start.cli.mjs +0 -6
  108. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-start.cli.mjs.map +0 -1
  109. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-tree.cli.cjs +0 -6
  110. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-tree.cli.cjs.map +0 -1
  111. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-tree.cli.mjs +0 -6
  112. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-tree.cli.mjs.map +0 -1
  113. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/tool-execution-end.cli.cjs +0 -6
  114. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/tool-execution-end.cli.cjs.map +0 -1
  115. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/tool-execution-end.cli.mjs +0 -6
  116. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/tool-execution-end.cli.mjs.map +0 -1
  117. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-compact.cli.cjs +0 -7
  118. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-compact.cli.cjs.map +0 -1
  119. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-compact.cli.mjs +0 -8
  120. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-compact.cli.mjs.map +0 -1
  121. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs +0 -7
  122. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs.map +0 -1
  123. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs +0 -8
  124. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs.map +0 -1
  125. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-tree.cli.cjs +0 -7
  126. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-tree.cli.cjs.map +0 -1
  127. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-tree.cli.mjs +0 -8
  128. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-tree.cli.mjs.map +0 -1
  129. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.cjs +0 -7
  130. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.cjs.map +0 -1
  131. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.mjs +0 -8
  132. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.mjs.map +0 -1
  133. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/task-board.server.cjs +0 -20
  134. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/task-board.server.cjs.map +0 -1
  135. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/task-board.server.mjs +0 -20
  136. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/task-board.server.mjs.map +0 -1
  137. package/dist/src/extensions/workspaces/sessions/(backend)/resource/task-board.server.cjs +0 -7
  138. package/dist/src/extensions/workspaces/sessions/(backend)/resource/task-board.server.cjs.map +0 -1
  139. package/dist/src/extensions/workspaces/sessions/(backend)/resource/task-board.server.mjs +0 -8
  140. package/dist/src/extensions/workspaces/sessions/(backend)/resource/task-board.server.mjs.map +0 -1
  141. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs +0 -11
  142. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs.map +0 -1
  143. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs +0 -12
  144. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs.map +0 -1
  145. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs +0 -7
  146. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs.map +0 -1
  147. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs +0 -8
  148. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs.map +0 -1
  149. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.cjs +0 -160
  150. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.cjs.map +0 -1
  151. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.d.cts +0 -25
  152. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.d.cts.map +0 -1
  153. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.d.mts +0 -25
  154. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.d.mts.map +0 -1
  155. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.mjs +0 -157
  156. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.mjs.map +0 -1
  157. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.server.cjs +0 -109
  158. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.server.cjs.map +0 -1
  159. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.server.mjs +0 -107
  160. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.server.mjs.map +0 -1
  161. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.cli.cjs +0 -7
  162. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.cli.cjs.map +0 -1
  163. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.cli.mjs +0 -8
  164. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.cli.mjs.map +0 -1
  165. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.server.cjs +0 -7
  166. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.server.cjs.map +0 -1
  167. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.server.mjs +0 -8
  168. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.server.mjs.map +0 -1
  169. package/dist/src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.cjs +0 -333
  170. package/dist/src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.cjs.map +0 -1
  171. package/dist/src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.d.cts +0 -61
  172. package/dist/src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.d.cts.map +0 -1
  173. package/dist/src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.d.mts +0 -61
  174. package/dist/src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.d.mts.map +0 -1
  175. package/dist/src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.mjs +0 -322
  176. package/dist/src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.mjs.map +0 -1
  177. package/dist/src/extensions/workspaces/sessions/(frontend)/message/doom-task-notify.cli.cjs +0 -9
  178. package/dist/src/extensions/workspaces/sessions/(frontend)/message/doom-task-notify.cli.cjs.map +0 -1
  179. package/dist/src/extensions/workspaces/sessions/(frontend)/message/doom-task-notify.cli.mjs +0 -9
  180. package/dist/src/extensions/workspaces/sessions/(frontend)/message/doom-task-notify.cli.mjs.map +0 -1
  181. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/selectors.cjs +0 -149
  182. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/selectors.cjs.map +0 -1
  183. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/selectors.d.cts +0 -59
  184. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/selectors.d.cts.map +0 -1
  185. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/selectors.d.mts +0 -59
  186. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/selectors.d.mts.map +0 -1
  187. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/selectors.mjs +0 -142
  188. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/selectors.mjs.map +0 -1
  189. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.cjs +0 -358
  190. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.cjs.map +0 -1
  191. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.d.cts +0 -61
  192. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.d.cts.map +0 -1
  193. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.d.mts +0 -61
  194. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.d.mts.map +0 -1
  195. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.mjs +0 -355
  196. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.mjs.map +0 -1
  197. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/taskOverlay.cjs +0 -165
  198. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/taskOverlay.cjs.map +0 -1
  199. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/taskOverlay.d.cts +0 -39
  200. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/taskOverlay.d.cts.map +0 -1
  201. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/taskOverlay.d.mts +0 -39
  202. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/taskOverlay.d.mts.map +0 -1
  203. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/taskOverlay.mjs +0 -164
  204. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/taskOverlay.mjs.map +0 -1
  205. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/task.cli.cjs +0 -13
  206. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/task.cli.cjs.map +0 -1
  207. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/task.cli.mjs +0 -13
  208. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/task.cli.mjs.map +0 -1
  209. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/task.cli.cjs +0 -7
  210. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/task.cli.cjs.map +0 -1
  211. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/task.cli.mjs +0 -8
  212. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/task.cli.mjs.map +0 -1
  213. package/dist/src/models/task.cjs +0 -29
  214. package/dist/src/models/task.cjs.map +0 -1
  215. package/dist/src/models/task.d.cts +0 -186
  216. package/dist/src/models/task.d.cts.map +0 -1
  217. package/dist/src/models/task.d.mts +0 -186
  218. package/dist/src/models/task.d.mts.map +0 -1
  219. package/dist/src/models/task.mjs +0 -26
  220. package/dist/src/models/task.mjs.map +0 -1
  221. package/dist/src/models/taskGraph.cjs +0 -67
  222. package/dist/src/models/taskGraph.cjs.map +0 -1
  223. package/dist/src/models/taskGraph.d.cts +0 -24
  224. package/dist/src/models/taskGraph.d.cts.map +0 -1
  225. package/dist/src/models/taskGraph.d.mts +0 -24
  226. package/dist/src/models/taskGraph.d.mts.map +0 -1
  227. package/dist/src/models/taskGraph.mjs +0 -63
  228. package/dist/src/models/taskGraph.mjs.map +0 -1
  229. package/dist/src/schemas/apiContracts.cjs +0 -51
  230. package/dist/src/schemas/apiContracts.cjs.map +0 -1
  231. package/dist/src/schemas/apiContracts.d.cts +0 -53
  232. package/dist/src/schemas/apiContracts.d.cts.map +0 -1
  233. package/dist/src/schemas/apiContracts.d.mts +0 -53
  234. package/dist/src/schemas/apiContracts.d.mts.map +0 -1
  235. package/dist/src/schemas/apiContracts.mjs +0 -49
  236. package/dist/src/schemas/apiContracts.mjs.map +0 -1
  237. package/dist/src/schemas/task.cjs +0 -130
  238. package/dist/src/schemas/task.cjs.map +0 -1
  239. package/dist/src/schemas/task.d.cts +0 -103
  240. package/dist/src/schemas/task.d.cts.map +0 -1
  241. package/dist/src/schemas/task.d.mts +0 -103
  242. package/dist/src/schemas/task.d.mts.map +0 -1
  243. package/dist/src/schemas/task.mjs +0 -117
  244. package/dist/src/schemas/task.mjs.map +0 -1
  245. package/dist/src/services/config/index.cjs +0 -88
  246. package/dist/src/services/config/index.cjs.map +0 -1
  247. package/dist/src/services/config/index.d.cts +0 -42
  248. package/dist/src/services/config/index.d.cts.map +0 -1
  249. package/dist/src/services/config/index.d.mts +0 -42
  250. package/dist/src/services/config/index.d.mts.map +0 -1
  251. package/dist/src/services/config/index.mjs +0 -72
  252. package/dist/src/services/config/index.mjs.map +0 -1
  253. package/dist/src/services/contextContribution/index.cjs +0 -51
  254. package/dist/src/services/contextContribution/index.cjs.map +0 -1
  255. package/dist/src/services/contextContribution/index.mjs +0 -46
  256. package/dist/src/services/contextContribution/index.mjs.map +0 -1
  257. package/dist/src/services/delegation/index.cjs +0 -629
  258. package/dist/src/services/delegation/index.cjs.map +0 -1
  259. package/dist/src/services/delegation/index.d.cts +0 -192
  260. package/dist/src/services/delegation/index.d.cts.map +0 -1
  261. package/dist/src/services/delegation/index.d.mts +0 -192
  262. package/dist/src/services/delegation/index.d.mts.map +0 -1
  263. package/dist/src/services/delegation/index.mjs +0 -623
  264. package/dist/src/services/delegation/index.mjs.map +0 -1
  265. package/dist/src/services/delegationPlatform/index.cjs +0 -23
  266. package/dist/src/services/delegationPlatform/index.cjs.map +0 -1
  267. package/dist/src/services/delegationPlatform/index.mjs +0 -21
  268. package/dist/src/services/delegationPlatform/index.mjs.map +0 -1
  269. package/dist/src/services/invariants/index.cjs +0 -64
  270. package/dist/src/services/invariants/index.cjs.map +0 -1
  271. package/dist/src/services/invariants/index.d.cts +0 -23
  272. package/dist/src/services/invariants/index.d.cts.map +0 -1
  273. package/dist/src/services/invariants/index.d.mts +0 -23
  274. package/dist/src/services/invariants/index.d.mts.map +0 -1
  275. package/dist/src/services/invariants/index.mjs +0 -62
  276. package/dist/src/services/invariants/index.mjs.map +0 -1
  277. package/dist/src/services/logSinkTelemetry/index.cjs +0 -43
  278. package/dist/src/services/logSinkTelemetry/index.cjs.map +0 -1
  279. package/dist/src/services/logSinkTelemetry/index.d.cts +0 -23
  280. package/dist/src/services/logSinkTelemetry/index.d.cts.map +0 -1
  281. package/dist/src/services/logSinkTelemetry/index.d.mts +0 -23
  282. package/dist/src/services/logSinkTelemetry/index.d.mts.map +0 -1
  283. package/dist/src/services/logSinkTelemetry/index.mjs +0 -41
  284. package/dist/src/services/logSinkTelemetry/index.mjs.map +0 -1
  285. package/dist/src/services/paths/index.cjs +0 -233
  286. package/dist/src/services/paths/index.cjs.map +0 -1
  287. package/dist/src/services/paths/index.d.cts +0 -25
  288. package/dist/src/services/paths/index.d.cts.map +0 -1
  289. package/dist/src/services/paths/index.d.mts +0 -25
  290. package/dist/src/services/paths/index.d.mts.map +0 -1
  291. package/dist/src/services/paths/index.mjs +0 -218
  292. package/dist/src/services/paths/index.mjs.map +0 -1
  293. package/dist/src/services/processLiveness/index.cjs +0 -20
  294. package/dist/src/services/processLiveness/index.cjs.map +0 -1
  295. package/dist/src/services/processLiveness/index.d.cts +0 -11
  296. package/dist/src/services/processLiveness/index.d.cts.map +0 -1
  297. package/dist/src/services/processLiveness/index.d.mts +0 -11
  298. package/dist/src/services/processLiveness/index.d.mts.map +0 -1
  299. package/dist/src/services/processLiveness/index.mjs +0 -20
  300. package/dist/src/services/processLiveness/index.mjs.map +0 -1
  301. package/dist/src/services/reconcile/index.cjs +0 -65
  302. package/dist/src/services/reconcile/index.cjs.map +0 -1
  303. package/dist/src/services/reconcile/index.d.cts +0 -33
  304. package/dist/src/services/reconcile/index.d.cts.map +0 -1
  305. package/dist/src/services/reconcile/index.d.mts +0 -33
  306. package/dist/src/services/reconcile/index.d.mts.map +0 -1
  307. package/dist/src/services/reconcile/index.mjs +0 -63
  308. package/dist/src/services/reconcile/index.mjs.map +0 -1
  309. package/dist/src/services/reducer/index.cjs +0 -350
  310. package/dist/src/services/reducer/index.cjs.map +0 -1
  311. package/dist/src/services/reducer/index.d.cts +0 -71
  312. package/dist/src/services/reducer/index.d.cts.map +0 -1
  313. package/dist/src/services/reducer/index.d.mts +0 -71
  314. package/dist/src/services/reducer/index.d.mts.map +0 -1
  315. package/dist/src/services/reducer/index.mjs +0 -345
  316. package/dist/src/services/reducer/index.mjs.map +0 -1
  317. package/dist/src/services/taskNarration/index.cjs +0 -32
  318. package/dist/src/services/taskNarration/index.cjs.map +0 -1
  319. package/dist/src/services/taskNarration/index.mjs +0 -32
  320. package/dist/src/services/taskNarration/index.mjs.map +0 -1
  321. package/dist/src/services/taskResult/index.cjs +0 -174
  322. package/dist/src/services/taskResult/index.cjs.map +0 -1
  323. package/dist/src/services/taskResult/index.d.cts +0 -50
  324. package/dist/src/services/taskResult/index.d.cts.map +0 -1
  325. package/dist/src/services/taskResult/index.d.mts +0 -50
  326. package/dist/src/services/taskResult/index.d.mts.map +0 -1
  327. package/dist/src/services/taskResult/index.mjs +0 -165
  328. package/dist/src/services/taskResult/index.mjs.map +0 -1
  329. package/dist/src/services/taskStore/index.cjs +0 -216
  330. package/dist/src/services/taskStore/index.cjs.map +0 -1
  331. package/dist/src/services/taskStore/index.d.cts +0 -69
  332. package/dist/src/services/taskStore/index.d.cts.map +0 -1
  333. package/dist/src/services/taskStore/index.d.mts +0 -69
  334. package/dist/src/services/taskStore/index.d.mts.map +0 -1
  335. package/dist/src/services/taskStore/index.mjs +0 -213
  336. package/dist/src/services/taskStore/index.mjs.map +0 -1
  337. package/dist/src/types/delegation.cjs +0 -7
  338. package/dist/src/types/delegation.cjs.map +0 -1
  339. package/dist/src/types/delegation.d.cts +0 -5
  340. package/dist/src/types/delegation.d.cts.map +0 -1
  341. package/dist/src/types/delegation.d.mts +0 -5
  342. package/dist/src/types/delegation.d.mts.map +0 -1
  343. package/dist/src/types/delegation.mjs +0 -7
  344. package/dist/src/types/delegation.mjs.map +0 -1
  345. package/dist/src/types/telemetry.cjs +0 -26
  346. package/dist/src/types/telemetry.cjs.map +0 -1
  347. package/dist/src/types/telemetry.d.cts +0 -35
  348. package/dist/src/types/telemetry.d.cts.map +0 -1
  349. package/dist/src/types/telemetry.d.mts +0 -35
  350. package/dist/src/types/telemetry.d.mts.map +0 -1
  351. package/dist/src/types/telemetry.mjs +0 -26
  352. package/dist/src/types/telemetry.mjs.map +0 -1
  353. package/dist/src/types/webTasks.cjs +0 -7
  354. package/dist/src/types/webTasks.cjs.map +0 -1
  355. package/dist/src/types/webTasks.mjs +0 -7
  356. package/dist/src/types/webTasks.mjs.map +0 -1
  357. package/dist/store-invariants.cjs +0 -5
  358. package/dist/store-invariants.d.cts +0 -2
  359. package/dist/store-invariants.d.mts +0 -2
  360. package/dist/store-invariants.mjs +0 -2
  361. package/dist/store-paths.cjs +0 -14
  362. package/dist/store-paths.d.cts +0 -2
  363. package/dist/store-paths.d.mts +0 -2
  364. package/dist/store-paths.mjs +0 -2
  365. package/dist/store-process-liveness.cjs +0 -3
  366. package/dist/store-process-liveness.d.cts +0 -2
  367. package/dist/store-process-liveness.d.mts +0 -2
  368. package/dist/store-process-liveness.mjs +0 -2
  369. package/dist/store-reconcile.cjs +0 -5
  370. package/dist/store-reconcile.d.cts +0 -2
  371. package/dist/store-reconcile.d.mts +0 -2
  372. package/dist/store-reconcile.mjs +0 -2
  373. package/dist/store-reducer.cjs +0 -8
  374. package/dist/store-reducer.d.cts +0 -2
  375. package/dist/store-reducer.d.mts +0 -2
  376. package/dist/store-reducer.mjs +0 -2
  377. package/dist/store-task-graph.cjs +0 -7
  378. package/dist/store-task-graph.d.cts +0 -2
  379. package/dist/store-task-graph.d.mts +0 -2
  380. package/dist/store-task-graph.mjs +0 -2
  381. package/dist/store-task-store.cjs +0 -3
  382. package/dist/store-task-store.d.cts +0 -2
  383. package/dist/store-task-store.d.mts +0 -2
  384. package/dist/store-task-store.mjs +0 -2
  385. package/dist/store-types.cjs +0 -6
  386. package/dist/store-types.d.cts +0 -2
  387. package/dist/store-types.d.mts +0 -2
  388. package/dist/store-types.mjs +0 -2
  389. package/dist/tool-prompt-guidelines.cjs +0 -3
  390. package/dist/tool-prompt-guidelines.d.cts +0 -2
  391. package/dist/tool-prompt-guidelines.d.mts +0 -2
  392. package/dist/tool-prompt-guidelines.mjs +0 -2
  393. package/dist/tool-response-envelope.cjs +0 -12
  394. package/dist/tool-response-envelope.d.cts +0 -2
  395. package/dist/tool-response-envelope.d.mts +0 -2
  396. package/dist/tool-response-envelope.mjs +0 -2
  397. package/dist/tool-schema.cjs +0 -17
  398. package/dist/tool-schema.d.cts +0 -3
  399. package/dist/tool-schema.d.mts +0 -3
  400. package/dist/tool-schema.mjs +0 -3
  401. package/dist/tool-task-tool.cjs +0 -6
  402. package/dist/tool-task-tool.d.cts +0 -3
  403. package/dist/tool-task-tool.d.mts +0 -3
  404. package/dist/tool-task-tool.mjs +0 -3
  405. package/dist/tui-format.cjs +0 -14
  406. package/dist/tui-format.d.cts +0 -2
  407. package/dist/tui-format.d.mts +0 -2
  408. package/dist/tui-format.mjs +0 -2
  409. package/dist/tui-selectors.cjs +0 -10
  410. package/dist/tui-selectors.d.cts +0 -2
  411. package/dist/tui-selectors.d.mts +0 -2
  412. package/dist/tui-selectors.mjs +0 -2
  413. package/dist/tui-task-overlay.cjs +0 -4
  414. package/dist/tui-task-overlay.d.cts +0 -2
  415. package/dist/tui-task-overlay.d.mts +0 -2
  416. package/dist/tui-task-overlay.mjs +0 -2
  417. package/dist/tui-task-space.cjs +0 -5
  418. package/dist/tui-task-space.d.cts +0 -2
  419. package/dist/tui-task-space.d.mts +0 -2
  420. package/dist/tui-task-space.mjs +0 -2
@@ -1,90 +0,0 @@
1
- const require_index = require("../../../../services/paths/index.cjs");
2
- const require_index$1 = require("../../../../services/taskStore/index.cjs");
3
- const require_webTasks = require("../../../../types/webTasks.cjs");
4
- //#region src/extensions/(backend)/channel/_lib/task-graph.ts
5
- function isTaskDocument(value) {
6
- return typeof value === "object" && value !== null && typeof value.rev === "number" && Array.isArray(value.tasks);
7
- }
8
- function present(document) {
9
- return {
10
- tasks: document.tasks.flatMap((task) => {
11
- if (task.status === "deleted") return [];
12
- const view = {
13
- id: task.id,
14
- subject: task.subject,
15
- status: task.status,
16
- blockedBy: task.blockedBy ?? []
17
- };
18
- if (task.description) view.description = task.description;
19
- if (task.activeForm) view.activeForm = task.activeForm;
20
- if (task.owner) view.owner = task.owner;
21
- if (task.updatedAt) view.updatedAt = task.updatedAt;
22
- if (task.delegation) view.delegation = {
23
- ...task.delegation.agent === void 0 ? {} : { agent: task.delegation.agent },
24
- ...task.delegation.state === void 0 ? {} : { state: task.delegation.state }
25
- };
26
- return [view];
27
- }),
28
- rev: document.rev
29
- };
30
- }
31
- /** Publishes each managed session's durable task graph and follows direct session commits. */
32
- function createTasksChannel(options = {}) {
33
- return {
34
- frameType: require_webTasks.TASKS_CHANNEL_TYPE,
35
- start(host) {
36
- const stores = /* @__PURE__ */ new Map();
37
- const open = (scope) => {
38
- if (stores.has(scope.sessionId)) return;
39
- let store = options.storeFor?.(scope);
40
- if (store === void 0) {
41
- if (scope.environment === void 0) throw new Error(`Task channel requires an admitted environment for session '${scope.sessionId}'.`);
42
- store = new require_index$1.TaskStore({
43
- cwd: scope.cwd,
44
- env: scope.environment,
45
- storePath: require_index.resolveStorePath(scope.cwd, scope.environment, scope.sessionId)
46
- });
47
- }
48
- store.read();
49
- const source = {
50
- store,
51
- unsubscribe: () => void 0
52
- };
53
- stores.set(scope.sessionId, source);
54
- source.unsubscribe = host.directEvents.subscribe(require_webTasks.TASKS_CHANNEL_TYPE, scope.sessionId, (payload) => {
55
- if (!isTaskDocument(payload)) return;
56
- const current = stores.get(scope.sessionId);
57
- if (current === void 0) return;
58
- current.latest = payload;
59
- host.publish(scope.sessionId, present(payload));
60
- }, { replayLatest: true });
61
- };
62
- const close = (sessionId) => {
63
- const source = stores.get(sessionId);
64
- if (!source) return;
65
- source.unsubscribe();
66
- source.store.dispose();
67
- stores.delete(sessionId);
68
- };
69
- for (const scope of host.sessions()) open(scope);
70
- return {
71
- payloadFor(scope) {
72
- open(scope);
73
- const source = stores.get(scope.sessionId);
74
- const document = source?.latest ?? source?.store.snapshot;
75
- return document === void 0 ? void 0 : present(document);
76
- },
77
- sessionAdded: open,
78
- sessionRemoved: close,
79
- close() {
80
- for (const sessionId of stores.keys()) close(sessionId);
81
- }
82
- };
83
- }
84
- };
85
- }
86
- //#endregion
87
- exports.createTasksChannel = createTasksChannel;
88
- exports.default = createTasksChannel;
89
-
90
- //# sourceMappingURL=task-graph.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-graph.cjs","names":["TASKS_CHANNEL_TYPE","TaskStore","resolveStorePath"],"sources":["../../../../../../src/extensions/(backend)/channel/_lib/task-graph.ts"],"sourcesContent":["import type { DoomHubChannelSource, DoomHubSessionScope, DoomHubChannel } from '@agimon-ai/doompi-core/hub-channel';\n\nimport type { TaskDocument } from '../../../../models/task';\nimport { resolveStorePath } from '../../../../services/paths';\nimport { TaskStore } from '../../../../services/taskStore';\nimport { TASKS_CHANNEL_TYPE, type WebTask, type WebTasksPayload } from '../../../../types/webTasks';\n\ninterface TaskStoreSource {\n readonly snapshot: TaskDocument;\n read(): TaskDocument;\n dispose(): void;\n}\n\nfunction isTaskDocument(value: unknown): value is TaskDocument {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof (value as TaskDocument).rev === 'number' &&\n Array.isArray((value as TaskDocument).tasks)\n );\n}\n\nexport interface TasksChannelOptions {\n /** Injectable for tests. The default opens the session tree's durable task store. */\n storeFor?: (scope: DoomHubSessionScope) => TaskStoreSource;\n}\n\nfunction present(document: TaskDocument): WebTasksPayload {\n const tasks: WebTask[] = document.tasks.flatMap((task) => {\n if (task.status === 'deleted') return [];\n const view: WebTask = {\n id: task.id,\n subject: task.subject,\n status: task.status,\n blockedBy: task.blockedBy ?? [],\n };\n if (task.description) view.description = task.description;\n if (task.activeForm) view.activeForm = task.activeForm;\n if (task.owner) view.owner = task.owner;\n if (task.updatedAt) view.updatedAt = task.updatedAt;\n if (task.delegation) {\n view.delegation = {\n ...(task.delegation.agent === undefined ? {} : { agent: task.delegation.agent }),\n ...(task.delegation.state === undefined ? {} : { state: task.delegation.state }),\n };\n }\n return [view];\n });\n return { tasks, rev: document.rev };\n}\n\n/** Publishes each managed session's durable task graph and follows direct session commits. */\nexport function createTasksChannel(options: TasksChannelOptions = {}): DoomHubChannel {\n return {\n frameType: TASKS_CHANNEL_TYPE,\n start(host) {\n const stores = new Map<string, { store: TaskStoreSource; unsubscribe: () => void; latest?: TaskDocument }>();\n const open = (scope: DoomHubSessionScope): void => {\n if (stores.has(scope.sessionId)) return;\n let store = options.storeFor?.(scope);\n if (store === undefined) {\n if (scope.environment === undefined)\n throw new Error(`Task channel requires an admitted environment for session '${scope.sessionId}'.`);\n store = new TaskStore({\n cwd: scope.cwd,\n env: scope.environment,\n storePath: resolveStorePath(scope.cwd, scope.environment, scope.sessionId),\n });\n }\n store.read();\n const source = { store, unsubscribe: () => undefined as void };\n stores.set(scope.sessionId, source);\n source.unsubscribe = host.directEvents.subscribe(\n TASKS_CHANNEL_TYPE,\n scope.sessionId,\n (payload) => {\n if (!isTaskDocument(payload)) return;\n const current = stores.get(scope.sessionId);\n if (current === undefined) return;\n current.latest = payload;\n host.publish(scope.sessionId, present(payload));\n },\n { replayLatest: true },\n );\n };\n const close = (sessionId: string): void => {\n const source = stores.get(sessionId);\n if (!source) return;\n source.unsubscribe();\n source.store.dispose();\n stores.delete(sessionId);\n };\n for (const scope of host.sessions()) open(scope);\n\n const source: DoomHubChannelSource = {\n payloadFor(scope) {\n open(scope);\n const source = stores.get(scope.sessionId);\n const document = source?.latest ?? source?.store.snapshot;\n return document === undefined ? undefined : present(document);\n },\n sessionAdded: open,\n sessionRemoved: close,\n close() {\n for (const sessionId of stores.keys()) close(sessionId);\n },\n };\n return source;\n },\n };\n}\n\nexport default createTasksChannel;\n"],"mappings":";;;;AAaA,SAAS,eAAe,OAAuC;CAC7D,OACE,OAAO,UAAU,YACjB,UAAU,QACV,OAAQ,MAAuB,QAAQ,YACvC,MAAM,QAAS,MAAuB,KAAK;AAE/C;AAOA,SAAS,QAAQ,UAAyC;CAqBxD,OAAO;EAAE,OApBgB,SAAS,MAAM,SAAS,SAAS;GACxD,IAAI,KAAK,WAAW,WAAW,OAAO,CAAC;GACvC,MAAM,OAAgB;IACpB,IAAI,KAAK;IACT,SAAS,KAAK;IACd,QAAQ,KAAK;IACb,WAAW,KAAK,aAAa,CAAC;GAChC;GACA,IAAI,KAAK,aAAa,KAAK,cAAc,KAAK;GAC9C,IAAI,KAAK,YAAY,KAAK,aAAa,KAAK;GAC5C,IAAI,KAAK,OAAO,KAAK,QAAQ,KAAK;GAClC,IAAI,KAAK,WAAW,KAAK,YAAY,KAAK;GAC1C,IAAI,KAAK,YACP,KAAK,aAAa;IAChB,GAAI,KAAK,WAAW,UAAU,KAAA,IAAY,CAAC,IAAI,EAAE,OAAO,KAAK,WAAW,MAAM;IAC9E,GAAI,KAAK,WAAW,UAAU,KAAA,IAAY,CAAC,IAAI,EAAE,OAAO,KAAK,WAAW,MAAM;GAChF;GAEF,OAAO,CAAC,IAAI;EACd,CACa;EAAG,KAAK,SAAS;CAAI;AACpC;;AAGA,SAAgB,mBAAmB,UAA+B,CAAC,GAAmB;CACpF,OAAO;EACL,WAAWA,iBAAAA;EACX,MAAM,MAAM;GACV,MAAM,yBAAS,IAAI,IAAwF;GAC3G,MAAM,QAAQ,UAAqC;IACjD,IAAI,OAAO,IAAI,MAAM,SAAS,GAAG;IACjC,IAAI,QAAQ,QAAQ,WAAW,KAAK;IACpC,IAAI,UAAU,KAAA,GAAW;KACvB,IAAI,MAAM,gBAAgB,KAAA,GACxB,MAAM,IAAI,MAAM,8DAA8D,MAAM,UAAU,GAAG;KACnG,QAAQ,IAAIC,gBAAAA,UAAU;MACpB,KAAK,MAAM;MACX,KAAK,MAAM;MACX,WAAWC,cAAAA,iBAAiB,MAAM,KAAK,MAAM,aAAa,MAAM,SAAS;KAC3E,CAAC;IACH;IACA,MAAM,KAAK;IACX,MAAM,SAAS;KAAE;KAAO,mBAAmB,KAAA;IAAkB;IAC7D,OAAO,IAAI,MAAM,WAAW,MAAM;IAClC,OAAO,cAAc,KAAK,aAAa,UACrCF,iBAAAA,oBACA,MAAM,YACL,YAAY;KACX,IAAI,CAAC,eAAe,OAAO,GAAG;KAC9B,MAAM,UAAU,OAAO,IAAI,MAAM,SAAS;KAC1C,IAAI,YAAY,KAAA,GAAW;KAC3B,QAAQ,SAAS;KACjB,KAAK,QAAQ,MAAM,WAAW,QAAQ,OAAO,CAAC;IAChD,GACA,EAAE,cAAc,KAAK,CACvB;GACF;GACA,MAAM,SAAS,cAA4B;IACzC,MAAM,SAAS,OAAO,IAAI,SAAS;IACnC,IAAI,CAAC,QAAQ;IACb,OAAO,YAAY;IACnB,OAAO,MAAM,QAAQ;IACrB,OAAO,OAAO,SAAS;GACzB;GACA,KAAK,MAAM,SAAS,KAAK,SAAS,GAAG,KAAK,KAAK;GAe/C,OAAO;IAZL,WAAW,OAAO;KAChB,KAAK,KAAK;KACV,MAAM,SAAS,OAAO,IAAI,MAAM,SAAS;KACzC,MAAM,WAAW,QAAQ,UAAU,QAAQ,MAAM;KACjD,OAAO,aAAa,KAAA,IAAY,KAAA,IAAY,QAAQ,QAAQ;IAC9D;IACA,cAAc;IACd,gBAAgB;IAChB,QAAQ;KACN,KAAK,MAAM,aAAa,OAAO,KAAK,GAAG,MAAM,SAAS;IACxD;GAEU;EACd;CACF;AACF"}
@@ -1,89 +0,0 @@
1
- import { resolveStorePath } from "../../../../services/paths/index.mjs";
2
- import { TaskStore } from "../../../../services/taskStore/index.mjs";
3
- import { TASKS_CHANNEL_TYPE } from "../../../../types/webTasks.mjs";
4
- //#region src/extensions/(backend)/channel/_lib/task-graph.ts
5
- function isTaskDocument(value) {
6
- return typeof value === "object" && value !== null && typeof value.rev === "number" && Array.isArray(value.tasks);
7
- }
8
- function present(document) {
9
- return {
10
- tasks: document.tasks.flatMap((task) => {
11
- if (task.status === "deleted") return [];
12
- const view = {
13
- id: task.id,
14
- subject: task.subject,
15
- status: task.status,
16
- blockedBy: task.blockedBy ?? []
17
- };
18
- if (task.description) view.description = task.description;
19
- if (task.activeForm) view.activeForm = task.activeForm;
20
- if (task.owner) view.owner = task.owner;
21
- if (task.updatedAt) view.updatedAt = task.updatedAt;
22
- if (task.delegation) view.delegation = {
23
- ...task.delegation.agent === void 0 ? {} : { agent: task.delegation.agent },
24
- ...task.delegation.state === void 0 ? {} : { state: task.delegation.state }
25
- };
26
- return [view];
27
- }),
28
- rev: document.rev
29
- };
30
- }
31
- /** Publishes each managed session's durable task graph and follows direct session commits. */
32
- function createTasksChannel(options = {}) {
33
- return {
34
- frameType: TASKS_CHANNEL_TYPE,
35
- start(host) {
36
- const stores = /* @__PURE__ */ new Map();
37
- const open = (scope) => {
38
- if (stores.has(scope.sessionId)) return;
39
- let store = options.storeFor?.(scope);
40
- if (store === void 0) {
41
- if (scope.environment === void 0) throw new Error(`Task channel requires an admitted environment for session '${scope.sessionId}'.`);
42
- store = new TaskStore({
43
- cwd: scope.cwd,
44
- env: scope.environment,
45
- storePath: resolveStorePath(scope.cwd, scope.environment, scope.sessionId)
46
- });
47
- }
48
- store.read();
49
- const source = {
50
- store,
51
- unsubscribe: () => void 0
52
- };
53
- stores.set(scope.sessionId, source);
54
- source.unsubscribe = host.directEvents.subscribe(TASKS_CHANNEL_TYPE, scope.sessionId, (payload) => {
55
- if (!isTaskDocument(payload)) return;
56
- const current = stores.get(scope.sessionId);
57
- if (current === void 0) return;
58
- current.latest = payload;
59
- host.publish(scope.sessionId, present(payload));
60
- }, { replayLatest: true });
61
- };
62
- const close = (sessionId) => {
63
- const source = stores.get(sessionId);
64
- if (!source) return;
65
- source.unsubscribe();
66
- source.store.dispose();
67
- stores.delete(sessionId);
68
- };
69
- for (const scope of host.sessions()) open(scope);
70
- return {
71
- payloadFor(scope) {
72
- open(scope);
73
- const source = stores.get(scope.sessionId);
74
- const document = source?.latest ?? source?.store.snapshot;
75
- return document === void 0 ? void 0 : present(document);
76
- },
77
- sessionAdded: open,
78
- sessionRemoved: close,
79
- close() {
80
- for (const sessionId of stores.keys()) close(sessionId);
81
- }
82
- };
83
- }
84
- };
85
- }
86
- //#endregion
87
- export { createTasksChannel, createTasksChannel as default };
88
-
89
- //# sourceMappingURL=task-graph.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-graph.mjs","names":[],"sources":["../../../../../../src/extensions/(backend)/channel/_lib/task-graph.ts"],"sourcesContent":["import type { DoomHubChannelSource, DoomHubSessionScope, DoomHubChannel } from '@agimon-ai/doompi-core/hub-channel';\n\nimport type { TaskDocument } from '../../../../models/task';\nimport { resolveStorePath } from '../../../../services/paths';\nimport { TaskStore } from '../../../../services/taskStore';\nimport { TASKS_CHANNEL_TYPE, type WebTask, type WebTasksPayload } from '../../../../types/webTasks';\n\ninterface TaskStoreSource {\n readonly snapshot: TaskDocument;\n read(): TaskDocument;\n dispose(): void;\n}\n\nfunction isTaskDocument(value: unknown): value is TaskDocument {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof (value as TaskDocument).rev === 'number' &&\n Array.isArray((value as TaskDocument).tasks)\n );\n}\n\nexport interface TasksChannelOptions {\n /** Injectable for tests. The default opens the session tree's durable task store. */\n storeFor?: (scope: DoomHubSessionScope) => TaskStoreSource;\n}\n\nfunction present(document: TaskDocument): WebTasksPayload {\n const tasks: WebTask[] = document.tasks.flatMap((task) => {\n if (task.status === 'deleted') return [];\n const view: WebTask = {\n id: task.id,\n subject: task.subject,\n status: task.status,\n blockedBy: task.blockedBy ?? [],\n };\n if (task.description) view.description = task.description;\n if (task.activeForm) view.activeForm = task.activeForm;\n if (task.owner) view.owner = task.owner;\n if (task.updatedAt) view.updatedAt = task.updatedAt;\n if (task.delegation) {\n view.delegation = {\n ...(task.delegation.agent === undefined ? {} : { agent: task.delegation.agent }),\n ...(task.delegation.state === undefined ? {} : { state: task.delegation.state }),\n };\n }\n return [view];\n });\n return { tasks, rev: document.rev };\n}\n\n/** Publishes each managed session's durable task graph and follows direct session commits. */\nexport function createTasksChannel(options: TasksChannelOptions = {}): DoomHubChannel {\n return {\n frameType: TASKS_CHANNEL_TYPE,\n start(host) {\n const stores = new Map<string, { store: TaskStoreSource; unsubscribe: () => void; latest?: TaskDocument }>();\n const open = (scope: DoomHubSessionScope): void => {\n if (stores.has(scope.sessionId)) return;\n let store = options.storeFor?.(scope);\n if (store === undefined) {\n if (scope.environment === undefined)\n throw new Error(`Task channel requires an admitted environment for session '${scope.sessionId}'.`);\n store = new TaskStore({\n cwd: scope.cwd,\n env: scope.environment,\n storePath: resolveStorePath(scope.cwd, scope.environment, scope.sessionId),\n });\n }\n store.read();\n const source = { store, unsubscribe: () => undefined as void };\n stores.set(scope.sessionId, source);\n source.unsubscribe = host.directEvents.subscribe(\n TASKS_CHANNEL_TYPE,\n scope.sessionId,\n (payload) => {\n if (!isTaskDocument(payload)) return;\n const current = stores.get(scope.sessionId);\n if (current === undefined) return;\n current.latest = payload;\n host.publish(scope.sessionId, present(payload));\n },\n { replayLatest: true },\n );\n };\n const close = (sessionId: string): void => {\n const source = stores.get(sessionId);\n if (!source) return;\n source.unsubscribe();\n source.store.dispose();\n stores.delete(sessionId);\n };\n for (const scope of host.sessions()) open(scope);\n\n const source: DoomHubChannelSource = {\n payloadFor(scope) {\n open(scope);\n const source = stores.get(scope.sessionId);\n const document = source?.latest ?? source?.store.snapshot;\n return document === undefined ? undefined : present(document);\n },\n sessionAdded: open,\n sessionRemoved: close,\n close() {\n for (const sessionId of stores.keys()) close(sessionId);\n },\n };\n return source;\n },\n };\n}\n\nexport default createTasksChannel;\n"],"mappings":";;;;AAaA,SAAS,eAAe,OAAuC;CAC7D,OACE,OAAO,UAAU,YACjB,UAAU,QACV,OAAQ,MAAuB,QAAQ,YACvC,MAAM,QAAS,MAAuB,KAAK;AAE/C;AAOA,SAAS,QAAQ,UAAyC;CAqBxD,OAAO;EAAE,OApBgB,SAAS,MAAM,SAAS,SAAS;GACxD,IAAI,KAAK,WAAW,WAAW,OAAO,CAAC;GACvC,MAAM,OAAgB;IACpB,IAAI,KAAK;IACT,SAAS,KAAK;IACd,QAAQ,KAAK;IACb,WAAW,KAAK,aAAa,CAAC;GAChC;GACA,IAAI,KAAK,aAAa,KAAK,cAAc,KAAK;GAC9C,IAAI,KAAK,YAAY,KAAK,aAAa,KAAK;GAC5C,IAAI,KAAK,OAAO,KAAK,QAAQ,KAAK;GAClC,IAAI,KAAK,WAAW,KAAK,YAAY,KAAK;GAC1C,IAAI,KAAK,YACP,KAAK,aAAa;IAChB,GAAI,KAAK,WAAW,UAAU,KAAA,IAAY,CAAC,IAAI,EAAE,OAAO,KAAK,WAAW,MAAM;IAC9E,GAAI,KAAK,WAAW,UAAU,KAAA,IAAY,CAAC,IAAI,EAAE,OAAO,KAAK,WAAW,MAAM;GAChF;GAEF,OAAO,CAAC,IAAI;EACd,CACa;EAAG,KAAK,SAAS;CAAI;AACpC;;AAGA,SAAgB,mBAAmB,UAA+B,CAAC,GAAmB;CACpF,OAAO;EACL,WAAW;EACX,MAAM,MAAM;GACV,MAAM,yBAAS,IAAI,IAAwF;GAC3G,MAAM,QAAQ,UAAqC;IACjD,IAAI,OAAO,IAAI,MAAM,SAAS,GAAG;IACjC,IAAI,QAAQ,QAAQ,WAAW,KAAK;IACpC,IAAI,UAAU,KAAA,GAAW;KACvB,IAAI,MAAM,gBAAgB,KAAA,GACxB,MAAM,IAAI,MAAM,8DAA8D,MAAM,UAAU,GAAG;KACnG,QAAQ,IAAI,UAAU;MACpB,KAAK,MAAM;MACX,KAAK,MAAM;MACX,WAAW,iBAAiB,MAAM,KAAK,MAAM,aAAa,MAAM,SAAS;KAC3E,CAAC;IACH;IACA,MAAM,KAAK;IACX,MAAM,SAAS;KAAE;KAAO,mBAAmB,KAAA;IAAkB;IAC7D,OAAO,IAAI,MAAM,WAAW,MAAM;IAClC,OAAO,cAAc,KAAK,aAAa,UACrC,oBACA,MAAM,YACL,YAAY;KACX,IAAI,CAAC,eAAe,OAAO,GAAG;KAC9B,MAAM,UAAU,OAAO,IAAI,MAAM,SAAS;KAC1C,IAAI,YAAY,KAAA,GAAW;KAC3B,QAAQ,SAAS;KACjB,KAAK,QAAQ,MAAM,WAAW,QAAQ,OAAO,CAAC;IAChD,GACA,EAAE,cAAc,KAAK,CACvB;GACF;GACA,MAAM,SAAS,cAA4B;IACzC,MAAM,SAAS,OAAO,IAAI,SAAS;IACnC,IAAI,CAAC,QAAQ;IACb,OAAO,YAAY;IACnB,OAAO,MAAM,QAAQ;IACrB,OAAO,OAAO,SAAS;GACzB;GACA,KAAK,MAAM,SAAS,KAAK,SAAS,GAAG,KAAK,KAAK;GAe/C,OAAO;IAZL,WAAW,OAAO;KAChB,KAAK,KAAK;KACV,MAAM,SAAS,OAAO,IAAI,MAAM,SAAS;KACzC,MAAM,WAAW,QAAQ,UAAU,QAAQ,MAAM;KACjD,OAAO,aAAa,KAAA,IAAY,KAAA,IAAY,QAAQ,QAAQ;IAC9D;IACA,cAAc;IACd,gBAAgB;IAChB,QAAQ;KACN,KAAK,MAAM,aAAa,OAAO,KAAK,GAAG,MAAM,SAAS;IACxD;GAEU;EACd;CACF;AACF"}
@@ -1,7 +0,0 @@
1
- const require_task_graph = require("./_lib/task-graph.cjs");
2
- //#region src/extensions/(backend)/channel/task-graph.server.ts
3
- var task_graph_server_default = (0, require("@agimon-ai/doompi-core/extension-file").defineChannel)(require_task_graph.createTasksChannel);
4
- //#endregion
5
- exports.default = task_graph_server_default;
6
-
7
- //# sourceMappingURL=task-graph.server.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-graph.server.cjs","names":["defineChannel","contribution"],"sources":["../../../../../src/extensions/(backend)/channel/task-graph.server.ts"],"sourcesContent":["import { defineChannel } from '@agimon-ai/doompi-core/extension-file';\n\nimport contribution from './_lib/task-graph';\n\nexport default defineChannel(contribution);\n"],"mappings":";;AAIA,IAAA,6BAAA,kDAAeA,CAAAA,CAAAA,cAAAA,CAAcC,mBAAAA,kBAAY"}
@@ -1,8 +0,0 @@
1
- import { createTasksChannel } from "./_lib/task-graph.mjs";
2
- import { defineChannel } from "@agimon-ai/doompi-core/extension-file";
3
- //#region src/extensions/(backend)/channel/task-graph.server.ts
4
- var task_graph_server_default = defineChannel(createTasksChannel);
5
- //#endregion
6
- export { task_graph_server_default as default };
7
-
8
- //# sourceMappingURL=task-graph.server.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-graph.server.mjs","names":["contribution"],"sources":["../../../../../src/extensions/(backend)/channel/task-graph.server.ts"],"sourcesContent":["import { defineChannel } from '@agimon-ai/doompi-core/extension-file';\n\nimport contribution from './_lib/task-graph';\n\nexport default defineChannel(contribution);\n"],"mappings":";;;AAIA,IAAA,4BAAe,cAAcA,kBAAY"}
@@ -1,317 +0,0 @@
1
- const require_index = require("../../../../../services/config/index.cjs");
2
- const require_telemetry = require("../../../../../types/telemetry.cjs");
3
- const require_index$1 = require("../../../../../services/delegation/index.cjs");
4
- const require_task = require("../../../../../constants/task.cjs");
5
- require("../../../../../schemas/task.cjs");
6
- const require_index$2 = require("../../../../../services/contextContribution/index.cjs");
7
- const require_index$3 = require("../../../../../services/delegationPlatform/index.cjs");
8
- const require_index$4 = require("../../../../../services/logSinkTelemetry/index.cjs");
9
- const require_index$5 = require("../../../../../services/paths/index.cjs");
10
- const require_index$6 = require("../../../../../services/taskNarration/index.cjs");
11
- const require_index$7 = require("../../../../../services/taskStore/index.cjs");
12
- let _agimon_ai_doompi_core_extension_file = require("@agimon-ai/doompi-core/extension-file");
13
- let _agimon_ai_doompi_core_delegation = require("@agimon-ai/doompi-core/delegation");
14
- let _agimon_ai_doompi_core_background_work = require("@agimon-ai/doompi-core/background-work");
15
- let _agimon_ai_doompi_core_context_contributions = require("@agimon-ai/doompi-core/context-contributions");
16
- let _agimon_ai_doompi_core_narration = require("@agimon-ai/doompi-core/narration");
17
- let _agimon_ai_doompi_core_readiness = require("@agimon-ai/doompi-core/readiness");
18
- let _agimon_ai_doompi_core_ui_hub = require("@agimon-ai/doompi-core/ui-hub");
19
- //#region src/extensions/workspaces/sessions/(backend)/_lib/root.cli.ts
20
- const LEADER_SOURCE = require_index$2.TASK_CONTEXT_CONTRIBUTION_SOURCE;
21
- const NARRATION_FAILED_EVENT = "doom_task.narration_failed";
22
- /** Between doom-plan's 60 and the core help group's 70, so `t` sits after `p`. */
23
- const LEADER_GROUP_ORDER = 65;
24
- const ERROR_TYPE_ATTRIBUTE = "error.type";
25
- /**
26
- * Which part of session start ran. The telemetry sanitizer drops free text, so
27
- * the failing branch has to travel as a stable low-cardinality token.
28
- */
29
- const SESSION_START_STAGE_ATTRIBUTE = "task.stage";
30
- const SESSION_START_STAGE = {
31
- sessionId: "session_id",
32
- storeCleanup: "store_cleanup",
33
- storeSweep: "store_sweep",
34
- storeRead: "store_read",
35
- reconcile: "reconcile",
36
- refresh: "refresh"
37
- };
38
- /**
39
- * Mirror of the telemetry sink's own `error.type` token. The sink overwrites it
40
- * for any defined error, so this only guarantees the attribute exists when the
41
- * thrown value is `undefined`.
42
- */
43
- function errorTypeToken(error) {
44
- if (error instanceof Error) return error.name || "Error";
45
- if (typeof error === "string") return "StringError";
46
- if (error && typeof error === "object") return "ObjectError";
47
- return "UnknownError";
48
- }
49
- /** Install Task state and external resources into its host-owned Cordis plugin fiber. */
50
- const createTaskRootExtension = (presentation) => ({ context: cordis, pi, signal: pluginSignal }) => {
51
- const errorReporter = require_index$4.createTaskErrorReporter();
52
- const report = require_index$4.toFailureReporter(errorReporter);
53
- let active = true;
54
- let sessionGeneration = 0;
55
- let narrationService;
56
- let store;
57
- let delegation;
58
- let overlay;
59
- let unwatch;
60
- let backgroundWork;
61
- let disposeLeader;
62
- let sessionId;
63
- let sessionInitialization;
64
- const reportNarrationFailure = (error) => {
65
- errorReporter.recordWarning(NARRATION_FAILED_EVENT, error).catch((telemetryError) => {
66
- process.emitWarning(`Doom-task could not record a narration failure: ${String(telemetryError)}`);
67
- });
68
- };
69
- const narrationSink = { narrate(text) {
70
- const service = narrationService;
71
- const request = (0, _agimon_ai_doompi_core_narration.createNarrationRequest)(text);
72
- if (!service || !request) return;
73
- try {
74
- Promise.resolve(service.request(request)).catch(reportNarrationFailure);
75
- } catch (error) {
76
- reportNarrationFailure(error);
77
- }
78
- } };
79
- const waitForSessionReadiness = async (context, signal) => {
80
- signal?.throwIfAborted();
81
- const current = sessionInitialization;
82
- if (!current) throw new Error("doom-task session initialization has not started");
83
- if (current.sessionManager !== context.sessionManager) throw new Error("doom-task readiness belongs to a stale Pi session");
84
- await current.operation;
85
- signal?.throwIfAborted();
86
- if (!active || pluginSignal.aborted || current !== sessionInitialization || !sessionId) throw new Error("doom-task readiness belongs to a stale extension generation");
87
- };
88
- const clearSessionResources = () => {
89
- unwatch?.();
90
- unwatch = void 0;
91
- delegation?.reset();
92
- overlay?.dispose();
93
- sessionId = void 0;
94
- };
95
- const taskStore = new require_index$7.TaskStore({
96
- report,
97
- onCommitted: (previous, committed) => require_index$6.narrateTaskCommit(narrationSink, previous, committed)
98
- });
99
- store = taskStore;
100
- const refresh = () => {
101
- if (!active || pluginSignal.aborted) return;
102
- overlay?.update();
103
- backgroundWork?.update();
104
- };
105
- const delegationManager = new require_index$1.DelegationManager({
106
- store: taskStore,
107
- cwd: process.cwd(),
108
- platform: require_index$3.createNodeDelegationPlatform(),
109
- notify: (message, options) => pi.sendMessage(message, options),
110
- getSessionId: () => sessionId,
111
- onChange: refresh,
112
- runTimeoutMs: require_index.getDelegationTimeoutMs(),
113
- report,
114
- onNotifyError: (error, taskId) => {
115
- errorReporter.recordNotificationError(error, taskId);
116
- }
117
- });
118
- delegation = delegationManager;
119
- const taskOverlay = presentation.createOverlay({
120
- getTasks: () => taskStore.snapshot.tasks,
121
- delegation: delegationManager
122
- });
123
- overlay = taskOverlay;
124
- const toolDependencies = {
125
- store: taskStore,
126
- delegation: delegationManager,
127
- maxTasks: require_index.getMaxTasks(),
128
- onChange: refresh,
129
- report,
130
- waitUntilReady: waitForSessionReadiness
131
- };
132
- const sessionStart = async (_event, ctx) => {
133
- if (!active || pluginSignal.aborted) return;
134
- const ownGeneration = ++sessionGeneration;
135
- if (sessionId !== void 0) clearSessionResources();
136
- const context = ctx;
137
- const initialize = async (signal) => {
138
- const isCurrent = () => !signal?.aborted && active && !pluginSignal.aborted && ownGeneration === sessionGeneration;
139
- let stage = SESSION_START_STAGE.sessionId;
140
- /**
141
- * Run a stage whose failure only degrades task visibility. The session
142
- * still starts, and the warning keeps the degraded state from being silent.
143
- */
144
- const degrade = async (next, operation) => {
145
- stage = next;
146
- try {
147
- await operation();
148
- } catch (error) {
149
- report.warn(require_telemetry.TASK_EVENT.sessionStartDegraded, error, {
150
- [SESSION_START_STAGE_ATTRIBUTE]: next,
151
- [ERROR_TYPE_ATTRIBUTE]: errorTypeToken(error)
152
- });
153
- }
154
- };
155
- try {
156
- const currentSessionId = context.sessionManager?.getSessionId();
157
- if (!currentSessionId) throw new Error("doom-task requires a session id");
158
- sessionId = currentSessionId;
159
- taskStore.configureSession(require_index$5.resolveSessionKey(currentSessionId));
160
- stage = SESSION_START_STAGE.storeCleanup;
161
- const cleanup = await require_index$5.removeLegacyStoreDirectoryAsync(taskStore.storePath);
162
- if (!isCurrent()) return;
163
- stage = SESSION_START_STAGE.storeSweep;
164
- const sweep = require_index$5.hasStorePathOverride() ? {
165
- removed: [],
166
- errors: []
167
- } : await require_index$5.sweepStoreFilesAsync(taskStore.storePath, require_index.getStoreTtlMs());
168
- if (!isCurrent()) return;
169
- const storeErrors = [...cleanup.errors, ...sweep.errors];
170
- for (const failure of storeErrors) report.warn(require_telemetry.TASK_EVENT.storeSweepFailed, new Error(failure));
171
- if (storeErrors.length > 0 && context.hasUI) context.ui.notify(storeErrors.join("\n"), "warning");
172
- if (context.hasUI) taskOverlay.setUICtx(context.ui);
173
- await degrade(SESSION_START_STAGE.storeRead, async () => {
174
- await taskStore.readAsync(isCurrent);
175
- });
176
- if (!isCurrent()) return;
177
- unwatch = taskStore.onExternalChange(refresh);
178
- await degrade(SESSION_START_STAGE.reconcile, async () => {
179
- await delegationManager.reconcile(isCurrent);
180
- });
181
- if (!isCurrent()) return;
182
- stage = SESSION_START_STAGE.refresh;
183
- refresh();
184
- } catch (error) {
185
- if (!isCurrent()) return;
186
- clearSessionResources();
187
- report.error(require_telemetry.TASK_EVENT.sessionStartFailed, error, {
188
- [SESSION_START_STAGE_ATTRIBUTE]: stage,
189
- [ERROR_TYPE_ATTRIBUTE]: errorTypeToken(error)
190
- });
191
- throw error;
192
- }
193
- };
194
- const coordinator = (0, _agimon_ai_doompi_core_readiness.readDoomReadinessCoordinator)(cordis);
195
- if (!coordinator) {
196
- const operation = initialize();
197
- sessionInitialization = {
198
- sessionManager: ctx.sessionManager,
199
- operation
200
- };
201
- return operation;
202
- }
203
- const previous = sessionInitialization?.operation;
204
- const operation = (async () => {
205
- if (previous) await Promise.allSettled([previous]);
206
- if (!active || pluginSignal.aborted || ownGeneration !== sessionGeneration) return;
207
- await coordinator.start(LEADER_SOURCE, `${ctx.sessionManager.getSessionId()}:${ownGeneration}`, async (signal) => {
208
- await initialize(signal);
209
- return { value: void 0 };
210
- }).wait();
211
- })();
212
- sessionInitialization = {
213
- sessionManager: ctx.sessionManager,
214
- operation
215
- };
216
- Promise.allSettled([operation]);
217
- };
218
- const toolExecutionEnd = (event) => {
219
- if (active && !pluginSignal.aborted && event.toolName === "task") refresh();
220
- };
221
- const dispose = async () => {
222
- if (!active) return;
223
- active = false;
224
- sessionGeneration += 1;
225
- const pendingInitialization = sessionInitialization?.operation;
226
- sessionInitialization = void 0;
227
- try {
228
- if (pendingInitialization) await Promise.allSettled([pendingInitialization]);
229
- clearSessionResources();
230
- delegation?.dispose();
231
- disposeLeader?.();
232
- disposeLeader = void 0;
233
- store?.dispose();
234
- } finally {
235
- await errorReporter.shutdown();
236
- }
237
- };
238
- return {
239
- value: {
240
- taskStore,
241
- delegationManager,
242
- taskOverlay,
243
- toolDependencies,
244
- waitForSessionReadiness,
245
- refresh,
246
- sessionStart,
247
- toolExecutionEnd,
248
- isActive: () => active && !pluginSignal.aborted
249
- },
250
- services: [(cordis) => {
251
- cordis.inject([_agimon_ai_doompi_core_narration.DOOM_NARRATION_SERVICE], (serviceContext) => {
252
- const service = (0, _agimon_ai_doompi_core_narration.requireDoomNarrationService)(serviceContext);
253
- narrationService = service;
254
- return () => {
255
- if (narrationService === service) narrationService = void 0;
256
- };
257
- });
258
- cordis.inject([_agimon_ai_doompi_core_context_contributions.DOOM_CONTEXT_CONTRIBUTIONS_SERVICE], (contextContributionsContext) => {
259
- const registration = (0, _agimon_ai_doompi_core_context_contributions.requireDoomContextContributions)(contextContributionsContext).register(require_index$2.createTaskContextContribution(() => taskStore.snapshot.tasks));
260
- return () => registration.dispose();
261
- });
262
- cordis.inject([_agimon_ai_doompi_core_delegation.DOOM_DELEGATION_SERVICE], (serviceContext) => {
263
- const service = (0, _agimon_ai_doompi_core_delegation.readDoomDelegationService)(serviceContext);
264
- if (!service) return void 0;
265
- return delegationManager.bind(serviceContext, service);
266
- });
267
- cordis.inject([_agimon_ai_doompi_core_background_work.DOOM_BACKGROUND_WORK_SERVICE], (serviceContext) => {
268
- const service = (0, _agimon_ai_doompi_core_background_work.readDoomBackgroundWorkService)(serviceContext);
269
- if (!service) return void 0;
270
- const handle = service.register({
271
- provider: require_index$1.BACKGROUND_WORK_PROVIDER,
272
- listActiveWork: () => delegationManager.listActiveWork()
273
- });
274
- backgroundWork = handle;
275
- return () => {
276
- handle.dispose();
277
- if (backgroundWork === handle) backgroundWork = void 0;
278
- };
279
- });
280
- cordis.inject([_agimon_ai_doompi_core_ui_hub.DOOM_UI_HUB_SERVICE], (uiContext) => {
281
- const contribution = (0, _agimon_ai_doompi_core_ui_hub.requireDoomUiHub)(uiContext).registerLeader({
282
- source: LEADER_SOURCE,
283
- bindings: [{
284
- id: "tasks.open",
285
- path: [{
286
- key: "t",
287
- label: "tasks",
288
- detail: "session task list",
289
- order: LEADER_GROUP_ORDER
290
- }, {
291
- key: "l",
292
- label: "list",
293
- detail: "tasks in this session"
294
- }],
295
- command: { name: require_task.COMMAND_NAME }
296
- }]
297
- });
298
- const dispose = () => contribution.dispose();
299
- disposeLeader = dispose;
300
- return () => {
301
- dispose();
302
- if (disposeLeader === dispose) disposeLeader = void 0;
303
- };
304
- });
305
- }],
306
- onStop: dispose,
307
- onDispose: dispose,
308
- onStart() {
309
- presentation.registerCollapseShortcut(pi, taskOverlay, waitForSessionReadiness, () => active && !pluginSignal.aborted);
310
- }
311
- };
312
- };
313
- const createTaskRoot = (presentation) => (0, _agimon_ai_doompi_core_extension_file.defineRoot)(createTaskRootExtension(presentation));
314
- //#endregion
315
- exports.createTaskRoot = createTaskRoot;
316
-
317
- //# sourceMappingURL=root.cli.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"root.cli.cjs","names":["TASK_CONTEXT_CONTRIBUTION_SOURCE","createTaskErrorReporter","toFailureReporter","createNarrationRequest","TaskStore","narrateTaskCommit","DelegationManager","createNodeDelegationPlatform","getDelegationTimeoutMs","getMaxTasks","TASK_EVENT","resolveSessionKey","removeLegacyStoreDirectoryAsync","hasStorePathOverride","sweepStoreFilesAsync","getStoreTtlMs","readDoomReadinessCoordinator","DOOM_NARRATION_SERVICE","requireDoomNarrationService","DOOM_CONTEXT_CONTRIBUTIONS_SERVICE","requireDoomContextContributions","createTaskContextContribution","DOOM_DELEGATION_SERVICE","readDoomDelegationService","DOOM_BACKGROUND_WORK_SERVICE","readDoomBackgroundWorkService","BACKGROUND_WORK_PROVIDER","DOOM_UI_HUB_SERVICE","requireDoomUiHub","COMMAND_NAME","defineRoot"],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/_lib/root.cli.ts"],"sourcesContent":["import {\n DOOM_BACKGROUND_WORK_SERVICE,\n type BackgroundWorkProviderHandle,\n readDoomBackgroundWorkService,\n} from '@agimon-ai/doompi-core/background-work';\nimport {\n DOOM_CONTEXT_CONTRIBUTIONS_SERVICE,\n requireDoomContextContributions,\n} from '@agimon-ai/doompi-core/context-contributions';\nimport { DOOM_DELEGATION_SERVICE, readDoomDelegationService } from '@agimon-ai/doompi-core/delegation';\nimport { defineRoot } from '@agimon-ai/doompi-core/extension-file';\nimport {\n createNarrationRequest,\n DOOM_NARRATION_SERVICE,\n type DoomNarrationService,\n requireDoomNarrationService,\n} from '@agimon-ai/doompi-core/narration';\nimport type { PiPluginContext } from '@agimon-ai/doompi-core/pi-extension';\nimport { readDoomReadinessCoordinator } from '@agimon-ai/doompi-core/readiness';\nimport { DOOM_UI_HUB_SERVICE, requireDoomUiHub } from '@agimon-ai/doompi-core/ui-hub';\nimport type { Context } from '@deepseek-ai/cordis';\nimport type { ExtensionAPI, ExtensionContext, ExtensionUIContext } from '@earendil-works/pi-coding-agent';\n\nimport type { Task } from '../../../../../models/task';\nimport { COMMAND_NAME, TOOL_NAME } from '../../../../../schemas/task';\nimport { getDelegationTimeoutMs, getMaxTasks, getStoreTtlMs } from '../../../../../services/config';\nimport {\n createTaskContextContribution,\n TASK_CONTEXT_CONTRIBUTION_SOURCE,\n} from '../../../../../services/contextContribution';\nimport { BACKGROUND_WORK_PROVIDER, DelegationManager } from '../../../../../services/delegation';\nimport { createNodeDelegationPlatform } from '../../../../../services/delegationPlatform';\nimport { createTaskErrorReporter, TASK_EVENT, toFailureReporter } from '../../../../../services/logSinkTelemetry';\nimport {\n hasStorePathOverride,\n removeLegacyStoreDirectoryAsync,\n resolveSessionKey,\n sweepStoreFilesAsync,\n} from '../../../../../services/paths';\nimport { narrateTaskCommit, type TaskNarrationSink } from '../../../../../services/taskNarration';\nimport { TaskStore } from '../../../../../services/taskStore';\nimport type { TaskToolDependencies } from '../tool/_lib/task.cli';\n\nexport interface TaskOverlayContract {\n setUICtx(context: ExtensionUIContext): void;\n update(): void;\n dispose(): void;\n toggleCollapse(): void;\n isRegistered(): boolean;\n}\n\nexport interface TaskRootPresentation {\n createOverlay(options: { getTasks: () => readonly Task[]; delegation: DelegationManager }): TaskOverlayContract;\n registerCollapseShortcut(\n pi: Pick<ExtensionAPI, 'registerShortcut'>,\n overlay: TaskOverlayContract,\n waitUntilReady: (context: ExtensionContext) => Promise<void>,\n isActive: () => boolean,\n ): void;\n}\n\ninterface SessionContextLike {\n hasUI: boolean;\n ui: ExtensionUIContext;\n sessionManager?: { getSessionId(): string };\n}\n\nconst LEADER_SOURCE = TASK_CONTEXT_CONTRIBUTION_SOURCE;\nconst NARRATION_FAILED_EVENT = 'doom_task.narration_failed';\n/** Between doom-plan's 60 and the core help group's 70, so `t` sits after `p`. */\nconst LEADER_GROUP_ORDER = 65;\nconst ERROR_TYPE_ATTRIBUTE = 'error.type';\n/**\n * Which part of session start ran. The telemetry sanitizer drops free text, so\n * the failing branch has to travel as a stable low-cardinality token.\n */\nconst SESSION_START_STAGE_ATTRIBUTE = 'task.stage';\nconst SESSION_START_STAGE = {\n sessionId: 'session_id',\n storeCleanup: 'store_cleanup',\n storeSweep: 'store_sweep',\n storeRead: 'store_read',\n reconcile: 'reconcile',\n refresh: 'refresh',\n} as const;\ntype SessionStartStage = (typeof SESSION_START_STAGE)[keyof typeof SESSION_START_STAGE];\n\n/**\n * Mirror of the telemetry sink's own `error.type` token. The sink overwrites it\n * for any defined error, so this only guarantees the attribute exists when the\n * thrown value is `undefined`.\n */\nfunction errorTypeToken(error: unknown): string {\n if (error instanceof Error) return error.name || 'Error';\n if (typeof error === 'string') return 'StringError';\n if (error && typeof error === 'object') return 'ObjectError';\n return 'UnknownError';\n}\n/** Install Task state and external resources into its host-owned Cordis plugin fiber. */\nconst createTaskRootExtension =\n (presentation: TaskRootPresentation) =>\n ({ context: cordis, pi, signal: pluginSignal }: PiPluginContext) => {\n const errorReporter = createTaskErrorReporter();\n const report = toFailureReporter(errorReporter);\n let active = true;\n let sessionGeneration = 0;\n let narrationService: DoomNarrationService | undefined;\n let store: TaskStore | undefined;\n let delegation: DelegationManager | undefined;\n let overlay: TaskOverlayContract | undefined;\n let unwatch: (() => void) | undefined;\n let backgroundWork: BackgroundWorkProviderHandle | undefined;\n let disposeLeader: (() => void) | undefined;\n let sessionId: string | undefined;\n let sessionInitialization:\n | {\n readonly sessionManager: object;\n readonly operation: Promise<void>;\n }\n | undefined;\n\n const reportNarrationFailure = (error: unknown): void => {\n void errorReporter.recordWarning(NARRATION_FAILED_EVENT, error).catch((telemetryError: unknown) => {\n process.emitWarning(`Doom-task could not record a narration failure: ${String(telemetryError)}`);\n });\n };\n const narrationSink: TaskNarrationSink = {\n narrate(text) {\n const service = narrationService;\n const request = createNarrationRequest(text);\n if (!service || !request) return;\n try {\n void Promise.resolve(service.request(request)).catch(reportNarrationFailure);\n } catch (error) {\n reportNarrationFailure(error);\n }\n },\n };\n\n const waitForSessionReadiness = async (\n context: { readonly sessionManager: object },\n signal?: AbortSignal,\n ): Promise<void> => {\n signal?.throwIfAborted();\n const current = sessionInitialization;\n if (!current) throw new Error('doom-task session initialization has not started');\n if (current.sessionManager !== context.sessionManager) {\n throw new Error('doom-task readiness belongs to a stale Pi session');\n }\n await current.operation;\n signal?.throwIfAborted();\n if (!active || pluginSignal.aborted || current !== sessionInitialization || !sessionId) {\n throw new Error('doom-task readiness belongs to a stale extension generation');\n }\n };\n\n const clearSessionResources = (): void => {\n unwatch?.();\n unwatch = undefined;\n delegation?.reset();\n overlay?.dispose();\n sessionId = undefined;\n };\n\n const taskStore = new TaskStore({\n report,\n onCommitted: (previous, committed) => narrateTaskCommit(narrationSink, previous, committed),\n });\n store = taskStore;\n\n const refresh = (): void => {\n if (!active || pluginSignal.aborted) return;\n overlay?.update();\n backgroundWork?.update();\n };\n\n const delegationManager = new DelegationManager({\n store: taskStore,\n cwd: process.cwd(),\n platform: createNodeDelegationPlatform(),\n notify: (message, options) => pi.sendMessage(message, options),\n getSessionId: () => sessionId,\n onChange: refresh,\n runTimeoutMs: getDelegationTimeoutMs(),\n report,\n onNotifyError: (error, taskId) => {\n void errorReporter.recordNotificationError(error, taskId);\n },\n });\n delegation = delegationManager;\n\n const taskOverlay = presentation.createOverlay({\n getTasks: () => taskStore.snapshot.tasks,\n delegation: delegationManager,\n });\n overlay = taskOverlay;\n\n const toolDependencies: TaskToolDependencies = {\n store: taskStore,\n delegation: delegationManager,\n maxTasks: getMaxTasks(),\n onChange: refresh,\n report,\n waitUntilReady: waitForSessionReadiness,\n };\n\n const sessionStart = async (_event: unknown, ctx: ExtensionContext) => {\n if (!active || pluginSignal.aborted) return;\n const ownGeneration = ++sessionGeneration;\n if (sessionId !== undefined) clearSessionResources();\n const context = ctx as unknown as SessionContextLike;\n const initialize = async (signal?: AbortSignal): Promise<void> => {\n const isCurrent = (): boolean =>\n !signal?.aborted && active && !pluginSignal.aborted && ownGeneration === sessionGeneration;\n let stage: SessionStartStage = SESSION_START_STAGE.sessionId;\n /**\n * Run a stage whose failure only degrades task visibility. The session\n * still starts, and the warning keeps the degraded state from being silent.\n */\n const degrade = async (next: SessionStartStage, operation: () => Promise<void>): Promise<void> => {\n stage = next;\n try {\n await operation();\n } catch (error) {\n report.warn(TASK_EVENT.sessionStartDegraded, error, {\n [SESSION_START_STAGE_ATTRIBUTE]: next,\n [ERROR_TYPE_ATTRIBUTE]: errorTypeToken(error),\n });\n }\n };\n try {\n const currentSessionId = context.sessionManager?.getSessionId();\n if (!currentSessionId) throw new Error('doom-task requires a session id');\n sessionId = currentSessionId;\n taskStore.configureSession(resolveSessionKey(currentSessionId));\n stage = SESSION_START_STAGE.storeCleanup;\n const cleanup = await removeLegacyStoreDirectoryAsync(taskStore.storePath);\n if (!isCurrent()) return;\n stage = SESSION_START_STAGE.storeSweep;\n const sweep = hasStorePathOverride()\n ? { removed: [], errors: [] }\n : await sweepStoreFilesAsync(taskStore.storePath, getStoreTtlMs());\n if (!isCurrent()) return;\n const storeErrors = [...cleanup.errors, ...sweep.errors];\n for (const failure of storeErrors) report.warn(TASK_EVENT.storeSweepFailed, new Error(failure));\n if (storeErrors.length > 0 && context.hasUI) context.ui.notify(storeErrors.join('\\n'), 'warning');\n if (context.hasUI) taskOverlay.setUICtx(context.ui);\n await degrade(SESSION_START_STAGE.storeRead, async () => {\n await taskStore.readAsync(isCurrent);\n });\n if (!isCurrent()) return;\n unwatch = taskStore.onExternalChange(refresh);\n await degrade(SESSION_START_STAGE.reconcile, async () => {\n await delegationManager.reconcile(isCurrent);\n });\n if (!isCurrent()) return;\n stage = SESSION_START_STAGE.refresh;\n refresh();\n } catch (error) {\n if (!isCurrent()) return;\n clearSessionResources();\n report.error(TASK_EVENT.sessionStartFailed, error, {\n [SESSION_START_STAGE_ATTRIBUTE]: stage,\n [ERROR_TYPE_ATTRIBUTE]: errorTypeToken(error),\n });\n throw error;\n }\n };\n\n const coordinator = readDoomReadinessCoordinator(cordis);\n if (!coordinator) {\n const operation = initialize();\n sessionInitialization = { sessionManager: ctx.sessionManager, operation };\n return operation;\n }\n\n const previous = sessionInitialization?.operation;\n const operation = (async (): Promise<void> => {\n if (previous) await Promise.allSettled([previous]);\n if (!active || pluginSignal.aborted || ownGeneration !== sessionGeneration) return;\n const handle = coordinator.start(\n LEADER_SOURCE,\n `${ctx.sessionManager.getSessionId()}:${ownGeneration}`,\n async (signal) => {\n await initialize(signal);\n return { value: undefined };\n },\n );\n await handle.wait();\n })();\n sessionInitialization = { sessionManager: ctx.sessionManager, operation };\n // Config's coordinator owns the single failure notification. This detached\n // observer only keeps a failed background generation from going unhandled.\n void Promise.allSettled([operation]);\n return undefined;\n };\n\n const toolExecutionEnd = (event: { toolName: string }) => {\n if (active && !pluginSignal.aborted && event.toolName === TOOL_NAME) refresh();\n };\n const dispose = async () => {\n if (!active) return;\n active = false;\n sessionGeneration += 1;\n const pendingInitialization = sessionInitialization?.operation;\n sessionInitialization = undefined;\n try {\n if (pendingInitialization) await Promise.allSettled([pendingInitialization]);\n clearSessionResources();\n delegation?.dispose();\n disposeLeader?.();\n disposeLeader = undefined;\n store?.dispose();\n } finally {\n await errorReporter.shutdown();\n }\n };\n return {\n value: {\n taskStore,\n delegationManager,\n taskOverlay,\n toolDependencies,\n waitForSessionReadiness,\n refresh,\n sessionStart,\n toolExecutionEnd,\n isActive: () => active && !pluginSignal.aborted,\n },\n services: [\n (cordis: Context) => {\n cordis.inject([DOOM_NARRATION_SERVICE], (serviceContext) => {\n const service = requireDoomNarrationService(serviceContext);\n narrationService = service;\n return () => {\n if (narrationService === service) narrationService = undefined;\n };\n });\n cordis.inject([DOOM_CONTEXT_CONTRIBUTIONS_SERVICE], (contextContributionsContext) => {\n const registration = requireDoomContextContributions(contextContributionsContext).register(\n createTaskContextContribution(() => taskStore.snapshot.tasks),\n );\n return () => registration.dispose();\n });\n cordis.inject([DOOM_DELEGATION_SERVICE], (serviceContext) => {\n const service = readDoomDelegationService(serviceContext);\n if (!service) return undefined;\n return delegationManager.bind(serviceContext, service);\n });\n cordis.inject([DOOM_BACKGROUND_WORK_SERVICE], (serviceContext) => {\n const service = readDoomBackgroundWorkService(serviceContext);\n if (!service) return undefined;\n const handle = service.register({\n provider: BACKGROUND_WORK_PROVIDER,\n listActiveWork: () => delegationManager.listActiveWork(),\n });\n backgroundWork = handle;\n return () => {\n handle.dispose();\n if (backgroundWork === handle) backgroundWork = undefined;\n };\n });\n cordis.inject([DOOM_UI_HUB_SERVICE], (uiContext) => {\n const contribution = requireDoomUiHub(uiContext).registerLeader({\n source: LEADER_SOURCE,\n bindings: [\n {\n id: 'tasks.open',\n path: [\n { key: 't', label: 'tasks', detail: 'session task list', order: LEADER_GROUP_ORDER },\n { key: 'l', label: 'list', detail: 'tasks in this session' },\n ],\n command: { name: COMMAND_NAME },\n },\n ],\n });\n const dispose = (): void => contribution.dispose();\n disposeLeader = dispose;\n return () => {\n dispose();\n if (disposeLeader === dispose) disposeLeader = undefined;\n };\n });\n },\n ],\n onStop: dispose,\n onDispose: dispose,\n onStart() {\n presentation.registerCollapseShortcut(\n pi,\n taskOverlay,\n waitForSessionReadiness,\n () => active && !pluginSignal.aborted,\n );\n },\n };\n };\nexport const createTaskRoot = (presentation: TaskRootPresentation) => defineRoot(createTaskRootExtension(presentation));\nexport type TaskPiScope = Awaited<ReturnType<ReturnType<typeof createTaskRoot>>>['value'];\n"],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- import { Task } from "../../../../../models/task.cjs";
2
- import { TaskStore } from "../../../../../services/taskStore/index.cjs";
3
- import { DelegationManager } from "../../../../../services/delegation/index.cjs";
4
- import { TaskToolDependencies } from "../tool/_lib/task.cli.cjs";
5
- import { PiPluginContext } from "@agimon-ai/doompi-core/pi-extension";
6
- import { ExtensionAPI, ExtensionContext, ExtensionUIContext } from "@earendil-works/pi-coding-agent";
7
- //#region src/extensions/workspaces/sessions/(backend)/_lib/root.cli.d.ts
8
- export interface TaskOverlayContract {
9
- setUICtx(context: ExtensionUIContext): void;
10
- update(): void;
11
- dispose(): void;
12
- toggleCollapse(): void;
13
- isRegistered(): boolean;
14
- }
15
- export interface TaskRootPresentation {
16
- createOverlay(options: {
17
- getTasks: () => readonly Task[];
18
- delegation: DelegationManager;
19
- }): TaskOverlayContract;
20
- registerCollapseShortcut(pi: Pick<ExtensionAPI, 'registerShortcut'>, overlay: TaskOverlayContract, waitUntilReady: (context: ExtensionContext) => Promise<void>, isActive: () => boolean): void;
21
- }
22
- export declare const createTaskRoot: (presentation: TaskRootPresentation) => import("@agimon-ai/doompi-core/extension-file").RootFile<{
23
- taskStore: TaskStore;
24
- delegationManager: DelegationManager;
25
- taskOverlay: TaskOverlayContract;
26
- toolDependencies: TaskToolDependencies;
27
- waitForSessionReadiness: (context: {
28
- readonly sessionManager: object;
29
- }, signal?: AbortSignal) => Promise<void>;
30
- refresh: () => void;
31
- sessionStart: (_event: unknown, ctx: ExtensionContext) => Promise<void>;
32
- toolExecutionEnd: (event: {
33
- toolName: string;
34
- }) => void;
35
- isActive: () => boolean;
36
- }, PiPluginContext<undefined>>;
37
- export type TaskPiScope = Awaited<ReturnType<ReturnType<typeof createTaskRoot>>>['value'];
38
- //#endregion
39
- //# sourceMappingURL=root.cli.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"root.cli.d.cts","names":[],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/_lib/root.cli.ts"],"mappings":";;;;;;;iBA2CiB;EACf,SAAS,SAAS;EAClB;EACA;EACA;EACA;;iBAGe;EACf,cAAc;IAAW,yBAAyB;IAAQ,YAAY;MAAsB;EAC5F,yBACE,IAAI,KAAK,mCACT,SAAS,qBACT,iBAAiB,SAAS,qBAAqB,eAC/C;;qBAoVS,iBAAc,cAAkB,yEAAoB;;;;;EAjQlD,0BAAA;aAAW;KAAwB,SACnC,gBACR;EA4BiB;EAoCgB,eAAA,iBAAO,KAAO,qBAAgB;EA2FjC,mBAAA;IAAE;;;GAoGgF;YAC3G,cAAc,QAAQ,WAAW,kBAAkB"}