@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.
- package/README.md +11 -4
- package/dist/_virtual/_rolldown/runtime.cjs +23 -1
- package/dist/api-contracts.cjs +7 -0
- package/dist/api-contracts.d.cts +2 -0
- package/dist/api-contracts.d.mts +2 -0
- package/dist/api-contracts.mjs +2 -0
- package/dist/extensions/mcp.cjs +56 -0
- package/dist/extensions/mcp.cjs.map +1 -0
- package/dist/extensions/mcp.d.cts +5 -0
- package/dist/extensions/mcp.d.cts.map +1 -0
- package/dist/extensions/mcp.d.mts +5 -0
- package/dist/extensions/mcp.d.mts.map +1 -0
- package/dist/extensions/mcp.mjs +51 -0
- package/dist/extensions/mcp.mjs.map +1 -0
- package/dist/extensions/pi.cjs +51 -1
- package/dist/extensions/pi.cjs.map +1 -0
- package/dist/extensions/pi.d.cts +7 -2
- package/dist/extensions/pi.d.cts.map +1 -0
- package/dist/extensions/pi.d.mts +7 -2
- package/dist/extensions/pi.d.mts.map +1 -0
- package/dist/extensions/pi.mjs +46 -1
- package/dist/extensions/pi.mjs.map +1 -0
- package/dist/extensions/server.cjs +72 -0
- package/dist/extensions/server.cjs.map +1 -0
- package/dist/extensions/server.d.cts +5 -0
- package/dist/extensions/server.d.cts.map +1 -0
- package/dist/extensions/server.d.mts +5 -0
- package/dist/extensions/server.d.mts.map +1 -0
- package/dist/extensions/server.mjs +67 -0
- package/dist/extensions/server.mjs.map +1 -0
- package/dist/extensions/web.mjs +625 -0
- package/dist/extensions/web.mjs.map +1 -0
- package/dist/index.cjs +18 -1
- package/dist/index.d.cts +12 -10
- package/dist/index.d.mts +12 -10
- package/dist/index.mjs +8 -1
- package/dist/src/constants/computerUse.cjs +17 -0
- package/dist/src/constants/computerUse.cjs.map +1 -0
- package/dist/src/constants/computerUse.d.cts +5 -0
- package/dist/src/constants/computerUse.d.cts.map +1 -0
- package/dist/src/constants/computerUse.d.mts +5 -0
- package/dist/src/constants/computerUse.d.mts.map +1 -0
- package/dist/src/constants/computerUse.mjs +14 -0
- package/dist/src/constants/computerUse.mjs.map +1 -0
- package/dist/src/extensions/(backend)/channel/computer-use.server.cjs +7 -0
- package/dist/src/extensions/(backend)/channel/computer-use.server.cjs.map +1 -0
- package/dist/src/extensions/(backend)/channel/computer-use.server.mjs +8 -0
- package/dist/src/extensions/(backend)/channel/computer-use.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.cli.cjs +8 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.cli.mjs +8 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.server.cjs +11 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.server.mjs +11 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_runtime/index.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/command/computer-use.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs +15 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs +16 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs +17 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs +18 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.cjs +6 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.mjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.mjs.map +1 -0
- package/dist/src/models/computerUseMode.cjs +43 -0
- package/dist/src/models/computerUseMode.cjs.map +1 -0
- package/dist/src/models/computerUseMode.mjs +42 -0
- package/dist/src/models/computerUseMode.mjs.map +1 -0
- package/dist/src/models/computerUseState.cjs +89 -0
- package/dist/src/models/computerUseState.cjs.map +1 -0
- package/dist/src/models/computerUseState.d.cts +6 -0
- package/dist/src/models/computerUseState.d.cts.map +1 -0
- package/dist/src/models/computerUseState.d.mts +6 -0
- package/dist/src/models/computerUseState.d.mts.map +1 -0
- package/dist/src/models/computerUseState.mjs +88 -0
- package/dist/src/models/computerUseState.mjs.map +1 -0
- package/dist/src/schemas/apiContracts.cjs +194 -0
- package/dist/src/schemas/apiContracts.cjs.map +1 -0
- package/dist/src/schemas/apiContracts.d.cts +53 -0
- package/dist/src/schemas/apiContracts.d.cts.map +1 -0
- package/dist/src/schemas/apiContracts.d.mts +53 -0
- package/dist/src/schemas/apiContracts.d.mts.map +1 -0
- package/dist/src/schemas/apiContracts.mjs +191 -0
- package/dist/src/schemas/apiContracts.mjs.map +1 -0
- package/dist/src/services/computerScriptRunner/index.cjs +171 -0
- package/dist/src/services/computerScriptRunner/index.cjs.map +1 -0
- package/dist/src/services/computerScriptRunner/index.d.cts +12 -0
- package/dist/src/services/computerScriptRunner/index.d.cts.map +1 -0
- package/dist/src/services/computerScriptRunner/index.d.mts +12 -0
- package/dist/src/services/computerScriptRunner/index.d.mts.map +1 -0
- package/dist/src/services/computerScriptRunner/index.mjs +171 -0
- package/dist/src/services/computerScriptRunner/index.mjs.map +1 -0
- package/dist/src/services/computerUseApi/index.cjs +291 -0
- package/dist/src/services/computerUseApi/index.cjs.map +1 -0
- package/dist/src/services/computerUseApi/index.mjs +289 -0
- package/dist/src/services/computerUseApi/index.mjs.map +1 -0
- package/dist/src/services/computerUseCommand/index.cjs +15 -0
- package/dist/src/services/computerUseCommand/index.cjs.map +1 -0
- package/dist/src/services/computerUseCommand/index.mjs +15 -0
- package/dist/src/services/computerUseCommand/index.mjs.map +1 -0
- package/dist/src/services/computerUseRuntime/index.cjs +300 -0
- package/dist/src/services/computerUseRuntime/index.cjs.map +1 -0
- package/dist/src/services/computerUseRuntime/index.mjs +299 -0
- package/dist/src/services/computerUseRuntime/index.mjs.map +1 -0
- package/dist/src/services/computerUseServer/index.cjs +350 -0
- package/dist/src/services/computerUseServer/index.cjs.map +1 -0
- package/dist/src/services/computerUseServer/index.mjs +348 -0
- package/dist/src/services/computerUseServer/index.mjs.map +1 -0
- package/dist/src/services/dependencies/index.cjs +27 -0
- package/dist/src/services/dependencies/index.cjs.map +1 -0
- package/dist/src/services/dependencies/index.d.cts +6 -0
- package/dist/src/services/dependencies/index.d.cts.map +1 -0
- package/dist/src/services/dependencies/index.d.mts +6 -0
- package/dist/src/services/dependencies/index.d.mts.map +1 -0
- package/dist/src/services/dependencies/index.mjs +24 -0
- package/dist/src/services/dependencies/index.mjs.map +1 -0
- package/dist/src/services/extensionService/index.cjs +21 -0
- package/dist/src/services/extensionService/index.cjs.map +1 -0
- package/dist/src/services/extensionService/index.d.cts +10 -0
- package/dist/src/services/extensionService/index.d.cts.map +1 -0
- package/dist/src/services/extensionService/index.d.mts +10 -0
- package/dist/src/services/extensionService/index.d.mts.map +1 -0
- package/dist/src/services/extensionService/index.mjs +21 -0
- package/dist/src/services/extensionService/index.mjs.map +1 -0
- package/dist/src/services/mcpTools/index.cjs +17 -0
- package/dist/src/services/mcpTools/index.cjs.map +1 -0
- package/dist/src/services/mcpTools/index.mjs +16 -0
- package/dist/src/services/mcpTools/index.mjs.map +1 -0
- package/dist/src/services/sessionApiClient/index.cjs +9 -0
- package/dist/src/services/sessionApiClient/index.cjs.map +1 -0
- package/dist/src/services/sessionApiClient/index.d.cts +15 -0
- package/dist/src/services/sessionApiClient/index.d.cts.map +1 -0
- package/dist/src/services/sessionApiClient/index.d.mts +15 -0
- package/dist/src/services/sessionApiClient/index.d.mts.map +1 -0
- package/dist/src/services/sessionApiClient/index.mjs +9 -0
- package/dist/src/services/sessionApiClient/index.mjs.map +1 -0
- package/dist/src/services/traceRedaction/index.cjs +19 -0
- package/dist/src/services/traceRedaction/index.cjs.map +1 -0
- package/dist/{services/traceRedaction.d.mts → src/services/traceRedaction/index.d.cts} +6 -7
- package/dist/src/services/traceRedaction/index.d.cts.map +1 -0
- package/dist/{services/traceRedaction.d.cts → src/services/traceRedaction/index.d.mts} +6 -7
- package/dist/src/services/traceRedaction/index.d.mts.map +1 -0
- package/dist/src/services/traceRedaction/index.mjs +19 -0
- package/dist/src/services/traceRedaction/index.mjs.map +1 -0
- package/dist/src/services/webComputerUseAvailability/index.cjs +13 -0
- package/dist/src/services/webComputerUseAvailability/index.cjs.map +1 -0
- package/dist/src/services/webComputerUseAvailability/index.mjs +12 -0
- package/dist/src/services/webComputerUseAvailability/index.mjs.map +1 -0
- package/dist/src/services/webComputerUseChannel/index.cjs +251 -0
- package/dist/src/services/webComputerUseChannel/index.cjs.map +1 -0
- package/dist/src/services/webComputerUseChannel/index.mjs +250 -0
- package/dist/src/services/webComputerUseChannel/index.mjs.map +1 -0
- package/dist/src/types/apiRoutes.cjs +84 -0
- package/dist/src/types/apiRoutes.cjs.map +1 -0
- package/dist/src/types/apiRoutes.mjs +84 -0
- package/dist/src/types/apiRoutes.mjs.map +1 -0
- package/dist/src/types/computerScript.d.cts +38 -0
- package/dist/src/types/computerScript.d.cts.map +1 -0
- package/dist/src/types/computerScript.d.mts +38 -0
- package/dist/src/types/computerScript.d.mts.map +1 -0
- package/dist/{types → src/types}/computerUse.d.cts +14 -14
- package/dist/src/types/computerUse.d.cts.map +1 -0
- package/dist/{types → src/types}/computerUse.d.mts +14 -14
- package/dist/src/types/computerUse.d.mts.map +1 -0
- package/dist/src/types/computerUseApi.cjs +41 -0
- package/dist/src/types/computerUseApi.cjs.map +1 -0
- package/dist/{types → src/types}/computerUseApi.d.cts +28 -20
- package/dist/src/types/computerUseApi.d.cts.map +1 -0
- package/dist/{types → src/types}/computerUseApi.d.mts +28 -20
- package/dist/src/types/computerUseApi.d.mts.map +1 -0
- package/dist/src/types/computerUseApi.mjs +33 -0
- package/dist/src/types/computerUseApi.mjs.map +1 -0
- package/dist/src/types/extension.d.cts +19 -0
- package/dist/src/types/extension.d.cts.map +1 -0
- package/dist/src/types/extension.d.mts +19 -0
- package/dist/src/types/extension.d.mts.map +1 -0
- package/docs/computer-scripts.md +37 -0
- package/llms.txt +1 -0
- package/package.json +55 -33
- package/src/prompts/doompi-use-computer-use/SKILL.md +1 -1
- package/src/types/computerUse.ts +3 -2
- package/src/types/computerUseApi.ts +9 -6
- package/dist/adapters/computerUseApi.cjs +0 -2
- package/dist/adapters/computerUseApi.cjs.map +0 -1
- package/dist/adapters/computerUseApi.d.cts +0 -37
- package/dist/adapters/computerUseApi.d.cts.map +0 -1
- package/dist/adapters/computerUseApi.d.mts +0 -37
- package/dist/adapters/computerUseApi.d.mts.map +0 -1
- package/dist/adapters/computerUseApi.mjs +0 -2
- package/dist/adapters/computerUseApi.mjs.map +0 -1
- package/dist/adapters/pi/extension.cjs +0 -3
- package/dist/adapters/pi/extension.cjs.map +0 -1
- package/dist/adapters/pi/extension.d.cts +0 -12
- package/dist/adapters/pi/extension.d.cts.map +0 -1
- package/dist/adapters/pi/extension.d.mts +0 -12
- package/dist/adapters/pi/extension.d.mts.map +0 -1
- package/dist/adapters/pi/extension.mjs +0 -3
- package/dist/adapters/pi/extension.mjs.map +0 -1
- package/dist/adapters/pi/sessionApiClient.cjs +0 -2
- package/dist/adapters/pi/sessionApiClient.cjs.map +0 -1
- package/dist/adapters/pi/sessionApiClient.d.cts +0 -26
- package/dist/adapters/pi/sessionApiClient.d.cts.map +0 -1
- package/dist/adapters/pi/sessionApiClient.d.mts +0 -26
- package/dist/adapters/pi/sessionApiClient.d.mts.map +0 -1
- package/dist/adapters/pi/sessionApiClient.mjs +0 -2
- package/dist/adapters/pi/sessionApiClient.mjs.map +0 -1
- package/dist/adapters/webComputerUseAvailability.cjs +0 -2
- package/dist/adapters/webComputerUseAvailability.cjs.map +0 -1
- package/dist/adapters/webComputerUseAvailability.mjs +0 -2
- package/dist/adapters/webComputerUseAvailability.mjs.map +0 -1
- package/dist/adapters/webComputerUseChannel.cjs +0 -2
- package/dist/adapters/webComputerUseChannel.cjs.map +0 -1
- package/dist/adapters/webComputerUseChannel.d.cts +0 -10
- package/dist/adapters/webComputerUseChannel.d.cts.map +0 -1
- package/dist/adapters/webComputerUseChannel.d.mts +0 -10
- package/dist/adapters/webComputerUseChannel.d.mts.map +0 -1
- package/dist/adapters/webComputerUseChannel.mjs +0 -2
- package/dist/adapters/webComputerUseChannel.mjs.map +0 -1
- package/dist/commands/computerUseCommand.cjs +0 -2
- package/dist/commands/computerUseCommand.cjs.map +0 -1
- package/dist/commands/computerUseCommand.mjs +0 -2
- package/dist/commands/computerUseCommand.mjs.map +0 -1
- package/dist/container/index.cjs +0 -2
- package/dist/container/index.cjs.map +0 -1
- package/dist/container/index.d.cts +0 -6
- package/dist/container/index.d.cts.map +0 -1
- package/dist/container/index.d.mts +0 -6
- package/dist/container/index.d.mts.map +0 -1
- package/dist/container/index.mjs +0 -2
- package/dist/container/index.mjs.map +0 -1
- package/dist/services/extensionService.cjs +0 -2
- package/dist/services/extensionService.cjs.map +0 -1
- package/dist/services/extensionService.d.cts +0 -11
- package/dist/services/extensionService.d.cts.map +0 -1
- package/dist/services/extensionService.d.mts +0 -11
- package/dist/services/extensionService.d.mts.map +0 -1
- package/dist/services/extensionService.mjs +0 -2
- package/dist/services/extensionService.mjs.map +0 -1
- package/dist/services/sessionController.cjs +0 -2
- package/dist/services/sessionController.cjs.map +0 -1
- package/dist/services/sessionController.d.cts +0 -7
- package/dist/services/sessionController.d.cts.map +0 -1
- package/dist/services/sessionController.d.mts +0 -7
- package/dist/services/sessionController.d.mts.map +0 -1
- package/dist/services/sessionController.mjs +0 -2
- package/dist/services/sessionController.mjs.map +0 -1
- package/dist/services/traceRedaction.cjs +0 -2
- package/dist/services/traceRedaction.cjs.map +0 -1
- package/dist/services/traceRedaction.d.cts.map +0 -1
- package/dist/services/traceRedaction.d.mts.map +0 -1
- package/dist/services/traceRedaction.mjs +0 -2
- package/dist/services/traceRedaction.mjs.map +0 -1
- package/dist/sessionApi.cjs +0 -1
- package/dist/sessionApi.d.cts +0 -2
- package/dist/sessionApi.d.mts +0 -2
- package/dist/sessionApi.mjs +0 -1
- package/dist/types/computerUse.d.cts.map +0 -1
- package/dist/types/computerUse.d.mts.map +0 -1
- package/dist/types/computerUseApi.cjs +0 -2
- package/dist/types/computerUseApi.cjs.map +0 -1
- package/dist/types/computerUseApi.d.cts.map +0 -1
- package/dist/types/computerUseApi.d.mts.map +0 -1
- package/dist/types/computerUseApi.mjs +0 -2
- package/dist/types/computerUseApi.mjs.map +0 -1
- package/dist/types/extension.d.cts +0 -17
- package/dist/types/extension.d.cts.map +0 -1
- package/dist/types/extension.d.mts +0 -17
- package/dist/types/extension.d.mts.map +0 -1
- package/dist/webHub.cjs +0 -1
- package/dist/webHub.d.cts +0 -3
- package/dist/webHub.d.mts +0 -3
- package/dist/webHub.mjs +0 -1
- package/src/exports/webClient.ts +0 -2
- package/src/web/ComputerActionToolCard.tsx +0 -51
- package/src/web/ComputerStateToolCard.tsx +0 -51
- package/src/web/ComputerUsePanel.tsx +0 -136
- package/src/web/computerActionToolRender.ts +0 -20
- package/src/web/computerStateToolRender.ts +0 -18
- package/src/web/computerUseStore.ts +0 -26
- package/src/web/index.ts +0 -41
- package/src/web/tsconfig.json +0 -28
package/README.md
CHANGED
|
@@ -20,12 +20,15 @@ Enable the default-off **Computer Use** minor mode in the cockpit. Its Activity
|
|
|
20
20
|
|
|
21
21
|
The `computer-use` minor mode exposes Activate, Deactivate, and Doctor actions. `/computer-use` reports the current state.
|
|
22
22
|
|
|
23
|
-
While active, the package exposes
|
|
23
|
+
While active, the package exposes three tools:
|
|
24
24
|
|
|
25
25
|
- `computer_state` observes the authorized window and returns a semantic snapshot.
|
|
26
|
-
- `computer_action` performs one semantic press, value change, or scroll against a current snapshot.
|
|
26
|
+
- `computer_action` performs one semantic press, focus change, value change, or scroll against a current snapshot.
|
|
27
|
+
- `computer_exec` runs a trusted, explicitly allowed local TypeScript script with JSON input, then returns a fresh observation.
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
Computer scripts are trusted Node.js code and are not sandboxed. Configure exact allowed paths with `DOOMPI_COMPUTER_USE_SCRIPT_PATHS` and review every script before allowing it. See [Author computer scripts](./docs/computer-scripts.md) for the execution contract, limits, and an example.
|
|
30
|
+
|
|
31
|
+
All three tools and their model guidance remain unavailable during setup and are exposed only after the native grant becomes active. The Activity section shows activation status, busy ownership, stop controls, and completed recording or trace metadata. Browser clients cannot call observation or action routes.
|
|
29
32
|
|
|
30
33
|
## Public API
|
|
31
34
|
|
|
@@ -33,7 +36,7 @@ Both tools and their model guidance remain unavailable during setup and are expo
|
|
|
33
36
|
import { activateComputerUseExtension, createComputerUseSessionClient } from '@agimon-ai/doompi-computer-use';
|
|
34
37
|
```
|
|
35
38
|
|
|
36
|
-
The session
|
|
39
|
+
The session-scoped server facet owns the agent and hub routes. Their host-issued context tokens remain opaque and session-bound inside the request broker.
|
|
37
40
|
|
|
38
41
|
## Development
|
|
39
42
|
|
|
@@ -47,3 +50,7 @@ pnpm build
|
|
|
47
50
|
## License
|
|
48
51
|
|
|
49
52
|
MIT
|
|
53
|
+
|
|
54
|
+
Direct plugin entries live in `src/extensions`. Controllers coordinate host APIs, commands, and mode actions. Models own computer-use state and projections; named services own Desktop transport, scripts, and configuration dependencies. Flat `src/exports` exposes reusable helpers and types.
|
|
55
|
+
|
|
56
|
+
The Pi entry declares a live minor-mode collection so the global opt-in controls catalog presence. Its tool restriction is reactive and the helper owns all registration changes. Session startup begins availability polling; `onStop` cancels the timer and final disposal clears status. The server declares its session mode, activity, tools, commands, and API alongside hub channel factories.
|
|
@@ -1 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
|
+
key = keys[i];
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
12
|
+
get: ((k) => from[k]).bind(null, key),
|
|
13
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
|
|
19
|
+
value: mod,
|
|
20
|
+
enumerable: true
|
|
21
|
+
}) : target, mod));
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.__toESM = __toESM;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Object.defineProperties(exports, {
|
|
2
|
+
__esModule: { value: true },
|
|
3
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
+
});
|
|
5
|
+
const require_apiContracts = require("./src/schemas/apiContracts.cjs");
|
|
6
|
+
exports.apiContracts = require_apiContracts.apiContracts;
|
|
7
|
+
exports.default = require_apiContracts.apiContracts;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
Object.defineProperties(exports, {
|
|
2
|
+
__esModule: { value: true },
|
|
3
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
+
});
|
|
5
|
+
let _agimon_ai_doompi_core_mcp_facet = require("@agimon-ai/doompi-core/mcp-facet");
|
|
6
|
+
//#endregion
|
|
7
|
+
//#region src/services/mcpTools/index.ts
|
|
8
|
+
const COMPUTER_USE_MCP_TOOLS_SERVICE = "doom/computer-use-mcp-tools";
|
|
9
|
+
const MODE_LABEL = "Computer Use";
|
|
10
|
+
function bindMcpTool(context, name) {
|
|
11
|
+
const catalog = context.services.get(COMPUTER_USE_MCP_TOOLS_SERVICE);
|
|
12
|
+
const tool = catalog?.get(name);
|
|
13
|
+
if (!tool || !catalog) throw new Error(`Computer use tool is unavailable: ${name}`);
|
|
14
|
+
return {
|
|
15
|
+
...tool,
|
|
16
|
+
execute(toolCallId, parameters, signal, onUpdate) {
|
|
17
|
+
if (!(context.selection.read().state?.["minor-mode"] ?? []).includes("computer-use")) {
|
|
18
|
+
const inactiveTools = [...catalog.names()].sort().join(", ");
|
|
19
|
+
throw new Error(`${MODE_LABEL} minor mode is inactive. Inactive ${MODE_LABEL} tools: ${inactiveTools}.`);
|
|
20
|
+
}
|
|
21
|
+
const executionSignal = AbortSignal.any([context.signal, signal ?? context.signal]);
|
|
22
|
+
return tool.execute(toolCallId, parameters, executionSignal, onUpdate, context.execution);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/extensions/workspaces/sessions/(backend)/tool/computer_action.mcp.ts
|
|
28
|
+
var computer_action_mcp_default = (0, _agimon_ai_doompi_core_mcp_facet.defineMcpTool)((context) => bindMcpTool(context, "computer_action"));
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region src/extensions/workspaces/sessions/(backend)/tool/computer_exec.mcp.ts
|
|
31
|
+
var computer_exec_mcp_default = (0, _agimon_ai_doompi_core_mcp_facet.defineMcpTool)((context) => bindMcpTool(context, "computer_exec"));
|
|
32
|
+
//#endregion
|
|
33
|
+
//#region src/extensions/workspaces/sessions/(backend)/tool/computer_state.mcp.ts
|
|
34
|
+
var computer_state_mcp_default = (0, _agimon_ai_doompi_core_mcp_facet.defineMcpTool)((context) => bindMcpTool(context, "computer_state"));
|
|
35
|
+
//#endregion
|
|
36
|
+
//#region generated/mcp.ts
|
|
37
|
+
const at = (value, context) => typeof value === "function" ? value(context) : value;
|
|
38
|
+
const via = (identity, value) => ({
|
|
39
|
+
...identity,
|
|
40
|
+
...value
|
|
41
|
+
});
|
|
42
|
+
const mcp = (0, _agimon_ai_doompi_core_mcp_facet.defineMcpPlugin)({
|
|
43
|
+
name: "@agimon-ai/doompi-computer-use",
|
|
44
|
+
session: (context) => ({ get tools() {
|
|
45
|
+
return [
|
|
46
|
+
via({ name: "computer_action" }, at(computer_action_mcp_default, context)),
|
|
47
|
+
via({ name: "computer_exec" }, at(computer_exec_mcp_default, context)),
|
|
48
|
+
via({ name: "computer_state" }, at(computer_state_mcp_default, context))
|
|
49
|
+
];
|
|
50
|
+
} })
|
|
51
|
+
});
|
|
52
|
+
//#endregion
|
|
53
|
+
exports.default = mcp;
|
|
54
|
+
exports.mcp = mcp;
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=mcp.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.cjs","names":["defineMcpTool","defineMcpTool","defineMcpTool","defineMcpPlugin","toolComputerAction","toolComputerExec","toolComputerState"],"sources":["../../src/types/computerUseApi.ts","../../src/services/mcpTools/index.ts","../../src/extensions/workspaces/sessions/(backend)/tool/computer_action.mcp.ts","../../src/extensions/workspaces/sessions/(backend)/tool/computer_exec.mcp.ts","../../src/extensions/workspaces/sessions/(backend)/tool/computer_state.mcp.ts","../../generated/mcp.ts"],"sourcesContent":["import type { DoomApiCaller } from '@agimon-ai/doompi-core/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 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\n/**\n * Every path this API answers on, below its mount.\n *\n * The typed route table in `./apiRoutes` is built from this, the dispatcher\n * reads that table, and the hub channel addresses the broker with these same\n * strings, so a route cannot move on one side alone.\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 readonly failure?: { readonly code: string; readonly message: 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","import type { DoomHeadlessTool } from '@agimon-ai/doompi-core/headless';\nimport type { DoomMcpPluginContext } from '@agimon-ai/doompi-core/mcp-facet';\nimport type { Context } from '@deepseek-ai/cordis';\n\nimport { COMPUTER_USE_MODE_ID } from '../../types/computerUseApi';\n\nexport const COMPUTER_USE_MCP_TOOLS_SERVICE = 'doom/computer-use-mcp-tools';\n\nconst MODE_LABEL = 'Computer Use';\n\nexport interface McpToolCatalog {\n get(name: string): DoomHeadlessTool | undefined;\n names(): readonly string[];\n}\n\nexport function mountMcpTools(tools: readonly DoomHeadlessTool[]) {\n return (context: Context): void => {\n context.plugin((providerContext) => {\n providerContext.provide(COMPUTER_USE_MCP_TOOLS_SERVICE, {\n get: (name) => tools.find((tool) => tool.name === name),\n names: () => tools.map((tool) => tool.name),\n } satisfies McpToolCatalog);\n });\n };\n}\n\nexport function bindMcpTool(context: DoomMcpPluginContext, name: string): DoomHeadlessTool {\n const catalog = context.services.get<McpToolCatalog>(COMPUTER_USE_MCP_TOOLS_SERVICE);\n const tool = catalog?.get(name);\n if (!tool || !catalog) throw new Error(`Computer use tool is unavailable: ${name}`);\n return {\n ...tool,\n execute(toolCallId, parameters, signal, onUpdate) {\n const activeModes = context.selection.read().state?.['minor-mode'] ?? [];\n if (!activeModes.includes(COMPUTER_USE_MODE_ID)) {\n const inactiveTools = [...catalog.names()].sort().join(', ');\n throw new Error(`${MODE_LABEL} minor mode is inactive. Inactive ${MODE_LABEL} tools: ${inactiveTools}.`);\n }\n const executionSignal = AbortSignal.any([context.signal, signal ?? context.signal]);\n return tool.execute(toolCallId, parameters, executionSignal, onUpdate, context.execution);\n },\n };\n}\n","import { defineMcpTool, type DoomMcpPluginContext } from '@agimon-ai/doompi-core/mcp-facet';\n\nimport { bindMcpTool } from '../../../../../services/mcpTools';\n\nexport default defineMcpTool((context: DoomMcpPluginContext) => bindMcpTool(context, 'computer_action'));\n","import { defineMcpTool, type DoomMcpPluginContext } from '@agimon-ai/doompi-core/mcp-facet';\n\nimport { bindMcpTool } from '../../../../../services/mcpTools';\n\nexport default defineMcpTool((context: DoomMcpPluginContext) => bindMcpTool(context, 'computer_exec'));\n","import { defineMcpTool, type DoomMcpPluginContext } from '@agimon-ai/doompi-core/mcp-facet';\n\nimport { bindMcpTool } from '../../../../../services/mcpTools';\n\nexport default defineMcpTool((context: DoomMcpPluginContext) => bindMcpTool(context, 'computer_state'));\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineMcpPlugin, type DoomMcpSessionPlugin } from '@agimon-ai/doompi-core/mcp-facet';\n\nimport toolComputerAction from '../src/extensions/workspaces/sessions/(backend)/tool/computer_action.mcp';\nimport toolComputerExec from '../src/extensions/workspaces/sessions/(backend)/tool/computer_exec.mcp';\nimport toolComputerState from '../src/extensions/workspaces/sessions/(backend)/tool/computer_state.mcp';\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const mcp = defineMcpPlugin({\n name: '@agimon-ai/doompi-computer-use',\n session: (context) => ({\n get tools(): DoomMcpSessionPlugin['tools'] { return [via({ name: 'computer_action' }, at(toolComputerAction, context)), via({ name: 'computer_exec' }, at(toolComputerExec, context)), via({ name: 'computer_state' }, at(toolComputerState, context))]; },\n }) satisfies DoomMcpSessionPlugin,\n});\n\nexport default mcp;\n"],"mappings":";;;;;;;ACMA,MAAa,iCAAiC;AAE9C,MAAM,aAAa;AAkBnB,SAAgB,YAAY,SAA+B,MAAgC;CACzF,MAAM,UAAU,QAAQ,SAAS,IAAoB,8BAA8B;CACnF,MAAM,OAAO,SAAS,IAAI,IAAI;CAC9B,IAAI,CAAC,QAAQ,CAAC,SAAS,MAAM,IAAI,MAAM,qCAAqC,MAAM;CAClF,OAAO;EACL,GAAG;EACH,QAAQ,YAAY,YAAY,QAAQ,UAAU;GAEhD,IAAI,EADgB,QAAQ,UAAU,KAAK,CAAC,CAAC,QAAQ,iBAAiB,CAAC,EAAA,CACtD,SAAA,cAA6B,GAAG;IAC/C,MAAM,gBAAgB,CAAC,GAAG,QAAQ,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI;IAC3D,MAAM,IAAI,MAAM,GAAG,WAAW,oCAAoC,WAAW,UAAU,cAAc,EAAE;GACzG;GACA,MAAM,kBAAkB,YAAY,IAAI,CAAC,QAAQ,QAAQ,UAAU,QAAQ,MAAM,CAAC;GAClF,OAAO,KAAK,QAAQ,YAAY,YAAY,iBAAiB,UAAU,QAAQ,SAAS;EAC1F;CACF;AACF;;;ACtCA,IAAA,+BAAA,GAAeA,iCAAAA,cAAAA,EAAe,YAAkC,YAAY,SAAS,iBAAiB,CAAC;;;ACAvG,IAAA,6BAAA,GAAeC,iCAAAA,cAAAA,EAAe,YAAkC,YAAY,SAAS,eAAe,CAAC;;;ACArG,IAAA,8BAAA,GAAeC,iCAAAA,cAAAA,EAAe,YAAkC,YAAY,SAAS,gBAAgB,CAAC;;;ACItG,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,OAAA,GAAMC,iCAAAA,gBAAAA,CAAgB;CACjC,MAAM;CACN,UAAU,aAAa,EACrB,IAAI,QAAuC;EAAE,OAAO;GAAC,IAAI,EAAE,MAAM,kBAAkB,GAAG,GAAGC,6BAAoB,OAAO,CAAC;GAAG,IAAI,EAAE,MAAM,gBAAgB,GAAG,GAAGC,2BAAkB,OAAO,CAAC;GAAG,IAAI,EAAE,MAAM,iBAAiB,GAAG,GAAGC,4BAAmB,OAAO,CAAC;EAAC;CAAG,EAC3P;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.cts","names":[],"sources":["../../generated/mcp.ts"],"mappings":";qBAYa,gDAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.mts","names":[],"sources":["../../generated/mcp.ts"],"mappings":";qBAYa,gDAAG"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { defineMcpPlugin, defineMcpTool } from "@agimon-ai/doompi-core/mcp-facet";
|
|
2
|
+
//#endregion
|
|
3
|
+
//#region src/services/mcpTools/index.ts
|
|
4
|
+
const COMPUTER_USE_MCP_TOOLS_SERVICE = "doom/computer-use-mcp-tools";
|
|
5
|
+
const MODE_LABEL = "Computer Use";
|
|
6
|
+
function bindMcpTool(context, name) {
|
|
7
|
+
const catalog = context.services.get(COMPUTER_USE_MCP_TOOLS_SERVICE);
|
|
8
|
+
const tool = catalog?.get(name);
|
|
9
|
+
if (!tool || !catalog) throw new Error(`Computer use tool is unavailable: ${name}`);
|
|
10
|
+
return {
|
|
11
|
+
...tool,
|
|
12
|
+
execute(toolCallId, parameters, signal, onUpdate) {
|
|
13
|
+
if (!(context.selection.read().state?.["minor-mode"] ?? []).includes("computer-use")) {
|
|
14
|
+
const inactiveTools = [...catalog.names()].sort().join(", ");
|
|
15
|
+
throw new Error(`${MODE_LABEL} minor mode is inactive. Inactive ${MODE_LABEL} tools: ${inactiveTools}.`);
|
|
16
|
+
}
|
|
17
|
+
const executionSignal = AbortSignal.any([context.signal, signal ?? context.signal]);
|
|
18
|
+
return tool.execute(toolCallId, parameters, executionSignal, onUpdate, context.execution);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
//#region src/extensions/workspaces/sessions/(backend)/tool/computer_action.mcp.ts
|
|
24
|
+
var computer_action_mcp_default = defineMcpTool((context) => bindMcpTool(context, "computer_action"));
|
|
25
|
+
//#endregion
|
|
26
|
+
//#region src/extensions/workspaces/sessions/(backend)/tool/computer_exec.mcp.ts
|
|
27
|
+
var computer_exec_mcp_default = defineMcpTool((context) => bindMcpTool(context, "computer_exec"));
|
|
28
|
+
//#endregion
|
|
29
|
+
//#region src/extensions/workspaces/sessions/(backend)/tool/computer_state.mcp.ts
|
|
30
|
+
var computer_state_mcp_default = defineMcpTool((context) => bindMcpTool(context, "computer_state"));
|
|
31
|
+
//#endregion
|
|
32
|
+
//#region generated/mcp.ts
|
|
33
|
+
const at = (value, context) => typeof value === "function" ? value(context) : value;
|
|
34
|
+
const via = (identity, value) => ({
|
|
35
|
+
...identity,
|
|
36
|
+
...value
|
|
37
|
+
});
|
|
38
|
+
const mcp = defineMcpPlugin({
|
|
39
|
+
name: "@agimon-ai/doompi-computer-use",
|
|
40
|
+
session: (context) => ({ get tools() {
|
|
41
|
+
return [
|
|
42
|
+
via({ name: "computer_action" }, at(computer_action_mcp_default, context)),
|
|
43
|
+
via({ name: "computer_exec" }, at(computer_exec_mcp_default, context)),
|
|
44
|
+
via({ name: "computer_state" }, at(computer_state_mcp_default, context))
|
|
45
|
+
];
|
|
46
|
+
} })
|
|
47
|
+
});
|
|
48
|
+
//#endregion
|
|
49
|
+
export { mcp as default, mcp };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=mcp.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.mjs","names":["toolComputerAction","toolComputerExec","toolComputerState"],"sources":["../../src/types/computerUseApi.ts","../../src/services/mcpTools/index.ts","../../src/extensions/workspaces/sessions/(backend)/tool/computer_action.mcp.ts","../../src/extensions/workspaces/sessions/(backend)/tool/computer_exec.mcp.ts","../../src/extensions/workspaces/sessions/(backend)/tool/computer_state.mcp.ts","../../generated/mcp.ts"],"sourcesContent":["import type { DoomApiCaller } from '@agimon-ai/doompi-core/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 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\n/**\n * Every path this API answers on, below its mount.\n *\n * The typed route table in `./apiRoutes` is built from this, the dispatcher\n * reads that table, and the hub channel addresses the broker with these same\n * strings, so a route cannot move on one side alone.\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 readonly failure?: { readonly code: string; readonly message: 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","import type { DoomHeadlessTool } from '@agimon-ai/doompi-core/headless';\nimport type { DoomMcpPluginContext } from '@agimon-ai/doompi-core/mcp-facet';\nimport type { Context } from '@deepseek-ai/cordis';\n\nimport { COMPUTER_USE_MODE_ID } from '../../types/computerUseApi';\n\nexport const COMPUTER_USE_MCP_TOOLS_SERVICE = 'doom/computer-use-mcp-tools';\n\nconst MODE_LABEL = 'Computer Use';\n\nexport interface McpToolCatalog {\n get(name: string): DoomHeadlessTool | undefined;\n names(): readonly string[];\n}\n\nexport function mountMcpTools(tools: readonly DoomHeadlessTool[]) {\n return (context: Context): void => {\n context.plugin((providerContext) => {\n providerContext.provide(COMPUTER_USE_MCP_TOOLS_SERVICE, {\n get: (name) => tools.find((tool) => tool.name === name),\n names: () => tools.map((tool) => tool.name),\n } satisfies McpToolCatalog);\n });\n };\n}\n\nexport function bindMcpTool(context: DoomMcpPluginContext, name: string): DoomHeadlessTool {\n const catalog = context.services.get<McpToolCatalog>(COMPUTER_USE_MCP_TOOLS_SERVICE);\n const tool = catalog?.get(name);\n if (!tool || !catalog) throw new Error(`Computer use tool is unavailable: ${name}`);\n return {\n ...tool,\n execute(toolCallId, parameters, signal, onUpdate) {\n const activeModes = context.selection.read().state?.['minor-mode'] ?? [];\n if (!activeModes.includes(COMPUTER_USE_MODE_ID)) {\n const inactiveTools = [...catalog.names()].sort().join(', ');\n throw new Error(`${MODE_LABEL} minor mode is inactive. Inactive ${MODE_LABEL} tools: ${inactiveTools}.`);\n }\n const executionSignal = AbortSignal.any([context.signal, signal ?? context.signal]);\n return tool.execute(toolCallId, parameters, executionSignal, onUpdate, context.execution);\n },\n };\n}\n","import { defineMcpTool, type DoomMcpPluginContext } from '@agimon-ai/doompi-core/mcp-facet';\n\nimport { bindMcpTool } from '../../../../../services/mcpTools';\n\nexport default defineMcpTool((context: DoomMcpPluginContext) => bindMcpTool(context, 'computer_action'));\n","import { defineMcpTool, type DoomMcpPluginContext } from '@agimon-ai/doompi-core/mcp-facet';\n\nimport { bindMcpTool } from '../../../../../services/mcpTools';\n\nexport default defineMcpTool((context: DoomMcpPluginContext) => bindMcpTool(context, 'computer_exec'));\n","import { defineMcpTool, type DoomMcpPluginContext } from '@agimon-ai/doompi-core/mcp-facet';\n\nimport { bindMcpTool } from '../../../../../services/mcpTools';\n\nexport default defineMcpTool((context: DoomMcpPluginContext) => bindMcpTool(context, 'computer_state'));\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineMcpPlugin, type DoomMcpSessionPlugin } from '@agimon-ai/doompi-core/mcp-facet';\n\nimport toolComputerAction from '../src/extensions/workspaces/sessions/(backend)/tool/computer_action.mcp';\nimport toolComputerExec from '../src/extensions/workspaces/sessions/(backend)/tool/computer_exec.mcp';\nimport toolComputerState from '../src/extensions/workspaces/sessions/(backend)/tool/computer_state.mcp';\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const mcp = defineMcpPlugin({\n name: '@agimon-ai/doompi-computer-use',\n session: (context) => ({\n get tools(): DoomMcpSessionPlugin['tools'] { return [via({ name: 'computer_action' }, at(toolComputerAction, context)), via({ name: 'computer_exec' }, at(toolComputerExec, context)), via({ name: 'computer_state' }, at(toolComputerState, context))]; },\n }) satisfies DoomMcpSessionPlugin,\n});\n\nexport default mcp;\n"],"mappings":";;;ACMA,MAAa,iCAAiC;AAE9C,MAAM,aAAa;AAkBnB,SAAgB,YAAY,SAA+B,MAAgC;CACzF,MAAM,UAAU,QAAQ,SAAS,IAAoB,8BAA8B;CACnF,MAAM,OAAO,SAAS,IAAI,IAAI;CAC9B,IAAI,CAAC,QAAQ,CAAC,SAAS,MAAM,IAAI,MAAM,qCAAqC,MAAM;CAClF,OAAO;EACL,GAAG;EACH,QAAQ,YAAY,YAAY,QAAQ,UAAU;GAEhD,IAAI,EADgB,QAAQ,UAAU,KAAK,CAAC,CAAC,QAAQ,iBAAiB,CAAC,EAAA,CACtD,SAAA,cAA6B,GAAG;IAC/C,MAAM,gBAAgB,CAAC,GAAG,QAAQ,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI;IAC3D,MAAM,IAAI,MAAM,GAAG,WAAW,oCAAoC,WAAW,UAAU,cAAc,EAAE;GACzG;GACA,MAAM,kBAAkB,YAAY,IAAI,CAAC,QAAQ,QAAQ,UAAU,QAAQ,MAAM,CAAC;GAClF,OAAO,KAAK,QAAQ,YAAY,YAAY,iBAAiB,UAAU,QAAQ,SAAS;EAC1F;CACF;AACF;;;ACtCA,IAAA,8BAAe,eAAe,YAAkC,YAAY,SAAS,iBAAiB,CAAC;;;ACAvG,IAAA,4BAAe,eAAe,YAAkC,YAAY,SAAS,eAAe,CAAC;;;ACArG,IAAA,6BAAe,eAAe,YAAkC,YAAY,SAAS,gBAAgB,CAAC;;;ACItG,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,MAAM,gBAAgB;CACjC,MAAM;CACN,UAAU,aAAa,EACrB,IAAI,QAAuC;EAAE,OAAO;GAAC,IAAI,EAAE,MAAM,kBAAkB,GAAG,GAAGA,6BAAoB,OAAO,CAAC;GAAG,IAAI,EAAE,MAAM,gBAAgB,GAAG,GAAGC,2BAAkB,OAAO,CAAC;GAAG,IAAI,EAAE,MAAM,iBAAiB,GAAG,GAAGC,4BAAmB,OAAO,CAAC;EAAC;CAAG,EAC3P;AACF,CAAC"}
|
package/dist/extensions/pi.cjs
CHANGED
|
@@ -1 +1,51 @@
|
|
|
1
|
-
Object.defineProperties(exports,{
|
|
1
|
+
Object.defineProperties(exports, {
|
|
2
|
+
__esModule: { value: true },
|
|
3
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
+
});
|
|
5
|
+
const require_root_cli = require("../src/extensions/workspaces/sessions/(backend)/root.cli.cjs");
|
|
6
|
+
const require_computer_use_cli = require("../src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.cjs");
|
|
7
|
+
const require_before_agent_start_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs");
|
|
8
|
+
const require_session_start_cli = require("../src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs");
|
|
9
|
+
const require_computer_use_cli$1 = require("../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.cjs");
|
|
10
|
+
const require_00_computer_state_cli = require("../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.cjs");
|
|
11
|
+
const require_10_computer_action_cli = require("../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.cjs");
|
|
12
|
+
const require_20_computer_exec_cli = require("../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.cjs");
|
|
13
|
+
let _agimon_ai_doompi_core_pi_extension = require("@agimon-ai/doompi-core/pi-extension");
|
|
14
|
+
let _agimon_ai_doompi_core_extension_file = require("@agimon-ai/doompi-core/extension-file");
|
|
15
|
+
//#region generated/pi.ts
|
|
16
|
+
const at = (value, context) => typeof value === "function" ? value(context) : value;
|
|
17
|
+
const via = (identity, value) => ({
|
|
18
|
+
...identity,
|
|
19
|
+
...value
|
|
20
|
+
});
|
|
21
|
+
const extension = (0, _agimon_ai_doompi_core_pi_extension.definePiExtension)("@agimon-ai/doompi-computer-use", async (context) => {
|
|
22
|
+
const scopeSession = await require_root_cli.default(context);
|
|
23
|
+
const contextSession = {
|
|
24
|
+
...context,
|
|
25
|
+
root: scopeSession.value
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
...(0, _agimon_ai_doompi_core_extension_file.composeRootHooks)(scopeSession),
|
|
29
|
+
get commands() {
|
|
30
|
+
return [at(require_computer_use_cli.default, contextSession)];
|
|
31
|
+
},
|
|
32
|
+
events: {
|
|
33
|
+
before_agent_start: at(require_before_agent_start_cli.default, contextSession),
|
|
34
|
+
session_start: at(require_session_start_cli.default, contextSession)
|
|
35
|
+
},
|
|
36
|
+
get toolRestrictions() {
|
|
37
|
+
return [at(require_computer_use_cli$1.default, contextSession)];
|
|
38
|
+
},
|
|
39
|
+
...(0, _agimon_ai_doompi_core_pi_extension.piToolContributions)("@agimon-ai/doompi-computer-use", [
|
|
40
|
+
via({ name: "00_computer_state" }, at(require_00_computer_state_cli.default, contextSession)),
|
|
41
|
+
via({ name: "10_computer_action" }, at(require_10_computer_action_cli.default, contextSession)),
|
|
42
|
+
via({ name: "20_computer_exec" }, at(require_20_computer_exec_cli.default, contextSession))
|
|
43
|
+
]),
|
|
44
|
+
services: [...scopeSession.services ?? []]
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
//#endregion
|
|
48
|
+
exports.default = extension;
|
|
49
|
+
exports.extension = extension;
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=pi.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi.cjs","names":["definePiExtension","rootSession","composeRootHooks","commandComputerUse","hookBeforeAgentStart","hookSessionStart","toolRestrictionComputerUse","piToolContributions","tool00ComputerState","tool10ComputerAction","tool20ComputerExec"],"sources":["../../generated/pi.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { definePiExtension, piToolContributions, type PiPluginContext, type PiPluginContributions } from '@agimon-ai/doompi-core/pi-extension';\nimport { composeRootHooks } from '@agimon-ai/doompi-core/extension-file';\n\nimport rootSession from '../src/extensions/workspaces/sessions/(backend)/root.cli';\nimport commandComputerUse from '../src/extensions/workspaces/sessions/(backend)/command/computer-use.cli';\nimport hookBeforeAgentStart from '../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli';\nimport hookSessionStart from '../src/extensions/workspaces/sessions/(backend)/hook/session-start.cli';\nimport toolRestrictionComputerUse from '../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli';\nimport tool00ComputerState from '../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli';\nimport tool10ComputerAction from '../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli';\nimport tool20ComputerExec from '../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof rootSession> | OptionsOf<typeof commandComputerUse> | OptionsOf<typeof hookBeforeAgentStart> | OptionsOf<typeof hookSessionStart> | OptionsOf<typeof toolRestrictionComputerUse> | OptionsOf<typeof tool00ComputerState> | OptionsOf<typeof tool10ComputerAction> | OptionsOf<typeof tool20ComputerExec>, undefined>;\ntype Intersect<Union> =\n (Union extends unknown ? (value: Union) => void : never) extends (value: infer Value) => void ? Value : never;\ntype ExtensionOptions = [InferredOptions] extends [never] ? undefined : Intersect<InferredOptions>;\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const extension = definePiExtension<ExtensionOptions>('@agimon-ai/doompi-computer-use', async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n get commands(): PiPluginContributions['commands'] { return [at(commandComputerUse, contextSession)]; },\n events: {\n before_agent_start: at(hookBeforeAgentStart, contextSession) as NonNullable<PiPluginContributions['events']>['before_agent_start'],\n session_start: at(hookSessionStart, contextSession) as NonNullable<PiPluginContributions['events']>['session_start'],\n },\n get toolRestrictions(): PiPluginContributions['toolRestrictions'] { return [at(toolRestrictionComputerUse, contextSession)]; },\n ...piToolContributions('@agimon-ai/doompi-computer-use', [via({ name: '00_computer_state' }, at(tool00ComputerState, contextSession)), via({ name: '10_computer_action' }, at(tool10ComputerAction, contextSession)), via({ name: '20_computer_exec' }, at(tool20ComputerExec, contextSession))]),\n services: [...(scopeSession.services ?? [])],\n };\n});\n\nexport default extension;\n"],"mappings":";;;;;;;;;;;;;;;AAoBA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,aAAA,GAAYA,oCAAAA,kBAAAA,CAAoC,kCAAkC,OAAO,YAAY;CAChH,MAAM,eAAe,MAAMC,iBAAAA,QAAY,OAAO;CAC9C,MAAM,iBAAiB;EAAE,GAAG;EAAS,MAAM,aAAa;CAAM;CAC9D,OAAO;EACL,IAAA,GAAGC,sCAAAA,iBAAAA,CAAiB,YAAY;EAChC,IAAI,WAA8C;GAAE,OAAO,CAAC,GAAGC,yBAAAA,SAAoB,cAAc,CAAC;EAAG;EACrG,QAAQ;GACN,oBAAoB,GAAGC,+BAAAA,SAAsB,cAAc;GAC3D,eAAe,GAAGC,0BAAAA,SAAkB,cAAc;EACpD;EACA,IAAI,mBAA8D;GAAE,OAAO,CAAC,GAAGC,2BAAAA,SAA4B,cAAc,CAAC;EAAG;EAC7H,IAAA,GAAGC,oCAAAA,oBAAAA,CAAoB,kCAAkC;GAAC,IAAI,EAAE,MAAM,oBAAoB,GAAG,GAAGC,8BAAAA,SAAqB,cAAc,CAAC;GAAG,IAAI,EAAE,MAAM,qBAAqB,GAAG,GAAGC,+BAAAA,SAAsB,cAAc,CAAC;GAAG,IAAI,EAAE,MAAM,mBAAmB,GAAG,GAAGC,6BAAAA,SAAoB,cAAc,CAAC;EAAC,CAAC;EAChS,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;CAC7C;AACF,CAAC"}
|
package/dist/extensions/pi.d.cts
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { ComputerUseExtensionDependencies } from "../src/types/extension.cjs";
|
|
2
|
+
import "../index.cjs";
|
|
3
|
+
//#region generated/pi.d.ts
|
|
4
|
+
export declare const extension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<ComputerUseExtensionDependencies>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { extension as default };
|
|
7
|
+
//# sourceMappingURL=pi.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi.d.cts","names":[],"sources":["../../generated/pi.ts"],"mappings":";;;qBAwBa,iEAAS,mBAAT"}
|
package/dist/extensions/pi.d.mts
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { ComputerUseExtensionDependencies } from "../src/types/extension.mjs";
|
|
2
|
+
import "../index.mjs";
|
|
3
|
+
//#region generated/pi.d.ts
|
|
4
|
+
export declare const extension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<ComputerUseExtensionDependencies>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { extension as default };
|
|
7
|
+
//# sourceMappingURL=pi.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi.d.mts","names":[],"sources":["../../generated/pi.ts"],"mappings":";;;qBAwBa,iEAAS,mBAAT"}
|
package/dist/extensions/pi.mjs
CHANGED
|
@@ -1 +1,46 @@
|
|
|
1
|
-
import
|
|
1
|
+
import root_cli_default from "../src/extensions/workspaces/sessions/(backend)/root.cli.mjs";
|
|
2
|
+
import computer_use_cli_default from "../src/extensions/workspaces/sessions/(backend)/command/computer-use.cli.mjs";
|
|
3
|
+
import before_agent_start_cli_default from "../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.mjs";
|
|
4
|
+
import session_start_cli_default from "../src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs";
|
|
5
|
+
import computer_use_cli_default$1 from "../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli.mjs";
|
|
6
|
+
import _00_computer_state_cli_default from "../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli.mjs";
|
|
7
|
+
import _10_computer_action_cli_default from "../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli.mjs";
|
|
8
|
+
import _20_computer_exec_cli_default from "../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli.mjs";
|
|
9
|
+
import { definePiExtension, piToolContributions } from "@agimon-ai/doompi-core/pi-extension";
|
|
10
|
+
import { composeRootHooks } from "@agimon-ai/doompi-core/extension-file";
|
|
11
|
+
//#region generated/pi.ts
|
|
12
|
+
const at = (value, context) => typeof value === "function" ? value(context) : value;
|
|
13
|
+
const via = (identity, value) => ({
|
|
14
|
+
...identity,
|
|
15
|
+
...value
|
|
16
|
+
});
|
|
17
|
+
const extension = definePiExtension("@agimon-ai/doompi-computer-use", async (context) => {
|
|
18
|
+
const scopeSession = await root_cli_default(context);
|
|
19
|
+
const contextSession = {
|
|
20
|
+
...context,
|
|
21
|
+
root: scopeSession.value
|
|
22
|
+
};
|
|
23
|
+
return {
|
|
24
|
+
...composeRootHooks(scopeSession),
|
|
25
|
+
get commands() {
|
|
26
|
+
return [at(computer_use_cli_default, contextSession)];
|
|
27
|
+
},
|
|
28
|
+
events: {
|
|
29
|
+
before_agent_start: at(before_agent_start_cli_default, contextSession),
|
|
30
|
+
session_start: at(session_start_cli_default, contextSession)
|
|
31
|
+
},
|
|
32
|
+
get toolRestrictions() {
|
|
33
|
+
return [at(computer_use_cli_default$1, contextSession)];
|
|
34
|
+
},
|
|
35
|
+
...piToolContributions("@agimon-ai/doompi-computer-use", [
|
|
36
|
+
via({ name: "00_computer_state" }, at(_00_computer_state_cli_default, contextSession)),
|
|
37
|
+
via({ name: "10_computer_action" }, at(_10_computer_action_cli_default, contextSession)),
|
|
38
|
+
via({ name: "20_computer_exec" }, at(_20_computer_exec_cli_default, contextSession))
|
|
39
|
+
]),
|
|
40
|
+
services: [...scopeSession.services ?? []]
|
|
41
|
+
};
|
|
42
|
+
});
|
|
43
|
+
//#endregion
|
|
44
|
+
export { extension as default, extension };
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=pi.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi.mjs","names":["rootSession","commandComputerUse","hookBeforeAgentStart","hookSessionStart","toolRestrictionComputerUse","tool00ComputerState","tool10ComputerAction","tool20ComputerExec"],"sources":["../../generated/pi.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { definePiExtension, piToolContributions, type PiPluginContext, type PiPluginContributions } from '@agimon-ai/doompi-core/pi-extension';\nimport { composeRootHooks } from '@agimon-ai/doompi-core/extension-file';\n\nimport rootSession from '../src/extensions/workspaces/sessions/(backend)/root.cli';\nimport commandComputerUse from '../src/extensions/workspaces/sessions/(backend)/command/computer-use.cli';\nimport hookBeforeAgentStart from '../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli';\nimport hookSessionStart from '../src/extensions/workspaces/sessions/(backend)/hook/session-start.cli';\nimport toolRestrictionComputerUse from '../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.cli';\nimport tool00ComputerState from '../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.cli';\nimport tool10ComputerAction from '../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.cli';\nimport tool20ComputerExec from '../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof rootSession> | OptionsOf<typeof commandComputerUse> | OptionsOf<typeof hookBeforeAgentStart> | OptionsOf<typeof hookSessionStart> | OptionsOf<typeof toolRestrictionComputerUse> | OptionsOf<typeof tool00ComputerState> | OptionsOf<typeof tool10ComputerAction> | OptionsOf<typeof tool20ComputerExec>, undefined>;\ntype Intersect<Union> =\n (Union extends unknown ? (value: Union) => void : never) extends (value: infer Value) => void ? Value : never;\ntype ExtensionOptions = [InferredOptions] extends [never] ? undefined : Intersect<InferredOptions>;\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const extension = definePiExtension<ExtensionOptions>('@agimon-ai/doompi-computer-use', async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n get commands(): PiPluginContributions['commands'] { return [at(commandComputerUse, contextSession)]; },\n events: {\n before_agent_start: at(hookBeforeAgentStart, contextSession) as NonNullable<PiPluginContributions['events']>['before_agent_start'],\n session_start: at(hookSessionStart, contextSession) as NonNullable<PiPluginContributions['events']>['session_start'],\n },\n get toolRestrictions(): PiPluginContributions['toolRestrictions'] { return [at(toolRestrictionComputerUse, contextSession)]; },\n ...piToolContributions('@agimon-ai/doompi-computer-use', [via({ name: '00_computer_state' }, at(tool00ComputerState, contextSession)), via({ name: '10_computer_action' }, at(tool10ComputerAction, contextSession)), via({ name: '20_computer_exec' }, at(tool20ComputerExec, contextSession))]),\n services: [...(scopeSession.services ?? [])],\n };\n});\n\nexport default extension;\n"],"mappings":";;;;;;;;;;;AAoBA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,YAAY,kBAAoC,kCAAkC,OAAO,YAAY;CAChH,MAAM,eAAe,MAAMA,iBAAY,OAAO;CAC9C,MAAM,iBAAiB;EAAE,GAAG;EAAS,MAAM,aAAa;CAAM;CAC9D,OAAO;EACL,GAAG,iBAAiB,YAAY;EAChC,IAAI,WAA8C;GAAE,OAAO,CAAC,GAAGC,0BAAoB,cAAc,CAAC;EAAG;EACrG,QAAQ;GACN,oBAAoB,GAAGC,gCAAsB,cAAc;GAC3D,eAAe,GAAGC,2BAAkB,cAAc;EACpD;EACA,IAAI,mBAA8D;GAAE,OAAO,CAAC,GAAGC,4BAA4B,cAAc,CAAC;EAAG;EAC7H,GAAG,oBAAoB,kCAAkC;GAAC,IAAI,EAAE,MAAM,oBAAoB,GAAG,GAAGC,gCAAqB,cAAc,CAAC;GAAG,IAAI,EAAE,MAAM,qBAAqB,GAAG,GAAGC,iCAAsB,cAAc,CAAC;GAAG,IAAI,EAAE,MAAM,mBAAmB,GAAG,GAAGC,+BAAoB,cAAc,CAAC;EAAC,CAAC;EAChS,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;CAC7C;AACF,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
Object.defineProperties(exports, {
|
|
2
|
+
__esModule: { value: true },
|
|
3
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
+
});
|
|
5
|
+
const require_root_server = require("../src/extensions/workspaces/sessions/(backend)/root.server.cjs");
|
|
6
|
+
const require_computer_use_server = require("../src/extensions/(backend)/channel/computer-use.server.cjs");
|
|
7
|
+
const require_route_server = require("../src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.cjs");
|
|
8
|
+
const require_computer_use_server$1 = require("../src/extensions/workspaces/sessions/(backend)/command/computer-use.server.cjs");
|
|
9
|
+
const require_before_agent_start_server = require("../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.cjs");
|
|
10
|
+
const require_session_shutdown_server = require("../src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs");
|
|
11
|
+
const require_computer_use_server$2 = require("../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.cjs");
|
|
12
|
+
const require_00_computer_state_server = require("../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.cjs");
|
|
13
|
+
const require_10_computer_action_server = require("../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.cjs");
|
|
14
|
+
const require_20_computer_exec_server = require("../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.cjs");
|
|
15
|
+
let _agimon_ai_doompi_core_extension_file = require("@agimon-ai/doompi-core/extension-file");
|
|
16
|
+
let _agimon_ai_doompi_core_server_facet = require("@agimon-ai/doompi-core/server-facet");
|
|
17
|
+
//#region generated/server.ts
|
|
18
|
+
const at = (value, context) => typeof value === "function" ? value(context) : value;
|
|
19
|
+
const via = (identity, value) => ({
|
|
20
|
+
...identity,
|
|
21
|
+
...value
|
|
22
|
+
});
|
|
23
|
+
const facet = (0, _agimon_ai_doompi_core_server_facet.defineServerPlugin)({
|
|
24
|
+
name: "@agimon-ai/doompi-computer-use",
|
|
25
|
+
global: () => ({ get channels() {
|
|
26
|
+
return [() => via({ frameType: "computer_use" }, require_computer_use_server.default())];
|
|
27
|
+
} }),
|
|
28
|
+
workspace: () => ({ get channels() {
|
|
29
|
+
return [() => via({ frameType: "computer_use" }, require_computer_use_server.default())];
|
|
30
|
+
} }),
|
|
31
|
+
session: async (context) => {
|
|
32
|
+
const scopeSession = await require_root_server.default(context);
|
|
33
|
+
const contextSession = {
|
|
34
|
+
...context,
|
|
35
|
+
root: scopeSession.value
|
|
36
|
+
};
|
|
37
|
+
return {
|
|
38
|
+
...(0, _agimon_ai_doompi_core_extension_file.composeRootHooks)(scopeSession),
|
|
39
|
+
get api() {
|
|
40
|
+
return [at(require_route_server.default, contextSession)];
|
|
41
|
+
},
|
|
42
|
+
get channels() {
|
|
43
|
+
return [() => via({ frameType: "computer_use" }, require_computer_use_server.default())];
|
|
44
|
+
},
|
|
45
|
+
get commands() {
|
|
46
|
+
return [via({ name: "computer-use" }, at(require_computer_use_server$1.default, contextSession))];
|
|
47
|
+
},
|
|
48
|
+
get hooks() {
|
|
49
|
+
return [via({ event: "before_agent_start" }, at(require_before_agent_start_server.default, contextSession)), via({ event: "session_shutdown" }, at(require_session_shutdown_server.default, contextSession))];
|
|
50
|
+
},
|
|
51
|
+
get toolRestrictions() {
|
|
52
|
+
return [at(require_computer_use_server$2.default, contextSession)];
|
|
53
|
+
},
|
|
54
|
+
get tools() {
|
|
55
|
+
return [
|
|
56
|
+
via({ name: "00_computer_state" }, at(require_00_computer_state_server.default, contextSession)),
|
|
57
|
+
via({ name: "10_computer_action" }, at(require_10_computer_action_server.default, contextSession)),
|
|
58
|
+
via({ name: "20_computer_exec" }, at(require_20_computer_exec_server.default, contextSession))
|
|
59
|
+
];
|
|
60
|
+
},
|
|
61
|
+
services: [...scopeSession.services ?? []],
|
|
62
|
+
get activities() {
|
|
63
|
+
return [...scopeSession.activities ?? []];
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
//#endregion
|
|
69
|
+
exports.default = facet;
|
|
70
|
+
exports.facet = facet;
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=server.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.cjs","names":["defineServerPlugin","channelComputerUse","rootSession","composeRootHooks","apiRoute","commandComputerUse","hookBeforeAgentStart","hookSessionShutdown","toolRestrictionComputerUse","tool00ComputerState","tool10ComputerAction","tool20ComputerExec"],"sources":["../../generated/server.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineServerPlugin, type DoomServerSessionPlugin } from '@agimon-ai/doompi-core/server-facet';\nimport { composeRootHooks } from '@agimon-ai/doompi-core/extension-file';\n\nimport rootSession from '../src/extensions/workspaces/sessions/(backend)/root.server';\nimport channelComputerUse from '../src/extensions/(backend)/channel/computer-use.server';\nimport apiRoute from '../src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server';\nimport commandComputerUse from '../src/extensions/workspaces/sessions/(backend)/command/computer-use.server';\nimport hookBeforeAgentStart from '../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server';\nimport hookSessionShutdown from '../src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server';\nimport toolRestrictionComputerUse from '../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server';\nimport tool00ComputerState from '../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server';\nimport tool10ComputerAction from '../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server';\nimport tool20ComputerExec from '../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server';\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const facet = defineServerPlugin({\n name: '@agimon-ai/doompi-computer-use',\n global: () => ({\n get channels(): DoomServerSessionPlugin['channels'] { return [() => via({ frameType: 'computer_use' }, channelComputerUse())]; },\n }),\n workspace: () => ({\n get channels(): DoomServerSessionPlugin['channels'] { return [() => via({ frameType: 'computer_use' }, channelComputerUse())]; },\n }),\n session: async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n get api(): DoomServerSessionPlugin['api'] { return [at(apiRoute, contextSession)]; },\n get channels(): DoomServerSessionPlugin['channels'] { return [() => via({ frameType: 'computer_use' }, channelComputerUse())]; },\n get commands(): DoomServerSessionPlugin['commands'] { return [via({ name: 'computer-use' }, at(commandComputerUse, contextSession))]; },\n get hooks(): DoomServerSessionPlugin['hooks'] { return [via({ event: 'before_agent_start' }, at(hookBeforeAgentStart, contextSession)), via({ event: 'session_shutdown' }, at(hookSessionShutdown, contextSession))]; },\n get toolRestrictions(): DoomServerSessionPlugin['toolRestrictions'] { return [at(toolRestrictionComputerUse, contextSession)]; },\n get tools(): DoomServerSessionPlugin['tools'] { return [via({ name: '00_computer_state' }, at(tool00ComputerState, contextSession)), via({ name: '10_computer_action' }, at(tool10ComputerAction, contextSession)), via({ name: '20_computer_exec' }, at(tool20ComputerExec, contextSession))]; },\n services: [...(scopeSession.services ?? [])],\n get activities(): DoomServerSessionPlugin['activities'] { return [...(scopeSession.activities ?? [])]; },\n };\n },\n});\n\nexport default facet;\n"],"mappings":";;;;;;;;;;;;;;;;;AAgBA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,SAAA,GAAQA,oCAAAA,mBAAAA,CAAmB;CACtC,MAAM;CACN,eAAe,EACb,IAAI,WAAgD;EAAE,OAAO,OAAO,IAAI,EAAE,WAAW,eAAe,GAAGC,4BAAAA,QAAmB,CAAC,CAAC;CAAG,EACjI;CACA,kBAAkB,EAChB,IAAI,WAAgD;EAAE,OAAO,OAAO,IAAI,EAAE,WAAW,eAAe,GAAGA,4BAAAA,QAAmB,CAAC,CAAC;CAAG,EACjI;CACA,SAAS,OAAO,YAAY;EAC1B,MAAM,eAAe,MAAMC,oBAAAA,QAAY,OAAO;EAC9C,MAAM,iBAAiB;GAAE,GAAG;GAAS,MAAM,aAAa;EAAM;EAC9D,OAAO;GACL,IAAA,GAAGC,sCAAAA,iBAAAA,CAAiB,YAAY;GAChC,IAAI,MAAsC;IAAE,OAAO,CAAC,GAAGC,qBAAAA,SAAU,cAAc,CAAC;GAAG;GACnF,IAAI,WAAgD;IAAE,OAAO,OAAO,IAAI,EAAE,WAAW,eAAe,GAAGH,4BAAAA,QAAmB,CAAC,CAAC;GAAG;GAC/H,IAAI,WAAgD;IAAE,OAAO,CAAC,IAAI,EAAE,MAAM,eAAe,GAAG,GAAGI,8BAAAA,SAAoB,cAAc,CAAC,CAAC;GAAG;GACtI,IAAI,QAA0C;IAAE,OAAO,CAAC,IAAI,EAAE,OAAO,qBAAqB,GAAG,GAAGC,kCAAAA,SAAsB,cAAc,CAAC,GAAG,IAAI,EAAE,OAAO,mBAAmB,GAAG,GAAGC,gCAAAA,SAAqB,cAAc,CAAC,CAAC;GAAG;GACtN,IAAI,mBAAgE;IAAE,OAAO,CAAC,GAAGC,8BAAAA,SAA4B,cAAc,CAAC;GAAG;GAC/H,IAAI,QAA0C;IAAE,OAAO;KAAC,IAAI,EAAE,MAAM,oBAAoB,GAAG,GAAGC,iCAAAA,SAAqB,cAAc,CAAC;KAAG,IAAI,EAAE,MAAM,qBAAqB,GAAG,GAAGC,kCAAAA,SAAsB,cAAc,CAAC;KAAG,IAAI,EAAE,MAAM,mBAAmB,GAAG,GAAGC,gCAAAA,SAAoB,cAAc,CAAC;IAAC;GAAG;GAChS,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;GAC3C,IAAI,aAAoD;IAAE,OAAO,CAAC,GAAI,aAAa,cAAc,CAAC,CAAE;GAAG;EACzG;CACF;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.cts","names":[],"sources":["../../generated/server.ts"],"mappings":";qBAoBa,qDAAK"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.mts","names":[],"sources":["../../generated/server.ts"],"mappings":";qBAoBa,qDAAK"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import root_server_default from "../src/extensions/workspaces/sessions/(backend)/root.server.mjs";
|
|
2
|
+
import computer_use_server_default from "../src/extensions/(backend)/channel/computer-use.server.mjs";
|
|
3
|
+
import route_server_default from "../src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server.mjs";
|
|
4
|
+
import computer_use_server_default$1 from "../src/extensions/workspaces/sessions/(backend)/command/computer-use.server.mjs";
|
|
5
|
+
import before_agent_start_server_default from "../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.mjs";
|
|
6
|
+
import session_shutdown_server_default from "../src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs";
|
|
7
|
+
import computer_use_server_default$2 from "../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server.mjs";
|
|
8
|
+
import _00_computer_state_server_default from "../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server.mjs";
|
|
9
|
+
import _10_computer_action_server_default from "../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server.mjs";
|
|
10
|
+
import _20_computer_exec_server_default from "../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server.mjs";
|
|
11
|
+
import { composeRootHooks } from "@agimon-ai/doompi-core/extension-file";
|
|
12
|
+
import { defineServerPlugin } from "@agimon-ai/doompi-core/server-facet";
|
|
13
|
+
//#region generated/server.ts
|
|
14
|
+
const at = (value, context) => typeof value === "function" ? value(context) : value;
|
|
15
|
+
const via = (identity, value) => ({
|
|
16
|
+
...identity,
|
|
17
|
+
...value
|
|
18
|
+
});
|
|
19
|
+
const facet = defineServerPlugin({
|
|
20
|
+
name: "@agimon-ai/doompi-computer-use",
|
|
21
|
+
global: () => ({ get channels() {
|
|
22
|
+
return [() => via({ frameType: "computer_use" }, computer_use_server_default())];
|
|
23
|
+
} }),
|
|
24
|
+
workspace: () => ({ get channels() {
|
|
25
|
+
return [() => via({ frameType: "computer_use" }, computer_use_server_default())];
|
|
26
|
+
} }),
|
|
27
|
+
session: async (context) => {
|
|
28
|
+
const scopeSession = await root_server_default(context);
|
|
29
|
+
const contextSession = {
|
|
30
|
+
...context,
|
|
31
|
+
root: scopeSession.value
|
|
32
|
+
};
|
|
33
|
+
return {
|
|
34
|
+
...composeRootHooks(scopeSession),
|
|
35
|
+
get api() {
|
|
36
|
+
return [at(route_server_default, contextSession)];
|
|
37
|
+
},
|
|
38
|
+
get channels() {
|
|
39
|
+
return [() => via({ frameType: "computer_use" }, computer_use_server_default())];
|
|
40
|
+
},
|
|
41
|
+
get commands() {
|
|
42
|
+
return [via({ name: "computer-use" }, at(computer_use_server_default$1, contextSession))];
|
|
43
|
+
},
|
|
44
|
+
get hooks() {
|
|
45
|
+
return [via({ event: "before_agent_start" }, at(before_agent_start_server_default, contextSession)), via({ event: "session_shutdown" }, at(session_shutdown_server_default, contextSession))];
|
|
46
|
+
},
|
|
47
|
+
get toolRestrictions() {
|
|
48
|
+
return [at(computer_use_server_default$2, contextSession)];
|
|
49
|
+
},
|
|
50
|
+
get tools() {
|
|
51
|
+
return [
|
|
52
|
+
via({ name: "00_computer_state" }, at(_00_computer_state_server_default, contextSession)),
|
|
53
|
+
via({ name: "10_computer_action" }, at(_10_computer_action_server_default, contextSession)),
|
|
54
|
+
via({ name: "20_computer_exec" }, at(_20_computer_exec_server_default, contextSession))
|
|
55
|
+
];
|
|
56
|
+
},
|
|
57
|
+
services: [...scopeSession.services ?? []],
|
|
58
|
+
get activities() {
|
|
59
|
+
return [...scopeSession.activities ?? []];
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
//#endregion
|
|
65
|
+
export { facet as default, facet };
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=server.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.mjs","names":["channelComputerUse","rootSession","apiRoute","commandComputerUse","hookBeforeAgentStart","hookSessionShutdown","toolRestrictionComputerUse","tool00ComputerState","tool10ComputerAction","tool20ComputerExec"],"sources":["../../generated/server.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineServerPlugin, type DoomServerSessionPlugin } from '@agimon-ai/doompi-core/server-facet';\nimport { composeRootHooks } from '@agimon-ai/doompi-core/extension-file';\n\nimport rootSession from '../src/extensions/workspaces/sessions/(backend)/root.server';\nimport channelComputerUse from '../src/extensions/(backend)/channel/computer-use.server';\nimport apiRoute from '../src/extensions/workspaces/sessions/(backend)/api/computer-use/route.server';\nimport commandComputerUse from '../src/extensions/workspaces/sessions/(backend)/command/computer-use.server';\nimport hookBeforeAgentStart from '../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server';\nimport hookSessionShutdown from '../src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server';\nimport toolRestrictionComputerUse from '../src/extensions/workspaces/sessions/(backend)/tool-restriction/computer-use.server';\nimport tool00ComputerState from '../src/extensions/workspaces/sessions/(backend)/tool/00-computer-state.server';\nimport tool10ComputerAction from '../src/extensions/workspaces/sessions/(backend)/tool/10-computer-action.server';\nimport tool20ComputerExec from '../src/extensions/workspaces/sessions/(backend)/tool/20-computer-exec.server';\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const facet = defineServerPlugin({\n name: '@agimon-ai/doompi-computer-use',\n global: () => ({\n get channels(): DoomServerSessionPlugin['channels'] { return [() => via({ frameType: 'computer_use' }, channelComputerUse())]; },\n }),\n workspace: () => ({\n get channels(): DoomServerSessionPlugin['channels'] { return [() => via({ frameType: 'computer_use' }, channelComputerUse())]; },\n }),\n session: async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n get api(): DoomServerSessionPlugin['api'] { return [at(apiRoute, contextSession)]; },\n get channels(): DoomServerSessionPlugin['channels'] { return [() => via({ frameType: 'computer_use' }, channelComputerUse())]; },\n get commands(): DoomServerSessionPlugin['commands'] { return [via({ name: 'computer-use' }, at(commandComputerUse, contextSession))]; },\n get hooks(): DoomServerSessionPlugin['hooks'] { return [via({ event: 'before_agent_start' }, at(hookBeforeAgentStart, contextSession)), via({ event: 'session_shutdown' }, at(hookSessionShutdown, contextSession))]; },\n get toolRestrictions(): DoomServerSessionPlugin['toolRestrictions'] { return [at(toolRestrictionComputerUse, contextSession)]; },\n get tools(): DoomServerSessionPlugin['tools'] { return [via({ name: '00_computer_state' }, at(tool00ComputerState, contextSession)), via({ name: '10_computer_action' }, at(tool10ComputerAction, contextSession)), via({ name: '20_computer_exec' }, at(tool20ComputerExec, contextSession))]; },\n services: [...(scopeSession.services ?? [])],\n get activities(): DoomServerSessionPlugin['activities'] { return [...(scopeSession.activities ?? [])]; },\n };\n },\n});\n\nexport default facet;\n"],"mappings":";;;;;;;;;;;;;AAgBA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,QAAQ,mBAAmB;CACtC,MAAM;CACN,eAAe,EACb,IAAI,WAAgD;EAAE,OAAO,OAAO,IAAI,EAAE,WAAW,eAAe,GAAGA,4BAAmB,CAAC,CAAC;CAAG,EACjI;CACA,kBAAkB,EAChB,IAAI,WAAgD;EAAE,OAAO,OAAO,IAAI,EAAE,WAAW,eAAe,GAAGA,4BAAmB,CAAC,CAAC;CAAG,EACjI;CACA,SAAS,OAAO,YAAY;EAC1B,MAAM,eAAe,MAAMC,oBAAY,OAAO;EAC9C,MAAM,iBAAiB;GAAE,GAAG;GAAS,MAAM,aAAa;EAAM;EAC9D,OAAO;GACL,GAAG,iBAAiB,YAAY;GAChC,IAAI,MAAsC;IAAE,OAAO,CAAC,GAAGC,sBAAU,cAAc,CAAC;GAAG;GACnF,IAAI,WAAgD;IAAE,OAAO,OAAO,IAAI,EAAE,WAAW,eAAe,GAAGF,4BAAmB,CAAC,CAAC;GAAG;GAC/H,IAAI,WAAgD;IAAE,OAAO,CAAC,IAAI,EAAE,MAAM,eAAe,GAAG,GAAGG,+BAAoB,cAAc,CAAC,CAAC;GAAG;GACtI,IAAI,QAA0C;IAAE,OAAO,CAAC,IAAI,EAAE,OAAO,qBAAqB,GAAG,GAAGC,mCAAsB,cAAc,CAAC,GAAG,IAAI,EAAE,OAAO,mBAAmB,GAAG,GAAGC,iCAAqB,cAAc,CAAC,CAAC;GAAG;GACtN,IAAI,mBAAgE;IAAE,OAAO,CAAC,GAAGC,+BAA4B,cAAc,CAAC;GAAG;GAC/H,IAAI,QAA0C;IAAE,OAAO;KAAC,IAAI,EAAE,MAAM,oBAAoB,GAAG,GAAGC,mCAAqB,cAAc,CAAC;KAAG,IAAI,EAAE,MAAM,qBAAqB,GAAG,GAAGC,oCAAsB,cAAc,CAAC;KAAG,IAAI,EAAE,MAAM,mBAAmB,GAAG,GAAGC,kCAAoB,cAAc,CAAC;IAAC;GAAG;GAChS,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;GAC3C,IAAI,aAAoD;IAAE,OAAO,CAAC,GAAI,aAAa,cAAc,CAAC,CAAE;GAAG;EACzG;CACF;AACF,CAAC"}
|