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

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 (341) 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/mcp.cjs +56 -0
  8. package/dist/extensions/mcp.cjs.map +1 -0
  9. package/dist/extensions/mcp.d.cts +5 -0
  10. package/dist/extensions/mcp.d.cts.map +1 -0
  11. package/dist/extensions/mcp.d.mts +5 -0
  12. package/dist/extensions/mcp.d.mts.map +1 -0
  13. package/dist/extensions/mcp.mjs +51 -0
  14. package/dist/extensions/mcp.mjs.map +1 -0
  15. package/dist/extensions/pi.cjs +51 -1
  16. package/dist/extensions/pi.cjs.map +1 -0
  17. package/dist/extensions/pi.d.cts +7 -2
  18. package/dist/extensions/pi.d.cts.map +1 -0
  19. package/dist/extensions/pi.d.mts +7 -2
  20. package/dist/extensions/pi.d.mts.map +1 -0
  21. package/dist/extensions/pi.mjs +46 -1
  22. package/dist/extensions/pi.mjs.map +1 -0
  23. package/dist/extensions/server.cjs +72 -0
  24. package/dist/extensions/server.cjs.map +1 -0
  25. package/dist/extensions/server.d.cts +5 -0
  26. package/dist/extensions/server.d.cts.map +1 -0
  27. package/dist/extensions/server.d.mts +5 -0
  28. package/dist/extensions/server.d.mts.map +1 -0
  29. package/dist/extensions/server.mjs +67 -0
  30. package/dist/extensions/server.mjs.map +1 -0
  31. package/dist/extensions/web.mjs +625 -0
  32. package/dist/extensions/web.mjs.map +1 -0
  33. package/dist/index.cjs +18 -1
  34. package/dist/index.d.cts +12 -10
  35. package/dist/index.d.mts +12 -10
  36. package/dist/index.mjs +8 -1
  37. package/dist/src/constants/computerUse.cjs +17 -0
  38. package/dist/src/constants/computerUse.cjs.map +1 -0
  39. package/dist/src/constants/computerUse.d.cts +5 -0
  40. package/dist/src/constants/computerUse.d.cts.map +1 -0
  41. package/dist/src/constants/computerUse.d.mts +5 -0
  42. package/dist/src/constants/computerUse.d.mts.map +1 -0
  43. package/dist/src/constants/computerUse.mjs +14 -0
  44. package/dist/src/constants/computerUse.mjs.map +1 -0
  45. package/dist/src/extensions/(backend)/channel/computer-use.server.cjs +7 -0
  46. package/dist/src/extensions/(backend)/channel/computer-use.server.cjs.map +1 -0
  47. package/dist/src/extensions/(backend)/channel/computer-use.server.mjs +8 -0
  48. package/dist/src/extensions/(backend)/channel/computer-use.server.mjs.map +1 -0
  49. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.cli.cjs +8 -0
  50. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.cli.cjs.map +1 -0
  51. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.cli.mjs +8 -0
  52. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.cli.mjs.map +1 -0
  53. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.server.cjs +11 -0
  54. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.server.cjs.map +1 -0
  55. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.server.mjs +11 -0
  56. package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.server.mjs.map +1 -0
  57. package/dist/src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.cjs +6 -0
  58. package/dist/src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.cjs.map +1 -0
  59. package/dist/src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.mjs +7 -0
  60. package/dist/src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.mjs.map +1 -0
  61. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.cjs +6 -0
  62. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.cjs.map +1 -0
  63. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.mjs +7 -0
  64. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.mjs.map +1 -0
  65. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.server.cjs +6 -0
  66. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.server.cjs.map +1 -0
  67. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.server.mjs +7 -0
  68. package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.server.mjs.map +1 -0
  69. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs +6 -0
  70. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs.map +1 -0
  71. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.mjs +7 -0
  72. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.mjs.map +1 -0
  73. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.cjs +6 -0
  74. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.cjs.map +1 -0
  75. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.mjs +7 -0
  76. package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.mjs.map +1 -0
  77. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs +6 -0
  78. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs.map +1 -0
  79. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs +7 -0
  80. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs.map +1 -0
  81. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs +6 -0
  82. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs.map +1 -0
  83. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs +7 -0
  84. package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs.map +1 -0
  85. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs +15 -0
  86. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs.map +1 -0
  87. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs +16 -0
  88. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs.map +1 -0
  89. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs +17 -0
  90. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs.map +1 -0
  91. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs +18 -0
  92. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs.map +1 -0
  93. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.cjs +6 -0
  94. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.cjs.map +1 -0
  95. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.mjs +7 -0
  96. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.mjs.map +1 -0
  97. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.cjs +6 -0
  98. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.cjs.map +1 -0
  99. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.mjs +7 -0
  100. package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.mjs.map +1 -0
  101. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.cjs +6 -0
  102. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.cjs.map +1 -0
  103. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.mjs +7 -0
  104. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.mjs.map +1 -0
  105. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.cjs +6 -0
  106. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.cjs.map +1 -0
  107. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.mjs +7 -0
  108. package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.mjs.map +1 -0
  109. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.cjs +6 -0
  110. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.cjs.map +1 -0
  111. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.mjs +7 -0
  112. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.mjs.map +1 -0
  113. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.cjs +6 -0
  114. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.cjs.map +1 -0
  115. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.mjs +7 -0
  116. package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.mjs.map +1 -0
  117. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.cjs +6 -0
  118. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.cjs.map +1 -0
  119. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.mjs +7 -0
  120. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.mjs.map +1 -0
  121. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.cjs +6 -0
  122. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.cjs.map +1 -0
  123. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.mjs +7 -0
  124. package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.mjs.map +1 -0
  125. package/dist/src/models/computerUseMode.cjs +43 -0
  126. package/dist/src/models/computerUseMode.cjs.map +1 -0
  127. package/dist/src/models/computerUseMode.mjs +42 -0
  128. package/dist/src/models/computerUseMode.mjs.map +1 -0
  129. package/dist/src/models/computerUseState.cjs +89 -0
  130. package/dist/src/models/computerUseState.cjs.map +1 -0
  131. package/dist/src/models/computerUseState.d.cts +6 -0
  132. package/dist/src/models/computerUseState.d.cts.map +1 -0
  133. package/dist/src/models/computerUseState.d.mts +6 -0
  134. package/dist/src/models/computerUseState.d.mts.map +1 -0
  135. package/dist/src/models/computerUseState.mjs +88 -0
  136. package/dist/src/models/computerUseState.mjs.map +1 -0
  137. package/dist/src/schemas/apiContracts.cjs +194 -0
  138. package/dist/src/schemas/apiContracts.cjs.map +1 -0
  139. package/dist/src/schemas/apiContracts.d.cts +53 -0
  140. package/dist/src/schemas/apiContracts.d.cts.map +1 -0
  141. package/dist/src/schemas/apiContracts.d.mts +53 -0
  142. package/dist/src/schemas/apiContracts.d.mts.map +1 -0
  143. package/dist/src/schemas/apiContracts.mjs +191 -0
  144. package/dist/src/schemas/apiContracts.mjs.map +1 -0
  145. package/dist/src/services/computerScriptRunner/index.cjs +171 -0
  146. package/dist/src/services/computerScriptRunner/index.cjs.map +1 -0
  147. package/dist/src/services/computerScriptRunner/index.d.cts +12 -0
  148. package/dist/src/services/computerScriptRunner/index.d.cts.map +1 -0
  149. package/dist/src/services/computerScriptRunner/index.d.mts +12 -0
  150. package/dist/src/services/computerScriptRunner/index.d.mts.map +1 -0
  151. package/dist/src/services/computerScriptRunner/index.mjs +171 -0
  152. package/dist/src/services/computerScriptRunner/index.mjs.map +1 -0
  153. package/dist/src/services/computerUseApi/index.cjs +291 -0
  154. package/dist/src/services/computerUseApi/index.cjs.map +1 -0
  155. package/dist/src/services/computerUseApi/index.mjs +289 -0
  156. package/dist/src/services/computerUseApi/index.mjs.map +1 -0
  157. package/dist/src/services/computerUseCommand/index.cjs +15 -0
  158. package/dist/src/services/computerUseCommand/index.cjs.map +1 -0
  159. package/dist/src/services/computerUseCommand/index.mjs +15 -0
  160. package/dist/src/services/computerUseCommand/index.mjs.map +1 -0
  161. package/dist/src/services/computerUseRuntime/index.cjs +300 -0
  162. package/dist/src/services/computerUseRuntime/index.cjs.map +1 -0
  163. package/dist/src/services/computerUseRuntime/index.mjs +299 -0
  164. package/dist/src/services/computerUseRuntime/index.mjs.map +1 -0
  165. package/dist/src/services/computerUseServer/index.cjs +350 -0
  166. package/dist/src/services/computerUseServer/index.cjs.map +1 -0
  167. package/dist/src/services/computerUseServer/index.mjs +348 -0
  168. package/dist/src/services/computerUseServer/index.mjs.map +1 -0
  169. package/dist/src/services/dependencies/index.cjs +27 -0
  170. package/dist/src/services/dependencies/index.cjs.map +1 -0
  171. package/dist/src/services/dependencies/index.d.cts +6 -0
  172. package/dist/src/services/dependencies/index.d.cts.map +1 -0
  173. package/dist/src/services/dependencies/index.d.mts +6 -0
  174. package/dist/src/services/dependencies/index.d.mts.map +1 -0
  175. package/dist/src/services/dependencies/index.mjs +24 -0
  176. package/dist/src/services/dependencies/index.mjs.map +1 -0
  177. package/dist/src/services/extensionService/index.cjs +21 -0
  178. package/dist/src/services/extensionService/index.cjs.map +1 -0
  179. package/dist/src/services/extensionService/index.d.cts +10 -0
  180. package/dist/src/services/extensionService/index.d.cts.map +1 -0
  181. package/dist/src/services/extensionService/index.d.mts +10 -0
  182. package/dist/src/services/extensionService/index.d.mts.map +1 -0
  183. package/dist/src/services/extensionService/index.mjs +21 -0
  184. package/dist/src/services/extensionService/index.mjs.map +1 -0
  185. package/dist/src/services/mcpTools/index.cjs +17 -0
  186. package/dist/src/services/mcpTools/index.cjs.map +1 -0
  187. package/dist/src/services/mcpTools/index.mjs +16 -0
  188. package/dist/src/services/mcpTools/index.mjs.map +1 -0
  189. package/dist/src/services/sessionApiClient/index.cjs +9 -0
  190. package/dist/src/services/sessionApiClient/index.cjs.map +1 -0
  191. package/dist/src/services/sessionApiClient/index.d.cts +15 -0
  192. package/dist/src/services/sessionApiClient/index.d.cts.map +1 -0
  193. package/dist/src/services/sessionApiClient/index.d.mts +15 -0
  194. package/dist/src/services/sessionApiClient/index.d.mts.map +1 -0
  195. package/dist/src/services/sessionApiClient/index.mjs +9 -0
  196. package/dist/src/services/sessionApiClient/index.mjs.map +1 -0
  197. package/dist/src/services/traceRedaction/index.cjs +19 -0
  198. package/dist/src/services/traceRedaction/index.cjs.map +1 -0
  199. package/dist/{services/traceRedaction.d.mts → src/services/traceRedaction/index.d.cts} +6 -7
  200. package/dist/src/services/traceRedaction/index.d.cts.map +1 -0
  201. package/dist/{services/traceRedaction.d.cts → src/services/traceRedaction/index.d.mts} +6 -7
  202. package/dist/src/services/traceRedaction/index.d.mts.map +1 -0
  203. package/dist/src/services/traceRedaction/index.mjs +19 -0
  204. package/dist/src/services/traceRedaction/index.mjs.map +1 -0
  205. package/dist/src/services/webComputerUseAvailability/index.cjs +13 -0
  206. package/dist/src/services/webComputerUseAvailability/index.cjs.map +1 -0
  207. package/dist/src/services/webComputerUseAvailability/index.mjs +12 -0
  208. package/dist/src/services/webComputerUseAvailability/index.mjs.map +1 -0
  209. package/dist/src/services/webComputerUseChannel/index.cjs +251 -0
  210. package/dist/src/services/webComputerUseChannel/index.cjs.map +1 -0
  211. package/dist/src/services/webComputerUseChannel/index.mjs +250 -0
  212. package/dist/src/services/webComputerUseChannel/index.mjs.map +1 -0
  213. package/dist/src/types/apiRoutes.cjs +84 -0
  214. package/dist/src/types/apiRoutes.cjs.map +1 -0
  215. package/dist/src/types/apiRoutes.mjs +84 -0
  216. package/dist/src/types/apiRoutes.mjs.map +1 -0
  217. package/dist/src/types/computerScript.d.cts +38 -0
  218. package/dist/src/types/computerScript.d.cts.map +1 -0
  219. package/dist/src/types/computerScript.d.mts +38 -0
  220. package/dist/src/types/computerScript.d.mts.map +1 -0
  221. package/dist/{types → src/types}/computerUse.d.cts +14 -14
  222. package/dist/src/types/computerUse.d.cts.map +1 -0
  223. package/dist/{types → src/types}/computerUse.d.mts +14 -14
  224. package/dist/src/types/computerUse.d.mts.map +1 -0
  225. package/dist/src/types/computerUseApi.cjs +41 -0
  226. package/dist/src/types/computerUseApi.cjs.map +1 -0
  227. package/dist/{types → src/types}/computerUseApi.d.cts +28 -20
  228. package/dist/src/types/computerUseApi.d.cts.map +1 -0
  229. package/dist/{types → src/types}/computerUseApi.d.mts +28 -20
  230. package/dist/src/types/computerUseApi.d.mts.map +1 -0
  231. package/dist/src/types/computerUseApi.mjs +33 -0
  232. package/dist/src/types/computerUseApi.mjs.map +1 -0
  233. package/dist/src/types/extension.d.cts +19 -0
  234. package/dist/src/types/extension.d.cts.map +1 -0
  235. package/dist/src/types/extension.d.mts +19 -0
  236. package/dist/src/types/extension.d.mts.map +1 -0
  237. package/docs/computer-scripts.md +37 -0
  238. package/llms.txt +1 -0
  239. package/package.json +55 -33
  240. package/src/prompts/doompi-use-computer-use/SKILL.md +1 -1
  241. package/src/types/computerUse.ts +3 -2
  242. package/src/types/computerUseApi.ts +9 -6
  243. package/dist/adapters/computerUseApi.cjs +0 -2
  244. package/dist/adapters/computerUseApi.cjs.map +0 -1
  245. package/dist/adapters/computerUseApi.d.cts +0 -37
  246. package/dist/adapters/computerUseApi.d.cts.map +0 -1
  247. package/dist/adapters/computerUseApi.d.mts +0 -37
  248. package/dist/adapters/computerUseApi.d.mts.map +0 -1
  249. package/dist/adapters/computerUseApi.mjs +0 -2
  250. package/dist/adapters/computerUseApi.mjs.map +0 -1
  251. package/dist/adapters/pi/extension.cjs +0 -3
  252. package/dist/adapters/pi/extension.cjs.map +0 -1
  253. package/dist/adapters/pi/extension.d.cts +0 -12
  254. package/dist/adapters/pi/extension.d.cts.map +0 -1
  255. package/dist/adapters/pi/extension.d.mts +0 -12
  256. package/dist/adapters/pi/extension.d.mts.map +0 -1
  257. package/dist/adapters/pi/extension.mjs +0 -3
  258. package/dist/adapters/pi/extension.mjs.map +0 -1
  259. package/dist/adapters/pi/sessionApiClient.cjs +0 -2
  260. package/dist/adapters/pi/sessionApiClient.cjs.map +0 -1
  261. package/dist/adapters/pi/sessionApiClient.d.cts +0 -26
  262. package/dist/adapters/pi/sessionApiClient.d.cts.map +0 -1
  263. package/dist/adapters/pi/sessionApiClient.d.mts +0 -26
  264. package/dist/adapters/pi/sessionApiClient.d.mts.map +0 -1
  265. package/dist/adapters/pi/sessionApiClient.mjs +0 -2
  266. package/dist/adapters/pi/sessionApiClient.mjs.map +0 -1
  267. package/dist/adapters/webComputerUseAvailability.cjs +0 -2
  268. package/dist/adapters/webComputerUseAvailability.cjs.map +0 -1
  269. package/dist/adapters/webComputerUseAvailability.mjs +0 -2
  270. package/dist/adapters/webComputerUseAvailability.mjs.map +0 -1
  271. package/dist/adapters/webComputerUseChannel.cjs +0 -2
  272. package/dist/adapters/webComputerUseChannel.cjs.map +0 -1
  273. package/dist/adapters/webComputerUseChannel.d.cts +0 -10
  274. package/dist/adapters/webComputerUseChannel.d.cts.map +0 -1
  275. package/dist/adapters/webComputerUseChannel.d.mts +0 -10
  276. package/dist/adapters/webComputerUseChannel.d.mts.map +0 -1
  277. package/dist/adapters/webComputerUseChannel.mjs +0 -2
  278. package/dist/adapters/webComputerUseChannel.mjs.map +0 -1
  279. package/dist/commands/computerUseCommand.cjs +0 -2
  280. package/dist/commands/computerUseCommand.cjs.map +0 -1
  281. package/dist/commands/computerUseCommand.mjs +0 -2
  282. package/dist/commands/computerUseCommand.mjs.map +0 -1
  283. package/dist/container/index.cjs +0 -2
  284. package/dist/container/index.cjs.map +0 -1
  285. package/dist/container/index.d.cts +0 -6
  286. package/dist/container/index.d.cts.map +0 -1
  287. package/dist/container/index.d.mts +0 -6
  288. package/dist/container/index.d.mts.map +0 -1
  289. package/dist/container/index.mjs +0 -2
  290. package/dist/container/index.mjs.map +0 -1
  291. package/dist/services/extensionService.cjs +0 -2
  292. package/dist/services/extensionService.cjs.map +0 -1
  293. package/dist/services/extensionService.d.cts +0 -11
  294. package/dist/services/extensionService.d.cts.map +0 -1
  295. package/dist/services/extensionService.d.mts +0 -11
  296. package/dist/services/extensionService.d.mts.map +0 -1
  297. package/dist/services/extensionService.mjs +0 -2
  298. package/dist/services/extensionService.mjs.map +0 -1
  299. package/dist/services/sessionController.cjs +0 -2
  300. package/dist/services/sessionController.cjs.map +0 -1
  301. package/dist/services/sessionController.d.cts +0 -7
  302. package/dist/services/sessionController.d.cts.map +0 -1
  303. package/dist/services/sessionController.d.mts +0 -7
  304. package/dist/services/sessionController.d.mts.map +0 -1
  305. package/dist/services/sessionController.mjs +0 -2
  306. package/dist/services/sessionController.mjs.map +0 -1
  307. package/dist/services/traceRedaction.cjs +0 -2
  308. package/dist/services/traceRedaction.cjs.map +0 -1
  309. package/dist/services/traceRedaction.d.cts.map +0 -1
  310. package/dist/services/traceRedaction.d.mts.map +0 -1
  311. package/dist/services/traceRedaction.mjs +0 -2
  312. package/dist/services/traceRedaction.mjs.map +0 -1
  313. package/dist/sessionApi.cjs +0 -1
  314. package/dist/sessionApi.d.cts +0 -2
  315. package/dist/sessionApi.d.mts +0 -2
  316. package/dist/sessionApi.mjs +0 -1
  317. package/dist/types/computerUse.d.cts.map +0 -1
  318. package/dist/types/computerUse.d.mts.map +0 -1
  319. package/dist/types/computerUseApi.cjs +0 -2
  320. package/dist/types/computerUseApi.cjs.map +0 -1
  321. package/dist/types/computerUseApi.d.cts.map +0 -1
  322. package/dist/types/computerUseApi.d.mts.map +0 -1
  323. package/dist/types/computerUseApi.mjs +0 -2
  324. package/dist/types/computerUseApi.mjs.map +0 -1
  325. package/dist/types/extension.d.cts +0 -17
  326. package/dist/types/extension.d.cts.map +0 -1
  327. package/dist/types/extension.d.mts +0 -17
  328. package/dist/types/extension.d.mts.map +0 -1
  329. package/dist/webHub.cjs +0 -1
  330. package/dist/webHub.d.cts +0 -3
  331. package/dist/webHub.d.mts +0 -3
  332. package/dist/webHub.mjs +0 -1
  333. package/src/exports/webClient.ts +0 -2
  334. package/src/web/ComputerActionToolCard.tsx +0 -51
  335. package/src/web/ComputerStateToolCard.tsx +0 -51
  336. package/src/web/ComputerUsePanel.tsx +0 -136
  337. package/src/web/computerActionToolRender.ts +0 -20
  338. package/src/web/computerStateToolRender.ts +0 -18
  339. package/src/web/computerUseStore.ts +0 -26
  340. package/src/web/index.ts +0 -41
  341. package/src/web/tsconfig.json +0 -28
@@ -1 +0,0 @@
1
- {"version":3,"file":"webComputerUseChannel.cjs","names":["computerUseSessionApiError","computerUseChannelType","API_BASE_PATH","COMPUTER_USE_ROUTES","MissingComputerUseApiError","missingComputerUseApiRetryAt"],"sources":["../../src/adapters/webComputerUseChannel.ts"],"sourcesContent":["import type { HubChannelSource, HubSessionScope, WebHubChannel } from '@agimon-ai/doompi-web-contracts';\nimport {\n API_BASE_PATH,\n computerUseChannelType,\n COMPUTER_USE_ROUTES,\n type ComputerUseActivationRequest,\n type ComputerUseBrokerRequest,\n type ComputerUseBrowserCommand,\n type ComputerUseChannelPayload,\n type ComputerUseSessionView,\n} from '../types/computerUseApi.ts';\nimport {\n computerUseSessionApiError,\n MissingComputerUseApiError,\n missingComputerUseApiRetryAt,\n} from './webComputerUseAvailability.ts';\nexport { computerUseChannelType };\n\nconst POLL_MS = 250;\n\nfunction record(value: unknown): Record<string, unknown> | undefined {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined;\n}\n\nfunction command(value: unknown): ComputerUseBrowserCommand | undefined {\n const input = record(value);\n return input?.action === 'status' ||\n input?.action === 'targets' ||\n input?.action === 'stop' ||\n input?.action === 'artifacts'\n ? { action: input.action }\n : undefined;\n}\n\nasync function responseJson(response: Response): Promise<unknown> {\n const value = await response.json();\n if (!response.ok) throw computerUseSessionApiError(response.status, value);\n return value;\n}\n\nexport function createComputerUseChannel(options: { pollMs?: number } = {}): WebHubChannel {\n let receiveCommand: ((scope: HubSessionScope, payload: unknown) => void) | undefined;\n return {\n frameType: computerUseChannelType,\n lifecycle: 'hub',\n start(host) {\n const scopes = new Map<string, HubSessionScope>();\n const latest = new Map<string, ComputerUseChannelPayload>();\n const targets = new Map<string, readonly Record<string, unknown>[]>();\n const grants = new Map<string, string>();\n const processing = new Set<string>();\n const unavailableUntil = new Map<string, number>();\n let activeSessionId: string | undefined;\n let closed = false;\n\n const sessionRequest = async (scope: HubSessionScope, path: string, method = 'GET', value?: unknown) =>\n host.requestSessionApi(scope, {\n basePath: API_BASE_PATH,\n path,\n method,\n ...(value === undefined ? {} : { body: JSON.stringify(value) }),\n });\n\n const publish = (scope: HubSessionScope, state: ComputerUseSessionView): void => {\n const payload: ComputerUseChannelPayload = {\n state,\n targets: targets.get(scope.sessionId) ?? [],\n ...(activeSessionId !== undefined && activeSessionId !== scope.sessionId ? { busy: true } : {}),\n };\n latest.set(scope.sessionId, payload);\n host.publish(scope.sessionId, payload);\n };\n\n const refresh = async (scope: HubSessionScope): Promise<ComputerUseSessionView> => {\n const state = (await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubState),\n )) as ComputerUseSessionView;\n if (state.phase === 'active' || state.phase === 'activating' || state.phase === 'stopping') {\n activeSessionId = scope.sessionId;\n if (state.phase === 'active' && !grants.has(scope.sessionId)) {\n const authorization = (await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubAuthorization),\n )) as { grantId: string } | null;\n if (authorization !== null) grants.set(scope.sessionId, authorization.grantId);\n }\n } else {\n if (activeSessionId === scope.sessionId) activeSessionId = undefined;\n grants.delete(scope.sessionId);\n }\n unavailableUntil.delete(scope.sessionId);\n publish(scope, state);\n return state;\n };\n\n const completePending = async (scope: HubSessionScope, pending: ComputerUseBrokerRequest): Promise<void> => {\n if (!host.computerUse?.available) throw new Error('DoomPi Desktop computer use is unavailable.');\n try {\n const result = await host.computerUse.request(scope, {\n operation: pending.operation,\n payload:\n pending.operation === 'act'\n ? { grantId: pending.grantId, sequence: pending.sequence, action: pending.payload }\n : { grantId: pending.grantId },\n });\n await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubComplete, 'POST', { id: pending.id, result }),\n );\n } catch (error) {\n await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubComplete, 'POST', {\n id: pending.id,\n error: error instanceof Error ? error.message : String(error),\n }),\n );\n }\n };\n\n const stopSession = async (scope: HubSessionScope): Promise<void> => {\n const authorization = (await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubAuthorization),\n )) as { grantId: string } | null;\n let artifact: unknown;\n if (authorization !== null && host.computerUse?.available) {\n try {\n artifact = await host.computerUse.request(scope, {\n operation: 'stop',\n payload: { grantId: authorization.grantId },\n });\n } catch (error) {\n host.onNotice(\n `computer-use Desktop stop was already unavailable (${error instanceof Error ? error.message : String(error)})`,\n );\n }\n }\n await responseJson(await sessionRequest(scope, COMPUTER_USE_ROUTES.hubStop, 'POST', { artifact }));\n grants.delete(scope.sessionId);\n if (activeSessionId === scope.sessionId) activeSessionId = undefined;\n };\n const pollScope = async (scope: HubSessionScope): Promise<void> => {\n if (closed || processing.has(scope.sessionId)) return;\n if ((unavailableUntil.get(scope.sessionId) ?? 0) > Date.now()) return;\n processing.add(scope.sessionId);\n try {\n const state = await refresh(scope);\n if (state.phase === 'active') {\n const expired = typeof state.expiresAt === 'number' && state.expiresAt <= Date.now();\n let owned = false;\n if (!expired && host.computerUse?.available) {\n try {\n const hostStatus = record(await host.computerUse.request(scope, { operation: 'status' }));\n owned = hostStatus?.ownedBySession === true;\n } catch {\n owned = true;\n }\n }\n if (expired || !owned) {\n await responseJson(await sessionRequest(scope, COMPUTER_USE_ROUTES.hubStop, 'POST'));\n grants.delete(scope.sessionId);\n if (activeSessionId === scope.sessionId) activeSessionId = undefined;\n await refresh(scope);\n return;\n }\n }\n if (\n state.phase === 'awaiting_confirmation' &&\n (activeSessionId === undefined || activeSessionId === scope.sessionId)\n ) {\n if (!host.computerUse?.available) throw new Error('DoomPi Desktop computer use is unavailable.');\n const activation = (await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubActivation),\n )) as ComputerUseActivationRequest | null;\n if (activation !== null) {\n activeSessionId = scope.sessionId;\n try {\n const hostResult = await host.computerUse.request(scope, {\n operation: 'activate',\n payload: activation,\n });\n await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubStop, 'POST', { host: hostResult }),\n );\n const grantId = record(hostResult)?.grantId;\n if (typeof grantId === 'string') grants.set(scope.sessionId, grantId);\n } catch (error) {\n activeSessionId = undefined;\n await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubStop, 'POST', {\n error: error instanceof Error ? error.message : String(error),\n }),\n );\n }\n await refresh(scope);\n }\n }\n if (state.phase === 'stopping') {\n await stopSession(scope);\n await refresh(scope);\n }\n const pending = (await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubNext),\n )) as ComputerUseBrokerRequest | null;\n if (pending !== null) await completePending(scope, pending);\n } catch (error) {\n if (error instanceof MissingComputerUseApiError) {\n unavailableUntil.set(scope.sessionId, missingComputerUseApiRetryAt(Date.now()));\n latest.delete(scope.sessionId);\n } else {\n host.onNotice(\n `computer-use poll failed for ${scope.sessionId} (${error instanceof Error ? error.message : String(error)})`,\n );\n }\n } finally {\n processing.delete(scope.sessionId);\n }\n };\n\n receiveCommand = (scope, payload) => {\n const parsed = command(payload);\n if (parsed === undefined) return;\n unavailableUntil.delete(scope.sessionId);\n void (async () => {\n try {\n if (parsed.action === 'targets') {\n if (!host.computerUse?.available) throw new Error('DoomPi Desktop computer use is unavailable.');\n const result = await host.computerUse.request(scope, { operation: 'targets' });\n targets.set(\n scope.sessionId,\n Array.isArray(result)\n ? result.filter((item): item is Record<string, unknown> => record(item) !== undefined)\n : [],\n );\n } else if (parsed.action === 'stop') {\n await stopSession(scope);\n }\n await refresh(scope);\n } catch (error) {\n if (error instanceof MissingComputerUseApiError) {\n unavailableUntil.set(scope.sessionId, missingComputerUseApiRetryAt(Date.now()));\n latest.delete(scope.sessionId);\n } else {\n host.onNotice(\n `computer-use command failed for ${scope.sessionId} (${error instanceof Error ? error.message : String(error)})`,\n );\n }\n }\n })();\n };\n\n const timer: ReturnType<typeof setInterval> = setInterval(() => {\n for (const scope of scopes.values()) void pollScope(scope);\n }, options.pollMs ?? POLL_MS);\n\n const source: HubChannelSource = {\n payloadFor: (scope) => latest.get(scope.sessionId),\n sessionAdded(scope) {\n scopes.set(scope.sessionId, scope);\n void pollScope(scope);\n },\n sessionRemoved(sessionId) {\n const scope = scopes.get(sessionId);\n const grantId = grants.get(sessionId);\n if (scope !== undefined && grantId !== undefined && host.computerUse?.available) {\n void host.computerUse\n .request(scope, { operation: 'stop', payload: { grantId } })\n .catch((error: unknown) =>\n host.onNotice(\n `computer-use session cleanup failed (${error instanceof Error ? error.message : String(error)})`,\n ),\n );\n }\n scopes.delete(sessionId);\n latest.delete(sessionId);\n targets.delete(sessionId);\n grants.delete(sessionId);\n processing.delete(sessionId);\n unavailableUntil.delete(sessionId);\n if (activeSessionId === sessionId) activeSessionId = undefined;\n },\n close() {\n closed = true;\n clearInterval(timer);\n if (host.computerUse?.available) {\n for (const [sessionId, grantId] of grants) {\n const scope = scopes.get(sessionId);\n if (scope !== undefined)\n void host.computerUse\n .request(scope, { operation: 'stop', payload: { grantId } })\n .catch(() => undefined);\n }\n }\n scopes.clear();\n latest.clear();\n targets.clear();\n grants.clear();\n unavailableUntil.clear();\n },\n };\n return source;\n },\n receive(scope, payload) {\n receiveCommand?.(scope, payload);\n },\n };\n}\n\nexport const webHubChannels: readonly WebHubChannel[] = [createComputerUseChannel()];\n"],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { computerUseChannelType } from "../types/computerUseApi.cjs";
2
- import { WebHubChannel } from "@agimon-ai/doompi-web-contracts";
3
- //#region src/adapters/webComputerUseChannel.d.ts
4
- declare function createComputerUseChannel(options?: {
5
- pollMs?: number;
6
- }): WebHubChannel;
7
- declare const webHubChannels: readonly WebHubChannel[];
8
- //#endregion
9
- export { computerUseChannelType, createComputerUseChannel, webHubChannels };
10
- //# sourceMappingURL=webComputerUseChannel.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webComputerUseChannel.d.cts","names":[],"sources":["../../src/adapters/webComputerUseChannel.ts"],"mappings":";;;iBA0CgB,yBAAyB;EAAW;IAAyB;cAyQhE,yBAAyB"}
@@ -1,10 +0,0 @@
1
- import { computerUseChannelType } from "../types/computerUseApi.mjs";
2
- import { WebHubChannel } from "@agimon-ai/doompi-web-contracts";
3
- //#region src/adapters/webComputerUseChannel.d.ts
4
- declare function createComputerUseChannel(options?: {
5
- pollMs?: number;
6
- }): WebHubChannel;
7
- declare const webHubChannels: readonly WebHubChannel[];
8
- //#endregion
9
- export { computerUseChannelType, createComputerUseChannel, webHubChannels };
10
- //# sourceMappingURL=webComputerUseChannel.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webComputerUseChannel.d.mts","names":[],"sources":["../../src/adapters/webComputerUseChannel.ts"],"mappings":";;;iBA0CgB,yBAAyB;EAAW;IAAyB;cAyQhE,yBAAyB"}
@@ -1,2 +0,0 @@
1
- import{API_BASE_PATH as e,COMPUTER_USE_ROUTES as t,computerUseChannelType as n}from"../types/computerUseApi.mjs";import{MissingComputerUseApiError as r,computerUseSessionApiError as i,missingComputerUseApiRetryAt as a}from"./webComputerUseAvailability.mjs";function o(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function s(e){let t=o(e);return t?.action===`status`||t?.action===`targets`||t?.action===`stop`||t?.action===`artifacts`?{action:t.action}:void 0}async function c(e){let t=await e.json();if(!e.ok)throw i(e.status,t);return t}function l(i={}){let l;return{frameType:n,lifecycle:`hub`,start(n){let u=new Map,d=new Map,f=new Map,p=new Map,m=new Set,h=new Map,g,_=!1,v=async(t,r,i=`GET`,a)=>n.requestSessionApi(t,{basePath:e,path:r,method:i,...a===void 0?{}:{body:JSON.stringify(a)}}),y=(e,t)=>{let r={state:t,targets:f.get(e.sessionId)??[],...g!==void 0&&g!==e.sessionId?{busy:!0}:{}};d.set(e.sessionId,r),n.publish(e.sessionId,r)},b=async e=>{let n=await c(await v(e,t.hubState));if(n.phase===`active`||n.phase===`activating`||n.phase===`stopping`){if(g=e.sessionId,n.phase===`active`&&!p.has(e.sessionId)){let n=await c(await v(e,t.hubAuthorization));n!==null&&p.set(e.sessionId,n.grantId)}}else g===e.sessionId&&(g=void 0),p.delete(e.sessionId);return h.delete(e.sessionId),y(e,n),n},x=async(e,r)=>{if(!n.computerUse?.available)throw Error(`DoomPi Desktop computer use is unavailable.`);try{let i=await n.computerUse.request(e,{operation:r.operation,payload:r.operation===`act`?{grantId:r.grantId,sequence:r.sequence,action:r.payload}:{grantId:r.grantId}});await c(await v(e,t.hubComplete,`POST`,{id:r.id,result:i}))}catch(n){await c(await v(e,t.hubComplete,`POST`,{id:r.id,error:n instanceof Error?n.message:String(n)}))}},S=async e=>{let r=await c(await v(e,t.hubAuthorization)),i;if(r!==null&&n.computerUse?.available)try{i=await n.computerUse.request(e,{operation:`stop`,payload:{grantId:r.grantId}})}catch(e){n.onNotice(`computer-use Desktop stop was already unavailable (${e instanceof Error?e.message:String(e)})`)}await c(await v(e,t.hubStop,`POST`,{artifact:i})),p.delete(e.sessionId),g===e.sessionId&&(g=void 0)},C=async e=>{if(!(_||m.has(e.sessionId))&&!((h.get(e.sessionId)??0)>Date.now())){m.add(e.sessionId);try{let r=await b(e);if(r.phase===`active`){let i=typeof r.expiresAt==`number`&&r.expiresAt<=Date.now(),a=!1;if(!i&&n.computerUse?.available)try{a=o(await n.computerUse.request(e,{operation:`status`}))?.ownedBySession===!0}catch{a=!0}if(i||!a){await c(await v(e,t.hubStop,`POST`)),p.delete(e.sessionId),g===e.sessionId&&(g=void 0),await b(e);return}}if(r.phase===`awaiting_confirmation`&&(g===void 0||g===e.sessionId)){if(!n.computerUse?.available)throw Error(`DoomPi Desktop computer use is unavailable.`);let r=await c(await v(e,t.hubActivation));if(r!==null){g=e.sessionId;try{let i=await n.computerUse.request(e,{operation:`activate`,payload:r});await c(await v(e,t.hubStop,`POST`,{host:i}));let a=o(i)?.grantId;typeof a==`string`&&p.set(e.sessionId,a)}catch(n){g=void 0,await c(await v(e,t.hubStop,`POST`,{error:n instanceof Error?n.message:String(n)}))}await b(e)}}r.phase===`stopping`&&(await S(e),await b(e));let i=await c(await v(e,t.hubNext));i!==null&&await x(e,i)}catch(t){t instanceof r?(h.set(e.sessionId,a(Date.now())),d.delete(e.sessionId)):n.onNotice(`computer-use poll failed for ${e.sessionId} (${t instanceof Error?t.message:String(t)})`)}finally{m.delete(e.sessionId)}}};l=(e,t)=>{let i=s(t);i!==void 0&&(h.delete(e.sessionId),(async()=>{try{if(i.action===`targets`){if(!n.computerUse?.available)throw Error(`DoomPi Desktop computer use is unavailable.`);let t=await n.computerUse.request(e,{operation:`targets`});f.set(e.sessionId,Array.isArray(t)?t.filter(e=>o(e)!==void 0):[])}else i.action===`stop`&&await S(e);await b(e)}catch(t){t instanceof r?(h.set(e.sessionId,a(Date.now())),d.delete(e.sessionId)):n.onNotice(`computer-use command failed for ${e.sessionId} (${t instanceof Error?t.message:String(t)})`)}})())};let w=setInterval(()=>{for(let e of u.values())C(e)},i.pollMs??250);return{payloadFor:e=>d.get(e.sessionId),sessionAdded(e){u.set(e.sessionId,e),C(e)},sessionRemoved(e){let t=u.get(e),r=p.get(e);t!==void 0&&r!==void 0&&n.computerUse?.available&&n.computerUse.request(t,{operation:`stop`,payload:{grantId:r}}).catch(e=>n.onNotice(`computer-use session cleanup failed (${e instanceof Error?e.message:String(e)})`)),u.delete(e),d.delete(e),f.delete(e),p.delete(e),m.delete(e),h.delete(e),g===e&&(g=void 0)},close(){if(_=!0,clearInterval(w),n.computerUse?.available)for(let[e,t]of p){let r=u.get(e);r!==void 0&&n.computerUse.request(r,{operation:`stop`,payload:{grantId:t}}).catch(()=>void 0)}u.clear(),d.clear(),f.clear(),p.clear(),h.clear()}}},receive(e,t){l?.(e,t)}}}const u=[l()];export{n as computerUseChannelType,l as createComputerUseChannel,u as webHubChannels};
2
- //# sourceMappingURL=webComputerUseChannel.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webComputerUseChannel.mjs","names":[],"sources":["../../src/adapters/webComputerUseChannel.ts"],"sourcesContent":["import type { HubChannelSource, HubSessionScope, WebHubChannel } from '@agimon-ai/doompi-web-contracts';\nimport {\n API_BASE_PATH,\n computerUseChannelType,\n COMPUTER_USE_ROUTES,\n type ComputerUseActivationRequest,\n type ComputerUseBrokerRequest,\n type ComputerUseBrowserCommand,\n type ComputerUseChannelPayload,\n type ComputerUseSessionView,\n} from '../types/computerUseApi.ts';\nimport {\n computerUseSessionApiError,\n MissingComputerUseApiError,\n missingComputerUseApiRetryAt,\n} from './webComputerUseAvailability.ts';\nexport { computerUseChannelType };\n\nconst POLL_MS = 250;\n\nfunction record(value: unknown): Record<string, unknown> | undefined {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined;\n}\n\nfunction command(value: unknown): ComputerUseBrowserCommand | undefined {\n const input = record(value);\n return input?.action === 'status' ||\n input?.action === 'targets' ||\n input?.action === 'stop' ||\n input?.action === 'artifacts'\n ? { action: input.action }\n : undefined;\n}\n\nasync function responseJson(response: Response): Promise<unknown> {\n const value = await response.json();\n if (!response.ok) throw computerUseSessionApiError(response.status, value);\n return value;\n}\n\nexport function createComputerUseChannel(options: { pollMs?: number } = {}): WebHubChannel {\n let receiveCommand: ((scope: HubSessionScope, payload: unknown) => void) | undefined;\n return {\n frameType: computerUseChannelType,\n lifecycle: 'hub',\n start(host) {\n const scopes = new Map<string, HubSessionScope>();\n const latest = new Map<string, ComputerUseChannelPayload>();\n const targets = new Map<string, readonly Record<string, unknown>[]>();\n const grants = new Map<string, string>();\n const processing = new Set<string>();\n const unavailableUntil = new Map<string, number>();\n let activeSessionId: string | undefined;\n let closed = false;\n\n const sessionRequest = async (scope: HubSessionScope, path: string, method = 'GET', value?: unknown) =>\n host.requestSessionApi(scope, {\n basePath: API_BASE_PATH,\n path,\n method,\n ...(value === undefined ? {} : { body: JSON.stringify(value) }),\n });\n\n const publish = (scope: HubSessionScope, state: ComputerUseSessionView): void => {\n const payload: ComputerUseChannelPayload = {\n state,\n targets: targets.get(scope.sessionId) ?? [],\n ...(activeSessionId !== undefined && activeSessionId !== scope.sessionId ? { busy: true } : {}),\n };\n latest.set(scope.sessionId, payload);\n host.publish(scope.sessionId, payload);\n };\n\n const refresh = async (scope: HubSessionScope): Promise<ComputerUseSessionView> => {\n const state = (await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubState),\n )) as ComputerUseSessionView;\n if (state.phase === 'active' || state.phase === 'activating' || state.phase === 'stopping') {\n activeSessionId = scope.sessionId;\n if (state.phase === 'active' && !grants.has(scope.sessionId)) {\n const authorization = (await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubAuthorization),\n )) as { grantId: string } | null;\n if (authorization !== null) grants.set(scope.sessionId, authorization.grantId);\n }\n } else {\n if (activeSessionId === scope.sessionId) activeSessionId = undefined;\n grants.delete(scope.sessionId);\n }\n unavailableUntil.delete(scope.sessionId);\n publish(scope, state);\n return state;\n };\n\n const completePending = async (scope: HubSessionScope, pending: ComputerUseBrokerRequest): Promise<void> => {\n if (!host.computerUse?.available) throw new Error('DoomPi Desktop computer use is unavailable.');\n try {\n const result = await host.computerUse.request(scope, {\n operation: pending.operation,\n payload:\n pending.operation === 'act'\n ? { grantId: pending.grantId, sequence: pending.sequence, action: pending.payload }\n : { grantId: pending.grantId },\n });\n await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubComplete, 'POST', { id: pending.id, result }),\n );\n } catch (error) {\n await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubComplete, 'POST', {\n id: pending.id,\n error: error instanceof Error ? error.message : String(error),\n }),\n );\n }\n };\n\n const stopSession = async (scope: HubSessionScope): Promise<void> => {\n const authorization = (await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubAuthorization),\n )) as { grantId: string } | null;\n let artifact: unknown;\n if (authorization !== null && host.computerUse?.available) {\n try {\n artifact = await host.computerUse.request(scope, {\n operation: 'stop',\n payload: { grantId: authorization.grantId },\n });\n } catch (error) {\n host.onNotice(\n `computer-use Desktop stop was already unavailable (${error instanceof Error ? error.message : String(error)})`,\n );\n }\n }\n await responseJson(await sessionRequest(scope, COMPUTER_USE_ROUTES.hubStop, 'POST', { artifact }));\n grants.delete(scope.sessionId);\n if (activeSessionId === scope.sessionId) activeSessionId = undefined;\n };\n const pollScope = async (scope: HubSessionScope): Promise<void> => {\n if (closed || processing.has(scope.sessionId)) return;\n if ((unavailableUntil.get(scope.sessionId) ?? 0) > Date.now()) return;\n processing.add(scope.sessionId);\n try {\n const state = await refresh(scope);\n if (state.phase === 'active') {\n const expired = typeof state.expiresAt === 'number' && state.expiresAt <= Date.now();\n let owned = false;\n if (!expired && host.computerUse?.available) {\n try {\n const hostStatus = record(await host.computerUse.request(scope, { operation: 'status' }));\n owned = hostStatus?.ownedBySession === true;\n } catch {\n owned = true;\n }\n }\n if (expired || !owned) {\n await responseJson(await sessionRequest(scope, COMPUTER_USE_ROUTES.hubStop, 'POST'));\n grants.delete(scope.sessionId);\n if (activeSessionId === scope.sessionId) activeSessionId = undefined;\n await refresh(scope);\n return;\n }\n }\n if (\n state.phase === 'awaiting_confirmation' &&\n (activeSessionId === undefined || activeSessionId === scope.sessionId)\n ) {\n if (!host.computerUse?.available) throw new Error('DoomPi Desktop computer use is unavailable.');\n const activation = (await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubActivation),\n )) as ComputerUseActivationRequest | null;\n if (activation !== null) {\n activeSessionId = scope.sessionId;\n try {\n const hostResult = await host.computerUse.request(scope, {\n operation: 'activate',\n payload: activation,\n });\n await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubStop, 'POST', { host: hostResult }),\n );\n const grantId = record(hostResult)?.grantId;\n if (typeof grantId === 'string') grants.set(scope.sessionId, grantId);\n } catch (error) {\n activeSessionId = undefined;\n await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubStop, 'POST', {\n error: error instanceof Error ? error.message : String(error),\n }),\n );\n }\n await refresh(scope);\n }\n }\n if (state.phase === 'stopping') {\n await stopSession(scope);\n await refresh(scope);\n }\n const pending = (await responseJson(\n await sessionRequest(scope, COMPUTER_USE_ROUTES.hubNext),\n )) as ComputerUseBrokerRequest | null;\n if (pending !== null) await completePending(scope, pending);\n } catch (error) {\n if (error instanceof MissingComputerUseApiError) {\n unavailableUntil.set(scope.sessionId, missingComputerUseApiRetryAt(Date.now()));\n latest.delete(scope.sessionId);\n } else {\n host.onNotice(\n `computer-use poll failed for ${scope.sessionId} (${error instanceof Error ? error.message : String(error)})`,\n );\n }\n } finally {\n processing.delete(scope.sessionId);\n }\n };\n\n receiveCommand = (scope, payload) => {\n const parsed = command(payload);\n if (parsed === undefined) return;\n unavailableUntil.delete(scope.sessionId);\n void (async () => {\n try {\n if (parsed.action === 'targets') {\n if (!host.computerUse?.available) throw new Error('DoomPi Desktop computer use is unavailable.');\n const result = await host.computerUse.request(scope, { operation: 'targets' });\n targets.set(\n scope.sessionId,\n Array.isArray(result)\n ? result.filter((item): item is Record<string, unknown> => record(item) !== undefined)\n : [],\n );\n } else if (parsed.action === 'stop') {\n await stopSession(scope);\n }\n await refresh(scope);\n } catch (error) {\n if (error instanceof MissingComputerUseApiError) {\n unavailableUntil.set(scope.sessionId, missingComputerUseApiRetryAt(Date.now()));\n latest.delete(scope.sessionId);\n } else {\n host.onNotice(\n `computer-use command failed for ${scope.sessionId} (${error instanceof Error ? error.message : String(error)})`,\n );\n }\n }\n })();\n };\n\n const timer: ReturnType<typeof setInterval> = setInterval(() => {\n for (const scope of scopes.values()) void pollScope(scope);\n }, options.pollMs ?? POLL_MS);\n\n const source: HubChannelSource = {\n payloadFor: (scope) => latest.get(scope.sessionId),\n sessionAdded(scope) {\n scopes.set(scope.sessionId, scope);\n void pollScope(scope);\n },\n sessionRemoved(sessionId) {\n const scope = scopes.get(sessionId);\n const grantId = grants.get(sessionId);\n if (scope !== undefined && grantId !== undefined && host.computerUse?.available) {\n void host.computerUse\n .request(scope, { operation: 'stop', payload: { grantId } })\n .catch((error: unknown) =>\n host.onNotice(\n `computer-use session cleanup failed (${error instanceof Error ? error.message : String(error)})`,\n ),\n );\n }\n scopes.delete(sessionId);\n latest.delete(sessionId);\n targets.delete(sessionId);\n grants.delete(sessionId);\n processing.delete(sessionId);\n unavailableUntil.delete(sessionId);\n if (activeSessionId === sessionId) activeSessionId = undefined;\n },\n close() {\n closed = true;\n clearInterval(timer);\n if (host.computerUse?.available) {\n for (const [sessionId, grantId] of grants) {\n const scope = scopes.get(sessionId);\n if (scope !== undefined)\n void host.computerUse\n .request(scope, { operation: 'stop', payload: { grantId } })\n .catch(() => undefined);\n }\n }\n scopes.clear();\n latest.clear();\n targets.clear();\n grants.clear();\n unavailableUntil.clear();\n },\n };\n return source;\n },\n receive(scope, payload) {\n receiveCommand?.(scope, payload);\n },\n };\n}\n\nexport const webHubChannels: readonly WebHubChannel[] = [createComputerUseChannel()];\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- const e=`computer-use`,t=`Inspect or manage the session computer use mode`;function n(n,r){n.registerCommand(e,{description:t,handler:async(e,t)=>{let n=await r.execute();t.hasUI&&t.ui.notify(n.message,n.level)}})}exports.COMMAND_DESCRIPTION=t,exports.COMMAND_NAME=e,exports.registerComputerUseCommand=n;
2
- //# sourceMappingURL=computerUseCommand.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"computerUseCommand.cjs","names":[],"sources":["../../src/commands/computerUseCommand.ts"],"sourcesContent":["// @scaffold-generated\nimport type { ExtensionAPI } from '@earendil-works/pi-coding-agent';\nimport type { ComputerUseExtensionService } from '../types/extension.ts';\n\nexport const COMMAND_NAME = 'computer-use';\nexport const COMMAND_DESCRIPTION = 'Inspect or manage the session computer use mode';\n\nexport function registerComputerUseCommand(\n pi: Pick<ExtensionAPI, 'registerCommand'>,\n service: ComputerUseExtensionService,\n): void {\n pi.registerCommand(COMMAND_NAME, {\n description: COMMAND_DESCRIPTION,\n handler: async (_args, ctx) => {\n const result = await service.execute();\n if (ctx.hasUI) ctx.ui.notify(result.message, result.level);\n },\n });\n}\n"],"mappings":"AAIA,MAAa,EAAe,eACf,EAAsB,kDAEnC,SAAgB,EACd,EACA,EACM,CACN,EAAG,gBAAgB,EAAc,CAC/B,YAAa,EACb,QAAS,MAAO,EAAO,IAAQ,CAC7B,IAAM,EAAS,MAAM,EAAQ,QAAQ,EACjC,EAAI,OAAO,EAAI,GAAG,OAAO,EAAO,QAAS,EAAO,KAAK,CAC3D,CACF,CAAC,CACH"}
@@ -1,2 +0,0 @@
1
- const e=`computer-use`,t=`Inspect or manage the session computer use mode`;function n(n,r){n.registerCommand(e,{description:t,handler:async(e,t)=>{let n=await r.execute();t.hasUI&&t.ui.notify(n.message,n.level)}})}export{t as COMMAND_DESCRIPTION,e as COMMAND_NAME,n as registerComputerUseCommand};
2
- //# sourceMappingURL=computerUseCommand.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"computerUseCommand.mjs","names":[],"sources":["../../src/commands/computerUseCommand.ts"],"sourcesContent":["// @scaffold-generated\nimport type { ExtensionAPI } from '@earendil-works/pi-coding-agent';\nimport type { ComputerUseExtensionService } from '../types/extension.ts';\n\nexport const COMMAND_NAME = 'computer-use';\nexport const COMMAND_DESCRIPTION = 'Inspect or manage the session computer use mode';\n\nexport function registerComputerUseCommand(\n pi: Pick<ExtensionAPI, 'registerCommand'>,\n service: ComputerUseExtensionService,\n): void {\n pi.registerCommand(COMMAND_NAME, {\n description: COMMAND_DESCRIPTION,\n handler: async (_args, ctx) => {\n const result = await service.execute();\n if (ctx.hasUI) ctx.ui.notify(result.message, result.level);\n },\n });\n}\n"],"mappings":"AAIA,MAAa,EAAe,eACf,EAAsB,kDAEnC,SAAgB,EACd,EACA,EACM,CACN,EAAG,gBAAgB,EAAc,CAC/B,YAAa,EACb,QAAS,MAAO,EAAO,IAAQ,CAC7B,IAAM,EAAS,MAAM,EAAQ,QAAQ,EACjC,EAAI,OAAO,EAAI,GAAG,OAAO,EAAO,QAAS,EAAO,KAAK,CAC3D,CACF,CAAC,CACH"}
@@ -1,2 +0,0 @@
1
- const e=require("../adapters/pi/sessionApiClient.cjs"),t=require("../services/extensionService.cjs");function n(n={}){let r=n.client??e.createComputerUseSessionClient();return{service:n.service??new t.DefaultComputerUseExtensionService(r),...r===void 0?{}:{client:r}}}exports.createComputerUseContainer=n;
2
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","names":["createComputerUseSessionClient","DefaultComputerUseExtensionService"],"sources":["../../src/container/index.ts"],"sourcesContent":["import { createComputerUseSessionClient } from '../adapters/pi/sessionApiClient.ts';\nimport { DefaultComputerUseExtensionService } from '../services/extensionService.ts';\nimport type { ComputerUseExtensionDependencies } from '../types/extension.ts';\n\nexport function createComputerUseContainer(\n overrides: Partial<ComputerUseExtensionDependencies> = {},\n): ComputerUseExtensionDependencies {\n const client = overrides.client ?? createComputerUseSessionClient();\n return {\n service: overrides.service ?? new DefaultComputerUseExtensionService(client),\n ...(client === undefined ? {} : { client }),\n };\n}\n"],"mappings":"qGAIA,SAAgB,EACd,EAAuD,CAAC,EACtB,CAClC,IAAM,EAAS,EAAU,QAAUA,EAAAA,+BAA+B,EAClE,MAAO,CACL,QAAS,EAAU,SAAW,IAAIC,EAAAA,mCAAmC,CAAM,EAC3E,GAAI,IAAW,IAAA,GAAY,CAAC,EAAI,CAAE,QAAO,CAC3C,CACF"}
@@ -1,6 +0,0 @@
1
- import { ComputerUseExtensionDependencies } from "../types/extension.cjs";
2
- //#region src/container/index.d.ts
3
- declare function createComputerUseContainer(overrides?: Partial<ComputerUseExtensionDependencies>): ComputerUseExtensionDependencies;
4
- //#endregion
5
- export { createComputerUseContainer };
6
- //# sourceMappingURL=index.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/container/index.ts"],"mappings":";;iBAIgB,2BACd,YAAW,QAAQ,oCAClB"}
@@ -1,6 +0,0 @@
1
- import { ComputerUseExtensionDependencies } from "../types/extension.mjs";
2
- //#region src/container/index.d.ts
3
- declare function createComputerUseContainer(overrides?: Partial<ComputerUseExtensionDependencies>): ComputerUseExtensionDependencies;
4
- //#endregion
5
- export { createComputerUseContainer };
6
- //# sourceMappingURL=index.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/container/index.ts"],"mappings":";;iBAIgB,2BACd,YAAW,QAAQ,oCAClB"}
@@ -1,2 +0,0 @@
1
- import{createComputerUseSessionClient as e}from"../adapters/pi/sessionApiClient.mjs";import{DefaultComputerUseExtensionService as t}from"../services/extensionService.mjs";function n(n={}){let r=n.client??e();return{service:n.service??new t(r),...r===void 0?{}:{client:r}}}export{n as createComputerUseContainer};
2
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/container/index.ts"],"sourcesContent":["import { createComputerUseSessionClient } from '../adapters/pi/sessionApiClient.ts';\nimport { DefaultComputerUseExtensionService } from '../services/extensionService.ts';\nimport type { ComputerUseExtensionDependencies } from '../types/extension.ts';\n\nexport function createComputerUseContainer(\n overrides: Partial<ComputerUseExtensionDependencies> = {},\n): ComputerUseExtensionDependencies {\n const client = overrides.client ?? createComputerUseSessionClient();\n return {\n service: overrides.service ?? new DefaultComputerUseExtensionService(client),\n ...(client === undefined ? {} : { client }),\n };\n}\n"],"mappings":"2KAIA,SAAgB,EACd,EAAuD,CAAC,EACtB,CAClC,IAAM,EAAS,EAAU,QAAU,EAA+B,EAClE,MAAO,CACL,QAAS,EAAU,SAAW,IAAI,EAAmC,CAAM,EAC3E,GAAI,IAAW,IAAA,GAAY,CAAC,EAAI,CAAE,QAAO,CAC3C,CACF"}
@@ -1,2 +0,0 @@
1
- var e=class{client;constructor(e){this.client=e}async execute(){return this.client===void 0?{message:`Computer use requires a DoomPi Desktop session.`,level:`error`}:{message:`Computer use is ${(await this.client.state()).phase.replaceAll(`_`,` `)}.`,level:`info`}}};exports.DefaultComputerUseExtensionService=e;
2
- //# sourceMappingURL=extensionService.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extensionService.cjs","names":[],"sources":["../../src/services/extensionService.ts"],"sourcesContent":["import type { ComputerUseSessionClient } from '../adapters/pi/sessionApiClient.ts';\nimport type { ComputerUseExtensionResult, ComputerUseExtensionService } from '../types/extension.ts';\n\nexport class DefaultComputerUseExtensionService implements ComputerUseExtensionService {\n public constructor(private readonly client?: ComputerUseSessionClient) {}\n\n public async execute(): Promise<ComputerUseExtensionResult> {\n if (this.client === undefined)\n return { message: 'Computer use requires a DoomPi Desktop session.', level: 'error' };\n const state = await this.client.state();\n return { message: `Computer use is ${state.phase.replaceAll('_', ' ')}.`, level: 'info' };\n }\n}\n"],"mappings":"AAGA,IAAa,EAAb,KAAuF,CACjD,OAApC,YAAmB,EAAoD,CAAnC,KAAA,OAAA,CAAoC,CAExE,MAAa,SAA+C,CAI1D,OAHI,KAAK,SAAW,IAAA,GACX,CAAE,QAAS,kDAAmD,MAAO,OAAQ,EAE/E,CAAE,QAAS,oBAAmB,MADjB,KAAK,OAAO,MAAM,EAAA,CACK,MAAM,WAAW,IAAK,GAAG,EAAE,GAAI,MAAO,MAAO,CAC1F,CACF"}
@@ -1,11 +0,0 @@
1
- import { ComputerUseSessionClient } from "../adapters/pi/sessionApiClient.cjs";
2
- import { ComputerUseExtensionResult, ComputerUseExtensionService } from "../types/extension.cjs";
3
- //#region src/services/extensionService.d.ts
4
- declare class DefaultComputerUseExtensionService implements ComputerUseExtensionService {
5
- private readonly client?;
6
- constructor(client?: ComputerUseSessionClient | undefined);
7
- execute(): Promise<ComputerUseExtensionResult>;
8
- }
9
- //#endregion
10
- export { DefaultComputerUseExtensionService };
11
- //# sourceMappingURL=extensionService.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extensionService.d.cts","names":[],"sources":["../../src/services/extensionService.ts"],"mappings":";;;cAGa,8CAA8C;mBACrB;EAApC,YAAoC,SAAS;EAEhC,WAAW,QAAQ"}
@@ -1,11 +0,0 @@
1
- import { ComputerUseSessionClient } from "../adapters/pi/sessionApiClient.mjs";
2
- import { ComputerUseExtensionResult, ComputerUseExtensionService } from "../types/extension.mjs";
3
- //#region src/services/extensionService.d.ts
4
- declare class DefaultComputerUseExtensionService implements ComputerUseExtensionService {
5
- private readonly client?;
6
- constructor(client?: ComputerUseSessionClient | undefined);
7
- execute(): Promise<ComputerUseExtensionResult>;
8
- }
9
- //#endregion
10
- export { DefaultComputerUseExtensionService };
11
- //# sourceMappingURL=extensionService.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extensionService.d.mts","names":[],"sources":["../../src/services/extensionService.ts"],"mappings":";;;cAGa,8CAA8C;mBACrB;EAApC,YAAoC,SAAS;EAEhC,WAAW,QAAQ"}
@@ -1,2 +0,0 @@
1
- var e=class{client;constructor(e){this.client=e}async execute(){return this.client===void 0?{message:`Computer use requires a DoomPi Desktop session.`,level:`error`}:{message:`Computer use is ${(await this.client.state()).phase.replaceAll(`_`,` `)}.`,level:`info`}}};export{e as DefaultComputerUseExtensionService};
2
- //# sourceMappingURL=extensionService.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extensionService.mjs","names":[],"sources":["../../src/services/extensionService.ts"],"sourcesContent":["import type { ComputerUseSessionClient } from '../adapters/pi/sessionApiClient.ts';\nimport type { ComputerUseExtensionResult, ComputerUseExtensionService } from '../types/extension.ts';\n\nexport class DefaultComputerUseExtensionService implements ComputerUseExtensionService {\n public constructor(private readonly client?: ComputerUseSessionClient) {}\n\n public async execute(): Promise<ComputerUseExtensionResult> {\n if (this.client === undefined)\n return { message: 'Computer use requires a DoomPi Desktop session.', level: 'error' };\n const state = await this.client.state();\n return { message: `Computer use is ${state.phase.replaceAll('_', ' ')}.`, level: 'info' };\n }\n}\n"],"mappings":"AAGA,IAAa,EAAb,KAAuF,CACjD,OAApC,YAAmB,EAAoD,CAAnC,KAAA,OAAA,CAAoC,CAExE,MAAa,SAA+C,CAI1D,OAHI,KAAK,SAAW,IAAA,GACX,CAAE,QAAS,kDAAmD,MAAO,OAAQ,EAE/E,CAAE,QAAS,oBAAmB,MADjB,KAAK,OAAO,MAAM,EAAA,CACK,MAAM,WAAW,IAAK,GAAG,EAAE,GAAI,MAAO,MAAO,CAC1F,CACF"}
@@ -1,2 +0,0 @@
1
- function e(e,t){if(e.requestId!==t)throw Error(`The computer-use activation request is stale.`)}function t(e,t){return{revision:e.revision+1,identity:e.identity,...t}}function n(e){return{revision:0,phase:`inactive`,identity:e}}function r(n,r){if(r.type===`fail`)return t(n,{phase:`failed`,failure:{code:r.code,message:r.message},...n.requestId===void 0?{}:{requestId:n.requestId},...n.target===void 0?{}:{target:n.target},...n.grant===void 0?{}:{grant:n.grant}});if(r.type===`reset`){if(n.phase!==`failed`)throw Error(`Only a failed computer-use state can be reset.`);return t(n,{phase:`inactive`})}switch(n.phase){case`inactive`:if(r.type!==`request`)throw Error(`Computer use is inactive.`);return t(n,{phase:`requesting`,requestId:r.requestId,target:r.target});case`requesting`:if(r.type!==`await_confirmation`)throw Error(`Computer use is preparing an activation request.`);return e(n,r.requestId),t(n,{phase:`awaiting_confirmation`,requestId:r.requestId,target:n.target});case`awaiting_confirmation`:if(r.type===`deny`)return e(n,r.requestId),t(n,{phase:`inactive`});if(r.type!==`confirm`)throw Error(`Computer use is waiting for confirmation.`);return e(n,r.requestId),t(n,{phase:`activating`,requestId:r.requestId,target:n.target});case`activating`:if(r.type!==`activated`)throw Error(`Computer use is activating.`);return e(n,r.requestId),t(n,{phase:`active`,requestId:r.requestId,target:n.target,grant:r.grant});case`active`:if(r.type!==`stop`)throw Error(`Computer use is active.`);return t(n,{phase:`stopping`,requestId:n.requestId,target:n.target,grant:n.grant});case`stopping`:if(r.type!==`stopped`)throw Error(`Computer use is stopping.`);return t(n,{phase:`inactive`});case`failed`:throw Error(`Computer use must be reset before another transition.`)}}exports.initialComputerUseState=n,exports.reduceComputerUseState=r;
2
- //# sourceMappingURL=sessionController.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessionController.cjs","names":[],"sources":["../../src/services/sessionController.ts"],"sourcesContent":["import type { ComputerUseState, ComputerUseStateEvent } from '../types/computerUse.ts';\n\nfunction requireRequest(state: ComputerUseState, requestId: string): void {\n if (state.requestId !== requestId) throw new Error('The computer-use activation request is stale.');\n}\n\nfunction next(state: ComputerUseState, patch: Omit<ComputerUseState, 'revision' | 'identity'>): ComputerUseState {\n return {\n revision: state.revision + 1,\n identity: state.identity,\n ...patch,\n };\n}\n\nexport function initialComputerUseState(identity: ComputerUseState['identity']): ComputerUseState {\n return { revision: 0, phase: 'inactive', identity };\n}\n\nexport function reduceComputerUseState(state: ComputerUseState, event: ComputerUseStateEvent): ComputerUseState {\n if (event.type === 'fail') {\n return next(state, {\n phase: 'failed',\n failure: { code: event.code, message: event.message },\n ...(state.requestId === undefined ? {} : { requestId: state.requestId }),\n ...(state.target === undefined ? {} : { target: state.target }),\n ...(state.grant === undefined ? {} : { grant: state.grant }),\n });\n }\n\n if (event.type === 'reset') {\n if (state.phase !== 'failed') throw new Error('Only a failed computer-use state can be reset.');\n return next(state, { phase: 'inactive' });\n }\n\n switch (state.phase) {\n case 'inactive': {\n if (event.type !== 'request') throw new Error('Computer use is inactive.');\n return next(state, {\n phase: 'requesting',\n requestId: event.requestId,\n target: event.target,\n });\n }\n case 'requesting': {\n if (event.type !== 'await_confirmation') throw new Error('Computer use is preparing an activation request.');\n requireRequest(state, event.requestId);\n return next(state, {\n phase: 'awaiting_confirmation',\n requestId: event.requestId,\n target: state.target,\n });\n }\n case 'awaiting_confirmation': {\n if (event.type === 'deny') {\n requireRequest(state, event.requestId);\n return next(state, { phase: 'inactive' });\n }\n if (event.type !== 'confirm') throw new Error('Computer use is waiting for confirmation.');\n requireRequest(state, event.requestId);\n return next(state, {\n phase: 'activating',\n requestId: event.requestId,\n target: state.target,\n });\n }\n case 'activating': {\n if (event.type !== 'activated') throw new Error('Computer use is activating.');\n requireRequest(state, event.requestId);\n return next(state, {\n phase: 'active',\n requestId: event.requestId,\n target: state.target,\n grant: event.grant,\n });\n }\n case 'active': {\n if (event.type !== 'stop') throw new Error('Computer use is active.');\n return next(state, {\n phase: 'stopping',\n requestId: state.requestId,\n target: state.target,\n grant: state.grant,\n });\n }\n case 'stopping': {\n if (event.type !== 'stopped') throw new Error('Computer use is stopping.');\n return next(state, { phase: 'inactive' });\n }\n case 'failed':\n throw new Error('Computer use must be reset before another transition.');\n }\n}\n"],"mappings":"AAEA,SAAS,EAAe,EAAyB,EAAyB,CACxE,GAAI,EAAM,YAAc,EAAW,MAAU,MAAM,+CAA+C,CACpG,CAEA,SAAS,EAAK,EAAyB,EAA0E,CAC/G,MAAO,CACL,SAAU,EAAM,SAAW,EAC3B,SAAU,EAAM,SAChB,GAAG,CACL,CACF,CAEA,SAAgB,EAAwB,EAA0D,CAChG,MAAO,CAAE,SAAU,EAAG,MAAO,WAAY,UAAS,CACpD,CAEA,SAAgB,EAAuB,EAAyB,EAAgD,CAC9G,GAAI,EAAM,OAAS,OACjB,OAAO,EAAK,EAAO,CACjB,MAAO,SACP,QAAS,CAAE,KAAM,EAAM,KAAM,QAAS,EAAM,OAAQ,EACpD,GAAI,EAAM,YAAc,IAAA,GAAY,CAAC,EAAI,CAAE,UAAW,EAAM,SAAU,EACtE,GAAI,EAAM,SAAW,IAAA,GAAY,CAAC,EAAI,CAAE,OAAQ,EAAM,MAAO,EAC7D,GAAI,EAAM,QAAU,IAAA,GAAY,CAAC,EAAI,CAAE,MAAO,EAAM,KAAM,CAC5D,CAAC,EAGH,GAAI,EAAM,OAAS,QAAS,CAC1B,GAAI,EAAM,QAAU,SAAU,MAAU,MAAM,gDAAgD,EAC9F,OAAO,EAAK,EAAO,CAAE,MAAO,UAAW,CAAC,CAC1C,CAEA,OAAQ,EAAM,MAAd,CACE,IAAK,WACH,GAAI,EAAM,OAAS,UAAW,MAAU,MAAM,2BAA2B,EACzE,OAAO,EAAK,EAAO,CACjB,MAAO,aACP,UAAW,EAAM,UACjB,OAAQ,EAAM,MAChB,CAAC,EAEH,IAAK,aACH,GAAI,EAAM,OAAS,qBAAsB,MAAU,MAAM,kDAAkD,EAE3G,OADA,EAAe,EAAO,EAAM,SAAS,EAC9B,EAAK,EAAO,CACjB,MAAO,wBACP,UAAW,EAAM,UACjB,OAAQ,EAAM,MAChB,CAAC,EAEH,IAAK,wBACH,GAAI,EAAM,OAAS,OAEjB,OADA,EAAe,EAAO,EAAM,SAAS,EAC9B,EAAK,EAAO,CAAE,MAAO,UAAW,CAAC,EAE1C,GAAI,EAAM,OAAS,UAAW,MAAU,MAAM,2CAA2C,EAEzF,OADA,EAAe,EAAO,EAAM,SAAS,EAC9B,EAAK,EAAO,CACjB,MAAO,aACP,UAAW,EAAM,UACjB,OAAQ,EAAM,MAChB,CAAC,EAEH,IAAK,aACH,GAAI,EAAM,OAAS,YAAa,MAAU,MAAM,6BAA6B,EAE7E,OADA,EAAe,EAAO,EAAM,SAAS,EAC9B,EAAK,EAAO,CACjB,MAAO,SACP,UAAW,EAAM,UACjB,OAAQ,EAAM,OACd,MAAO,EAAM,KACf,CAAC,EAEH,IAAK,SACH,GAAI,EAAM,OAAS,OAAQ,MAAU,MAAM,yBAAyB,EACpE,OAAO,EAAK,EAAO,CACjB,MAAO,WACP,UAAW,EAAM,UACjB,OAAQ,EAAM,OACd,MAAO,EAAM,KACf,CAAC,EAEH,IAAK,WACH,GAAI,EAAM,OAAS,UAAW,MAAU,MAAM,2BAA2B,EACzE,OAAO,EAAK,EAAO,CAAE,MAAO,UAAW,CAAC,EAE1C,IAAK,SACH,MAAU,MAAM,uDAAuD,CAC3E,CACF"}
@@ -1,7 +0,0 @@
1
- import { ComputerUseState, ComputerUseStateEvent } from "../types/computerUse.cjs";
2
- //#region src/services/sessionController.d.ts
3
- declare function initialComputerUseState(identity: ComputerUseState['identity']): ComputerUseState;
4
- declare function reduceComputerUseState(state: ComputerUseState, event: ComputerUseStateEvent): ComputerUseState;
5
- //#endregion
6
- export { initialComputerUseState, reduceComputerUseState };
7
- //# sourceMappingURL=sessionController.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessionController.d.cts","names":[],"sources":["../../src/services/sessionController.ts"],"mappings":";;iBAcgB,wBAAwB,UAAU,+BAA+B;iBAIjE,uBAAuB,OAAO,kBAAkB,OAAO,wBAAwB"}
@@ -1,7 +0,0 @@
1
- import { ComputerUseState, ComputerUseStateEvent } from "../types/computerUse.mjs";
2
- //#region src/services/sessionController.d.ts
3
- declare function initialComputerUseState(identity: ComputerUseState['identity']): ComputerUseState;
4
- declare function reduceComputerUseState(state: ComputerUseState, event: ComputerUseStateEvent): ComputerUseState;
5
- //#endregion
6
- export { initialComputerUseState, reduceComputerUseState };
7
- //# sourceMappingURL=sessionController.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessionController.d.mts","names":[],"sources":["../../src/services/sessionController.ts"],"mappings":";;iBAcgB,wBAAwB,UAAU,+BAA+B;iBAIjE,uBAAuB,OAAO,kBAAkB,OAAO,wBAAwB"}
@@ -1,2 +0,0 @@
1
- function e(e,t){if(e.requestId!==t)throw Error(`The computer-use activation request is stale.`)}function t(e,t){return{revision:e.revision+1,identity:e.identity,...t}}function n(e){return{revision:0,phase:`inactive`,identity:e}}function r(n,r){if(r.type===`fail`)return t(n,{phase:`failed`,failure:{code:r.code,message:r.message},...n.requestId===void 0?{}:{requestId:n.requestId},...n.target===void 0?{}:{target:n.target},...n.grant===void 0?{}:{grant:n.grant}});if(r.type===`reset`){if(n.phase!==`failed`)throw Error(`Only a failed computer-use state can be reset.`);return t(n,{phase:`inactive`})}switch(n.phase){case`inactive`:if(r.type!==`request`)throw Error(`Computer use is inactive.`);return t(n,{phase:`requesting`,requestId:r.requestId,target:r.target});case`requesting`:if(r.type!==`await_confirmation`)throw Error(`Computer use is preparing an activation request.`);return e(n,r.requestId),t(n,{phase:`awaiting_confirmation`,requestId:r.requestId,target:n.target});case`awaiting_confirmation`:if(r.type===`deny`)return e(n,r.requestId),t(n,{phase:`inactive`});if(r.type!==`confirm`)throw Error(`Computer use is waiting for confirmation.`);return e(n,r.requestId),t(n,{phase:`activating`,requestId:r.requestId,target:n.target});case`activating`:if(r.type!==`activated`)throw Error(`Computer use is activating.`);return e(n,r.requestId),t(n,{phase:`active`,requestId:r.requestId,target:n.target,grant:r.grant});case`active`:if(r.type!==`stop`)throw Error(`Computer use is active.`);return t(n,{phase:`stopping`,requestId:n.requestId,target:n.target,grant:n.grant});case`stopping`:if(r.type!==`stopped`)throw Error(`Computer use is stopping.`);return t(n,{phase:`inactive`});case`failed`:throw Error(`Computer use must be reset before another transition.`)}}export{n as initialComputerUseState,r as reduceComputerUseState};
2
- //# sourceMappingURL=sessionController.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessionController.mjs","names":[],"sources":["../../src/services/sessionController.ts"],"sourcesContent":["import type { ComputerUseState, ComputerUseStateEvent } from '../types/computerUse.ts';\n\nfunction requireRequest(state: ComputerUseState, requestId: string): void {\n if (state.requestId !== requestId) throw new Error('The computer-use activation request is stale.');\n}\n\nfunction next(state: ComputerUseState, patch: Omit<ComputerUseState, 'revision' | 'identity'>): ComputerUseState {\n return {\n revision: state.revision + 1,\n identity: state.identity,\n ...patch,\n };\n}\n\nexport function initialComputerUseState(identity: ComputerUseState['identity']): ComputerUseState {\n return { revision: 0, phase: 'inactive', identity };\n}\n\nexport function reduceComputerUseState(state: ComputerUseState, event: ComputerUseStateEvent): ComputerUseState {\n if (event.type === 'fail') {\n return next(state, {\n phase: 'failed',\n failure: { code: event.code, message: event.message },\n ...(state.requestId === undefined ? {} : { requestId: state.requestId }),\n ...(state.target === undefined ? {} : { target: state.target }),\n ...(state.grant === undefined ? {} : { grant: state.grant }),\n });\n }\n\n if (event.type === 'reset') {\n if (state.phase !== 'failed') throw new Error('Only a failed computer-use state can be reset.');\n return next(state, { phase: 'inactive' });\n }\n\n switch (state.phase) {\n case 'inactive': {\n if (event.type !== 'request') throw new Error('Computer use is inactive.');\n return next(state, {\n phase: 'requesting',\n requestId: event.requestId,\n target: event.target,\n });\n }\n case 'requesting': {\n if (event.type !== 'await_confirmation') throw new Error('Computer use is preparing an activation request.');\n requireRequest(state, event.requestId);\n return next(state, {\n phase: 'awaiting_confirmation',\n requestId: event.requestId,\n target: state.target,\n });\n }\n case 'awaiting_confirmation': {\n if (event.type === 'deny') {\n requireRequest(state, event.requestId);\n return next(state, { phase: 'inactive' });\n }\n if (event.type !== 'confirm') throw new Error('Computer use is waiting for confirmation.');\n requireRequest(state, event.requestId);\n return next(state, {\n phase: 'activating',\n requestId: event.requestId,\n target: state.target,\n });\n }\n case 'activating': {\n if (event.type !== 'activated') throw new Error('Computer use is activating.');\n requireRequest(state, event.requestId);\n return next(state, {\n phase: 'active',\n requestId: event.requestId,\n target: state.target,\n grant: event.grant,\n });\n }\n case 'active': {\n if (event.type !== 'stop') throw new Error('Computer use is active.');\n return next(state, {\n phase: 'stopping',\n requestId: state.requestId,\n target: state.target,\n grant: state.grant,\n });\n }\n case 'stopping': {\n if (event.type !== 'stopped') throw new Error('Computer use is stopping.');\n return next(state, { phase: 'inactive' });\n }\n case 'failed':\n throw new Error('Computer use must be reset before another transition.');\n }\n}\n"],"mappings":"AAEA,SAAS,EAAe,EAAyB,EAAyB,CACxE,GAAI,EAAM,YAAc,EAAW,MAAU,MAAM,+CAA+C,CACpG,CAEA,SAAS,EAAK,EAAyB,EAA0E,CAC/G,MAAO,CACL,SAAU,EAAM,SAAW,EAC3B,SAAU,EAAM,SAChB,GAAG,CACL,CACF,CAEA,SAAgB,EAAwB,EAA0D,CAChG,MAAO,CAAE,SAAU,EAAG,MAAO,WAAY,UAAS,CACpD,CAEA,SAAgB,EAAuB,EAAyB,EAAgD,CAC9G,GAAI,EAAM,OAAS,OACjB,OAAO,EAAK,EAAO,CACjB,MAAO,SACP,QAAS,CAAE,KAAM,EAAM,KAAM,QAAS,EAAM,OAAQ,EACpD,GAAI,EAAM,YAAc,IAAA,GAAY,CAAC,EAAI,CAAE,UAAW,EAAM,SAAU,EACtE,GAAI,EAAM,SAAW,IAAA,GAAY,CAAC,EAAI,CAAE,OAAQ,EAAM,MAAO,EAC7D,GAAI,EAAM,QAAU,IAAA,GAAY,CAAC,EAAI,CAAE,MAAO,EAAM,KAAM,CAC5D,CAAC,EAGH,GAAI,EAAM,OAAS,QAAS,CAC1B,GAAI,EAAM,QAAU,SAAU,MAAU,MAAM,gDAAgD,EAC9F,OAAO,EAAK,EAAO,CAAE,MAAO,UAAW,CAAC,CAC1C,CAEA,OAAQ,EAAM,MAAd,CACE,IAAK,WACH,GAAI,EAAM,OAAS,UAAW,MAAU,MAAM,2BAA2B,EACzE,OAAO,EAAK,EAAO,CACjB,MAAO,aACP,UAAW,EAAM,UACjB,OAAQ,EAAM,MAChB,CAAC,EAEH,IAAK,aACH,GAAI,EAAM,OAAS,qBAAsB,MAAU,MAAM,kDAAkD,EAE3G,OADA,EAAe,EAAO,EAAM,SAAS,EAC9B,EAAK,EAAO,CACjB,MAAO,wBACP,UAAW,EAAM,UACjB,OAAQ,EAAM,MAChB,CAAC,EAEH,IAAK,wBACH,GAAI,EAAM,OAAS,OAEjB,OADA,EAAe,EAAO,EAAM,SAAS,EAC9B,EAAK,EAAO,CAAE,MAAO,UAAW,CAAC,EAE1C,GAAI,EAAM,OAAS,UAAW,MAAU,MAAM,2CAA2C,EAEzF,OADA,EAAe,EAAO,EAAM,SAAS,EAC9B,EAAK,EAAO,CACjB,MAAO,aACP,UAAW,EAAM,UACjB,OAAQ,EAAM,MAChB,CAAC,EAEH,IAAK,aACH,GAAI,EAAM,OAAS,YAAa,MAAU,MAAM,6BAA6B,EAE7E,OADA,EAAe,EAAO,EAAM,SAAS,EAC9B,EAAK,EAAO,CACjB,MAAO,SACP,UAAW,EAAM,UACjB,OAAQ,EAAM,OACd,MAAO,EAAM,KACf,CAAC,EAEH,IAAK,SACH,GAAI,EAAM,OAAS,OAAQ,MAAU,MAAM,yBAAyB,EACpE,OAAO,EAAK,EAAO,CACjB,MAAO,WACP,UAAW,EAAM,UACjB,OAAQ,EAAM,OACd,MAAO,EAAM,KACf,CAAC,EAEH,IAAK,WACH,GAAI,EAAM,OAAS,UAAW,MAAU,MAAM,2BAA2B,EACzE,OAAO,EAAK,EAAO,CAAE,MAAO,UAAW,CAAC,EAE1C,IAAK,SACH,MAAU,MAAM,uDAAuD,CAC3E,CACF"}
@@ -1,2 +0,0 @@
1
- function e(e){return{sequence:e.sequence,timestamp:e.timestamp,runId:e.runId,bundleId:e.bundleId,actionKind:e.action.kind,...e.role===void 0?{}:{role:e.role},...e.action.kind===`set_value`?{textLength:e.action.value.length}:{},durationMs:e.durationMs,outcome:e.outcome,...e.errorCode===void 0?{}:{errorCode:e.errorCode}}}exports.redactComputerUseTrace=e;
2
- //# sourceMappingURL=traceRedaction.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traceRedaction.cjs","names":[],"sources":["../../src/services/traceRedaction.ts"],"sourcesContent":["import type { ComputerUseAction, ComputerUseFailureCode } from '../types/computerUse.ts';\n\nexport interface ComputerUseTraceInput {\n readonly sequence: number;\n readonly timestamp: number;\n readonly runId: string;\n readonly bundleId: string;\n readonly action: ComputerUseAction;\n readonly role?: string;\n readonly durationMs: number;\n readonly outcome: 'succeeded' | 'failed' | 'uncertain';\n readonly errorCode?: ComputerUseFailureCode;\n}\n\nexport interface ComputerUseTraceRecord {\n readonly sequence: number;\n readonly timestamp: number;\n readonly runId: string;\n readonly bundleId: string;\n readonly actionKind: ComputerUseAction['kind'];\n readonly role?: string;\n readonly textLength?: number;\n readonly durationMs: number;\n readonly outcome: ComputerUseTraceInput['outcome'];\n readonly errorCode?: ComputerUseFailureCode;\n}\n\nexport function redactComputerUseTrace(input: ComputerUseTraceInput): ComputerUseTraceRecord {\n return {\n sequence: input.sequence,\n timestamp: input.timestamp,\n runId: input.runId,\n bundleId: input.bundleId,\n actionKind: input.action.kind,\n ...(input.role === undefined ? {} : { role: input.role }),\n ...(input.action.kind === 'set_value' ? { textLength: input.action.value.length } : {}),\n durationMs: input.durationMs,\n outcome: input.outcome,\n ...(input.errorCode === undefined ? {} : { errorCode: input.errorCode }),\n };\n}\n"],"mappings":"AA2BA,SAAgB,EAAuB,EAAsD,CAC3F,MAAO,CACL,SAAU,EAAM,SAChB,UAAW,EAAM,UACjB,MAAO,EAAM,MACb,SAAU,EAAM,SAChB,WAAY,EAAM,OAAO,KACzB,GAAI,EAAM,OAAS,IAAA,GAAY,CAAC,EAAI,CAAE,KAAM,EAAM,IAAK,EACvD,GAAI,EAAM,OAAO,OAAS,YAAc,CAAE,WAAY,EAAM,OAAO,MAAM,MAAO,EAAI,CAAC,EACrF,WAAY,EAAM,WAClB,QAAS,EAAM,QACf,GAAI,EAAM,YAAc,IAAA,GAAY,CAAC,EAAI,CAAE,UAAW,EAAM,SAAU,CACxE,CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"traceRedaction.d.cts","names":[],"sources":["../../src/services/traceRedaction.ts"],"mappings":";;UAEiB;WACN;WACA;WACA;WACA;WACA,QAAQ;WACR;WACA;WACA;WACA,YAAY;;UAGN;WACN;WACA;WACA;WACA;WACA,YAAY;WACZ;WACA;WACA;WACA,SAAS;WACT,YAAY;;iBAGP,uBAAuB,OAAO,wBAAwB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"traceRedaction.d.mts","names":[],"sources":["../../src/services/traceRedaction.ts"],"mappings":";;UAEiB;WACN;WACA;WACA;WACA;WACA,QAAQ;WACR;WACA;WACA;WACA,YAAY;;UAGN;WACN;WACA;WACA;WACA;WACA,YAAY;WACZ;WACA;WACA;WACA,SAAS;WACT,YAAY;;iBAGP,uBAAuB,OAAO,wBAAwB"}
@@ -1,2 +0,0 @@
1
- function e(e){return{sequence:e.sequence,timestamp:e.timestamp,runId:e.runId,bundleId:e.bundleId,actionKind:e.action.kind,...e.role===void 0?{}:{role:e.role},...e.action.kind===`set_value`?{textLength:e.action.value.length}:{},durationMs:e.durationMs,outcome:e.outcome,...e.errorCode===void 0?{}:{errorCode:e.errorCode}}}export{e as redactComputerUseTrace};
2
- //# sourceMappingURL=traceRedaction.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traceRedaction.mjs","names":[],"sources":["../../src/services/traceRedaction.ts"],"sourcesContent":["import type { ComputerUseAction, ComputerUseFailureCode } from '../types/computerUse.ts';\n\nexport interface ComputerUseTraceInput {\n readonly sequence: number;\n readonly timestamp: number;\n readonly runId: string;\n readonly bundleId: string;\n readonly action: ComputerUseAction;\n readonly role?: string;\n readonly durationMs: number;\n readonly outcome: 'succeeded' | 'failed' | 'uncertain';\n readonly errorCode?: ComputerUseFailureCode;\n}\n\nexport interface ComputerUseTraceRecord {\n readonly sequence: number;\n readonly timestamp: number;\n readonly runId: string;\n readonly bundleId: string;\n readonly actionKind: ComputerUseAction['kind'];\n readonly role?: string;\n readonly textLength?: number;\n readonly durationMs: number;\n readonly outcome: ComputerUseTraceInput['outcome'];\n readonly errorCode?: ComputerUseFailureCode;\n}\n\nexport function redactComputerUseTrace(input: ComputerUseTraceInput): ComputerUseTraceRecord {\n return {\n sequence: input.sequence,\n timestamp: input.timestamp,\n runId: input.runId,\n bundleId: input.bundleId,\n actionKind: input.action.kind,\n ...(input.role === undefined ? {} : { role: input.role }),\n ...(input.action.kind === 'set_value' ? { textLength: input.action.value.length } : {}),\n durationMs: input.durationMs,\n outcome: input.outcome,\n ...(input.errorCode === undefined ? {} : { errorCode: input.errorCode }),\n };\n}\n"],"mappings":"AA2BA,SAAgB,EAAuB,EAAsD,CAC3F,MAAO,CACL,SAAU,EAAM,SAChB,UAAW,EAAM,UACjB,MAAO,EAAM,MACb,SAAU,EAAM,SAChB,WAAY,EAAM,OAAO,KACzB,GAAI,EAAM,OAAS,IAAA,GAAY,CAAC,EAAI,CAAE,KAAM,EAAM,IAAK,EACvD,GAAI,EAAM,OAAO,OAAS,YAAc,CAAE,WAAY,EAAM,OAAO,MAAM,MAAO,EAAI,CAAC,EACrF,WAAY,EAAM,WAClB,QAAS,EAAM,QACf,GAAI,EAAM,YAAc,IAAA,GAAY,CAAC,EAAI,CAAE,UAAW,EAAM,SAAU,CACxE,CACF"}
@@ -1 +0,0 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./adapters/computerUseApi.cjs");exports.ComputerUseRequestBroker=e.ComputerUseRequestBroker,exports.api=e.api,exports.createComputerUseApi=e.createComputerUseApi;
@@ -1,2 +0,0 @@
1
- import { ComputerUseRequestBroker, api, createComputerUseApi } from "./adapters/computerUseApi.cjs";
2
- export { ComputerUseRequestBroker, api, createComputerUseApi };
@@ -1,2 +0,0 @@
1
- import { ComputerUseRequestBroker, api, createComputerUseApi } from "./adapters/computerUseApi.mjs";
2
- export { ComputerUseRequestBroker, api, createComputerUseApi };
@@ -1 +0,0 @@
1
- import{ComputerUseRequestBroker as e,api as t,createComputerUseApi as n}from"./adapters/computerUseApi.mjs";export{e as ComputerUseRequestBroker,t as api,n as createComputerUseApi};
@@ -1 +0,0 @@
1
- {"version":3,"file":"computerUse.d.cts","names":[],"sources":["../../src/types/computerUse.ts"],"mappings":";cAAa;KAUD,2BAA2B;UAEtB;WACN;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA;WACA;WACA,kBAAkB;;UAGZ;WACN;WACA;WACA;WACA;WACA;WACA;WACA,mBAAmB;WACnB;aACE;aACA;;;KAID;KAEA;WAEG;WACA;WACA;;WAGA;WACA;WACA;WACA;;WAGA;WACA;WACA;WACA;WACA;;KAGH;UAeK;WACN;WACA,OAAO;WACP,UAAU;WACV;WACA,SAAS;WACT,QAAQ;WACR;aACE,MAAM;aACN;;;KAID;WACG;WAA0B;WAA4B,QAAQ;;WAC9D;WAAqC;;WACrC;WAA0B;;WAC1B;WAAuB;;WACvB;WAA4B;WAA4B,OAAO;;WAC/D;;WACA;;WACA;WAAuB,MAAM;WAAiC;;WAC9D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"computerUse.d.mts","names":[],"sources":["../../src/types/computerUse.ts"],"mappings":";cAAa;KAUD,2BAA2B;UAEtB;WACN;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA;WACA;WACA,kBAAkB;;UAGZ;WACN;WACA;WACA;WACA;WACA;WACA;WACA,mBAAmB;WACnB;aACE;aACA;;;KAID;KAEA;WAEG;WACA;WACA;;WAGA;WACA;WACA;WACA;;WAGA;WACA;WACA;WACA;WACA;;KAGH;UAeK;WACN;WACA,OAAO;WACP,UAAU;WACV;WACA,SAAS;WACT,QAAQ;WACR;aACE,MAAM;aACN;;;KAID;WACG;WAA0B;WAA4B,QAAQ;;WAC9D;WAAqC;;WACrC;WAA0B;;WAC1B;WAAuB;;WACvB;WAA4B;WAA4B,OAAO;;WAC/D;;WACA;;WACA;WAAuB,MAAM;WAAiC;;WAC9D"}
@@ -1,2 +0,0 @@
1
- const e={activate:`/activate`,agentState:`/agent/state`,agentObserve:`/agent/observe`,agentAction:`/agent/action`,agentStop:`/agent/stop`,hubState:`/hub/state`,hubActivation:`/hub/activation`,hubAuthorization:`/hub/authorization`,hubNext:`/hub/next`,hubComplete:`/hub/complete`,hubStop:`/hub/stop`};exports.API_BASE_PATH=`computer-use`,exports.COMPUTER_USE_CONFIRMATION_WINDOW_MS=12e4,exports.COMPUTER_USE_MAX_DURATION_MS=18e5,exports.COMPUTER_USE_MODE_ID=`computer-use`,exports.COMPUTER_USE_MODE_STATUS_KEY=`doom-computer-use-mode`,exports.COMPUTER_USE_ROUTES=e,exports.COMPUTER_USE_STATUS_KEY=`doom-computer-use`,exports.COMPUTER_USE_WAKE_LIMIT=1e6,exports.computerUseChannelType=`computer_use_state`;
2
- //# sourceMappingURL=computerUseApi.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"computerUseApi.cjs","names":[],"sources":["../../src/types/computerUseApi.ts"],"sourcesContent":["import type { DoomApiCaller } from '@agimon-ai/doompi-extension-contracts/package-api';\n\nexport const API_BASE_PATH = 'computer-use';\nexport const computerUseChannelType = 'computer_use_state';\nexport const COMPUTER_USE_MODE_ID = 'computer-use';\nexport const COMPUTER_USE_STATUS_KEY = 'doom-computer-use';\nexport const COMPUTER_USE_MODE_STATUS_KEY = 'doom-computer-use-mode';\nexport const SESSION_QUERY_PARAM = 'session';\nexport const COMPUTER_USE_MAX_DURATION_MS = 1_800 * 1_000;\nexport const COMPUTER_USE_DEFAULT_DURATION_MS = 300 * 1_000;\nexport const COMPUTER_USE_CONFIRMATION_WINDOW_MS = 2 * 60 * 1_000;\n\nexport function activationUrl(sessionId: string): string {\n return `/api/plugin/${API_BASE_PATH}/activate?${SESSION_QUERY_PARAM}=${encodeURIComponent(sessionId)}`;\n}\n\nexport const COMPUTER_USE_ROUTES = {\n activate: '/activate',\n agentState: '/agent/state',\n agentObserve: '/agent/observe',\n agentAction: '/agent/action',\n agentStop: '/agent/stop',\n hubState: '/hub/state',\n hubActivation: '/hub/activation',\n hubAuthorization: '/hub/authorization',\n hubNext: '/hub/next',\n hubComplete: '/hub/complete',\n hubStop: '/hub/stop',\n} as const;\n\nexport const COMPUTER_USE_WAKE_LIMIT = 1_000_000;\n\nexport interface ComputerUseArtifactView {\n readonly artifactId: string;\n readonly status: 'ready' | 'failed';\n readonly downloadUrl?: string;\n readonly previewUrl?: string;\n readonly actionCount?: number;\n readonly completedAt?: string;\n}\n\nexport interface ComputerUseSessionView {\n readonly sessionId: string;\n readonly revision: number;\n readonly wake: number;\n readonly phase: 'inactive' | 'awaiting_confirmation' | 'activating' | 'active' | 'stopping' | 'failed';\n readonly requestId?: string;\n readonly target?: Record<string, unknown>;\n readonly durationMs?: number;\n readonly expiresAt?: number;\n readonly failure?: { readonly code: string; readonly message: string };\n readonly artifact?: ComputerUseArtifactView;\n}\n\nexport interface ComputerUseActivationRequest {\n readonly requestId: string;\n readonly target: Record<string, unknown>;\n readonly durationSeconds: number;\n readonly createdAt: number;\n readonly confirmationExpiresAt: number;\n readonly caller: DoomApiCaller;\n}\n\nexport interface ComputerUseBrokerRequest {\n readonly id: string;\n readonly operation: 'observe' | 'act';\n readonly payload?: unknown;\n readonly grantId: string;\n readonly sequence?: number;\n}\n\nexport interface ComputerUseChannelPayload {\n readonly state: ComputerUseSessionView;\n readonly targets: readonly Record<string, unknown>[];\n readonly busy?: true;\n}\n\nexport type ComputerUseBrowserCommand = { readonly action: 'status' | 'targets' | 'stop' | 'artifacts' };\n"],"mappings":"AAEA,MAca,EAAsB,CACjC,SAAU,YACV,WAAY,eACZ,aAAc,iBACd,YAAa,gBACb,UAAW,cACX,SAAU,aACV,cAAe,kBACf,iBAAkB,qBAClB,QAAS,YACT,YAAa,gBACb,QAAS,WACX"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"computerUseApi.d.cts","names":[],"sources":["../../src/types/computerUseApi.ts"],"mappings":";;cAEa;cACA;cACA;cACA;cACA;cACA;cACA;cACA;cACA;iBAEG,cAAc;cAIjB;WACX;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;cAGW;UAEI;WACN;WACA;WACA;WACA;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA;WACA;WACA,SAAS;WACT;WACA;WACA;aAAqB;aAAuB;;WAC5C,WAAW;;UAGL;WACN;WACA,QAAQ;WACR;WACA;WACA;WACA,QAAQ;;UAGF;WACN;WACA;WACA;WACA;WACA;;UAGM;WACN,OAAO;WACP,kBAAkB;WAClB;;KAGC;WAAuC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"computerUseApi.d.mts","names":[],"sources":["../../src/types/computerUseApi.ts"],"mappings":";;cAEa;cACA;cACA;cACA;cACA;cACA;cACA;cACA;cACA;iBAEG,cAAc;cAIjB;WACX;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;cAGW;UAEI;WACN;WACA;WACA;WACA;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA;WACA;WACA,SAAS;WACT;WACA;WACA;aAAqB;aAAuB;;WAC5C,WAAW;;UAGL;WACN;WACA,QAAQ;WACR;WACA;WACA;WACA,QAAQ;;UAGF;WACN;WACA;WACA;WACA;WACA;;UAGM;WACN,OAAO;WACP,kBAAkB;WAClB;;KAGC;WAAuC"}
@@ -1,2 +0,0 @@
1
- const e=`computer-use`,t=`computer_use_state`,n=`computer-use`,r=`doom-computer-use`,i=`doom-computer-use-mode`,a=18e5,o=12e4,s={activate:`/activate`,agentState:`/agent/state`,agentObserve:`/agent/observe`,agentAction:`/agent/action`,agentStop:`/agent/stop`,hubState:`/hub/state`,hubActivation:`/hub/activation`,hubAuthorization:`/hub/authorization`,hubNext:`/hub/next`,hubComplete:`/hub/complete`,hubStop:`/hub/stop`},c=1e6;export{e as API_BASE_PATH,o as COMPUTER_USE_CONFIRMATION_WINDOW_MS,a as COMPUTER_USE_MAX_DURATION_MS,n as COMPUTER_USE_MODE_ID,i as COMPUTER_USE_MODE_STATUS_KEY,s as COMPUTER_USE_ROUTES,r as COMPUTER_USE_STATUS_KEY,c as COMPUTER_USE_WAKE_LIMIT,t as computerUseChannelType};
2
- //# sourceMappingURL=computerUseApi.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"computerUseApi.mjs","names":[],"sources":["../../src/types/computerUseApi.ts"],"sourcesContent":["import type { DoomApiCaller } from '@agimon-ai/doompi-extension-contracts/package-api';\n\nexport const API_BASE_PATH = 'computer-use';\nexport const computerUseChannelType = 'computer_use_state';\nexport const COMPUTER_USE_MODE_ID = 'computer-use';\nexport const COMPUTER_USE_STATUS_KEY = 'doom-computer-use';\nexport const COMPUTER_USE_MODE_STATUS_KEY = 'doom-computer-use-mode';\nexport const SESSION_QUERY_PARAM = 'session';\nexport const COMPUTER_USE_MAX_DURATION_MS = 1_800 * 1_000;\nexport const COMPUTER_USE_DEFAULT_DURATION_MS = 300 * 1_000;\nexport const COMPUTER_USE_CONFIRMATION_WINDOW_MS = 2 * 60 * 1_000;\n\nexport function activationUrl(sessionId: string): string {\n return `/api/plugin/${API_BASE_PATH}/activate?${SESSION_QUERY_PARAM}=${encodeURIComponent(sessionId)}`;\n}\n\nexport const COMPUTER_USE_ROUTES = {\n activate: '/activate',\n agentState: '/agent/state',\n agentObserve: '/agent/observe',\n agentAction: '/agent/action',\n agentStop: '/agent/stop',\n hubState: '/hub/state',\n hubActivation: '/hub/activation',\n hubAuthorization: '/hub/authorization',\n hubNext: '/hub/next',\n hubComplete: '/hub/complete',\n hubStop: '/hub/stop',\n} as const;\n\nexport const COMPUTER_USE_WAKE_LIMIT = 1_000_000;\n\nexport interface ComputerUseArtifactView {\n readonly artifactId: string;\n readonly status: 'ready' | 'failed';\n readonly downloadUrl?: string;\n readonly previewUrl?: string;\n readonly actionCount?: number;\n readonly completedAt?: string;\n}\n\nexport interface ComputerUseSessionView {\n readonly sessionId: string;\n readonly revision: number;\n readonly wake: number;\n readonly phase: 'inactive' | 'awaiting_confirmation' | 'activating' | 'active' | 'stopping' | 'failed';\n readonly requestId?: string;\n readonly target?: Record<string, unknown>;\n readonly durationMs?: number;\n readonly expiresAt?: number;\n readonly failure?: { readonly code: string; readonly message: string };\n readonly artifact?: ComputerUseArtifactView;\n}\n\nexport interface ComputerUseActivationRequest {\n readonly requestId: string;\n readonly target: Record<string, unknown>;\n readonly durationSeconds: number;\n readonly createdAt: number;\n readonly confirmationExpiresAt: number;\n readonly caller: DoomApiCaller;\n}\n\nexport interface ComputerUseBrokerRequest {\n readonly id: string;\n readonly operation: 'observe' | 'act';\n readonly payload?: unknown;\n readonly grantId: string;\n readonly sequence?: number;\n}\n\nexport interface ComputerUseChannelPayload {\n readonly state: ComputerUseSessionView;\n readonly targets: readonly Record<string, unknown>[];\n readonly busy?: true;\n}\n\nexport type ComputerUseBrowserCommand = { readonly action: 'status' | 'targets' | 'stop' | 'artifacts' };\n"],"mappings":"AAEA,MAAa,EAAgB,eAChB,EAAyB,qBACzB,EAAuB,eACvB,EAA0B,oBAC1B,EAA+B,yBAE/B,EAA+B,KAE/B,EAAsC,KAMtC,EAAsB,CACjC,SAAU,YACV,WAAY,eACZ,aAAc,iBACd,YAAa,gBACb,UAAW,cACX,SAAU,aACV,cAAe,kBACf,iBAAkB,qBAClB,QAAS,YACT,YAAa,gBACb,QAAS,WACX,EAEa,EAA0B"}
@@ -1,17 +0,0 @@
1
- import { ComputerUseSessionClient } from "../adapters/pi/sessionApiClient.cjs";
2
- //#region src/types/extension.d.ts
3
- type ComputerUseNotificationLevel = 'info' | 'error';
4
- interface ComputerUseExtensionResult {
5
- message: string;
6
- level: ComputerUseNotificationLevel;
7
- }
8
- interface ComputerUseExtensionService {
9
- execute(): Promise<ComputerUseExtensionResult>;
10
- }
11
- interface ComputerUseExtensionDependencies {
12
- service: ComputerUseExtensionService;
13
- client?: ComputerUseSessionClient;
14
- }
15
- //#endregion
16
- export { ComputerUseExtensionDependencies, ComputerUseExtensionResult, ComputerUseExtensionService, ComputerUseNotificationLevel };
17
- //# sourceMappingURL=extension.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension.d.cts","names":[],"sources":["../../src/types/extension.ts"],"mappings":";;KAEY;UAEK;EACf;EACA,OAAO;;UAGQ;EACf,WAAW,QAAQ;;UAGJ;EACf,SAAS;EACT,SAAS"}
@@ -1,17 +0,0 @@
1
- import { ComputerUseSessionClient } from "../adapters/pi/sessionApiClient.mjs";
2
- //#region src/types/extension.d.ts
3
- type ComputerUseNotificationLevel = 'info' | 'error';
4
- interface ComputerUseExtensionResult {
5
- message: string;
6
- level: ComputerUseNotificationLevel;
7
- }
8
- interface ComputerUseExtensionService {
9
- execute(): Promise<ComputerUseExtensionResult>;
10
- }
11
- interface ComputerUseExtensionDependencies {
12
- service: ComputerUseExtensionService;
13
- client?: ComputerUseSessionClient;
14
- }
15
- //#endregion
16
- export { ComputerUseExtensionDependencies, ComputerUseExtensionResult, ComputerUseExtensionService, ComputerUseNotificationLevel };
17
- //# sourceMappingURL=extension.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension.d.mts","names":[],"sources":["../../src/types/extension.ts"],"mappings":";;KAEY;UAEK;EACf;EACA,OAAO;;UAGQ;EACf,WAAW,QAAQ;;UAGJ;EACf,SAAS;EACT,SAAS"}
package/dist/webHub.cjs DELETED
@@ -1 +0,0 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./types/computerUseApi.cjs"),t=require("./adapters/webComputerUseChannel.cjs");exports.computerUseChannelType=e.computerUseChannelType,exports.createComputerUseChannel=t.createComputerUseChannel,exports.webHubChannels=t.webHubChannels;
package/dist/webHub.d.cts DELETED
@@ -1,3 +0,0 @@
1
- import { computerUseChannelType } from "./types/computerUseApi.cjs";
2
- import { createComputerUseChannel, webHubChannels } from "./adapters/webComputerUseChannel.cjs";
3
- export { computerUseChannelType, createComputerUseChannel, webHubChannels };
package/dist/webHub.d.mts DELETED
@@ -1,3 +0,0 @@
1
- import { computerUseChannelType } from "./types/computerUseApi.mjs";
2
- import { createComputerUseChannel, webHubChannels } from "./adapters/webComputerUseChannel.mjs";
3
- export { computerUseChannelType, createComputerUseChannel, webHubChannels };
package/dist/webHub.mjs DELETED
@@ -1 +0,0 @@
1
- import{computerUseChannelType as e}from"./types/computerUseApi.mjs";import{createComputerUseChannel as t,webHubChannels as n}from"./adapters/webComputerUseChannel.mjs";export{e as computerUseChannelType,t as createComputerUseChannel,n as webHubChannels};
@@ -1,2 +0,0 @@
1
- // @scaffold-generated
2
- export { webPlugin } from '../web/index.ts';
@@ -1,51 +0,0 @@
1
- // @scaffold-generated
2
- import {
3
- collapseLines,
4
- MessageItem,
5
- MessageItemBody,
6
- MessageItemHeader,
7
- MessageItemStatus,
8
- MessageLines,
9
- toolTone,
10
- } from '@agimon-ai/doompi-web-components';
11
- import type { ToolMessageRenderProps } from '@agimon-ai/doompi-web-contracts';
12
- import {
13
- computerActionCallSummary,
14
- computerActionCollapsedLines,
15
- computerActionResultLines,
16
- } from './computerActionToolRender.ts';
17
-
18
- /**
19
- * The computer_action tool's timeline item: Perform one constrained semantic action in the authorized application window. The shell owns
20
- * the frame, the outcome tone, the status badge, and the expand toggle; this
21
- * card supplies the header summary and the body lines, and says whether it
22
- * hides any so the toggle appears only when it reveals something.
23
- */
24
- export function ComputerActionToolCard({ toolName, args, result, running, isError }: ToolMessageRenderProps) {
25
- const lines = computerActionResultLines(result);
26
- const collapsed = collapseLines(lines, computerActionCollapsedLines, false);
27
- return (
28
- <MessageItem tone={toolTone({ running, isError })} expandable={collapsed.hidden > 0}>
29
- {({ expanded }) => {
30
- const view = expanded ? collapseLines(lines, computerActionCollapsedLines, true) : collapsed;
31
- return (
32
- <>
33
- <MessageItemHeader title={toolName}>
34
- <span data-testid={`tool-call-${toolName}`} className="min-w-0 flex-1 truncate text-doom-text">
35
- {computerActionCallSummary(args)}
36
- </span>
37
- </MessageItemHeader>
38
- {view.shown.length > 0 || running || isError ? (
39
- <MessageItemBody data-testid={`tool-result-${toolName}`} className="flex flex-col gap-1">
40
- {view.shown.length > 0 ? <MessageLines lines={view.shown} /> : null}
41
- {view.hidden > 0 ? <MessageItemStatus expands>{view.hidden} more line(s)</MessageItemStatus> : null}
42
- {running ? <MessageItemStatus tone="running">running</MessageItemStatus> : null}
43
- {isError ? <MessageItemStatus tone="error">failed</MessageItemStatus> : null}
44
- </MessageItemBody>
45
- ) : null}
46
- </>
47
- );
48
- }}
49
- </MessageItem>
50
- );
51
- }