@agimon-ai/doompi-user-feedback 0.0.1-alpha.60 → 0.0.1-alpha.62

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 (286) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +23 -1
  2. package/dist/api-contracts.cjs +7 -1
  3. package/dist/api-contracts.d.cts +1 -1
  4. package/dist/api-contracts.d.mts +1 -1
  5. package/dist/api-contracts.mjs +2 -1
  6. package/dist/extensions/pi.cjs +44 -1
  7. package/dist/extensions/pi.cjs.map +1 -1
  8. package/dist/extensions/pi.d.cts +3 -3
  9. package/dist/extensions/pi.d.cts.map +1 -1
  10. package/dist/extensions/pi.d.mts +3 -3
  11. package/dist/extensions/pi.d.mts.map +1 -1
  12. package/dist/extensions/pi.mjs +39 -1
  13. package/dist/extensions/pi.mjs.map +1 -1
  14. package/dist/extensions/server.cjs +38 -1
  15. package/dist/extensions/server.cjs.map +1 -1
  16. package/dist/extensions/server.d.cts +3 -3
  17. package/dist/extensions/server.d.cts.map +1 -1
  18. package/dist/extensions/server.d.mts +3 -3
  19. package/dist/extensions/server.d.mts.map +1 -1
  20. package/dist/extensions/server.mjs +33 -1
  21. package/dist/extensions/server.mjs.map +1 -1
  22. package/dist/extensions/web.mjs +621 -0
  23. package/dist/extensions/web.mjs.map +1 -0
  24. package/dist/index.d.cts +2 -2
  25. package/dist/index.d.mts +2 -2
  26. package/dist/index.mjs +1 -1
  27. package/dist/src/constants/questionnaire.cjs +10 -0
  28. package/dist/src/constants/questionnaire.cjs.map +1 -0
  29. package/dist/src/constants/questionnaire.mjs +10 -0
  30. package/dist/src/constants/questionnaire.mjs.map +1 -0
  31. package/dist/src/constants/tool.cjs +23 -0
  32. package/dist/src/constants/tool.cjs.map +1 -0
  33. package/dist/src/constants/tool.mjs +17 -0
  34. package/dist/src/constants/tool.mjs.map +1 -0
  35. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.cjs +145 -0
  36. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.cjs.map +1 -0
  37. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.mjs +145 -0
  38. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.mjs.map +1 -0
  39. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.cjs +13 -0
  40. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.cjs.map +1 -0
  41. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.mjs +14 -0
  42. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.mjs.map +1 -0
  43. package/dist/src/extensions/workspaces/sessions/(backend)/_tools/askUserHeadless.cjs +62 -0
  44. package/dist/src/extensions/workspaces/sessions/(backend)/_tools/askUserHeadless.cjs.map +1 -0
  45. package/dist/src/extensions/workspaces/sessions/(backend)/_tools/askUserHeadless.mjs +62 -0
  46. package/dist/src/extensions/workspaces/sessions/(backend)/_tools/askUserHeadless.mjs.map +1 -0
  47. package/dist/src/extensions/workspaces/sessions/(backend)/_tools/askUserQuestion.cjs +128 -0
  48. package/dist/src/extensions/workspaces/sessions/(backend)/_tools/askUserQuestion.cjs.map +1 -0
  49. package/dist/src/extensions/workspaces/sessions/(backend)/_tools/askUserQuestion.mjs +128 -0
  50. package/dist/src/extensions/workspaces/sessions/(backend)/_tools/askUserQuestion.mjs.map +1 -0
  51. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/before-agent-start.cli.cjs +6 -0
  52. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/before-agent-start.cli.cjs.map +1 -0
  53. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/before-agent-start.cli.mjs +6 -0
  54. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/before-agent-start.cli.mjs.map +1 -0
  55. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-start.cli.cjs +6 -0
  56. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-start.cli.cjs.map +1 -0
  57. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-start.cli.mjs +6 -0
  58. package/dist/src/extensions/workspaces/sessions/(backend)/hook/_lib/session-start.cli.mjs.map +1 -0
  59. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs +7 -0
  60. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs.map +1 -0
  61. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.mjs +8 -0
  62. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.mjs.map +1 -0
  63. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs +7 -0
  64. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs.map +1 -0
  65. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs +8 -0
  66. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs.map +1 -0
  67. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompi-use-user-feedback.cli.cjs +15 -0
  68. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompi-use-user-feedback.cli.cjs.map +1 -0
  69. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompi-use-user-feedback.cli.mjs +15 -0
  70. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompi-use-user-feedback.cli.mjs.map +1 -0
  71. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-user-feedback.cli.cjs +7 -0
  72. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-user-feedback.cli.cjs.map +1 -0
  73. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-user-feedback.cli.mjs +8 -0
  74. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-user-feedback.cli.mjs.map +1 -0
  75. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs +7 -0
  76. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs.map +1 -0
  77. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs +8 -0
  78. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs.map +1 -0
  79. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs +7 -0
  80. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs.map +1 -0
  81. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs +8 -0
  82. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs.map +1 -0
  83. package/dist/src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.cli.cjs +9 -0
  84. package/dist/src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.cli.cjs.map +1 -0
  85. package/dist/src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.cli.mjs +10 -0
  86. package/dist/src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.cli.mjs.map +1 -0
  87. package/dist/src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.server.cjs +7 -0
  88. package/dist/src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.server.cjs.map +1 -0
  89. package/dist/src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.server.mjs +8 -0
  90. package/dist/src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.server.mjs.map +1 -0
  91. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/_lib/ask-user-question.cli.cjs +6 -0
  92. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/_lib/ask-user-question.cli.cjs.map +1 -0
  93. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/_lib/ask-user-question.cli.mjs +6 -0
  94. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/_lib/ask-user-question.cli.mjs.map +1 -0
  95. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/ask-user-question.cli.cjs +7 -0
  96. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/ask-user-question.cli.cjs.map +1 -0
  97. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/ask-user-question.cli.mjs +8 -0
  98. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/ask-user-question.cli.mjs.map +1 -0
  99. package/dist/src/schemas/apiContracts.cjs +13 -0
  100. package/dist/src/schemas/apiContracts.cjs.map +1 -0
  101. package/dist/{schemas → src/schemas}/apiContracts.d.cts.map +1 -1
  102. package/dist/{schemas → src/schemas}/apiContracts.d.mts.map +1 -1
  103. package/dist/src/schemas/apiContracts.mjs +13 -0
  104. package/dist/src/schemas/apiContracts.mjs.map +1 -0
  105. package/dist/src/schemas/questionnaire.cjs +37 -0
  106. package/dist/src/schemas/questionnaire.cjs.map +1 -0
  107. package/dist/src/schemas/questionnaire.d.cts.map +1 -0
  108. package/dist/src/schemas/questionnaire.d.mts.map +1 -0
  109. package/dist/src/schemas/questionnaire.mjs +35 -0
  110. package/dist/src/schemas/questionnaire.mjs.map +1 -0
  111. package/dist/src/services/answerEnvelope/index.cjs +116 -0
  112. package/dist/src/services/answerEnvelope/index.cjs.map +1 -0
  113. package/dist/src/services/answerEnvelope/index.mjs +115 -0
  114. package/dist/src/services/answerEnvelope/index.mjs.map +1 -0
  115. package/dist/src/services/askUserToolGate/index.cjs +16 -0
  116. package/dist/src/services/askUserToolGate/index.cjs.map +1 -0
  117. package/dist/src/services/askUserToolGate/index.mjs +16 -0
  118. package/dist/src/services/askUserToolGate/index.mjs.map +1 -0
  119. package/dist/src/services/autonomousVoiceMode/index.cjs +20 -0
  120. package/dist/src/services/autonomousVoiceMode/index.cjs.map +1 -0
  121. package/dist/src/services/autonomousVoiceMode/index.mjs +19 -0
  122. package/dist/src/services/autonomousVoiceMode/index.mjs.map +1 -0
  123. package/dist/src/services/config/index.cjs +47 -0
  124. package/dist/src/services/config/index.cjs.map +1 -0
  125. package/dist/src/services/config/index.mjs +41 -0
  126. package/dist/src/services/config/index.mjs.map +1 -0
  127. package/dist/src/services/questionnaireCoordinator/index.cjs +112 -0
  128. package/dist/src/services/questionnaireCoordinator/index.cjs.map +1 -0
  129. package/dist/src/services/questionnaireCoordinator/index.mjs +112 -0
  130. package/dist/src/services/questionnaireCoordinator/index.mjs.map +1 -0
  131. package/dist/src/services/questionnaireService/index.cjs +124 -0
  132. package/dist/src/services/questionnaireService/index.cjs.map +1 -0
  133. package/dist/src/services/questionnaireService/index.mjs +124 -0
  134. package/dist/src/services/questionnaireService/index.mjs.map +1 -0
  135. package/dist/src/services/responseService/index.cjs +50 -0
  136. package/dist/src/services/responseService/index.cjs.map +1 -0
  137. package/dist/src/services/responseService/index.mjs +43 -0
  138. package/dist/src/services/responseService/index.mjs.map +1 -0
  139. package/dist/src/services/rpcQuestionnaire/index.cjs +12 -0
  140. package/dist/src/services/rpcQuestionnaire/index.cjs.map +1 -0
  141. package/dist/src/services/rpcQuestionnaire/index.mjs +12 -0
  142. package/dist/src/services/rpcQuestionnaire/index.mjs.map +1 -0
  143. package/dist/src/services/validationService/index.cjs +62 -0
  144. package/dist/src/services/validationService/index.cjs.map +1 -0
  145. package/dist/src/services/validationService/index.mjs +56 -0
  146. package/dist/src/services/validationService/index.mjs.map +1 -0
  147. package/dist/src/services/voiceQuestionHandoff/index.cjs +61 -0
  148. package/dist/src/services/voiceQuestionHandoff/index.cjs.map +1 -0
  149. package/dist/src/services/voiceQuestionHandoff/index.mjs +57 -0
  150. package/dist/src/services/voiceQuestionHandoff/index.mjs.map +1 -0
  151. package/dist/src/services/voiceQuestionNarration/index.cjs +37 -0
  152. package/dist/src/services/voiceQuestionNarration/index.cjs.map +1 -0
  153. package/dist/src/services/voiceQuestionNarration/index.mjs +36 -0
  154. package/dist/src/services/voiceQuestionNarration/index.mjs.map +1 -0
  155. package/dist/src/tui/askUserToolRender.cjs +32 -0
  156. package/dist/src/tui/askUserToolRender.cjs.map +1 -0
  157. package/dist/src/tui/askUserToolRender.mjs +32 -0
  158. package/dist/src/tui/askUserToolRender.mjs.map +1 -0
  159. package/dist/src/tui/externalEditor.cjs +68 -0
  160. package/dist/src/tui/externalEditor.cjs.map +1 -0
  161. package/dist/src/tui/externalEditor.mjs +65 -0
  162. package/dist/src/tui/externalEditor.mjs.map +1 -0
  163. package/dist/src/tui/questionnaireComponent.cjs +347 -0
  164. package/dist/src/tui/questionnaireComponent.cjs.map +1 -0
  165. package/dist/src/tui/questionnaireComponent.mjs +347 -0
  166. package/dist/src/tui/questionnaireComponent.mjs.map +1 -0
  167. package/dist/src/tui/runQuestionnaire.cjs +32 -0
  168. package/dist/src/tui/runQuestionnaire.cjs.map +1 -0
  169. package/dist/src/tui/runQuestionnaire.mjs +32 -0
  170. package/dist/{tui/runQuestionnaire.cjs.map → src/tui/runQuestionnaire.mjs.map} +1 -1
  171. package/dist/src/types/askUserWire.cjs +39 -0
  172. package/dist/src/types/askUserWire.cjs.map +1 -0
  173. package/dist/src/types/askUserWire.mjs +37 -0
  174. package/dist/src/types/askUserWire.mjs.map +1 -0
  175. package/dist/src/types/questionnaire.d.cts.map +1 -0
  176. package/dist/src/types/questionnaire.d.mts.map +1 -0
  177. package/package.json +27 -22
  178. package/dist/constants/package.cjs +0 -2
  179. package/dist/constants/package.cjs.map +0 -1
  180. package/dist/constants/package.mjs +0 -2
  181. package/dist/constants/package.mjs.map +0 -1
  182. package/dist/constants/questionnaire.cjs +0 -2
  183. package/dist/constants/questionnaire.cjs.map +0 -1
  184. package/dist/constants/questionnaire.mjs +0 -2
  185. package/dist/constants/questionnaire.mjs.map +0 -1
  186. package/dist/constants/tool.cjs +0 -2
  187. package/dist/constants/tool.cjs.map +0 -1
  188. package/dist/constants/tool.mjs +0 -2
  189. package/dist/constants/tool.mjs.map +0 -1
  190. package/dist/schemas/apiContracts.cjs +0 -2
  191. package/dist/schemas/apiContracts.cjs.map +0 -1
  192. package/dist/schemas/apiContracts.mjs +0 -2
  193. package/dist/schemas/apiContracts.mjs.map +0 -1
  194. package/dist/schemas/questionnaire.cjs +0 -2
  195. package/dist/schemas/questionnaire.cjs.map +0 -1
  196. package/dist/schemas/questionnaire.d.cts.map +0 -1
  197. package/dist/schemas/questionnaire.d.mts.map +0 -1
  198. package/dist/schemas/questionnaire.mjs +0 -2
  199. package/dist/schemas/questionnaire.mjs.map +0 -1
  200. package/dist/services/answerEnvelope/index.cjs +0 -2
  201. package/dist/services/answerEnvelope/index.cjs.map +0 -1
  202. package/dist/services/answerEnvelope/index.mjs +0 -2
  203. package/dist/services/answerEnvelope/index.mjs.map +0 -1
  204. package/dist/services/askUserToolGate/index.cjs +0 -2
  205. package/dist/services/askUserToolGate/index.cjs.map +0 -1
  206. package/dist/services/askUserToolGate/index.mjs +0 -2
  207. package/dist/services/askUserToolGate/index.mjs.map +0 -1
  208. package/dist/services/autonomousVoiceMode/index.cjs +0 -2
  209. package/dist/services/autonomousVoiceMode/index.cjs.map +0 -1
  210. package/dist/services/autonomousVoiceMode/index.mjs +0 -2
  211. package/dist/services/autonomousVoiceMode/index.mjs.map +0 -1
  212. package/dist/services/config/index.cjs +0 -2
  213. package/dist/services/config/index.cjs.map +0 -1
  214. package/dist/services/config/index.mjs +0 -2
  215. package/dist/services/config/index.mjs.map +0 -1
  216. package/dist/services/questionnaireCoordinator/index.cjs +0 -2
  217. package/dist/services/questionnaireCoordinator/index.cjs.map +0 -1
  218. package/dist/services/questionnaireCoordinator/index.mjs +0 -2
  219. package/dist/services/questionnaireCoordinator/index.mjs.map +0 -1
  220. package/dist/services/questionnaireService/index.cjs +0 -2
  221. package/dist/services/questionnaireService/index.cjs.map +0 -1
  222. package/dist/services/questionnaireService/index.mjs +0 -2
  223. package/dist/services/questionnaireService/index.mjs.map +0 -1
  224. package/dist/services/responseService/index.cjs +0 -2
  225. package/dist/services/responseService/index.cjs.map +0 -1
  226. package/dist/services/responseService/index.mjs +0 -2
  227. package/dist/services/responseService/index.mjs.map +0 -1
  228. package/dist/services/rpcQuestionnaire/index.cjs +0 -2
  229. package/dist/services/rpcQuestionnaire/index.cjs.map +0 -1
  230. package/dist/services/rpcQuestionnaire/index.mjs +0 -2
  231. package/dist/services/rpcQuestionnaire/index.mjs.map +0 -1
  232. package/dist/services/validationService/index.cjs +0 -2
  233. package/dist/services/validationService/index.cjs.map +0 -1
  234. package/dist/services/validationService/index.mjs +0 -2
  235. package/dist/services/validationService/index.mjs.map +0 -1
  236. package/dist/services/voiceQuestionHandoff/index.cjs +0 -5
  237. package/dist/services/voiceQuestionHandoff/index.cjs.map +0 -1
  238. package/dist/services/voiceQuestionHandoff/index.mjs +0 -5
  239. package/dist/services/voiceQuestionHandoff/index.mjs.map +0 -1
  240. package/dist/services/voiceQuestionNarration/index.cjs +0 -2
  241. package/dist/services/voiceQuestionNarration/index.cjs.map +0 -1
  242. package/dist/services/voiceQuestionNarration/index.mjs +0 -2
  243. package/dist/services/voiceQuestionNarration/index.mjs.map +0 -1
  244. package/dist/tools/askUserHeadless.cjs +0 -2
  245. package/dist/tools/askUserHeadless.cjs.map +0 -1
  246. package/dist/tools/askUserHeadless.mjs +0 -2
  247. package/dist/tools/askUserHeadless.mjs.map +0 -1
  248. package/dist/tools/askUserQuestion.cjs +0 -14
  249. package/dist/tools/askUserQuestion.cjs.map +0 -1
  250. package/dist/tools/askUserQuestion.mjs +0 -14
  251. package/dist/tools/askUserQuestion.mjs.map +0 -1
  252. package/dist/tui/askUserToolRender.cjs +0 -3
  253. package/dist/tui/askUserToolRender.cjs.map +0 -1
  254. package/dist/tui/askUserToolRender.mjs +0 -3
  255. package/dist/tui/askUserToolRender.mjs.map +0 -1
  256. package/dist/tui/externalEditor.cjs +0 -2
  257. package/dist/tui/externalEditor.cjs.map +0 -1
  258. package/dist/tui/externalEditor.mjs +0 -2
  259. package/dist/tui/externalEditor.mjs.map +0 -1
  260. package/dist/tui/questionnaireComponent.cjs +0 -2
  261. package/dist/tui/questionnaireComponent.cjs.map +0 -1
  262. package/dist/tui/questionnaireComponent.mjs +0 -2
  263. package/dist/tui/questionnaireComponent.mjs.map +0 -1
  264. package/dist/tui/runQuestionnaire.cjs +0 -2
  265. package/dist/tui/runQuestionnaire.mjs +0 -2
  266. package/dist/tui/runQuestionnaire.mjs.map +0 -1
  267. package/dist/types/askUserWire.cjs +0 -2
  268. package/dist/types/askUserWire.cjs.map +0 -1
  269. package/dist/types/askUserWire.mjs +0 -2
  270. package/dist/types/askUserWire.mjs.map +0 -1
  271. package/dist/types/questionnaire.d.cts.map +0 -1
  272. package/dist/types/questionnaire.d.mts.map +0 -1
  273. package/src/extensions/web.ts +0 -33
  274. package/src/types/askUserWire.ts +0 -45
  275. package/src/types/questionnaire.ts +0 -44
  276. package/src/web/components/AskUserQuestionToolMessage.tsx +0 -88
  277. package/src/web/components/QuestionnairePrompt.tsx +0 -371
  278. package/src/web/lib/askUserText.ts +0 -65
  279. package/src/web/lib/questionnaireDraft.ts +0 -149
  280. package/src/web/tsconfig.json +0 -23
  281. /package/dist/{schemas → src/schemas}/apiContracts.d.cts +0 -0
  282. /package/dist/{schemas → src/schemas}/apiContracts.d.mts +0 -0
  283. /package/dist/{schemas → src/schemas}/questionnaire.d.cts +0 -0
  284. /package/dist/{schemas → src/schemas}/questionnaire.d.mts +0 -0
  285. /package/dist/{types → src/types}/questionnaire.d.cts +0 -0
  286. /package/dist/{types → src/types}/questionnaire.d.mts +0 -0
@@ -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 };
@@ -1,2 +1,45 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../constants/package.cjs"),t=require("../constants/tool.cjs"),n=require("../services/askUserToolGate/index.cjs"),r=require("../services/autonomousVoiceMode/index.cjs"),i=require("../services/questionnaireCoordinator/index.cjs"),a=require("../services/voiceQuestionHandoff/index.cjs"),o=require("../tools/askUserQuestion.cjs"),s=require("../tui/askUserToolRender.cjs");let c=require("@agimon-ai/doompi-core/narration"),l=require("@agimon-ai/doompi-core/pi-extension"),u=require("@agimon-ai/doompi-minor-mode");function d(){return{answers:[],cancelled:!0}}const f=(0,l.definePiExtension)(e.PACKAGE_SOURCE,({context:f})=>{let p=!0,m=0,h,g=!1,_=new i.QuestionnaireCoordinator,v,y=!1,b=!0,x=new Set,S=()=>n.askUserToolRestriction(t.ASK_USER_QUESTION_TOOL_NAME,b&&!y),C=()=>x.forEach(e=>e()),w=Promise.resolve(),T=new Set,E=e=>(T.add(e),e.then(()=>T.delete(e),()=>T.delete(e)),e),D=(e,t)=>p&&e===m&&t===h,O=(e,t)=>p&&g&&t?.aborted!==!0&&e.sessionManager.getSessionId()===h,k=async()=>{if(!p)return;let e=_;e.shutdown(),p=!1,m+=1,g=!1,h=void 0,await Promise.allSettled(T),await e.waitForIdle()},A={enqueue:(e,t)=>{let n=_,r=m,i=h;return!g||!D(r,i)||t?.aborted?Promise.resolve(d()):n.enqueue(async t=>{if(!g||!D(r,i)||t.signal.aborted)return d();let n=await e({...t,reportProgress:e=>{D(r,i)&&!t.signal.aborted&&t.reportProgress(e)}});return g&&D(r,i)&&!t.signal.aborted?n:d()},t)},isActive:O,runTui:async(e,t,n,r,i)=>{if(!O(e,r))return;let{runTuiQuestionnaire:a}=await Promise.resolve().then(()=>require("../tui/runQuestionnaire.cjs"));if(!O(e,r))return;let o=await a(e,t,n,r,i);return O(e,r)?o:void 0},tryVoice:e=>p&&g?v?.handoff(e):void 0};return{services:[e=>{e.inject([u.DOOM_MINOR_MODE_CATALOG_SERVICE,c.DOOM_NARRATION_SERVICE],e=>{let t=a.createVoiceQuestionHandoff((0,u.requireMinorModeCatalog)(e),(0,c.requireDoomNarrationService)(e));return v=t,()=>{v===t&&(v=void 0)}}),e.inject([u.DOOM_MINOR_MODE_CATALOG_SERVICE],e=>{let t=(0,u.requireMinorModeCatalog)(e),n=()=>{y=r.isAutonomousVoiceActive(t.list()),C()},i=t.subscribe(n);return n(),()=>{i(),y=!1,C()}})}],tools:[(0,l.definePiTool)(o.createAskUserQuestionTool(f,A,s.askUserToolRender))],events:{before_agent_start:(e,t)=>{O(t)&&(b=t.hasUI,C())},session_start:(e,t)=>{if(!p)return;let n=_;n.shutdown();let r=t.sessionManager.getSessionId(),a=++m;_=new i.QuestionnaireCoordinator,h=r,g=!1;let o=async()=>{await n.waitForIdle(),D(a,r)&&(g=!0)},s=w.then(o,o);return w=s.catch(()=>void 0),E(s)}},onDispose:k,toolRestrictions:[{source:e.PACKAGE_SOURCE,get restrict(){return S()},subscribe(e){return x.add(e),()=>{x.delete(e)}}}]}});exports.default=f,exports.userFeedbackExtension=f;
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_before_agent_start_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs");
7
+ const require_session_start_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs");
8
+ const require_doompi_use_user_feedback_cli = require("../src/extensions/workspaces/sessions/(backend)/resource/doompi-use-user-feedback.cli.cjs");
9
+ const require_ask_user_question_cli = require("../src/extensions/workspaces/sessions/(backend)/tool-restriction/ask-user-question.cli.cjs");
10
+ const require_askUserQuestion_cli = require("../src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.cli.cjs");
11
+ let _agimon_ai_doompi_core_pi_extension = require("@agimon-ai/doompi-core/pi-extension");
12
+ let _agimon_ai_doompi_core_extension_file = require("@agimon-ai/doompi-core/extension-file");
13
+ //#region generated/pi.ts
14
+ const at = (value, context) => typeof value === "function" ? value(context) : value;
15
+ const via = (identity, value) => ({
16
+ ...identity,
17
+ ...value
18
+ });
19
+ const extension = (0, _agimon_ai_doompi_core_pi_extension.definePiExtension)("@agimon-ai/doompi-user-feedback", async (context) => {
20
+ const scopeSession = await require_root_cli.default(context);
21
+ const contextSession = {
22
+ ...context,
23
+ root: scopeSession.value
24
+ };
25
+ return {
26
+ ...(0, _agimon_ai_doompi_core_extension_file.composeRootHooks)(scopeSession),
27
+ events: {
28
+ before_agent_start: at(require_before_agent_start_cli.default, contextSession),
29
+ session_start: at(require_session_start_cli.default, contextSession)
30
+ },
31
+ get resources() {
32
+ return [at(require_doompi_use_user_feedback_cli.default, contextSession)];
33
+ },
34
+ get toolRestrictions() {
35
+ return [at(require_ask_user_question_cli.default, contextSession)];
36
+ },
37
+ ...(0, _agimon_ai_doompi_core_pi_extension.piToolContributions)("@agimon-ai/doompi-user-feedback", [via({ name: "ask_user_question" }, at(require_askUserQuestion_cli.default, contextSession))]),
38
+ services: [...scopeSession.services ?? []]
39
+ };
40
+ });
41
+ //#endregion
42
+ exports.default = extension;
43
+ exports.extension = extension;
44
+
2
45
  //# sourceMappingURL=pi.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.cjs","names":["definePiExtension","PACKAGE_SOURCE","QuestionnaireCoordinator","askUserToolRestriction","ASK_USER_QUESTION_TOOL_NAME","DOOM_MINOR_MODE_CATALOG_SERVICE","DOOM_NARRATION_SERVICE","createVoiceQuestionHandoff","requireMinorModeCatalog","requireDoomNarrationService","isAutonomousVoiceActive","definePiTool","createAskUserQuestionTool","askUserToolRender"],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import { DOOM_NARRATION_SERVICE, requireDoomNarrationService } from '@agimon-ai/doompi-core/narration';\nimport { definePiExtension, definePiTool } from '@agimon-ai/doompi-core/pi-extension';\nimport { type DoomToolRestriction } from '@agimon-ai/doompi-core/tool-surface';\nimport { DOOM_MINOR_MODE_CATALOG_SERVICE, requireMinorModeCatalog } from '@agimon-ai/doompi-minor-mode';\nimport type { Context } from '@deepseek-ai/cordis';\nimport type { ExtensionContext } from '@earendil-works/pi-coding-agent';\n\nimport { PACKAGE_SOURCE } from '../constants/package';\nimport { ASK_USER_QUESTION_TOOL_NAME } from '../constants/tool';\nimport { askUserToolRestriction } from '../services/askUserToolGate';\nimport { isAutonomousVoiceActive } from '../services/autonomousVoiceMode';\nimport { QuestionnaireCoordinator, type QuestionnaireRunner } from '../services/questionnaireCoordinator';\nimport { createVoiceQuestionHandoff, type VoiceQuestionHandoff } from '../services/voiceQuestionHandoff';\nimport { createAskUserQuestionTool } from '../tools/askUserQuestion';\nimport { askUserToolRender } from '../tui/askUserToolRender';\nimport type { QuestionnaireResult } from '../types/questionnaire';\n\nfunction cancelledResult(): QuestionnaireResult {\n return { answers: [], cancelled: true };\n}\n\nexport const userFeedbackExtension = definePiExtension(PACKAGE_SOURCE, ({ context: cordis }) => {\n let active = true;\n let sessionGeneration = 0;\n let sessionId: string | undefined;\n let sessionReady = false;\n let coordinator = new QuestionnaireCoordinator();\n let voiceHandoff: VoiceQuestionHandoff | undefined;\n let voiceActive = false;\n let hasUI = true;\n const restrictionListeners = new Set<() => void>();\n const currentRestriction = (): DoomToolRestriction =>\n askUserToolRestriction(ASK_USER_QUESTION_TOOL_NAME, hasUI && !voiceActive);\n const syncToolRestriction = (): void => restrictionListeners.forEach((listener) => listener());\n let lifecycleQueue: Promise<void> = Promise.resolve();\n const pendingOperations = new Set<Promise<unknown>>();\n\n const trackOperation = <T>(operation: Promise<T>): Promise<T> => {\n pendingOperations.add(operation);\n void operation.then(\n () => pendingOperations.delete(operation),\n () => pendingOperations.delete(operation),\n );\n return operation;\n };\n const ownsGeneration = (generation: number, expectedSessionId: string | undefined): boolean =>\n active && generation === sessionGeneration && expectedSessionId === sessionId;\n const isContextActive = (context: ExtensionContext, signal?: AbortSignal): boolean =>\n active && sessionReady && signal?.aborted !== true && context.sessionManager.getSessionId() === sessionId;\n\n const shutdownRuntime = async (): Promise<void> => {\n if (!active) return;\n const ownedCoordinator = coordinator;\n ownedCoordinator.shutdown();\n active = false;\n sessionGeneration += 1;\n sessionReady = false;\n sessionId = undefined;\n await Promise.allSettled(pendingOperations);\n await ownedCoordinator.waitForIdle();\n };\n\n const toolDependencies: Parameters<typeof createAskUserQuestionTool>[1] = {\n enqueue: (runner: QuestionnaireRunner, signal?: AbortSignal) => {\n const ownedCoordinator = coordinator;\n const generation = sessionGeneration;\n const expectedSessionId = sessionId;\n if (!sessionReady || !ownsGeneration(generation, expectedSessionId) || signal?.aborted) {\n return Promise.resolve(cancelledResult());\n }\n return ownedCoordinator.enqueue(async (context) => {\n if (!sessionReady || !ownsGeneration(generation, expectedSessionId) || context.signal.aborted) {\n return cancelledResult();\n }\n const result = await runner({\n ...context,\n reportProgress: (progress) => {\n if (ownsGeneration(generation, expectedSessionId) && !context.signal.aborted) {\n context.reportProgress(progress);\n }\n },\n });\n return sessionReady && ownsGeneration(generation, expectedSessionId) && !context.signal.aborted\n ? result\n : cancelledResult();\n }, signal);\n },\n isActive: isContextActive,\n runTui: async (context, params, collapseKey, signal, reportProgress) => {\n if (!isContextActive(context, signal)) return undefined;\n const { runTuiQuestionnaire } = await import('../tui/runQuestionnaire');\n if (!isContextActive(context, signal)) return undefined;\n const result = await runTuiQuestionnaire(context, params, collapseKey, signal, reportProgress);\n return isContextActive(context, signal) ? result : undefined;\n },\n tryVoice: (params) => (active && sessionReady ? voiceHandoff?.handoff(params) : undefined),\n };\n\n const beforeAgentStart = (_event: unknown, context: ExtensionContext) => {\n if (!isContextActive(context)) return;\n hasUI = context.hasUI;\n syncToolRestriction();\n };\n\n const sessionStart = (_event: unknown, context: ExtensionContext) => {\n if (!active) return;\n const previousCoordinator = coordinator;\n previousCoordinator.shutdown();\n const activeSessionId = context.sessionManager.getSessionId();\n const generation = ++sessionGeneration;\n const nextCoordinator = new QuestionnaireCoordinator();\n coordinator = nextCoordinator;\n sessionId = activeSessionId;\n sessionReady = false;\n\n const initializeSession = async (): Promise<void> => {\n await previousCoordinator.waitForIdle();\n if (!ownsGeneration(generation, activeSessionId)) return;\n sessionReady = true;\n // The surface is re-registered per session from the gate state in force, so a session\n // that starts with Voice already active needs nothing extra here.\n };\n\n const operation = lifecycleQueue.then(initializeSession, initializeSession);\n lifecycleQueue = operation.catch(() => undefined);\n return trackOperation(operation);\n };\n return {\n services: [\n (serviceContextOwner: Context) => {\n serviceContextOwner.inject([DOOM_MINOR_MODE_CATALOG_SERVICE, DOOM_NARRATION_SERVICE], (serviceContext) => {\n const handoff = createVoiceQuestionHandoff(\n requireMinorModeCatalog(serviceContext),\n requireDoomNarrationService(serviceContext),\n );\n voiceHandoff = handoff;\n return () => {\n if (voiceHandoff === handoff) voiceHandoff = undefined;\n };\n });\n\n // Separate from the handoff binding above: the gate needs only the mode catalog, so it\n // still applies to a Voice build that publishes modes without providing narration.\n serviceContextOwner.inject([DOOM_MINOR_MODE_CATALOG_SERVICE], (modeContext) => {\n const modes = requireMinorModeCatalog(modeContext);\n const apply = (): void => {\n voiceActive = isAutonomousVoiceActive(modes.list());\n syncToolRestriction();\n };\n const unsubscribe = modes.subscribe(apply);\n apply();\n return () => {\n unsubscribe();\n voiceActive = false;\n syncToolRestriction();\n };\n });\n },\n ],\n tools: [definePiTool(createAskUserQuestionTool(cordis, toolDependencies, askUserToolRender))],\n events: { before_agent_start: beforeAgentStart, session_start: sessionStart },\n onDispose: shutdownRuntime,\n toolRestrictions: [\n {\n source: PACKAGE_SOURCE,\n get restrict() {\n return currentRestriction();\n },\n subscribe(listener) {\n restrictionListeners.add(listener);\n return () => {\n restrictionListeners.delete(listener);\n };\n },\n },\n ],\n };\n});\nexport default userFeedbackExtension;\n"],"mappings":"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"}
1
+ {"version":3,"file":"pi.cjs","names":["definePiExtension","rootSession","composeRootHooks","hookBeforeAgentStart","hookSessionStart","resourceDoompiUseUserFeedback","toolRestrictionAskUserQuestion","piToolContributions","toolAskUserQuestion"],"sources":["../../generated/pi.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { definePiExtension, piToolContributions, 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 hookBeforeAgentStart from '../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli';\nimport hookSessionStart from '../src/extensions/workspaces/sessions/(backend)/hook/session-start.cli';\nimport resourceDoompiUseUserFeedback from '../src/extensions/workspaces/sessions/(backend)/resource/doompi-use-user-feedback.cli';\nimport toolRestrictionAskUserQuestion from '../src/extensions/workspaces/sessions/(backend)/tool-restriction/ask-user-question.cli';\nimport toolAskUserQuestion from '../src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof rootSession> | OptionsOf<typeof hookBeforeAgentStart> | OptionsOf<typeof hookSessionStart> | OptionsOf<typeof resourceDoompiUseUserFeedback> | OptionsOf<typeof toolRestrictionAskUserQuestion> | OptionsOf<typeof toolAskUserQuestion>, 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-user-feedback', async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n events: {\n before_agent_start: at(hookBeforeAgentStart, contextSession) as NonNullable<PiPluginContributions['events']>['before_agent_start'],\n session_start: at(hookSessionStart, contextSession) as NonNullable<PiPluginContributions['events']>['session_start'],\n },\n get resources(): PiPluginContributions['resources'] { return [at(resourceDoompiUseUserFeedback, contextSession)]; },\n get toolRestrictions(): PiPluginContributions['toolRestrictions'] { return [at(toolRestrictionAskUserQuestion, contextSession)]; },\n ...piToolContributions('@agimon-ai/doompi-user-feedback', [via({ name: 'ask_user_question' }, at(toolAskUserQuestion, contextSession))]),\n services: [...(scopeSession.services ?? [])],\n };\n});\n\nexport default extension;\n"],"mappings":";;;;;;;;;;;;;AAkBA,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,mCAAmC,OAAO,YAAY;CACjH,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,QAAQ;GACN,oBAAoB,GAAGC,+BAAAA,SAAsB,cAAc;GAC3D,eAAe,GAAGC,0BAAAA,SAAkB,cAAc;EACpD;EACA,IAAI,YAAgD;GAAE,OAAO,CAAC,GAAGC,qCAAAA,SAA+B,cAAc,CAAC;EAAG;EAClH,IAAI,mBAA8D;GAAE,OAAO,CAAC,GAAGC,8BAAAA,SAAgC,cAAc,CAAC;EAAG;EACjI,IAAA,GAAGC,oCAAAA,oBAAAA,CAAoB,mCAAmC,CAAC,IAAI,EAAE,MAAM,oBAAoB,GAAG,GAAGC,4BAAAA,SAAqB,cAAc,CAAC,CAAC,CAAC;EACvI,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;CAC7C;AACF,CAAC"}
@@ -1,5 +1,5 @@
1
- //#region src/extensions/pi.d.ts
2
- export declare const userFeedbackExtension: 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>;
3
3
  //#endregion
4
- export { userFeedbackExtension as default };
4
+ export { extension as default };
5
5
  //# sourceMappingURL=pi.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.d.cts","names":[],"sources":["../../src/extensions/pi.ts"],"mappings":";qBAqBa,6EAAqB"}
1
+ {"version":3,"file":"pi.d.cts","names":[],"sources":["../../generated/pi.ts"],"mappings":";qBAsBa,iEAAS"}
@@ -1,5 +1,5 @@
1
- //#region src/extensions/pi.d.ts
2
- export declare const userFeedbackExtension: 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>;
3
3
  //#endregion
4
- export { userFeedbackExtension as default };
4
+ export { extension as default };
5
5
  //# sourceMappingURL=pi.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.d.mts","names":[],"sources":["../../src/extensions/pi.ts"],"mappings":";qBAqBa,6EAAqB"}
1
+ {"version":3,"file":"pi.d.mts","names":[],"sources":["../../generated/pi.ts"],"mappings":";qBAsBa,iEAAS"}
@@ -1,2 +1,40 @@
1
- import{PACKAGE_SOURCE as e}from"../constants/package.mjs";import{ASK_USER_QUESTION_TOOL_NAME as t}from"../constants/tool.mjs";import{askUserToolRestriction as n}from"../services/askUserToolGate/index.mjs";import{isAutonomousVoiceActive as r}from"../services/autonomousVoiceMode/index.mjs";import{QuestionnaireCoordinator as i}from"../services/questionnaireCoordinator/index.mjs";import{createVoiceQuestionHandoff as a}from"../services/voiceQuestionHandoff/index.mjs";import{createAskUserQuestionTool as o}from"../tools/askUserQuestion.mjs";import{askUserToolRender as s}from"../tui/askUserToolRender.mjs";import{DOOM_NARRATION_SERVICE as c,requireDoomNarrationService as l}from"@agimon-ai/doompi-core/narration";import{definePiExtension as u,definePiTool as d}from"@agimon-ai/doompi-core/pi-extension";import{DOOM_MINOR_MODE_CATALOG_SERVICE as f,requireMinorModeCatalog as p}from"@agimon-ai/doompi-minor-mode";function m(){return{answers:[],cancelled:!0}}const h=u(e,({context:u})=>{let h=!0,g=0,_,v=!1,y=new i,b,x=!1,S=!0,C=new Set,w=()=>n(t,S&&!x),T=()=>C.forEach(e=>e()),E=Promise.resolve(),D=new Set,O=e=>(D.add(e),e.then(()=>D.delete(e),()=>D.delete(e)),e),k=(e,t)=>h&&e===g&&t===_,A=(e,t)=>h&&v&&t?.aborted!==!0&&e.sessionManager.getSessionId()===_;return{services:[e=>{e.inject([f,c],e=>{let t=a(p(e),l(e));return b=t,()=>{b===t&&(b=void 0)}}),e.inject([f],e=>{let t=p(e),n=()=>{x=r(t.list()),T()},i=t.subscribe(n);return n(),()=>{i(),x=!1,T()}})}],tools:[d(o(u,{enqueue:(e,t)=>{let n=y,r=g,i=_;return!v||!k(r,i)||t?.aborted?Promise.resolve(m()):n.enqueue(async t=>{if(!v||!k(r,i)||t.signal.aborted)return m();let n=await e({...t,reportProgress:e=>{k(r,i)&&!t.signal.aborted&&t.reportProgress(e)}});return v&&k(r,i)&&!t.signal.aborted?n:m()},t)},isActive:A,runTui:async(e,t,n,r,i)=>{if(!A(e,r))return;let{runTuiQuestionnaire:a}=await import(`../tui/runQuestionnaire.mjs`);if(!A(e,r))return;let o=await a(e,t,n,r,i);return A(e,r)?o:void 0},tryVoice:e=>h&&v?b?.handoff(e):void 0},s))],events:{before_agent_start:(e,t)=>{A(t)&&(S=t.hasUI,T())},session_start:(e,t)=>{if(!h)return;let n=y;n.shutdown();let r=t.sessionManager.getSessionId(),a=++g;y=new i,_=r,v=!1;let o=async()=>{await n.waitForIdle(),k(a,r)&&(v=!0)},s=E.then(o,o);return E=s.catch(()=>void 0),O(s)}},onDispose:async()=>{if(!h)return;let e=y;e.shutdown(),h=!1,g+=1,v=!1,_=void 0,await Promise.allSettled(D),await e.waitForIdle()},toolRestrictions:[{source:e,get restrict(){return w()},subscribe(e){return C.add(e),()=>{C.delete(e)}}}]}});export{h as default,h as userFeedbackExtension};
1
+ import root_cli_default from "../src/extensions/workspaces/sessions/(backend)/root.cli.mjs";
2
+ import before_agent_start_cli_default from "../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.mjs";
3
+ import session_start_cli_default from "../src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs";
4
+ import doompi_use_user_feedback_cli_default from "../src/extensions/workspaces/sessions/(backend)/resource/doompi-use-user-feedback.cli.mjs";
5
+ import ask_user_question_cli_default from "../src/extensions/workspaces/sessions/(backend)/tool-restriction/ask-user-question.cli.mjs";
6
+ import askUserQuestion_cli_default from "../src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.cli.mjs";
7
+ import { definePiExtension, piToolContributions } from "@agimon-ai/doompi-core/pi-extension";
8
+ import { composeRootHooks } from "@agimon-ai/doompi-core/extension-file";
9
+ //#region generated/pi.ts
10
+ const at = (value, context) => typeof value === "function" ? value(context) : value;
11
+ const via = (identity, value) => ({
12
+ ...identity,
13
+ ...value
14
+ });
15
+ const extension = definePiExtension("@agimon-ai/doompi-user-feedback", async (context) => {
16
+ const scopeSession = await root_cli_default(context);
17
+ const contextSession = {
18
+ ...context,
19
+ root: scopeSession.value
20
+ };
21
+ return {
22
+ ...composeRootHooks(scopeSession),
23
+ events: {
24
+ before_agent_start: at(before_agent_start_cli_default, contextSession),
25
+ session_start: at(session_start_cli_default, contextSession)
26
+ },
27
+ get resources() {
28
+ return [at(doompi_use_user_feedback_cli_default, contextSession)];
29
+ },
30
+ get toolRestrictions() {
31
+ return [at(ask_user_question_cli_default, contextSession)];
32
+ },
33
+ ...piToolContributions("@agimon-ai/doompi-user-feedback", [via({ name: "ask_user_question" }, at(askUserQuestion_cli_default, contextSession))]),
34
+ services: [...scopeSession.services ?? []]
35
+ };
36
+ });
37
+ //#endregion
38
+ export { extension as default, extension };
39
+
2
40
  //# sourceMappingURL=pi.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.mjs","names":[],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import { DOOM_NARRATION_SERVICE, requireDoomNarrationService } from '@agimon-ai/doompi-core/narration';\nimport { definePiExtension, definePiTool } from '@agimon-ai/doompi-core/pi-extension';\nimport { type DoomToolRestriction } from '@agimon-ai/doompi-core/tool-surface';\nimport { DOOM_MINOR_MODE_CATALOG_SERVICE, requireMinorModeCatalog } from '@agimon-ai/doompi-minor-mode';\nimport type { Context } from '@deepseek-ai/cordis';\nimport type { ExtensionContext } from '@earendil-works/pi-coding-agent';\n\nimport { PACKAGE_SOURCE } from '../constants/package';\nimport { ASK_USER_QUESTION_TOOL_NAME } from '../constants/tool';\nimport { askUserToolRestriction } from '../services/askUserToolGate';\nimport { isAutonomousVoiceActive } from '../services/autonomousVoiceMode';\nimport { QuestionnaireCoordinator, type QuestionnaireRunner } from '../services/questionnaireCoordinator';\nimport { createVoiceQuestionHandoff, type VoiceQuestionHandoff } from '../services/voiceQuestionHandoff';\nimport { createAskUserQuestionTool } from '../tools/askUserQuestion';\nimport { askUserToolRender } from '../tui/askUserToolRender';\nimport type { QuestionnaireResult } from '../types/questionnaire';\n\nfunction cancelledResult(): QuestionnaireResult {\n return { answers: [], cancelled: true };\n}\n\nexport const userFeedbackExtension = definePiExtension(PACKAGE_SOURCE, ({ context: cordis }) => {\n let active = true;\n let sessionGeneration = 0;\n let sessionId: string | undefined;\n let sessionReady = false;\n let coordinator = new QuestionnaireCoordinator();\n let voiceHandoff: VoiceQuestionHandoff | undefined;\n let voiceActive = false;\n let hasUI = true;\n const restrictionListeners = new Set<() => void>();\n const currentRestriction = (): DoomToolRestriction =>\n askUserToolRestriction(ASK_USER_QUESTION_TOOL_NAME, hasUI && !voiceActive);\n const syncToolRestriction = (): void => restrictionListeners.forEach((listener) => listener());\n let lifecycleQueue: Promise<void> = Promise.resolve();\n const pendingOperations = new Set<Promise<unknown>>();\n\n const trackOperation = <T>(operation: Promise<T>): Promise<T> => {\n pendingOperations.add(operation);\n void operation.then(\n () => pendingOperations.delete(operation),\n () => pendingOperations.delete(operation),\n );\n return operation;\n };\n const ownsGeneration = (generation: number, expectedSessionId: string | undefined): boolean =>\n active && generation === sessionGeneration && expectedSessionId === sessionId;\n const isContextActive = (context: ExtensionContext, signal?: AbortSignal): boolean =>\n active && sessionReady && signal?.aborted !== true && context.sessionManager.getSessionId() === sessionId;\n\n const shutdownRuntime = async (): Promise<void> => {\n if (!active) return;\n const ownedCoordinator = coordinator;\n ownedCoordinator.shutdown();\n active = false;\n sessionGeneration += 1;\n sessionReady = false;\n sessionId = undefined;\n await Promise.allSettled(pendingOperations);\n await ownedCoordinator.waitForIdle();\n };\n\n const toolDependencies: Parameters<typeof createAskUserQuestionTool>[1] = {\n enqueue: (runner: QuestionnaireRunner, signal?: AbortSignal) => {\n const ownedCoordinator = coordinator;\n const generation = sessionGeneration;\n const expectedSessionId = sessionId;\n if (!sessionReady || !ownsGeneration(generation, expectedSessionId) || signal?.aborted) {\n return Promise.resolve(cancelledResult());\n }\n return ownedCoordinator.enqueue(async (context) => {\n if (!sessionReady || !ownsGeneration(generation, expectedSessionId) || context.signal.aborted) {\n return cancelledResult();\n }\n const result = await runner({\n ...context,\n reportProgress: (progress) => {\n if (ownsGeneration(generation, expectedSessionId) && !context.signal.aborted) {\n context.reportProgress(progress);\n }\n },\n });\n return sessionReady && ownsGeneration(generation, expectedSessionId) && !context.signal.aborted\n ? result\n : cancelledResult();\n }, signal);\n },\n isActive: isContextActive,\n runTui: async (context, params, collapseKey, signal, reportProgress) => {\n if (!isContextActive(context, signal)) return undefined;\n const { runTuiQuestionnaire } = await import('../tui/runQuestionnaire');\n if (!isContextActive(context, signal)) return undefined;\n const result = await runTuiQuestionnaire(context, params, collapseKey, signal, reportProgress);\n return isContextActive(context, signal) ? result : undefined;\n },\n tryVoice: (params) => (active && sessionReady ? voiceHandoff?.handoff(params) : undefined),\n };\n\n const beforeAgentStart = (_event: unknown, context: ExtensionContext) => {\n if (!isContextActive(context)) return;\n hasUI = context.hasUI;\n syncToolRestriction();\n };\n\n const sessionStart = (_event: unknown, context: ExtensionContext) => {\n if (!active) return;\n const previousCoordinator = coordinator;\n previousCoordinator.shutdown();\n const activeSessionId = context.sessionManager.getSessionId();\n const generation = ++sessionGeneration;\n const nextCoordinator = new QuestionnaireCoordinator();\n coordinator = nextCoordinator;\n sessionId = activeSessionId;\n sessionReady = false;\n\n const initializeSession = async (): Promise<void> => {\n await previousCoordinator.waitForIdle();\n if (!ownsGeneration(generation, activeSessionId)) return;\n sessionReady = true;\n // The surface is re-registered per session from the gate state in force, so a session\n // that starts with Voice already active needs nothing extra here.\n };\n\n const operation = lifecycleQueue.then(initializeSession, initializeSession);\n lifecycleQueue = operation.catch(() => undefined);\n return trackOperation(operation);\n };\n return {\n services: [\n (serviceContextOwner: Context) => {\n serviceContextOwner.inject([DOOM_MINOR_MODE_CATALOG_SERVICE, DOOM_NARRATION_SERVICE], (serviceContext) => {\n const handoff = createVoiceQuestionHandoff(\n requireMinorModeCatalog(serviceContext),\n requireDoomNarrationService(serviceContext),\n );\n voiceHandoff = handoff;\n return () => {\n if (voiceHandoff === handoff) voiceHandoff = undefined;\n };\n });\n\n // Separate from the handoff binding above: the gate needs only the mode catalog, so it\n // still applies to a Voice build that publishes modes without providing narration.\n serviceContextOwner.inject([DOOM_MINOR_MODE_CATALOG_SERVICE], (modeContext) => {\n const modes = requireMinorModeCatalog(modeContext);\n const apply = (): void => {\n voiceActive = isAutonomousVoiceActive(modes.list());\n syncToolRestriction();\n };\n const unsubscribe = modes.subscribe(apply);\n apply();\n return () => {\n unsubscribe();\n voiceActive = false;\n syncToolRestriction();\n };\n });\n },\n ],\n tools: [definePiTool(createAskUserQuestionTool(cordis, toolDependencies, askUserToolRender))],\n events: { before_agent_start: beforeAgentStart, session_start: sessionStart },\n onDispose: shutdownRuntime,\n toolRestrictions: [\n {\n source: PACKAGE_SOURCE,\n get restrict() {\n return currentRestriction();\n },\n subscribe(listener) {\n restrictionListeners.add(listener);\n return () => {\n restrictionListeners.delete(listener);\n };\n },\n },\n ],\n };\n});\nexport default userFeedbackExtension;\n"],"mappings":"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"}
1
+ {"version":3,"file":"pi.mjs","names":["rootSession","hookBeforeAgentStart","hookSessionStart","resourceDoompiUseUserFeedback","toolRestrictionAskUserQuestion","toolAskUserQuestion"],"sources":["../../generated/pi.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { definePiExtension, piToolContributions, 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 hookBeforeAgentStart from '../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli';\nimport hookSessionStart from '../src/extensions/workspaces/sessions/(backend)/hook/session-start.cli';\nimport resourceDoompiUseUserFeedback from '../src/extensions/workspaces/sessions/(backend)/resource/doompi-use-user-feedback.cli';\nimport toolRestrictionAskUserQuestion from '../src/extensions/workspaces/sessions/(backend)/tool-restriction/ask-user-question.cli';\nimport toolAskUserQuestion from '../src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof rootSession> | OptionsOf<typeof hookBeforeAgentStart> | OptionsOf<typeof hookSessionStart> | OptionsOf<typeof resourceDoompiUseUserFeedback> | OptionsOf<typeof toolRestrictionAskUserQuestion> | OptionsOf<typeof toolAskUserQuestion>, 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-user-feedback', async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n events: {\n before_agent_start: at(hookBeforeAgentStart, contextSession) as NonNullable<PiPluginContributions['events']>['before_agent_start'],\n session_start: at(hookSessionStart, contextSession) as NonNullable<PiPluginContributions['events']>['session_start'],\n },\n get resources(): PiPluginContributions['resources'] { return [at(resourceDoompiUseUserFeedback, contextSession)]; },\n get toolRestrictions(): PiPluginContributions['toolRestrictions'] { return [at(toolRestrictionAskUserQuestion, contextSession)]; },\n ...piToolContributions('@agimon-ai/doompi-user-feedback', [via({ name: 'ask_user_question' }, at(toolAskUserQuestion, contextSession))]),\n services: [...(scopeSession.services ?? [])],\n };\n});\n\nexport default extension;\n"],"mappings":";;;;;;;;;AAkBA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,YAAY,kBAAoC,mCAAmC,OAAO,YAAY;CACjH,MAAM,eAAe,MAAMA,iBAAY,OAAO;CAC9C,MAAM,iBAAiB;EAAE,GAAG;EAAS,MAAM,aAAa;CAAM;CAC9D,OAAO;EACL,GAAG,iBAAiB,YAAY;EAChC,QAAQ;GACN,oBAAoB,GAAGC,gCAAsB,cAAc;GAC3D,eAAe,GAAGC,2BAAkB,cAAc;EACpD;EACA,IAAI,YAAgD;GAAE,OAAO,CAAC,GAAGC,sCAA+B,cAAc,CAAC;EAAG;EAClH,IAAI,mBAA8D;GAAE,OAAO,CAAC,GAAGC,+BAAgC,cAAc,CAAC;EAAG;EACjI,GAAG,oBAAoB,mCAAmC,CAAC,IAAI,EAAE,MAAM,oBAAoB,GAAG,GAAGC,6BAAqB,cAAc,CAAC,CAAC,CAAC;EACvI,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;CAC7C;AACF,CAAC"}
@@ -1,2 +1,39 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../constants/package.cjs"),t=require("../services/questionnaireCoordinator/index.cjs"),n=require("../tools/askUserHeadless.cjs"),r=(0,require("@agimon-ai/doompi-core/server-facet").defineServerPlugin)({name:e.PACKAGE_SOURCE,session:()=>{let e=new t.QuestionnaireCoordinator;return{tools:[n.createAskUserHeadlessTool(e)],hooks:[{event:`session_shutdown`,handle:()=>e.shutdown()}],onDispose:()=>e.shutdown()}}});exports.default=r,exports.userFeedbackServerFacet=r;
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_askUserQuestion_server = require("../src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.server.cjs");
7
+ let _agimon_ai_doompi_core_extension_file = require("@agimon-ai/doompi-core/extension-file");
8
+ let _agimon_ai_doompi_core_server_facet = require("@agimon-ai/doompi-core/server-facet");
9
+ //#region generated/server.ts
10
+ const at = (value, context) => typeof value === "function" ? value(context) : value;
11
+ const via = (identity, value) => ({
12
+ ...identity,
13
+ ...value
14
+ });
15
+ const facet = (0, _agimon_ai_doompi_core_server_facet.defineServerPlugin)({
16
+ name: "@agimon-ai/doompi-user-feedback",
17
+ session: async (context) => {
18
+ const scopeSession = await require_root_server.default(context);
19
+ const contextSession = {
20
+ ...context,
21
+ root: scopeSession.value
22
+ };
23
+ return {
24
+ ...(0, _agimon_ai_doompi_core_extension_file.composeRootHooks)(scopeSession),
25
+ get tools() {
26
+ return [via({ name: "ask_user_question" }, at(require_askUserQuestion_server.default, contextSession))];
27
+ },
28
+ services: [...scopeSession.services ?? []],
29
+ get activities() {
30
+ return [...scopeSession.activities ?? []];
31
+ }
32
+ };
33
+ }
34
+ });
35
+ //#endregion
36
+ exports.default = facet;
37
+ exports.facet = facet;
38
+
2
39
  //# sourceMappingURL=server.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.cjs","names":["defineServerPlugin","PACKAGE_SOURCE","QuestionnaireCoordinator","createAskUserHeadlessTool"],"sources":["../../src/extensions/server.ts"],"sourcesContent":["import { defineServerPlugin } from '@agimon-ai/doompi-core/server-facet';\n\nimport { PACKAGE_SOURCE } from '../constants/package';\nimport { QuestionnaireCoordinator } from '../services/questionnaireCoordinator';\nimport { createAskUserHeadlessTool } from '../tools/askUserHeadless';\nexport const userFeedbackServerFacet = defineServerPlugin({\n name: PACKAGE_SOURCE,\n session: () => {\n const coordinator = new QuestionnaireCoordinator();\n return {\n tools: [createAskUserHeadlessTool(coordinator)],\n hooks: [{ event: 'session_shutdown', handle: () => coordinator.shutdown() }],\n onDispose: () => coordinator.shutdown(),\n };\n },\n});\nexport default userFeedbackServerFacet;\n"],"mappings":"iPAKa,GAAA,+CAA0BA,CAAAA,CAAAA,mBAAAA,CAAmB,CACxD,KAAMC,EAAAA,eACN,YAAe,CACb,IAAM,EAAc,IAAIC,EAAAA,yBACxB,MAAO,CACL,MAAO,CAACC,EAAAA,0BAA0B,CAAW,CAAC,EAC9C,MAAO,CAAC,CAAE,MAAO,mBAAoB,WAAc,EAAY,SAAS,CAAE,CAAC,EAC3E,cAAiB,EAAY,SAAS,CACxC,CACF,CACF,CAAC"}
1
+ {"version":3,"file":"server.cjs","names":["defineServerPlugin","rootSession","composeRootHooks","toolAskUserQuestion"],"sources":["../../generated/server.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineServerPlugin, type DoomServerSessionPlugin } from '@agimon-ai/doompi-core/server-facet';\nimport { composeRootHooks } from '@agimon-ai/doompi-core/extension-file';\n\nimport rootSession from '../src/extensions/workspaces/sessions/(backend)/root.server';\nimport toolAskUserQuestion from '../src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.server';\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 facet = defineServerPlugin({\n name: '@agimon-ai/doompi-user-feedback',\n session: async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n get tools(): DoomServerSessionPlugin['tools'] { return [via({ name: 'ask_user_question' }, at(toolAskUserQuestion, contextSession))]; },\n services: [...(scopeSession.services ?? [])],\n get activities(): DoomServerSessionPlugin['activities'] { return [...(scopeSession.activities ?? [])]; },\n };\n },\n});\n\nexport default facet;\n"],"mappings":";;;;;;;;;AAQA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,SAAA,GAAQA,oCAAAA,mBAAAA,CAAmB;CACtC,MAAM;CACN,SAAS,OAAO,YAAY;EAC1B,MAAM,eAAe,MAAMC,oBAAAA,QAAY,OAAO;EAC9C,MAAM,iBAAiB;GAAE,GAAG;GAAS,MAAM,aAAa;EAAM;EAC9D,OAAO;GACL,IAAA,GAAGC,sCAAAA,iBAAAA,CAAiB,YAAY;GAChC,IAAI,QAA0C;IAAE,OAAO,CAAC,IAAI,EAAE,MAAM,oBAAoB,GAAG,GAAGC,+BAAAA,SAAqB,cAAc,CAAC,CAAC;GAAG;GACtI,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;GAC3C,IAAI,aAAoD;IAAE,OAAO,CAAC,GAAI,aAAa,cAAc,CAAC,CAAE;GAAG;EACzG;CACF;AACF,CAAC"}
@@ -1,5 +1,5 @@
1
- //#region src/extensions/server.d.ts
2
- export declare const userFeedbackServerFacet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
1
+ //#region generated/server.d.ts
2
+ export declare const facet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
3
3
  //#endregion
4
- export { userFeedbackServerFacet as default };
4
+ export { facet as default };
5
5
  //# sourceMappingURL=server.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.cts","names":[],"sources":["../../src/extensions/server.ts"],"mappings":";qBAKa,uEAAuB"}
1
+ {"version":3,"file":"server.d.cts","names":[],"sources":["../../generated/server.ts"],"mappings":";qBAYa,qDAAK"}
@@ -1,5 +1,5 @@
1
- //#region src/extensions/server.d.ts
2
- export declare const userFeedbackServerFacet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
1
+ //#region generated/server.d.ts
2
+ export declare const facet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
3
3
  //#endregion
4
- export { userFeedbackServerFacet as default };
4
+ export { facet as default };
5
5
  //# sourceMappingURL=server.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.mts","names":[],"sources":["../../src/extensions/server.ts"],"mappings":";qBAKa,uEAAuB"}
1
+ {"version":3,"file":"server.d.mts","names":[],"sources":["../../generated/server.ts"],"mappings":";qBAYa,qDAAK"}
@@ -1,2 +1,34 @@
1
- import{PACKAGE_SOURCE as e}from"../constants/package.mjs";import{QuestionnaireCoordinator as t}from"../services/questionnaireCoordinator/index.mjs";import{createAskUserHeadlessTool as n}from"../tools/askUserHeadless.mjs";import{defineServerPlugin as r}from"@agimon-ai/doompi-core/server-facet";const i=r({name:e,session:()=>{let e=new t;return{tools:[n(e)],hooks:[{event:`session_shutdown`,handle:()=>e.shutdown()}],onDispose:()=>e.shutdown()}}});export{i as default,i as userFeedbackServerFacet};
1
+ import root_server_default from "../src/extensions/workspaces/sessions/(backend)/root.server.mjs";
2
+ import askUserQuestion_server_default from "../src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.server.mjs";
3
+ import { composeRootHooks } from "@agimon-ai/doompi-core/extension-file";
4
+ import { defineServerPlugin } from "@agimon-ai/doompi-core/server-facet";
5
+ //#region generated/server.ts
6
+ const at = (value, context) => typeof value === "function" ? value(context) : value;
7
+ const via = (identity, value) => ({
8
+ ...identity,
9
+ ...value
10
+ });
11
+ const facet = defineServerPlugin({
12
+ name: "@agimon-ai/doompi-user-feedback",
13
+ session: async (context) => {
14
+ const scopeSession = await root_server_default(context);
15
+ const contextSession = {
16
+ ...context,
17
+ root: scopeSession.value
18
+ };
19
+ return {
20
+ ...composeRootHooks(scopeSession),
21
+ get tools() {
22
+ return [via({ name: "ask_user_question" }, at(askUserQuestion_server_default, contextSession))];
23
+ },
24
+ services: [...scopeSession.services ?? []],
25
+ get activities() {
26
+ return [...scopeSession.activities ?? []];
27
+ }
28
+ };
29
+ }
30
+ });
31
+ //#endregion
32
+ export { facet as default, facet };
33
+
2
34
  //# sourceMappingURL=server.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.mjs","names":[],"sources":["../../src/extensions/server.ts"],"sourcesContent":["import { defineServerPlugin } from '@agimon-ai/doompi-core/server-facet';\n\nimport { PACKAGE_SOURCE } from '../constants/package';\nimport { QuestionnaireCoordinator } from '../services/questionnaireCoordinator';\nimport { createAskUserHeadlessTool } from '../tools/askUserHeadless';\nexport const userFeedbackServerFacet = defineServerPlugin({\n name: PACKAGE_SOURCE,\n session: () => {\n const coordinator = new QuestionnaireCoordinator();\n return {\n tools: [createAskUserHeadlessTool(coordinator)],\n hooks: [{ event: 'session_shutdown', handle: () => coordinator.shutdown() }],\n onDispose: () => coordinator.shutdown(),\n };\n },\n});\nexport default userFeedbackServerFacet;\n"],"mappings":"sSAKA,MAAa,EAA0B,EAAmB,CACxD,KAAM,EACN,YAAe,CACb,IAAM,EAAc,IAAI,EACxB,MAAO,CACL,MAAO,CAAC,EAA0B,CAAW,CAAC,EAC9C,MAAO,CAAC,CAAE,MAAO,mBAAoB,WAAc,EAAY,SAAS,CAAE,CAAC,EAC3E,cAAiB,EAAY,SAAS,CACxC,CACF,CACF,CAAC"}
1
+ {"version":3,"file":"server.mjs","names":["rootSession","toolAskUserQuestion"],"sources":["../../generated/server.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineServerPlugin, type DoomServerSessionPlugin } from '@agimon-ai/doompi-core/server-facet';\nimport { composeRootHooks } from '@agimon-ai/doompi-core/extension-file';\n\nimport rootSession from '../src/extensions/workspaces/sessions/(backend)/root.server';\nimport toolAskUserQuestion from '../src/extensions/workspaces/sessions/(backend)/tool/askUserQuestion.server';\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 facet = defineServerPlugin({\n name: '@agimon-ai/doompi-user-feedback',\n session: async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n get tools(): DoomServerSessionPlugin['tools'] { return [via({ name: 'ask_user_question' }, at(toolAskUserQuestion, contextSession))]; },\n services: [...(scopeSession.services ?? [])],\n get activities(): DoomServerSessionPlugin['activities'] { return [...(scopeSession.activities ?? [])]; },\n };\n },\n});\n\nexport default facet;\n"],"mappings":";;;;;AAQA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,QAAQ,mBAAmB;CACtC,MAAM;CACN,SAAS,OAAO,YAAY;EAC1B,MAAM,eAAe,MAAMA,oBAAY,OAAO;EAC9C,MAAM,iBAAiB;GAAE,GAAG;GAAS,MAAM,aAAa;EAAM;EAC9D,OAAO;GACL,GAAG,iBAAiB,YAAY;GAChC,IAAI,QAA0C;IAAE,OAAO,CAAC,IAAI,EAAE,MAAM,oBAAoB,GAAG,GAAGC,gCAAqB,cAAc,CAAC,CAAC;GAAG;GACtI,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;GAC3C,IAAI,aAAoD;IAAE,OAAO,CAAC,GAAI,aAAa,cAAc,CAAC,CAAE;GAAG;EACzG;CACF;AACF,CAAC"}