@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,459 @@
1
+ /**
2
+ * Bootstrap — wire up the agent core, host, and plugins.
3
+ *
4
+ * High-level flow:
5
+ *
6
+ * 1. Load identity (Ed25519 keypair on disk).
7
+ * 2. Discover Bridge URL via Agent Gateway (when not standalone).
8
+ * 3. Build the device adapter (`IDevice`) and a `DeviceManager`.
9
+ * 4. Build the agent core (v0.3.0 default = AgentRunner Hybrid Plan-Act):
10
+ * - default → `AgentRunnerCore`
11
+ * (one shared `AgentRunner` driving the new agent-runtime
12
+ * `AgentLoop` + optional `LLMPlanner` via OpenAI-compat client.
13
+ * Wired to the AutoGLM-Phone family via the `OpenAIAdapter`
14
+ * adapter registry pattern.)
15
+ * - `legacyInner: true` → `InnerLoopAgent` over `InnerLoopVlm`
16
+ * (single-layer fallback; opt-in)
17
+ * - `pi: true` → `PiOrchestratorAgent`
18
+ * (outer text LLM + inner mobile_use VLM; opt-in)
19
+ * 5. Construct `AgentHostImpl` around the agent.
20
+ * 6. Register plugins in this order: agent-sync, http-debug, acp.
21
+ * The acp plugin is started LAST so the bridge connection only opens
22
+ * after agent-sync has registered the device-agent in the platform's
23
+ * Agents directory.
24
+ * 7. Run `init()` on every plugin sequentially, then `start()`.
25
+ * 8. Return a `stop()` function that tears down plugins in reverse order.
26
+ *
27
+ * Custom callers (tests, EdgeAgent embeds, alternate CLIs) can call
28
+ * `bootstrap()` directly with a custom plugin list to compose the agent
29
+ * however they want — every behavior beyond the core (HTTP, ACP, sync,
30
+ * any future skill plugin) is opt-in.
31
+ */
32
+ import { getLogger } from "./logger/index.js";
33
+ import { loadConfig } from "./config/loader.js";
34
+ import { FileIdentity } from "./adapters/identity-file.js";
35
+ import { AndroidAdbAdapter } from "./adapters/device-android-adb.js";
36
+ import { DesktopAdapter } from "./adapters/device-desktop.js";
37
+ import { InnerLoopVlm, unwrapInnerDevice } from "./adapters/vlm-inner-loop.js";
38
+ import { InnerLoopAgent } from "./adapters/agentcore-inner-loop.js";
39
+ import { PiOrchestratorAgent } from "./adapters/agentcore-pi.js";
40
+ import { AgentRunnerCore } from "./adapters/agentcore-runner.js";
41
+ import { OpenAIAdapter } from "./agent-runtime/adapters/openai.js";
42
+ import { LLMPlanner } from "./agent-runtime/planner/llm-planner.js";
43
+ import { OpenAIClient } from "./model/client.js";
44
+ import { fetchBridgeConfig, } from "./adapters/agent-gateway-client.js";
45
+ import { AgentGatewayFileClient, DataUrlTransport, FallbackTransport, HttpUrlTransport, } from "./model/image/transport.js";
46
+ import { DeviceManager } from "./app/device-manager.js";
47
+ import { AgentHostImpl } from "./app/agent-host.js";
48
+ import { AcpPlugin } from "./plugins/acp/index.js";
49
+ import { HttpDebugPlugin } from "./plugins/http-debug/index.js";
50
+ import { AgentSyncPlugin } from "./plugins/agent-sync/index.js";
51
+ import { HTTPGrounder } from "./grounding/grounder.js";
52
+ import { formatUiXmlToolOutput } from "./device/ui-xml.js";
53
+ import { McpClient, InProcMcpClient, autospawnMcpServer, } from "./mcp-client/index.js";
54
+ export async function bootstrap(opts = {}) {
55
+ const log = opts.logger ?? getLogger();
56
+ const config = { ...loadConfig(opts.flags ?? {}), ...(opts.configOverride ?? {}) };
57
+ log.level = config.logLevel;
58
+ // ── Identity (always loaded — used both for AGW discovery and bridge auth)
59
+ const identity = new FileIdentity({ keyFile: config.keyFile });
60
+ let kp = null;
61
+ if (!config.standalone) {
62
+ kp = await identity.ensure();
63
+ log.info({ fingerprint: await identity.fingerprint(), keyFile: identity.path }, "ed25519 identity ready");
64
+ }
65
+ // ── Bridge URL discovery ────────────────────────────────────────────────
66
+ if (!config.standalone && !config.bridgeUrl) {
67
+ if (!kp || !config.agentGatewayUrl) {
68
+ throw new BootstrapError("bridgeUrl discovery requires --agent-gateway-url and --key (or pass --bridge to override)", 2);
69
+ }
70
+ try {
71
+ log.info({ agentGatewayUrl: config.agentGatewayUrl, region: config.region || "(default)" }, "discovering bridge URL via Agent Gateway");
72
+ const bc = await fetchBridgeConfig({
73
+ agentGatewayUrl: config.agentGatewayUrl,
74
+ region: config.region || undefined,
75
+ identity: kp,
76
+ });
77
+ config.bridgeUrl = bc.url;
78
+ log.info({ bridgeUrl: bc.url, region: bc.region }, "bridge URL resolved");
79
+ }
80
+ catch (e) {
81
+ const ae = e;
82
+ throw new BootstrapError(`bridge URL discovery failed: ${ae.message}`, 3, { status: ae.status, body: ae.body });
83
+ }
84
+ }
85
+ log.info({
86
+ mode: config.mode,
87
+ bridge: config.standalone ? "(standalone)" : config.bridgeUrl,
88
+ http: config.httpEnabled ? `${config.httpHost}:${config.httpPort}` : "(off)",
89
+ mcpUrl: config.mcpUrl || "(off)",
90
+ mobileUseModel: config.mobileUse.model || "(default)",
91
+ core: config.legacyInner
92
+ ? "InnerLoopAgent (legacyInner=true)"
93
+ : config.pi
94
+ ? `PiOrchestratorAgent (pi=true, outer=${config.outer.model})`
95
+ : `AgentRunnerCore (default, plan=${config.planMode})`,
96
+ }, "device-agent booting");
97
+ // ── MCP server: autospawn or probe an external one ──────────────────────
98
+ // Three modes:
99
+ // 1. `mcpAutospawn=true` → fork the sibling `device-mcp-server` here,
100
+ // then point an `McpClient` at the auto-allocated port.
101
+ // 2. `mcpUrl` is set → just probe `/healthz` until ready.
102
+ // 3. Neither → legacy in-process device adapter (deprecated
103
+ // after 0.2.0; warned about below).
104
+ let mcp;
105
+ let mcpHandle;
106
+ if (config.mcpAutospawn) {
107
+ if (config.mcpUrl) {
108
+ log.warn({ mcpUrl: config.mcpUrl }, "mcp: --mcp-autospawn overrides --mcp-url; spawning a fresh sibling");
109
+ }
110
+ try {
111
+ mcpHandle = await autospawnMcpServer({
112
+ backend: config.mode === "desktop" ? "desktop" : "android",
113
+ adbSerial: config.adbSerial,
114
+ logger: log,
115
+ });
116
+ }
117
+ catch (e) {
118
+ throw new BootstrapError(`MCP autospawn failed: ${e.message}`, 5, { code: "MCP_AUTOSPAWN_FAILED" });
119
+ }
120
+ config.mcpUrl = mcpHandle.url;
121
+ log.info({ mcpUrl: mcpHandle.url, pid: mcpHandle.child.pid }, "mcp: autospawned");
122
+ }
123
+ if (config.mcpUrl) {
124
+ mcp = new McpClient({ baseUrl: config.mcpUrl });
125
+ try {
126
+ const h = await mcp.waitUntilReady({
127
+ attempts: config.mcpReadyAttempts,
128
+ attemptDelayMs: config.mcpReadyAttemptDelayMs,
129
+ });
130
+ log.info({ mcpUrl: config.mcpUrl, backend: h.backend, tools: h.tools?.length ?? 0 }, "mcp server ready");
131
+ }
132
+ catch (e) {
133
+ // Tear down a child we just spawned so we don't leak processes on
134
+ // a probe failure during cold start.
135
+ if (mcpHandle) {
136
+ await mcpHandle.stop().catch(() => undefined);
137
+ }
138
+ const ue = e;
139
+ throw new BootstrapError(`MCP server probe failed at ${config.mcpUrl}: ${ue.message}`, 4, { code: ue.code ?? "MCP_UNREACHABLE", url: config.mcpUrl });
140
+ }
141
+ }
142
+ else {
143
+ log.warn("mcp: no --mcp-url and --mcp-autospawn=false — using in-process device adapter (deprecated after 0.2.0)");
144
+ }
145
+ // ── Outbound device adapter ──────────────────────────────────────────────
146
+ const device = opts.deviceOverride ??
147
+ (config.mode === "desktop"
148
+ ? new DesktopAdapter()
149
+ : new AndroidAdbAdapter({ serial: config.adbSerial }));
150
+ const devices = new DeviceManager();
151
+ await devices.register(device);
152
+ log.info(`device registered: ${(await device.getInfo().catch(() => null))?.name ?? "?"}`);
153
+ // ── MCP runtime resolver ────────────────────────────────────────────────
154
+ // The pi orchestrator and the ACP plugin both consume the device through
155
+ // an `IMcpRuntime` rather than reaching into `DeviceManager` directly.
156
+ // When `config.mcpUrl` is set we hand them the sibling HTTP client;
157
+ // otherwise we wrap the legacy in-process device in `InProcMcpClient`
158
+ // so existing single-process deployments keep working with no behaviour
159
+ // change. The InProc bridge is given the high-level `IDevice` so ACP
160
+ // `device/info`, `device/install`, and `device/shell` work in the
161
+ // legacy path too.
162
+ const mcpProvider = mcp
163
+ ? () => mcp
164
+ : () => {
165
+ const idevice = devices.active();
166
+ return new InProcMcpClient(unwrapInnerDevice(idevice), { idevice });
167
+ };
168
+ // ── VLM image transport ─────────────────────────────────────────────────
169
+ // Single source of truth for the screenshot delivery strategy. We build
170
+ // it once here and inject the SAME instance into both the OpenAI adapter
171
+ // (used by AgentRunnerCore) and the HTTPGrounder (used by the pi
172
+ // orchestrator) so a fleet-wide config flip is atomic and metrics
173
+ // attribute uniformly.
174
+ const imageTransport = buildImageTransport(config, kp, log);
175
+ log.info({
176
+ transport: imageTransport.name,
177
+ keyPrefix: config.vlmImageKeyPrefix,
178
+ }, "vlm image transport ready");
179
+ // ── Agent core ───────────────────────────────────────────────────────────
180
+ const agent = opts.agentOverride ?? buildAgentCore(config, devices, mcpProvider, imageTransport, log);
181
+ const host = new AgentHostImpl({
182
+ agent,
183
+ devices,
184
+ identity,
185
+ logger: log,
186
+ defaultMaxSteps: config.maxSteps,
187
+ });
188
+ // ── Plugins ──────────────────────────────────────────────────────────────
189
+ const plugins = opts.pluginsOverride ??
190
+ buildDefaultPlugins({
191
+ config,
192
+ devices,
193
+ identity,
194
+ keypair: kp,
195
+ version: opts.version ?? "0.0.0",
196
+ buildDeclarations: opts.buildDeclarations,
197
+ mcpProvider,
198
+ });
199
+ const ctx = { host, config, log };
200
+ for (const p of plugins) {
201
+ if (p.init)
202
+ await p.init(ctx);
203
+ }
204
+ for (const p of plugins) {
205
+ if (p.start)
206
+ await p.start();
207
+ }
208
+ let stopped = false;
209
+ const stop = async () => {
210
+ if (stopped)
211
+ return;
212
+ stopped = true;
213
+ log.info("shutting down…");
214
+ for (const p of [...plugins].reverse()) {
215
+ if (!p.stop)
216
+ continue;
217
+ try {
218
+ await p.stop();
219
+ }
220
+ catch (e) {
221
+ log.warn({ err: e.message, plugin: p.name }, "plugin stop failed");
222
+ }
223
+ }
224
+ try {
225
+ await host.cancelAll();
226
+ }
227
+ catch {
228
+ /* ignore */
229
+ }
230
+ try {
231
+ await devices.disconnectAll();
232
+ }
233
+ catch {
234
+ /* ignore */
235
+ }
236
+ if (mcpHandle) {
237
+ try {
238
+ await mcpHandle.stop();
239
+ }
240
+ catch (e) {
241
+ log.warn({ err: e.message }, "mcp: autospawn stop failed");
242
+ }
243
+ }
244
+ log.info("bye.");
245
+ };
246
+ return { config, host, devices, identity, plugins, mcp, stop };
247
+ }
248
+ function buildDefaultPlugins(opts) {
249
+ const plugins = [];
250
+ // agent-sync — register with the platform Agents directory (best effort).
251
+ if (opts.config.agentGatewayUrl && opts.keypair && !opts.config.standalone) {
252
+ plugins.push(new AgentSyncPlugin({
253
+ loadIdentity: async () => opts.keypair,
254
+ buildDeclarations: async () => {
255
+ const dev = opts.devices.get();
256
+ const info = dev ? await dev.device.getInfo().catch(() => null) : null;
257
+ if (opts.buildDeclarations) {
258
+ return opts.buildDeclarations(info ? { name: info.name, type: info.type } : null);
259
+ }
260
+ return [defaultDeviceAgentDeclaration({ info, version: opts.version })];
261
+ },
262
+ }));
263
+ }
264
+ // http-debug — local Fastify REST API.
265
+ if (opts.config.httpEnabled && !opts.config.disableHttp) {
266
+ plugins.push(new HttpDebugPlugin({ devices: opts.devices }));
267
+ }
268
+ // acp — Bridge WS + ACP JSON-RPC.
269
+ if (!opts.config.standalone && !opts.config.disableAcp && opts.keypair) {
270
+ plugins.push(new AcpPlugin({ mcpProvider: opts.mcpProvider, keypair: opts.keypair }));
271
+ }
272
+ return plugins;
273
+ }
274
+ /**
275
+ * Resolve the VLM `ImageTransport` from config + identity.
276
+ *
277
+ * Resolution rules:
278
+ *
279
+ * - `vlmImageTransport: "data-url"` (default) → inline base64. Always
280
+ * succeeds, capped at the upstream's body limit (≈5 MB on ARouter).
281
+ * - `vlmImageTransport: "http-url"` AND we have an Ed25519 keypair AND
282
+ * an Agent Gateway URL → `FallbackTransport(HttpUrlTransport, DataUrl)`.
283
+ * The fallback exists so a transient Agent Gateway / S3 failure
284
+ * gracefully degrades into the legacy data-url path instead of
285
+ * killing the whole task.
286
+ * - `vlmImageTransport: "http-url"` but no keypair / standalone mode →
287
+ * log a warning and fall back to `DataUrlTransport`. The standalone
288
+ * CLI cannot mint Ed25519-signed presigns and there is no other
289
+ * auth path for the file presign endpoint.
290
+ */
291
+ function buildImageTransport(config, kp, log) {
292
+ if (config.vlmImageTransport !== "http-url") {
293
+ return new DataUrlTransport();
294
+ }
295
+ if (!kp || !config.agentGatewayUrl || config.standalone) {
296
+ log.warn({
297
+ standalone: config.standalone,
298
+ hasKeypair: !!kp,
299
+ hasAgentGatewayUrl: !!config.agentGatewayUrl,
300
+ }, "vlmImageTransport=http-url requested but no Ed25519 identity / agent-gateway available; falling back to data-url");
301
+ return new DataUrlTransport();
302
+ }
303
+ const fileClient = new AgentGatewayFileClient({
304
+ agentGatewayUrl: config.agentGatewayUrl,
305
+ identity: kp,
306
+ });
307
+ const primary = new HttpUrlTransport(fileClient, {
308
+ keyPrefix: config.vlmImageKeyPrefix,
309
+ });
310
+ return new FallbackTransport(primary, new DataUrlTransport(), {
311
+ logger: {
312
+ warn: (msg, fields) => log.warn(fields ?? {}, msg),
313
+ },
314
+ // Distinct counter-friendly event so dashboards can compute
315
+ // `transport_fallback_total` without parsing the human-readable
316
+ // warn message. Pairs with the `vlm.image.prepared` event emitted
317
+ // from observationToScreenInfo / grounder.ground to give a complete
318
+ // picture of transport health.
319
+ onFallback: (reason) => {
320
+ log.warn({
321
+ component: "vlm-image",
322
+ event: "transport_fallback",
323
+ primary: primary.name,
324
+ fallback: "data-url",
325
+ error: reason instanceof Error ? reason.message : String(reason),
326
+ }, "vlm.image.transport_fallback");
327
+ },
328
+ });
329
+ }
330
+ function buildAgentCore(config, devices, mcpProvider, imageTransport, log) {
331
+ // Prefer the explicit `mobileUse` section; fall back to the deprecated
332
+ // top-level vlm* fields the loader still mirrors over.
333
+ const apiKey = config.mobileUse.apiKey || config.vlmApiKey || undefined;
334
+ const baseUrl = config.mobileUse.baseUrl || config.vlmBaseUrl || undefined;
335
+ const modelName = config.mobileUse.model || config.vlmModel || undefined;
336
+ // ── opt-in: legacy single-layer ──────────────────────────────────────
337
+ if (config.legacyInner) {
338
+ log.info("agent core: legacyInner=true → InnerLoopAgent (single-layer)");
339
+ const vlm = new InnerLoopVlm(devices.active(), {
340
+ apiKey,
341
+ baseUrl,
342
+ modelName,
343
+ maxSteps: config.maxSteps,
344
+ });
345
+ return new InnerLoopAgent(vlm);
346
+ }
347
+ // ── opt-in: pi-coding-agent two-layer orchestrator ───────────────────
348
+ if (config.pi) {
349
+ log.info({
350
+ outerModel: config.outer.model,
351
+ mobileUseModel: modelName,
352
+ grounderModel: config.grounder.model,
353
+ }, "agent core: pi=true → PiOrchestratorAgent (two-layer)");
354
+ const vlm = new InnerLoopVlm(devices.active(), {
355
+ apiKey,
356
+ baseUrl,
357
+ modelName,
358
+ maxSteps: config.maxSteps,
359
+ });
360
+ return new PiOrchestratorAgent({
361
+ projectRoot: process.cwd(),
362
+ outer: {
363
+ apiKey: config.outer.apiKey || undefined,
364
+ baseUrl: config.outer.baseUrl || undefined,
365
+ model: config.outer.model || undefined,
366
+ provider: config.outer.provider || undefined,
367
+ },
368
+ logger: log,
369
+ mcpProvider,
370
+ grounderFactory: () => new HTTPGrounder({
371
+ baseUrl: config.grounder.baseUrl || undefined,
372
+ apiKey: config.grounder.apiKey || undefined,
373
+ model: config.grounder.model || undefined,
374
+ imageTransport,
375
+ }),
376
+ mobileUseRunner: async (task, max, signal) => {
377
+ const r = await vlm.runTask({ task, maxSteps: max, abortSignal: signal });
378
+ return r.finalMessage;
379
+ },
380
+ uiXmlRunner: async (q) => {
381
+ const dump = await mcpProvider().uiDump({ format: "raw" });
382
+ if (!dump.supported) {
383
+ return "UI XML is not supported on this backend (use `ground` to locate elements)";
384
+ }
385
+ return formatUiXmlToolOutput(dump.content ?? "", q);
386
+ },
387
+ });
388
+ }
389
+ // ── default (v0.3.0): AgentRunner Hybrid Plan-Act ────────────────────
390
+ log.info({
391
+ mobileUseModel: modelName,
392
+ planMode: config.planMode,
393
+ plannerModel: config.plannerModel || modelName,
394
+ }, "agent core: AgentRunnerCore (Hybrid Plan-Act, default)");
395
+ const adapterClient = new OpenAIClient({
396
+ apiKey,
397
+ baseUrl,
398
+ modelName,
399
+ });
400
+ const adapter = new OpenAIAdapter({ client: adapterClient, lang: "cn", imageTransport });
401
+ // Optional planner — defaults to using the same OpenAI-compat endpoint
402
+ // as the VLM, but a separate text-only client (`plannerModel`) if the
403
+ // operator points to a cheaper chat-only model.
404
+ let planner;
405
+ if (config.planMode !== "never") {
406
+ const plannerModel = config.plannerModel || modelName || undefined;
407
+ const plannerBaseUrl = config.plannerBaseUrl || baseUrl;
408
+ const plannerApiKey = config.plannerApiKey || apiKey;
409
+ planner = new LLMPlanner({
410
+ modelName: plannerModel,
411
+ baseUrl: plannerBaseUrl,
412
+ apiKey: plannerApiKey,
413
+ });
414
+ }
415
+ return new AgentRunnerCore({
416
+ mcpProvider,
417
+ adapter,
418
+ planner,
419
+ mode: config.planMode,
420
+ env: config.mode === "desktop" ? "computer" : "mobile",
421
+ defaultMaxSteps: config.maxSteps,
422
+ providerTag: config.mobileUse.provider || undefined,
423
+ });
424
+ }
425
+ function defaultDeviceAgentDeclaration(opts) {
426
+ const deviceName = opts.info?.name ?? "unknown-device";
427
+ const platform = opts.info?.type ?? "device";
428
+ const description = `BeeOS device-agent on ${platform} (${deviceName}). Provides ADB/desktop control, screenshots, UI tree, app install, and shell.`;
429
+ return {
430
+ name: "device",
431
+ description,
432
+ version: opts.version,
433
+ capabilities: { streaming: true },
434
+ skills: [
435
+ { name: "screenshot", description: "Capture a PNG screenshot of the device screen.", emoji: "📸", outputModes: ["image/png"] },
436
+ { name: "ui_tree", description: "Dump the current UI hierarchy.", emoji: "🌲", outputModes: ["application/xml", "application/json"] },
437
+ { name: "tap", description: "Tap at (x, y) screen coordinates.", emoji: "👆" },
438
+ { name: "swipe", description: "Swipe between two points with optional duration.", emoji: "↔️" },
439
+ { name: "type_text", description: "Type Unicode text into the focused input.", emoji: "⌨️" },
440
+ { name: "press_key", description: "Press an Android key code.", emoji: "🔘" },
441
+ { name: "install_apk", description: "Install an APK file.", emoji: "📦" },
442
+ { name: "open_app", description: "Launch an app by package or display name.", emoji: "🚀" },
443
+ { name: "shell", description: "Run a sandboxed shell command (requires BEEOS_SHELL_ALLOW=true).", emoji: "🐚" },
444
+ ],
445
+ avatarUrl: "",
446
+ homepage: "",
447
+ };
448
+ }
449
+ export class BootstrapError extends Error {
450
+ exitCode;
451
+ details;
452
+ constructor(message, exitCode, details) {
453
+ super(message);
454
+ this.exitCode = exitCode;
455
+ this.details = details;
456
+ this.name = "BootstrapError";
457
+ }
458
+ }
459
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
package/dist/chat.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Standalone interactive chat CLI for the two-layer agent.
3
+ *
4
+ * Same UX as before — `pnpm run chat` opens a REPL that drives the outer
5
+ * orchestrator (pi-coding-agent) over `ORCH_*` env vars, with the inner
6
+ * `mobile_use` / `ground` / `ui_xml` extensions loaded from
7
+ * `<projectRoot>/.pi/extensions/`. Internally it now goes through the
8
+ * `PiOrchestratorAgent` adapter so there is exactly **one** code path
9
+ * for "construct a pi session with our system prompt and our extension
10
+ * context", shared with the production `bootstrap.ts` flow.
11
+ *
12
+ * `chat.ts` does NOT start the ACP bridge / HTTP debug / agent-sync
13
+ * plugins; it's a developer convenience to manually drive the agent
14
+ * against a local device. For production runs use `pnpm start`.
15
+ */
16
+ import "dotenv/config";