@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,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agent-runtime/core — Plan-Act-Reflect loop.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors the Python reference at
|
|
5
|
+
* /Users/heat/workspace/deviceagent_research/deviceagent/agent_runtime/loop/core.py
|
|
6
|
+
*
|
|
7
|
+
* Each iteration:
|
|
8
|
+
* 1. **Observe** — pull a fresh screenshot from the MCP server via
|
|
9
|
+
* `McpClient`. The uiautomator dump is fetched only when the active
|
|
10
|
+
* `IModelAdapter.consumesUiDump === true` (e.g. GUI-Owl); the default
|
|
11
|
+
* pure-vision flow (Open-AutoGLM, UI-TARS, Qwen-VL, ShowUI) skips it
|
|
12
|
+
* to save ~1–3 s per step on Android.
|
|
13
|
+
* 2. **Predict** — ask the registered `IModelAdapter` for the next
|
|
14
|
+
* `Action`, given the observation and rolling step history.
|
|
15
|
+
* 3. **Act** — terminal verbs (`done` / `fail` / `call_for_user`) short-
|
|
16
|
+
* circuit the loop. Everything else is dispatched to the MCP `/act`
|
|
17
|
+
* route. Action payloads carrying `_coordSystem: "0-1000" |
|
|
18
|
+
* "smart_resize"` are scaled to absolute screen pixels before
|
|
19
|
+
* dispatch.
|
|
20
|
+
* 4. **Reflect** — heuristic stall detection. A non-null veto string
|
|
21
|
+
* ends the run with `terminator: "reflection_veto"`.
|
|
22
|
+
*
|
|
23
|
+
* Termination conditions:
|
|
24
|
+
* - `done` action → success
|
|
25
|
+
* - `fail` action → failure
|
|
26
|
+
* - `call_for_user` action → handled per `waitForUser` flag
|
|
27
|
+
* - step budget exceeded
|
|
28
|
+
* - wall-clock timeout exceeded
|
|
29
|
+
* - reflection veto
|
|
30
|
+
* - external `AbortSignal` aborted
|
|
31
|
+
*/
|
|
32
|
+
import { type Action, type Observation } from "@beeos-ai/device-common";
|
|
33
|
+
import type { IMcpRuntime } from "../mcp-client/runtime.js";
|
|
34
|
+
import type { IModelAdapter, ModelUsage, Prediction, StepHistory } from "./adapters/base.js";
|
|
35
|
+
import { HierarchicalReflector } from "./reflection.js";
|
|
36
|
+
import type { TrajectoryVerdict } from "./reflectors/trajectory-reflector.js";
|
|
37
|
+
export type AgentLoopTerminator = "done" | "fail" | "call_for_user" | "step_budget" | "timeout" | "reflection_veto" | "cancelled" | "error";
|
|
38
|
+
export interface AgentRunHooks {
|
|
39
|
+
/** Streaming token delta from the underlying model (best-effort). */
|
|
40
|
+
onText?: (delta: string) => void | Promise<void>;
|
|
41
|
+
/** Reasoning channel (separate stream for o1-style models). */
|
|
42
|
+
onReasoning?: (delta: string) => void | Promise<void>;
|
|
43
|
+
/** Fired exactly once per step, after the action has been parsed. */
|
|
44
|
+
onStep?: (step: AgentStepEvent) => void | Promise<void>;
|
|
45
|
+
/** Fired before the action is dispatched to MCP `/act`. */
|
|
46
|
+
onTool?: (tool: AgentToolEvent) => void | Promise<void>;
|
|
47
|
+
/** Fired on every error, fatal or recoverable. */
|
|
48
|
+
onError?: (err: AgentErrorEvent) => void | Promise<void>;
|
|
49
|
+
}
|
|
50
|
+
export interface AgentStepEvent {
|
|
51
|
+
/** 1-based step index. */
|
|
52
|
+
index: number;
|
|
53
|
+
rationale: string;
|
|
54
|
+
action: Action;
|
|
55
|
+
prediction: Prediction;
|
|
56
|
+
/** `true` when the action terminated the loop. */
|
|
57
|
+
finished: boolean;
|
|
58
|
+
}
|
|
59
|
+
export interface AgentToolEvent {
|
|
60
|
+
/** Action verb ≡ MCP tool name. */
|
|
61
|
+
name: Action["type"];
|
|
62
|
+
args: Record<string, unknown>;
|
|
63
|
+
/** Raw response from the MCP `/act` route. */
|
|
64
|
+
result: unknown;
|
|
65
|
+
durationMs: number;
|
|
66
|
+
}
|
|
67
|
+
export interface AgentErrorEvent {
|
|
68
|
+
code: AgentErrorCode;
|
|
69
|
+
message: string;
|
|
70
|
+
fatal: boolean;
|
|
71
|
+
cause?: unknown;
|
|
72
|
+
}
|
|
73
|
+
export type AgentErrorCode = "MODEL_PREDICT_FAILED" | "MCP_ACT_FAILED" | "MCP_OBSERVE_FAILED" | "STEP_BUDGET" | "TIMEOUT" | "REFLECTION_VETO" | "MODEL_FAIL" | "CALL_FOR_USER_TIMEOUT" | "ABORTED";
|
|
74
|
+
export interface AgentRunOptions {
|
|
75
|
+
task: string;
|
|
76
|
+
env: Observation["env"];
|
|
77
|
+
mcp: IMcpRuntime;
|
|
78
|
+
adapter: IModelAdapter;
|
|
79
|
+
/** Per-call max steps. Defaults to 30. */
|
|
80
|
+
maxSteps?: number;
|
|
81
|
+
/** Wall-clock timeout in milliseconds. Defaults to 5 minutes. */
|
|
82
|
+
timeoutMs?: number;
|
|
83
|
+
/**
|
|
84
|
+
* When the model emits `call_for_user`, should the loop block waiting
|
|
85
|
+
* for an out-of-band resolution callback? In Phase-1 we surface the
|
|
86
|
+
* event and immediately stop (`callForUser` terminator).
|
|
87
|
+
*/
|
|
88
|
+
waitForUser?: boolean;
|
|
89
|
+
/** Optional outside cancellation. */
|
|
90
|
+
signal?: AbortSignal;
|
|
91
|
+
/** Run hooks for streaming events. */
|
|
92
|
+
hooks?: AgentRunHooks;
|
|
93
|
+
/** Optional pre-built reflector (test injection). */
|
|
94
|
+
reflector?: HierarchicalReflector;
|
|
95
|
+
}
|
|
96
|
+
export interface AgentRunResult {
|
|
97
|
+
finalText: string;
|
|
98
|
+
steps: number;
|
|
99
|
+
cancelled: boolean;
|
|
100
|
+
terminator: AgentLoopTerminator;
|
|
101
|
+
history: StepHistory[];
|
|
102
|
+
usage: ModelUsage;
|
|
103
|
+
/** Last error (when `terminator === "error"` or non-fatal errors fired). */
|
|
104
|
+
lastError?: AgentErrorEvent;
|
|
105
|
+
/**
|
|
106
|
+
* Phase 2.1 — notes the agent collected mid-task via the `take_note`
|
|
107
|
+
* action verb. Empty when the underlying adapter never emits notes.
|
|
108
|
+
* The PlanExecutor surfaces these into `PlanContext.notes` on replan
|
|
109
|
+
* so the planner can avoid re-asking for already-captured information
|
|
110
|
+
* (verification codes, computed prices, etc.).
|
|
111
|
+
*/
|
|
112
|
+
notes: string[];
|
|
113
|
+
/**
|
|
114
|
+
* Phase 2.2 — final verdict from the {@link ITrajectoryReflector}, if any.
|
|
115
|
+
* Set when the periodic trajectory check flipped to `off_track` or
|
|
116
|
+
* `stuck`. The PlanExecutor surfaces this into `PlanContext.trajectoryVerdict`
|
|
117
|
+
* on replan so the planner can pivot the plan rather than re-deriving the
|
|
118
|
+
* failure mode.
|
|
119
|
+
*/
|
|
120
|
+
trajectoryVerdict?: {
|
|
121
|
+
verdict: Exclude<TrajectoryVerdict, "on_track">;
|
|
122
|
+
reason: string;
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
export declare class AgentLoop {
|
|
126
|
+
private readonly opts;
|
|
127
|
+
private static readonly DEFAULT_MAX_STEPS;
|
|
128
|
+
private static readonly DEFAULT_TIMEOUT_MS;
|
|
129
|
+
private readonly history;
|
|
130
|
+
private readonly reflector;
|
|
131
|
+
private readonly notes;
|
|
132
|
+
private trajectoryVerdict?;
|
|
133
|
+
constructor(opts: AgentRunOptions);
|
|
134
|
+
run(): Promise<AgentRunResult>;
|
|
135
|
+
private observe;
|
|
136
|
+
/**
|
|
137
|
+
* Translate a model-frame action into an MCP-frame action by scaling
|
|
138
|
+
* coordinates to the absolute screen size, depending on the
|
|
139
|
+
* `_coordSystem` payload hint that `parsedToAction` plants.
|
|
140
|
+
*/
|
|
141
|
+
private scaleAction;
|
|
142
|
+
/**
|
|
143
|
+
* Phase 1.4 — invoke the optional model-based action reflector. Verdicts
|
|
144
|
+
* are advisory: a `passed: false` result is appended to the just-pushed
|
|
145
|
+
* StepHistory entry's `rationale` (so the next `predict` sees it), and
|
|
146
|
+
* the entry's `actionResult` is upgraded from `ok` → `act_failed` so
|
|
147
|
+
* downstream code (skill evolver, trajectory reflector) treats it as a
|
|
148
|
+
* miss.
|
|
149
|
+
*
|
|
150
|
+
* The reflector itself is responsible for {@link IActionReflector.shouldReflect}
|
|
151
|
+
* gating; this helper just composes the wiring. Cost is rolled into the
|
|
152
|
+
* surrounding {@link AgentLoop.run} `usage` aggregator.
|
|
153
|
+
*/
|
|
154
|
+
private maybeRunActionReflector;
|
|
155
|
+
/**
|
|
156
|
+
* Phase 2.2 — periodic global progress assessment. The reflector decides
|
|
157
|
+
* its own gating (default: every 5 steps); we just compose the wiring.
|
|
158
|
+
*
|
|
159
|
+
* Returns a non-empty veto string only on `stuck`. `off_track` injects an
|
|
160
|
+
* advisory line into the most recent history entry's rationale so the
|
|
161
|
+
* grounder sees it next predict, but the loop keeps running. The verdict
|
|
162
|
+
* itself is stashed on `this.trajectoryVerdict` so the PlanExecutor can
|
|
163
|
+
* thread it into `PlanContext.trajectoryVerdict` on replan.
|
|
164
|
+
*/
|
|
165
|
+
private maybeRunTrajectoryReflector;
|
|
166
|
+
private recordHistory;
|
|
167
|
+
private fireStep;
|
|
168
|
+
private fire;
|
|
169
|
+
private finish;
|
|
170
|
+
}
|