@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 @@
1
+ {"version":3,"file":"plan-executor.js","sourceRoot":"","sources":["../../src/agent-runtime/plan-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAOH,OAAO,EACL,SAAS,GAIV,MAAM,WAAW,CAAC;AAoEnB,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAE9E,MAAM,mBAAmB,GAAqC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEhF,8EAA8E;AAC9E,MAAM,kBAAkB,GAAqC,IAAI,GAAG,CAAC;IACnE,MAAM;IACN,aAAa;IACb,SAAS;IACT,iBAAiB;IACjB,OAAO;IACP,eAAe;CAChB,CAAC,CAAC;AAEH,MAAM,OAAO,YAAY;IAKM;IAJrB,MAAM,CAAU,iBAAiB,GAAG,EAAE,CAAC;IACvC,MAAM,CAAU,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IACnD,MAAM,CAAU,mBAAmB,GAAG,CAAC,CAAC;IAEhD,YAA6B,IAAyB;QAAzB,SAAI,GAAJ,IAAI,CAAqB;IAAG,CAAC;IAE1D,KAAK,CAAC,GAAG;QACP,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC,iBAAiB,CAAC;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,YAAY,CAAC,kBAAkB,CAAC;QACzE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,YAAY,CAAC,mBAAmB,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;QAEtD,MAAM,KAAK,GAAe,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QAC9D,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,IAAI,cAAc,GAAwB,OAAO,CAAC;QAClD,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB;;;;;WAKG;QACH,IAAI,qBAES,CAAC;QAEd,uEAAuE;QACvE,qEAAqE;QACrE,mEAAmE;QACnE,oEAAoE;QACpE,+DAA+D;QAC/D,IAAI,YAAY,CAAC;QACjB,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAC7C,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EACrC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAC7B,CAAC;QACF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,SAAS,CAAC,oBAAoB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,eAAe,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC9C,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;oBACzB,OAAO,IAAI,CAAC,MAAM,CAAC;wBACjB,EAAE,EAAE,KAAK;wBACT,SAAS,EAAE,0BAA0B,SAAS,WAAW;wBACzD,aAAa;wBACb,KAAK;wBACL,OAAO;wBACP,KAAK;wBACL,YAAY;wBACZ,OAAO;wBACP,iBAAiB;wBACjB,UAAU,EAAE,SAAS;wBACrB,SAAS,EAAE,KAAK;qBACjB,CAAC,CAAC;gBACL,CAAC;gBACD,iBAAiB,GAAG,IAAI,CAAC;gBACzB,MAAM,EAAE,GAAG,MAAM,IAAI,SAAS,CAAC;oBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;oBACpB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;oBAClB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;oBAClB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;oBAC1B,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;oBAC/C,SAAS,EAAE,eAAe;oBAC1B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;oBACxB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;oBACtB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;iBAC/B,CAAC,CAAC,GAAG,EAAE,CAAC;gBACT,aAAa,IAAI,EAAE,CAAC,KAAK,CAAC;gBAC1B,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;gBACxB,OAAO,IAAI,CAAC,MAAM,CAAC;oBACjB,EAAE,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC;oBAC1C,SAAS,EAAE,EAAE,CAAC,SAAS;oBACvB,aAAa;oBACb,KAAK;oBACL,OAAO;oBACP,KAAK;oBACL,YAAY;oBACZ,OAAO;oBACP,iBAAiB;oBACjB,UAAU,EAAE,EAAE,CAAC,UAAU;oBACzB,SAAS,EAAE,EAAE,CAAC,UAAU,KAAK,WAAW;iBACzC,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;QACD,IAAI,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;QAC7B,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3C,YAAY,IAAI,CAAC,CAAC;QAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEvD,sEAAsE;QACtE,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,MAAM,CAAC;oBACjB,EAAE,EAAE,KAAK;oBACT,SAAS,EAAE,gBAAgB;oBAC3B,aAAa;oBACb,KAAK;oBACL,OAAO;oBACP,KAAK;oBACL,YAAY;oBACZ,OAAO;oBACP,iBAAiB;oBACjB,UAAU,EAAE,WAAW;oBACvB,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC,MAAM,CAAC;oBACjB,EAAE,EAAE,KAAK;oBACT,SAAS,EAAE,0BAA0B,SAAS,WAAW;oBACzD,aAAa;oBACb,KAAK;oBACL,OAAO;oBACP,KAAK;oBACL,YAAY;oBACZ,OAAO;oBACP,iBAAiB;oBACjB,UAAU,EAAE,SAAS;oBACrB,SAAS,EAAE,KAAK;iBACjB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;YAC3C,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC,MAAM,CAAC;oBACjB,EAAE,EAAE,KAAK;oBACT,SAAS,EAAE,mBAAmB,QAAQ,EAAE;oBACxC,aAAa;oBACb,KAAK;oBACL,OAAO;oBACP,KAAK;oBACL,YAAY;oBACZ,OAAO;oBACP,iBAAiB;oBACjB,UAAU,EAAE,aAAa;oBACzB,SAAS,EAAE,KAAK;iBACjB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,SAAS,GAAG,KAAK,CACrB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC7F,CAAC,EACD,SAAS,CACV,CAAC;YAEF,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAC9D,iEAAiE;YACjE,6DAA6D;YAC7D,2DAA2D;YAC3D,gEAAgE;YAChE,8DAA8D;YAC9D,kEAAkE;YAClE,8DAA8D;YAC9D,wCAAwC;YACxC,MAAM,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7C,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC,MAAM,CAAC;oBACjB,EAAE,EAAE,KAAK;oBACT,SAAS,EAAE,0BAA0B,SAAS,WAAW;oBACzD,aAAa;oBACb,KAAK;oBACL,OAAO;oBACP,KAAK;oBACL,YAAY;oBACZ,OAAO;oBACP,iBAAiB;oBACjB,UAAU,EAAE,SAAS;oBACrB,SAAS,EAAE,KAAK;iBACjB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,SAAS,CAAC;gBACjC,IAAI,EAAE,SAAS;gBACf,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;gBAClB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;gBAClB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;gBAC1B,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,cAAc;gBACzB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;gBACxB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;gBACtB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;aAC/B,CAAC,CAAC,GAAG,EAAE,CAAC;YAET,aAAa,IAAI,MAAM,CAAC,KAAK,CAAC;YAC9B,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,MAAM,CAAC,iBAAiB;gBAAE,qBAAqB,GAAG,MAAM,CAAC,iBAAiB,CAAC;YAC/E,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC;YACnC,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC;YAEjC,IAAI,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/C,GAAG,IAAI,CAAC,CAAC;gBACT,SAAS;YACX,CAAC;YAED,kEAAkE;YAClE,IAAI,MAAM,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;gBACtC,OAAO,IAAI,CAAC,MAAM,CAAC;oBACjB,EAAE,EAAE,KAAK;oBACT,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,aAAa;oBACb,KAAK;oBACL,OAAO;oBACP,KAAK;oBACL,YAAY;oBACZ,OAAO;oBACP,iBAAiB;oBACjB,UAAU,EAAE,WAAW;oBACvB,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,OAAO,GAAG,UAAU,IAAI,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtE,OAAO,IAAI,CAAC,CAAC;gBACb,mEAAmE;gBACnE,oEAAoE;gBACpE,mEAAmE;gBACnE,kEAAkE;gBAClE,kEAAkE;gBAClE,mCAAmC;gBACnC,MAAM,GAAG,GAAgB;oBACvB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;oBACpB,WAAW,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE;oBAC5C,OAAO;oBACP,YAAY,EAAE,IAAI;oBAClB,aAAa,EAAE,QAAQ,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,WAAW,gBAAgB,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,SAAS,EAAE;oBAC5G,WAAW,EAAE,IAAI,CAAC,GAAG;oBACrB,8DAA8D;oBAC9D,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;oBAChD,kEAAkE;oBAClE,6DAA6D;oBAC7D,iBAAiB,EAAE,qBAAqB;iBACzC,CAAC;gBACF,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC/E,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACjB,YAAY,IAAI,CAAC,CAAC;oBAClB,GAAG,GAAG,CAAC,CAAC;oBACR,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBACtD,SAAS;gBACX,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,mDAAmD;oBACnD,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAED,iEAAiE;YACjE,IAAI,aAAa,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACxC,MAAM,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC1C,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;oBACrB,OAAO,IAAI,CAAC,MAAM,CAAC;wBACjB,EAAE,EAAE,KAAK;wBACT,SAAS,EAAE,0BAA0B,SAAS,WAAW;wBACzD,aAAa;wBACb,KAAK;wBACL,OAAO;wBACP,KAAK;wBACL,YAAY;wBACZ,OAAO;wBACP,iBAAiB;wBACjB,UAAU,EAAE,SAAS;wBACrB,SAAS,EAAE,KAAK;qBACjB,CAAC,CAAC;gBACL,CAAC;gBACD,iBAAiB,GAAG,IAAI,CAAC;gBACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,SAAS,CAAC;oBACnC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;oBACpB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;oBAClB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;oBAClB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;oBAC1B,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;oBAC/C,SAAS,EAAE,WAAW;oBACtB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;oBACxB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;oBACtB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;iBAC/B,CAAC,CAAC,GAAG,EAAE,CAAC;gBACT,aAAa,IAAI,QAAQ,CAAC,KAAK,CAAC;gBAChC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9B,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC;gBACrC,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC;gBACnC,OAAO,IAAI,CAAC,MAAM,CAAC;oBACjB,EAAE,EAAE,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAChD,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,aAAa;oBACb,KAAK;oBACL,OAAO;oBACP,KAAK;oBACL,YAAY;oBACZ,OAAO;oBACP,iBAAiB;oBACjB,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,SAAS,EAAE,QAAQ,CAAC,UAAU,KAAK,WAAW;iBAC/C,CAAC,CAAC;YACL,CAAC;YAED,6DAA6D;YAC7D,OAAO,IAAI,CAAC,MAAM,CAAC;gBACjB,EAAE,EAAE,KAAK;gBACT,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,aAAa;gBACb,KAAK;gBACL,OAAO;gBACP,KAAK;gBACL,YAAY;gBACZ,OAAO;gBACP,iBAAiB;gBACjB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;YACjB,EAAE,EAAE,cAAc,KAAK,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACnE,SAAS,EAAE,aAAa,IAAI,eAAe;YAC3C,aAAa;YACb,KAAK;YACL,OAAO;YACP,KAAK;YACL,YAAY;YACZ,OAAO;YACP,iBAAiB;YACjB,UAAU,EAAE,cAAc,IAAI,MAAM;YACpC,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,IAAU,EAAE,QAAiB,EAAE,WAAmB;QACvE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW;YAAE,OAAO;QAC1C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAC/B,aAAa,QAAQ,CAAC,CAAC,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC,EAAE,CACnF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,OAAe;QACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO;YAAE,OAAO;QACtC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACzF,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ;QACV,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,IAYd;QACC,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,aAAa;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,kBAAkB;QAC9B,IAAI,EAAE,CAAC;QACP,IAAI,CAAC;YACH,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,MAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO;gBAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;QAClE,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;YAClB,OAAO,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;YACxC,OAAO,EAAE,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC;YAC1C,aAAa,EAAE,EAAE,CAAC,GAAG;YACrB,MAAM;SACP,CAAC;IACJ,CAAC;;AAGH,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAE9E,SAAS,oBAAoB,CAAC,SAAiB,EAAE,QAAgB;IAC/D,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,KAAK,CAAC,CAAS,EAAE,EAAU,EAAE,EAAU;IAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,eAAe,CAAC,IAAgB,EAAE,GAAe;IACxD,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC;IACpC,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,CAAC;IACtC,IAAI,GAAG,CAAC,iBAAiB;QAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,iBAAiB,CAAC;IAC1G,IAAI,GAAG,CAAC,OAAO;QAAE,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;AACpE,CAAC;AAED,SAAS,YAAY,CAAC,IAAU;IAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;SACrB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SACrF,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,KAAK,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,MAAM,CAAC,CAAU;IACxB,IAAI,CAAC,YAAY,KAAK;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IACzC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,QAAgB,EAAE,IAAU,EAAE,GAAW;IACjE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK;SACxB,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;SACxC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,OAAO;QACL,WAAW,QAAQ,EAAE;QACrB,cAAc,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE;QACjE,UAAU;QACV,eAAe;QACf,YAAY;QACZ,EAAE;QACF,4EAA4E;KAC7E;SACE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;SAC7B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * agent-runtime/planner/base — IPlanner contract and the data shapes the
3
+ * Plan-Act control loop passes between layers.
4
+ *
5
+ * The planner is the *strategist* tier — it consumes the user goal, the
6
+ * latest observation, and the rolling step history, and emits a **Plan**:
7
+ * an ordered list of natural-language sub-tasks that an `AgentLoop`
8
+ * (driven by a vision-grounding model adapter) can then execute one by
9
+ * one.
10
+ *
11
+ * Concrete implementations (`LLMPlanner`, `NoOpPlanner`) live alongside
12
+ * this file; the executor (`agent-runtime/plan-executor.ts`) only knows
13
+ * about the interfaces here.
14
+ *
15
+ * Mirrors the Python reference at
16
+ * /Users/heat/workspace/deviceagent_research/deviceagent/agent_runtime/planner/{base.py,types.py}
17
+ * but is *intentionally* slimmer — we don't ship a Verifier tier yet, so
18
+ * `PlanStep.verification` is omitted; the `AgentLoop`'s own reflection +
19
+ * `done`/`fail` short-circuit handles that today.
20
+ */
21
+ import type { Observation } from "@beeos-ai/device-common";
22
+ import type { ModelUsage, StepHistory } from "../adapters/base.js";
23
+ /**
24
+ * One sub-task a planner emits. The fields mirror what the AgentLoop
25
+ * needs to dispatch a focused mini-run over `IModelAdapter`.
26
+ *
27
+ * - `description` — free-form natural-language goal for this step,
28
+ * handed to the inner adapter as the `task` field of `Observation`.
29
+ * Required.
30
+ * - `actionKind` — optional advisory hint (`"tap"`, `"type"`, etc.) so
31
+ * downstream tooling (telemetry, grounder selection) can pre-narrow
32
+ * decisions; the inner adapter is still free to emit any verb.
33
+ * - `targetDesc` — natural-language description of the on-screen
34
+ * element this step should interact with, when applicable.
35
+ * - `payload` — adapter-specific extras (e.g. the text to type).
36
+ * - `expectedOutcome` — short post-condition the executor / human can
37
+ * visually verify; surfaced in step events for observability.
38
+ * - `maxSteps` — per-sub-task step budget; defaults to a fraction of
39
+ * the parent run's budget when unset.
40
+ */
41
+ export interface PlanStep {
42
+ /** 1-based index inside the parent Plan. Backfilled when missing. */
43
+ idx: number;
44
+ description: string;
45
+ actionKind?: string;
46
+ targetDesc?: string;
47
+ payload?: Record<string, unknown>;
48
+ expectedOutcome?: string;
49
+ maxSteps?: number;
50
+ }
51
+ export interface Plan {
52
+ /** Echo of the user goal — useful for logging / replay. */
53
+ goal: string;
54
+ /** One-paragraph rationale (60 words max — soft limit). */
55
+ rationale?: string;
56
+ steps: PlanStep[];
57
+ }
58
+ export interface PlanContext {
59
+ goal: string;
60
+ /** Latest observation (optional — first plan can be made blind). */
61
+ observation?: Observation;
62
+ history: StepHistory[];
63
+ /** Set on `replan()`: the previously emitted plan that failed. */
64
+ previousPlan?: Plan;
65
+ /** Set on `replan()`: human-readable failure reason. */
66
+ failureReason?: string;
67
+ /** Set on `replan()`: 0-based index of the failing step in `previousPlan`. */
68
+ lastStepIdx?: number;
69
+ /**
70
+ * Phase 2.1 — notes the agent collected mid-task via the `take_note`
71
+ * action verb (verification codes, computed prices, etc.). The planner
72
+ * MUST treat these as authoritative ground truth and avoid re-asking
73
+ * for already-captured information.
74
+ */
75
+ notes?: string[];
76
+ /**
77
+ * Phase 2.2 — most recent verdict from the {@link TrajectoryReflector}
78
+ * when it bailed the inner loop. Present only when the reflector flipped
79
+ * to `off_track` or `stuck`; the planner uses it to decide whether to
80
+ * keep the existing plan or pivot.
81
+ */
82
+ trajectoryVerdict?: {
83
+ verdict: "off_track" | "stuck";
84
+ reason: string;
85
+ };
86
+ }
87
+ export interface PlanResult {
88
+ plan: Plan;
89
+ /** Token / cost accounting for the planner call. */
90
+ usage: ModelUsage;
91
+ /** Raw model response (before JSON extraction) — for debug only. */
92
+ rawResponse?: string;
93
+ }
94
+ export interface PlanOptions {
95
+ signal?: AbortSignal;
96
+ }
97
+ /**
98
+ * Stable, lower-case identifier each planner exposes via `name`. Mirrors
99
+ * `IModelAdapter.name` — used in logs, metrics, and sometimes selectable
100
+ * via env var.
101
+ */
102
+ export interface IPlanner {
103
+ readonly name: string;
104
+ makePlan(ctx: PlanContext, opts?: PlanOptions): Promise<PlanResult>;
105
+ replan(ctx: PlanContext, opts?: PlanOptions): Promise<PlanResult>;
106
+ /** Optional — release HTTP agents / pools. */
107
+ close?(): Promise<void>;
108
+ }
109
+ /**
110
+ * Convenience factory used by adapters that produce a fully-typed Plan
111
+ * but don't track usage or raw-response fields. Defaults `usage` to zero.
112
+ */
113
+ export declare function makePlanResult(plan: Plan, init?: Partial<Omit<PlanResult, "plan">>): PlanResult;
114
+ /**
115
+ * Normalise a plan-shaped JSON object into a strict `Plan`. Tolerates
116
+ * the shapes models commonly emit:
117
+ * - `steps` at the top level instead of `plan.steps`
118
+ * - missing `idx` (backfilled)
119
+ * - `target`/`description`/`name` aliases for `targetDesc`/`description`
120
+ */
121
+ export declare function normalisePlanPayload(obj: unknown, goal: string): Plan;
122
+ /**
123
+ * Best-effort extraction of the first JSON object embedded in a model
124
+ * response. Tolerates ```json fences, leading/trailing prose, and chain
125
+ * markers like `<think>...</think>`. Returns `null` when no balanced
126
+ * `{...}` block can be found.
127
+ */
128
+ export declare function extractFirstJson(text: string): unknown;
@@ -0,0 +1,157 @@
1
+ /**
2
+ * agent-runtime/planner/base — IPlanner contract and the data shapes the
3
+ * Plan-Act control loop passes between layers.
4
+ *
5
+ * The planner is the *strategist* tier — it consumes the user goal, the
6
+ * latest observation, and the rolling step history, and emits a **Plan**:
7
+ * an ordered list of natural-language sub-tasks that an `AgentLoop`
8
+ * (driven by a vision-grounding model adapter) can then execute one by
9
+ * one.
10
+ *
11
+ * Concrete implementations (`LLMPlanner`, `NoOpPlanner`) live alongside
12
+ * this file; the executor (`agent-runtime/plan-executor.ts`) only knows
13
+ * about the interfaces here.
14
+ *
15
+ * Mirrors the Python reference at
16
+ * /Users/heat/workspace/deviceagent_research/deviceagent/agent_runtime/planner/{base.py,types.py}
17
+ * but is *intentionally* slimmer — we don't ship a Verifier tier yet, so
18
+ * `PlanStep.verification` is omitted; the `AgentLoop`'s own reflection +
19
+ * `done`/`fail` short-circuit handles that today.
20
+ */
21
+ /**
22
+ * Convenience factory used by adapters that produce a fully-typed Plan
23
+ * but don't track usage or raw-response fields. Defaults `usage` to zero.
24
+ */
25
+ export function makePlanResult(plan, init = {}) {
26
+ return {
27
+ plan,
28
+ usage: init.usage ?? { inputTokens: 0, outputTokens: 0 },
29
+ rawResponse: init.rawResponse,
30
+ };
31
+ }
32
+ /**
33
+ * Normalise a plan-shaped JSON object into a strict `Plan`. Tolerates
34
+ * the shapes models commonly emit:
35
+ * - `steps` at the top level instead of `plan.steps`
36
+ * - missing `idx` (backfilled)
37
+ * - `target`/`description`/`name` aliases for `targetDesc`/`description`
38
+ */
39
+ export function normalisePlanPayload(obj, goal) {
40
+ const root = isObject(obj) ? obj : {};
41
+ const inner = isObject(root.plan) ? root.plan : root;
42
+ const rawSteps = pickArray(inner.steps) ?? pickArray(root.steps) ?? [];
43
+ const steps = [];
44
+ rawSteps.forEach((s, i) => {
45
+ if (!isObject(s))
46
+ return;
47
+ const description = pickString(s.description) ?? pickString(s.intent) ?? pickString(s.name) ?? "";
48
+ if (!description)
49
+ return;
50
+ const idx = typeof s.idx === "number" && Number.isFinite(s.idx) ? Math.trunc(s.idx) : i;
51
+ const targetDesc = pickString(s.targetDesc) ?? pickString(s.target_desc) ?? pickString(s.target);
52
+ const actionKind = pickString(s.actionKind) ?? pickString(s.action_kind);
53
+ const expectedOutcome = pickString(s.expectedOutcome) ??
54
+ pickString(s.expected_outcome) ??
55
+ pickString(s.postcondition);
56
+ const maxSteps = typeof s.maxSteps === "number" && Number.isFinite(s.maxSteps)
57
+ ? Math.max(1, Math.trunc(s.maxSteps))
58
+ : typeof s.max_steps === "number" && Number.isFinite(s.max_steps)
59
+ ? Math.max(1, Math.trunc(s.max_steps))
60
+ : undefined;
61
+ const payload = isObject(s.payload)
62
+ ? s.payload
63
+ : isObject(s.args)
64
+ ? s.args
65
+ : undefined;
66
+ steps.push({
67
+ idx,
68
+ description,
69
+ actionKind,
70
+ targetDesc,
71
+ expectedOutcome,
72
+ maxSteps,
73
+ payload,
74
+ });
75
+ });
76
+ const rationale = pickString(inner.rationale) ?? pickString(root.rationale);
77
+ const planGoal = pickString(inner.goal) ?? pickString(root.goal) ?? goal;
78
+ return {
79
+ goal: planGoal,
80
+ rationale,
81
+ steps,
82
+ };
83
+ }
84
+ /**
85
+ * Best-effort extraction of the first JSON object embedded in a model
86
+ * response. Tolerates ```json fences, leading/trailing prose, and chain
87
+ * markers like `<think>...</think>`. Returns `null` when no balanced
88
+ * `{...}` block can be found.
89
+ */
90
+ export function extractFirstJson(text) {
91
+ if (!text)
92
+ return null;
93
+ // Strip <think>…</think>
94
+ const cleaned = text.replace(/<think>[\s\S]*?<\/think>/g, "").trim();
95
+ // Strip ```json ... ``` fence
96
+ const fence = cleaned.match(/```(?:json)?\s*([\s\S]*?)```/i);
97
+ const candidate = fence ? fence[1].trim() : cleaned;
98
+ // Walk to find first balanced { ... }
99
+ let depth = 0;
100
+ let start = -1;
101
+ let inString = false;
102
+ let escape = false;
103
+ for (let i = 0; i < candidate.length; i++) {
104
+ const c = candidate[i];
105
+ if (inString) {
106
+ if (escape) {
107
+ escape = false;
108
+ }
109
+ else if (c === "\\") {
110
+ escape = true;
111
+ }
112
+ else if (c === '"') {
113
+ inString = false;
114
+ }
115
+ continue;
116
+ }
117
+ if (c === '"') {
118
+ inString = true;
119
+ continue;
120
+ }
121
+ if (c === "{") {
122
+ if (depth === 0)
123
+ start = i;
124
+ depth += 1;
125
+ }
126
+ else if (c === "}") {
127
+ depth -= 1;
128
+ if (depth === 0 && start >= 0) {
129
+ const slice = candidate.slice(start, i + 1);
130
+ try {
131
+ return JSON.parse(slice);
132
+ }
133
+ catch {
134
+ // continue searching for the next balanced block
135
+ start = -1;
136
+ }
137
+ }
138
+ }
139
+ }
140
+ // Fallback — try the whole thing
141
+ try {
142
+ return JSON.parse(candidate);
143
+ }
144
+ catch {
145
+ return null;
146
+ }
147
+ }
148
+ function isObject(v) {
149
+ return typeof v === "object" && v !== null && !Array.isArray(v);
150
+ }
151
+ function pickArray(v) {
152
+ return Array.isArray(v) ? v : undefined;
153
+ }
154
+ function pickString(v) {
155
+ return typeof v === "string" && v.length > 0 ? v : undefined;
156
+ }
157
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/agent-runtime/planner/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * agent-runtime/planner/llm-planner — chat-only LLM planner.
3
+ *
4
+ * Talks to any OpenAI-compatible Chat Completions endpoint (ARouter,
5
+ * official OpenAI, vLLM, glm-4-flash, ...) — the planner is *strategy*-
6
+ * grade so a small, cheap model is plenty (the inner adapter does the
7
+ * expensive vision-grounding work).
8
+ *
9
+ * Inputs come in as a `PlanContext`; outputs are strict-JSON `Plan`s.
10
+ * Robust to:
11
+ * - leading / trailing prose around the JSON block
12
+ * - ```json fenced output
13
+ * - `<think>...</think>` reasoning tokens
14
+ * - missing optional fields (idx, target_desc, payload — backfilled)
15
+ *
16
+ * Mirrors the Python reference at
17
+ * /Users/heat/workspace/deviceagent_research/deviceagent/agent_runtime/planner/openai_compat.py
18
+ */
19
+ import OpenAI from "openai";
20
+ import { type IPlanner, type PlanContext, type PlanOptions, type PlanResult } from "./base.js";
21
+ export interface LLMPlannerOptions {
22
+ /** Override `process.env.GUI_AGENT_BASE_URL`. */
23
+ baseUrl?: string;
24
+ /** Override `process.env.GUI_AGENT_API_KEY`. */
25
+ apiKey?: string;
26
+ /** Defaults to `glm-4-flash` (fast & cheap on ARouter). */
27
+ modelName?: string;
28
+ /** OpenAI client wall-clock timeout (ms). Defaults to 60s. */
29
+ timeoutMs?: number;
30
+ /** Sampling temperature. Defaults to 0 — strict JSON is easier. */
31
+ temperature?: number;
32
+ /** Sampling top-p. Defaults to 0.9. */
33
+ topP?: number;
34
+ /** Max output tokens. Defaults to 1500. */
35
+ maxTokens?: number;
36
+ /**
37
+ * Provide an already-built OpenAI client. Used by tests to inject mocks.
38
+ */
39
+ client?: OpenAI;
40
+ /** Stable adapter name surfaced in logs / metrics. */
41
+ name?: string;
42
+ /**
43
+ * When `true`, request strict JSON via `response_format: {type: "json_object"}`.
44
+ * Some providers (Zhipu / vLLM) don't support it — disable for them.
45
+ * Defaults to `true`.
46
+ */
47
+ jsonMode?: boolean;
48
+ }
49
+ export declare class LLMPlanner implements IPlanner {
50
+ readonly name: string;
51
+ readonly modelName: string;
52
+ private readonly client;
53
+ private readonly opts;
54
+ constructor(opts?: LLMPlannerOptions);
55
+ makePlan(ctx: PlanContext, opts?: PlanOptions): Promise<PlanResult>;
56
+ replan(ctx: PlanContext, opts?: PlanOptions): Promise<PlanResult>;
57
+ private invoke;
58
+ }
@@ -0,0 +1,112 @@
1
+ /**
2
+ * agent-runtime/planner/llm-planner — chat-only LLM planner.
3
+ *
4
+ * Talks to any OpenAI-compatible Chat Completions endpoint (ARouter,
5
+ * official OpenAI, vLLM, glm-4-flash, ...) — the planner is *strategy*-
6
+ * grade so a small, cheap model is plenty (the inner adapter does the
7
+ * expensive vision-grounding work).
8
+ *
9
+ * Inputs come in as a `PlanContext`; outputs are strict-JSON `Plan`s.
10
+ * Robust to:
11
+ * - leading / trailing prose around the JSON block
12
+ * - ```json fenced output
13
+ * - `<think>...</think>` reasoning tokens
14
+ * - missing optional fields (idx, target_desc, payload — backfilled)
15
+ *
16
+ * Mirrors the Python reference at
17
+ * /Users/heat/workspace/deviceagent_research/deviceagent/agent_runtime/planner/openai_compat.py
18
+ */
19
+ import OpenAI from "openai";
20
+ import { extractFirstJson, makePlanResult, normalisePlanPayload, } from "./base.js";
21
+ import { renderSystemPrompt, renderUserPrompt, STRICT_SCHEMA_HINT } from "./prompts.js";
22
+ const DEFAULT_MODEL_NAME = "glm-4-flash";
23
+ export class LLMPlanner {
24
+ name;
25
+ modelName;
26
+ client;
27
+ opts;
28
+ constructor(opts = {}) {
29
+ this.modelName = opts.modelName ?? process.env.PLANNER_MODEL ?? DEFAULT_MODEL_NAME;
30
+ this.name = opts.name ?? `llm:${this.modelName}`;
31
+ this.opts = {
32
+ baseUrl: opts.baseUrl ?? process.env.PLANNER_BASE_URL ?? process.env.GUI_AGENT_BASE_URL ?? "https://api.openai.com/v1",
33
+ apiKey: opts.apiKey ?? process.env.PLANNER_API_KEY ?? process.env.GUI_AGENT_API_KEY ?? "EMPTY",
34
+ timeoutMs: opts.timeoutMs ?? 60_000,
35
+ temperature: opts.temperature ?? 0,
36
+ topP: opts.topP ?? 0.9,
37
+ maxTokens: opts.maxTokens ?? 1500,
38
+ jsonMode: opts.jsonMode ?? true,
39
+ };
40
+ this.client =
41
+ opts.client ??
42
+ new OpenAI({
43
+ baseURL: this.opts.baseUrl,
44
+ apiKey: this.opts.apiKey,
45
+ timeout: this.opts.timeoutMs,
46
+ // Aligned with the inner VLM client (see `model/client.ts`) — bumps
47
+ // tolerance for transient ARouter / llama.cpp 5xx so the planner
48
+ // doesn't surface a 502 to the user before the retry budget would
49
+ // have been hit by VLM steps anyway.
50
+ maxRetries: 4,
51
+ });
52
+ }
53
+ async makePlan(ctx, opts = {}) {
54
+ return this.invoke(ctx, opts, /*isReplan*/ false);
55
+ }
56
+ async replan(ctx, opts = {}) {
57
+ return this.invoke(ctx, opts, /*isReplan*/ true);
58
+ }
59
+ async invoke(ctx, opts, isReplan) {
60
+ const env = ctx.observation?.env ?? "device";
61
+ const screenW = ctx.observation?.screenW ?? 0;
62
+ const screenH = ctx.observation?.screenH ?? 0;
63
+ const system = renderSystemPrompt({ env, screenW, screenH });
64
+ const user = renderUserPrompt({
65
+ goal: ctx.goal,
66
+ observation: ctx.observation,
67
+ history: ctx.history,
68
+ failureReason: isReplan ? ctx.failureReason ?? "(unspecified)" : undefined,
69
+ lastStepIdx: isReplan ? ctx.lastStepIdx : undefined,
70
+ notes: ctx.notes,
71
+ trajectoryVerdict: ctx.trajectoryVerdict,
72
+ });
73
+ const messages = [
74
+ { role: "system", content: system },
75
+ { role: "user", content: `${user}\n\n${STRICT_SCHEMA_HINT}` },
76
+ ];
77
+ const reqBody = {
78
+ model: this.modelName,
79
+ messages,
80
+ max_tokens: this.opts.maxTokens,
81
+ temperature: this.opts.temperature,
82
+ top_p: this.opts.topP,
83
+ };
84
+ if (this.opts.jsonMode) {
85
+ reqBody.response_format = { type: "json_object" };
86
+ }
87
+ const resp = await this.client.chat.completions.create(reqBody, { signal: opts.signal });
88
+ const choice = ("choices" in resp ? resp.choices : undefined)?.[0];
89
+ const raw = choice?.message?.content ?? "";
90
+ const usage = {
91
+ inputTokens: resp.usage?.prompt_tokens ?? 0,
92
+ outputTokens: resp.usage?.completion_tokens ?? 0,
93
+ };
94
+ const obj = extractFirstJson(raw);
95
+ const plan = normalisePlanPayload(obj ?? {}, ctx.goal);
96
+ if (plan.steps.length === 0) {
97
+ // Last-resort: emit a single-step passthrough so the executor still
98
+ // makes progress instead of crashing.
99
+ plan.steps = [
100
+ {
101
+ idx: 0,
102
+ description: ctx.goal,
103
+ expectedOutcome: "task complete",
104
+ },
105
+ ];
106
+ plan.rationale =
107
+ plan.rationale ?? `planner returned no steps; falling back to a single-step plan`;
108
+ }
109
+ return makePlanResult(plan, { usage, rawResponse: raw });
110
+ }
111
+ }
112
+ //# sourceMappingURL=llm-planner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-planner.js","sourceRoot":"","sources":["../../../src/agent-runtime/planner/llm-planner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * agent-runtime/planner/noop-planner — passthrough planner.
3
+ *
4
+ * Emits a single-step plan that exactly echoes the user goal. Used as
5
+ * the default when the user wants `--plan never` (single-step ReAct only)
6
+ * or as a unit-test stub.
7
+ */
8
+ import { type IPlanner, type PlanContext, type PlanResult } from "./base.js";
9
+ export declare class NoOpPlanner implements IPlanner {
10
+ readonly name = "noop";
11
+ makePlan(ctx: PlanContext): Promise<PlanResult>;
12
+ replan(ctx: PlanContext): Promise<PlanResult>;
13
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * agent-runtime/planner/noop-planner — passthrough planner.
3
+ *
4
+ * Emits a single-step plan that exactly echoes the user goal. Used as
5
+ * the default when the user wants `--plan never` (single-step ReAct only)
6
+ * or as a unit-test stub.
7
+ */
8
+ import { makePlanResult, } from "./base.js";
9
+ export class NoOpPlanner {
10
+ name = "noop";
11
+ async makePlan(ctx) {
12
+ return makePlanResult({
13
+ goal: ctx.goal,
14
+ steps: [
15
+ {
16
+ idx: 0,
17
+ description: ctx.goal,
18
+ expectedOutcome: "task complete",
19
+ },
20
+ ],
21
+ rationale: "noop-planner: passthrough single-step plan",
22
+ });
23
+ }
24
+ async replan(ctx) {
25
+ // Replan returns the same shape — the executor's stall detection
26
+ // is what stops the loop, not a "new" plan from the noop branch.
27
+ return this.makePlan(ctx);
28
+ }
29
+ }
30
+ //# sourceMappingURL=noop-planner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noop-planner.js","sourceRoot":"","sources":["../../../src/agent-runtime/planner/noop-planner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,cAAc,GAIf,MAAM,WAAW,CAAC;AAEnB,MAAM,OAAO,WAAW;IACb,IAAI,GAAG,MAAM,CAAC;IAEvB,KAAK,CAAC,QAAQ,CAAC,GAAgB;QAC7B,OAAO,cAAc,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE;gBACL;oBACE,GAAG,EAAE,CAAC;oBACN,WAAW,EAAE,GAAG,CAAC,IAAI;oBACrB,eAAe,EAAE,eAAe;iBACjC;aACF;YACD,SAAS,EAAE,4CAA4C;SACxD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAgB;QAC3B,iEAAiE;QACjE,iEAAiE;QACjE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;CACF"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * agent-runtime/planner/prompts — system + user prompt builders for the
3
+ * LLM-driven `LLMPlanner`. Mirrors the Python reference at
4
+ * /Users/heat/workspace/deviceagent_research/deviceagent/agent_runtime/planner/prompts.py
5
+ *
6
+ * The planner is *strategy-only*: it never picks pixel coordinates, never
7
+ * emits a single Action — it emits a Plan (ordered list of small,
8
+ * verifiable sub-tasks) that the inner `AgentLoop` then executes one by
9
+ * one with a vision-grounding adapter (AutoGLM-Phone-9B today).
10
+ */
11
+ import type { Observation } from "@beeos-ai/device-common";
12
+ import type { StepHistory } from "../adapters/base.js";
13
+ export declare function renderSystemPrompt(opts: {
14
+ env: string;
15
+ screenW: number;
16
+ screenH: number;
17
+ date?: string;
18
+ }): string;
19
+ export declare function renderUserPrompt(opts: {
20
+ goal: string;
21
+ observation?: Observation;
22
+ history: StepHistory[];
23
+ failureReason?: string;
24
+ lastStepIdx?: number;
25
+ /** Phase 2.1 — accumulated notes captured via `take_note`. */
26
+ notes?: string[];
27
+ /** Phase 2.2 — trajectory reflector verdict on replan. */
28
+ trajectoryVerdict?: {
29
+ verdict: "off_track" | "stuck";
30
+ reason: string;
31
+ };
32
+ }): string;
33
+ export declare const STRICT_SCHEMA_HINT = "Reply ONLY with valid JSON matching the schema. No markdown, no prose.";