@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,333 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* inbound/cli/skills-command — `device-agent skills <subcmd>`.
|
|
3
|
+
*
|
|
4
|
+
* Phase 3.4 of the [device-agent reflector upgrade plan](../../../../../../.cursor/plans/device-agent-reflector-skills_d5599350.plan.md),
|
|
5
|
+
* upgraded to the FileSystem-backed cache layout described in
|
|
6
|
+
* [skill-cache-fs-backend](../../../../../../.cursor/plans/skill-cache-fs-backend_0191f2c7.plan.md).
|
|
7
|
+
*
|
|
8
|
+
* Subcommands:
|
|
9
|
+
* list List all cached skills (default sorting: newest first).
|
|
10
|
+
* inspect <id> Print full row for a single skill, including action sequence.
|
|
11
|
+
* forget <id> | --all Delete a skill, or wipe the entire cache.
|
|
12
|
+
* import <file.json> Bulk-load skills exported by another store.
|
|
13
|
+
* export [<file.json>] Dump every skill row as JSON (defaults to stdout).
|
|
14
|
+
*
|
|
15
|
+
* The store is opened against the directory `~/.beeos/device-agent/skills/`
|
|
16
|
+
* unless `SKILL_CACHE_PATH` (or `--root <dir>`) overrides it. All output
|
|
17
|
+
* is text-friendly by default; pass `--json` for machine consumption.
|
|
18
|
+
*
|
|
19
|
+
* `--db <path>` is accepted as a deprecated alias for `--root` so old
|
|
20
|
+
* scripts keep working through one minor release.
|
|
21
|
+
*/
|
|
22
|
+
import * as fs from "node:fs";
|
|
23
|
+
import * as path from "node:path";
|
|
24
|
+
import { homedir } from "node:os";
|
|
25
|
+
import { defaultSkillCachePath, FileSystemSkillCacheStore, summariseSkill, } from "../../agent-runtime/skills/index.js";
|
|
26
|
+
function parseFlags(argv, stderr) {
|
|
27
|
+
const flags = {};
|
|
28
|
+
const positional = [];
|
|
29
|
+
for (let i = 0; i < argv.length; i++) {
|
|
30
|
+
const a = argv[i];
|
|
31
|
+
if (a === "--root") {
|
|
32
|
+
const v = argv[++i];
|
|
33
|
+
if (!v)
|
|
34
|
+
throw new Error("--root requires a directory path");
|
|
35
|
+
flags.root = v;
|
|
36
|
+
}
|
|
37
|
+
else if (a === "--db") {
|
|
38
|
+
const v = argv[++i];
|
|
39
|
+
if (!v)
|
|
40
|
+
throw new Error("--db requires a path");
|
|
41
|
+
stderr.write("device-agent skills: --db is deprecated; use --root <dir>\n");
|
|
42
|
+
flags.root = v;
|
|
43
|
+
}
|
|
44
|
+
else if (a === "--json") {
|
|
45
|
+
flags.json = true;
|
|
46
|
+
}
|
|
47
|
+
else if (a === "--all") {
|
|
48
|
+
flags.all = true;
|
|
49
|
+
}
|
|
50
|
+
else if (a === "-h" || a === "--help") {
|
|
51
|
+
flags.help = true;
|
|
52
|
+
}
|
|
53
|
+
else if (a.startsWith("--")) {
|
|
54
|
+
stderr.write(`device-agent skills: ignoring unknown flag ${a}\n`);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
positional.push(a);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return { positional, flags };
|
|
61
|
+
}
|
|
62
|
+
function defaultOpenStore(flags) {
|
|
63
|
+
const root = flags.root ?? process.env.SKILL_CACHE_PATH ?? defaultSkillCachePath();
|
|
64
|
+
warnOnLegacySqliteCache(root);
|
|
65
|
+
return new FileSystemSkillCacheStore({ root });
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* If a leftover `~/.beeos/device-agent/skills.sqlite` from the
|
|
69
|
+
* pre-FS-backend Phase 3 build sits next to the new directory, log a
|
|
70
|
+
* one-line warning so users know it can be removed. The file is *not*
|
|
71
|
+
* imported — it only ever held bench data, not curated skills.
|
|
72
|
+
*/
|
|
73
|
+
function warnOnLegacySqliteCache(root) {
|
|
74
|
+
try {
|
|
75
|
+
const legacy = path.join(homedir(), ".beeos", "device-agent", "skills.sqlite");
|
|
76
|
+
if (legacy === root)
|
|
77
|
+
return;
|
|
78
|
+
if (!fs.existsSync(legacy))
|
|
79
|
+
return;
|
|
80
|
+
process.stderr.write(`device-agent skills: ignoring legacy ${legacy} (orphan from the SQLite-era cache; safe to delete)\n`);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// best-effort warning
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function printUsage(stdout) {
|
|
87
|
+
stdout.write(`device-agent skills — manage the skill cache (Phase 3)
|
|
88
|
+
|
|
89
|
+
Usage:
|
|
90
|
+
device-agent skills <command> [options]
|
|
91
|
+
|
|
92
|
+
Commands:
|
|
93
|
+
list List every cached skill (newest first)
|
|
94
|
+
inspect <id> Show full action sequence + counters for one skill
|
|
95
|
+
forget <id> Delete a single skill row
|
|
96
|
+
forget --all Wipe every skill row (irreversible)
|
|
97
|
+
import <file.json> Append skills from a previous \`export\` dump
|
|
98
|
+
export [<file.json>] Dump every skill as JSON (stdout by default)
|
|
99
|
+
|
|
100
|
+
Options:
|
|
101
|
+
--root <dir> Override the cache directory (default ~/.beeos/device-agent/skills/)
|
|
102
|
+
--db <path> Deprecated alias for --root
|
|
103
|
+
--json Emit machine-readable JSON (where applicable)
|
|
104
|
+
-h, --help Show this help
|
|
105
|
+
|
|
106
|
+
Examples:
|
|
107
|
+
device-agent skills list
|
|
108
|
+
device-agent skills inspect 3f2a1b1d --json
|
|
109
|
+
device-agent skills export skills-backup.json
|
|
110
|
+
device-agent skills import skills-backup.json
|
|
111
|
+
device-agent skills forget --all
|
|
112
|
+
`);
|
|
113
|
+
}
|
|
114
|
+
export async function skillsCommand(argv, io = {}) {
|
|
115
|
+
const stdout = io.stdout ?? process.stdout;
|
|
116
|
+
const stderr = io.stderr ?? process.stderr;
|
|
117
|
+
const openStore = io.openStore ?? defaultOpenStore;
|
|
118
|
+
const fsAdapter = io.fs ?? fs;
|
|
119
|
+
const { positional, flags } = parseFlags(argv, stderr);
|
|
120
|
+
if (flags.help || positional.length === 0) {
|
|
121
|
+
printUsage(stdout);
|
|
122
|
+
return 0;
|
|
123
|
+
}
|
|
124
|
+
const sub = positional[0];
|
|
125
|
+
const args = positional.slice(1);
|
|
126
|
+
const ctx = { stdout, stderr, openStore, fs: fsAdapter };
|
|
127
|
+
try {
|
|
128
|
+
switch (sub) {
|
|
129
|
+
case "list":
|
|
130
|
+
return await runList(flags, ctx);
|
|
131
|
+
case "inspect":
|
|
132
|
+
return await runInspect(args, flags, ctx);
|
|
133
|
+
case "forget":
|
|
134
|
+
return await runForget(args, flags, ctx);
|
|
135
|
+
case "export":
|
|
136
|
+
return await runExport(args, flags, ctx);
|
|
137
|
+
case "import":
|
|
138
|
+
return await runImport(args, flags, ctx);
|
|
139
|
+
default:
|
|
140
|
+
stderr.write(`Unknown subcommand: ${sub}\n`);
|
|
141
|
+
printUsage(stdout);
|
|
142
|
+
return 2;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (e) {
|
|
146
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
147
|
+
stderr.write(`device-agent skills ${sub}: ${msg}\n`);
|
|
148
|
+
return 1;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/* -------------------------------------------------------------------------- */
|
|
152
|
+
/* subcommands */
|
|
153
|
+
/* -------------------------------------------------------------------------- */
|
|
154
|
+
async function runList(flags, ctx) {
|
|
155
|
+
const store = ctx.openStore(flags);
|
|
156
|
+
try {
|
|
157
|
+
const rows = store.listAll();
|
|
158
|
+
if (flags.json) {
|
|
159
|
+
ctx.stdout.write(`${JSON.stringify(rows.map(toSerialisable), null, 2)}\n`);
|
|
160
|
+
return 0;
|
|
161
|
+
}
|
|
162
|
+
if (rows.length === 0) {
|
|
163
|
+
ctx.stdout.write("(no cached skills)\n");
|
|
164
|
+
return 0;
|
|
165
|
+
}
|
|
166
|
+
ctx.stdout.write(`${rows.length} skill(s):\n`);
|
|
167
|
+
for (const r of rows)
|
|
168
|
+
ctx.stdout.write(` ${summariseSkill(r)}\n`);
|
|
169
|
+
return 0;
|
|
170
|
+
}
|
|
171
|
+
finally {
|
|
172
|
+
store.close();
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
async function runInspect(args, flags, ctx) {
|
|
176
|
+
const id = args[0];
|
|
177
|
+
if (!id) {
|
|
178
|
+
ctx.stderr.write("usage: device-agent skills inspect <id>\n");
|
|
179
|
+
return 2;
|
|
180
|
+
}
|
|
181
|
+
const store = ctx.openStore(flags);
|
|
182
|
+
try {
|
|
183
|
+
const skill = findSkillByPrefix(store, id);
|
|
184
|
+
if (!skill) {
|
|
185
|
+
ctx.stderr.write(`No skill matching id prefix "${id}"\n`);
|
|
186
|
+
return 1;
|
|
187
|
+
}
|
|
188
|
+
if (flags.json) {
|
|
189
|
+
ctx.stdout.write(`${JSON.stringify(toSerialisable(skill), null, 2)}\n`);
|
|
190
|
+
return 0;
|
|
191
|
+
}
|
|
192
|
+
ctx.stdout.write(`id: ${skill.id}\n`);
|
|
193
|
+
ctx.stdout.write(`appPackage: ${skill.appPackage}\n`);
|
|
194
|
+
ctx.stdout.write(`taskSummary: ${skill.taskSummary}\n`);
|
|
195
|
+
ctx.stdout.write(`successCount: ${skill.successCount}\n`);
|
|
196
|
+
ctx.stdout.write(`failCount: ${skill.failCount}\n`);
|
|
197
|
+
ctx.stdout.write(`lastUsedAt: ${new Date(skill.lastUsedAt).toISOString()}\n`);
|
|
198
|
+
ctx.stdout.write(`createdAt: ${new Date(skill.createdAt).toISOString()}\n`);
|
|
199
|
+
ctx.stdout.write(`embedding: ${skill.taskEmbedding ? `${skill.taskEmbedding.length}-dim` : "none"}\n`);
|
|
200
|
+
ctx.stdout.write(`actions (${skill.actionSequence.length}):\n`);
|
|
201
|
+
for (const [i, a] of skill.actionSequence.entries()) {
|
|
202
|
+
ctx.stdout.write(` ${i + 1}. ${a.type} ${JSON.stringify({ payload: a.payload, target: a.target })}\n`);
|
|
203
|
+
}
|
|
204
|
+
return 0;
|
|
205
|
+
}
|
|
206
|
+
finally {
|
|
207
|
+
store.close();
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
async function runForget(args, flags, ctx) {
|
|
211
|
+
if (!flags.all && !args[0]) {
|
|
212
|
+
ctx.stderr.write("usage: device-agent skills forget <id> | --all\n");
|
|
213
|
+
return 2;
|
|
214
|
+
}
|
|
215
|
+
const store = ctx.openStore(flags);
|
|
216
|
+
try {
|
|
217
|
+
if (flags.all) {
|
|
218
|
+
const before = store.listAll().length;
|
|
219
|
+
store.clear();
|
|
220
|
+
ctx.stdout.write(`Forgot ${before} skill(s).\n`);
|
|
221
|
+
return 0;
|
|
222
|
+
}
|
|
223
|
+
const id = args[0];
|
|
224
|
+
const skill = findSkillByPrefix(store, id);
|
|
225
|
+
if (!skill) {
|
|
226
|
+
ctx.stderr.write(`No skill matching id prefix "${id}"\n`);
|
|
227
|
+
return 1;
|
|
228
|
+
}
|
|
229
|
+
const ok = store.delete(skill.id);
|
|
230
|
+
if (!ok) {
|
|
231
|
+
ctx.stderr.write(`Failed to delete skill ${skill.id}\n`);
|
|
232
|
+
return 1;
|
|
233
|
+
}
|
|
234
|
+
ctx.stdout.write(`Forgot ${skill.id}\n`);
|
|
235
|
+
return 0;
|
|
236
|
+
}
|
|
237
|
+
finally {
|
|
238
|
+
store.close();
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
async function runExport(args, flags, ctx) {
|
|
242
|
+
const out = args[0];
|
|
243
|
+
const store = ctx.openStore(flags);
|
|
244
|
+
try {
|
|
245
|
+
const rows = store.listAll();
|
|
246
|
+
const payload = JSON.stringify(rows.map(toSerialisable), null, 2);
|
|
247
|
+
if (!out) {
|
|
248
|
+
ctx.stdout.write(`${payload}\n`);
|
|
249
|
+
return 0;
|
|
250
|
+
}
|
|
251
|
+
ctx.fs.writeFileSync(out, payload);
|
|
252
|
+
ctx.stdout.write(`Exported ${rows.length} skill(s) to ${out}\n`);
|
|
253
|
+
return 0;
|
|
254
|
+
}
|
|
255
|
+
finally {
|
|
256
|
+
store.close();
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
async function runImport(args, flags, ctx) {
|
|
260
|
+
const path = args[0];
|
|
261
|
+
if (!path) {
|
|
262
|
+
ctx.stderr.write("usage: device-agent skills import <file.json>\n");
|
|
263
|
+
return 2;
|
|
264
|
+
}
|
|
265
|
+
const raw = ctx.fs.readFileSync(path, "utf8");
|
|
266
|
+
const parsed = JSON.parse(raw);
|
|
267
|
+
if (!Array.isArray(parsed)) {
|
|
268
|
+
ctx.stderr.write("import: file is not a JSON array of skills\n");
|
|
269
|
+
return 1;
|
|
270
|
+
}
|
|
271
|
+
const store = ctx.openStore(flags);
|
|
272
|
+
try {
|
|
273
|
+
let inserted = 0;
|
|
274
|
+
for (const row of parsed) {
|
|
275
|
+
if (!isSerialisedSkill(row))
|
|
276
|
+
continue;
|
|
277
|
+
const embedding = row.taskEmbedding
|
|
278
|
+
? new Float32Array(row.taskEmbedding)
|
|
279
|
+
: undefined;
|
|
280
|
+
const persisted = store.insert({
|
|
281
|
+
appPackage: row.appPackage,
|
|
282
|
+
taskSummary: row.taskSummary,
|
|
283
|
+
actionSequence: row.actionSequence,
|
|
284
|
+
taskEmbedding: embedding,
|
|
285
|
+
});
|
|
286
|
+
// Replay the success/fail counters so an import doesn't reset
|
|
287
|
+
// history. `insert` already starts at successCount=1, so the
|
|
288
|
+
// import only needs to back-fill the remainder.
|
|
289
|
+
for (let i = 1; i < row.successCount; i++)
|
|
290
|
+
store.recordSuccess(persisted.id);
|
|
291
|
+
for (let i = 0; i < row.failCount; i++)
|
|
292
|
+
store.recordFailure(persisted.id);
|
|
293
|
+
inserted += 1;
|
|
294
|
+
}
|
|
295
|
+
ctx.stdout.write(`Imported ${inserted} skill(s) from ${path}\n`);
|
|
296
|
+
return 0;
|
|
297
|
+
}
|
|
298
|
+
finally {
|
|
299
|
+
store.close();
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
function toSerialisable(skill) {
|
|
303
|
+
const out = {
|
|
304
|
+
id: skill.id,
|
|
305
|
+
appPackage: skill.appPackage,
|
|
306
|
+
taskSummary: skill.taskSummary,
|
|
307
|
+
actionSequence: skill.actionSequence,
|
|
308
|
+
successCount: skill.successCount,
|
|
309
|
+
failCount: skill.failCount,
|
|
310
|
+
lastUsedAt: skill.lastUsedAt,
|
|
311
|
+
createdAt: skill.createdAt,
|
|
312
|
+
};
|
|
313
|
+
if (skill.taskEmbedding)
|
|
314
|
+
out.taskEmbedding = Array.from(skill.taskEmbedding);
|
|
315
|
+
return out;
|
|
316
|
+
}
|
|
317
|
+
function isSerialisedSkill(row) {
|
|
318
|
+
if (typeof row !== "object" || row === null)
|
|
319
|
+
return false;
|
|
320
|
+
const r = row;
|
|
321
|
+
return (typeof r.appPackage === "string" &&
|
|
322
|
+
typeof r.taskSummary === "string" &&
|
|
323
|
+
Array.isArray(r.actionSequence) &&
|
|
324
|
+
typeof r.successCount === "number" &&
|
|
325
|
+
typeof r.failCount === "number");
|
|
326
|
+
}
|
|
327
|
+
function findSkillByPrefix(store, prefix) {
|
|
328
|
+
const direct = store.get(prefix);
|
|
329
|
+
if (direct)
|
|
330
|
+
return direct;
|
|
331
|
+
return store.listAll().find((s) => s.id.startsWith(prefix));
|
|
332
|
+
}
|
|
333
|
+
//# sourceMappingURL=skills-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills-command.js","sourceRoot":"","sources":["../../../src/inbound/cli/skills-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated Moved to `src/plugins/http-debug/server.ts`. This file
|
|
3
|
+
* remains as a re-export shim so existing imports (tests, downstream
|
|
4
|
+
* code) keep working. New code should import from
|
|
5
|
+
* `@beeos-ai/device-agent/plugins/http-debug/server.js`.
|
|
6
|
+
*/
|
|
7
|
+
export { HttpServer, HttpTaskStore, buildErrorHandler, type HttpServerOptions, type HttpTaskRecord, type HttpTaskStatus, type HttpTaskStep, } from "../../plugins/http-debug/server.js";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated Moved to `src/plugins/http-debug/server.ts`. This file
|
|
3
|
+
* remains as a re-export shim so existing imports (tests, downstream
|
|
4
|
+
* code) keep working. New code should import from
|
|
5
|
+
* `@beeos-ai/device-agent/plugins/http-debug/server.js`.
|
|
6
|
+
*/
|
|
7
|
+
export { HttpServer, HttpTaskStore, buildErrorHandler, } from "../../plugins/http-debug/server.js";
|
|
8
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/inbound/http/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,GAKlB,MAAM,oCAAoC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public API surface for `@beeos-ai/device-agent`.
|
|
3
|
+
*
|
|
4
|
+
* Most users want the CLI binary (`device-agent`); this barrel is for
|
|
5
|
+
* downstream Node.js consumers that want to embed the device-agent
|
|
6
|
+
* components programmatically (e.g. tests, beeos-cli `attach`).
|
|
7
|
+
*
|
|
8
|
+
* Stability: only the symbols re-exported here are part of the public
|
|
9
|
+
* contract. Internal modules (`src/agent.ts`, anything under
|
|
10
|
+
* `inbound/`/`adapters/`) are exposed as deep imports for advanced use
|
|
11
|
+
* cases but may break between minor versions.
|
|
12
|
+
*/
|
|
13
|
+
export { main } from "./inbound/cli/main.js";
|
|
14
|
+
export { bootstrap, BootstrapError } from "./bootstrap.js";
|
|
15
|
+
export type { BootstrapOptions, BootstrappedAgent } from "./bootstrap.js";
|
|
16
|
+
export { loadConfig } from "./config/loader.js";
|
|
17
|
+
export type { CliFlags } from "./config/loader.js";
|
|
18
|
+
export type { Config as DeviceAgentConfig } from "./config/schema.js";
|
|
19
|
+
export { fetchBridgeConfig, AgentGatewayError, buildAuthHeaders } from "./adapters/agent-gateway-client.js";
|
|
20
|
+
export type { BridgeConfig, AgentGatewayIdentity } from "./adapters/agent-gateway-client.js";
|
|
21
|
+
export { FileIdentity } from "./adapters/identity-file.js";
|
|
22
|
+
export { AndroidAdbAdapter } from "./adapters/device-android-adb.js";
|
|
23
|
+
export { DesktopAdapter } from "./adapters/device-desktop.js";
|
|
24
|
+
export { InnerLoopVlm } from "./adapters/vlm-inner-loop.js";
|
|
25
|
+
export { InnerLoopAgent } from "./adapters/agentcore-inner-loop.js";
|
|
26
|
+
export { PiOrchestratorAgent } from "./adapters/agentcore-pi.js";
|
|
27
|
+
export type { PiOrchestratorAgentOptions, PiOuterConfig } from "./adapters/agentcore-pi.js";
|
|
28
|
+
export { BridgeWsTransport } from "./adapters/transport-bridge-ws.js";
|
|
29
|
+
export { HTTPGrounder } from "./grounding/grounder.js";
|
|
30
|
+
export type { IGrounder, GrounderConfig } from "./grounding/grounder.js";
|
|
31
|
+
export { getPiExtensionContext, peekPiExtensionContext, setPiExtensionContext, } from "./pi-context.js";
|
|
32
|
+
export type { PiExtensionContext } from "./pi-context.js";
|
|
33
|
+
export { DeviceManager } from "./app/device-manager.js";
|
|
34
|
+
export { AgentHostImpl } from "./app/agent-host.js";
|
|
35
|
+
export { SessionManager } from "./app/session-manager.js";
|
|
36
|
+
export { MessageStore } from "./app/message-store.js";
|
|
37
|
+
export { AcpPlugin } from "./plugins/acp/index.js";
|
|
38
|
+
export { HttpDebugPlugin } from "./plugins/http-debug/index.js";
|
|
39
|
+
export { AgentSyncPlugin } from "./plugins/agent-sync/index.js";
|
|
40
|
+
export { HttpServer } from "./inbound/http/server.js";
|
|
41
|
+
export { AcpRouter, bindRouterToTransport } from "./inbound/acp/router.js";
|
|
42
|
+
export type { IAgentCore, AgentCoreRunOptions, AgentCoreRunResult, ToolCallEvent, VlmStep } from "./ports/agent-core.js";
|
|
43
|
+
export type { AgentHost, AgentEvent, SubmittedTask } from "./ports/agent-host.js";
|
|
44
|
+
export type { AgentPlugin, PluginContext } from "./ports/plugin.js";
|
|
45
|
+
export { DeviceError, VlmError, AcpError } from "./core/errors.js";
|
|
46
|
+
export { McpClient, resolveDefaultMcpUrl } from "./mcp-client/index.js";
|
|
47
|
+
export type { McpClientOptions, CallToolResult } from "./mcp-client/index.js";
|
|
48
|
+
export { AgentLoop, AgentRunner, HierarchicalReflector, LLMPlanner, NoOpPlanner, PlanExecutor, actionsEqual, availableAdapters, clearAdapters, makePrediction, MockAdapter, OpenAIAdapter, parsedToAction, registerAdapter as registerModelAdapter, resolveAdapter as resolveModelAdapter, resolveAdapterSync as resolveModelAdapterSync, UITarsAdapter, } from "./agent-runtime/index.js";
|
|
49
|
+
export type { AdapterDescriptor as ModelAdapterDescriptor, AgentErrorCode, AgentErrorEvent, AgentLoopTerminator, AgentRunHooks as AgentLoopRunHooks, AgentRunOptions as AgentLoopRunOptions, AgentRunResult as AgentLoopRunResult, AgentRunnerOptions, AgentRunnerResult, AgentStepEvent, AgentToolEvent, IModelAdapter, IPlanner, LLMPlannerOptions, MockAdapterOptions, ModelUsage, OpenAIAdapterOptions, Plan, PlanContext, PlanExecutorOptions, PlanExecutorResult, PlanStep, PredictHooks, PredictOptions, Prediction, StepHistory, } from "./agent-runtime/index.js";
|
|
50
|
+
export { StickyPortAllocator, defaultFleetStatePath, } from "./fleet/adapters/state/port-allocator.js";
|
|
51
|
+
export type { PortAllocatorOptions } from "./fleet/adapters/state/port-allocator.js";
|
|
52
|
+
export { BeeosCliStore, defaultDevicesPath, } from "./fleet/adapters/state/beeos-cli-store.js";
|
|
53
|
+
export type { BeeosCliStoreOptions } from "./fleet/adapters/state/beeos-cli-store.js";
|
|
54
|
+
export { LocalAdbSource, diffSnapshots, parseSnapshotBody, parseTrackDevicesLine, tryParseFrames, } from "./fleet/adapters/sources/local-adb.js";
|
|
55
|
+
export type { LocalAdbSourceOptions, AdbLogger, } from "./fleet/adapters/sources/local-adb.js";
|
|
56
|
+
export { RemoteAdbSource, resolveEndpoint, } from "./fleet/adapters/sources/remote-adb.js";
|
|
57
|
+
export type { RemoteAdbSourceOptions, RemoteAdbEndpoint, ResolvedEndpoint, } from "./fleet/adapters/sources/remote-adb.js";
|
|
58
|
+
export { NodeProcessManager } from "./fleet/adapters/process/node-process-manager.js";
|
|
59
|
+
export type { HttpProbeFn, ManagedChild, NodeProcessManagerOptions, ProcessManagerLogger, SpawnFn, } from "./fleet/adapters/process/node-process-manager.js";
|
|
60
|
+
export { FleetSupervisor } from "./fleet/supervisor.js";
|
|
61
|
+
export type { FleetSupervisorOptions, SupervisorLogger } from "./fleet/supervisor.js";
|
|
62
|
+
export { StatusServer } from "./fleet/http/status-server.js";
|
|
63
|
+
export type { StatusServerOptions } from "./fleet/http/status-server.js";
|
|
64
|
+
export { FleetStatusClient, FleetClientError } from "./fleet/http/status-client.js";
|
|
65
|
+
export type { DeviceSnapshot, DeviceBinding, DeviceRecord, FleetState } from "./fleet/domain/device.js";
|
|
66
|
+
export declare const VERSION = "0.4.0";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public API surface for `@beeos-ai/device-agent`.
|
|
3
|
+
*
|
|
4
|
+
* Most users want the CLI binary (`device-agent`); this barrel is for
|
|
5
|
+
* downstream Node.js consumers that want to embed the device-agent
|
|
6
|
+
* components programmatically (e.g. tests, beeos-cli `attach`).
|
|
7
|
+
*
|
|
8
|
+
* Stability: only the symbols re-exported here are part of the public
|
|
9
|
+
* contract. Internal modules (`src/agent.ts`, anything under
|
|
10
|
+
* `inbound/`/`adapters/`) are exposed as deep imports for advanced use
|
|
11
|
+
* cases but may break between minor versions.
|
|
12
|
+
*/
|
|
13
|
+
export { main } from "./inbound/cli/main.js";
|
|
14
|
+
export { bootstrap, BootstrapError } from "./bootstrap.js";
|
|
15
|
+
export { loadConfig } from "./config/loader.js";
|
|
16
|
+
export { fetchBridgeConfig, AgentGatewayError, buildAuthHeaders } from "./adapters/agent-gateway-client.js";
|
|
17
|
+
export { FileIdentity } from "./adapters/identity-file.js";
|
|
18
|
+
export { AndroidAdbAdapter } from "./adapters/device-android-adb.js";
|
|
19
|
+
export { DesktopAdapter } from "./adapters/device-desktop.js";
|
|
20
|
+
export { InnerLoopVlm } from "./adapters/vlm-inner-loop.js";
|
|
21
|
+
export { InnerLoopAgent } from "./adapters/agentcore-inner-loop.js";
|
|
22
|
+
export { PiOrchestratorAgent } from "./adapters/agentcore-pi.js";
|
|
23
|
+
export { BridgeWsTransport } from "./adapters/transport-bridge-ws.js";
|
|
24
|
+
export { HTTPGrounder } from "./grounding/grounder.js";
|
|
25
|
+
export { getPiExtensionContext, peekPiExtensionContext, setPiExtensionContext, } from "./pi-context.js";
|
|
26
|
+
export { DeviceManager } from "./app/device-manager.js";
|
|
27
|
+
export { AgentHostImpl } from "./app/agent-host.js";
|
|
28
|
+
export { SessionManager } from "./app/session-manager.js";
|
|
29
|
+
export { MessageStore } from "./app/message-store.js";
|
|
30
|
+
export { AcpPlugin } from "./plugins/acp/index.js";
|
|
31
|
+
export { HttpDebugPlugin } from "./plugins/http-debug/index.js";
|
|
32
|
+
export { AgentSyncPlugin } from "./plugins/agent-sync/index.js";
|
|
33
|
+
export { HttpServer } from "./inbound/http/server.js";
|
|
34
|
+
export { AcpRouter, bindRouterToTransport } from "./inbound/acp/router.js";
|
|
35
|
+
export { DeviceError, VlmError, AcpError } from "./core/errors.js";
|
|
36
|
+
export { McpClient, resolveDefaultMcpUrl } from "./mcp-client/index.js";
|
|
37
|
+
export { AgentLoop, AgentRunner, HierarchicalReflector, LLMPlanner, NoOpPlanner, PlanExecutor, actionsEqual, availableAdapters, clearAdapters, makePrediction, MockAdapter, OpenAIAdapter, parsedToAction, registerAdapter as registerModelAdapter, resolveAdapter as resolveModelAdapter, resolveAdapterSync as resolveModelAdapterSync, UITarsAdapter, } from "./agent-runtime/index.js";
|
|
38
|
+
// ── Fleet (M1–M4) ──────────────────────────────────────────────────────────
|
|
39
|
+
export { StickyPortAllocator, defaultFleetStatePath, } from "./fleet/adapters/state/port-allocator.js";
|
|
40
|
+
export { BeeosCliStore, defaultDevicesPath, } from "./fleet/adapters/state/beeos-cli-store.js";
|
|
41
|
+
export { LocalAdbSource, diffSnapshots, parseSnapshotBody, parseTrackDevicesLine, tryParseFrames, } from "./fleet/adapters/sources/local-adb.js";
|
|
42
|
+
export { RemoteAdbSource, resolveEndpoint, } from "./fleet/adapters/sources/remote-adb.js";
|
|
43
|
+
export { NodeProcessManager } from "./fleet/adapters/process/node-process-manager.js";
|
|
44
|
+
export { FleetSupervisor } from "./fleet/supervisor.js";
|
|
45
|
+
export { StatusServer } from "./fleet/http/status-server.js";
|
|
46
|
+
export { FleetStatusClient, FleetClientError } from "./fleet/http/status-client.js";
|
|
47
|
+
export const VERSION = "0.4.0";
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAG3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAG5G,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAM3E,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGxE,OAAO,EACL,SAAS,EACT,WAAW,EACX,qBAAqB,EACrB,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,IAAI,oBAAoB,EACvC,cAAc,IAAI,mBAAmB,EACrC,kBAAkB,IAAI,uBAAuB,EAC7C,aAAa,GACd,MAAM,0BAA0B,CAAC;AA8BlC,8EAA8E;AAE9E,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EACL,aAAa,EACb,kBAAkB,GACnB,MAAM,2CAA2C,CAAC;AAGnD,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,GACf,MAAM,uCAAuC,CAAC;AAM/C,OAAO,EACL,eAAe,EACf,eAAe,GAChB,MAAM,wCAAwC,CAAC;AAOhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAStF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAIpF,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured logger (pino). Singleton — every module imports the same instance.
|
|
3
|
+
*
|
|
4
|
+
* Design notes:
|
|
5
|
+
* - JSON output for prod (stdout) — easy to grep / ship to Loki etc.
|
|
6
|
+
* - Pretty-printed for TTY (when DEVAGENT_PRETTY_LOG=1 or stdout.isTTY).
|
|
7
|
+
* - Level overridable via DEVAGENT_LOG_LEVEL env var.
|
|
8
|
+
* - Sensitive fields are redacted via pino's built-in `redact` (paths below).
|
|
9
|
+
* - Correlation IDs (taskId / sessionId / requestId) are propagated through
|
|
10
|
+
* `AsyncLocalStorage` and auto-merged into every log line via the
|
|
11
|
+
* `mixin` hook. Inbound layers populate the store with `runWithCorrelation`.
|
|
12
|
+
*/
|
|
13
|
+
import { type Logger } from "pino";
|
|
14
|
+
export interface CorrelationStore {
|
|
15
|
+
taskId?: string;
|
|
16
|
+
sessionId?: string;
|
|
17
|
+
requestId?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function getLogger(): Logger;
|
|
20
|
+
/** Replace the global logger (tests). */
|
|
21
|
+
export declare function setLogger(l: Logger): void;
|
|
22
|
+
/**
|
|
23
|
+
* Run `fn` with the supplied correlation context attached to every log line
|
|
24
|
+
* and to nested `runWithCorrelation` calls. Existing context entries are
|
|
25
|
+
* preserved unless explicitly overridden in `update`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function runWithCorrelation<T>(update: CorrelationStore, fn: () => T): T;
|
|
28
|
+
/**
|
|
29
|
+
* Enter a correlation context for the current async resource WITHOUT a callback.
|
|
30
|
+
* Required for callback-based middleware (Fastify hooks) where wrapping the
|
|
31
|
+
* downstream handler in `run()` is not possible. Subsequent async work in the
|
|
32
|
+
* same resource chain inherits the store.
|
|
33
|
+
*/
|
|
34
|
+
export declare function enterCorrelation(update: CorrelationStore): void;
|
|
35
|
+
/** Read the current correlation context (empty object outside any `run` scope). */
|
|
36
|
+
export declare function getCorrelation(): CorrelationStore;
|
|
37
|
+
export type { Logger };
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured logger (pino). Singleton — every module imports the same instance.
|
|
3
|
+
*
|
|
4
|
+
* Design notes:
|
|
5
|
+
* - JSON output for prod (stdout) — easy to grep / ship to Loki etc.
|
|
6
|
+
* - Pretty-printed for TTY (when DEVAGENT_PRETTY_LOG=1 or stdout.isTTY).
|
|
7
|
+
* - Level overridable via DEVAGENT_LOG_LEVEL env var.
|
|
8
|
+
* - Sensitive fields are redacted via pino's built-in `redact` (paths below).
|
|
9
|
+
* - Correlation IDs (taskId / sessionId / requestId) are propagated through
|
|
10
|
+
* `AsyncLocalStorage` and auto-merged into every log line via the
|
|
11
|
+
* `mixin` hook. Inbound layers populate the store with `runWithCorrelation`.
|
|
12
|
+
*/
|
|
13
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
14
|
+
import pino from "pino";
|
|
15
|
+
const correlationStorage = new AsyncLocalStorage();
|
|
16
|
+
let instance = null;
|
|
17
|
+
const REDACT_PATHS = [
|
|
18
|
+
"vlmApiKey",
|
|
19
|
+
"apiKey",
|
|
20
|
+
"authorization",
|
|
21
|
+
"Authorization",
|
|
22
|
+
"*.vlmApiKey",
|
|
23
|
+
"*.apiKey",
|
|
24
|
+
"*.authorization",
|
|
25
|
+
"*.signature",
|
|
26
|
+
"*.publicKey",
|
|
27
|
+
"*.X-Signature",
|
|
28
|
+
"*.X-Public-Key",
|
|
29
|
+
"headers.authorization",
|
|
30
|
+
"headers.Authorization",
|
|
31
|
+
"headers.X-Signature",
|
|
32
|
+
"headers.X-Public-Key",
|
|
33
|
+
];
|
|
34
|
+
export function getLogger() {
|
|
35
|
+
if (instance)
|
|
36
|
+
return instance;
|
|
37
|
+
const level = (process.env.DEVAGENT_LOG_LEVEL ?? "info").toLowerCase();
|
|
38
|
+
const pretty = process.env.DEVAGENT_PRETTY_LOG === "1" ||
|
|
39
|
+
(process.env.DEVAGENT_PRETTY_LOG !== "0" && process.stdout.isTTY);
|
|
40
|
+
instance = pino({
|
|
41
|
+
level,
|
|
42
|
+
base: { service: "device-agent" },
|
|
43
|
+
timestamp: pino.stdTimeFunctions.isoTime,
|
|
44
|
+
redact: { paths: REDACT_PATHS, censor: "[REDACTED]" },
|
|
45
|
+
mixin() {
|
|
46
|
+
const store = correlationStorage.getStore();
|
|
47
|
+
return store ? { ...store } : {};
|
|
48
|
+
},
|
|
49
|
+
}, pretty
|
|
50
|
+
? pino.transport({
|
|
51
|
+
target: "pino-pretty",
|
|
52
|
+
options: { colorize: true, translateTime: "SYS:HH:MM:ss.l" },
|
|
53
|
+
})
|
|
54
|
+
: undefined);
|
|
55
|
+
return instance;
|
|
56
|
+
}
|
|
57
|
+
/** Replace the global logger (tests). */
|
|
58
|
+
export function setLogger(l) {
|
|
59
|
+
instance = l;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Run `fn` with the supplied correlation context attached to every log line
|
|
63
|
+
* and to nested `runWithCorrelation` calls. Existing context entries are
|
|
64
|
+
* preserved unless explicitly overridden in `update`.
|
|
65
|
+
*/
|
|
66
|
+
export function runWithCorrelation(update, fn) {
|
|
67
|
+
const current = correlationStorage.getStore() ?? {};
|
|
68
|
+
return correlationStorage.run({ ...current, ...update }, fn);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Enter a correlation context for the current async resource WITHOUT a callback.
|
|
72
|
+
* Required for callback-based middleware (Fastify hooks) where wrapping the
|
|
73
|
+
* downstream handler in `run()` is not possible. Subsequent async work in the
|
|
74
|
+
* same resource chain inherits the store.
|
|
75
|
+
*/
|
|
76
|
+
export function enterCorrelation(update) {
|
|
77
|
+
const current = correlationStorage.getStore() ?? {};
|
|
78
|
+
correlationStorage.enterWith({ ...current, ...update });
|
|
79
|
+
}
|
|
80
|
+
/** Read the current correlation context (empty object outside any `run` scope). */
|
|
81
|
+
export function getCorrelation() {
|
|
82
|
+
return correlationStorage.getStore() ?? {};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,IAAqB,MAAM,MAAM,CAAC;AAQzC,MAAM,kBAAkB,GAAG,IAAI,iBAAiB,EAAoB,CAAC;AAErE,IAAI,QAAQ,GAAkB,IAAI,CAAC;AAEnC,MAAM,YAAY,GAAG;IACnB,WAAW;IACX,QAAQ;IACR,eAAe;IACf,eAAe;IACf,aAAa;IACb,UAAU;IACV,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,eAAe;IACf,gBAAgB;IAChB,uBAAuB;IACvB,uBAAuB;IACvB,qBAAqB;IACrB,sBAAsB;CACvB,CAAC;AAEF,MAAM,UAAU,SAAS;IACvB,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IACvE,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG;QACvC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpE,QAAQ,GAAG,IAAI,CACb;QACE,KAAK;QACL,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;QACjC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO;QACxC,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;QACrD,KAAK;YACH,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,CAAC;KACF,EACD,MAAM;QACJ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YACb,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,EAAE;SAC7D,CAAC;QACJ,CAAC,CAAC,SAAS,CACd,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,QAAQ,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAI,MAAwB,EAAE,EAAW;IACzE,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACpD,OAAO,kBAAkB,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACpD,kBAAkB,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,cAAc;IAC5B,OAAO,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC7C,CAAC"}
|