@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
@@ -0,0 +1,88 @@
1
+ //#region src/models/computerUseState.ts
2
+ function requireRequest(state, requestId) {
3
+ if (state.requestId !== requestId) throw new Error("The computer-use activation request is stale.");
4
+ }
5
+ function next(state, patch) {
6
+ return {
7
+ revision: state.revision + 1,
8
+ identity: state.identity,
9
+ ...patch
10
+ };
11
+ }
12
+ function initialComputerUseState(identity) {
13
+ return {
14
+ revision: 0,
15
+ phase: "inactive",
16
+ identity
17
+ };
18
+ }
19
+ function reduceComputerUseState(state, event) {
20
+ if (event.type === "fail") return next(state, {
21
+ phase: "failed",
22
+ failure: {
23
+ code: event.code,
24
+ message: event.message
25
+ },
26
+ ...state.requestId === void 0 ? {} : { requestId: state.requestId },
27
+ ...state.target === void 0 ? {} : { target: state.target },
28
+ ...state.grant === void 0 ? {} : { grant: state.grant }
29
+ });
30
+ if (event.type === "reset") {
31
+ if (state.phase !== "failed") throw new Error("Only a failed computer-use state can be reset.");
32
+ return next(state, { phase: "inactive" });
33
+ }
34
+ switch (state.phase) {
35
+ case "inactive":
36
+ if (event.type !== "request") throw new Error("Computer use is inactive.");
37
+ return next(state, {
38
+ phase: "requesting",
39
+ requestId: event.requestId,
40
+ target: event.target
41
+ });
42
+ case "requesting":
43
+ if (event.type !== "await_confirmation") throw new Error("Computer use is preparing an activation request.");
44
+ requireRequest(state, event.requestId);
45
+ return next(state, {
46
+ phase: "awaiting_confirmation",
47
+ requestId: event.requestId,
48
+ target: state.target
49
+ });
50
+ case "awaiting_confirmation":
51
+ if (event.type === "deny") {
52
+ requireRequest(state, event.requestId);
53
+ return next(state, { phase: "inactive" });
54
+ }
55
+ if (event.type !== "confirm") throw new Error("Computer use is waiting for confirmation.");
56
+ requireRequest(state, event.requestId);
57
+ return next(state, {
58
+ phase: "activating",
59
+ requestId: event.requestId,
60
+ target: state.target
61
+ });
62
+ case "activating":
63
+ if (event.type !== "activated") throw new Error("Computer use is activating.");
64
+ requireRequest(state, event.requestId);
65
+ return next(state, {
66
+ phase: "active",
67
+ requestId: event.requestId,
68
+ target: state.target,
69
+ grant: event.grant
70
+ });
71
+ case "active":
72
+ if (event.type !== "stop") throw new Error("Computer use is active.");
73
+ return next(state, {
74
+ phase: "stopping",
75
+ requestId: state.requestId,
76
+ target: state.target,
77
+ grant: state.grant
78
+ });
79
+ case "stopping":
80
+ if (event.type !== "stopped") throw new Error("Computer use is stopping.");
81
+ return next(state, { phase: "inactive" });
82
+ case "failed": throw new Error("Computer use must be reset before another transition.");
83
+ }
84
+ }
85
+ //#endregion
86
+ export { initialComputerUseState, reduceComputerUseState };
87
+
88
+ //# sourceMappingURL=computerUseState.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computerUseState.mjs","names":[],"sources":["../../../src/models/computerUseState.ts"],"sourcesContent":["import type { ComputerUseState, ComputerUseStateEvent } from '../types/computerUse';\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,OAAyB,WAAyB;CACxE,IAAI,MAAM,cAAc,WAAW,MAAM,IAAI,MAAM,+CAA+C;AACpG;AAEA,SAAS,KAAK,OAAyB,OAA0E;CAC/G,OAAO;EACL,UAAU,MAAM,WAAW;EAC3B,UAAU,MAAM;EAChB,GAAG;CACL;AACF;AAEA,SAAgB,wBAAwB,UAA0D;CAChG,OAAO;EAAE,UAAU;EAAG,OAAO;EAAY;CAAS;AACpD;AAEA,SAAgB,uBAAuB,OAAyB,OAAgD;CAC9G,IAAI,MAAM,SAAS,QACjB,OAAO,KAAK,OAAO;EACjB,OAAO;EACP,SAAS;GAAE,MAAM,MAAM;GAAM,SAAS,MAAM;EAAQ;EACpD,GAAI,MAAM,cAAc,KAAA,IAAY,CAAC,IAAI,EAAE,WAAW,MAAM,UAAU;EACtE,GAAI,MAAM,WAAW,KAAA,IAAY,CAAC,IAAI,EAAE,QAAQ,MAAM,OAAO;EAC7D,GAAI,MAAM,UAAU,KAAA,IAAY,CAAC,IAAI,EAAE,OAAO,MAAM,MAAM;CAC5D,CAAC;CAGH,IAAI,MAAM,SAAS,SAAS;EAC1B,IAAI,MAAM,UAAU,UAAU,MAAM,IAAI,MAAM,gDAAgD;EAC9F,OAAO,KAAK,OAAO,EAAE,OAAO,WAAW,CAAC;CAC1C;CAEA,QAAQ,MAAM,OAAd;EACE,KAAK;GACH,IAAI,MAAM,SAAS,WAAW,MAAM,IAAI,MAAM,2BAA2B;GACzE,OAAO,KAAK,OAAO;IACjB,OAAO;IACP,WAAW,MAAM;IACjB,QAAQ,MAAM;GAChB,CAAC;EAEH,KAAK;GACH,IAAI,MAAM,SAAS,sBAAsB,MAAM,IAAI,MAAM,kDAAkD;GAC3G,eAAe,OAAO,MAAM,SAAS;GACrC,OAAO,KAAK,OAAO;IACjB,OAAO;IACP,WAAW,MAAM;IACjB,QAAQ,MAAM;GAChB,CAAC;EAEH,KAAK;GACH,IAAI,MAAM,SAAS,QAAQ;IACzB,eAAe,OAAO,MAAM,SAAS;IACrC,OAAO,KAAK,OAAO,EAAE,OAAO,WAAW,CAAC;GAC1C;GACA,IAAI,MAAM,SAAS,WAAW,MAAM,IAAI,MAAM,2CAA2C;GACzF,eAAe,OAAO,MAAM,SAAS;GACrC,OAAO,KAAK,OAAO;IACjB,OAAO;IACP,WAAW,MAAM;IACjB,QAAQ,MAAM;GAChB,CAAC;EAEH,KAAK;GACH,IAAI,MAAM,SAAS,aAAa,MAAM,IAAI,MAAM,6BAA6B;GAC7E,eAAe,OAAO,MAAM,SAAS;GACrC,OAAO,KAAK,OAAO;IACjB,OAAO;IACP,WAAW,MAAM;IACjB,QAAQ,MAAM;IACd,OAAO,MAAM;GACf,CAAC;EAEH,KAAK;GACH,IAAI,MAAM,SAAS,QAAQ,MAAM,IAAI,MAAM,yBAAyB;GACpE,OAAO,KAAK,OAAO;IACjB,OAAO;IACP,WAAW,MAAM;IACjB,QAAQ,MAAM;IACd,OAAO,MAAM;GACf,CAAC;EAEH,KAAK;GACH,IAAI,MAAM,SAAS,WAAW,MAAM,IAAI,MAAM,2BAA2B;GACzE,OAAO,KAAK,OAAO,EAAE,OAAO,WAAW,CAAC;EAE1C,KAAK,UACH,MAAM,IAAI,MAAM,uDAAuD;CAC3E;AACF"}
@@ -0,0 +1,194 @@
1
+ let _agimon_ai_doompi_core_api_contracts = require("@agimon-ai/doompi-core/api-contracts");
2
+ let typebox = require("typebox");
3
+ //#region src/schemas/apiContracts.ts
4
+ const S = typebox.Type.String();
5
+ const N = typebox.Type.Number();
6
+ const O = typebox.Type.Optional;
7
+ const values = (items) => typebox.Type.Union(items.map((item) => typebox.Type.Literal(item)));
8
+ const Json = typebox.Type.Unknown({ description: "Desktop provider JSON value. Targets, observations and action results are supplied by the admitted Desktop provider." });
9
+ const Target = typebox.Type.Record(S, Json);
10
+ const Error = typebox.Type.Object({
11
+ code: S,
12
+ message: S
13
+ });
14
+ const Artifact = typebox.Type.Object({
15
+ artifactId: S,
16
+ status: values(["ready", "failed"]),
17
+ downloadUrl: O(S),
18
+ previewUrl: O(S),
19
+ actionCount: O(N),
20
+ completedAt: O(S),
21
+ failure: O(Error)
22
+ });
23
+ const ComputerStateSchema = typebox.Type.Object({
24
+ sessionId: S,
25
+ revision: N,
26
+ wake: N,
27
+ phase: values([
28
+ "inactive",
29
+ "awaiting_confirmation",
30
+ "activating",
31
+ "active",
32
+ "stopping",
33
+ "failed"
34
+ ]),
35
+ requestId: O(S),
36
+ target: O(Target),
37
+ durationMs: O(N),
38
+ expiresAt: O(N),
39
+ failure: O(Error),
40
+ artifact: O(Artifact)
41
+ });
42
+ const Reference = {
43
+ snapshotId: typebox.Type.String({ minLength: 1 }),
44
+ elementRef: typebox.Type.String({ minLength: 1 })
45
+ };
46
+ const ComputerActionSchema = typebox.Type.Union([
47
+ typebox.Type.Object({
48
+ kind: values(["press", "focus"]),
49
+ ...Reference
50
+ }, { additionalProperties: false }),
51
+ typebox.Type.Object({
52
+ kind: typebox.Type.Literal("set_value"),
53
+ ...Reference,
54
+ value: S
55
+ }, { additionalProperties: false }),
56
+ typebox.Type.Object({
57
+ kind: typebox.Type.Literal("scroll"),
58
+ ...Reference,
59
+ direction: values([
60
+ "up",
61
+ "down",
62
+ "left",
63
+ "right"
64
+ ]),
65
+ amount: values(["line", "page"])
66
+ }, { additionalProperties: false })
67
+ ]);
68
+ const internal = (method, path, output, body, status = 200) => ({
69
+ id: `computer.${path.slice(1).replaceAll("/", ".")}`,
70
+ scope: "session",
71
+ basePath: "computer-use",
72
+ path,
73
+ method,
74
+ authentication: "owner",
75
+ description: `Computer use broker ${path}. Requires the host-issued ${path.startsWith("/agent/") ? "agent" : "hub"} bearer token.`,
76
+ availability: "Internal broker route; ordinary browser credentials are insufficient.",
77
+ parameters: [{
78
+ name: "Authorization",
79
+ in: "header",
80
+ required: true,
81
+ schema: typebox.Type.String({ pattern: "^Bearer .+" })
82
+ }],
83
+ ...body ? { body: {
84
+ required: true,
85
+ contentType: "application/json",
86
+ schema: body
87
+ } } : {},
88
+ responses: (0, _agimon_ai_doompi_core_api_contracts.jsonApiResponses)(output, status)
89
+ });
90
+ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)({
91
+ version: 1,
92
+ dynamic: ["Desktop provider target extensions, observations and operation results are runtime-defined JSON."],
93
+ http: [
94
+ {
95
+ id: "computer.activate",
96
+ scope: "session",
97
+ basePath: "computer-use",
98
+ path: "/activate",
99
+ method: "POST",
100
+ authentication: "owner",
101
+ description: "Request confirmed Desktop access with admitted caller and remote step-up context.",
102
+ body: {
103
+ required: true,
104
+ contentType: "application/json",
105
+ schema: typebox.Type.Object({
106
+ target: typebox.Type.Object({
107
+ windowId: S,
108
+ bundleId: S
109
+ }),
110
+ durationMs: typebox.Type.Integer({
111
+ minimum: 1e3,
112
+ maximum: 18e5
113
+ })
114
+ })
115
+ },
116
+ responses: (0, _agimon_ai_doompi_core_api_contracts.jsonApiResponses)(ComputerStateSchema, 202)
117
+ },
118
+ internal("GET", "/agent/state", ComputerStateSchema),
119
+ internal("GET", "/hub/state", ComputerStateSchema),
120
+ internal("POST", "/agent/observe", Json),
121
+ internal("POST", "/agent/action", Json, ComputerActionSchema),
122
+ internal("POST", "/agent/stop", ComputerStateSchema, void 0, 202),
123
+ internal("GET", "/hub/activation", typebox.Type.Union([typebox.Type.Null(), typebox.Type.Object({
124
+ requestId: S,
125
+ target: Target,
126
+ durationSeconds: N,
127
+ createdAt: N,
128
+ confirmationExpiresAt: N,
129
+ caller: typebox.Type.Object({
130
+ locality: values(["local", "remote"]),
131
+ stepUp: S
132
+ })
133
+ })])),
134
+ internal("GET", "/hub/authorization", typebox.Type.Union([typebox.Type.Null(), typebox.Type.Object({
135
+ grantId: S,
136
+ expiresAt: O(N)
137
+ })])),
138
+ internal("GET", "/hub/next", typebox.Type.Union([typebox.Type.Null(), typebox.Type.Object({
139
+ id: S,
140
+ operation: values(["observe", "act"]),
141
+ payload: O(Json),
142
+ grantId: S,
143
+ sequence: O(N)
144
+ })])),
145
+ internal("POST", "/hub/complete", ComputerStateSchema, typebox.Type.Object({
146
+ id: S,
147
+ error: O(S),
148
+ result: O(Json)
149
+ })),
150
+ internal("POST", "/hub/stop", ComputerStateSchema, typebox.Type.Object({
151
+ error: O(S),
152
+ host: O(typebox.Type.Object({
153
+ grantId: S,
154
+ expiresAt: N
155
+ })),
156
+ artifact: O(Artifact)
157
+ }))
158
+ ],
159
+ sockets: ["global", "workspace"].flatMap((scope) => [{
160
+ id: "computer.state",
161
+ scope,
162
+ service: "doompi.hub.v1",
163
+ member: "computer_use_state",
164
+ kind: "channel",
165
+ direction: "server-to-client",
166
+ description: "Computer use channel payload.",
167
+ input: typebox.Type.Object({
168
+ state: ComputerStateSchema,
169
+ targets: typebox.Type.Array(Target),
170
+ busy: O(typebox.Type.Literal(true))
171
+ })
172
+ }, {
173
+ id: "computer.command",
174
+ scope,
175
+ service: "doompi.hub.v1",
176
+ member: "computer_use_state",
177
+ kind: "channel",
178
+ direction: "client-to-server",
179
+ description: "Computer use browser channel command.",
180
+ input: typebox.Type.Object({ action: values([
181
+ "status",
182
+ "targets",
183
+ "stop",
184
+ "artifacts"
185
+ ]) })
186
+ }])
187
+ });
188
+ //#endregion
189
+ exports.ComputerActionSchema = ComputerActionSchema;
190
+ exports.ComputerStateSchema = ComputerStateSchema;
191
+ exports.apiContracts = apiContracts;
192
+ exports.default = apiContracts;
193
+
194
+ //# sourceMappingURL=apiContracts.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiContracts.cjs","names":["Type","jsonApiResponses","defineApiContract"],"sources":["../../../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineApiContract, jsonApiResponses, type DoomHttpContract } from '@agimon-ai/doompi-core/api-contracts';\nimport { Type } from 'typebox';\n\nconst S = Type.String();\nconst N = Type.Number();\nconst O = Type.Optional;\nconst values = <T extends string>(items: T[]) => Type.Union(items.map((item) => Type.Literal(item)));\nconst Json = Type.Unknown({\n description:\n 'Desktop provider JSON value. Targets, observations and action results are supplied by the admitted Desktop provider.',\n});\nconst Target = Type.Record(S, Json);\nconst Error = Type.Object({ code: S, message: S });\nconst Artifact = Type.Object({\n artifactId: S,\n status: values(['ready', 'failed']),\n downloadUrl: O(S),\n previewUrl: O(S),\n actionCount: O(N),\n completedAt: O(S),\n failure: O(Error),\n});\nexport const ComputerStateSchema = Type.Object({\n sessionId: S,\n revision: N,\n wake: N,\n phase: values(['inactive', 'awaiting_confirmation', 'activating', 'active', 'stopping', 'failed']),\n requestId: O(S),\n target: O(Target),\n durationMs: O(N),\n expiresAt: O(N),\n failure: O(Error),\n artifact: O(Artifact),\n});\nconst Reference = { snapshotId: Type.String({ minLength: 1 }), elementRef: Type.String({ minLength: 1 }) };\nexport const ComputerActionSchema = Type.Union([\n Type.Object({ kind: values(['press', 'focus']), ...Reference }, { additionalProperties: false }),\n Type.Object({ kind: Type.Literal('set_value'), ...Reference, value: S }, { additionalProperties: false }),\n Type.Object(\n {\n kind: Type.Literal('scroll'),\n ...Reference,\n direction: values(['up', 'down', 'left', 'right']),\n amount: values(['line', 'page']),\n },\n { additionalProperties: false },\n ),\n]);\nconst internal = (\n method: 'GET' | 'POST',\n path: string,\n output: object,\n body?: object,\n status = 200,\n): DoomHttpContract => ({\n id: `computer.${path.slice(1).replaceAll('/', '.')}`,\n scope: 'session',\n basePath: 'computer-use',\n path,\n method,\n authentication: 'owner',\n description: `Computer use broker ${path}. Requires the host-issued ${path.startsWith('/agent/') ? 'agent' : 'hub'} bearer token.`,\n availability: 'Internal broker route; ordinary browser credentials are insufficient.',\n parameters: [{ name: 'Authorization', in: 'header', required: true, schema: Type.String({ pattern: '^Bearer .+' }) }],\n ...(body ? { body: { required: true, contentType: 'application/json', schema: body } } : {}),\n responses: jsonApiResponses(output, status),\n});\nexport const apiContracts = defineApiContract({\n version: 1,\n dynamic: ['Desktop provider target extensions, observations and operation results are runtime-defined JSON.'],\n http: [\n {\n id: 'computer.activate',\n scope: 'session',\n basePath: 'computer-use',\n path: '/activate',\n method: 'POST',\n authentication: 'owner',\n description: 'Request confirmed Desktop access with admitted caller and remote step-up context.',\n body: {\n required: true,\n contentType: 'application/json',\n schema: Type.Object({\n target: Type.Object({ windowId: S, bundleId: S }),\n durationMs: Type.Integer({ minimum: 1000, maximum: 1800000 }),\n }),\n },\n responses: jsonApiResponses(ComputerStateSchema, 202),\n },\n internal('GET', '/agent/state', ComputerStateSchema),\n internal('GET', '/hub/state', ComputerStateSchema),\n internal('POST', '/agent/observe', Json),\n internal('POST', '/agent/action', Json, ComputerActionSchema),\n internal('POST', '/agent/stop', ComputerStateSchema, undefined, 202),\n internal(\n 'GET',\n '/hub/activation',\n Type.Union([\n Type.Null(),\n Type.Object({\n requestId: S,\n target: Target,\n durationSeconds: N,\n createdAt: N,\n confirmationExpiresAt: N,\n caller: Type.Object({ locality: values(['local', 'remote']), stepUp: S }),\n }),\n ]),\n ),\n internal('GET', '/hub/authorization', Type.Union([Type.Null(), Type.Object({ grantId: S, expiresAt: O(N) })])),\n internal(\n 'GET',\n '/hub/next',\n Type.Union([\n Type.Null(),\n Type.Object({ id: S, operation: values(['observe', 'act']), payload: O(Json), grantId: S, sequence: O(N) }),\n ]),\n ),\n internal('POST', '/hub/complete', ComputerStateSchema, Type.Object({ id: S, error: O(S), result: O(Json) })),\n internal(\n 'POST',\n '/hub/stop',\n ComputerStateSchema,\n Type.Object({ error: O(S), host: O(Type.Object({ grantId: S, expiresAt: N })), artifact: O(Artifact) }),\n ),\n ],\n sockets: (['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'computer.state',\n scope,\n service: 'doompi.hub.v1',\n member: 'computer_use_state',\n kind: 'channel',\n direction: 'server-to-client',\n description: 'Computer use channel payload.',\n input: Type.Object({ state: ComputerStateSchema, targets: Type.Array(Target), busy: O(Type.Literal(true)) }),\n },\n {\n id: 'computer.command',\n scope,\n service: 'doompi.hub.v1',\n member: 'computer_use_state',\n kind: 'channel',\n direction: 'client-to-server',\n description: 'Computer use browser channel command.',\n input: Type.Object({ action: values(['status', 'targets', 'stop', 'artifacts']) }),\n },\n ]),\n});\nexport default apiContracts;\n"],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import "typebox";
2
+ //#region src/schemas/apiContracts.d.ts
3
+ export declare const apiContracts: {
4
+ version: 1;
5
+ protocols?: Record<string, string> | undefined;
6
+ schemas?: Record<string, boolean | object> | undefined;
7
+ http: {
8
+ id: string;
9
+ scope: "global" | "session" | "workspace";
10
+ basePath?: string | undefined;
11
+ path: string;
12
+ method: "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT";
13
+ description: string;
14
+ availability?: string | undefined;
15
+ authentication: "device" | "none" | "owner";
16
+ parameters?: {
17
+ name: string;
18
+ in: "header" | "path" | "query";
19
+ required: boolean;
20
+ schema: boolean | object;
21
+ }[] | undefined;
22
+ body?: {
23
+ contentType: string;
24
+ contentTypes?: string[] | undefined;
25
+ required: boolean;
26
+ schema: boolean | object;
27
+ } | undefined;
28
+ responses: Record<string, {
29
+ description: string;
30
+ contentType?: string | undefined;
31
+ schema?: boolean | object | undefined;
32
+ events?: Record<string, boolean | object> | undefined;
33
+ }>;
34
+ }[];
35
+ sockets: {
36
+ id: string;
37
+ scope: "global" | "session" | "workspace";
38
+ description: string;
39
+ availability?: string | undefined;
40
+ service: string;
41
+ member: string;
42
+ direction: "client-to-server" | "server-to-client";
43
+ kind: "channel" | "method" | "state";
44
+ input: boolean | object;
45
+ output?: boolean | object | undefined;
46
+ errors?: boolean | object | undefined;
47
+ }[];
48
+ dynamic: string[];
49
+ gaps?: string[] | undefined;
50
+ };
51
+ //#endregion
52
+ export { apiContracts as default };
53
+ //# sourceMappingURL=apiContracts.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiContracts.d.cts","names":[],"sources":["../../../src/schemas/apiContracts.ts"],"mappings":";;qBAmEa"}
@@ -0,0 +1,53 @@
1
+ import { Type } from "typebox";
2
+ //#region src/schemas/apiContracts.d.ts
3
+ export declare const apiContracts: {
4
+ version: 1;
5
+ protocols?: Record<string, string> | undefined;
6
+ schemas?: Record<string, boolean | object> | undefined;
7
+ http: {
8
+ id: string;
9
+ scope: "global" | "session" | "workspace";
10
+ basePath?: string | undefined;
11
+ path: string;
12
+ method: "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT";
13
+ description: string;
14
+ availability?: string | undefined;
15
+ authentication: "device" | "none" | "owner";
16
+ parameters?: {
17
+ name: string;
18
+ in: "header" | "path" | "query";
19
+ required: boolean;
20
+ schema: boolean | object;
21
+ }[] | undefined;
22
+ body?: {
23
+ contentType: string;
24
+ contentTypes?: string[] | undefined;
25
+ required: boolean;
26
+ schema: boolean | object;
27
+ } | undefined;
28
+ responses: Record<string, {
29
+ description: string;
30
+ contentType?: string | undefined;
31
+ schema?: boolean | object | undefined;
32
+ events?: Record<string, boolean | object> | undefined;
33
+ }>;
34
+ }[];
35
+ sockets: {
36
+ id: string;
37
+ scope: "global" | "session" | "workspace";
38
+ description: string;
39
+ availability?: string | undefined;
40
+ service: string;
41
+ member: string;
42
+ direction: "client-to-server" | "server-to-client";
43
+ kind: "channel" | "method" | "state";
44
+ input: boolean | object;
45
+ output?: boolean | object | undefined;
46
+ errors?: boolean | object | undefined;
47
+ }[];
48
+ dynamic: string[];
49
+ gaps?: string[] | undefined;
50
+ };
51
+ //#endregion
52
+ export { apiContracts as default };
53
+ //# sourceMappingURL=apiContracts.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiContracts.d.mts","names":[],"sources":["../../../src/schemas/apiContracts.ts"],"mappings":";;qBAmEa"}
@@ -0,0 +1,191 @@
1
+ import { defineApiContract, jsonApiResponses } from "@agimon-ai/doompi-core/api-contracts";
2
+ import { Type } from "typebox";
3
+ //#region src/schemas/apiContracts.ts
4
+ const S = Type.String();
5
+ const N = Type.Number();
6
+ const O = Type.Optional;
7
+ const values = (items) => Type.Union(items.map((item) => Type.Literal(item)));
8
+ const Json = Type.Unknown({ description: "Desktop provider JSON value. Targets, observations and action results are supplied by the admitted Desktop provider." });
9
+ const Target = Type.Record(S, Json);
10
+ const Error = Type.Object({
11
+ code: S,
12
+ message: S
13
+ });
14
+ const Artifact = Type.Object({
15
+ artifactId: S,
16
+ status: values(["ready", "failed"]),
17
+ downloadUrl: O(S),
18
+ previewUrl: O(S),
19
+ actionCount: O(N),
20
+ completedAt: O(S),
21
+ failure: O(Error)
22
+ });
23
+ const ComputerStateSchema = Type.Object({
24
+ sessionId: S,
25
+ revision: N,
26
+ wake: N,
27
+ phase: values([
28
+ "inactive",
29
+ "awaiting_confirmation",
30
+ "activating",
31
+ "active",
32
+ "stopping",
33
+ "failed"
34
+ ]),
35
+ requestId: O(S),
36
+ target: O(Target),
37
+ durationMs: O(N),
38
+ expiresAt: O(N),
39
+ failure: O(Error),
40
+ artifact: O(Artifact)
41
+ });
42
+ const Reference = {
43
+ snapshotId: Type.String({ minLength: 1 }),
44
+ elementRef: Type.String({ minLength: 1 })
45
+ };
46
+ const ComputerActionSchema = Type.Union([
47
+ Type.Object({
48
+ kind: values(["press", "focus"]),
49
+ ...Reference
50
+ }, { additionalProperties: false }),
51
+ Type.Object({
52
+ kind: Type.Literal("set_value"),
53
+ ...Reference,
54
+ value: S
55
+ }, { additionalProperties: false }),
56
+ Type.Object({
57
+ kind: Type.Literal("scroll"),
58
+ ...Reference,
59
+ direction: values([
60
+ "up",
61
+ "down",
62
+ "left",
63
+ "right"
64
+ ]),
65
+ amount: values(["line", "page"])
66
+ }, { additionalProperties: false })
67
+ ]);
68
+ const internal = (method, path, output, body, status = 200) => ({
69
+ id: `computer.${path.slice(1).replaceAll("/", ".")}`,
70
+ scope: "session",
71
+ basePath: "computer-use",
72
+ path,
73
+ method,
74
+ authentication: "owner",
75
+ description: `Computer use broker ${path}. Requires the host-issued ${path.startsWith("/agent/") ? "agent" : "hub"} bearer token.`,
76
+ availability: "Internal broker route; ordinary browser credentials are insufficient.",
77
+ parameters: [{
78
+ name: "Authorization",
79
+ in: "header",
80
+ required: true,
81
+ schema: Type.String({ pattern: "^Bearer .+" })
82
+ }],
83
+ ...body ? { body: {
84
+ required: true,
85
+ contentType: "application/json",
86
+ schema: body
87
+ } } : {},
88
+ responses: jsonApiResponses(output, status)
89
+ });
90
+ const apiContracts = defineApiContract({
91
+ version: 1,
92
+ dynamic: ["Desktop provider target extensions, observations and operation results are runtime-defined JSON."],
93
+ http: [
94
+ {
95
+ id: "computer.activate",
96
+ scope: "session",
97
+ basePath: "computer-use",
98
+ path: "/activate",
99
+ method: "POST",
100
+ authentication: "owner",
101
+ description: "Request confirmed Desktop access with admitted caller and remote step-up context.",
102
+ body: {
103
+ required: true,
104
+ contentType: "application/json",
105
+ schema: Type.Object({
106
+ target: Type.Object({
107
+ windowId: S,
108
+ bundleId: S
109
+ }),
110
+ durationMs: Type.Integer({
111
+ minimum: 1e3,
112
+ maximum: 18e5
113
+ })
114
+ })
115
+ },
116
+ responses: jsonApiResponses(ComputerStateSchema, 202)
117
+ },
118
+ internal("GET", "/agent/state", ComputerStateSchema),
119
+ internal("GET", "/hub/state", ComputerStateSchema),
120
+ internal("POST", "/agent/observe", Json),
121
+ internal("POST", "/agent/action", Json, ComputerActionSchema),
122
+ internal("POST", "/agent/stop", ComputerStateSchema, void 0, 202),
123
+ internal("GET", "/hub/activation", Type.Union([Type.Null(), Type.Object({
124
+ requestId: S,
125
+ target: Target,
126
+ durationSeconds: N,
127
+ createdAt: N,
128
+ confirmationExpiresAt: N,
129
+ caller: Type.Object({
130
+ locality: values(["local", "remote"]),
131
+ stepUp: S
132
+ })
133
+ })])),
134
+ internal("GET", "/hub/authorization", Type.Union([Type.Null(), Type.Object({
135
+ grantId: S,
136
+ expiresAt: O(N)
137
+ })])),
138
+ internal("GET", "/hub/next", Type.Union([Type.Null(), Type.Object({
139
+ id: S,
140
+ operation: values(["observe", "act"]),
141
+ payload: O(Json),
142
+ grantId: S,
143
+ sequence: O(N)
144
+ })])),
145
+ internal("POST", "/hub/complete", ComputerStateSchema, Type.Object({
146
+ id: S,
147
+ error: O(S),
148
+ result: O(Json)
149
+ })),
150
+ internal("POST", "/hub/stop", ComputerStateSchema, Type.Object({
151
+ error: O(S),
152
+ host: O(Type.Object({
153
+ grantId: S,
154
+ expiresAt: N
155
+ })),
156
+ artifact: O(Artifact)
157
+ }))
158
+ ],
159
+ sockets: ["global", "workspace"].flatMap((scope) => [{
160
+ id: "computer.state",
161
+ scope,
162
+ service: "doompi.hub.v1",
163
+ member: "computer_use_state",
164
+ kind: "channel",
165
+ direction: "server-to-client",
166
+ description: "Computer use channel payload.",
167
+ input: Type.Object({
168
+ state: ComputerStateSchema,
169
+ targets: Type.Array(Target),
170
+ busy: O(Type.Literal(true))
171
+ })
172
+ }, {
173
+ id: "computer.command",
174
+ scope,
175
+ service: "doompi.hub.v1",
176
+ member: "computer_use_state",
177
+ kind: "channel",
178
+ direction: "client-to-server",
179
+ description: "Computer use browser channel command.",
180
+ input: Type.Object({ action: values([
181
+ "status",
182
+ "targets",
183
+ "stop",
184
+ "artifacts"
185
+ ]) })
186
+ }])
187
+ });
188
+ //#endregion
189
+ export { ComputerActionSchema, ComputerStateSchema, apiContracts, apiContracts as default };
190
+
191
+ //# sourceMappingURL=apiContracts.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiContracts.mjs","names":[],"sources":["../../../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineApiContract, jsonApiResponses, type DoomHttpContract } from '@agimon-ai/doompi-core/api-contracts';\nimport { Type } from 'typebox';\n\nconst S = Type.String();\nconst N = Type.Number();\nconst O = Type.Optional;\nconst values = <T extends string>(items: T[]) => Type.Union(items.map((item) => Type.Literal(item)));\nconst Json = Type.Unknown({\n description:\n 'Desktop provider JSON value. Targets, observations and action results are supplied by the admitted Desktop provider.',\n});\nconst Target = Type.Record(S, Json);\nconst Error = Type.Object({ code: S, message: S });\nconst Artifact = Type.Object({\n artifactId: S,\n status: values(['ready', 'failed']),\n downloadUrl: O(S),\n previewUrl: O(S),\n actionCount: O(N),\n completedAt: O(S),\n failure: O(Error),\n});\nexport const ComputerStateSchema = Type.Object({\n sessionId: S,\n revision: N,\n wake: N,\n phase: values(['inactive', 'awaiting_confirmation', 'activating', 'active', 'stopping', 'failed']),\n requestId: O(S),\n target: O(Target),\n durationMs: O(N),\n expiresAt: O(N),\n failure: O(Error),\n artifact: O(Artifact),\n});\nconst Reference = { snapshotId: Type.String({ minLength: 1 }), elementRef: Type.String({ minLength: 1 }) };\nexport const ComputerActionSchema = Type.Union([\n Type.Object({ kind: values(['press', 'focus']), ...Reference }, { additionalProperties: false }),\n Type.Object({ kind: Type.Literal('set_value'), ...Reference, value: S }, { additionalProperties: false }),\n Type.Object(\n {\n kind: Type.Literal('scroll'),\n ...Reference,\n direction: values(['up', 'down', 'left', 'right']),\n amount: values(['line', 'page']),\n },\n { additionalProperties: false },\n ),\n]);\nconst internal = (\n method: 'GET' | 'POST',\n path: string,\n output: object,\n body?: object,\n status = 200,\n): DoomHttpContract => ({\n id: `computer.${path.slice(1).replaceAll('/', '.')}`,\n scope: 'session',\n basePath: 'computer-use',\n path,\n method,\n authentication: 'owner',\n description: `Computer use broker ${path}. Requires the host-issued ${path.startsWith('/agent/') ? 'agent' : 'hub'} bearer token.`,\n availability: 'Internal broker route; ordinary browser credentials are insufficient.',\n parameters: [{ name: 'Authorization', in: 'header', required: true, schema: Type.String({ pattern: '^Bearer .+' }) }],\n ...(body ? { body: { required: true, contentType: 'application/json', schema: body } } : {}),\n responses: jsonApiResponses(output, status),\n});\nexport const apiContracts = defineApiContract({\n version: 1,\n dynamic: ['Desktop provider target extensions, observations and operation results are runtime-defined JSON.'],\n http: [\n {\n id: 'computer.activate',\n scope: 'session',\n basePath: 'computer-use',\n path: '/activate',\n method: 'POST',\n authentication: 'owner',\n description: 'Request confirmed Desktop access with admitted caller and remote step-up context.',\n body: {\n required: true,\n contentType: 'application/json',\n schema: Type.Object({\n target: Type.Object({ windowId: S, bundleId: S }),\n durationMs: Type.Integer({ minimum: 1000, maximum: 1800000 }),\n }),\n },\n responses: jsonApiResponses(ComputerStateSchema, 202),\n },\n internal('GET', '/agent/state', ComputerStateSchema),\n internal('GET', '/hub/state', ComputerStateSchema),\n internal('POST', '/agent/observe', Json),\n internal('POST', '/agent/action', Json, ComputerActionSchema),\n internal('POST', '/agent/stop', ComputerStateSchema, undefined, 202),\n internal(\n 'GET',\n '/hub/activation',\n Type.Union([\n Type.Null(),\n Type.Object({\n requestId: S,\n target: Target,\n durationSeconds: N,\n createdAt: N,\n confirmationExpiresAt: N,\n caller: Type.Object({ locality: values(['local', 'remote']), stepUp: S }),\n }),\n ]),\n ),\n internal('GET', '/hub/authorization', Type.Union([Type.Null(), Type.Object({ grantId: S, expiresAt: O(N) })])),\n internal(\n 'GET',\n '/hub/next',\n Type.Union([\n Type.Null(),\n Type.Object({ id: S, operation: values(['observe', 'act']), payload: O(Json), grantId: S, sequence: O(N) }),\n ]),\n ),\n internal('POST', '/hub/complete', ComputerStateSchema, Type.Object({ id: S, error: O(S), result: O(Json) })),\n internal(\n 'POST',\n '/hub/stop',\n ComputerStateSchema,\n Type.Object({ error: O(S), host: O(Type.Object({ grantId: S, expiresAt: N })), artifact: O(Artifact) }),\n ),\n ],\n sockets: (['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'computer.state',\n scope,\n service: 'doompi.hub.v1',\n member: 'computer_use_state',\n kind: 'channel',\n direction: 'server-to-client',\n description: 'Computer use channel payload.',\n input: Type.Object({ state: ComputerStateSchema, targets: Type.Array(Target), busy: O(Type.Literal(true)) }),\n },\n {\n id: 'computer.command',\n scope,\n service: 'doompi.hub.v1',\n member: 'computer_use_state',\n kind: 'channel',\n direction: 'client-to-server',\n description: 'Computer use browser channel command.',\n input: Type.Object({ action: values(['status', 'targets', 'stop', 'artifacts']) }),\n },\n ]),\n});\nexport default apiContracts;\n"],"mappings":"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"}