@beeos-ai/device-agent 0.4.0
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/.pi/extensions/android-tools.ts +139 -0
- package/.pi/skills/.gitkeep +0 -0
- package/.pi/skills/ground-mobile-fallback/SKILL.md +50 -0
- package/LICENSE +201 -0
- package/dist/action/handler.d.ts +9 -0
- package/dist/action/handler.js +124 -0
- package/dist/action/handler.js.map +1 -0
- package/dist/adapters/agent-gateway-client.d.ts +256 -0
- package/dist/adapters/agent-gateway-client.js +332 -0
- package/dist/adapters/agent-gateway-client.js.map +1 -0
- package/dist/adapters/agentcore-inner-loop.d.ts +29 -0
- package/dist/adapters/agentcore-inner-loop.js +72 -0
- package/dist/adapters/agentcore-inner-loop.js.map +1 -0
- package/dist/adapters/agentcore-pi.d.ts +215 -0
- package/dist/adapters/agentcore-pi.js +464 -0
- package/dist/adapters/agentcore-pi.js.map +1 -0
- package/dist/adapters/agentcore-runner.d.ts +70 -0
- package/dist/adapters/agentcore-runner.js +255 -0
- package/dist/adapters/agentcore-runner.js.map +1 -0
- package/dist/adapters/device-android-adb.d.ts +41 -0
- package/dist/adapters/device-android-adb.js +279 -0
- package/dist/adapters/device-android-adb.js.map +1 -0
- package/dist/adapters/device-desktop.d.ts +37 -0
- package/dist/adapters/device-desktop.js +101 -0
- package/dist/adapters/device-desktop.js.map +1 -0
- package/dist/adapters/identity-file.d.ts +30 -0
- package/dist/adapters/identity-file.js +50 -0
- package/dist/adapters/identity-file.js.map +1 -0
- package/dist/adapters/transport-bridge-ws.d.ts +39 -0
- package/dist/adapters/transport-bridge-ws.js +49 -0
- package/dist/adapters/transport-bridge-ws.js.map +1 -0
- package/dist/adapters/vlm-inner-loop.d.ts +88 -0
- package/dist/adapters/vlm-inner-loop.js +199 -0
- package/dist/adapters/vlm-inner-loop.js.map +1 -0
- package/dist/agent-runtime/adapters/base.d.ts +145 -0
- package/dist/agent-runtime/adapters/base.js +29 -0
- package/dist/agent-runtime/adapters/base.js.map +1 -0
- package/dist/agent-runtime/adapters/index.d.ts +17 -0
- package/dist/agent-runtime/adapters/index.js +17 -0
- package/dist/agent-runtime/adapters/index.js.map +1 -0
- package/dist/agent-runtime/adapters/mock.d.ts +44 -0
- package/dist/agent-runtime/adapters/mock.js +54 -0
- package/dist/agent-runtime/adapters/mock.js.map +1 -0
- package/dist/agent-runtime/adapters/openai.d.ts +63 -0
- package/dist/agent-runtime/adapters/openai.js +302 -0
- package/dist/agent-runtime/adapters/openai.js.map +1 -0
- package/dist/agent-runtime/adapters/registry.d.ts +49 -0
- package/dist/agent-runtime/adapters/registry.js +129 -0
- package/dist/agent-runtime/adapters/registry.js.map +1 -0
- package/dist/agent-runtime/adapters/ui-tars.d.ts +13 -0
- package/dist/agent-runtime/adapters/ui-tars.js +22 -0
- package/dist/agent-runtime/adapters/ui-tars.js.map +1 -0
- package/dist/agent-runtime/agent-runner.d.ts +149 -0
- package/dist/agent-runtime/agent-runner.js +356 -0
- package/dist/agent-runtime/agent-runner.js.map +1 -0
- package/dist/agent-runtime/core.d.ts +170 -0
- package/dist/agent-runtime/core.js +624 -0
- package/dist/agent-runtime/core.js.map +1 -0
- package/dist/agent-runtime/index.d.ts +16 -0
- package/dist/agent-runtime/index.js +17 -0
- package/dist/agent-runtime/index.js.map +1 -0
- package/dist/agent-runtime/plan-executor.d.ts +118 -0
- package/dist/agent-runtime/plan-executor.js +501 -0
- package/dist/agent-runtime/plan-executor.js.map +1 -0
- package/dist/agent-runtime/planner/base.d.ts +128 -0
- package/dist/agent-runtime/planner/base.js +157 -0
- package/dist/agent-runtime/planner/base.js.map +1 -0
- package/dist/agent-runtime/planner/llm-planner.d.ts +58 -0
- package/dist/agent-runtime/planner/llm-planner.js +112 -0
- package/dist/agent-runtime/planner/llm-planner.js.map +1 -0
- package/dist/agent-runtime/planner/noop-planner.d.ts +13 -0
- package/dist/agent-runtime/planner/noop-planner.js +30 -0
- package/dist/agent-runtime/planner/noop-planner.js.map +1 -0
- package/dist/agent-runtime/planner/prompts.d.ts +33 -0
- package/dist/agent-runtime/planner/prompts.js +165 -0
- package/dist/agent-runtime/planner/prompts.js.map +1 -0
- package/dist/agent-runtime/reflection.d.ts +81 -0
- package/dist/agent-runtime/reflection.js +189 -0
- package/dist/agent-runtime/reflection.js.map +1 -0
- package/dist/agent-runtime/reflectors/action-reflector.d.ts +97 -0
- package/dist/agent-runtime/reflectors/action-reflector.js +233 -0
- package/dist/agent-runtime/reflectors/action-reflector.js.map +1 -0
- package/dist/agent-runtime/reflectors/policy.d.ts +53 -0
- package/dist/agent-runtime/reflectors/policy.js +106 -0
- package/dist/agent-runtime/reflectors/policy.js.map +1 -0
- package/dist/agent-runtime/reflectors/trajectory-reflector.d.ts +94 -0
- package/dist/agent-runtime/reflectors/trajectory-reflector.js +223 -0
- package/dist/agent-runtime/reflectors/trajectory-reflector.js.map +1 -0
- package/dist/agent-runtime/skills/embedding.d.ts +53 -0
- package/dist/agent-runtime/skills/embedding.js +134 -0
- package/dist/agent-runtime/skills/embedding.js.map +1 -0
- package/dist/agent-runtime/skills/fs-store.d.ts +88 -0
- package/dist/agent-runtime/skills/fs-store.js +483 -0
- package/dist/agent-runtime/skills/fs-store.js.map +1 -0
- package/dist/agent-runtime/skills/index.d.ts +10 -0
- package/dist/agent-runtime/skills/index.js +10 -0
- package/dist/agent-runtime/skills/index.js.map +1 -0
- package/dist/agent-runtime/skills/matcher-evolver.d.ts +88 -0
- package/dist/agent-runtime/skills/matcher-evolver.js +110 -0
- package/dist/agent-runtime/skills/matcher-evolver.js.map +1 -0
- package/dist/agent-runtime/skills/memory-store.d.ts +23 -0
- package/dist/agent-runtime/skills/memory-store.js +94 -0
- package/dist/agent-runtime/skills/memory-store.js.map +1 -0
- package/dist/agent-runtime/skills/normalise.d.ts +40 -0
- package/dist/agent-runtime/skills/normalise.js +152 -0
- package/dist/agent-runtime/skills/normalise.js.map +1 -0
- package/dist/agent-runtime/skills/replay.d.ts +46 -0
- package/dist/agent-runtime/skills/replay.js +106 -0
- package/dist/agent-runtime/skills/replay.js.map +1 -0
- package/dist/agent-runtime/skills/sqlite-store.d.ts +60 -0
- package/dist/agent-runtime/skills/sqlite-store.js +234 -0
- package/dist/agent-runtime/skills/sqlite-store.js.map +1 -0
- package/dist/agent-runtime/skills/types.d.ts +99 -0
- package/dist/agent-runtime/skills/types.js +14 -0
- package/dist/agent-runtime/skills/types.js.map +1 -0
- package/dist/agent.d.ts +110 -0
- package/dist/agent.js +162 -0
- package/dist/agent.js.map +1 -0
- package/dist/api.d.ts +27 -0
- package/dist/api.js +48 -0
- package/dist/api.js.map +1 -0
- package/dist/app/agent-host.d.ts +59 -0
- package/dist/app/agent-host.js +263 -0
- package/dist/app/agent-host.js.map +1 -0
- package/dist/app/device-manager.d.ts +28 -0
- package/dist/app/device-manager.js +64 -0
- package/dist/app/device-manager.js.map +1 -0
- package/dist/app/message-store.d.ts +55 -0
- package/dist/app/message-store.js +99 -0
- package/dist/app/message-store.js.map +1 -0
- package/dist/app/session-manager.d.ts +132 -0
- package/dist/app/session-manager.js +350 -0
- package/dist/app/session-manager.js.map +1 -0
- package/dist/bootstrap.d.ts +94 -0
- package/dist/bootstrap.js +459 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/chat.d.ts +16 -0
- package/dist/chat.js +175 -0
- package/dist/chat.js.map +1 -0
- package/dist/config/loader.d.ts +77 -0
- package/dist/config/loader.js +292 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +162 -0
- package/dist/config/schema.js +243 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/actions.d.ts +60 -0
- package/dist/core/actions.js +120 -0
- package/dist/core/actions.js.map +1 -0
- package/dist/core/errors.d.ts +8 -0
- package/dist/core/errors.js +9 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/screen.d.ts +7 -0
- package/dist/core/screen.js +8 -0
- package/dist/core/screen.js.map +1 -0
- package/dist/core/session.d.ts +42 -0
- package/dist/core/session.js +29 -0
- package/dist/core/session.js.map +1 -0
- package/dist/debug/dump-system-prompt.d.ts +1 -0
- package/dist/debug/dump-system-prompt.js +34 -0
- package/dist/debug/dump-system-prompt.js.map +1 -0
- package/dist/device/android.d.ts +25 -0
- package/dist/device/android.js +231 -0
- package/dist/device/android.js.map +1 -0
- package/dist/device/apps.d.ts +3 -0
- package/dist/device/apps.js +77 -0
- package/dist/device/apps.js.map +1 -0
- package/dist/device/base.d.ts +20 -0
- package/dist/device/base.js +2 -0
- package/dist/device/base.js.map +1 -0
- package/dist/device/ui-xml.d.ts +29 -0
- package/dist/device/ui-xml.js +194 -0
- package/dist/device/ui-xml.js.map +1 -0
- package/dist/fleet/adapters/process/node-process-manager.d.ts +157 -0
- package/dist/fleet/adapters/process/node-process-manager.js +664 -0
- package/dist/fleet/adapters/process/node-process-manager.js.map +1 -0
- package/dist/fleet/adapters/sources/local-adb.d.ts +105 -0
- package/dist/fleet/adapters/sources/local-adb.js +353 -0
- package/dist/fleet/adapters/sources/local-adb.js.map +1 -0
- package/dist/fleet/adapters/sources/remote-adb.d.ts +97 -0
- package/dist/fleet/adapters/sources/remote-adb.js +138 -0
- package/dist/fleet/adapters/sources/remote-adb.js.map +1 -0
- package/dist/fleet/adapters/state/beeos-cli-store.d.ts +72 -0
- package/dist/fleet/adapters/state/beeos-cli-store.js +250 -0
- package/dist/fleet/adapters/state/beeos-cli-store.js.map +1 -0
- package/dist/fleet/adapters/state/port-allocator.d.ts +43 -0
- package/dist/fleet/adapters/state/port-allocator.js +173 -0
- package/dist/fleet/adapters/state/port-allocator.js.map +1 -0
- package/dist/fleet/domain/device.d.ts +138 -0
- package/dist/fleet/domain/device.js +49 -0
- package/dist/fleet/domain/device.js.map +1 -0
- package/dist/fleet/domain/events.d.ts +102 -0
- package/dist/fleet/domain/events.js +15 -0
- package/dist/fleet/domain/events.js.map +1 -0
- package/dist/fleet/domain/fsm.d.ts +122 -0
- package/dist/fleet/domain/fsm.js +475 -0
- package/dist/fleet/domain/fsm.js.map +1 -0
- package/dist/fleet/http/status-client.d.ts +31 -0
- package/dist/fleet/http/status-client.js +115 -0
- package/dist/fleet/http/status-client.js.map +1 -0
- package/dist/fleet/http/status-server.d.ts +64 -0
- package/dist/fleet/http/status-server.js +200 -0
- package/dist/fleet/http/status-server.js.map +1 -0
- package/dist/fleet/index.d.ts +27 -0
- package/dist/fleet/index.js +17 -0
- package/dist/fleet/index.js.map +1 -0
- package/dist/fleet/installer/index.d.ts +12 -0
- package/dist/fleet/installer/index.js +13 -0
- package/dist/fleet/installer/index.js.map +1 -0
- package/dist/fleet/installer/launchd-mac.d.ts +73 -0
- package/dist/fleet/installer/launchd-mac.js +291 -0
- package/dist/fleet/installer/launchd-mac.js.map +1 -0
- package/dist/fleet/installer/service-spec.d.ts +70 -0
- package/dist/fleet/installer/service-spec.js +43 -0
- package/dist/fleet/installer/service-spec.js.map +1 -0
- package/dist/fleet/installer/spawn-env.d.ts +45 -0
- package/dist/fleet/installer/spawn-env.js +224 -0
- package/dist/fleet/installer/spawn-env.js.map +1 -0
- package/dist/fleet/ports/clock.d.ts +19 -0
- package/dist/fleet/ports/clock.js +26 -0
- package/dist/fleet/ports/clock.js.map +1 -0
- package/dist/fleet/ports/device-source.d.ts +28 -0
- package/dist/fleet/ports/device-source.js +18 -0
- package/dist/fleet/ports/device-source.js.map +1 -0
- package/dist/fleet/ports/process-manager.d.ts +110 -0
- package/dist/fleet/ports/process-manager.js +27 -0
- package/dist/fleet/ports/process-manager.js.map +1 -0
- package/dist/fleet/ports/state-registry.d.ts +49 -0
- package/dist/fleet/ports/state-registry.js +12 -0
- package/dist/fleet/ports/state-registry.js.map +1 -0
- package/dist/fleet/supervisor.d.ts +107 -0
- package/dist/fleet/supervisor.js +508 -0
- package/dist/fleet/supervisor.js.map +1 -0
- package/dist/grounding/grounder.d.ts +46 -0
- package/dist/grounding/grounder.js +82 -0
- package/dist/grounding/grounder.js.map +1 -0
- package/dist/inbound/acp/handlers/device.d.ts +43 -0
- package/dist/inbound/acp/handlers/device.js +153 -0
- package/dist/inbound/acp/handlers/device.js.map +1 -0
- package/dist/inbound/acp/handlers/initialize.d.ts +71 -0
- package/dist/inbound/acp/handlers/initialize.js +53 -0
- package/dist/inbound/acp/handlers/initialize.js.map +1 -0
- package/dist/inbound/acp/handlers/models.d.ts +16 -0
- package/dist/inbound/acp/handlers/models.js +23 -0
- package/dist/inbound/acp/handlers/models.js.map +1 -0
- package/dist/inbound/acp/handlers/session.d.ts +51 -0
- package/dist/inbound/acp/handlers/session.js +61 -0
- package/dist/inbound/acp/handlers/session.js.map +1 -0
- package/dist/inbound/acp/handlers/skills.d.ts +8 -0
- package/dist/inbound/acp/handlers/skills.js +9 -0
- package/dist/inbound/acp/handlers/skills.js.map +1 -0
- package/dist/inbound/acp/notifier.d.ts +35 -0
- package/dist/inbound/acp/notifier.js +45 -0
- package/dist/inbound/acp/notifier.js.map +1 -0
- package/dist/inbound/acp/router.d.ts +67 -0
- package/dist/inbound/acp/router.js +179 -0
- package/dist/inbound/acp/router.js.map +1 -0
- package/dist/inbound/cli/fleet-command.d.ts +34 -0
- package/dist/inbound/cli/fleet-command.js +792 -0
- package/dist/inbound/cli/fleet-command.js.map +1 -0
- package/dist/inbound/cli/main.d.ts +38 -0
- package/dist/inbound/cli/main.js +364 -0
- package/dist/inbound/cli/main.js.map +1 -0
- package/dist/inbound/cli/run-command.d.ts +101 -0
- package/dist/inbound/cli/run-command.js +405 -0
- package/dist/inbound/cli/run-command.js.map +1 -0
- package/dist/inbound/cli/skills-command.d.ts +39 -0
- package/dist/inbound/cli/skills-command.js +333 -0
- package/dist/inbound/cli/skills-command.js.map +1 -0
- package/dist/inbound/http/server.d.ts +7 -0
- package/dist/inbound/http/server.js +8 -0
- package/dist/inbound/http/server.js.map +1 -0
- package/dist/index.d.ts +66 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/logger/index.d.ts +37 -0
- package/dist/logger/index.js +84 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/mcp-client/autospawn.d.ts +67 -0
- package/dist/mcp-client/autospawn.js +173 -0
- package/dist/mcp-client/autospawn.js.map +1 -0
- package/dist/mcp-client/client.d.ts +78 -0
- package/dist/mcp-client/client.js +168 -0
- package/dist/mcp-client/client.js.map +1 -0
- package/dist/mcp-client/index.d.ts +7 -0
- package/dist/mcp-client/index.js +4 -0
- package/dist/mcp-client/index.js.map +1 -0
- package/dist/mcp-client/inproc.d.ts +47 -0
- package/dist/mcp-client/inproc.js +229 -0
- package/dist/mcp-client/inproc.js.map +1 -0
- package/dist/mcp-client/runtime.d.ts +34 -0
- package/dist/mcp-client/runtime.js +15 -0
- package/dist/mcp-client/runtime.js.map +1 -0
- package/dist/model/adapters/autoglm.d.ts +31 -0
- package/dist/model/adapters/autoglm.js +409 -0
- package/dist/model/adapters/autoglm.js.map +1 -0
- package/dist/model/adapters/base.d.ts +13 -0
- package/dist/model/adapters/base.js +27 -0
- package/dist/model/adapters/base.js.map +1 -0
- package/dist/model/adapters/guiowl.d.ts +1 -0
- package/dist/model/adapters/guiowl.js +253 -0
- package/dist/model/adapters/guiowl.js.map +1 -0
- package/dist/model/adapters/index.d.ts +6 -0
- package/dist/model/adapters/index.js +8 -0
- package/dist/model/adapters/index.js.map +1 -0
- package/dist/model/adapters/maiui.d.ts +1 -0
- package/dist/model/adapters/maiui.js +117 -0
- package/dist/model/adapters/maiui.js.map +1 -0
- package/dist/model/adapters/qwenvl.d.ts +1 -0
- package/dist/model/adapters/qwenvl.js +108 -0
- package/dist/model/adapters/qwenvl.js.map +1 -0
- package/dist/model/adapters/showui.d.ts +1 -0
- package/dist/model/adapters/showui.js +132 -0
- package/dist/model/adapters/showui.js.map +1 -0
- package/dist/model/adapters/tool-call.d.ts +6 -0
- package/dist/model/adapters/tool-call.js +102 -0
- package/dist/model/adapters/tool-call.js.map +1 -0
- package/dist/model/adapters/uitars.d.ts +1 -0
- package/dist/model/adapters/uitars.js +180 -0
- package/dist/model/adapters/uitars.js.map +1 -0
- package/dist/model/base.d.ts +32 -0
- package/dist/model/base.js +2 -0
- package/dist/model/base.js.map +1 -0
- package/dist/model/client.d.ts +26 -0
- package/dist/model/client.js +300 -0
- package/dist/model/client.js.map +1 -0
- package/dist/model/image/compress.d.ts +53 -0
- package/dist/model/image/compress.js +89 -0
- package/dist/model/image/compress.js.map +1 -0
- package/dist/model/image/transport.d.ts +134 -0
- package/dist/model/image/transport.js +154 -0
- package/dist/model/image/transport.js.map +1 -0
- package/dist/orchestrator-system-prompt.d.ts +6 -0
- package/dist/orchestrator-system-prompt.js +81 -0
- package/dist/orchestrator-system-prompt.js.map +1 -0
- package/dist/pi-context.d.ts +82 -0
- package/dist/pi-context.js +62 -0
- package/dist/pi-context.js.map +1 -0
- package/dist/pi-local-skills.d.ts +17 -0
- package/dist/pi-local-skills.js +24 -0
- package/dist/pi-local-skills.js.map +1 -0
- package/dist/plugins/acp/index.d.ts +46 -0
- package/dist/plugins/acp/index.js +111 -0
- package/dist/plugins/acp/index.js.map +1 -0
- package/dist/plugins/agent-sync/index.d.ts +40 -0
- package/dist/plugins/agent-sync/index.js +98 -0
- package/dist/plugins/agent-sync/index.js.map +1 -0
- package/dist/plugins/http-debug/index.d.ts +30 -0
- package/dist/plugins/http-debug/index.js +64 -0
- package/dist/plugins/http-debug/index.js.map +1 -0
- package/dist/plugins/http-debug/server.d.ts +92 -0
- package/dist/plugins/http-debug/server.js +464 -0
- package/dist/plugins/http-debug/server.js.map +1 -0
- package/dist/ports/agent-core.d.ts +158 -0
- package/dist/ports/agent-core.js +2 -0
- package/dist/ports/agent-core.js.map +1 -0
- package/dist/ports/agent-host.d.ts +125 -0
- package/dist/ports/agent-host.js +23 -0
- package/dist/ports/agent-host.js.map +1 -0
- package/dist/ports/device.d.ts +53 -0
- package/dist/ports/device.js +13 -0
- package/dist/ports/device.js.map +1 -0
- package/dist/ports/identity.d.ts +22 -0
- package/dist/ports/identity.js +9 -0
- package/dist/ports/identity.js.map +1 -0
- package/dist/ports/plugin.d.ts +62 -0
- package/dist/ports/plugin.js +35 -0
- package/dist/ports/plugin.js.map +1 -0
- package/dist/ports/transport.d.ts +32 -0
- package/dist/ports/transport.js +12 -0
- package/dist/ports/transport.js.map +1 -0
- package/dist/ports/vlm.d.ts +59 -0
- package/dist/ports/vlm.js +14 -0
- package/dist/ports/vlm.js.map +1 -0
- package/dist/test-lan-autoglm.d.ts +7 -0
- package/dist/test-lan-autoglm.js +46 -0
- package/dist/test-lan-autoglm.js.map +1 -0
- package/dist/test-mem-breakdown.d.ts +1 -0
- package/dist/test-mem-breakdown.js +103 -0
- package/dist/test-mem-breakdown.js.map +1 -0
- package/dist/test-mem.d.ts +1 -0
- package/dist/test-mem.js +60 -0
- package/dist/test-mem.js.map +1 -0
- package/dist/test-mobile-use.d.ts +1 -0
- package/dist/test-mobile-use.js +18 -0
- package/dist/test-mobile-use.js.map +1 -0
- package/dist/test-screenshot-loop.d.ts +1 -0
- package/dist/test-screenshot-loop.js +43 -0
- package/dist/test-screenshot-loop.js.map +1 -0
- package/dist/test-screenshot.d.ts +1 -0
- package/dist/test-screenshot.js +10 -0
- package/dist/test-screenshot.js.map +1 -0
- package/dist/test-ui-xml-dump.d.ts +15 -0
- package/dist/test-ui-xml-dump.js +49 -0
- package/dist/test-ui-xml-dump.js.map +1 -0
- package/dist/types.d.ts +69 -0
- package/dist/types.js +23 -0
- package/dist/types.js.map +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* InProcMcpClient — legacy `Device` bridge that satisfies the `IMcpRuntime`
|
|
3
|
+
* contract without any HTTP hop.
|
|
4
|
+
*
|
|
5
|
+
* Used internally by the legacy `Agent` shim and by tests / harness scripts
|
|
6
|
+
* that already hold a low-level `Device` and want to drive it via the new
|
|
7
|
+
* `AgentLoop` pipeline. Production paths should always go through the real
|
|
8
|
+
* `McpClient` (sibling device-mcp-server).
|
|
9
|
+
*
|
|
10
|
+
* The translation layer lives here on purpose:
|
|
11
|
+
* - `Action` (new schema) → legacy `Device` method calls
|
|
12
|
+
* - `Device.takeScreenshot()` → `ScreenshotResult` wire shape
|
|
13
|
+
* - `Device.getUiXml()` → `UiDumpResult` wire shape
|
|
14
|
+
*
|
|
15
|
+
* The ACP plugin and the sibling-MCP path additionally need
|
|
16
|
+
* `info / installApk / executeCommand`. When the constructor is also given
|
|
17
|
+
* a high-level `IDevice` (which has `getInfo / install / shell`) those
|
|
18
|
+
* methods are wired through; otherwise they throw a clear error.
|
|
19
|
+
*
|
|
20
|
+
* Coordinates are forwarded as-is — `AgentLoop.scaleAction()` already does
|
|
21
|
+
* its 0-1000 / smart_resize → absolute conversion before calling `act()`.
|
|
22
|
+
*/
|
|
23
|
+
export class InProcMcpClient {
|
|
24
|
+
device;
|
|
25
|
+
idevice;
|
|
26
|
+
constructor(device, opts = {}) {
|
|
27
|
+
this.device = device;
|
|
28
|
+
this.idevice = opts.idevice;
|
|
29
|
+
}
|
|
30
|
+
async screenshot() {
|
|
31
|
+
// When the high-level `idevice` is available, prefer its raw-PNG capture
|
|
32
|
+
// path so the ACP wire format (`format: "png"` for v2 callers) stays
|
|
33
|
+
// byte-for-byte identical to the pre-refactor handler.
|
|
34
|
+
//
|
|
35
|
+
// 0.2.3 split: the legacy in-proc adapters only surface a single
|
|
36
|
+
// (width, height) pair — they don't distinguish image dimensions from
|
|
37
|
+
// click coordinate-system dimensions. The two are equal on the legacy
|
|
38
|
+
// path (no Retina downscaling, no on-capture resize), so we mirror
|
|
39
|
+
// them. Sibling-MCP path (`McpClient`) gets the structured shape
|
|
40
|
+
// straight from the wire and never enters this branch.
|
|
41
|
+
if (this.idevice) {
|
|
42
|
+
const obs = await this.idevice.capture({ raw: true });
|
|
43
|
+
return {
|
|
44
|
+
b64: obs.imageBase64,
|
|
45
|
+
format: obs.imageFormat,
|
|
46
|
+
width: obs.width,
|
|
47
|
+
height: obs.height,
|
|
48
|
+
deviceWidth: obs.width,
|
|
49
|
+
deviceHeight: obs.height,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const ss = await this.device.takeScreenshot();
|
|
53
|
+
return {
|
|
54
|
+
b64: ss.base64Data,
|
|
55
|
+
format: "jpeg",
|
|
56
|
+
width: ss.width,
|
|
57
|
+
height: ss.height,
|
|
58
|
+
deviceWidth: ss.width,
|
|
59
|
+
deviceHeight: ss.height,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
async uiDump(_opts = {}) {
|
|
63
|
+
try {
|
|
64
|
+
const xml = await this.device.getUiXml();
|
|
65
|
+
if (!xml)
|
|
66
|
+
return { supported: false };
|
|
67
|
+
return { supported: true, content: xml };
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return { supported: false };
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async info() {
|
|
74
|
+
if (!this.idevice) {
|
|
75
|
+
throw new Error("InProcMcpClient: info() requires an IDevice — pass `{ idevice }` in the constructor");
|
|
76
|
+
}
|
|
77
|
+
const info = await this.idevice.getInfo();
|
|
78
|
+
// The legacy IDevice DeviceInfo and the common DeviceInfo are
|
|
79
|
+
// structurally compatible (capabilities / type union are subsets).
|
|
80
|
+
return info;
|
|
81
|
+
}
|
|
82
|
+
async installApk(path) {
|
|
83
|
+
if (!this.idevice) {
|
|
84
|
+
throw new Error("InProcMcpClient: installApk() requires an IDevice — pass `{ idevice }` in the constructor");
|
|
85
|
+
}
|
|
86
|
+
await this.idevice.install(path);
|
|
87
|
+
}
|
|
88
|
+
async executeCommand(body, _opts = {}) {
|
|
89
|
+
if (!this.idevice) {
|
|
90
|
+
throw new Error("InProcMcpClient: executeCommand() requires an IDevice — pass `{ idevice }` in the constructor");
|
|
91
|
+
}
|
|
92
|
+
const stdout = await this.idevice.shell(body);
|
|
93
|
+
// Legacy IDevice.shell only surfaces stdout; the in-process path can't
|
|
94
|
+
// disambiguate stderr / exit code without re-implementing the adapter,
|
|
95
|
+
// so return a best-effort echo.
|
|
96
|
+
return { stdout, stderr: "", exitCode: 0 };
|
|
97
|
+
}
|
|
98
|
+
async act(action) {
|
|
99
|
+
const startedAt = Date.now();
|
|
100
|
+
let result;
|
|
101
|
+
try {
|
|
102
|
+
result = await this.dispatch(action);
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
106
|
+
return {
|
|
107
|
+
ok: false,
|
|
108
|
+
action: action.type,
|
|
109
|
+
durationMs: Date.now() - startedAt,
|
|
110
|
+
error: { code: "ACT_FAILED", message },
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
ok: true,
|
|
115
|
+
action: action.type,
|
|
116
|
+
durationMs: Date.now() - startedAt,
|
|
117
|
+
result,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/* ------------------------------------------------------------------ */
|
|
121
|
+
/* Action dispatch */
|
|
122
|
+
/* ------------------------------------------------------------------ */
|
|
123
|
+
async dispatch(action) {
|
|
124
|
+
const t = action.target;
|
|
125
|
+
const p = action.payload ?? {};
|
|
126
|
+
switch (action.type) {
|
|
127
|
+
case "tap":
|
|
128
|
+
case "click": {
|
|
129
|
+
const point = pointTarget(t);
|
|
130
|
+
await this.device.tap(point.x, point.y);
|
|
131
|
+
return { ok: true };
|
|
132
|
+
}
|
|
133
|
+
case "double_click": {
|
|
134
|
+
const point = pointTarget(t);
|
|
135
|
+
await this.device.doubleTap(point.x, point.y);
|
|
136
|
+
return { ok: true };
|
|
137
|
+
}
|
|
138
|
+
case "long_press": {
|
|
139
|
+
const point = pointTarget(t);
|
|
140
|
+
await this.device.longPress(point.x, point.y, numberPayload(p, "durationMs", 1000));
|
|
141
|
+
return { ok: true };
|
|
142
|
+
}
|
|
143
|
+
case "swipe":
|
|
144
|
+
case "drag": {
|
|
145
|
+
const box = boxTarget(t);
|
|
146
|
+
await this.device.swipe(box.x1, box.y1, box.x2, box.y2, numberPayload(p, "durationMs", 300));
|
|
147
|
+
return { ok: true };
|
|
148
|
+
}
|
|
149
|
+
case "scroll": {
|
|
150
|
+
const point = pointTargetOrCenter(t);
|
|
151
|
+
const direction = stringPayload(p, "direction", "down");
|
|
152
|
+
const dist = direction === "left" || direction === "right" ? 300 : 600;
|
|
153
|
+
const dx = direction === "left" ? dist : direction === "right" ? -dist : 0;
|
|
154
|
+
const dy = direction === "up" ? dist : direction === "down" ? -dist : 0;
|
|
155
|
+
await this.device.swipe(point.x, point.y, point.x + dx, point.y + dy);
|
|
156
|
+
return { ok: true };
|
|
157
|
+
}
|
|
158
|
+
case "type": {
|
|
159
|
+
await this.device.inputText(stringPayload(p, "text", ""));
|
|
160
|
+
return { ok: true };
|
|
161
|
+
}
|
|
162
|
+
case "key": {
|
|
163
|
+
await this.device.pressKey(stringPayload(p, "keycode", ""));
|
|
164
|
+
return { ok: true };
|
|
165
|
+
}
|
|
166
|
+
case "back":
|
|
167
|
+
await this.device.pressBack();
|
|
168
|
+
return { ok: true };
|
|
169
|
+
case "home":
|
|
170
|
+
await this.device.pressHome();
|
|
171
|
+
return { ok: true };
|
|
172
|
+
case "launch_app": {
|
|
173
|
+
const ok = await this.device.launchApp(stringPayload(p, "packageOrName", ""));
|
|
174
|
+
return { ok };
|
|
175
|
+
}
|
|
176
|
+
case "wait": {
|
|
177
|
+
const seconds = numberPayload(p, "durationSeconds", 1);
|
|
178
|
+
await new Promise((resolve) => setTimeout(resolve, Math.max(0, Math.round(seconds * 1000))));
|
|
179
|
+
return { ok: true };
|
|
180
|
+
}
|
|
181
|
+
case "screenshot":
|
|
182
|
+
return this.screenshot();
|
|
183
|
+
case "ui_dump":
|
|
184
|
+
return this.uiDump();
|
|
185
|
+
// Terminal verbs are short-circuited inside AgentLoop and never reach
|
|
186
|
+
// act(); included here for completeness so a misuse surfaces clearly.
|
|
187
|
+
case "done":
|
|
188
|
+
case "fail":
|
|
189
|
+
case "call_for_user":
|
|
190
|
+
return { ok: true, terminal: true };
|
|
191
|
+
default:
|
|
192
|
+
throw new Error(`InProcMcpClient: unsupported action "${action.type}"`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
/* -------------------------------------------------------------------------- */
|
|
197
|
+
/* Helpers */
|
|
198
|
+
/* -------------------------------------------------------------------------- */
|
|
199
|
+
function pointTarget(t) {
|
|
200
|
+
if (t?.kind === "point")
|
|
201
|
+
return { x: t.x, y: t.y };
|
|
202
|
+
if (t?.kind === "box") {
|
|
203
|
+
return { x: Math.round((t.x1 + t.x2) / 2), y: Math.round((t.y1 + t.y2) / 2) };
|
|
204
|
+
}
|
|
205
|
+
throw new Error("action requires a point/box target");
|
|
206
|
+
}
|
|
207
|
+
function pointTargetOrCenter(t) {
|
|
208
|
+
if (t?.kind === "point" && (t.x !== 0 || t.y !== 0))
|
|
209
|
+
return { x: t.x, y: t.y };
|
|
210
|
+
return { x: 540, y: 960 };
|
|
211
|
+
}
|
|
212
|
+
function boxTarget(t) {
|
|
213
|
+
if (t?.kind === "box")
|
|
214
|
+
return { x1: t.x1, y1: t.y1, x2: t.x2, y2: t.y2 };
|
|
215
|
+
throw new Error("action requires a box target");
|
|
216
|
+
}
|
|
217
|
+
function numberPayload(p, key, fallback) {
|
|
218
|
+
const v = p[key];
|
|
219
|
+
if (typeof v === "number" && Number.isFinite(v))
|
|
220
|
+
return v;
|
|
221
|
+
return fallback;
|
|
222
|
+
}
|
|
223
|
+
function stringPayload(p, key, fallback) {
|
|
224
|
+
const v = p[key];
|
|
225
|
+
if (typeof v === "string")
|
|
226
|
+
return v;
|
|
227
|
+
return fallback;
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=inproc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inproc.js","sourceRoot":"","sources":["../../src/mcp-client/inproc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IMcpRuntime — duck-typed contract that the AgentLoop depends on.
|
|
3
|
+
*
|
|
4
|
+
* Both the real HTTP `McpClient` (sibling Fastify server) and the in-process
|
|
5
|
+
* `InProcMcpClient` (legacy Device bridge) implement this interface, so the
|
|
6
|
+
* loop works the same way for production sandbox-backed runs and for legacy
|
|
7
|
+
* embedded adapters that still hand over a low-level `Device`.
|
|
8
|
+
*
|
|
9
|
+
* The minimum contract for the AgentLoop is `screenshot / uiDump / act`.
|
|
10
|
+
* `health / info / installApk / executeCommand` are optional — the ACP plugin
|
|
11
|
+
* uses them when present (sibling-MCP path); the legacy in-process bridge
|
|
12
|
+
* also implements them when constructed with a high-level `IDevice`.
|
|
13
|
+
*/
|
|
14
|
+
import type { Action, ActResponse, DeviceInfo, ExecuteCommandResult, HealthResponse, ScreenshotResult, UiDumpResult } from "@beeos-ai/device-common";
|
|
15
|
+
export interface UiDumpOptions {
|
|
16
|
+
query?: string;
|
|
17
|
+
format?: "compact" | "raw";
|
|
18
|
+
}
|
|
19
|
+
export interface ExecuteCommandOptions {
|
|
20
|
+
timeoutS?: number;
|
|
21
|
+
cwd?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface IMcpRuntime {
|
|
24
|
+
screenshot(): Promise<ScreenshotResult>;
|
|
25
|
+
uiDump(opts?: UiDumpOptions): Promise<UiDumpResult>;
|
|
26
|
+
act(action: Action): Promise<ActResponse>;
|
|
27
|
+
health?(): Promise<HealthResponse>;
|
|
28
|
+
/** Best-effort device descriptor. Optional — present on real MCP server and on InProc when wired with an `IDevice`. */
|
|
29
|
+
info?(): Promise<DeviceInfo>;
|
|
30
|
+
/** Install a local APK / package. Optional. */
|
|
31
|
+
installApk?(path: string): Promise<void>;
|
|
32
|
+
/** Run a shell command on the sandbox. Optional. */
|
|
33
|
+
executeCommand?(body: string, opts?: ExecuteCommandOptions): Promise<ExecuteCommandResult>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IMcpRuntime — duck-typed contract that the AgentLoop depends on.
|
|
3
|
+
*
|
|
4
|
+
* Both the real HTTP `McpClient` (sibling Fastify server) and the in-process
|
|
5
|
+
* `InProcMcpClient` (legacy Device bridge) implement this interface, so the
|
|
6
|
+
* loop works the same way for production sandbox-backed runs and for legacy
|
|
7
|
+
* embedded adapters that still hand over a low-level `Device`.
|
|
8
|
+
*
|
|
9
|
+
* The minimum contract for the AgentLoop is `screenshot / uiDump / act`.
|
|
10
|
+
* `health / info / installApk / executeCommand` are optional — the ACP plugin
|
|
11
|
+
* uses them when present (sibling-MCP path); the legacy in-process bridge
|
|
12
|
+
* also implements them when constructed with a high-level `IDevice`.
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/mcp-client/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* model/adapters/autoglm — first-class adapter for Z.ai's AutoGLM-Phone-9B
|
|
3
|
+
* (a.k.a. AutoGLM-Mobile-9B) and the broader GLM-4V family.
|
|
4
|
+
*
|
|
5
|
+
* The system prompt is **verbatim-ported** from Open-AutoGLM's
|
|
6
|
+
* `phone_agent/config/prompts_zh.py` / `prompts_en.py` (commit on
|
|
7
|
+
* https://github.com/zai-org/Open-AutoGLM `main`):
|
|
8
|
+
* - Today's date is injected at construction time (matches the Python
|
|
9
|
+
* module-level `datetime.today()` call).
|
|
10
|
+
* - The full action catalogue (Launch / Tap / Tap+message / Type /
|
|
11
|
+
* Type_Name / Interact / Swipe / Note / Call_API / Long Press /
|
|
12
|
+
* Double Tap / Take_over / Back / Home / Wait / finish) is preserved.
|
|
13
|
+
* - The 18-rule Chinese rule set is preserved verbatim; the English
|
|
14
|
+
* prompt mirrors the upstream "REMEMBER" section.
|
|
15
|
+
*
|
|
16
|
+
* Output format:
|
|
17
|
+
* <think>...</think><answer>do(...)</answer>
|
|
18
|
+
*
|
|
19
|
+
* Coordinate system: model emits a **0–1000 normalized grid**; the inner
|
|
20
|
+
* `parseDoAction` annotates `coordSystem: "0-1000"` so
|
|
21
|
+
* `agent-runtime/adapters/openai.ts → parsedToAction` plants
|
|
22
|
+
* `payload._coordSystem = "0-1000"` and `AgentLoop.scaleAction` rescales
|
|
23
|
+
* to absolute pixels (see `agent-runtime/core.ts:355-376`).
|
|
24
|
+
*
|
|
25
|
+
* Image MIME is `image/png` to match the v0.2.3 mcp-server `screenshot`
|
|
26
|
+
* tool which always emits losslessly compressed PNG.
|
|
27
|
+
*/
|
|
28
|
+
/** Render the Chinese system prompt (verbatim port of Open-AutoGLM `prompts_zh.py`). */
|
|
29
|
+
export declare function renderAutoGLMSystemPromptZh(date?: Date): string;
|
|
30
|
+
/** Render the English system prompt (verbatim port of Open-AutoGLM `prompts_en.py`). */
|
|
31
|
+
export declare function renderAutoGLMSystemPromptEn(date?: Date): string;
|