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

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 (589) hide show
  1. package/README.md +12 -3
  2. package/dist/_virtual/_rolldown/runtime.cjs +23 -1
  3. package/dist/api-contracts.cjs +7 -1
  4. package/dist/api-contracts.d.cts +1 -1
  5. package/dist/api-contracts.d.mts +1 -1
  6. package/dist/api-contracts.mjs +2 -1
  7. package/dist/commands.cjs +4 -1
  8. package/dist/commands.d.cts +2 -2
  9. package/dist/commands.d.mts +2 -2
  10. package/dist/commands.mjs +2 -1
  11. package/dist/config.cjs +19 -1
  12. package/dist/config.d.cts +1 -1
  13. package/dist/config.d.mts +1 -1
  14. package/dist/config.mjs +2 -1
  15. package/dist/delegation-manager.cjs +10 -1
  16. package/dist/delegation-manager.d.cts +2 -2
  17. package/dist/delegation-manager.d.mts +2 -2
  18. package/dist/delegation-manager.mjs +3 -1
  19. package/dist/extensions/pi.cjs +49 -2
  20. package/dist/extensions/pi.cjs.map +1 -1
  21. package/dist/extensions/pi.d.cts +3 -4
  22. package/dist/extensions/pi.d.cts.map +1 -1
  23. package/dist/extensions/pi.d.mts +3 -4
  24. package/dist/extensions/pi.d.mts.map +1 -1
  25. package/dist/extensions/pi.mjs +44 -2
  26. package/dist/extensions/pi.mjs.map +1 -1
  27. package/dist/extensions/server.cjs +56 -1
  28. package/dist/extensions/server.cjs.map +1 -1
  29. package/dist/extensions/server.d.cts +3 -3
  30. package/dist/extensions/server.d.cts.map +1 -1
  31. package/dist/extensions/server.d.mts +3 -3
  32. package/dist/extensions/server.d.mts.map +1 -1
  33. package/dist/extensions/server.mjs +51 -1
  34. package/dist/extensions/server.mjs.map +1 -1
  35. package/dist/extensions/web.mjs +1013 -0
  36. package/dist/extensions/web.mjs.map +1 -0
  37. package/dist/index.cjs +106 -1
  38. package/dist/index.d.cts +15 -15
  39. package/dist/index.d.mts +15 -15
  40. package/dist/index.mjs +16 -1
  41. package/dist/logSinkTelemetry.cjs +6 -1
  42. package/dist/logSinkTelemetry.d.cts +2 -2
  43. package/dist/logSinkTelemetry.d.mts +2 -2
  44. package/dist/logSinkTelemetry.mjs +3 -1
  45. package/dist/src/constants/promptGuidelines.cjs +26 -0
  46. package/dist/src/constants/promptGuidelines.cjs.map +1 -0
  47. package/dist/src/constants/promptGuidelines.d.cts.map +1 -0
  48. package/dist/src/constants/promptGuidelines.d.mts.map +1 -0
  49. package/dist/src/constants/promptGuidelines.mjs +26 -0
  50. package/dist/src/constants/promptGuidelines.mjs.map +1 -0
  51. package/dist/src/constants/task.cjs +6 -0
  52. package/dist/src/constants/task.cjs.map +1 -0
  53. package/dist/src/constants/task.d.cts.map +1 -0
  54. package/dist/src/constants/task.d.mts.map +1 -0
  55. package/dist/src/constants/task.mjs +6 -0
  56. package/dist/src/constants/task.mjs.map +1 -0
  57. package/dist/src/extensions/(backend)/channel/_lib/task-graph.cjs +90 -0
  58. package/dist/src/extensions/(backend)/channel/_lib/task-graph.cjs.map +1 -0
  59. package/dist/src/extensions/(backend)/channel/_lib/task-graph.mjs +89 -0
  60. package/dist/src/extensions/(backend)/channel/_lib/task-graph.mjs.map +1 -0
  61. package/dist/src/extensions/(backend)/channel/task-graph.server.cjs +7 -0
  62. package/dist/src/extensions/(backend)/channel/task-graph.server.cjs.map +1 -0
  63. package/dist/src/extensions/(backend)/channel/task-graph.server.mjs +8 -0
  64. package/dist/src/extensions/(backend)/channel/task-graph.server.mjs.map +1 -0
  65. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.cjs +317 -0
  66. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.cjs.map +1 -0
  67. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.d.cts +39 -0
  68. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.d.cts.map +1 -0
  69. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.d.mts +39 -0
  70. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.d.mts.map +1 -0
  71. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.mjs +317 -0
  72. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.mjs.map +1 -0
  73. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.cjs +95 -0
  74. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.cjs.map +1 -0
  75. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.mjs +95 -0
  76. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.mjs.map +1 -0
  77. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.cjs +30 -0
  78. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.cjs.map +1 -0
  79. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.d.cts +20 -0
  80. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.d.cts.map +1 -0
  81. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.d.mts +20 -0
  82. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.d.mts.map +1 -0
  83. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.mjs +29 -0
  84. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.mjs.map +1 -0
  85. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.server.cjs +19 -0
  86. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.server.cjs.map +1 -0
  87. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.server.mjs +19 -0
  88. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.server.mjs.map +1 -0
  89. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.cli.cjs +8 -0
  90. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.cli.cjs.map +1 -0
  91. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.cli.mjs +9 -0
  92. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.cli.mjs.map +1 -0
  93. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.server.cjs +7 -0
  94. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.server.cjs.map +1 -0
  95. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.server.mjs +8 -0
  96. package/dist/src/extensions/workspaces/sessions/(backend)/command/tasks.server.mjs.map +1 -0
  97. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-compact.cli.cjs +6 -0
  98. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-compact.cli.cjs.map +1 -0
  99. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-compact.cli.mjs +6 -0
  100. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-compact.cli.mjs.map +1 -0
  101. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-start.cli.cjs +6 -0
  102. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-start.cli.cjs.map +1 -0
  103. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-start.cli.mjs +6 -0
  104. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-start.cli.mjs.map +1 -0
  105. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-tree.cli.cjs +6 -0
  106. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-tree.cli.cjs.map +1 -0
  107. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-tree.cli.mjs +6 -0
  108. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-tree.cli.mjs.map +1 -0
  109. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/tool-execution-end.cli.cjs +6 -0
  110. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/tool-execution-end.cli.cjs.map +1 -0
  111. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/tool-execution-end.cli.mjs +6 -0
  112. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/tool-execution-end.cli.mjs.map +1 -0
  113. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-compact.cli.cjs +7 -0
  114. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-compact.cli.cjs.map +1 -0
  115. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-compact.cli.mjs +8 -0
  116. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-compact.cli.mjs.map +1 -0
  117. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs +7 -0
  118. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs.map +1 -0
  119. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs +8 -0
  120. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs.map +1 -0
  121. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-tree.cli.cjs +7 -0
  122. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-tree.cli.cjs.map +1 -0
  123. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-tree.cli.mjs +8 -0
  124. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-tree.cli.mjs.map +1 -0
  125. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.cjs +7 -0
  126. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.cjs.map +1 -0
  127. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.mjs +8 -0
  128. package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.mjs.map +1 -0
  129. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/task-board.server.cjs +20 -0
  130. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/task-board.server.cjs.map +1 -0
  131. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/task-board.server.mjs +20 -0
  132. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/task-board.server.mjs.map +1 -0
  133. package/dist/src/extensions/workspaces/sessions/(backend)/resource/task-board.server.cjs +7 -0
  134. package/dist/src/extensions/workspaces/sessions/(backend)/resource/task-board.server.cjs.map +1 -0
  135. package/dist/src/extensions/workspaces/sessions/(backend)/resource/task-board.server.mjs +8 -0
  136. package/dist/src/extensions/workspaces/sessions/(backend)/resource/task-board.server.mjs.map +1 -0
  137. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs +11 -0
  138. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs.map +1 -0
  139. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs +12 -0
  140. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs.map +1 -0
  141. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs +7 -0
  142. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs.map +1 -0
  143. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs +8 -0
  144. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs.map +1 -0
  145. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.cjs +160 -0
  146. package/dist/{tools/task.cjs.map → src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.cjs.map} +1 -1
  147. package/dist/{tools/task.d.cts → src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.d.cts} +11 -8
  148. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.d.cts.map +1 -0
  149. package/dist/{tools/task.d.mts → src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.d.mts} +11 -8
  150. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.d.mts.map +1 -0
  151. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.mjs +157 -0
  152. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.cli.mjs.map +1 -0
  153. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.server.cjs +109 -0
  154. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.server.cjs.map +1 -0
  155. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.server.mjs +107 -0
  156. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/task.server.mjs.map +1 -0
  157. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.cli.cjs +7 -0
  158. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.cli.cjs.map +1 -0
  159. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.cli.mjs +8 -0
  160. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.cli.mjs.map +1 -0
  161. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.server.cjs +7 -0
  162. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.server.cjs.map +1 -0
  163. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.server.mjs +8 -0
  164. package/dist/src/extensions/workspaces/sessions/(backend)/tool/task.server.mjs.map +1 -0
  165. package/dist/src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.cjs +333 -0
  166. package/dist/src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.cjs.map +1 -0
  167. package/dist/{tui/format.d.mts → src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.d.cts} +5 -5
  168. package/dist/src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.d.cts.map +1 -0
  169. package/dist/{tui/format.d.cts → src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.d.mts} +5 -5
  170. package/dist/src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.d.mts.map +1 -0
  171. package/dist/src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.mjs +322 -0
  172. package/dist/src/extensions/workspaces/sessions/(frontend)/_shared/format.cli.mjs.map +1 -0
  173. package/dist/src/extensions/workspaces/sessions/(frontend)/message/doom-task-notify.cli.cjs +9 -0
  174. package/dist/src/extensions/workspaces/sessions/(frontend)/message/doom-task-notify.cli.cjs.map +1 -0
  175. package/dist/src/extensions/workspaces/sessions/(frontend)/message/doom-task-notify.cli.mjs +9 -0
  176. package/dist/src/extensions/workspaces/sessions/(frontend)/message/doom-task-notify.cli.mjs.map +1 -0
  177. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/selectors.cjs +149 -0
  178. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/selectors.cjs.map +1 -0
  179. package/dist/{tui → src/extensions/workspaces/sessions/(frontend)/overlay/_lib}/selectors.d.cts +2 -2
  180. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/selectors.d.cts.map +1 -0
  181. package/dist/{tui → src/extensions/workspaces/sessions/(frontend)/overlay/_lib}/selectors.d.mts +2 -2
  182. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/selectors.d.mts.map +1 -0
  183. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/selectors.mjs +142 -0
  184. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/selectors.mjs.map +1 -0
  185. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.cjs +358 -0
  186. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.cjs.map +1 -0
  187. package/dist/{tui/taskSpace.d.cts → src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.d.cts} +4 -3
  188. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.d.cts.map +1 -0
  189. package/dist/{tui/taskSpace.d.mts → src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.d.mts} +4 -3
  190. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.d.mts.map +1 -0
  191. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.mjs +355 -0
  192. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/task-space.cli.mjs.map +1 -0
  193. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/taskOverlay.cjs +165 -0
  194. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/taskOverlay.cjs.map +1 -0
  195. package/dist/{tui → src/extensions/workspaces/sessions/(frontend)/overlay/_lib}/taskOverlay.d.cts +6 -4
  196. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/taskOverlay.d.cts.map +1 -0
  197. package/dist/{tui → src/extensions/workspaces/sessions/(frontend)/overlay/_lib}/taskOverlay.d.mts +6 -4
  198. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/taskOverlay.d.mts.map +1 -0
  199. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/taskOverlay.mjs +164 -0
  200. package/dist/src/extensions/workspaces/sessions/(frontend)/overlay/_lib/taskOverlay.mjs.map +1 -0
  201. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/task.cli.cjs +13 -0
  202. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/task.cli.cjs.map +1 -0
  203. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/task.cli.mjs +13 -0
  204. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/task.cli.mjs.map +1 -0
  205. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/task.cli.cjs +7 -0
  206. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/task.cli.cjs.map +1 -0
  207. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/task.cli.mjs +8 -0
  208. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/task.cli.mjs.map +1 -0
  209. package/dist/src/models/task.cjs +29 -0
  210. package/dist/src/models/task.cjs.map +1 -0
  211. package/dist/{models → src/models}/task.d.cts +12 -2
  212. package/dist/src/models/task.d.cts.map +1 -0
  213. package/dist/{models → src/models}/task.d.mts +12 -2
  214. package/dist/src/models/task.d.mts.map +1 -0
  215. package/dist/src/models/task.mjs +26 -0
  216. package/dist/src/models/task.mjs.map +1 -0
  217. package/dist/src/models/taskGraph.cjs +67 -0
  218. package/dist/src/models/taskGraph.cjs.map +1 -0
  219. package/dist/src/models/taskGraph.d.cts.map +1 -0
  220. package/dist/src/models/taskGraph.d.mts.map +1 -0
  221. package/dist/src/models/taskGraph.mjs +63 -0
  222. package/dist/src/models/taskGraph.mjs.map +1 -0
  223. package/dist/src/schemas/apiContracts.cjs +51 -0
  224. package/dist/src/schemas/apiContracts.cjs.map +1 -0
  225. package/dist/{schemas → src/schemas}/apiContracts.d.cts.map +1 -1
  226. package/dist/{schemas → src/schemas}/apiContracts.d.mts.map +1 -1
  227. package/dist/src/schemas/apiContracts.mjs +49 -0
  228. package/dist/src/schemas/apiContracts.mjs.map +1 -0
  229. package/dist/src/schemas/task.cjs +130 -0
  230. package/dist/src/schemas/task.cjs.map +1 -0
  231. package/dist/src/schemas/task.d.cts.map +1 -0
  232. package/dist/src/schemas/task.d.mts.map +1 -0
  233. package/dist/src/schemas/task.mjs +117 -0
  234. package/dist/src/schemas/task.mjs.map +1 -0
  235. package/dist/src/services/config/index.cjs +88 -0
  236. package/dist/src/services/config/index.cjs.map +1 -0
  237. package/dist/src/services/config/index.d.cts.map +1 -0
  238. package/dist/src/services/config/index.d.mts.map +1 -0
  239. package/dist/src/services/config/index.mjs +72 -0
  240. package/dist/src/services/config/index.mjs.map +1 -0
  241. package/dist/src/services/contextContribution/index.cjs +51 -0
  242. package/dist/src/services/contextContribution/index.cjs.map +1 -0
  243. package/dist/src/services/contextContribution/index.mjs +46 -0
  244. package/dist/src/services/contextContribution/index.mjs.map +1 -0
  245. package/dist/src/services/delegation/index.cjs +629 -0
  246. package/dist/src/services/delegation/index.cjs.map +1 -0
  247. package/dist/src/services/delegation/index.d.cts.map +1 -0
  248. package/dist/src/services/delegation/index.d.mts.map +1 -0
  249. package/dist/src/services/delegation/index.mjs +623 -0
  250. package/dist/src/services/delegation/index.mjs.map +1 -0
  251. package/dist/src/services/delegationPlatform/index.cjs +23 -0
  252. package/dist/src/services/delegationPlatform/index.cjs.map +1 -0
  253. package/dist/src/services/delegationPlatform/index.mjs +21 -0
  254. package/dist/src/services/delegationPlatform/index.mjs.map +1 -0
  255. package/dist/src/services/invariants/index.cjs +64 -0
  256. package/dist/src/services/invariants/index.cjs.map +1 -0
  257. package/dist/src/services/invariants/index.d.cts.map +1 -0
  258. package/dist/src/services/invariants/index.d.mts.map +1 -0
  259. package/dist/src/services/invariants/index.mjs +62 -0
  260. package/dist/src/services/invariants/index.mjs.map +1 -0
  261. package/dist/src/services/logSinkTelemetry/index.cjs +43 -0
  262. package/dist/src/services/logSinkTelemetry/index.cjs.map +1 -0
  263. package/dist/src/services/logSinkTelemetry/index.d.cts.map +1 -0
  264. package/dist/src/services/logSinkTelemetry/index.d.mts.map +1 -0
  265. package/dist/src/services/logSinkTelemetry/index.mjs +41 -0
  266. package/dist/src/services/logSinkTelemetry/index.mjs.map +1 -0
  267. package/dist/src/services/paths/index.cjs +233 -0
  268. package/dist/src/services/paths/index.cjs.map +1 -0
  269. package/dist/src/services/paths/index.d.cts.map +1 -0
  270. package/dist/src/services/paths/index.d.mts.map +1 -0
  271. package/dist/src/services/paths/index.mjs +218 -0
  272. package/dist/src/services/paths/index.mjs.map +1 -0
  273. package/dist/src/services/processLiveness/index.cjs +20 -0
  274. package/dist/src/services/processLiveness/index.cjs.map +1 -0
  275. package/dist/src/services/processLiveness/index.d.cts.map +1 -0
  276. package/dist/src/services/processLiveness/index.d.mts.map +1 -0
  277. package/dist/src/services/processLiveness/index.mjs +20 -0
  278. package/dist/src/services/processLiveness/index.mjs.map +1 -0
  279. package/dist/src/services/reconcile/index.cjs +65 -0
  280. package/dist/src/services/reconcile/index.cjs.map +1 -0
  281. package/dist/src/services/reconcile/index.d.cts.map +1 -0
  282. package/dist/src/services/reconcile/index.d.mts.map +1 -0
  283. package/dist/src/services/reconcile/index.mjs +63 -0
  284. package/dist/src/services/reconcile/index.mjs.map +1 -0
  285. package/dist/src/services/reducer/index.cjs +350 -0
  286. package/dist/src/services/reducer/index.cjs.map +1 -0
  287. package/dist/src/services/reducer/index.d.cts.map +1 -0
  288. package/dist/src/services/reducer/index.d.mts.map +1 -0
  289. package/dist/src/services/reducer/index.mjs +345 -0
  290. package/dist/src/services/reducer/index.mjs.map +1 -0
  291. package/dist/src/services/taskNarration/index.cjs +32 -0
  292. package/dist/src/services/taskNarration/index.cjs.map +1 -0
  293. package/dist/src/services/taskNarration/index.mjs +32 -0
  294. package/dist/src/services/taskNarration/index.mjs.map +1 -0
  295. package/dist/src/services/taskResult/index.cjs +174 -0
  296. package/dist/src/services/taskResult/index.cjs.map +1 -0
  297. package/dist/src/services/taskResult/index.d.cts.map +1 -0
  298. package/dist/src/services/taskResult/index.d.mts.map +1 -0
  299. package/dist/src/services/taskResult/index.mjs +165 -0
  300. package/dist/src/services/taskResult/index.mjs.map +1 -0
  301. package/dist/src/services/taskStore/index.cjs +216 -0
  302. package/dist/src/services/taskStore/index.cjs.map +1 -0
  303. package/dist/src/services/taskStore/index.d.cts.map +1 -0
  304. package/dist/src/services/taskStore/index.d.mts.map +1 -0
  305. package/dist/src/services/taskStore/index.mjs +213 -0
  306. package/dist/src/services/taskStore/index.mjs.map +1 -0
  307. package/dist/src/types/delegation.cjs +7 -0
  308. package/dist/src/types/delegation.cjs.map +1 -0
  309. package/dist/{types → src/types}/delegation.d.cts.map +1 -1
  310. package/dist/{types → src/types}/delegation.d.mts.map +1 -1
  311. package/dist/src/types/delegation.mjs +7 -0
  312. package/dist/src/types/delegation.mjs.map +1 -0
  313. package/dist/src/types/telemetry.cjs +26 -0
  314. package/dist/src/types/telemetry.cjs.map +1 -0
  315. package/dist/src/types/telemetry.d.cts.map +1 -0
  316. package/dist/src/types/telemetry.d.mts.map +1 -0
  317. package/dist/src/types/telemetry.mjs +26 -0
  318. package/dist/src/types/telemetry.mjs.map +1 -0
  319. package/dist/src/types/webTasks.cjs +7 -0
  320. package/dist/src/types/webTasks.cjs.map +1 -0
  321. package/dist/src/types/webTasks.mjs +7 -0
  322. package/dist/src/types/webTasks.mjs.map +1 -0
  323. package/dist/store-invariants.cjs +5 -1
  324. package/dist/store-invariants.d.cts +1 -1
  325. package/dist/store-invariants.d.mts +1 -1
  326. package/dist/store-invariants.mjs +2 -1
  327. package/dist/store-paths.cjs +14 -1
  328. package/dist/store-paths.d.cts +1 -1
  329. package/dist/store-paths.d.mts +1 -1
  330. package/dist/store-paths.mjs +2 -1
  331. package/dist/store-process-liveness.cjs +3 -1
  332. package/dist/store-process-liveness.d.cts +1 -1
  333. package/dist/store-process-liveness.d.mts +1 -1
  334. package/dist/store-process-liveness.mjs +2 -1
  335. package/dist/store-reconcile.cjs +5 -1
  336. package/dist/store-reconcile.d.cts +1 -1
  337. package/dist/store-reconcile.d.mts +1 -1
  338. package/dist/store-reconcile.mjs +2 -1
  339. package/dist/store-reducer.cjs +8 -1
  340. package/dist/store-reducer.d.cts +1 -1
  341. package/dist/store-reducer.d.mts +1 -1
  342. package/dist/store-reducer.mjs +2 -1
  343. package/dist/store-task-graph.cjs +7 -1
  344. package/dist/store-task-graph.d.cts +1 -1
  345. package/dist/store-task-graph.d.mts +1 -1
  346. package/dist/store-task-graph.mjs +2 -1
  347. package/dist/store-task-store.cjs +3 -1
  348. package/dist/store-task-store.d.cts +1 -1
  349. package/dist/store-task-store.d.mts +1 -1
  350. package/dist/store-task-store.mjs +2 -1
  351. package/dist/store-types.cjs +6 -1
  352. package/dist/store-types.d.cts +1 -1
  353. package/dist/store-types.d.mts +1 -1
  354. package/dist/store-types.mjs +2 -1
  355. package/dist/tool-prompt-guidelines.cjs +3 -1
  356. package/dist/tool-prompt-guidelines.d.cts +1 -1
  357. package/dist/tool-prompt-guidelines.d.mts +1 -1
  358. package/dist/tool-prompt-guidelines.mjs +2 -1
  359. package/dist/tool-response-envelope.cjs +12 -1
  360. package/dist/tool-response-envelope.d.cts +1 -1
  361. package/dist/tool-response-envelope.d.mts +1 -1
  362. package/dist/tool-response-envelope.mjs +2 -1
  363. package/dist/tool-schema.cjs +17 -1
  364. package/dist/tool-schema.d.cts +2 -2
  365. package/dist/tool-schema.d.mts +2 -2
  366. package/dist/tool-schema.mjs +3 -1
  367. package/dist/tool-task-tool.cjs +6 -1
  368. package/dist/tool-task-tool.d.cts +2 -2
  369. package/dist/tool-task-tool.d.mts +2 -2
  370. package/dist/tool-task-tool.mjs +3 -1
  371. package/dist/tui-format.cjs +14 -1
  372. package/dist/tui-format.d.cts +1 -1
  373. package/dist/tui-format.d.mts +1 -1
  374. package/dist/tui-format.mjs +2 -1
  375. package/dist/tui-selectors.cjs +10 -1
  376. package/dist/tui-selectors.d.cts +1 -1
  377. package/dist/tui-selectors.d.mts +1 -1
  378. package/dist/tui-selectors.mjs +2 -1
  379. package/dist/tui-task-overlay.cjs +4 -1
  380. package/dist/tui-task-overlay.d.cts +2 -2
  381. package/dist/tui-task-overlay.d.mts +2 -2
  382. package/dist/tui-task-overlay.mjs +2 -1
  383. package/dist/tui-task-space.cjs +5 -1
  384. package/dist/tui-task-space.d.cts +1 -1
  385. package/dist/tui-task-space.d.mts +1 -1
  386. package/dist/tui-task-space.mjs +2 -1
  387. package/package.json +15 -14
  388. package/dist/constants/promptGuidelines.cjs +0 -2
  389. package/dist/constants/promptGuidelines.cjs.map +0 -1
  390. package/dist/constants/promptGuidelines.d.cts.map +0 -1
  391. package/dist/constants/promptGuidelines.d.mts.map +0 -1
  392. package/dist/constants/promptGuidelines.mjs +0 -2
  393. package/dist/constants/promptGuidelines.mjs.map +0 -1
  394. package/dist/constants/task.cjs +0 -2
  395. package/dist/constants/task.cjs.map +0 -1
  396. package/dist/constants/task.d.cts.map +0 -1
  397. package/dist/constants/task.d.mts.map +0 -1
  398. package/dist/constants/task.mjs +0 -2
  399. package/dist/constants/task.mjs.map +0 -1
  400. package/dist/controllers/tasksCommand.cjs +0 -2
  401. package/dist/controllers/tasksCommand.cjs.map +0 -1
  402. package/dist/controllers/tasksCommand.d.cts +0 -15
  403. package/dist/controllers/tasksCommand.d.cts.map +0 -1
  404. package/dist/controllers/tasksCommand.d.mts +0 -15
  405. package/dist/controllers/tasksCommand.d.mts.map +0 -1
  406. package/dist/controllers/tasksCommand.mjs +0 -2
  407. package/dist/controllers/tasksCommand.mjs.map +0 -1
  408. package/dist/controllers/webTasksChannel.cjs +0 -2
  409. package/dist/controllers/webTasksChannel.cjs.map +0 -1
  410. package/dist/controllers/webTasksChannel.mjs +0 -2
  411. package/dist/controllers/webTasksChannel.mjs.map +0 -1
  412. package/dist/models/task.cjs +0 -2
  413. package/dist/models/task.cjs.map +0 -1
  414. package/dist/models/task.d.cts.map +0 -1
  415. package/dist/models/task.d.mts.map +0 -1
  416. package/dist/models/task.mjs +0 -2
  417. package/dist/models/task.mjs.map +0 -1
  418. package/dist/models/taskGraph.cjs +0 -2
  419. package/dist/models/taskGraph.cjs.map +0 -1
  420. package/dist/models/taskGraph.d.cts.map +0 -1
  421. package/dist/models/taskGraph.d.mts.map +0 -1
  422. package/dist/models/taskGraph.mjs +0 -2
  423. package/dist/models/taskGraph.mjs.map +0 -1
  424. package/dist/schemas/apiContracts.cjs +0 -2
  425. package/dist/schemas/apiContracts.cjs.map +0 -1
  426. package/dist/schemas/apiContracts.mjs +0 -2
  427. package/dist/schemas/apiContracts.mjs.map +0 -1
  428. package/dist/schemas/task.cjs +0 -2
  429. package/dist/schemas/task.cjs.map +0 -1
  430. package/dist/schemas/task.d.cts.map +0 -1
  431. package/dist/schemas/task.d.mts.map +0 -1
  432. package/dist/schemas/task.mjs +0 -2
  433. package/dist/schemas/task.mjs.map +0 -1
  434. package/dist/services/config/index.cjs +0 -2
  435. package/dist/services/config/index.cjs.map +0 -1
  436. package/dist/services/config/index.d.cts.map +0 -1
  437. package/dist/services/config/index.d.mts.map +0 -1
  438. package/dist/services/config/index.mjs +0 -2
  439. package/dist/services/config/index.mjs.map +0 -1
  440. package/dist/services/contextContribution/index.cjs +0 -3
  441. package/dist/services/contextContribution/index.cjs.map +0 -1
  442. package/dist/services/contextContribution/index.mjs +0 -3
  443. package/dist/services/contextContribution/index.mjs.map +0 -1
  444. package/dist/services/delegation/index.cjs +0 -6
  445. package/dist/services/delegation/index.cjs.map +0 -1
  446. package/dist/services/delegation/index.d.cts.map +0 -1
  447. package/dist/services/delegation/index.d.mts.map +0 -1
  448. package/dist/services/delegation/index.mjs +0 -6
  449. package/dist/services/delegation/index.mjs.map +0 -1
  450. package/dist/services/delegationPlatform/index.cjs +0 -2
  451. package/dist/services/delegationPlatform/index.cjs.map +0 -1
  452. package/dist/services/delegationPlatform/index.mjs +0 -2
  453. package/dist/services/delegationPlatform/index.mjs.map +0 -1
  454. package/dist/services/invariants/index.cjs +0 -2
  455. package/dist/services/invariants/index.cjs.map +0 -1
  456. package/dist/services/invariants/index.d.cts.map +0 -1
  457. package/dist/services/invariants/index.d.mts.map +0 -1
  458. package/dist/services/invariants/index.mjs +0 -2
  459. package/dist/services/invariants/index.mjs.map +0 -1
  460. package/dist/services/logSinkTelemetry/index.cjs +0 -2
  461. package/dist/services/logSinkTelemetry/index.cjs.map +0 -1
  462. package/dist/services/logSinkTelemetry/index.d.cts.map +0 -1
  463. package/dist/services/logSinkTelemetry/index.d.mts.map +0 -1
  464. package/dist/services/logSinkTelemetry/index.mjs +0 -2
  465. package/dist/services/logSinkTelemetry/index.mjs.map +0 -1
  466. package/dist/services/paths/index.cjs +0 -2
  467. package/dist/services/paths/index.cjs.map +0 -1
  468. package/dist/services/paths/index.d.cts.map +0 -1
  469. package/dist/services/paths/index.d.mts.map +0 -1
  470. package/dist/services/paths/index.mjs +0 -2
  471. package/dist/services/paths/index.mjs.map +0 -1
  472. package/dist/services/processLiveness/index.cjs +0 -2
  473. package/dist/services/processLiveness/index.cjs.map +0 -1
  474. package/dist/services/processLiveness/index.d.cts.map +0 -1
  475. package/dist/services/processLiveness/index.d.mts.map +0 -1
  476. package/dist/services/processLiveness/index.mjs +0 -2
  477. package/dist/services/processLiveness/index.mjs.map +0 -1
  478. package/dist/services/reconcile/index.cjs +0 -2
  479. package/dist/services/reconcile/index.cjs.map +0 -1
  480. package/dist/services/reconcile/index.d.cts.map +0 -1
  481. package/dist/services/reconcile/index.d.mts.map +0 -1
  482. package/dist/services/reconcile/index.mjs +0 -2
  483. package/dist/services/reconcile/index.mjs.map +0 -1
  484. package/dist/services/reducer/index.cjs +0 -3
  485. package/dist/services/reducer/index.cjs.map +0 -1
  486. package/dist/services/reducer/index.d.cts.map +0 -1
  487. package/dist/services/reducer/index.d.mts.map +0 -1
  488. package/dist/services/reducer/index.mjs +0 -3
  489. package/dist/services/reducer/index.mjs.map +0 -1
  490. package/dist/services/taskNarration/index.cjs +0 -2
  491. package/dist/services/taskNarration/index.cjs.map +0 -1
  492. package/dist/services/taskNarration/index.mjs +0 -2
  493. package/dist/services/taskNarration/index.mjs.map +0 -1
  494. package/dist/services/taskResult/index.cjs +0 -7
  495. package/dist/services/taskResult/index.cjs.map +0 -1
  496. package/dist/services/taskResult/index.d.cts.map +0 -1
  497. package/dist/services/taskResult/index.d.mts.map +0 -1
  498. package/dist/services/taskResult/index.mjs +0 -7
  499. package/dist/services/taskResult/index.mjs.map +0 -1
  500. package/dist/services/taskStore/index.cjs +0 -2
  501. package/dist/services/taskStore/index.cjs.map +0 -1
  502. package/dist/services/taskStore/index.d.cts.map +0 -1
  503. package/dist/services/taskStore/index.d.mts.map +0 -1
  504. package/dist/services/taskStore/index.mjs +0 -2
  505. package/dist/services/taskStore/index.mjs.map +0 -1
  506. package/dist/tools/task.cjs +0 -3
  507. package/dist/tools/task.d.cts.map +0 -1
  508. package/dist/tools/task.d.mts.map +0 -1
  509. package/dist/tools/task.mjs +0 -3
  510. package/dist/tools/task.mjs.map +0 -1
  511. package/dist/tui/format.cjs +0 -4
  512. package/dist/tui/format.cjs.map +0 -1
  513. package/dist/tui/format.d.cts.map +0 -1
  514. package/dist/tui/format.d.mts.map +0 -1
  515. package/dist/tui/format.mjs +0 -4
  516. package/dist/tui/format.mjs.map +0 -1
  517. package/dist/tui/selectors.cjs +0 -2
  518. package/dist/tui/selectors.cjs.map +0 -1
  519. package/dist/tui/selectors.d.cts.map +0 -1
  520. package/dist/tui/selectors.d.mts.map +0 -1
  521. package/dist/tui/selectors.mjs +0 -2
  522. package/dist/tui/selectors.mjs.map +0 -1
  523. package/dist/tui/taskOverlay.cjs +0 -2
  524. package/dist/tui/taskOverlay.cjs.map +0 -1
  525. package/dist/tui/taskOverlay.d.cts.map +0 -1
  526. package/dist/tui/taskOverlay.d.mts.map +0 -1
  527. package/dist/tui/taskOverlay.mjs +0 -2
  528. package/dist/tui/taskOverlay.mjs.map +0 -1
  529. package/dist/tui/taskSpace.cjs +0 -5
  530. package/dist/tui/taskSpace.cjs.map +0 -1
  531. package/dist/tui/taskSpace.d.cts.map +0 -1
  532. package/dist/tui/taskSpace.d.mts.map +0 -1
  533. package/dist/tui/taskSpace.mjs +0 -5
  534. package/dist/tui/taskSpace.mjs.map +0 -1
  535. package/dist/types/delegation.cjs +0 -2
  536. package/dist/types/delegation.cjs.map +0 -1
  537. package/dist/types/delegation.mjs +0 -2
  538. package/dist/types/delegation.mjs.map +0 -1
  539. package/dist/types/telemetry.cjs +0 -2
  540. package/dist/types/telemetry.cjs.map +0 -1
  541. package/dist/types/telemetry.d.cts.map +0 -1
  542. package/dist/types/telemetry.d.mts.map +0 -1
  543. package/dist/types/telemetry.mjs +0 -2
  544. package/dist/types/telemetry.mjs.map +0 -1
  545. package/dist/types/webTasks.cjs +0 -2
  546. package/dist/types/webTasks.cjs.map +0 -1
  547. package/dist/types/webTasks.mjs +0 -2
  548. package/dist/types/webTasks.mjs.map +0 -1
  549. package/src/extensions/web.ts +0 -18
  550. package/src/web/components/TaskDetailDialog.tsx +0 -251
  551. package/src/web/components/TaskToolMessage.tsx +0 -120
  552. package/src/web/components/TasksActivitySection.tsx +0 -200
  553. package/src/web/lib/taskToolFormat.ts +0 -330
  554. package/src/web/stores/tasksStore.ts +0 -114
  555. package/src/web/tsconfig.json +0 -23
  556. /package/dist/{constants → src/constants}/promptGuidelines.d.cts +0 -0
  557. /package/dist/{constants → src/constants}/promptGuidelines.d.mts +0 -0
  558. /package/dist/{constants → src/constants}/task.d.cts +0 -0
  559. /package/dist/{constants → src/constants}/task.d.mts +0 -0
  560. /package/dist/{models → src/models}/taskGraph.d.cts +0 -0
  561. /package/dist/{models → src/models}/taskGraph.d.mts +0 -0
  562. /package/dist/{schemas → src/schemas}/apiContracts.d.cts +0 -0
  563. /package/dist/{schemas → src/schemas}/apiContracts.d.mts +0 -0
  564. /package/dist/{schemas → src/schemas}/task.d.cts +0 -0
  565. /package/dist/{schemas → src/schemas}/task.d.mts +0 -0
  566. /package/dist/{services → src/services}/config/index.d.cts +0 -0
  567. /package/dist/{services → src/services}/config/index.d.mts +0 -0
  568. /package/dist/{services → src/services}/delegation/index.d.cts +0 -0
  569. /package/dist/{services → src/services}/delegation/index.d.mts +0 -0
  570. /package/dist/{services → src/services}/invariants/index.d.cts +0 -0
  571. /package/dist/{services → src/services}/invariants/index.d.mts +0 -0
  572. /package/dist/{services → src/services}/logSinkTelemetry/index.d.cts +0 -0
  573. /package/dist/{services → src/services}/logSinkTelemetry/index.d.mts +0 -0
  574. /package/dist/{services → src/services}/paths/index.d.cts +0 -0
  575. /package/dist/{services → src/services}/paths/index.d.mts +0 -0
  576. /package/dist/{services → src/services}/processLiveness/index.d.cts +0 -0
  577. /package/dist/{services → src/services}/processLiveness/index.d.mts +0 -0
  578. /package/dist/{services → src/services}/reconcile/index.d.cts +0 -0
  579. /package/dist/{services → src/services}/reconcile/index.d.mts +0 -0
  580. /package/dist/{services → src/services}/reducer/index.d.cts +0 -0
  581. /package/dist/{services → src/services}/reducer/index.d.mts +0 -0
  582. /package/dist/{services → src/services}/taskResult/index.d.cts +0 -0
  583. /package/dist/{services → src/services}/taskResult/index.d.mts +0 -0
  584. /package/dist/{services → src/services}/taskStore/index.d.cts +0 -0
  585. /package/dist/{services → src/services}/taskStore/index.d.mts +0 -0
  586. /package/dist/{types → src/types}/delegation.d.cts +0 -0
  587. /package/dist/{types → src/types}/delegation.d.mts +0 -0
  588. /package/dist/{types → src/types}/telemetry.d.cts +0 -0
  589. /package/dist/{types → src/types}/telemetry.d.mts +0 -0
package/README.md CHANGED
@@ -107,12 +107,21 @@ Intercom and Team membership remain Team state; `tasks.json` remains Task state.
107
107
  ## Public API
108
108
 
109
109
  ```ts
110
- import { detectCycle, isBlocked, TaskStore, taskExtension } from '@agimon-ai/doompi-task';
110
+ import { detectCycle, isBlocked, TaskStore } from '@agimon-ai/doompi-task';
111
111
  import type { Task, TaskStatus } from '@agimon-ai/doompi-task';
112
112
  ```
113
113
 
114
- Focused subpaths include `/tool/schema`, `/store/reducer`, `/store/taskStore`,
115
- `/delegation/manager`, and `/tui/selectors`. Pi loads `/extensions/pi` through package metadata.
114
+ Focused subpaths include `/tool-schema`, `/store-reducer`, `/store-task-store`,
115
+ `/delegation-manager`, and `/tui-selectors`. Pi loads `/extensions/pi` through package metadata.
116
+
117
+ ## Source layout
118
+
119
+ The host entries are generated from `src/extensions`. Pi and headless session roots hold each
120
+ session's store, delegation manager, startup work, service injection, and cleanup. Their tools,
121
+ commands, hooks, and resources register from files beside the roots. The global backend channel
122
+ publishes task graph updates. The session frontend owns the cockpit channel and Activity dock
123
+ section, plus Task Space, the terminal widget, and the task tool renderer. Shared task rules and
124
+ persistence stay in `src/services`; the published compatibility APIs remain in `src/exports`.
116
125
 
117
126
  ## Development
118
127
 
@@ -1 +1,23 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,n));exports.__toESM=s;
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
+ key = keys[i];
11
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
+ get: ((k) => from[k]).bind(null, key),
13
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
+ });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
19
+ value: mod,
20
+ enumerable: true
21
+ }) : target, mod));
22
+ //#endregion
23
+ exports.__toESM = __toESM;
@@ -1 +1,7 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./schemas/apiContracts.cjs");exports.apiContracts=e.apiContracts,exports.default=e.apiContracts;
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ const require_apiContracts = require("./src/schemas/apiContracts.cjs");
6
+ exports.apiContracts = require_apiContracts.apiContracts;
7
+ exports.default = require_apiContracts.apiContracts;
@@ -1,2 +1,2 @@
1
- import { apiContracts } from "./schemas/apiContracts.cjs";
1
+ import { apiContracts } from "./src/schemas/apiContracts.cjs";
2
2
  export { apiContracts, apiContracts as default };
@@ -1,2 +1,2 @@
1
- import { apiContracts } from "./schemas/apiContracts.mjs";
1
+ import { apiContracts } from "./src/schemas/apiContracts.mjs";
2
2
  export { apiContracts, apiContracts as default };
@@ -1 +1,2 @@
1
- import{apiContracts as e}from"./schemas/apiContracts.mjs";export{e as apiContracts,e as default};
1
+ import { apiContracts } from "./src/schemas/apiContracts.mjs";
2
+ export { apiContracts, apiContracts as default };
package/dist/commands.cjs CHANGED
@@ -1 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./controllers/tasksCommand.cjs");exports.createTasksCommand=e.createTasksCommand;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_tasks_cli = require("./src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.cjs");
3
+ exports.createTasksCommand = require_tasks_cli.createTasksCommand;
4
+ exports.createTasksContribution = require_tasks_cli.createTasksContribution;
@@ -1,2 +1,2 @@
1
- import { createTasksCommand } from "./controllers/tasksCommand.cjs";
2
- export { createTasksCommand };
1
+ import { createTasksCommand, createTasksContribution } from "./src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.cjs";
2
+ export { createTasksCommand, createTasksContribution };
@@ -1,2 +1,2 @@
1
- import { createTasksCommand } from "./controllers/tasksCommand.mjs";
2
- export { createTasksCommand };
1
+ import { createTasksCommand, createTasksContribution } from "./src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.mjs";
2
+ export { createTasksCommand, createTasksContribution };
package/dist/commands.mjs CHANGED
@@ -1 +1,2 @@
1
- import{createTasksCommand as e}from"./controllers/tasksCommand.mjs";export{e as createTasksCommand};
1
+ import { createTasksCommand, createTasksContribution } from "./src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.mjs";
2
+ export { createTasksCommand, createTasksContribution };
package/dist/config.cjs CHANGED
@@ -1 +1,19 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./services/config/index.cjs");exports.COLLAPSE_KEY_ENV=e.COLLAPSE_KEY_ENV,exports.COLLAPSE_KEY_OFF=e.COLLAPSE_KEY_OFF,exports.DEFAULT_COLLAPSE_KEY=e.DEFAULT_COLLAPSE_KEY,exports.DEFAULT_DELEGATION_TIMEOUT_MS=e.DEFAULT_DELEGATION_TIMEOUT_MS,exports.DEFAULT_MAX_TASKS=e.DEFAULT_MAX_TASKS,exports.DEFAULT_MAX_WIDGET_LINES=e.DEFAULT_MAX_WIDGET_LINES,exports.DEFAULT_STORE_TTL_MS=e.DEFAULT_STORE_TTL_MS,exports.DELEGATION_TIMEOUT_MS_ENV=e.DELEGATION_TIMEOUT_MS_ENV,exports.MAX_TASKS_ENV=e.MAX_TASKS_ENV,exports.MAX_WIDGET_LINES_ENV=e.MAX_WIDGET_LINES_ENV,exports.STORE_TTL_MS_ENV=e.STORE_TTL_MS_ENV,exports.getDelegationTimeoutMs=e.getDelegationTimeoutMs,exports.getMaxTasks=e.getMaxTasks,exports.getMaxWidgetLines=e.getMaxWidgetLines,exports.getStoreTtlMs=e.getStoreTtlMs,exports.parsePiTaskConfig=e.parsePiTaskConfig,exports.resolveCollapseKey=e.resolveCollapseKey;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_index = require("./src/services/config/index.cjs");
3
+ exports.COLLAPSE_KEY_ENV = require_index.COLLAPSE_KEY_ENV;
4
+ exports.COLLAPSE_KEY_OFF = require_index.COLLAPSE_KEY_OFF;
5
+ exports.DEFAULT_COLLAPSE_KEY = require_index.DEFAULT_COLLAPSE_KEY;
6
+ exports.DEFAULT_DELEGATION_TIMEOUT_MS = require_index.DEFAULT_DELEGATION_TIMEOUT_MS;
7
+ exports.DEFAULT_MAX_TASKS = require_index.DEFAULT_MAX_TASKS;
8
+ exports.DEFAULT_MAX_WIDGET_LINES = require_index.DEFAULT_MAX_WIDGET_LINES;
9
+ exports.DEFAULT_STORE_TTL_MS = require_index.DEFAULT_STORE_TTL_MS;
10
+ exports.DELEGATION_TIMEOUT_MS_ENV = require_index.DELEGATION_TIMEOUT_MS_ENV;
11
+ exports.MAX_TASKS_ENV = require_index.MAX_TASKS_ENV;
12
+ exports.MAX_WIDGET_LINES_ENV = require_index.MAX_WIDGET_LINES_ENV;
13
+ exports.STORE_TTL_MS_ENV = require_index.STORE_TTL_MS_ENV;
14
+ exports.getDelegationTimeoutMs = require_index.getDelegationTimeoutMs;
15
+ exports.getMaxTasks = require_index.getMaxTasks;
16
+ exports.getMaxWidgetLines = require_index.getMaxWidgetLines;
17
+ exports.getStoreTtlMs = require_index.getStoreTtlMs;
18
+ exports.parsePiTaskConfig = require_index.parsePiTaskConfig;
19
+ exports.resolveCollapseKey = require_index.resolveCollapseKey;
package/dist/config.d.cts CHANGED
@@ -1,2 +1,2 @@
1
- import { COLLAPSE_KEY_ENV, COLLAPSE_KEY_OFF, DEFAULT_COLLAPSE_KEY, DEFAULT_DELEGATION_TIMEOUT_MS, DEFAULT_MAX_TASKS, DEFAULT_MAX_WIDGET_LINES, DEFAULT_STORE_TTL_MS, DELEGATION_TIMEOUT_MS_ENV, MAX_TASKS_ENV, MAX_WIDGET_LINES_ENV, PiTaskConfig, STORE_TTL_MS_ENV, getDelegationTimeoutMs, getMaxTasks, getMaxWidgetLines, getStoreTtlMs, parsePiTaskConfig, resolveCollapseKey } from "./services/config/index.cjs";
1
+ import { COLLAPSE_KEY_ENV, COLLAPSE_KEY_OFF, DEFAULT_COLLAPSE_KEY, DEFAULT_DELEGATION_TIMEOUT_MS, DEFAULT_MAX_TASKS, DEFAULT_MAX_WIDGET_LINES, DEFAULT_STORE_TTL_MS, DELEGATION_TIMEOUT_MS_ENV, MAX_TASKS_ENV, MAX_WIDGET_LINES_ENV, PiTaskConfig, STORE_TTL_MS_ENV, getDelegationTimeoutMs, getMaxTasks, getMaxWidgetLines, getStoreTtlMs, parsePiTaskConfig, resolveCollapseKey } from "./src/services/config/index.cjs";
2
2
  export { COLLAPSE_KEY_ENV, COLLAPSE_KEY_OFF, DEFAULT_COLLAPSE_KEY, DEFAULT_DELEGATION_TIMEOUT_MS, DEFAULT_MAX_TASKS, DEFAULT_MAX_WIDGET_LINES, DEFAULT_STORE_TTL_MS, DELEGATION_TIMEOUT_MS_ENV, MAX_TASKS_ENV, MAX_WIDGET_LINES_ENV, PiTaskConfig, STORE_TTL_MS_ENV, getDelegationTimeoutMs, getMaxTasks, getMaxWidgetLines, getStoreTtlMs, parsePiTaskConfig, resolveCollapseKey };
package/dist/config.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { COLLAPSE_KEY_ENV, COLLAPSE_KEY_OFF, DEFAULT_COLLAPSE_KEY, DEFAULT_DELEGATION_TIMEOUT_MS, DEFAULT_MAX_TASKS, DEFAULT_MAX_WIDGET_LINES, DEFAULT_STORE_TTL_MS, DELEGATION_TIMEOUT_MS_ENV, MAX_TASKS_ENV, MAX_WIDGET_LINES_ENV, PiTaskConfig, STORE_TTL_MS_ENV, getDelegationTimeoutMs, getMaxTasks, getMaxWidgetLines, getStoreTtlMs, parsePiTaskConfig, resolveCollapseKey } from "./services/config/index.mjs";
1
+ import { COLLAPSE_KEY_ENV, COLLAPSE_KEY_OFF, DEFAULT_COLLAPSE_KEY, DEFAULT_DELEGATION_TIMEOUT_MS, DEFAULT_MAX_TASKS, DEFAULT_MAX_WIDGET_LINES, DEFAULT_STORE_TTL_MS, DELEGATION_TIMEOUT_MS_ENV, MAX_TASKS_ENV, MAX_WIDGET_LINES_ENV, PiTaskConfig, STORE_TTL_MS_ENV, getDelegationTimeoutMs, getMaxTasks, getMaxWidgetLines, getStoreTtlMs, parsePiTaskConfig, resolveCollapseKey } from "./src/services/config/index.mjs";
2
2
  export { COLLAPSE_KEY_ENV, COLLAPSE_KEY_OFF, DEFAULT_COLLAPSE_KEY, DEFAULT_DELEGATION_TIMEOUT_MS, DEFAULT_MAX_TASKS, DEFAULT_MAX_WIDGET_LINES, DEFAULT_STORE_TTL_MS, DELEGATION_TIMEOUT_MS_ENV, MAX_TASKS_ENV, MAX_WIDGET_LINES_ENV, PiTaskConfig, STORE_TTL_MS_ENV, getDelegationTimeoutMs, getMaxTasks, getMaxWidgetLines, getStoreTtlMs, parsePiTaskConfig, resolveCollapseKey };
package/dist/config.mjs CHANGED
@@ -1 +1,2 @@
1
- import{COLLAPSE_KEY_ENV as e,COLLAPSE_KEY_OFF as t,DEFAULT_COLLAPSE_KEY as n,DEFAULT_DELEGATION_TIMEOUT_MS as r,DEFAULT_MAX_TASKS as i,DEFAULT_MAX_WIDGET_LINES as a,DEFAULT_STORE_TTL_MS as o,DELEGATION_TIMEOUT_MS_ENV as s,MAX_TASKS_ENV as c,MAX_WIDGET_LINES_ENV as l,STORE_TTL_MS_ENV as u,getDelegationTimeoutMs as d,getMaxTasks as f,getMaxWidgetLines as p,getStoreTtlMs as m,parsePiTaskConfig as h,resolveCollapseKey as g}from"./services/config/index.mjs";export{e as COLLAPSE_KEY_ENV,t as COLLAPSE_KEY_OFF,n as DEFAULT_COLLAPSE_KEY,r as DEFAULT_DELEGATION_TIMEOUT_MS,i as DEFAULT_MAX_TASKS,a as DEFAULT_MAX_WIDGET_LINES,o as DEFAULT_STORE_TTL_MS,s as DELEGATION_TIMEOUT_MS_ENV,c as MAX_TASKS_ENV,l as MAX_WIDGET_LINES_ENV,u as STORE_TTL_MS_ENV,d as getDelegationTimeoutMs,f as getMaxTasks,p as getMaxWidgetLines,m as getStoreTtlMs,h as parsePiTaskConfig,g as resolveCollapseKey};
1
+ import { COLLAPSE_KEY_ENV, COLLAPSE_KEY_OFF, DEFAULT_COLLAPSE_KEY, DEFAULT_DELEGATION_TIMEOUT_MS, DEFAULT_MAX_TASKS, DEFAULT_MAX_WIDGET_LINES, DEFAULT_STORE_TTL_MS, DELEGATION_TIMEOUT_MS_ENV, MAX_TASKS_ENV, MAX_WIDGET_LINES_ENV, STORE_TTL_MS_ENV, getDelegationTimeoutMs, getMaxTasks, getMaxWidgetLines, getStoreTtlMs, parsePiTaskConfig, resolveCollapseKey } from "./src/services/config/index.mjs";
2
+ export { COLLAPSE_KEY_ENV, COLLAPSE_KEY_OFF, DEFAULT_COLLAPSE_KEY, DEFAULT_DELEGATION_TIMEOUT_MS, DEFAULT_MAX_TASKS, DEFAULT_MAX_WIDGET_LINES, DEFAULT_STORE_TTL_MS, DELEGATION_TIMEOUT_MS_ENV, MAX_TASKS_ENV, MAX_WIDGET_LINES_ENV, STORE_TTL_MS_ENV, getDelegationTimeoutMs, getMaxTasks, getMaxWidgetLines, getStoreTtlMs, parsePiTaskConfig, resolveCollapseKey };
@@ -1 +1,10 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./types/delegation.cjs"),t=require("./services/delegation/index.cjs");exports.BACKGROUND_WORK_PROVIDER=t.BACKGROUND_WORK_PROVIDER,exports.DelegationManager=t.DelegationManager,exports.ERR_CANCEL_UNACKNOWLEDGED=t.ERR_CANCEL_UNACKNOWLEDGED,exports.ERR_CHILD_SESSION=t.ERR_CHILD_SESSION,exports.ERR_NO_RUNTIME=t.ERR_NO_RUNTIME,exports.MAX_BRIEF_FILES=e.MAX_BRIEF_FILES,exports.NOTIFY_CUSTOM_TYPE=t.NOTIFY_CUSTOM_TYPE;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_delegation = require("./src/types/delegation.cjs");
3
+ const require_index = require("./src/services/delegation/index.cjs");
4
+ exports.BACKGROUND_WORK_PROVIDER = require_index.BACKGROUND_WORK_PROVIDER;
5
+ exports.DelegationManager = require_index.DelegationManager;
6
+ exports.ERR_CANCEL_UNACKNOWLEDGED = require_index.ERR_CANCEL_UNACKNOWLEDGED;
7
+ exports.ERR_CHILD_SESSION = require_index.ERR_CHILD_SESSION;
8
+ exports.ERR_NO_RUNTIME = require_index.ERR_NO_RUNTIME;
9
+ exports.MAX_BRIEF_FILES = require_delegation.MAX_BRIEF_FILES;
10
+ exports.NOTIFY_CUSTOM_TYPE = require_index.NOTIFY_CUSTOM_TYPE;
@@ -1,3 +1,3 @@
1
- import { MAX_BRIEF_FILES } from "./types/delegation.cjs";
2
- import { AssignOptions, BACKGROUND_WORK_PROVIDER, DelegationManager, DelegationManagerOptions, DelegationNotifier, DelegationOutcome, DelegationPlatform, DelegationProgress, ERR_CANCEL_UNACKNOWLEDGED, ERR_CHILD_SESSION, ERR_NO_RUNTIME, NOTIFY_CUSTOM_TYPE } from "./services/delegation/index.cjs";
1
+ import { MAX_BRIEF_FILES } from "./src/types/delegation.cjs";
2
+ import { AssignOptions, BACKGROUND_WORK_PROVIDER, DelegationManager, DelegationManagerOptions, DelegationNotifier, DelegationOutcome, DelegationPlatform, DelegationProgress, ERR_CANCEL_UNACKNOWLEDGED, ERR_CHILD_SESSION, ERR_NO_RUNTIME, NOTIFY_CUSTOM_TYPE } from "./src/services/delegation/index.cjs";
3
3
  export { AssignOptions, BACKGROUND_WORK_PROVIDER, DelegationManager, DelegationManagerOptions, DelegationNotifier, DelegationOutcome, DelegationPlatform, DelegationProgress, ERR_CANCEL_UNACKNOWLEDGED, ERR_CHILD_SESSION, ERR_NO_RUNTIME, MAX_BRIEF_FILES, NOTIFY_CUSTOM_TYPE };
@@ -1,3 +1,3 @@
1
- import { MAX_BRIEF_FILES } from "./types/delegation.mjs";
2
- import { AssignOptions, BACKGROUND_WORK_PROVIDER, DelegationManager, DelegationManagerOptions, DelegationNotifier, DelegationOutcome, DelegationPlatform, DelegationProgress, ERR_CANCEL_UNACKNOWLEDGED, ERR_CHILD_SESSION, ERR_NO_RUNTIME, NOTIFY_CUSTOM_TYPE } from "./services/delegation/index.mjs";
1
+ import { MAX_BRIEF_FILES } from "./src/types/delegation.mjs";
2
+ import { AssignOptions, BACKGROUND_WORK_PROVIDER, DelegationManager, DelegationManagerOptions, DelegationNotifier, DelegationOutcome, DelegationPlatform, DelegationProgress, ERR_CANCEL_UNACKNOWLEDGED, ERR_CHILD_SESSION, ERR_NO_RUNTIME, NOTIFY_CUSTOM_TYPE } from "./src/services/delegation/index.mjs";
3
3
  export { AssignOptions, BACKGROUND_WORK_PROVIDER, DelegationManager, DelegationManagerOptions, DelegationNotifier, DelegationOutcome, DelegationPlatform, DelegationProgress, ERR_CANCEL_UNACKNOWLEDGED, ERR_CHILD_SESSION, ERR_NO_RUNTIME, MAX_BRIEF_FILES, NOTIFY_CUSTOM_TYPE };
@@ -1 +1,3 @@
1
- import{MAX_BRIEF_FILES as e}from"./types/delegation.mjs";import{BACKGROUND_WORK_PROVIDER as t,DelegationManager as n,ERR_CANCEL_UNACKNOWLEDGED as r,ERR_CHILD_SESSION as i,ERR_NO_RUNTIME as a,NOTIFY_CUSTOM_TYPE as o}from"./services/delegation/index.mjs";export{t as BACKGROUND_WORK_PROVIDER,n as DelegationManager,r as ERR_CANCEL_UNACKNOWLEDGED,i as ERR_CHILD_SESSION,a as ERR_NO_RUNTIME,e as MAX_BRIEF_FILES,o as NOTIFY_CUSTOM_TYPE};
1
+ import { MAX_BRIEF_FILES } from "./src/types/delegation.mjs";
2
+ import { BACKGROUND_WORK_PROVIDER, DelegationManager, ERR_CANCEL_UNACKNOWLEDGED, ERR_CHILD_SESSION, ERR_NO_RUNTIME, NOTIFY_CUSTOM_TYPE } from "./src/services/delegation/index.mjs";
3
+ export { BACKGROUND_WORK_PROVIDER, DelegationManager, ERR_CANCEL_UNACKNOWLEDGED, ERR_CHILD_SESSION, ERR_NO_RUNTIME, MAX_BRIEF_FILES, NOTIFY_CUSTOM_TYPE };
@@ -1,3 +1,50 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../types/telemetry.cjs"),t=require("../services/delegation/index.cjs"),n=require("../services/logSinkTelemetry/index.cjs"),r=require("../constants/task.cjs");require("../schemas/task.cjs");const i=require("../controllers/tasksCommand.cjs"),a=require("../services/config/index.cjs"),o=require("../tui/format.cjs"),s=require("../tui/taskOverlay.cjs"),c=require("../services/paths/index.cjs"),l=require("../services/taskStore/index.cjs"),u=require("../tui/taskSpace.cjs"),d=require("../tools/task.cjs"),f=require("../services/contextContribution/index.cjs"),p=require("../services/delegationPlatform/index.cjs"),m=require("../services/taskNarration/index.cjs");let h=require("@agimon-ai/doompi-core/delegation"),g=require("@earendil-works/pi-tui"),_=require("@agimon-ai/doompi-core/background-work"),v=require("@agimon-ai/doompi-core/context-contributions"),y=require("@agimon-ai/doompi-core/narration"),b=require("@agimon-ai/doompi-core/pi-extension"),x=require("@agimon-ai/doompi-core/readiness"),S=require("@agimon-ai/doompi-core/ui-hub");const C=f.TASK_CONTEXT_CONTRIBUTION_SOURCE,w=`error.type`,T=`task.stage`,E={sessionId:`session_id`,storeCleanup:`store_cleanup`,storeSweep:`store_sweep`,storeRead:`store_read`,reconcile:`reconcile`,refresh:`refresh`};function D(e){return e instanceof Error?e.name||`Error`:typeof e==`string`?`StringError`:e&&typeof e==`object`?`ObjectError`:`UnknownError`}const O=(0,b.definePiExtension)(C,({context:O,pi:k,signal:A})=>{let j=n.createTaskErrorReporter(),M=n.toFailureReporter(j),N=!0,P=0,F,I,L,R,z,B,V,H,U,W=e=>{j.recordWarning(`doom_task.narration_failed`,e).catch(e=>{process.emitWarning(`Doom-task could not record a narration failure: ${String(e)}`)})},G={narrate(e){let t=F,n=(0,y.createNarrationRequest)(e);if(t&&n)try{Promise.resolve(t.request(n)).catch(W)}catch(e){W(e)}}},K=async(e,t)=>{t?.throwIfAborted();let n=U;if(!n)throw Error(`doom-task session initialization has not started`);if(n.sessionManager!==e.sessionManager)throw Error(`doom-task readiness belongs to a stale Pi session`);if(await n.operation,t?.throwIfAborted(),!N||A.aborted||n!==U||!H)throw Error(`doom-task readiness belongs to a stale extension generation`)},q=()=>{z?.(),z=void 0,L?.reset(),R?.dispose(),H=void 0},J=new l.TaskStore({report:M,onCommitted:(e,t)=>m.narrateTaskCommit(G,e,t)});I=J;let Y=()=>{N&&!A.aborted&&(R?.update(),B?.update())},X=new t.DelegationManager({store:J,cwd:process.cwd(),platform:p.createNodeDelegationPlatform(),notify:(e,t)=>k.sendMessage(e,t),getSessionId:()=>H,onChange:Y,runTimeoutMs:a.getDelegationTimeoutMs(),report:M,onNotifyError:(e,t)=>{j.recordNotificationError(e,t)}});L=X;let Z=new s.TaskOverlay({getTasks:()=>J.snapshot.tasks,delegation:X});R=Z;let ee={store:J,delegation:X,maxTasks:a.getMaxTasks(),onChange:Y,report:M,waitUntilReady:K},te=async(t,n)=>{if(!N||A.aborted)return;let r=++P;H!==void 0&&q();let i=n,o=async t=>{let n=()=>!t?.aborted&&N&&!A.aborted&&r===P,o=E.sessionId,s=async(t,n)=>{o=t;try{await n()}catch(n){M.warn(e.TASK_EVENT.sessionStartDegraded,n,{[T]:t,[w]:D(n)})}};try{let t=i.sessionManager?.getSessionId();if(!t)throw Error(`doom-task requires a session id`);H=t,J.configureSession(c.resolveSessionKey(t)),o=E.storeCleanup;let r=await c.removeLegacyStoreDirectoryAsync(J.storePath);if(!n())return;o=E.storeSweep;let l=c.hasStorePathOverride()?{removed:[],errors:[]}:await c.sweepStoreFilesAsync(J.storePath,a.getStoreTtlMs());if(!n())return;let u=[...r.errors,...l.errors];for(let t of u)M.warn(e.TASK_EVENT.storeSweepFailed,Error(t));if(u.length>0&&i.hasUI&&i.ui.notify(u.join(`
2
- `),`warning`),i.hasUI&&Z.setUICtx(i.ui),await s(E.storeRead,async()=>{await J.readAsync(n)}),!n()||(z=J.onExternalChange(Y),await s(E.reconcile,async()=>{await X.reconcile(n)}),!n()))return;o=E.refresh,Y()}catch(t){if(!n())return;throw q(),M.error(e.TASK_EVENT.sessionStartFailed,t,{[T]:o,[w]:D(t)}),t}},s=(0,x.readDoomReadinessCoordinator)(O);if(!s){let e=o();return U={sessionManager:n.sessionManager,operation:e},e}let l=U?.operation,u=(async()=>{l&&await Promise.allSettled([l]),N&&!A.aborted&&r===P&&await s.start(C,`${n.sessionManager.getSessionId()}:${r}`,async e=>(await o(e),{value:void 0})).wait()})();U={sessionManager:n.sessionManager,operation:u},Promise.allSettled([u])},ne=e=>{N&&!A.aborted&&e.toolName===`task`&&Y()},re={description:`Collapse or expand the task overlay`,handler:async e=>{N&&!A.aborted&&e.hasUI&&(await K(e),N&&!A.aborted&&Z.isRegistered()&&Z.toggleCollapse())}},Q=async()=>{if(!N)return;N=!1,P+=1;let e=U?.operation;U=void 0;try{e&&await Promise.allSettled([e]),q(),L?.dispose(),V?.(),V=void 0,I?.dispose()}finally{await j.shutdown()}},$=a.resolveCollapseKey();return{services:[e=>{e.inject([y.DOOM_NARRATION_SERVICE],e=>{let t=(0,y.requireDoomNarrationService)(e);return F=t,()=>{F===t&&(F=void 0)}}),e.inject([v.DOOM_CONTEXT_CONTRIBUTIONS_SERVICE],e=>{let t=(0,v.requireDoomContextContributions)(e).register(f.createTaskContextContribution(()=>J.snapshot.tasks));return()=>t.dispose()}),e.inject([h.DOOM_DELEGATION_SERVICE],e=>{let t=(0,h.readDoomDelegationService)(e);if(t)return X.bind(e,t)}),e.inject([_.DOOM_BACKGROUND_WORK_SERVICE],e=>{let n=(0,_.readDoomBackgroundWorkService)(e);if(!n)return;let r=n.register({provider:t.BACKGROUND_WORK_PROVIDER,listActiveWork:()=>X.listActiveWork()});return B=r,()=>{r.dispose(),B===r&&(B=void 0)}}),e.inject([S.DOOM_UI_HUB_SERVICE],e=>{let t=(0,S.requireDoomUiHub)(e).registerLeader({source:C,bindings:[{id:`tasks.open`,path:[{key:`t`,label:`tasks`,detail:`session task list`,order:65},{key:`l`,label:`list`,detail:`tasks in this session`}],command:{name:r.COMMAND_NAME}}]}),n=()=>t.dispose();return V=n,()=>{n(),V===n&&(V=void 0)}})}],onStop:Q,onDispose:Q,tools:[(0,b.definePiTool)(d.createTaskTool(ee,{renderCall:(e,t)=>o.renderTaskCall(e,t,J.snapshot.tasks),renderResult:o.renderTaskResult}))],commands:[i.createTasksCommand(J,u.openTaskSpace,K)],messageRenderers:[[t.NOTIFY_CUSTOM_TYPE,(e,t,n)=>new g.Text(n.fg(`muted`,typeof e.content==`string`?e.content:``),0,0)]],shortcuts:$===`off`?[]:[[$,re]],events:{session_start:te,session_compact:Y,session_tree:Y,tool_execution_end:ne}}});exports.default=O,exports.taskExtension=O;
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ const require_root_cli = require("../src/extensions/workspaces/sessions/(backend)/root.cli.cjs");
6
+ const require_tasks_cli = require("../src/extensions/workspaces/sessions/(backend)/command/tasks.cli.cjs");
7
+ const require_session_compact_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/session-compact.cli.cjs");
8
+ const require_session_start_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs");
9
+ const require_session_tree_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/session-tree.cli.cjs");
10
+ const require_tool_execution_end_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.cjs");
11
+ const require_task_cli = require("../src/extensions/workspaces/sessions/(backend)/tool/task.cli.cjs");
12
+ const require_task_cli$1 = require("../src/extensions/workspaces/sessions/(frontend)/tool/task.cli.cjs");
13
+ const require_doom_task_notify_cli = require("../src/extensions/workspaces/sessions/(frontend)/message/doom-task-notify.cli.cjs");
14
+ let _agimon_ai_doompi_core_pi_extension = require("@agimon-ai/doompi-core/pi-extension");
15
+ let _agimon_ai_doompi_core_extension_file = require("@agimon-ai/doompi-core/extension-file");
16
+ //#region generated/pi.ts
17
+ const at = (value, context) => typeof value === "function" ? value(context) : value;
18
+ const via = (identity, value) => ({
19
+ ...identity,
20
+ ...value
21
+ });
22
+ const extension = (0, _agimon_ai_doompi_core_pi_extension.definePiExtension)("@agimon-ai/doompi-task", async (context) => {
23
+ const scopeSession = await require_root_cli.default(context);
24
+ const contextSession = {
25
+ ...context,
26
+ root: scopeSession.value
27
+ };
28
+ return {
29
+ ...(0, _agimon_ai_doompi_core_extension_file.composeRootHooks)(scopeSession),
30
+ get commands() {
31
+ return [at(require_tasks_cli.default, contextSession)];
32
+ },
33
+ events: {
34
+ session_compact: at(require_session_compact_cli.default, contextSession),
35
+ session_start: at(require_session_start_cli.default, contextSession),
36
+ session_tree: at(require_session_tree_cli.default, contextSession),
37
+ tool_execution_end: at(require_tool_execution_end_cli.default, contextSession)
38
+ },
39
+ get messageRenderers() {
40
+ return [at(require_doom_task_notify_cli.default, contextSession)];
41
+ },
42
+ ...(0, _agimon_ai_doompi_core_pi_extension.piToolContributions)("@agimon-ai/doompi-task", [via({ name: "task" }, (0, _agimon_ai_doompi_core_pi_extension.withPiRenderers)(at(require_task_cli.default, contextSession), at(require_task_cli$1.default, contextSession)))]),
43
+ services: [...scopeSession.services ?? []]
44
+ };
45
+ });
46
+ //#endregion
47
+ exports.default = extension;
48
+ exports.extension = extension;
49
+
3
50
  //# sourceMappingURL=pi.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.cjs","names":["TASK_CONTEXT_CONTRIBUTION_SOURCE","definePiExtension","createTaskErrorReporter","toFailureReporter","createNarrationRequest","TaskStore","narrateTaskCommit","DelegationManager","createNodeDelegationPlatform","getDelegationTimeoutMs","TaskOverlay","getMaxTasks","TASK_EVENT","resolveSessionKey","removeLegacyStoreDirectoryAsync","hasStorePathOverride","sweepStoreFilesAsync","getStoreTtlMs","readDoomReadinessCoordinator","resolveCollapseKey","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","definePiTool","createTaskTool","renderTaskCall","renderTaskResult","createTasksCommand","openTaskSpace","NOTIFY_CUSTOM_TYPE","Text"],"sources":["../../src/extensions/pi.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 {\n createNarrationRequest,\n DOOM_NARRATION_SERVICE,\n type DoomNarrationService,\n requireDoomNarrationService,\n} from '@agimon-ai/doompi-core/narration';\nimport { definePiExtension, definePiTool } 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 } from '@earendil-works/pi-coding-agent';\nimport type { KeyId } from '@earendil-works/pi-tui';\nimport { Text } from '@earendil-works/pi-tui';\n\nimport { createTasksCommand } from '../controllers/tasksCommand';\nimport { COMMAND_NAME, TOOL_NAME } from '../schemas/task';\nimport {\n COLLAPSE_KEY_OFF,\n getDelegationTimeoutMs,\n getMaxTasks,\n getStoreTtlMs,\n resolveCollapseKey,\n} from '../services/config';\nimport { createTaskContextContribution, TASK_CONTEXT_CONTRIBUTION_SOURCE } from '../services/contextContribution';\nimport { BACKGROUND_WORK_PROVIDER, DelegationManager, NOTIFY_CUSTOM_TYPE } 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 { createTaskTool } from '../tools/task';\nimport { renderTaskCall, renderTaskResult } from '../tui/format';\nimport { TaskOverlay } from '../tui/taskOverlay';\nimport { openTaskSpace } from '../tui/taskSpace';\n\ninterface SessionContextLike {\n hasUI: boolean;\n ui: Parameters<TaskOverlay['setUICtx']>[0];\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. */\nexport const taskExtension = definePiExtension(LEADER_SOURCE, ({ context: cordis, pi, signal: pluginSignal }) => {\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: TaskOverlay | 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 = new TaskOverlay({ getTasks: () => taskStore.snapshot.tasks, delegation: delegationManager });\n overlay = taskOverlay;\n\n const toolDependencies: Parameters<typeof createTaskTool>[0] = {\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 shortcutOptions: Parameters<ExtensionAPI['registerShortcut']>[1] = {\n description: 'Collapse or expand the task overlay',\n handler: async (ctx: ExtensionContext) => {\n if (!active || pluginSignal.aborted || !ctx.hasUI) return;\n await waitForSessionReadiness(ctx);\n if (!active || pluginSignal.aborted || !taskOverlay.isRegistered()) return;\n taskOverlay.toggleCollapse();\n },\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 const collapseKey = resolveCollapseKey();\n return {\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 tools: [\n definePiTool(\n createTaskTool(toolDependencies, {\n renderCall: (args, theme) => renderTaskCall(args as never, theme, taskStore.snapshot.tasks),\n renderResult: renderTaskResult,\n }),\n ),\n ],\n commands: [createTasksCommand(taskStore, openTaskSpace, waitForSessionReadiness)],\n messageRenderers: [\n [\n NOTIFY_CUSTOM_TYPE,\n (message, _options, theme) =>\n new Text(theme.fg('muted', typeof message.content === 'string' ? message.content : ''), 0, 0),\n ],\n ],\n shortcuts: collapseKey === COLLAPSE_KEY_OFF ? [] : [[collapseKey as KeyId, shortcutOptions]],\n events: {\n session_start: sessionStart,\n session_compact: refresh,\n session_tree: refresh,\n tool_execution_end: toolExecutionEnd,\n },\n };\n});\nexport default taskExtension;\n"],"mappings":"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"}
1
+ {"version":3,"file":"pi.cjs","names":["definePiExtension","rootSession","composeRootHooks","commandTasks","hookSessionCompact","hookSessionStart","hookSessionTree","hookToolExecutionEnd","messageDoomTaskNotify","piToolContributions","withPiRenderers","toolTask","renderTask"],"sources":["../../generated/pi.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { definePiExtension, piToolContributions, withPiRenderers, type PiPluginContext, type PiPluginContributions } from '@agimon-ai/doompi-core/pi-extension';\nimport { composeRootHooks } from '@agimon-ai/doompi-core/extension-file';\n\nimport rootSession from '../src/extensions/workspaces/sessions/(backend)/root.cli';\nimport commandTasks from '../src/extensions/workspaces/sessions/(backend)/command/tasks.cli';\nimport hookSessionCompact from '../src/extensions/workspaces/sessions/(backend)/hook/session-compact.cli';\nimport hookSessionStart from '../src/extensions/workspaces/sessions/(backend)/hook/session-start.cli';\nimport hookSessionTree from '../src/extensions/workspaces/sessions/(backend)/hook/session-tree.cli';\nimport hookToolExecutionEnd from '../src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli';\nimport toolTask from '../src/extensions/workspaces/sessions/(backend)/tool/task.cli';\nimport renderTask from '../src/extensions/workspaces/sessions/(frontend)/tool/task.cli';\nimport messageDoomTaskNotify from '../src/extensions/workspaces/sessions/(frontend)/message/doom-task-notify.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof rootSession> | OptionsOf<typeof commandTasks> | OptionsOf<typeof hookSessionCompact> | OptionsOf<typeof hookSessionStart> | OptionsOf<typeof hookSessionTree> | OptionsOf<typeof hookToolExecutionEnd> | OptionsOf<typeof toolTask> | OptionsOf<typeof messageDoomTaskNotify>, undefined>;\ntype Intersect<Union> =\n (Union extends unknown ? (value: Union) => void : never) extends (value: infer Value) => void ? Value : never;\ntype ExtensionOptions = [InferredOptions] extends [never] ? undefined : Intersect<InferredOptions>;\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const extension = definePiExtension<ExtensionOptions>('@agimon-ai/doompi-task', async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n get commands(): PiPluginContributions['commands'] { return [at(commandTasks, contextSession)]; },\n events: {\n session_compact: at(hookSessionCompact, contextSession) as NonNullable<PiPluginContributions['events']>['session_compact'],\n session_start: at(hookSessionStart, contextSession) as NonNullable<PiPluginContributions['events']>['session_start'],\n session_tree: at(hookSessionTree, contextSession) as NonNullable<PiPluginContributions['events']>['session_tree'],\n tool_execution_end: at(hookToolExecutionEnd, contextSession) as NonNullable<PiPluginContributions['events']>['tool_execution_end'],\n },\n get messageRenderers(): PiPluginContributions['messageRenderers'] { return [at(messageDoomTaskNotify, contextSession)]; },\n ...piToolContributions('@agimon-ai/doompi-task', [via({ name: 'task' }, withPiRenderers(at(toolTask, contextSession), at(renderTask, contextSession)))]),\n services: [...(scopeSession.services ?? [])],\n };\n});\n\nexport default extension;\n"],"mappings":";;;;;;;;;;;;;;;;AAqBA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,aAAA,GAAYA,oCAAAA,kBAAAA,CAAoC,0BAA0B,OAAO,YAAY;CACxG,MAAM,eAAe,MAAMC,iBAAAA,QAAY,OAAO;CAC9C,MAAM,iBAAiB;EAAE,GAAG;EAAS,MAAM,aAAa;CAAM;CAC9D,OAAO;EACL,IAAA,GAAGC,sCAAAA,iBAAAA,CAAiB,YAAY;EAChC,IAAI,WAA8C;GAAE,OAAO,CAAC,GAAGC,kBAAAA,SAAc,cAAc,CAAC;EAAG;EAC/F,QAAQ;GACN,iBAAiB,GAAGC,4BAAAA,SAAoB,cAAc;GACtD,eAAe,GAAGC,0BAAAA,SAAkB,cAAc;GAClD,cAAc,GAAGC,yBAAAA,SAAiB,cAAc;GAChD,oBAAoB,GAAGC,+BAAAA,SAAsB,cAAc;EAC7D;EACA,IAAI,mBAA8D;GAAE,OAAO,CAAC,GAAGC,6BAAAA,SAAuB,cAAc,CAAC;EAAG;EACxH,IAAA,GAAGC,oCAAAA,oBAAAA,CAAoB,0BAA0B,CAAC,IAAI,EAAE,MAAM,OAAO,IAAA,GAAGC,oCAAAA,gBAAAA,CAAgB,GAAGC,iBAAAA,SAAU,cAAc,GAAG,GAAGC,mBAAAA,SAAY,cAAc,CAAC,CAAC,CAAC,CAAC;EACvJ,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;CAC7C;AACF,CAAC"}
@@ -1,6 +1,5 @@
1
- //#region src/extensions/pi.d.ts
2
- /** Install Task state and external resources into its host-owned Cordis plugin fiber. */
3
- export declare const taskExtension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<undefined>;
1
+ //#region generated/pi.d.ts
2
+ export declare const extension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<undefined>;
4
3
  //#endregion
5
- export { taskExtension as default };
4
+ export { extension as default };
6
5
  //# sourceMappingURL=pi.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.d.cts","names":[],"sources":["../../src/extensions/pi.ts"],"mappings":";;qBAwFa,qEAAa"}
1
+ {"version":3,"file":"pi.d.cts","names":[],"sources":["../../generated/pi.ts"],"mappings":";qBAyBa,iEAAS"}
@@ -1,6 +1,5 @@
1
- //#region src/extensions/pi.d.ts
2
- /** Install Task state and external resources into its host-owned Cordis plugin fiber. */
3
- export declare const taskExtension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<undefined>;
1
+ //#region generated/pi.d.ts
2
+ export declare const extension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<undefined>;
4
3
  //#endregion
5
- export { taskExtension as default };
4
+ export { extension as default };
6
5
  //# sourceMappingURL=pi.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.d.mts","names":[],"sources":["../../src/extensions/pi.ts"],"mappings":";;qBAwFa,qEAAa"}
1
+ {"version":3,"file":"pi.d.mts","names":[],"sources":["../../generated/pi.ts"],"mappings":";qBAyBa,iEAAS"}
@@ -1,3 +1,45 @@
1
- import{TASK_EVENT as e}from"../types/telemetry.mjs";import{BACKGROUND_WORK_PROVIDER as t,DelegationManager as n,NOTIFY_CUSTOM_TYPE as r}from"../services/delegation/index.mjs";import{createTaskErrorReporter as i,toFailureReporter as a}from"../services/logSinkTelemetry/index.mjs";import{COMMAND_NAME as o}from"../constants/task.mjs";import"../schemas/task.mjs";import{createTasksCommand as s}from"../controllers/tasksCommand.mjs";import{getDelegationTimeoutMs as c,getMaxTasks as l,getStoreTtlMs as u,resolveCollapseKey as d}from"../services/config/index.mjs";import{renderTaskCall as f,renderTaskResult as p}from"../tui/format.mjs";import{TaskOverlay as m}from"../tui/taskOverlay.mjs";import{hasStorePathOverride as h,removeLegacyStoreDirectoryAsync as ee,resolveSessionKey as te,sweepStoreFilesAsync as ne}from"../services/paths/index.mjs";import{TaskStore as re}from"../services/taskStore/index.mjs";import{openTaskSpace as ie}from"../tui/taskSpace.mjs";import{createTaskTool as ae}from"../tools/task.mjs";import{TASK_CONTEXT_CONTRIBUTION_SOURCE as g,createTaskContextContribution as oe}from"../services/contextContribution/index.mjs";import{createNodeDelegationPlatform as se}from"../services/delegationPlatform/index.mjs";import{narrateTaskCommit as _}from"../services/taskNarration/index.mjs";import{DOOM_DELEGATION_SERVICE as ce,readDoomDelegationService as le}from"@agimon-ai/doompi-core/delegation";import{Text as v}from"@earendil-works/pi-tui";import{DOOM_BACKGROUND_WORK_SERVICE as y,readDoomBackgroundWorkService as b}from"@agimon-ai/doompi-core/background-work";import{DOOM_CONTEXT_CONTRIBUTIONS_SERVICE as x,requireDoomContextContributions as S}from"@agimon-ai/doompi-core/context-contributions";import{DOOM_NARRATION_SERVICE as C,createNarrationRequest as w,requireDoomNarrationService as ue}from"@agimon-ai/doompi-core/narration";import{definePiExtension as T,definePiTool as de}from"@agimon-ai/doompi-core/pi-extension";import{readDoomReadinessCoordinator as fe}from"@agimon-ai/doompi-core/readiness";import{DOOM_UI_HUB_SERVICE as pe,requireDoomUiHub as me}from"@agimon-ai/doompi-core/ui-hub";const E=g,D=`error.type`,O=`task.stage`,k={sessionId:`session_id`,storeCleanup:`store_cleanup`,storeSweep:`store_sweep`,storeRead:`store_read`,reconcile:`reconcile`,refresh:`refresh`};function A(e){return e instanceof Error?e.name||`Error`:typeof e==`string`?`StringError`:e&&typeof e==`object`?`ObjectError`:`UnknownError`}const j=T(E,({context:g,pi:T,signal:j})=>{let M=i(),N=a(M),P=!0,F=0,I,L,R,z,B,V,H,U,W,G=e=>{M.recordWarning(`doom_task.narration_failed`,e).catch(e=>{process.emitWarning(`Doom-task could not record a narration failure: ${String(e)}`)})},he={narrate(e){let t=I,n=w(e);if(t&&n)try{Promise.resolve(t.request(n)).catch(G)}catch(e){G(e)}}},K=async(e,t)=>{t?.throwIfAborted();let n=W;if(!n)throw Error(`doom-task session initialization has not started`);if(n.sessionManager!==e.sessionManager)throw Error(`doom-task readiness belongs to a stale Pi session`);if(await n.operation,t?.throwIfAborted(),!P||j.aborted||n!==W||!U)throw Error(`doom-task readiness belongs to a stale extension generation`)},q=()=>{B?.(),B=void 0,R?.reset(),z?.dispose(),U=void 0},J=new re({report:N,onCommitted:(e,t)=>_(he,e,t)});L=J;let Y=()=>{P&&!j.aborted&&(z?.update(),V?.update())},X=new n({store:J,cwd:process.cwd(),platform:se(),notify:(e,t)=>T.sendMessage(e,t),getSessionId:()=>U,onChange:Y,runTimeoutMs:c(),report:N,onNotifyError:(e,t)=>{M.recordNotificationError(e,t)}});R=X;let Z=new m({getTasks:()=>J.snapshot.tasks,delegation:X});z=Z;let ge={store:J,delegation:X,maxTasks:l(),onChange:Y,report:N,waitUntilReady:K},_e=async(t,n)=>{if(!P||j.aborted)return;let r=++F;U!==void 0&&q();let i=n,a=async t=>{let n=()=>!t?.aborted&&P&&!j.aborted&&r===F,a=k.sessionId,o=async(t,n)=>{a=t;try{await n()}catch(n){N.warn(e.sessionStartDegraded,n,{[O]:t,[D]:A(n)})}};try{let t=i.sessionManager?.getSessionId();if(!t)throw Error(`doom-task requires a session id`);U=t,J.configureSession(te(t)),a=k.storeCleanup;let r=await ee(J.storePath);if(!n())return;a=k.storeSweep;let s=h()?{removed:[],errors:[]}:await ne(J.storePath,u());if(!n())return;let c=[...r.errors,...s.errors];for(let t of c)N.warn(e.storeSweepFailed,Error(t));if(c.length>0&&i.hasUI&&i.ui.notify(c.join(`
2
- `),`warning`),i.hasUI&&Z.setUICtx(i.ui),await o(k.storeRead,async()=>{await J.readAsync(n)}),!n()||(B=J.onExternalChange(Y),await o(k.reconcile,async()=>{await X.reconcile(n)}),!n()))return;a=k.refresh,Y()}catch(t){if(!n())return;throw q(),N.error(e.sessionStartFailed,t,{[O]:a,[D]:A(t)}),t}},o=fe(g);if(!o){let e=a();return W={sessionManager:n.sessionManager,operation:e},e}let s=W?.operation,c=(async()=>{s&&await Promise.allSettled([s]),P&&!j.aborted&&r===F&&await o.start(E,`${n.sessionManager.getSessionId()}:${r}`,async e=>(await a(e),{value:void 0})).wait()})();W={sessionManager:n.sessionManager,operation:c},Promise.allSettled([c])},ve=e=>{P&&!j.aborted&&e.toolName===`task`&&Y()},ye={description:`Collapse or expand the task overlay`,handler:async e=>{P&&!j.aborted&&e.hasUI&&(await K(e),P&&!j.aborted&&Z.isRegistered()&&Z.toggleCollapse())}},Q=async()=>{if(!P)return;P=!1,F+=1;let e=W?.operation;W=void 0;try{e&&await Promise.allSettled([e]),q(),R?.dispose(),H?.(),H=void 0,L?.dispose()}finally{await M.shutdown()}},$=d();return{services:[e=>{e.inject([C],e=>{let t=ue(e);return I=t,()=>{I===t&&(I=void 0)}}),e.inject([x],e=>{let t=S(e).register(oe(()=>J.snapshot.tasks));return()=>t.dispose()}),e.inject([ce],e=>{let t=le(e);if(t)return X.bind(e,t)}),e.inject([y],e=>{let n=b(e);if(!n)return;let r=n.register({provider:t,listActiveWork:()=>X.listActiveWork()});return V=r,()=>{r.dispose(),V===r&&(V=void 0)}}),e.inject([pe],e=>{let t=me(e).registerLeader({source:E,bindings:[{id:`tasks.open`,path:[{key:`t`,label:`tasks`,detail:`session task list`,order:65},{key:`l`,label:`list`,detail:`tasks in this session`}],command:{name:o}}]}),n=()=>t.dispose();return H=n,()=>{n(),H===n&&(H=void 0)}})}],onStop:Q,onDispose:Q,tools:[de(ae(ge,{renderCall:(e,t)=>f(e,t,J.snapshot.tasks),renderResult:p}))],commands:[s(J,ie,K)],messageRenderers:[[r,(e,t,n)=>new v(n.fg(`muted`,typeof e.content==`string`?e.content:``),0,0)]],shortcuts:$===`off`?[]:[[$,ye]],events:{session_start:_e,session_compact:Y,session_tree:Y,tool_execution_end:ve}}});export{j as default,j as taskExtension};
1
+ import root_cli_default from "../src/extensions/workspaces/sessions/(backend)/root.cli.mjs";
2
+ import tasks_cli_default from "../src/extensions/workspaces/sessions/(backend)/command/tasks.cli.mjs";
3
+ import session_compact_cli_default from "../src/extensions/workspaces/sessions/(backend)/hook/session-compact.cli.mjs";
4
+ import session_start_cli_default from "../src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs";
5
+ import session_tree_cli_default from "../src/extensions/workspaces/sessions/(backend)/hook/session-tree.cli.mjs";
6
+ import tool_execution_end_cli_default from "../src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.mjs";
7
+ import task_cli_default from "../src/extensions/workspaces/sessions/(backend)/tool/task.cli.mjs";
8
+ import task_cli_default$1 from "../src/extensions/workspaces/sessions/(frontend)/tool/task.cli.mjs";
9
+ import doom_task_notify_cli_default from "../src/extensions/workspaces/sessions/(frontend)/message/doom-task-notify.cli.mjs";
10
+ import { definePiExtension, piToolContributions, withPiRenderers } from "@agimon-ai/doompi-core/pi-extension";
11
+ import { composeRootHooks } from "@agimon-ai/doompi-core/extension-file";
12
+ //#region generated/pi.ts
13
+ const at = (value, context) => typeof value === "function" ? value(context) : value;
14
+ const via = (identity, value) => ({
15
+ ...identity,
16
+ ...value
17
+ });
18
+ const extension = definePiExtension("@agimon-ai/doompi-task", async (context) => {
19
+ const scopeSession = await root_cli_default(context);
20
+ const contextSession = {
21
+ ...context,
22
+ root: scopeSession.value
23
+ };
24
+ return {
25
+ ...composeRootHooks(scopeSession),
26
+ get commands() {
27
+ return [at(tasks_cli_default, contextSession)];
28
+ },
29
+ events: {
30
+ session_compact: at(session_compact_cli_default, contextSession),
31
+ session_start: at(session_start_cli_default, contextSession),
32
+ session_tree: at(session_tree_cli_default, contextSession),
33
+ tool_execution_end: at(tool_execution_end_cli_default, contextSession)
34
+ },
35
+ get messageRenderers() {
36
+ return [at(doom_task_notify_cli_default, contextSession)];
37
+ },
38
+ ...piToolContributions("@agimon-ai/doompi-task", [via({ name: "task" }, withPiRenderers(at(task_cli_default, contextSession), at(task_cli_default$1, contextSession)))]),
39
+ services: [...scopeSession.services ?? []]
40
+ };
41
+ });
42
+ //#endregion
43
+ export { extension as default, extension };
44
+
3
45
  //# sourceMappingURL=pi.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.mjs","names":[],"sources":["../../src/extensions/pi.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 {\n createNarrationRequest,\n DOOM_NARRATION_SERVICE,\n type DoomNarrationService,\n requireDoomNarrationService,\n} from '@agimon-ai/doompi-core/narration';\nimport { definePiExtension, definePiTool } 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 } from '@earendil-works/pi-coding-agent';\nimport type { KeyId } from '@earendil-works/pi-tui';\nimport { Text } from '@earendil-works/pi-tui';\n\nimport { createTasksCommand } from '../controllers/tasksCommand';\nimport { COMMAND_NAME, TOOL_NAME } from '../schemas/task';\nimport {\n COLLAPSE_KEY_OFF,\n getDelegationTimeoutMs,\n getMaxTasks,\n getStoreTtlMs,\n resolveCollapseKey,\n} from '../services/config';\nimport { createTaskContextContribution, TASK_CONTEXT_CONTRIBUTION_SOURCE } from '../services/contextContribution';\nimport { BACKGROUND_WORK_PROVIDER, DelegationManager, NOTIFY_CUSTOM_TYPE } 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 { createTaskTool } from '../tools/task';\nimport { renderTaskCall, renderTaskResult } from '../tui/format';\nimport { TaskOverlay } from '../tui/taskOverlay';\nimport { openTaskSpace } from '../tui/taskSpace';\n\ninterface SessionContextLike {\n hasUI: boolean;\n ui: Parameters<TaskOverlay['setUICtx']>[0];\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. */\nexport const taskExtension = definePiExtension(LEADER_SOURCE, ({ context: cordis, pi, signal: pluginSignal }) => {\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: TaskOverlay | 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 = new TaskOverlay({ getTasks: () => taskStore.snapshot.tasks, delegation: delegationManager });\n overlay = taskOverlay;\n\n const toolDependencies: Parameters<typeof createTaskTool>[0] = {\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 shortcutOptions: Parameters<ExtensionAPI['registerShortcut']>[1] = {\n description: 'Collapse or expand the task overlay',\n handler: async (ctx: ExtensionContext) => {\n if (!active || pluginSignal.aborted || !ctx.hasUI) return;\n await waitForSessionReadiness(ctx);\n if (!active || pluginSignal.aborted || !taskOverlay.isRegistered()) return;\n taskOverlay.toggleCollapse();\n },\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 const collapseKey = resolveCollapseKey();\n return {\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 tools: [\n definePiTool(\n createTaskTool(toolDependencies, {\n renderCall: (args, theme) => renderTaskCall(args as never, theme, taskStore.snapshot.tasks),\n renderResult: renderTaskResult,\n }),\n ),\n ],\n commands: [createTasksCommand(taskStore, openTaskSpace, waitForSessionReadiness)],\n messageRenderers: [\n [\n NOTIFY_CUSTOM_TYPE,\n (message, _options, theme) =>\n new Text(theme.fg('muted', typeof message.content === 'string' ? message.content : ''), 0, 0),\n ],\n ],\n shortcuts: collapseKey === COLLAPSE_KEY_OFF ? [] : [[collapseKey as KeyId, shortcutOptions]],\n events: {\n session_start: sessionStart,\n session_compact: refresh,\n session_tree: refresh,\n tool_execution_end: toolExecutionEnd,\n },\n };\n});\nexport default taskExtension;\n"],"mappings":"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"}
1
+ {"version":3,"file":"pi.mjs","names":["rootSession","commandTasks","hookSessionCompact","hookSessionStart","hookSessionTree","hookToolExecutionEnd","messageDoomTaskNotify","toolTask","renderTask"],"sources":["../../generated/pi.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { definePiExtension, piToolContributions, withPiRenderers, type PiPluginContext, type PiPluginContributions } from '@agimon-ai/doompi-core/pi-extension';\nimport { composeRootHooks } from '@agimon-ai/doompi-core/extension-file';\n\nimport rootSession from '../src/extensions/workspaces/sessions/(backend)/root.cli';\nimport commandTasks from '../src/extensions/workspaces/sessions/(backend)/command/tasks.cli';\nimport hookSessionCompact from '../src/extensions/workspaces/sessions/(backend)/hook/session-compact.cli';\nimport hookSessionStart from '../src/extensions/workspaces/sessions/(backend)/hook/session-start.cli';\nimport hookSessionTree from '../src/extensions/workspaces/sessions/(backend)/hook/session-tree.cli';\nimport hookToolExecutionEnd from '../src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli';\nimport toolTask from '../src/extensions/workspaces/sessions/(backend)/tool/task.cli';\nimport renderTask from '../src/extensions/workspaces/sessions/(frontend)/tool/task.cli';\nimport messageDoomTaskNotify from '../src/extensions/workspaces/sessions/(frontend)/message/doom-task-notify.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof rootSession> | OptionsOf<typeof commandTasks> | OptionsOf<typeof hookSessionCompact> | OptionsOf<typeof hookSessionStart> | OptionsOf<typeof hookSessionTree> | OptionsOf<typeof hookToolExecutionEnd> | OptionsOf<typeof toolTask> | OptionsOf<typeof messageDoomTaskNotify>, undefined>;\ntype Intersect<Union> =\n (Union extends unknown ? (value: Union) => void : never) extends (value: infer Value) => void ? Value : never;\ntype ExtensionOptions = [InferredOptions] extends [never] ? undefined : Intersect<InferredOptions>;\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const extension = definePiExtension<ExtensionOptions>('@agimon-ai/doompi-task', async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n get commands(): PiPluginContributions['commands'] { return [at(commandTasks, contextSession)]; },\n events: {\n session_compact: at(hookSessionCompact, contextSession) as NonNullable<PiPluginContributions['events']>['session_compact'],\n session_start: at(hookSessionStart, contextSession) as NonNullable<PiPluginContributions['events']>['session_start'],\n session_tree: at(hookSessionTree, contextSession) as NonNullable<PiPluginContributions['events']>['session_tree'],\n tool_execution_end: at(hookToolExecutionEnd, contextSession) as NonNullable<PiPluginContributions['events']>['tool_execution_end'],\n },\n get messageRenderers(): PiPluginContributions['messageRenderers'] { return [at(messageDoomTaskNotify, contextSession)]; },\n ...piToolContributions('@agimon-ai/doompi-task', [via({ name: 'task' }, withPiRenderers(at(toolTask, contextSession), at(renderTask, contextSession)))]),\n services: [...(scopeSession.services ?? [])],\n };\n});\n\nexport default extension;\n"],"mappings":";;;;;;;;;;;;AAqBA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,YAAY,kBAAoC,0BAA0B,OAAO,YAAY;CACxG,MAAM,eAAe,MAAMA,iBAAY,OAAO;CAC9C,MAAM,iBAAiB;EAAE,GAAG;EAAS,MAAM,aAAa;CAAM;CAC9D,OAAO;EACL,GAAG,iBAAiB,YAAY;EAChC,IAAI,WAA8C;GAAE,OAAO,CAAC,GAAGC,mBAAc,cAAc,CAAC;EAAG;EAC/F,QAAQ;GACN,iBAAiB,GAAGC,6BAAoB,cAAc;GACtD,eAAe,GAAGC,2BAAkB,cAAc;GAClD,cAAc,GAAGC,0BAAiB,cAAc;GAChD,oBAAoB,GAAGC,gCAAsB,cAAc;EAC7D;EACA,IAAI,mBAA8D;GAAE,OAAO,CAAC,GAAGC,8BAAuB,cAAc,CAAC;EAAG;EACxH,GAAG,oBAAoB,0BAA0B,CAAC,IAAI,EAAE,MAAM,OAAO,GAAG,gBAAgB,GAAGC,kBAAU,cAAc,GAAG,GAAGC,oBAAY,cAAc,CAAC,CAAC,CAAC,CAAC;EACvJ,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;CAC7C;AACF,CAAC"}
@@ -1,2 +1,57 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../services/delegation/index.cjs"),t=require("../constants/task.cjs"),n=require("../schemas/task.cjs"),r=require("../services/taskResult/index.cjs"),i=require("../services/config/index.cjs"),a=require("../services/paths/index.cjs"),o=require("../services/taskStore/index.cjs"),s=require("../services/reducer/index.cjs"),c=require("../services/delegationPlatform/index.cjs"),l=require("../types/webTasks.cjs"),u=require("../controllers/webTasksChannel.cjs");let d=require("@agimon-ai/doompi-core/delegation"),f=require("@agimon-ai/doompi-core/server-facet"),p=require("typebox/value");const m=`@agimon-ai/doompi-task`;function h(e){return typeof e==`object`&&e&&`content`in e?e:{content:[{type:`text`,text:typeof e==`string`?e:JSON.stringify(e,null,2)}],details:e}}function g(e){return{content:[{type:`text`,text:e instanceof Error?e.message:String(e)}],isError:!0}}async function _(e,t,n,i){let{document:a,value:o}=await e.mutate(e=>{let r=s.applyTaskMutation(e,t,n,void 0,i);return{...s.isCommittingOp(r.op)?{document:r.document}:{},value:r}});if(o.op.kind===`error`)throw Error(o.op.message);return r.buildToolResult(t,n,a,o.op)}async function v(e,t,n){let r=[];for(let[i,a]of t.entries())try{let t=await e.assign(a.id,{agent:a.agent,inlineAgent:a.inlineAgent,instructions:a.instructions,relevantFiles:a.relevantFiles,priorFindings:a.priorFindings,model:a.model,...a.context===`fork`||a.context===`fresh`?{context:a.context}:{},signal:n});r.push({index:i,id:a.id,agent:a.agent,...t})}catch(e){r.push({index:i,id:a.id,agent:a.agent,ok:!1,message:String(e)})}return r}function y(e,t,i){return{name:`task`,label:`Task`,description:`Maintain a persistent task graph and delegate ready tasks to background agents.`,parameters:n.TaskParamsSchema,promptSnippet:`Track complex work persistently and delegate ready tasks`,executionMode:`serial`,async execute(a,o,s,c){if(!(0,p.Check)(n.TaskParamsSchema,o))return g(`Invalid task parameters.`);let l=o;try{if(l.action===`assign`){if(!l.assignments?.length)throw Error(`assign requires a non-empty assignments[] array`);c?.(h(`Delegating ${l.assignments.length} task${l.assignments.length===1?``:`s`}...`));let n=await v(t,l.assignments,s),i=n.filter(e=>e.ok).map(e=>e.id),a=r.formatAssignmentResults(n);if(i.length===0)throw Error(a);return r.buildAssignmentResult(l,e.snapshot,a,{assigned:i,failed:n.length-i.length})}if(l.action===`cancel`){let n=await t.cancel(l.id??NaN);if(!n.ok)throw Error(n.message);return r.buildTextResult(`cancel`,l,e.snapshot,n.message)}return _(e,l.action,l,i)}catch(e){return g(e)}}}}const b=(0,f.defineServerPlugin)({name:m,global:{channels:[u.createTasksChannel]},workspace:{channels:[u.createTasksChannel]},session:({host:n,agent:r})=>{if(!r)throw Error(`Task session requires the headless host.`);let s=r.context;if(n.context.directEvents===void 0)throw Error(`Task headless facet requires the session direct event bus.`);let u=n.context.directEvents,f=i.getMaxTasks(s.environment),p=new o.TaskStore({env:s.environment,onCommitted:(e,t)=>{s.client.setStatus(m,`tasks: ${t.tasks.length}`),u.publish(l.TASKS_CHANNEL_TYPE,s.sessionId,t)}});p.configureSession(a.resolveSessionKey(s.sessionId,s.environment));let h=new e.DelegationManager({store:p,cwd:s.cwd,platform:c.createNodeDelegationPlatform(s.environment),getSessionId:()=>s.sessionId,notify:e=>void s.client.notify({body:e.content,level:`info`}),onChange:()=>s.client.setStatus(m,`tasks: ${p.snapshot.tasks.length}`),runTimeoutMs:i.getDelegationTimeoutMs(s.environment),onNotifyError:e=>void s.client.notify({body:String(e),level:`warning`})});return{services:[e=>{e.inject([d.DOOM_DELEGATION_SERVICE],e=>{let t=(0,d.readDoomDelegationService)(e);t&&h.bind(e,t)})}],onDispose(){h.dispose(),p.dispose()},tools:[y(p,h,f)],commands:[{name:t.COMMAND_NAME,description:`List or clear the persistent task graph.`,async execute(e,t){let n=e.trim()===`clear`?`clear`:`list`,r=(await _(p,n,{action:n},f)).content[0];await t.client.notify({body:r?.type===`text`?r.text:`No tasks`,level:`info`})}}],resources:[{name:`doompi/task-board`,kind:`context`,read:()=>JSON.stringify(p.snapshot,null,2)}],activities:[{name:m,async start(e){return p.configureSession(a.resolveSessionKey(e.sessionId,e.environment)),await a.removeLegacyStoreDirectoryAsync(p.storePath,e.cwd),e.environment.DOOM_TASK_STORE_PATH||await a.sweepStoreFilesAsync(p.storePath,i.getStoreTtlMs(e.environment)),await p.readAsync(),await h.reconcile(),r.context.client.setStatus(m,`tasks: ${p.snapshot.tasks.length}`),()=>{h.reset(),r.context.client.setStatus(m,void 0)}}}]}}});exports.default=b,exports.taskServerFacet=b;
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ const require_root_server = require("../src/extensions/workspaces/sessions/(backend)/root.server.cjs");
6
+ const require_task_graph_server = require("../src/extensions/(backend)/channel/task-graph.server.cjs");
7
+ const require_tasks_server = require("../src/extensions/workspaces/sessions/(backend)/command/tasks.server.cjs");
8
+ const require_task_board_server = require("../src/extensions/workspaces/sessions/(backend)/resource/task-board.server.cjs");
9
+ const require_task_server = require("../src/extensions/workspaces/sessions/(backend)/tool/task.server.cjs");
10
+ let _agimon_ai_doompi_core_extension_file = require("@agimon-ai/doompi-core/extension-file");
11
+ let _agimon_ai_doompi_core_server_facet = require("@agimon-ai/doompi-core/server-facet");
12
+ //#region generated/server.ts
13
+ const at = (value, context) => typeof value === "function" ? value(context) : value;
14
+ const via = (identity, value) => ({
15
+ ...identity,
16
+ ...value
17
+ });
18
+ const facet = (0, _agimon_ai_doompi_core_server_facet.defineServerPlugin)({
19
+ name: "@agimon-ai/doompi-task",
20
+ global: () => ({ get channels() {
21
+ return [() => via({ frameType: "task_graph" }, require_task_graph_server.default())];
22
+ } }),
23
+ workspace: () => ({ get channels() {
24
+ return [() => via({ frameType: "task_graph" }, require_task_graph_server.default())];
25
+ } }),
26
+ session: async (context) => {
27
+ const scopeSession = await require_root_server.default(context);
28
+ const contextSession = {
29
+ ...context,
30
+ root: scopeSession.value
31
+ };
32
+ return {
33
+ ...(0, _agimon_ai_doompi_core_extension_file.composeRootHooks)(scopeSession),
34
+ get channels() {
35
+ return [() => via({ frameType: "task_graph" }, require_task_graph_server.default())];
36
+ },
37
+ get commands() {
38
+ return [via({ name: "tasks" }, at(require_tasks_server.default, contextSession))];
39
+ },
40
+ get resources() {
41
+ return [at(require_task_board_server.default, contextSession)];
42
+ },
43
+ get tools() {
44
+ return [via({ name: "task" }, at(require_task_server.default, contextSession))];
45
+ },
46
+ services: [...scopeSession.services ?? []],
47
+ get activities() {
48
+ return [...scopeSession.activities ?? []];
49
+ }
50
+ };
51
+ }
52
+ });
53
+ //#endregion
54
+ exports.default = facet;
55
+ exports.facet = facet;
56
+
2
57
  //# sourceMappingURL=server.cjs.map