@agimon-ai/doompi-computer-use 0.0.1-alpha.2 → 0.0.1-alpha.20

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 (329) hide show
  1. package/README.md +11 -4
  2. package/dist/_virtual/_rolldown/runtime.cjs +23 -1
  3. package/dist/api-contracts.cjs +7 -0
  4. package/dist/api-contracts.d.cts +2 -0
  5. package/dist/api-contracts.d.mts +2 -0
  6. package/dist/api-contracts.mjs +2 -0
  7. package/dist/extensions/pi.cjs +51 -1
  8. package/dist/extensions/pi.cjs.map +1 -0
  9. package/dist/extensions/pi.d.cts +7 -2
  10. package/dist/extensions/pi.d.cts.map +1 -0
  11. package/dist/extensions/pi.d.mts +7 -2
  12. package/dist/extensions/pi.d.mts.map +1 -0
  13. package/dist/extensions/pi.mjs +46 -1
  14. package/dist/extensions/pi.mjs.map +1 -0
  15. package/dist/extensions/server.cjs +72 -0
  16. package/dist/extensions/server.cjs.map +1 -0
  17. package/dist/extensions/server.d.cts +5 -0
  18. package/dist/extensions/server.d.cts.map +1 -0
  19. package/dist/extensions/server.d.mts +5 -0
  20. package/dist/extensions/server.d.mts.map +1 -0
  21. package/dist/extensions/server.mjs +67 -0
  22. package/dist/extensions/server.mjs.map +1 -0
  23. package/dist/extensions/web.mjs +625 -0
  24. package/dist/extensions/web.mjs.map +1 -0
  25. package/dist/index.cjs +18 -1
  26. package/dist/index.d.cts +12 -10
  27. package/dist/index.d.mts +12 -10
  28. package/dist/index.mjs +8 -1
  29. package/dist/src/constants/computerUse.cjs +17 -0
  30. package/dist/src/constants/computerUse.cjs.map +1 -0
  31. package/dist/src/constants/computerUse.d.cts +5 -0
  32. package/dist/src/constants/computerUse.d.cts.map +1 -0
  33. package/dist/src/constants/computerUse.d.mts +5 -0
  34. package/dist/src/constants/computerUse.d.mts.map +1 -0
  35. package/dist/src/constants/computerUse.mjs +14 -0
  36. package/dist/src/constants/computerUse.mjs.map +1 -0
  37. package/dist/src/extensions/(backend)/channel/computer-use.server.cjs +7 -0
  38. package/dist/src/extensions/(backend)/channel/computer-use.server.cjs.map +1 -0
  39. package/dist/src/extensions/(backend)/channel/computer-use.server.mjs +8 -0
  40. package/dist/src/extensions/(backend)/channel/computer-use.server.mjs.map +1 -0
  41. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.cli.cjs +8 -0
  42. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.cli.cjs.map +1 -0
  43. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.cli.mjs +8 -0
  44. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.cli.mjs.map +1 -0
  45. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.server.cjs +11 -0
  46. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.server.cjs.map +1 -0
  47. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.server.mjs +11 -0
  48. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.server.mjs.map +1 -0
  49. package/dist/src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.cjs +6 -0
  50. package/dist/src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.cjs.map +1 -0
  51. package/dist/src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.mjs +7 -0
  52. package/dist/src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.mjs.map +1 -0
  53. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.cjs +6 -0
  54. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.cjs.map +1 -0
  55. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.mjs +7 -0
  56. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.mjs.map +1 -0
  57. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.server.cjs +6 -0
  58. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.server.cjs.map +1 -0
  59. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.server.mjs +7 -0
  60. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.server.mjs.map +1 -0
  61. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs +6 -0
  62. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs.map +1 -0
  63. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.mjs +7 -0
  64. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.mjs.map +1 -0
  65. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.cjs +6 -0
  66. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.cjs.map +1 -0
  67. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.mjs +7 -0
  68. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.mjs.map +1 -0
  69. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs +6 -0
  70. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs.map +1 -0
  71. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs +7 -0
  72. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs.map +1 -0
  73. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs +6 -0
  74. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs.map +1 -0
  75. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs +7 -0
  76. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs.map +1 -0
  77. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs +15 -0
  78. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs.map +1 -0
  79. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs +16 -0
  80. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs.map +1 -0
  81. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs +16 -0
  82. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs.map +1 -0
  83. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs +17 -0
  84. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs.map +1 -0
  85. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.cjs +6 -0
  86. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.cjs.map +1 -0
  87. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.mjs +7 -0
  88. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.mjs.map +1 -0
  89. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.cjs +6 -0
  90. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.cjs.map +1 -0
  91. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.mjs +7 -0
  92. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.mjs.map +1 -0
  93. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.cjs +6 -0
  94. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.cjs.map +1 -0
  95. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.mjs +7 -0
  96. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.mjs.map +1 -0
  97. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.cjs +6 -0
  98. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.cjs.map +1 -0
  99. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.mjs +7 -0
  100. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.mjs.map +1 -0
  101. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.cjs +6 -0
  102. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.cjs.map +1 -0
  103. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.mjs +7 -0
  104. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.mjs.map +1 -0
  105. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.cjs +6 -0
  106. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.cjs.map +1 -0
  107. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.mjs +7 -0
  108. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.mjs.map +1 -0
  109. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.cjs +6 -0
  110. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.cjs.map +1 -0
  111. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.mjs +7 -0
  112. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.mjs.map +1 -0
  113. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.cjs +6 -0
  114. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.cjs.map +1 -0
  115. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.mjs +7 -0
  116. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.mjs.map +1 -0
  117. package/dist/src/models/computerUseMode.cjs +43 -0
  118. package/dist/src/models/computerUseMode.cjs.map +1 -0
  119. package/dist/src/models/computerUseMode.mjs +42 -0
  120. package/dist/src/models/computerUseMode.mjs.map +1 -0
  121. package/dist/src/models/computerUseState.cjs +89 -0
  122. package/dist/src/models/computerUseState.cjs.map +1 -0
  123. package/dist/src/models/computerUseState.d.cts +6 -0
  124. package/dist/src/models/computerUseState.d.cts.map +1 -0
  125. package/dist/src/models/computerUseState.d.mts +6 -0
  126. package/dist/src/models/computerUseState.d.mts.map +1 -0
  127. package/dist/src/models/computerUseState.mjs +88 -0
  128. package/dist/src/models/computerUseState.mjs.map +1 -0
  129. package/dist/src/schemas/apiContracts.cjs +194 -0
  130. package/dist/src/schemas/apiContracts.cjs.map +1 -0
  131. package/dist/src/schemas/apiContracts.d.cts +53 -0
  132. package/dist/src/schemas/apiContracts.d.cts.map +1 -0
  133. package/dist/src/schemas/apiContracts.d.mts +53 -0
  134. package/dist/src/schemas/apiContracts.d.mts.map +1 -0
  135. package/dist/src/schemas/apiContracts.mjs +191 -0
  136. package/dist/src/schemas/apiContracts.mjs.map +1 -0
  137. package/dist/src/services/computerScriptRunner/index.cjs +171 -0
  138. package/dist/src/services/computerScriptRunner/index.cjs.map +1 -0
  139. package/dist/src/services/computerScriptRunner/index.d.cts +12 -0
  140. package/dist/src/services/computerScriptRunner/index.d.cts.map +1 -0
  141. package/dist/src/services/computerScriptRunner/index.d.mts +12 -0
  142. package/dist/src/services/computerScriptRunner/index.d.mts.map +1 -0
  143. package/dist/src/services/computerScriptRunner/index.mjs +171 -0
  144. package/dist/src/services/computerScriptRunner/index.mjs.map +1 -0
  145. package/dist/src/services/computerUseApi/index.cjs +291 -0
  146. package/dist/src/services/computerUseApi/index.cjs.map +1 -0
  147. package/dist/src/services/computerUseApi/index.mjs +289 -0
  148. package/dist/src/services/computerUseApi/index.mjs.map +1 -0
  149. package/dist/src/services/computerUseCommand/index.cjs +15 -0
  150. package/dist/src/services/computerUseCommand/index.cjs.map +1 -0
  151. package/dist/src/services/computerUseCommand/index.mjs +15 -0
  152. package/dist/src/services/computerUseCommand/index.mjs.map +1 -0
  153. package/dist/src/services/computerUseRuntime/index.cjs +300 -0
  154. package/dist/src/services/computerUseRuntime/index.cjs.map +1 -0
  155. package/dist/src/services/computerUseRuntime/index.mjs +299 -0
  156. package/dist/src/services/computerUseRuntime/index.mjs.map +1 -0
  157. package/dist/src/services/computerUseServer/index.cjs +350 -0
  158. package/dist/src/services/computerUseServer/index.cjs.map +1 -0
  159. package/dist/src/services/computerUseServer/index.mjs +348 -0
  160. package/dist/src/services/computerUseServer/index.mjs.map +1 -0
  161. package/dist/src/services/dependencies/index.cjs +27 -0
  162. package/dist/src/services/dependencies/index.cjs.map +1 -0
  163. package/dist/src/services/dependencies/index.d.cts +6 -0
  164. package/dist/src/services/dependencies/index.d.cts.map +1 -0
  165. package/dist/src/services/dependencies/index.d.mts +6 -0
  166. package/dist/src/services/dependencies/index.d.mts.map +1 -0
  167. package/dist/src/services/dependencies/index.mjs +24 -0
  168. package/dist/src/services/dependencies/index.mjs.map +1 -0
  169. package/dist/src/services/extensionService/index.cjs +21 -0
  170. package/dist/src/services/extensionService/index.cjs.map +1 -0
  171. package/dist/src/services/extensionService/index.d.cts +10 -0
  172. package/dist/src/services/extensionService/index.d.cts.map +1 -0
  173. package/dist/src/services/extensionService/index.d.mts +10 -0
  174. package/dist/src/services/extensionService/index.d.mts.map +1 -0
  175. package/dist/src/services/extensionService/index.mjs +21 -0
  176. package/dist/src/services/extensionService/index.mjs.map +1 -0
  177. package/dist/src/services/sessionApiClient/index.cjs +9 -0
  178. package/dist/src/services/sessionApiClient/index.cjs.map +1 -0
  179. package/dist/src/services/sessionApiClient/index.d.cts +15 -0
  180. package/dist/src/services/sessionApiClient/index.d.cts.map +1 -0
  181. package/dist/src/services/sessionApiClient/index.d.mts +15 -0
  182. package/dist/src/services/sessionApiClient/index.d.mts.map +1 -0
  183. package/dist/src/services/sessionApiClient/index.mjs +9 -0
  184. package/dist/src/services/sessionApiClient/index.mjs.map +1 -0
  185. package/dist/src/services/traceRedaction/index.cjs +19 -0
  186. package/dist/src/services/traceRedaction/index.cjs.map +1 -0
  187. package/dist/{services/traceRedaction.d.mts → src/services/traceRedaction/index.d.cts} +6 -7
  188. package/dist/src/services/traceRedaction/index.d.cts.map +1 -0
  189. package/dist/{services/traceRedaction.d.cts → src/services/traceRedaction/index.d.mts} +6 -7
  190. package/dist/src/services/traceRedaction/index.d.mts.map +1 -0
  191. package/dist/src/services/traceRedaction/index.mjs +19 -0
  192. package/dist/src/services/traceRedaction/index.mjs.map +1 -0
  193. package/dist/src/services/webComputerUseAvailability/index.cjs +13 -0
  194. package/dist/src/services/webComputerUseAvailability/index.cjs.map +1 -0
  195. package/dist/src/services/webComputerUseAvailability/index.mjs +12 -0
  196. package/dist/src/services/webComputerUseAvailability/index.mjs.map +1 -0
  197. package/dist/src/services/webComputerUseChannel/index.cjs +251 -0
  198. package/dist/src/services/webComputerUseChannel/index.cjs.map +1 -0
  199. package/dist/src/services/webComputerUseChannel/index.mjs +250 -0
  200. package/dist/src/services/webComputerUseChannel/index.mjs.map +1 -0
  201. package/dist/src/types/apiRoutes.cjs +84 -0
  202. package/dist/src/types/apiRoutes.cjs.map +1 -0
  203. package/dist/src/types/apiRoutes.mjs +84 -0
  204. package/dist/src/types/apiRoutes.mjs.map +1 -0
  205. package/dist/src/types/computerScript.d.cts +38 -0
  206. package/dist/src/types/computerScript.d.cts.map +1 -0
  207. package/dist/src/types/computerScript.d.mts +38 -0
  208. package/dist/src/types/computerScript.d.mts.map +1 -0
  209. package/dist/{types → src/types}/computerUse.d.cts +14 -14
  210. package/dist/src/types/computerUse.d.cts.map +1 -0
  211. package/dist/{types → src/types}/computerUse.d.mts +14 -14
  212. package/dist/src/types/computerUse.d.mts.map +1 -0
  213. package/dist/src/types/computerUseApi.cjs +41 -0
  214. package/dist/src/types/computerUseApi.cjs.map +1 -0
  215. package/dist/{types → src/types}/computerUseApi.d.cts +28 -20
  216. package/dist/src/types/computerUseApi.d.cts.map +1 -0
  217. package/dist/{types → src/types}/computerUseApi.d.mts +28 -20
  218. package/dist/src/types/computerUseApi.d.mts.map +1 -0
  219. package/dist/src/types/computerUseApi.mjs +33 -0
  220. package/dist/src/types/computerUseApi.mjs.map +1 -0
  221. package/dist/src/types/extension.d.cts +19 -0
  222. package/dist/src/types/extension.d.cts.map +1 -0
  223. package/dist/src/types/extension.d.mts +19 -0
  224. package/dist/src/types/extension.d.mts.map +1 -0
  225. package/docs/computer-scripts.md +37 -0
  226. package/llms.txt +1 -0
  227. package/package.json +46 -32
  228. package/src/prompts/doompi-use-computer-use/SKILL.md +1 -1
  229. package/src/types/computerUse.ts +3 -2
  230. package/src/types/computerUseApi.ts +9 -6
  231. package/dist/adapters/computerUseApi.cjs +0 -2
  232. package/dist/adapters/computerUseApi.cjs.map +0 -1
  233. package/dist/adapters/computerUseApi.d.cts +0 -37
  234. package/dist/adapters/computerUseApi.d.cts.map +0 -1
  235. package/dist/adapters/computerUseApi.d.mts +0 -37
  236. package/dist/adapters/computerUseApi.d.mts.map +0 -1
  237. package/dist/adapters/computerUseApi.mjs +0 -2
  238. package/dist/adapters/computerUseApi.mjs.map +0 -1
  239. package/dist/adapters/pi/extension.cjs +0 -3
  240. package/dist/adapters/pi/extension.cjs.map +0 -1
  241. package/dist/adapters/pi/extension.d.cts +0 -12
  242. package/dist/adapters/pi/extension.d.cts.map +0 -1
  243. package/dist/adapters/pi/extension.d.mts +0 -12
  244. package/dist/adapters/pi/extension.d.mts.map +0 -1
  245. package/dist/adapters/pi/extension.mjs +0 -3
  246. package/dist/adapters/pi/extension.mjs.map +0 -1
  247. package/dist/adapters/pi/sessionApiClient.cjs +0 -2
  248. package/dist/adapters/pi/sessionApiClient.cjs.map +0 -1
  249. package/dist/adapters/pi/sessionApiClient.d.cts +0 -26
  250. package/dist/adapters/pi/sessionApiClient.d.cts.map +0 -1
  251. package/dist/adapters/pi/sessionApiClient.d.mts +0 -26
  252. package/dist/adapters/pi/sessionApiClient.d.mts.map +0 -1
  253. package/dist/adapters/pi/sessionApiClient.mjs +0 -2
  254. package/dist/adapters/pi/sessionApiClient.mjs.map +0 -1
  255. package/dist/adapters/webComputerUseAvailability.cjs +0 -2
  256. package/dist/adapters/webComputerUseAvailability.cjs.map +0 -1
  257. package/dist/adapters/webComputerUseAvailability.mjs +0 -2
  258. package/dist/adapters/webComputerUseAvailability.mjs.map +0 -1
  259. package/dist/adapters/webComputerUseChannel.cjs +0 -2
  260. package/dist/adapters/webComputerUseChannel.cjs.map +0 -1
  261. package/dist/adapters/webComputerUseChannel.d.cts +0 -10
  262. package/dist/adapters/webComputerUseChannel.d.cts.map +0 -1
  263. package/dist/adapters/webComputerUseChannel.d.mts +0 -10
  264. package/dist/adapters/webComputerUseChannel.d.mts.map +0 -1
  265. package/dist/adapters/webComputerUseChannel.mjs +0 -2
  266. package/dist/adapters/webComputerUseChannel.mjs.map +0 -1
  267. package/dist/commands/computerUseCommand.cjs +0 -2
  268. package/dist/commands/computerUseCommand.cjs.map +0 -1
  269. package/dist/commands/computerUseCommand.mjs +0 -2
  270. package/dist/commands/computerUseCommand.mjs.map +0 -1
  271. package/dist/container/index.cjs +0 -2
  272. package/dist/container/index.cjs.map +0 -1
  273. package/dist/container/index.d.cts +0 -6
  274. package/dist/container/index.d.cts.map +0 -1
  275. package/dist/container/index.d.mts +0 -6
  276. package/dist/container/index.d.mts.map +0 -1
  277. package/dist/container/index.mjs +0 -2
  278. package/dist/container/index.mjs.map +0 -1
  279. package/dist/services/extensionService.cjs +0 -2
  280. package/dist/services/extensionService.cjs.map +0 -1
  281. package/dist/services/extensionService.d.cts +0 -11
  282. package/dist/services/extensionService.d.cts.map +0 -1
  283. package/dist/services/extensionService.d.mts +0 -11
  284. package/dist/services/extensionService.d.mts.map +0 -1
  285. package/dist/services/extensionService.mjs +0 -2
  286. package/dist/services/extensionService.mjs.map +0 -1
  287. package/dist/services/sessionController.cjs +0 -2
  288. package/dist/services/sessionController.cjs.map +0 -1
  289. package/dist/services/sessionController.d.cts +0 -7
  290. package/dist/services/sessionController.d.cts.map +0 -1
  291. package/dist/services/sessionController.d.mts +0 -7
  292. package/dist/services/sessionController.d.mts.map +0 -1
  293. package/dist/services/sessionController.mjs +0 -2
  294. package/dist/services/sessionController.mjs.map +0 -1
  295. package/dist/services/traceRedaction.cjs +0 -2
  296. package/dist/services/traceRedaction.cjs.map +0 -1
  297. package/dist/services/traceRedaction.d.cts.map +0 -1
  298. package/dist/services/traceRedaction.d.mts.map +0 -1
  299. package/dist/services/traceRedaction.mjs +0 -2
  300. package/dist/services/traceRedaction.mjs.map +0 -1
  301. package/dist/sessionApi.cjs +0 -1
  302. package/dist/sessionApi.d.cts +0 -2
  303. package/dist/sessionApi.d.mts +0 -2
  304. package/dist/sessionApi.mjs +0 -1
  305. package/dist/types/computerUse.d.cts.map +0 -1
  306. package/dist/types/computerUse.d.mts.map +0 -1
  307. package/dist/types/computerUseApi.cjs +0 -2
  308. package/dist/types/computerUseApi.cjs.map +0 -1
  309. package/dist/types/computerUseApi.d.cts.map +0 -1
  310. package/dist/types/computerUseApi.d.mts.map +0 -1
  311. package/dist/types/computerUseApi.mjs +0 -2
  312. package/dist/types/computerUseApi.mjs.map +0 -1
  313. package/dist/types/extension.d.cts +0 -17
  314. package/dist/types/extension.d.cts.map +0 -1
  315. package/dist/types/extension.d.mts +0 -17
  316. package/dist/types/extension.d.mts.map +0 -1
  317. package/dist/webHub.cjs +0 -1
  318. package/dist/webHub.d.cts +0 -3
  319. package/dist/webHub.d.mts +0 -3
  320. package/dist/webHub.mjs +0 -1
  321. package/src/exports/webClient.ts +0 -2
  322. package/src/web/ComputerActionToolCard.tsx +0 -51
  323. package/src/web/ComputerStateToolCard.tsx +0 -51
  324. package/src/web/ComputerUsePanel.tsx +0 -136
  325. package/src/web/computerActionToolRender.ts +0 -20
  326. package/src/web/computerStateToolRender.ts +0 -18
  327. package/src/web/computerUseStore.ts +0 -26
  328. package/src/web/index.ts +0 -41
  329. package/src/web/tsconfig.json +0 -28
package/README.md CHANGED
@@ -20,12 +20,15 @@ Enable the default-off **Computer Use** minor mode in the cockpit. Its Activity
20
20
 
21
21
  The `computer-use` minor mode exposes Activate, Deactivate, and Doctor actions. `/computer-use` reports the current state.
22
22
 
23
- While active, the package exposes exactly two tools:
23
+ While active, the package exposes three tools:
24
24
 
25
25
  - `computer_state` observes the authorized window and returns a semantic snapshot.
26
- - `computer_action` performs one semantic press, value change, or scroll against a current snapshot.
26
+ - `computer_action` performs one semantic press, focus change, value change, or scroll against a current snapshot.
27
+ - `computer_exec` runs a trusted, explicitly allowed local TypeScript script with JSON input, then returns a fresh observation.
27
28
 
28
- Both tools and their model guidance remain unavailable during setup and are exposed only after the native grant becomes active. The Activity section shows activation status, busy ownership, stop controls, and completed recording or trace metadata. Browser clients cannot call observation or action routes.
29
+ Computer scripts are trusted Node.js code and are not sandboxed. Configure exact allowed paths with `DOOMPI_COMPUTER_USE_SCRIPT_PATHS` and review every script before allowing it. See [Author computer scripts](./docs/computer-scripts.md) for the execution contract, limits, and an example.
30
+
31
+ All three tools and their model guidance remain unavailable during setup and are exposed only after the native grant becomes active. The Activity section shows activation status, busy ownership, stop controls, and completed recording or trace metadata. Browser clients cannot call observation or action routes.
29
32
 
30
33
  ## Public API
31
34
 
@@ -33,7 +36,7 @@ Both tools and their model guidance remain unavailable during setup and are expo
33
36
  import { activateComputerUseExtension, createComputerUseSessionClient } from '@agimon-ai/doompi-computer-use';
34
37
  ```
35
38
 
36
- The session API entry is available at `@agimon-ai/doompi-computer-use/session-api`. Its agent and hub routes use separate host-issued context tokens. Grants remain opaque and session-bound inside the request broker.
39
+ The session-scoped server facet owns the agent and hub routes. Their host-issued context tokens remain opaque and session-bound inside the request broker.
37
40
 
38
41
  ## Development
39
42
 
@@ -47,3 +50,7 @@ pnpm build
47
50
  ## License
48
51
 
49
52
  MIT
53
+
54
+ Direct plugin entries live in `src/extensions`. Controllers coordinate host APIs, commands, and mode actions. Models own computer-use state and projections; named services own Desktop transport, scripts, and configuration dependencies. Flat `src/exports` exposes reusable helpers and types.
55
+
56
+ The Pi entry declares a live minor-mode collection so the global opt-in controls catalog presence. Its tool restriction is reactive and the helper owns all registration changes. Session startup begins availability polling; `onStop` cancels the timer and final disposal clears status. The server declares its session mode, activity, tools, commands, and API alongside hub channel factories.
@@ -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;
@@ -0,0 +1,7 @@
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;
@@ -0,0 +1,2 @@
1
+ import { apiContracts } from "./src/schemas/apiContracts.cjs";
2
+ export { apiContracts, apiContracts as default };
@@ -0,0 +1,2 @@
1
+ import { apiContracts } from "./src/schemas/apiContracts.mjs";
2
+ export { apiContracts, apiContracts as default };
@@ -0,0 +1,2 @@
1
+ import { apiContracts } from "./src/schemas/apiContracts.mjs";
2
+ export { apiContracts, apiContracts as default };
@@ -1 +1,51 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../adapters/pi/extension.cjs");exports.activateComputerUseExtension=e.activateComputerUseExtension,exports.default=e.activateComputerUseExtension;
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_computer_use_cli = require("../src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.cjs");
7
+ const require_before_agent_start_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs");
8
+ const require_session_start_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs");
9
+ const require_computer_use_cli$1 = require("../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.cjs");
10
+ const require_00_computer_state_cli = require("../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.cjs");
11
+ const require_10_computer_action_cli = require("../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.cjs");
12
+ const require_20_computer_exec_cli = require("../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.cjs");
13
+ let _agimon_ai_doompi_core_pi_extension = require("@agimon-ai/doompi-core/pi-extension");
14
+ let _agimon_ai_doompi_core_extension_file = require("@agimon-ai/doompi-core/extension-file");
15
+ //#region generated/pi.ts
16
+ const at = (value, context) => typeof value === "function" ? value(context) : value;
17
+ const via = (identity, value) => ({
18
+ ...identity,
19
+ ...value
20
+ });
21
+ const extension = (0, _agimon_ai_doompi_core_pi_extension.definePiExtension)("@agimon-ai/doompi-computer-use", async (context) => {
22
+ const scopeSession = await require_root_cli.default(context);
23
+ const contextSession = {
24
+ ...context,
25
+ root: scopeSession.value
26
+ };
27
+ return {
28
+ ...(0, _agimon_ai_doompi_core_extension_file.composeRootHooks)(scopeSession),
29
+ get commands() {
30
+ return [at(require_computer_use_cli.default, contextSession)];
31
+ },
32
+ events: {
33
+ before_agent_start: at(require_before_agent_start_cli.default, contextSession),
34
+ session_start: at(require_session_start_cli.default, contextSession)
35
+ },
36
+ get toolRestrictions() {
37
+ return [at(require_computer_use_cli$1.default, contextSession)];
38
+ },
39
+ ...(0, _agimon_ai_doompi_core_pi_extension.piToolContributions)("@agimon-ai/doompi-computer-use", [
40
+ via({ name: "00_computer_state" }, at(require_00_computer_state_cli.default, contextSession)),
41
+ via({ name: "10_computer_action" }, at(require_10_computer_action_cli.default, contextSession)),
42
+ via({ name: "20_computer_exec" }, at(require_20_computer_exec_cli.default, contextSession))
43
+ ]),
44
+ services: [...scopeSession.services ?? []]
45
+ };
46
+ });
47
+ //#endregion
48
+ exports.default = extension;
49
+ exports.extension = extension;
50
+
51
+ //# sourceMappingURL=pi.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi.cjs","names":["definePiExtension","rootSession","composeRootHooks","commandComputerUse","hookBeforeAgentStart","hookSessionStart","toolRestrictionComputerUse","piToolContributions","tool00ComputerState","tool10ComputerAction","tool20ComputerExec"],"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 commandComputerUse from '../src/extensions/workspaces/sessions/(backend)/command/computer-use.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 toolRestrictionComputerUse from '../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli';\nimport tool00ComputerState from '../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli';\nimport tool10ComputerAction from '../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli';\nimport tool20ComputerExec from '../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof rootSession> | OptionsOf<typeof commandComputerUse> | OptionsOf<typeof hookBeforeAgentStart> | OptionsOf<typeof hookSessionStart> | OptionsOf<typeof toolRestrictionComputerUse> | OptionsOf<typeof tool00ComputerState> | OptionsOf<typeof tool10ComputerAction> | OptionsOf<typeof tool20ComputerExec>, 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-computer-use', 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(commandComputerUse, contextSession)]; },\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 toolRestrictions(): PiPluginContributions['toolRestrictions'] { return [at(toolRestrictionComputerUse, contextSession)]; },\n ...piToolContributions('@agimon-ai/doompi-computer-use', [via({ name: '00_computer_state' }, at(tool00ComputerState, contextSession)), via({ name: '10_computer_action' }, at(tool10ComputerAction, contextSession)), via({ name: '20_computer_exec' }, at(tool20ComputerExec, contextSession))]),\n services: [...(scopeSession.services ?? [])],\n };\n});\n\nexport default extension;\n"],"mappings":";;;;;;;;;;;;;;;AAoBA,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,kCAAkC,OAAO,YAAY;CAChH,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,yBAAAA,SAAoB,cAAc,CAAC;EAAG;EACrG,QAAQ;GACN,oBAAoB,GAAGC,+BAAAA,SAAsB,cAAc;GAC3D,eAAe,GAAGC,0BAAAA,SAAkB,cAAc;EACpD;EACA,IAAI,mBAA8D;GAAE,OAAO,CAAC,GAAGC,2BAAAA,SAA4B,cAAc,CAAC;EAAG;EAC7H,IAAA,GAAGC,oCAAAA,oBAAAA,CAAoB,kCAAkC;GAAC,IAAI,EAAE,MAAM,oBAAoB,GAAG,GAAGC,8BAAAA,SAAqB,cAAc,CAAC;GAAG,IAAI,EAAE,MAAM,qBAAqB,GAAG,GAAGC,+BAAAA,SAAsB,cAAc,CAAC;GAAG,IAAI,EAAE,MAAM,mBAAmB,GAAG,GAAGC,6BAAAA,SAAoB,cAAc,CAAC;EAAC,CAAC;EAChS,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;CAC7C;AACF,CAAC"}
@@ -1,2 +1,7 @@
1
- import { activateComputerUseExtension } from "../adapters/pi/extension.cjs";
2
- export { activateComputerUseExtension, activateComputerUseExtension as default };
1
+ import { ComputerUseExtensionDependencies } from "../src/types/extension.cjs";
2
+ import "../index.cjs";
3
+ //#region generated/pi.d.ts
4
+ export declare const extension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<ComputerUseExtensionDependencies>;
5
+ //#endregion
6
+ export { extension as default };
7
+ //# sourceMappingURL=pi.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi.d.cts","names":[],"sources":["../../generated/pi.ts"],"mappings":";;;qBAwBa,iEAAS,mBAAT"}
@@ -1,2 +1,7 @@
1
- import { activateComputerUseExtension } from "../adapters/pi/extension.mjs";
2
- export { activateComputerUseExtension, activateComputerUseExtension as default };
1
+ import { ComputerUseExtensionDependencies } from "../src/types/extension.mjs";
2
+ import "../index.mjs";
3
+ //#region generated/pi.d.ts
4
+ export declare const extension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<ComputerUseExtensionDependencies>;
5
+ //#endregion
6
+ export { extension as default };
7
+ //# sourceMappingURL=pi.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi.d.mts","names":[],"sources":["../../generated/pi.ts"],"mappings":";;;qBAwBa,iEAAS,mBAAT"}
@@ -1 +1,46 @@
1
- import{activateComputerUseExtension as e}from"../adapters/pi/extension.mjs";export{e as activateComputerUseExtension,e as default};
1
+ import root_cli_default from "../src/extensions/workspaces/sessions/(backend)/root.cli.mjs";
2
+ import computer_use_cli_default from "../src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.mjs";
3
+ import before_agent_start_cli_default from "../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.mjs";
4
+ import session_start_cli_default from "../src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs";
5
+ import computer_use_cli_default$1 from "../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.mjs";
6
+ import _00_computer_state_cli_default from "../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.mjs";
7
+ import _10_computer_action_cli_default from "../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.mjs";
8
+ import _20_computer_exec_cli_default from "../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.mjs";
9
+ import { definePiExtension, piToolContributions } from "@agimon-ai/doompi-core/pi-extension";
10
+ import { composeRootHooks } from "@agimon-ai/doompi-core/extension-file";
11
+ //#region generated/pi.ts
12
+ const at = (value, context) => typeof value === "function" ? value(context) : value;
13
+ const via = (identity, value) => ({
14
+ ...identity,
15
+ ...value
16
+ });
17
+ const extension = definePiExtension("@agimon-ai/doompi-computer-use", async (context) => {
18
+ const scopeSession = await root_cli_default(context);
19
+ const contextSession = {
20
+ ...context,
21
+ root: scopeSession.value
22
+ };
23
+ return {
24
+ ...composeRootHooks(scopeSession),
25
+ get commands() {
26
+ return [at(computer_use_cli_default, contextSession)];
27
+ },
28
+ events: {
29
+ before_agent_start: at(before_agent_start_cli_default, contextSession),
30
+ session_start: at(session_start_cli_default, contextSession)
31
+ },
32
+ get toolRestrictions() {
33
+ return [at(computer_use_cli_default$1, contextSession)];
34
+ },
35
+ ...piToolContributions("@agimon-ai/doompi-computer-use", [
36
+ via({ name: "00_computer_state" }, at(_00_computer_state_cli_default, contextSession)),
37
+ via({ name: "10_computer_action" }, at(_10_computer_action_cli_default, contextSession)),
38
+ via({ name: "20_computer_exec" }, at(_20_computer_exec_cli_default, contextSession))
39
+ ]),
40
+ services: [...scopeSession.services ?? []]
41
+ };
42
+ });
43
+ //#endregion
44
+ export { extension as default, extension };
45
+
46
+ //# sourceMappingURL=pi.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi.mjs","names":["rootSession","commandComputerUse","hookBeforeAgentStart","hookSessionStart","toolRestrictionComputerUse","tool00ComputerState","tool10ComputerAction","tool20ComputerExec"],"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 commandComputerUse from '../src/extensions/workspaces/sessions/(backend)/command/computer-use.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 toolRestrictionComputerUse from '../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli';\nimport tool00ComputerState from '../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli';\nimport tool10ComputerAction from '../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli';\nimport tool20ComputerExec from '../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof rootSession> | OptionsOf<typeof commandComputerUse> | OptionsOf<typeof hookBeforeAgentStart> | OptionsOf<typeof hookSessionStart> | OptionsOf<typeof toolRestrictionComputerUse> | OptionsOf<typeof tool00ComputerState> | OptionsOf<typeof tool10ComputerAction> | OptionsOf<typeof tool20ComputerExec>, 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-computer-use', 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(commandComputerUse, contextSession)]; },\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 toolRestrictions(): PiPluginContributions['toolRestrictions'] { return [at(toolRestrictionComputerUse, contextSession)]; },\n ...piToolContributions('@agimon-ai/doompi-computer-use', [via({ name: '00_computer_state' }, at(tool00ComputerState, contextSession)), via({ name: '10_computer_action' }, at(tool10ComputerAction, contextSession)), via({ name: '20_computer_exec' }, at(tool20ComputerExec, contextSession))]),\n services: [...(scopeSession.services ?? [])],\n };\n});\n\nexport default extension;\n"],"mappings":";;;;;;;;;;;AAoBA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,YAAY,kBAAoC,kCAAkC,OAAO,YAAY;CAChH,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,0BAAoB,cAAc,CAAC;EAAG;EACrG,QAAQ;GACN,oBAAoB,GAAGC,gCAAsB,cAAc;GAC3D,eAAe,GAAGC,2BAAkB,cAAc;EACpD;EACA,IAAI,mBAA8D;GAAE,OAAO,CAAC,GAAGC,4BAA4B,cAAc,CAAC;EAAG;EAC7H,GAAG,oBAAoB,kCAAkC;GAAC,IAAI,EAAE,MAAM,oBAAoB,GAAG,GAAGC,gCAAqB,cAAc,CAAC;GAAG,IAAI,EAAE,MAAM,qBAAqB,GAAG,GAAGC,iCAAsB,cAAc,CAAC;GAAG,IAAI,EAAE,MAAM,mBAAmB,GAAG,GAAGC,+BAAoB,cAAc,CAAC;EAAC,CAAC;EAChS,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;CAC7C;AACF,CAAC"}
@@ -0,0 +1,72 @@
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_computer_use_server = require("../src/extensions/(backend)/channel/computer-use.server.cjs");
7
+ const require_route_server = require("../src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.cjs");
8
+ const require_computer_use_server$1 = require("../src/extensions/workspaces/sessions/(backend)/command/computer-use.server.cjs");
9
+ const require_before_agent_start_server = require("../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.cjs");
10
+ const require_session_shutdown_server = require("../src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs");
11
+ const require_computer_use_server$2 = require("../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.cjs");
12
+ const require_00_computer_state_server = require("../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.cjs");
13
+ const require_10_computer_action_server = require("../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.cjs");
14
+ const require_20_computer_exec_server = require("../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.cjs");
15
+ let _agimon_ai_doompi_core_extension_file = require("@agimon-ai/doompi-core/extension-file");
16
+ let _agimon_ai_doompi_core_server_facet = require("@agimon-ai/doompi-core/server-facet");
17
+ //#region generated/server.ts
18
+ const at = (value, context) => typeof value === "function" ? value(context) : value;
19
+ const via = (identity, value) => ({
20
+ ...identity,
21
+ ...value
22
+ });
23
+ const facet = (0, _agimon_ai_doompi_core_server_facet.defineServerPlugin)({
24
+ name: "@agimon-ai/doompi-computer-use",
25
+ global: () => ({ get channels() {
26
+ return [() => via({ frameType: "computer_use" }, require_computer_use_server.default())];
27
+ } }),
28
+ workspace: () => ({ get channels() {
29
+ return [() => via({ frameType: "computer_use" }, require_computer_use_server.default())];
30
+ } }),
31
+ session: async (context) => {
32
+ const scopeSession = await require_root_server.default(context);
33
+ const contextSession = {
34
+ ...context,
35
+ root: scopeSession.value
36
+ };
37
+ return {
38
+ ...(0, _agimon_ai_doompi_core_extension_file.composeRootHooks)(scopeSession),
39
+ get api() {
40
+ return [at(require_route_server.default, contextSession)];
41
+ },
42
+ get channels() {
43
+ return [() => via({ frameType: "computer_use" }, require_computer_use_server.default())];
44
+ },
45
+ get commands() {
46
+ return [via({ name: "computer-use" }, at(require_computer_use_server$1.default, contextSession))];
47
+ },
48
+ get hooks() {
49
+ return [via({ event: "before_agent_start" }, at(require_before_agent_start_server.default, contextSession)), via({ event: "session_shutdown" }, at(require_session_shutdown_server.default, contextSession))];
50
+ },
51
+ get toolRestrictions() {
52
+ return [at(require_computer_use_server$2.default, contextSession)];
53
+ },
54
+ get tools() {
55
+ return [
56
+ via({ name: "00_computer_state" }, at(require_00_computer_state_server.default, contextSession)),
57
+ via({ name: "10_computer_action" }, at(require_10_computer_action_server.default, contextSession)),
58
+ via({ name: "20_computer_exec" }, at(require_20_computer_exec_server.default, contextSession))
59
+ ];
60
+ },
61
+ services: [...scopeSession.services ?? []],
62
+ get activities() {
63
+ return [...scopeSession.activities ?? []];
64
+ }
65
+ };
66
+ }
67
+ });
68
+ //#endregion
69
+ exports.default = facet;
70
+ exports.facet = facet;
71
+
72
+ //# sourceMappingURL=server.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.cjs","names":["defineServerPlugin","channelComputerUse","rootSession","composeRootHooks","apiRoute","commandComputerUse","hookBeforeAgentStart","hookSessionShutdown","toolRestrictionComputerUse","tool00ComputerState","tool10ComputerAction","tool20ComputerExec"],"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 channelComputerUse from '../src/extensions/(backend)/channel/computer-use.server';\nimport apiRoute from '../src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server';\nimport commandComputerUse from '../src/extensions/workspaces/sessions/(backend)/command/computer-use.server';\nimport hookBeforeAgentStart from '../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server';\nimport hookSessionShutdown from '../src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server';\nimport toolRestrictionComputerUse from '../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server';\nimport tool00ComputerState from '../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server';\nimport tool10ComputerAction from '../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server';\nimport tool20ComputerExec from '../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.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-computer-use',\n global: () => ({\n get channels(): DoomServerSessionPlugin['channels'] { return [() => via({ frameType: 'computer_use' }, channelComputerUse())]; },\n }),\n workspace: () => ({\n get channels(): DoomServerSessionPlugin['channels'] { return [() => via({ frameType: 'computer_use' }, channelComputerUse())]; },\n }),\n session: async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n get api(): DoomServerSessionPlugin['api'] { return [at(apiRoute, contextSession)]; },\n get channels(): DoomServerSessionPlugin['channels'] { return [() => via({ frameType: 'computer_use' }, channelComputerUse())]; },\n get commands(): DoomServerSessionPlugin['commands'] { return [via({ name: 'computer-use' }, at(commandComputerUse, contextSession))]; },\n get hooks(): DoomServerSessionPlugin['hooks'] { return [via({ event: 'before_agent_start' }, at(hookBeforeAgentStart, contextSession)), via({ event: 'session_shutdown' }, at(hookSessionShutdown, contextSession))]; },\n get toolRestrictions(): DoomServerSessionPlugin['toolRestrictions'] { return [at(toolRestrictionComputerUse, contextSession)]; },\n get tools(): DoomServerSessionPlugin['tools'] { return [via({ name: '00_computer_state' }, at(tool00ComputerState, contextSession)), via({ name: '10_computer_action' }, at(tool10ComputerAction, contextSession)), via({ name: '20_computer_exec' }, at(tool20ComputerExec, contextSession))]; },\n services: [...(scopeSession.services ?? [])],\n get activities(): DoomServerSessionPlugin['activities'] { return [...(scopeSession.activities ?? [])]; },\n };\n },\n});\n\nexport default facet;\n"],"mappings":";;;;;;;;;;;;;;;;;AAgBA,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,eAAe,EACb,IAAI,WAAgD;EAAE,OAAO,OAAO,IAAI,EAAE,WAAW,eAAe,GAAGC,4BAAAA,QAAmB,CAAC,CAAC;CAAG,EACjI;CACA,kBAAkB,EAChB,IAAI,WAAgD;EAAE,OAAO,OAAO,IAAI,EAAE,WAAW,eAAe,GAAGA,4BAAAA,QAAmB,CAAC,CAAC;CAAG,EACjI;CACA,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,MAAsC;IAAE,OAAO,CAAC,GAAGC,qBAAAA,SAAU,cAAc,CAAC;GAAG;GACnF,IAAI,WAAgD;IAAE,OAAO,OAAO,IAAI,EAAE,WAAW,eAAe,GAAGH,4BAAAA,QAAmB,CAAC,CAAC;GAAG;GAC/H,IAAI,WAAgD;IAAE,OAAO,CAAC,IAAI,EAAE,MAAM,eAAe,GAAG,GAAGI,8BAAAA,SAAoB,cAAc,CAAC,CAAC;GAAG;GACtI,IAAI,QAA0C;IAAE,OAAO,CAAC,IAAI,EAAE,OAAO,qBAAqB,GAAG,GAAGC,kCAAAA,SAAsB,cAAc,CAAC,GAAG,IAAI,EAAE,OAAO,mBAAmB,GAAG,GAAGC,gCAAAA,SAAqB,cAAc,CAAC,CAAC;GAAG;GACtN,IAAI,mBAAgE;IAAE,OAAO,CAAC,GAAGC,8BAAAA,SAA4B,cAAc,CAAC;GAAG;GAC/H,IAAI,QAA0C;IAAE,OAAO;KAAC,IAAI,EAAE,MAAM,oBAAoB,GAAG,GAAGC,iCAAAA,SAAqB,cAAc,CAAC;KAAG,IAAI,EAAE,MAAM,qBAAqB,GAAG,GAAGC,kCAAAA,SAAsB,cAAc,CAAC;KAAG,IAAI,EAAE,MAAM,mBAAmB,GAAG,GAAGC,gCAAAA,SAAoB,cAAc,CAAC;IAAC;GAAG;GAChS,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;GAC3C,IAAI,aAAoD;IAAE,OAAO,CAAC,GAAI,aAAa,cAAc,CAAC,CAAE;GAAG;EACzG;CACF;AACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ //#region generated/server.d.ts
2
+ export declare const facet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
3
+ //#endregion
4
+ export { facet as default };
5
+ //# sourceMappingURL=server.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.cts","names":[],"sources":["../../generated/server.ts"],"mappings":";qBAoBa,qDAAK"}
@@ -0,0 +1,5 @@
1
+ //#region generated/server.d.ts
2
+ export declare const facet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
3
+ //#endregion
4
+ export { facet as default };
5
+ //# sourceMappingURL=server.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.mts","names":[],"sources":["../../generated/server.ts"],"mappings":";qBAoBa,qDAAK"}
@@ -0,0 +1,67 @@
1
+ import root_server_default from "../src/extensions/workspaces/sessions/(backend)/root.server.mjs";
2
+ import computer_use_server_default from "../src/extensions/(backend)/channel/computer-use.server.mjs";
3
+ import route_server_default from "../src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.mjs";
4
+ import computer_use_server_default$1 from "../src/extensions/workspaces/sessions/(backend)/command/computer-use.server.mjs";
5
+ import before_agent_start_server_default from "../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.mjs";
6
+ import session_shutdown_server_default from "../src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs";
7
+ import computer_use_server_default$2 from "../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.mjs";
8
+ import _00_computer_state_server_default from "../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.mjs";
9
+ import _10_computer_action_server_default from "../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.mjs";
10
+ import _20_computer_exec_server_default from "../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.mjs";
11
+ import { composeRootHooks } from "@agimon-ai/doompi-core/extension-file";
12
+ import { defineServerPlugin } from "@agimon-ai/doompi-core/server-facet";
13
+ //#region generated/server.ts
14
+ const at = (value, context) => typeof value === "function" ? value(context) : value;
15
+ const via = (identity, value) => ({
16
+ ...identity,
17
+ ...value
18
+ });
19
+ const facet = defineServerPlugin({
20
+ name: "@agimon-ai/doompi-computer-use",
21
+ global: () => ({ get channels() {
22
+ return [() => via({ frameType: "computer_use" }, computer_use_server_default())];
23
+ } }),
24
+ workspace: () => ({ get channels() {
25
+ return [() => via({ frameType: "computer_use" }, computer_use_server_default())];
26
+ } }),
27
+ session: async (context) => {
28
+ const scopeSession = await root_server_default(context);
29
+ const contextSession = {
30
+ ...context,
31
+ root: scopeSession.value
32
+ };
33
+ return {
34
+ ...composeRootHooks(scopeSession),
35
+ get api() {
36
+ return [at(route_server_default, contextSession)];
37
+ },
38
+ get channels() {
39
+ return [() => via({ frameType: "computer_use" }, computer_use_server_default())];
40
+ },
41
+ get commands() {
42
+ return [via({ name: "computer-use" }, at(computer_use_server_default$1, contextSession))];
43
+ },
44
+ get hooks() {
45
+ return [via({ event: "before_agent_start" }, at(before_agent_start_server_default, contextSession)), via({ event: "session_shutdown" }, at(session_shutdown_server_default, contextSession))];
46
+ },
47
+ get toolRestrictions() {
48
+ return [at(computer_use_server_default$2, contextSession)];
49
+ },
50
+ get tools() {
51
+ return [
52
+ via({ name: "00_computer_state" }, at(_00_computer_state_server_default, contextSession)),
53
+ via({ name: "10_computer_action" }, at(_10_computer_action_server_default, contextSession)),
54
+ via({ name: "20_computer_exec" }, at(_20_computer_exec_server_default, contextSession))
55
+ ];
56
+ },
57
+ services: [...scopeSession.services ?? []],
58
+ get activities() {
59
+ return [...scopeSession.activities ?? []];
60
+ }
61
+ };
62
+ }
63
+ });
64
+ //#endregion
65
+ export { facet as default, facet };
66
+
67
+ //# sourceMappingURL=server.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.mjs","names":["channelComputerUse","rootSession","apiRoute","commandComputerUse","hookBeforeAgentStart","hookSessionShutdown","toolRestrictionComputerUse","tool00ComputerState","tool10ComputerAction","tool20ComputerExec"],"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 channelComputerUse from '../src/extensions/(backend)/channel/computer-use.server';\nimport apiRoute from '../src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server';\nimport commandComputerUse from '../src/extensions/workspaces/sessions/(backend)/command/computer-use.server';\nimport hookBeforeAgentStart from '../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server';\nimport hookSessionShutdown from '../src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server';\nimport toolRestrictionComputerUse from '../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server';\nimport tool00ComputerState from '../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server';\nimport tool10ComputerAction from '../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server';\nimport tool20ComputerExec from '../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.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-computer-use',\n global: () => ({\n get channels(): DoomServerSessionPlugin['channels'] { return [() => via({ frameType: 'computer_use' }, channelComputerUse())]; },\n }),\n workspace: () => ({\n get channels(): DoomServerSessionPlugin['channels'] { return [() => via({ frameType: 'computer_use' }, channelComputerUse())]; },\n }),\n session: async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n get api(): DoomServerSessionPlugin['api'] { return [at(apiRoute, contextSession)]; },\n get channels(): DoomServerSessionPlugin['channels'] { return [() => via({ frameType: 'computer_use' }, channelComputerUse())]; },\n get commands(): DoomServerSessionPlugin['commands'] { return [via({ name: 'computer-use' }, at(commandComputerUse, contextSession))]; },\n get hooks(): DoomServerSessionPlugin['hooks'] { return [via({ event: 'before_agent_start' }, at(hookBeforeAgentStart, contextSession)), via({ event: 'session_shutdown' }, at(hookSessionShutdown, contextSession))]; },\n get toolRestrictions(): DoomServerSessionPlugin['toolRestrictions'] { return [at(toolRestrictionComputerUse, contextSession)]; },\n get tools(): DoomServerSessionPlugin['tools'] { return [via({ name: '00_computer_state' }, at(tool00ComputerState, contextSession)), via({ name: '10_computer_action' }, at(tool10ComputerAction, contextSession)), via({ name: '20_computer_exec' }, at(tool20ComputerExec, contextSession))]; },\n services: [...(scopeSession.services ?? [])],\n get activities(): DoomServerSessionPlugin['activities'] { return [...(scopeSession.activities ?? [])]; },\n };\n },\n});\n\nexport default facet;\n"],"mappings":";;;;;;;;;;;;;AAgBA,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,eAAe,EACb,IAAI,WAAgD;EAAE,OAAO,OAAO,IAAI,EAAE,WAAW,eAAe,GAAGA,4BAAmB,CAAC,CAAC;CAAG,EACjI;CACA,kBAAkB,EAChB,IAAI,WAAgD;EAAE,OAAO,OAAO,IAAI,EAAE,WAAW,eAAe,GAAGA,4BAAmB,CAAC,CAAC;CAAG,EACjI;CACA,SAAS,OAAO,YAAY;EAC1B,MAAM,eAAe,MAAMC,oBAAY,OAAO;EAC9C,MAAM,iBAAiB;GAAE,GAAG;GAAS,MAAM,aAAa;EAAM;EAC9D,OAAO;GACL,GAAG,iBAAiB,YAAY;GAChC,IAAI,MAAsC;IAAE,OAAO,CAAC,GAAGC,sBAAU,cAAc,CAAC;GAAG;GACnF,IAAI,WAAgD;IAAE,OAAO,OAAO,IAAI,EAAE,WAAW,eAAe,GAAGF,4BAAmB,CAAC,CAAC;GAAG;GAC/H,IAAI,WAAgD;IAAE,OAAO,CAAC,IAAI,EAAE,MAAM,eAAe,GAAG,GAAGG,+BAAoB,cAAc,CAAC,CAAC;GAAG;GACtI,IAAI,QAA0C;IAAE,OAAO,CAAC,IAAI,EAAE,OAAO,qBAAqB,GAAG,GAAGC,mCAAsB,cAAc,CAAC,GAAG,IAAI,EAAE,OAAO,mBAAmB,GAAG,GAAGC,iCAAqB,cAAc,CAAC,CAAC;GAAG;GACtN,IAAI,mBAAgE;IAAE,OAAO,CAAC,GAAGC,+BAA4B,cAAc,CAAC;GAAG;GAC/H,IAAI,QAA0C;IAAE,OAAO;KAAC,IAAI,EAAE,MAAM,oBAAoB,GAAG,GAAGC,mCAAqB,cAAc,CAAC;KAAG,IAAI,EAAE,MAAM,qBAAqB,GAAG,GAAGC,oCAAsB,cAAc,CAAC;KAAG,IAAI,EAAE,MAAM,mBAAmB,GAAG,GAAGC,kCAAoB,cAAc,CAAC;IAAC;GAAG;GAChS,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;GAC3C,IAAI,aAAoD;IAAE,OAAO,CAAC,GAAI,aAAa,cAAc,CAAC,CAAE;GAAG;EACzG;CACF;AACF,CAAC"}