@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.
Files changed (398) hide show
  1. package/.pi/extensions/android-tools.ts +139 -0
  2. package/.pi/skills/.gitkeep +0 -0
  3. package/.pi/skills/ground-mobile-fallback/SKILL.md +50 -0
  4. package/LICENSE +201 -0
  5. package/dist/action/handler.d.ts +9 -0
  6. package/dist/action/handler.js +124 -0
  7. package/dist/action/handler.js.map +1 -0
  8. package/dist/adapters/agent-gateway-client.d.ts +256 -0
  9. package/dist/adapters/agent-gateway-client.js +332 -0
  10. package/dist/adapters/agent-gateway-client.js.map +1 -0
  11. package/dist/adapters/agentcore-inner-loop.d.ts +29 -0
  12. package/dist/adapters/agentcore-inner-loop.js +72 -0
  13. package/dist/adapters/agentcore-inner-loop.js.map +1 -0
  14. package/dist/adapters/agentcore-pi.d.ts +215 -0
  15. package/dist/adapters/agentcore-pi.js +464 -0
  16. package/dist/adapters/agentcore-pi.js.map +1 -0
  17. package/dist/adapters/agentcore-runner.d.ts +70 -0
  18. package/dist/adapters/agentcore-runner.js +255 -0
  19. package/dist/adapters/agentcore-runner.js.map +1 -0
  20. package/dist/adapters/device-android-adb.d.ts +41 -0
  21. package/dist/adapters/device-android-adb.js +279 -0
  22. package/dist/adapters/device-android-adb.js.map +1 -0
  23. package/dist/adapters/device-desktop.d.ts +37 -0
  24. package/dist/adapters/device-desktop.js +101 -0
  25. package/dist/adapters/device-desktop.js.map +1 -0
  26. package/dist/adapters/identity-file.d.ts +30 -0
  27. package/dist/adapters/identity-file.js +50 -0
  28. package/dist/adapters/identity-file.js.map +1 -0
  29. package/dist/adapters/transport-bridge-ws.d.ts +39 -0
  30. package/dist/adapters/transport-bridge-ws.js +49 -0
  31. package/dist/adapters/transport-bridge-ws.js.map +1 -0
  32. package/dist/adapters/vlm-inner-loop.d.ts +88 -0
  33. package/dist/adapters/vlm-inner-loop.js +199 -0
  34. package/dist/adapters/vlm-inner-loop.js.map +1 -0
  35. package/dist/agent-runtime/adapters/base.d.ts +145 -0
  36. package/dist/agent-runtime/adapters/base.js +29 -0
  37. package/dist/agent-runtime/adapters/base.js.map +1 -0
  38. package/dist/agent-runtime/adapters/index.d.ts +17 -0
  39. package/dist/agent-runtime/adapters/index.js +17 -0
  40. package/dist/agent-runtime/adapters/index.js.map +1 -0
  41. package/dist/agent-runtime/adapters/mock.d.ts +44 -0
  42. package/dist/agent-runtime/adapters/mock.js +54 -0
  43. package/dist/agent-runtime/adapters/mock.js.map +1 -0
  44. package/dist/agent-runtime/adapters/openai.d.ts +63 -0
  45. package/dist/agent-runtime/adapters/openai.js +302 -0
  46. package/dist/agent-runtime/adapters/openai.js.map +1 -0
  47. package/dist/agent-runtime/adapters/registry.d.ts +49 -0
  48. package/dist/agent-runtime/adapters/registry.js +129 -0
  49. package/dist/agent-runtime/adapters/registry.js.map +1 -0
  50. package/dist/agent-runtime/adapters/ui-tars.d.ts +13 -0
  51. package/dist/agent-runtime/adapters/ui-tars.js +22 -0
  52. package/dist/agent-runtime/adapters/ui-tars.js.map +1 -0
  53. package/dist/agent-runtime/agent-runner.d.ts +149 -0
  54. package/dist/agent-runtime/agent-runner.js +356 -0
  55. package/dist/agent-runtime/agent-runner.js.map +1 -0
  56. package/dist/agent-runtime/core.d.ts +170 -0
  57. package/dist/agent-runtime/core.js +624 -0
  58. package/dist/agent-runtime/core.js.map +1 -0
  59. package/dist/agent-runtime/index.d.ts +16 -0
  60. package/dist/agent-runtime/index.js +17 -0
  61. package/dist/agent-runtime/index.js.map +1 -0
  62. package/dist/agent-runtime/plan-executor.d.ts +118 -0
  63. package/dist/agent-runtime/plan-executor.js +501 -0
  64. package/dist/agent-runtime/plan-executor.js.map +1 -0
  65. package/dist/agent-runtime/planner/base.d.ts +128 -0
  66. package/dist/agent-runtime/planner/base.js +157 -0
  67. package/dist/agent-runtime/planner/base.js.map +1 -0
  68. package/dist/agent-runtime/planner/llm-planner.d.ts +58 -0
  69. package/dist/agent-runtime/planner/llm-planner.js +112 -0
  70. package/dist/agent-runtime/planner/llm-planner.js.map +1 -0
  71. package/dist/agent-runtime/planner/noop-planner.d.ts +13 -0
  72. package/dist/agent-runtime/planner/noop-planner.js +30 -0
  73. package/dist/agent-runtime/planner/noop-planner.js.map +1 -0
  74. package/dist/agent-runtime/planner/prompts.d.ts +33 -0
  75. package/dist/agent-runtime/planner/prompts.js +165 -0
  76. package/dist/agent-runtime/planner/prompts.js.map +1 -0
  77. package/dist/agent-runtime/reflection.d.ts +81 -0
  78. package/dist/agent-runtime/reflection.js +189 -0
  79. package/dist/agent-runtime/reflection.js.map +1 -0
  80. package/dist/agent-runtime/reflectors/action-reflector.d.ts +97 -0
  81. package/dist/agent-runtime/reflectors/action-reflector.js +233 -0
  82. package/dist/agent-runtime/reflectors/action-reflector.js.map +1 -0
  83. package/dist/agent-runtime/reflectors/policy.d.ts +53 -0
  84. package/dist/agent-runtime/reflectors/policy.js +106 -0
  85. package/dist/agent-runtime/reflectors/policy.js.map +1 -0
  86. package/dist/agent-runtime/reflectors/trajectory-reflector.d.ts +94 -0
  87. package/dist/agent-runtime/reflectors/trajectory-reflector.js +223 -0
  88. package/dist/agent-runtime/reflectors/trajectory-reflector.js.map +1 -0
  89. package/dist/agent-runtime/skills/embedding.d.ts +53 -0
  90. package/dist/agent-runtime/skills/embedding.js +134 -0
  91. package/dist/agent-runtime/skills/embedding.js.map +1 -0
  92. package/dist/agent-runtime/skills/fs-store.d.ts +88 -0
  93. package/dist/agent-runtime/skills/fs-store.js +483 -0
  94. package/dist/agent-runtime/skills/fs-store.js.map +1 -0
  95. package/dist/agent-runtime/skills/index.d.ts +10 -0
  96. package/dist/agent-runtime/skills/index.js +10 -0
  97. package/dist/agent-runtime/skills/index.js.map +1 -0
  98. package/dist/agent-runtime/skills/matcher-evolver.d.ts +88 -0
  99. package/dist/agent-runtime/skills/matcher-evolver.js +110 -0
  100. package/dist/agent-runtime/skills/matcher-evolver.js.map +1 -0
  101. package/dist/agent-runtime/skills/memory-store.d.ts +23 -0
  102. package/dist/agent-runtime/skills/memory-store.js +94 -0
  103. package/dist/agent-runtime/skills/memory-store.js.map +1 -0
  104. package/dist/agent-runtime/skills/normalise.d.ts +40 -0
  105. package/dist/agent-runtime/skills/normalise.js +152 -0
  106. package/dist/agent-runtime/skills/normalise.js.map +1 -0
  107. package/dist/agent-runtime/skills/replay.d.ts +46 -0
  108. package/dist/agent-runtime/skills/replay.js +106 -0
  109. package/dist/agent-runtime/skills/replay.js.map +1 -0
  110. package/dist/agent-runtime/skills/sqlite-store.d.ts +60 -0
  111. package/dist/agent-runtime/skills/sqlite-store.js +234 -0
  112. package/dist/agent-runtime/skills/sqlite-store.js.map +1 -0
  113. package/dist/agent-runtime/skills/types.d.ts +99 -0
  114. package/dist/agent-runtime/skills/types.js +14 -0
  115. package/dist/agent-runtime/skills/types.js.map +1 -0
  116. package/dist/agent.d.ts +110 -0
  117. package/dist/agent.js +162 -0
  118. package/dist/agent.js.map +1 -0
  119. package/dist/api.d.ts +27 -0
  120. package/dist/api.js +48 -0
  121. package/dist/api.js.map +1 -0
  122. package/dist/app/agent-host.d.ts +59 -0
  123. package/dist/app/agent-host.js +263 -0
  124. package/dist/app/agent-host.js.map +1 -0
  125. package/dist/app/device-manager.d.ts +28 -0
  126. package/dist/app/device-manager.js +64 -0
  127. package/dist/app/device-manager.js.map +1 -0
  128. package/dist/app/message-store.d.ts +55 -0
  129. package/dist/app/message-store.js +99 -0
  130. package/dist/app/message-store.js.map +1 -0
  131. package/dist/app/session-manager.d.ts +132 -0
  132. package/dist/app/session-manager.js +350 -0
  133. package/dist/app/session-manager.js.map +1 -0
  134. package/dist/bootstrap.d.ts +94 -0
  135. package/dist/bootstrap.js +459 -0
  136. package/dist/bootstrap.js.map +1 -0
  137. package/dist/chat.d.ts +16 -0
  138. package/dist/chat.js +175 -0
  139. package/dist/chat.js.map +1 -0
  140. package/dist/config/loader.d.ts +77 -0
  141. package/dist/config/loader.js +292 -0
  142. package/dist/config/loader.js.map +1 -0
  143. package/dist/config/schema.d.ts +162 -0
  144. package/dist/config/schema.js +243 -0
  145. package/dist/config/schema.js.map +1 -0
  146. package/dist/core/actions.d.ts +60 -0
  147. package/dist/core/actions.js +120 -0
  148. package/dist/core/actions.js.map +1 -0
  149. package/dist/core/errors.d.ts +8 -0
  150. package/dist/core/errors.js +9 -0
  151. package/dist/core/errors.js.map +1 -0
  152. package/dist/core/screen.d.ts +7 -0
  153. package/dist/core/screen.js +8 -0
  154. package/dist/core/screen.js.map +1 -0
  155. package/dist/core/session.d.ts +42 -0
  156. package/dist/core/session.js +29 -0
  157. package/dist/core/session.js.map +1 -0
  158. package/dist/debug/dump-system-prompt.d.ts +1 -0
  159. package/dist/debug/dump-system-prompt.js +34 -0
  160. package/dist/debug/dump-system-prompt.js.map +1 -0
  161. package/dist/device/android.d.ts +25 -0
  162. package/dist/device/android.js +231 -0
  163. package/dist/device/android.js.map +1 -0
  164. package/dist/device/apps.d.ts +3 -0
  165. package/dist/device/apps.js +77 -0
  166. package/dist/device/apps.js.map +1 -0
  167. package/dist/device/base.d.ts +20 -0
  168. package/dist/device/base.js +2 -0
  169. package/dist/device/base.js.map +1 -0
  170. package/dist/device/ui-xml.d.ts +29 -0
  171. package/dist/device/ui-xml.js +194 -0
  172. package/dist/device/ui-xml.js.map +1 -0
  173. package/dist/fleet/adapters/process/node-process-manager.d.ts +157 -0
  174. package/dist/fleet/adapters/process/node-process-manager.js +664 -0
  175. package/dist/fleet/adapters/process/node-process-manager.js.map +1 -0
  176. package/dist/fleet/adapters/sources/local-adb.d.ts +105 -0
  177. package/dist/fleet/adapters/sources/local-adb.js +353 -0
  178. package/dist/fleet/adapters/sources/local-adb.js.map +1 -0
  179. package/dist/fleet/adapters/sources/remote-adb.d.ts +97 -0
  180. package/dist/fleet/adapters/sources/remote-adb.js +138 -0
  181. package/dist/fleet/adapters/sources/remote-adb.js.map +1 -0
  182. package/dist/fleet/adapters/state/beeos-cli-store.d.ts +72 -0
  183. package/dist/fleet/adapters/state/beeos-cli-store.js +250 -0
  184. package/dist/fleet/adapters/state/beeos-cli-store.js.map +1 -0
  185. package/dist/fleet/adapters/state/port-allocator.d.ts +43 -0
  186. package/dist/fleet/adapters/state/port-allocator.js +173 -0
  187. package/dist/fleet/adapters/state/port-allocator.js.map +1 -0
  188. package/dist/fleet/domain/device.d.ts +138 -0
  189. package/dist/fleet/domain/device.js +49 -0
  190. package/dist/fleet/domain/device.js.map +1 -0
  191. package/dist/fleet/domain/events.d.ts +102 -0
  192. package/dist/fleet/domain/events.js +15 -0
  193. package/dist/fleet/domain/events.js.map +1 -0
  194. package/dist/fleet/domain/fsm.d.ts +122 -0
  195. package/dist/fleet/domain/fsm.js +475 -0
  196. package/dist/fleet/domain/fsm.js.map +1 -0
  197. package/dist/fleet/http/status-client.d.ts +31 -0
  198. package/dist/fleet/http/status-client.js +115 -0
  199. package/dist/fleet/http/status-client.js.map +1 -0
  200. package/dist/fleet/http/status-server.d.ts +64 -0
  201. package/dist/fleet/http/status-server.js +200 -0
  202. package/dist/fleet/http/status-server.js.map +1 -0
  203. package/dist/fleet/index.d.ts +27 -0
  204. package/dist/fleet/index.js +17 -0
  205. package/dist/fleet/index.js.map +1 -0
  206. package/dist/fleet/installer/index.d.ts +12 -0
  207. package/dist/fleet/installer/index.js +13 -0
  208. package/dist/fleet/installer/index.js.map +1 -0
  209. package/dist/fleet/installer/launchd-mac.d.ts +73 -0
  210. package/dist/fleet/installer/launchd-mac.js +291 -0
  211. package/dist/fleet/installer/launchd-mac.js.map +1 -0
  212. package/dist/fleet/installer/service-spec.d.ts +70 -0
  213. package/dist/fleet/installer/service-spec.js +43 -0
  214. package/dist/fleet/installer/service-spec.js.map +1 -0
  215. package/dist/fleet/installer/spawn-env.d.ts +45 -0
  216. package/dist/fleet/installer/spawn-env.js +224 -0
  217. package/dist/fleet/installer/spawn-env.js.map +1 -0
  218. package/dist/fleet/ports/clock.d.ts +19 -0
  219. package/dist/fleet/ports/clock.js +26 -0
  220. package/dist/fleet/ports/clock.js.map +1 -0
  221. package/dist/fleet/ports/device-source.d.ts +28 -0
  222. package/dist/fleet/ports/device-source.js +18 -0
  223. package/dist/fleet/ports/device-source.js.map +1 -0
  224. package/dist/fleet/ports/process-manager.d.ts +110 -0
  225. package/dist/fleet/ports/process-manager.js +27 -0
  226. package/dist/fleet/ports/process-manager.js.map +1 -0
  227. package/dist/fleet/ports/state-registry.d.ts +49 -0
  228. package/dist/fleet/ports/state-registry.js +12 -0
  229. package/dist/fleet/ports/state-registry.js.map +1 -0
  230. package/dist/fleet/supervisor.d.ts +107 -0
  231. package/dist/fleet/supervisor.js +508 -0
  232. package/dist/fleet/supervisor.js.map +1 -0
  233. package/dist/grounding/grounder.d.ts +46 -0
  234. package/dist/grounding/grounder.js +82 -0
  235. package/dist/grounding/grounder.js.map +1 -0
  236. package/dist/inbound/acp/handlers/device.d.ts +43 -0
  237. package/dist/inbound/acp/handlers/device.js +153 -0
  238. package/dist/inbound/acp/handlers/device.js.map +1 -0
  239. package/dist/inbound/acp/handlers/initialize.d.ts +71 -0
  240. package/dist/inbound/acp/handlers/initialize.js +53 -0
  241. package/dist/inbound/acp/handlers/initialize.js.map +1 -0
  242. package/dist/inbound/acp/handlers/models.d.ts +16 -0
  243. package/dist/inbound/acp/handlers/models.js +23 -0
  244. package/dist/inbound/acp/handlers/models.js.map +1 -0
  245. package/dist/inbound/acp/handlers/session.d.ts +51 -0
  246. package/dist/inbound/acp/handlers/session.js +61 -0
  247. package/dist/inbound/acp/handlers/session.js.map +1 -0
  248. package/dist/inbound/acp/handlers/skills.d.ts +8 -0
  249. package/dist/inbound/acp/handlers/skills.js +9 -0
  250. package/dist/inbound/acp/handlers/skills.js.map +1 -0
  251. package/dist/inbound/acp/notifier.d.ts +35 -0
  252. package/dist/inbound/acp/notifier.js +45 -0
  253. package/dist/inbound/acp/notifier.js.map +1 -0
  254. package/dist/inbound/acp/router.d.ts +67 -0
  255. package/dist/inbound/acp/router.js +179 -0
  256. package/dist/inbound/acp/router.js.map +1 -0
  257. package/dist/inbound/cli/fleet-command.d.ts +34 -0
  258. package/dist/inbound/cli/fleet-command.js +792 -0
  259. package/dist/inbound/cli/fleet-command.js.map +1 -0
  260. package/dist/inbound/cli/main.d.ts +38 -0
  261. package/dist/inbound/cli/main.js +364 -0
  262. package/dist/inbound/cli/main.js.map +1 -0
  263. package/dist/inbound/cli/run-command.d.ts +101 -0
  264. package/dist/inbound/cli/run-command.js +405 -0
  265. package/dist/inbound/cli/run-command.js.map +1 -0
  266. package/dist/inbound/cli/skills-command.d.ts +39 -0
  267. package/dist/inbound/cli/skills-command.js +333 -0
  268. package/dist/inbound/cli/skills-command.js.map +1 -0
  269. package/dist/inbound/http/server.d.ts +7 -0
  270. package/dist/inbound/http/server.js +8 -0
  271. package/dist/inbound/http/server.js.map +1 -0
  272. package/dist/index.d.ts +66 -0
  273. package/dist/index.js +48 -0
  274. package/dist/index.js.map +1 -0
  275. package/dist/logger/index.d.ts +37 -0
  276. package/dist/logger/index.js +84 -0
  277. package/dist/logger/index.js.map +1 -0
  278. package/dist/mcp-client/autospawn.d.ts +67 -0
  279. package/dist/mcp-client/autospawn.js +173 -0
  280. package/dist/mcp-client/autospawn.js.map +1 -0
  281. package/dist/mcp-client/client.d.ts +78 -0
  282. package/dist/mcp-client/client.js +168 -0
  283. package/dist/mcp-client/client.js.map +1 -0
  284. package/dist/mcp-client/index.d.ts +7 -0
  285. package/dist/mcp-client/index.js +4 -0
  286. package/dist/mcp-client/index.js.map +1 -0
  287. package/dist/mcp-client/inproc.d.ts +47 -0
  288. package/dist/mcp-client/inproc.js +229 -0
  289. package/dist/mcp-client/inproc.js.map +1 -0
  290. package/dist/mcp-client/runtime.d.ts +34 -0
  291. package/dist/mcp-client/runtime.js +15 -0
  292. package/dist/mcp-client/runtime.js.map +1 -0
  293. package/dist/model/adapters/autoglm.d.ts +31 -0
  294. package/dist/model/adapters/autoglm.js +409 -0
  295. package/dist/model/adapters/autoglm.js.map +1 -0
  296. package/dist/model/adapters/base.d.ts +13 -0
  297. package/dist/model/adapters/base.js +27 -0
  298. package/dist/model/adapters/base.js.map +1 -0
  299. package/dist/model/adapters/guiowl.d.ts +1 -0
  300. package/dist/model/adapters/guiowl.js +253 -0
  301. package/dist/model/adapters/guiowl.js.map +1 -0
  302. package/dist/model/adapters/index.d.ts +6 -0
  303. package/dist/model/adapters/index.js +8 -0
  304. package/dist/model/adapters/index.js.map +1 -0
  305. package/dist/model/adapters/maiui.d.ts +1 -0
  306. package/dist/model/adapters/maiui.js +117 -0
  307. package/dist/model/adapters/maiui.js.map +1 -0
  308. package/dist/model/adapters/qwenvl.d.ts +1 -0
  309. package/dist/model/adapters/qwenvl.js +108 -0
  310. package/dist/model/adapters/qwenvl.js.map +1 -0
  311. package/dist/model/adapters/showui.d.ts +1 -0
  312. package/dist/model/adapters/showui.js +132 -0
  313. package/dist/model/adapters/showui.js.map +1 -0
  314. package/dist/model/adapters/tool-call.d.ts +6 -0
  315. package/dist/model/adapters/tool-call.js +102 -0
  316. package/dist/model/adapters/tool-call.js.map +1 -0
  317. package/dist/model/adapters/uitars.d.ts +1 -0
  318. package/dist/model/adapters/uitars.js +180 -0
  319. package/dist/model/adapters/uitars.js.map +1 -0
  320. package/dist/model/base.d.ts +32 -0
  321. package/dist/model/base.js +2 -0
  322. package/dist/model/base.js.map +1 -0
  323. package/dist/model/client.d.ts +26 -0
  324. package/dist/model/client.js +300 -0
  325. package/dist/model/client.js.map +1 -0
  326. package/dist/model/image/compress.d.ts +53 -0
  327. package/dist/model/image/compress.js +89 -0
  328. package/dist/model/image/compress.js.map +1 -0
  329. package/dist/model/image/transport.d.ts +134 -0
  330. package/dist/model/image/transport.js +154 -0
  331. package/dist/model/image/transport.js.map +1 -0
  332. package/dist/orchestrator-system-prompt.d.ts +6 -0
  333. package/dist/orchestrator-system-prompt.js +81 -0
  334. package/dist/orchestrator-system-prompt.js.map +1 -0
  335. package/dist/pi-context.d.ts +82 -0
  336. package/dist/pi-context.js +62 -0
  337. package/dist/pi-context.js.map +1 -0
  338. package/dist/pi-local-skills.d.ts +17 -0
  339. package/dist/pi-local-skills.js +24 -0
  340. package/dist/pi-local-skills.js.map +1 -0
  341. package/dist/plugins/acp/index.d.ts +46 -0
  342. package/dist/plugins/acp/index.js +111 -0
  343. package/dist/plugins/acp/index.js.map +1 -0
  344. package/dist/plugins/agent-sync/index.d.ts +40 -0
  345. package/dist/plugins/agent-sync/index.js +98 -0
  346. package/dist/plugins/agent-sync/index.js.map +1 -0
  347. package/dist/plugins/http-debug/index.d.ts +30 -0
  348. package/dist/plugins/http-debug/index.js +64 -0
  349. package/dist/plugins/http-debug/index.js.map +1 -0
  350. package/dist/plugins/http-debug/server.d.ts +92 -0
  351. package/dist/plugins/http-debug/server.js +464 -0
  352. package/dist/plugins/http-debug/server.js.map +1 -0
  353. package/dist/ports/agent-core.d.ts +158 -0
  354. package/dist/ports/agent-core.js +2 -0
  355. package/dist/ports/agent-core.js.map +1 -0
  356. package/dist/ports/agent-host.d.ts +125 -0
  357. package/dist/ports/agent-host.js +23 -0
  358. package/dist/ports/agent-host.js.map +1 -0
  359. package/dist/ports/device.d.ts +53 -0
  360. package/dist/ports/device.js +13 -0
  361. package/dist/ports/device.js.map +1 -0
  362. package/dist/ports/identity.d.ts +22 -0
  363. package/dist/ports/identity.js +9 -0
  364. package/dist/ports/identity.js.map +1 -0
  365. package/dist/ports/plugin.d.ts +62 -0
  366. package/dist/ports/plugin.js +35 -0
  367. package/dist/ports/plugin.js.map +1 -0
  368. package/dist/ports/transport.d.ts +32 -0
  369. package/dist/ports/transport.js +12 -0
  370. package/dist/ports/transport.js.map +1 -0
  371. package/dist/ports/vlm.d.ts +59 -0
  372. package/dist/ports/vlm.js +14 -0
  373. package/dist/ports/vlm.js.map +1 -0
  374. package/dist/test-lan-autoglm.d.ts +7 -0
  375. package/dist/test-lan-autoglm.js +46 -0
  376. package/dist/test-lan-autoglm.js.map +1 -0
  377. package/dist/test-mem-breakdown.d.ts +1 -0
  378. package/dist/test-mem-breakdown.js +103 -0
  379. package/dist/test-mem-breakdown.js.map +1 -0
  380. package/dist/test-mem.d.ts +1 -0
  381. package/dist/test-mem.js +60 -0
  382. package/dist/test-mem.js.map +1 -0
  383. package/dist/test-mobile-use.d.ts +1 -0
  384. package/dist/test-mobile-use.js +18 -0
  385. package/dist/test-mobile-use.js.map +1 -0
  386. package/dist/test-screenshot-loop.d.ts +1 -0
  387. package/dist/test-screenshot-loop.js +43 -0
  388. package/dist/test-screenshot-loop.js.map +1 -0
  389. package/dist/test-screenshot.d.ts +1 -0
  390. package/dist/test-screenshot.js +10 -0
  391. package/dist/test-screenshot.js.map +1 -0
  392. package/dist/test-ui-xml-dump.d.ts +15 -0
  393. package/dist/test-ui-xml-dump.js +49 -0
  394. package/dist/test-ui-xml-dump.js.map +1 -0
  395. package/dist/types.d.ts +69 -0
  396. package/dist/types.js +23 -0
  397. package/dist/types.js.map +1 -0
  398. 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"}
@@ -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"}