@beeos-ai/device-agent 0.9.13 → 0.10.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 (187) hide show
  1. package/dist/adapters/device-compat.d.ts +14 -0
  2. package/dist/adapters/device-compat.js +71 -0
  3. package/dist/adapters/device-compat.js.map +1 -0
  4. package/dist/agent-runtime/adapters/index.d.ts +1 -3
  5. package/dist/agent-runtime/adapters/index.js +1 -3
  6. package/dist/agent-runtime/adapters/index.js.map +1 -1
  7. package/dist/agent-runtime/adapters/openai.d.ts +5 -5
  8. package/dist/agent-runtime/adapters/openai.js +19 -6
  9. package/dist/agent-runtime/adapters/openai.js.map +1 -1
  10. package/dist/agent-runtime/adapters/registry.d.ts +1 -1
  11. package/dist/agent-runtime/adapters/registry.js +3 -3
  12. package/dist/agent-runtime/adapters/registry.js.map +1 -1
  13. package/dist/agent-runtime/agent-runner.d.ts +1 -1
  14. package/dist/agent-runtime/factory.d.ts +22 -0
  15. package/dist/agent-runtime/factory.js +25 -0
  16. package/dist/agent-runtime/factory.js.map +1 -0
  17. package/dist/agent-runtime/index.d.ts +9 -4
  18. package/dist/agent-runtime/index.js +9 -4
  19. package/dist/agent-runtime/index.js.map +1 -1
  20. package/dist/{model → agent-runtime/models}/base.d.ts +1 -1
  21. package/dist/{model → agent-runtime/models}/base.js.map +1 -1
  22. package/dist/{model → agent-runtime/models}/client.d.ts +3 -3
  23. package/dist/{model → agent-runtime/models}/client.js +2 -2
  24. package/dist/agent-runtime/models/client.js.map +1 -0
  25. package/dist/agent-runtime/models/image/compress.js.map +1 -0
  26. package/dist/{model → agent-runtime/models}/image/transport.d.ts +2 -2
  27. package/dist/{model → agent-runtime/models}/image/transport.js +1 -1
  28. package/dist/agent-runtime/models/image/transport.js.map +1 -0
  29. package/dist/agent-runtime/models/vlm/autoglm.js.map +1 -0
  30. package/dist/{model/adapters → agent-runtime/models/vlm}/base.d.ts +1 -1
  31. package/dist/agent-runtime/models/vlm/base.js.map +1 -0
  32. package/dist/{model/adapters → agent-runtime/models/vlm}/general.js +19 -25
  33. package/dist/agent-runtime/models/vlm/general.js.map +1 -0
  34. package/dist/{model/adapters → agent-runtime/models/vlm}/guiowl.js +1 -1
  35. package/dist/agent-runtime/models/vlm/guiowl.js.map +1 -0
  36. package/dist/{model/adapters → agent-runtime/models/vlm}/index.d.ts +0 -2
  37. package/dist/agent-runtime/models/vlm/index.js +7 -0
  38. package/dist/agent-runtime/models/vlm/index.js.map +1 -0
  39. package/dist/{model/adapters → agent-runtime/models/vlm}/maiui.js +1 -1
  40. package/dist/agent-runtime/models/vlm/maiui.js.map +1 -0
  41. package/dist/{model/adapters → agent-runtime/models/vlm}/qwenvl.js +1 -1
  42. package/dist/agent-runtime/models/vlm/qwenvl.js.map +1 -0
  43. package/dist/{model/adapters → agent-runtime/models/vlm/shared}/tool-call.d.ts +1 -1
  44. package/dist/agent-runtime/models/vlm/shared/tool-call.js.map +1 -0
  45. package/dist/agent-runtime/modes/hybrid/index.d.ts +58 -0
  46. package/dist/{adapters/agentcore-runner.js → agent-runtime/modes/hybrid/index.js} +21 -54
  47. package/dist/agent-runtime/modes/hybrid/index.js.map +1 -0
  48. package/dist/agent-runtime/{planner → modes/hybrid/planner}/base.d.ts +2 -2
  49. package/dist/agent-runtime/modes/hybrid/planner/base.js.map +1 -0
  50. package/dist/agent-runtime/modes/hybrid/planner/llm-planner.js.map +1 -0
  51. package/dist/agent-runtime/modes/hybrid/planner/noop-planner.js.map +1 -0
  52. package/dist/agent-runtime/{planner → modes/hybrid/planner}/prompts.d.ts +2 -2
  53. package/dist/agent-runtime/modes/hybrid/planner/prompts.js.map +1 -0
  54. package/dist/{adapters → agent-runtime/modes/orchestrator}/app-guide.d.ts +1 -1
  55. package/dist/{adapters → agent-runtime/modes/orchestrator}/app-guide.js +51 -6
  56. package/dist/agent-runtime/modes/orchestrator/app-guide.js.map +1 -0
  57. package/dist/{adapters/agentcore-orchestrator.d.ts → agent-runtime/modes/orchestrator/index.d.ts} +5 -6
  58. package/dist/{adapters/agentcore-orchestrator.js → agent-runtime/modes/orchestrator/index.js} +30 -21
  59. package/dist/agent-runtime/modes/orchestrator/index.js.map +1 -0
  60. package/dist/{adapters/orchestrator-agent-prompt.js → agent-runtime/modes/orchestrator/prompt.js} +5 -11
  61. package/dist/agent-runtime/modes/orchestrator/prompt.js.map +1 -0
  62. package/dist/agent-runtime/plan-executor.d.ts +1 -1
  63. package/dist/agent-runtime/reflection.js +46 -36
  64. package/dist/agent-runtime/reflection.js.map +1 -1
  65. package/dist/agent-runtime/vlm.d.ts +17 -0
  66. package/dist/agent-runtime/vlm.js +18 -0
  67. package/dist/agent-runtime/vlm.js.map +1 -0
  68. package/dist/api.d.ts +9 -20
  69. package/dist/api.js +26 -33
  70. package/dist/api.js.map +1 -1
  71. package/dist/app/agent-host.js +11 -0
  72. package/dist/app/agent-host.js.map +1 -1
  73. package/dist/app/multi-device-host.d.ts +143 -0
  74. package/dist/app/multi-device-host.js +237 -0
  75. package/dist/app/multi-device-host.js.map +1 -0
  76. package/dist/app/plugin-commands/device-status-command.d.ts +28 -0
  77. package/dist/app/plugin-commands/device-status-command.js +101 -0
  78. package/dist/app/plugin-commands/device-status-command.js.map +1 -0
  79. package/dist/app/session-manager.d.ts +1 -0
  80. package/dist/app/session-manager.js +12 -11
  81. package/dist/app/session-manager.js.map +1 -1
  82. package/dist/bootstrap.d.ts +0 -2
  83. package/dist/bootstrap.js +131 -78
  84. package/dist/bootstrap.js.map +1 -1
  85. package/dist/config/loader.d.ts +4 -19
  86. package/dist/config/loader.js +64 -89
  87. package/dist/config/loader.js.map +1 -1
  88. package/dist/config/schema.d.ts +26 -40
  89. package/dist/config/schema.js +30 -57
  90. package/dist/config/schema.js.map +1 -1
  91. package/dist/core/task-outcome.d.ts +32 -0
  92. package/dist/core/task-outcome.js +68 -0
  93. package/dist/core/task-outcome.js.map +1 -0
  94. package/dist/fleet/adapters/process/in-process-manager.d.ts +76 -0
  95. package/dist/fleet/adapters/process/in-process-manager.js +206 -0
  96. package/dist/fleet/adapters/process/in-process-manager.js.map +1 -0
  97. package/dist/fleet/adapters/process/node-process-manager.d.ts +19 -0
  98. package/dist/fleet/adapters/process/node-process-manager.js +1 -1
  99. package/dist/fleet/adapters/process/node-process-manager.js.map +1 -1
  100. package/dist/fleet/supervisor.d.ts +21 -0
  101. package/dist/fleet/supervisor.js +204 -9
  102. package/dist/fleet/supervisor.js.map +1 -1
  103. package/dist/inbound/acp/handlers/models.js +0 -1
  104. package/dist/inbound/acp/handlers/models.js.map +1 -1
  105. package/dist/inbound/cli/fleet-command.d.ts +32 -0
  106. package/dist/inbound/cli/fleet-command.js +51 -2
  107. package/dist/inbound/cli/fleet-command.js.map +1 -1
  108. package/dist/inbound/cli/main.d.ts +3 -8
  109. package/dist/inbound/cli/main.js +14 -54
  110. package/dist/inbound/cli/main.js.map +1 -1
  111. package/dist/inbound/cli/run-command.d.ts +2 -2
  112. package/dist/inbound/cli/run-command.js +10 -9
  113. package/dist/inbound/cli/run-command.js.map +1 -1
  114. package/dist/index.d.ts +8 -7
  115. package/dist/index.js +4 -5
  116. package/dist/index.js.map +1 -1
  117. package/dist/plugins/message-bus/device-command.d.ts +70 -0
  118. package/dist/plugins/message-bus/device-command.js +197 -0
  119. package/dist/plugins/message-bus/device-command.js.map +1 -0
  120. package/dist/plugins/message-bus/index.d.ts +16 -0
  121. package/dist/plugins/message-bus/index.js +17 -0
  122. package/dist/plugins/message-bus/index.js.map +1 -1
  123. package/dist/plugins/message-bus/ms-channel-notifier.js +30 -2
  124. package/dist/plugins/message-bus/ms-channel-notifier.js.map +1 -1
  125. package/dist/ports/agent-core.d.ts +12 -6
  126. package/dist/ports/agent-host.d.ts +2 -0
  127. package/package.json +1 -1
  128. package/dist/adapters/agentcore-inner-loop.d.ts +0 -28
  129. package/dist/adapters/agentcore-inner-loop.js +0 -71
  130. package/dist/adapters/agentcore-inner-loop.js.map +0 -1
  131. package/dist/adapters/agentcore-orchestrator.js.map +0 -1
  132. package/dist/adapters/agentcore-runner.d.ts +0 -70
  133. package/dist/adapters/agentcore-runner.js.map +0 -1
  134. package/dist/adapters/app-guide.js.map +0 -1
  135. package/dist/adapters/orchestrator-agent-prompt.js.map +0 -1
  136. package/dist/adapters/vlm-inner-loop.d.ts +0 -94
  137. package/dist/adapters/vlm-inner-loop.js +0 -202
  138. package/dist/adapters/vlm-inner-loop.js.map +0 -1
  139. package/dist/agent-runtime/adapters/ui-tars.d.ts +0 -13
  140. package/dist/agent-runtime/adapters/ui-tars.js +0 -22
  141. package/dist/agent-runtime/adapters/ui-tars.js.map +0 -1
  142. package/dist/agent-runtime/planner/base.js.map +0 -1
  143. package/dist/agent-runtime/planner/llm-planner.js.map +0 -1
  144. package/dist/agent-runtime/planner/noop-planner.js.map +0 -1
  145. package/dist/agent-runtime/planner/prompts.js.map +0 -1
  146. package/dist/agent.d.ts +0 -110
  147. package/dist/agent.js +0 -162
  148. package/dist/agent.js.map +0 -1
  149. package/dist/grounding/grounder.d.ts +0 -46
  150. package/dist/grounding/grounder.js +0 -82
  151. package/dist/grounding/grounder.js.map +0 -1
  152. package/dist/model/adapters/autoglm.js.map +0 -1
  153. package/dist/model/adapters/base.js.map +0 -1
  154. package/dist/model/adapters/general.js.map +0 -1
  155. package/dist/model/adapters/guiowl.js.map +0 -1
  156. package/dist/model/adapters/index.js +0 -9
  157. package/dist/model/adapters/index.js.map +0 -1
  158. package/dist/model/adapters/maiui.js.map +0 -1
  159. package/dist/model/adapters/qwenvl.js.map +0 -1
  160. package/dist/model/adapters/showui.d.ts +0 -1
  161. package/dist/model/adapters/showui.js +0 -132
  162. package/dist/model/adapters/showui.js.map +0 -1
  163. package/dist/model/adapters/tool-call.js.map +0 -1
  164. package/dist/model/adapters/uitars.d.ts +0 -1
  165. package/dist/model/adapters/uitars.js +0 -176
  166. package/dist/model/adapters/uitars.js.map +0 -1
  167. package/dist/model/client.js.map +0 -1
  168. package/dist/model/image/compress.js.map +0 -1
  169. package/dist/model/image/transport.js.map +0 -1
  170. /package/dist/{model → agent-runtime/models}/base.js +0 -0
  171. /package/dist/{model → agent-runtime/models}/image/compress.d.ts +0 -0
  172. /package/dist/{model → agent-runtime/models}/image/compress.js +0 -0
  173. /package/dist/{model/adapters → agent-runtime/models/vlm}/autoglm.d.ts +0 -0
  174. /package/dist/{model/adapters → agent-runtime/models/vlm}/autoglm.js +0 -0
  175. /package/dist/{model/adapters → agent-runtime/models/vlm}/base.js +0 -0
  176. /package/dist/{model/adapters → agent-runtime/models/vlm}/general.d.ts +0 -0
  177. /package/dist/{model/adapters → agent-runtime/models/vlm}/guiowl.d.ts +0 -0
  178. /package/dist/{model/adapters → agent-runtime/models/vlm}/maiui.d.ts +0 -0
  179. /package/dist/{model/adapters → agent-runtime/models/vlm}/qwenvl.d.ts +0 -0
  180. /package/dist/{model/adapters → agent-runtime/models/vlm/shared}/tool-call.js +0 -0
  181. /package/dist/agent-runtime/{planner → modes/hybrid/planner}/base.js +0 -0
  182. /package/dist/agent-runtime/{planner → modes/hybrid/planner}/llm-planner.d.ts +0 -0
  183. /package/dist/agent-runtime/{planner → modes/hybrid/planner}/llm-planner.js +0 -0
  184. /package/dist/agent-runtime/{planner → modes/hybrid/planner}/noop-planner.d.ts +0 -0
  185. /package/dist/agent-runtime/{planner → modes/hybrid/planner}/noop-planner.js +0 -0
  186. /package/dist/agent-runtime/{planner → modes/hybrid/planner}/prompts.js +0 -0
  187. /package/dist/{adapters/orchestrator-agent-prompt.d.ts → agent-runtime/modes/orchestrator/prompt.d.ts} +0 -0
@@ -8,18 +8,12 @@
8
8
  *
9
9
  * The agent runs as a two-layer system by default:
10
10
  *
11
- * - **outer** orchestrator — text LLM via pi-coding-agent
12
- * (default `moonshotai/kimi-k2.6` on ARouter)
13
- * - **mobileUse** inner VLM — vision-language device control loop
14
- * (default `AutoGLM-Phone-9B-Q4_K_M.gguf` with
15
- * the `autoglm` adapter)
16
- * - **grounder** visual ground — coordinate grounding tool used by the outer
17
- * layer when it needs precise tap targets.
18
- * Defaults to mirroring `mobileUse` so a
19
- * fully self-hosted setup still works.
11
+ * - **outer** orchestrator — text LLM via pi-coding-agent
12
+ * (default `moonshotai/kimi-k2.6` on ARouter)
13
+ * - **vlm** inner VLM — vision-language device control loop
14
+ * (default `AutoGLM-Phone-9B-Q4_K_M.gguf` with
15
+ * the `autoglm` adapter)
20
16
  *
21
- * The legacy single-layer mode is still available via `legacyInner: true`
22
- * (or `--legacy-inner`) — that path drives `vlm-inner-loop.ts` directly.
23
17
  */
24
18
  import { z } from "zod";
25
19
  export const RuntimeMode = z.enum(["android", "desktop"]);
@@ -44,7 +38,7 @@ export const DEFAULT_AROUTER_BASE_URL = "https://api.arouter.ai";
44
38
  /** Default outer orchestrator model when nothing is configured. */
45
39
  export const DEFAULT_OUTER_MODEL = "moonshotai/kimi-k2.6";
46
40
  /**
47
- * Default inner mobile_use VLM model when nothing is configured.
41
+ * Default inner VLM model when nothing is configured.
48
42
  *
49
43
  * The `llama/` prefix is the ARouter **provider** route — without it, the
50
44
  * gateway falls back to `openai/...` and the request is shipped to
@@ -52,20 +46,27 @@ export const DEFAULT_OUTER_MODEL = "moonshotai/kimi-k2.6";
52
46
  * surfaces the upstream error as a hollow `502 status code (no body)`.
53
47
  * See `docs/adr/` and the agent-runtime README for the full routing table.
54
48
  */
55
- export const DEFAULT_MOBILE_USE_MODEL = "llama/AutoGLM-Phone-9B-Q4_K_M.gguf";
56
- /** Default mobile_use adapter (forwarded to OpenAIClient when constructing the inner loop). */
57
- export const DEFAULT_MOBILE_USE_PROVIDER = "autoglm";
49
+ export const DEFAULT_VLM_MODEL = "llama/AutoGLM-Phone-9B-Q4_K_M.gguf";
50
+ /**
51
+ * Default VLM adapter. Intentionally EMPTY: an unset provider means
52
+ * "auto-detect the adapter from the model name" (`detectAdapter`), which
53
+ * already falls back to `autoglm` when no pattern matches. Forcing
54
+ * `autoglm` here would short-circuit detection and mis-parse e.g.
55
+ * `general` models whose name carries no detectable pattern. Set a
56
+ * non-empty `vlmProvider` (config / `VLM_PROVIDER` / `--vlm-provider`)
57
+ * to override.
58
+ */
59
+ export const DEFAULT_VLM_PROVIDER = "";
58
60
  /**
59
61
  * Group-specific defaults exported for `loader.ts` to perform a
60
62
  * post-merge `applyGroupDefaults` pass.
61
63
  *
62
64
  * Why exported (and why loader does the backfill rather than zod):
63
65
  * `zod.default(v)` only fires when the input field is `undefined`.
64
- * When `loader` ends up producing `mobileUse: { apiKey: "x" }` (e.g.
65
- * from the legacy `vlm_api_key` mirror, or from `GUI_AGENT_API_KEY`
66
- * alone), zod sees the object and skips the whole `.default(...)` —
67
- * then `LlmSection`'s inner `model: z.string().default("")` fills
68
- * the missing field with empty string. Net result: `mobileUse.model`
66
+ * When `loader` ends up producing `vlm: { apiKey: "x" }` (e.g. from
67
+ * `VLM_API_KEY` alone), zod sees the object and skips the whole
68
+ * `.default(...)` — then `LlmSection`'s inner `model: z.string().default("")`
69
+ * fills the missing field with empty string. Net result: `vlm.model`
69
70
  * silently becomes `""` and the agent boots without a model.
70
71
  *
71
72
  * Loader is the right place to express "deep-merge group defaults"
@@ -82,19 +83,13 @@ export const OUTER_DEFAULTS = {
82
83
  model: DEFAULT_OUTER_MODEL,
83
84
  provider: "",
84
85
  };
85
- export const MOBILE_USE_DEFAULTS = {
86
+ export const VLM_DEFAULTS = {
86
87
  baseUrl: DEFAULT_AROUTER_BASE_URL,
87
- model: DEFAULT_MOBILE_USE_MODEL,
88
- provider: DEFAULT_MOBILE_USE_PROVIDER,
89
- };
90
- export const GROUNDER_DEFAULTS = {
91
- baseUrl: DEFAULT_AROUTER_BASE_URL,
92
- model: DEFAULT_MOBILE_USE_MODEL,
93
- provider: DEFAULT_MOBILE_USE_PROVIDER,
88
+ model: DEFAULT_VLM_MODEL,
89
+ provider: DEFAULT_VLM_PROVIDER,
94
90
  };
95
91
  const outerDefaults = LlmSection.parse({ ...OUTER_DEFAULTS });
96
- const mobileUseDefaults = LlmSection.parse({ ...MOBILE_USE_DEFAULTS });
97
- const grounderDefaults = LlmSection.parse({ ...GROUNDER_DEFAULTS });
92
+ const vlmDefaults = LlmSection.parse({ ...VLM_DEFAULTS });
98
93
  export const Config = z
99
94
  .object({
100
95
  /** Standalone mode: skip Bridge handshake, only run HTTP/CLI. */
@@ -144,21 +139,10 @@ export const Config = z
144
139
  */
145
140
  outer: LlmSection.default(outerDefaults),
146
141
  /**
147
- * Inner mobile_use VLM. Performs the screenshot→reason→act loop.
148
- * Maps from `GUI_AGENT_*` env / `--mobile-use-*` flags.
149
- */
150
- mobileUse: LlmSection.default(mobileUseDefaults),
151
- /**
152
- * Visual grounder used by the outer layer for precise coordinate
153
- * grounding. Maps from `GROUNDER_*` env / `--grounder-*` flags.
154
- */
155
- grounder: LlmSection.default(grounderDefaults),
156
- /**
157
- * Force the legacy single-layer adapter (vlm-inner-loop) instead of
158
- * the v0.3.0 default `AgentRunnerCore`. Maps from `--legacy-inner`
159
- * / `BEEOS_LEGACY_INNER`. Default `false`.
142
+ * Inner VLM. Performs the screenshot→reason→act loop.
143
+ * Maps from `VLM_*` env / `--vlm-*` flags.
160
144
  */
161
- legacyInner: z.boolean().default(false),
145
+ vlm: LlmSection.default(vlmDefaults),
162
146
  /**
163
147
  * Enable OrchestratorAgent (OpenAI tool-calling outer loop + inner
164
148
  * mobile_use VLM) instead of the default `AgentRunnerCore`. Maps from
@@ -177,26 +161,15 @@ export const Config = z
177
161
  * → reuse `mobileUse.model`. Maps from `--planner-model`.
178
162
  */
179
163
  plannerModel: z.string().default(""),
180
- /** Optional planner base URL. Empty → reuse `mobileUse.baseUrl`. */
164
+ /** Optional planner base URL. Empty → reuse `vlm.baseUrl`. */
181
165
  plannerBaseUrl: z.string().default(""),
182
- /** Optional planner API key. Empty → reuse `mobileUse.apiKey`. */
166
+ /** Optional planner API key. Empty → reuse `vlm.apiKey`. */
183
167
  plannerApiKey: z.string().default(""),
184
168
  // ── Plugin toggles ────────────────────────────────────────────────────
185
169
  /** Disable the ACP plugin (Bridge WS). Maps from `--no-acp`. */
186
170
  disableAcp: z.boolean().default(false),
187
171
  /** Disable the HTTP debug plugin. Maps from `--no-http`. */
188
172
  disableHttp: z.boolean().default(false),
189
- // ── Backward-compat top-level VLM fields ─────────────────────────────
190
- /**
191
- * @deprecated since the two-layer split — mirrored to `mobileUse.apiKey`
192
- * by the loader. New configs should use `mobileUse.apiKey` (and/or
193
- * `outer.apiKey` / `grounder.apiKey`) instead.
194
- */
195
- vlmApiKey: z.string().default(""),
196
- /** @deprecated mirrored to `mobileUse.baseUrl`. */
197
- vlmBaseUrl: z.string().default(DEFAULT_AROUTER_BASE_URL),
198
- /** @deprecated mirrored to `mobileUse.model`. */
199
- vlmModel: z.string().default(""),
200
173
  httpEnabled: z.boolean().default(false),
201
174
  httpHost: z.string().default("127.0.0.1"),
202
175
  httpPort: z.coerce.number().int().positive().default(9090),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAG1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACjC,CAAC;KACD,WAAW,EAAE,CAAC;AAGjB;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,wBAAwB,CAAC;AACjE,mEAAmE;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAC1D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,oCAAoC,CAAC;AAC7E,+FAA+F;AAC/F,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,wBAAwB;IACjC,KAAK,EAAE,mBAAmB;IAC1B,QAAQ,EAAE,EAAE;CACJ,CAAC;AACX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,OAAO,EAAE,wBAAwB;IACjC,KAAK,EAAE,wBAAwB;IAC/B,QAAQ,EAAE,2BAA2B;CAC7B,CAAC;AACX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,wBAAwB;IACjC,KAAK,EAAE,wBAAwB;IAC/B,QAAQ,EAAE,2BAA2B;CAC7B,CAAC;AAEX,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;AAC9D,MAAM,iBAAiB,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,GAAG,mBAAmB,EAAE,CAAC,CAAC;AACvE,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,GAAG,iBAAiB,EAAE,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC;KACpB,MAAM,CAAC;IACN,iEAAiE;IACjE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEtC;;;OAGG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,2CAA2C;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACxC,6EAA6E;IAC7E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE9B;;;OAGG;IACH,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC;IAChE,iEAAiE;IACjE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAE9B,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAEzD;;;;;;OAMG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9B;;;;OAIG;IACH,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACxC,qEAAqE;IACrE,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAChE,0DAA0D;IAC1D,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IAEvE,wEAAwE;IACxE;;;OAGG;IACH,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC;IAExC;;;OAGG;IACH,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAEhD;;;OAGG;IACH,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAE9C;;;;OAIG;IACH,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEvC;;;;OAIG;IACH,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAExC;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAE7D;;;OAGG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,oEAAoE;IACpE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,kEAAkE;IAClE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAErC,yEAAyE;IACzE,gEAAgE;IAChE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACtC,4DAA4D;IAC5D,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEvC,wEAAwE;IACxE;;;;OAIG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,mDAAmD;IACnD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC;IACxD,iDAAiD;IACjD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAEhC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACvC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1D,6DAA6D;IAC7D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAEvC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAExD;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IACvE;;;;;OAKG;IACH,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACzD;;;;;;;OAOG;IACH,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IAE1E,yEAAyE;IACzE;;;;;OAKG;IACH,yBAAyB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACpD;;;;OAIG;IACH,0BAA0B,EAAE,CAAC,CAAC,MAAM;SACjC,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B;;;OAGG;IACH,2BAA2B,EAAE,CAAC,CAAC,MAAM;SAClC,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,OAAO,CAAC,MAAM,CAAC;IAClB;;;;OAIG;IACH,gCAAgC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;IAClE;;;;OAIG;IACH,+BAA+B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAE1D,uEAAuE;IACvE;;;;;;OAMG;IACH,qBAAqB,EAAE,CAAC;SACrB,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;SACxC,OAAO,CAAC,WAAW,CAAC;IACvB;;;;OAIG;IACH,8BAA8B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAC3D;;;OAGG;IACH,sCAAsC,EAAE,CAAC,CAAC,MAAM;SAC7C,MAAM,EAAE;SACR,GAAG,EAAE;SACL,WAAW,EAAE;SACb,OAAO,CAAC,EAAE,CAAC;IACd;;;OAGG;IACH,qCAAqC,EAAE,CAAC,CAAC,MAAM;SAC5C,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,OAAO,CAAC,CAAC,CAAC;IACb;;;;OAIG;IACH,8BAA8B,EAAE,CAAC,CAAC,MAAM;SACrC,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;IACd;;;OAGG;IACH,8BAA8B,EAAE,CAAC,CAAC,MAAM;SACrC,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,OAAO,CAAC,GAAG,CAAC;IACf;;;;OAIG;IACH,mCAAmC,EAAE,CAAC,CAAC,MAAM;SAC1C,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,OAAO,CAAC,GAAG,CAAC;IAEf,wEAAwE;IACxE;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAClC;;;;;;WAMG;QACH,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC;;;;;;WAMG;QACH,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C;;;;;;;;;WASG;QACH,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACzC;;;;;;;;;;;;WAYG;QACH,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KACnE,CAAC;SACD,OAAO,CAAC;QACP,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,EAAE;QACjB,mBAAmB,EAAE,EAAE;QACvB,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,EAAE;KACpB,CAAC;IAEJ,wEAAwE;IACxE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,0BAA0B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClD;;;;;;;;;OASG;IACH,2BAA2B,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E;;;;;;;;OAQG;IACH,2BAA2B,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAE7E,wEAAwE;IACxE;;;;;;OAMG;IACH,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAChD;;;;OAIG;IACH,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC1C,CAAC;KACD,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export type AgentBayTaskStatus = "running" | "completed" | "failed" | "cancelled" | "unsupported";
2
+ export type AgentTaskReason = "done" | "fail" | "call_for_user" | "step_budget" | "timeout" | "reflection_veto" | "cancelled" | "error";
3
+ export interface AgentCoreTaskOutcomeFields {
4
+ taskStatus: AgentBayTaskStatus;
5
+ taskReason: AgentTaskReason;
6
+ taskAction?: string;
7
+ taskProduct?: string;
8
+ taskError?: string;
9
+ }
10
+ export interface AgentTaskOutcome extends AgentCoreTaskOutcomeFields {
11
+ taskId: string;
12
+ }
13
+ export declare function deriveTaskOutcome(args: {
14
+ taskId: string;
15
+ result: {
16
+ finalMessage: string;
17
+ cancelled: boolean;
18
+ taskStatus?: AgentBayTaskStatus;
19
+ taskReason?: AgentTaskReason;
20
+ taskAction?: string;
21
+ taskProduct?: string;
22
+ taskError?: string;
23
+ };
24
+ error?: string;
25
+ }): AgentTaskOutcome;
26
+ export declare function taskOutcomeFromTerminator(args: {
27
+ terminator: string;
28
+ finalMessage?: string;
29
+ taskAction?: string;
30
+ taskError?: string;
31
+ }): AgentCoreTaskOutcomeFields;
32
+ export declare function toAgentBayTaskPayload(outcome: AgentTaskOutcome | AgentCoreTaskOutcomeFields): Record<string, unknown>;
@@ -0,0 +1,68 @@
1
+ export function deriveTaskOutcome(args) {
2
+ const { taskId, result, error } = args;
3
+ const taskStatus = result.taskStatus ?? (error
4
+ ? "failed"
5
+ : result.cancelled
6
+ ? "cancelled"
7
+ : "completed");
8
+ const taskReason = result.taskReason ?? (error
9
+ ? result.cancelled
10
+ ? "cancelled"
11
+ : "error"
12
+ : result.cancelled
13
+ ? "cancelled"
14
+ : "done");
15
+ const taskProduct = result.taskProduct ?? (result.finalMessage || undefined);
16
+ const taskError = result.taskError ?? error;
17
+ return {
18
+ taskId,
19
+ taskStatus,
20
+ taskReason,
21
+ ...(result.taskAction ? { taskAction: result.taskAction } : {}),
22
+ ...(taskProduct ? { taskProduct } : {}),
23
+ ...(taskError ? { taskError } : {}),
24
+ };
25
+ }
26
+ export function taskOutcomeFromTerminator(args) {
27
+ const { terminator, finalMessage, taskAction, taskError } = args;
28
+ const base = {
29
+ ...(taskAction ? { taskAction } : {}),
30
+ ...(finalMessage ? { taskProduct: finalMessage } : {}),
31
+ ...(taskError ? { taskError } : {}),
32
+ };
33
+ switch (terminator) {
34
+ case "done":
35
+ return { taskStatus: "completed", taskReason: "done", ...base };
36
+ case "cancelled":
37
+ return { taskStatus: "cancelled", taskReason: "cancelled", ...base };
38
+ case "call_for_user":
39
+ return { taskStatus: "failed", taskReason: "call_for_user", ...base };
40
+ case "step_budget":
41
+ return { taskStatus: "failed", taskReason: "step_budget", ...base };
42
+ case "timeout":
43
+ return { taskStatus: "failed", taskReason: "timeout", ...base };
44
+ case "reflection_veto":
45
+ return { taskStatus: "failed", taskReason: "reflection_veto", ...base };
46
+ case "fail":
47
+ return { taskStatus: "failed", taskReason: "fail", ...base };
48
+ case "error":
49
+ default:
50
+ return { taskStatus: "failed", taskReason: "error", ...base };
51
+ }
52
+ }
53
+ export function toAgentBayTaskPayload(outcome) {
54
+ const payload = {
55
+ task_status: outcome.taskStatus,
56
+ task_reason: outcome.taskReason,
57
+ };
58
+ if ("taskId" in outcome)
59
+ payload.task_id = outcome.taskId;
60
+ if (outcome.taskAction)
61
+ payload.task_action = outcome.taskAction;
62
+ if (outcome.taskProduct)
63
+ payload.task_product = outcome.taskProduct;
64
+ if (outcome.taskError)
65
+ payload.task_error = outcome.taskError;
66
+ return payload;
67
+ }
68
+ //# sourceMappingURL=task-outcome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-outcome.js","sourceRoot":"","sources":["../../src/core/task-outcome.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Adapter — `IProcessManager` that hosts the device-agent DAEMON in-process.
3
+ *
4
+ * This is the production "one process controls many devices" path. The fleet
5
+ * supervisor and its pure FSM are UNCHANGED: they still believe they are
6
+ * spawning a daemon child per device. This adapter intercepts only the daemon
7
+ * lifecycle and redirects it to an in-process {@link MultiDeviceHost}, while
8
+ * delegating EVERYTHING else (mcp + scrcpy spawn/kill, liveness, pid) to a
9
+ * real {@link NodeProcessManager}.
10
+ *
11
+ * Topology this produces:
12
+ *
13
+ * device-agent fleet start --in-process (this OS process)
14
+ * ├── device-mcp-server (one shared child, via delegate) ← still a child
15
+ * ├── scrcpy-bridge × N (per device, via delegate) ← still children
16
+ * └── MultiDeviceHost (the N device-agent daemons, in-process)
17
+ *
18
+ * So the N ~50 MB agent daemons collapse into one process (deduplicated
19
+ * module/runtime baseline), but live video (scrcpy) and the shared MCP keep
20
+ * their own processes exactly as before.
21
+ *
22
+ * Why wrap instead of edit the supervisor: keeping `supervisor.ts` /
23
+ * `node-process-manager.ts` byte-identical to upstream means zero merge
24
+ * friction and the daemon's failover / activeAdbSerial / vlm-config logic is
25
+ * reused verbatim — `spawnDaemon` already receives the post-failover active
26
+ * transport in `opts.adbSerial` and the instance id for the per-device VLM
27
+ * config in `opts.instanceId`.
28
+ */
29
+ import type { IProcessManager, ManagedProcess, ProcessEventListener, SpawnOptions, SpawnScrcpyOptions } from "../../ports/process-manager.js";
30
+ import { NodeProcessManager } from "./node-process-manager.js";
31
+ import type { Config } from "../../../config/schema.js";
32
+ import type { Logger } from "../../../logger/index.js";
33
+ export interface InProcessProcessManagerOptions {
34
+ /** Real process manager that owns the mcp + scrcpy children. */
35
+ delegate: NodeProcessManager;
36
+ /** Pino logger; the hosted MultiDeviceHost derives per-device children from it. */
37
+ logger: Logger;
38
+ /** Fallback Agent Gateway URL for bindings without a per-device override. */
39
+ defaultAgentGatewayUrl?: string;
40
+ /** Shared fleet-wide base config (vlm/outer/planMode/…) applied to every runtime. */
41
+ baseConfig?: Partial<Config>;
42
+ /** Bind host of the shared mcp (default 127.0.0.1, matches NodeProcessManager). */
43
+ mcpHost?: string;
44
+ }
45
+ export declare class InProcessProcessManager implements IProcessManager {
46
+ private readonly delegate;
47
+ private readonly log;
48
+ private readonly defaultAgentGatewayUrl;
49
+ private readonly baseConfig;
50
+ private readonly mcpHost;
51
+ /** Lazily built once the shared mcp port is known (first spawnMcp). */
52
+ private host;
53
+ /** Real port the singleton mcp bound — captured from the first spawnMcp. */
54
+ private mcpPort;
55
+ private readonly listeners;
56
+ constructor(opts: InProcessProcessManagerOptions);
57
+ start(): Promise<void>;
58
+ stop(): Promise<void>;
59
+ spawnMcp(opts: SpawnOptions): Promise<void>;
60
+ killMcp(serial: string, opts?: {
61
+ expected?: boolean;
62
+ }): Promise<void>;
63
+ spawnScrcpy(opts: SpawnScrcpyOptions): Promise<void>;
64
+ killScrcpy(serial: string, opts?: {
65
+ expected?: boolean;
66
+ }): Promise<void>;
67
+ spawnDaemon(opts: SpawnOptions): Promise<void>;
68
+ killDaemon(serial: string, opts?: {
69
+ expected?: boolean;
70
+ }): Promise<void>;
71
+ isAlive(serial: string, which: ManagedProcess): boolean;
72
+ pid(serial: string, which: ManagedProcess): number | null;
73
+ on(listener: ProcessEventListener): () => void;
74
+ private ensureHost;
75
+ private emit;
76
+ }
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Adapter — `IProcessManager` that hosts the device-agent DAEMON in-process.
3
+ *
4
+ * This is the production "one process controls many devices" path. The fleet
5
+ * supervisor and its pure FSM are UNCHANGED: they still believe they are
6
+ * spawning a daemon child per device. This adapter intercepts only the daemon
7
+ * lifecycle and redirects it to an in-process {@link MultiDeviceHost}, while
8
+ * delegating EVERYTHING else (mcp + scrcpy spawn/kill, liveness, pid) to a
9
+ * real {@link NodeProcessManager}.
10
+ *
11
+ * Topology this produces:
12
+ *
13
+ * device-agent fleet start --in-process (this OS process)
14
+ * ├── device-mcp-server (one shared child, via delegate) ← still a child
15
+ * ├── scrcpy-bridge × N (per device, via delegate) ← still children
16
+ * └── MultiDeviceHost (the N device-agent daemons, in-process)
17
+ *
18
+ * So the N ~50 MB agent daemons collapse into one process (deduplicated
19
+ * module/runtime baseline), but live video (scrcpy) and the shared MCP keep
20
+ * their own processes exactly as before.
21
+ *
22
+ * Why wrap instead of edit the supervisor: keeping `supervisor.ts` /
23
+ * `node-process-manager.ts` byte-identical to upstream means zero merge
24
+ * friction and the daemon's failover / activeAdbSerial / vlm-config logic is
25
+ * reused verbatim — `spawnDaemon` already receives the post-failover active
26
+ * transport in `opts.adbSerial` and the instance id for the per-device VLM
27
+ * config in `opts.instanceId`.
28
+ */
29
+ import * as path from "node:path";
30
+ import * as fs from "node:fs";
31
+ import { materializeInlineAgentConfig } from "./node-process-manager.js";
32
+ import { MultiDeviceHost } from "../../../app/multi-device-host.js";
33
+ import { getBeeosHome } from "../../../config/paths.js";
34
+ export class InProcessProcessManager {
35
+ delegate;
36
+ log;
37
+ defaultAgentGatewayUrl;
38
+ baseConfig;
39
+ mcpHost;
40
+ /** Lazily built once the shared mcp port is known (first spawnMcp). */
41
+ host = null;
42
+ /** Real port the singleton mcp bound — captured from the first spawnMcp. */
43
+ mcpPort = null;
44
+ listeners = new Set();
45
+ constructor(opts) {
46
+ this.delegate = opts.delegate;
47
+ this.log = opts.logger;
48
+ this.defaultAgentGatewayUrl = opts.defaultAgentGatewayUrl;
49
+ this.baseConfig = opts.baseConfig;
50
+ this.mcpHost = opts.mcpHost ?? "127.0.0.1";
51
+ }
52
+ async start() {
53
+ await this.delegate.start();
54
+ }
55
+ async stop() {
56
+ // Tear down hosted runtimes first (closes their WS + flushes sessions),
57
+ // then the mcp/scrcpy children the delegate owns.
58
+ if (this.host)
59
+ await this.host.stop().catch(() => { });
60
+ await this.delegate.stop();
61
+ }
62
+ // ── mcp / scrcpy: delegated verbatim (still real child processes) ─────────
63
+ async spawnMcp(opts) {
64
+ // The first spawnMcp's port is the singleton mcp's real port (subsequent
65
+ // calls are refcount bumps on the same port). Capture it so hosted
66
+ // runtimes route to the shared server.
67
+ this.mcpPort ??= opts.mcpPort;
68
+ return this.delegate.spawnMcp(opts);
69
+ }
70
+ killMcp(serial, opts) {
71
+ return this.delegate.killMcp(serial, opts);
72
+ }
73
+ spawnScrcpy(opts) {
74
+ return this.delegate.spawnScrcpy(opts);
75
+ }
76
+ killScrcpy(serial, opts) {
77
+ return this.delegate.killScrcpy(serial, opts);
78
+ }
79
+ // ── daemon: hosted in-process ────────────────────────────────────────────
80
+ async spawnDaemon(opts) {
81
+ const host = this.ensureHost();
82
+ // Per-instance VLM/orchestrator config: materialise the same file the
83
+ // spawned daemon would read via `--vlm-config-file`, then fall back to the
84
+ // legacy `~/.beeos/<instanceId>.config.json` if present.
85
+ let configFile;
86
+ if (opts.instanceId) {
87
+ const fromState = await materializeInlineAgentConfig(opts.instanceId);
88
+ if (fromState) {
89
+ configFile = fromState;
90
+ }
91
+ else {
92
+ const legacy = path.join(getBeeosHome(), `${opts.instanceId}.config.json`);
93
+ if (await fileExists(legacy))
94
+ configFile = legacy;
95
+ }
96
+ }
97
+ await host.addDevice(spawnOptionsToBinding(opts), { configFile });
98
+ // Translate boot outcome into the lifecycle events the FSM expects. A
99
+ // boot failure is fault-isolated inside the host (no throw), so we must
100
+ // detect it via `has()` and report `daemon_exited` (unexpected) — that
101
+ // drives the FSM's backoff + respawn exactly like a crashed child.
102
+ if (host.has(opts.serial)) {
103
+ this.emit({ kind: "daemon_started", serial: opts.serial, pid: process.pid });
104
+ }
105
+ else {
106
+ this.emit({
107
+ kind: "daemon_exited",
108
+ serial: opts.serial,
109
+ code: 1,
110
+ signal: null,
111
+ expected: false,
112
+ });
113
+ }
114
+ }
115
+ async killDaemon(serial, opts) {
116
+ const wasRunning = this.host?.has(serial) ?? false;
117
+ if (this.host)
118
+ await this.host.removeDevice(serial);
119
+ if (wasRunning) {
120
+ this.emit({
121
+ kind: "daemon_exited",
122
+ serial,
123
+ code: null,
124
+ signal: "SIGTERM",
125
+ expected: opts?.expected ?? true,
126
+ });
127
+ }
128
+ }
129
+ // ── introspection ────────────────────────────────────────────────────────
130
+ isAlive(serial, which) {
131
+ if (which === "daemon")
132
+ return this.host?.has(serial) ?? false;
133
+ return this.delegate.isAlive(serial, which);
134
+ }
135
+ pid(serial, which) {
136
+ // Hosted daemons share THIS process — report our own pid when present.
137
+ if (which === "daemon")
138
+ return this.host?.has(serial) ? process.pid : null;
139
+ return this.delegate.pid(serial, which);
140
+ }
141
+ on(listener) {
142
+ // Fan in BOTH the delegate's mcp/scrcpy events and our synthetic daemon
143
+ // events. The delegate never emits daemon events (we never call its
144
+ // spawnDaemon), so there is no duplication.
145
+ const offDelegate = this.delegate.on(listener);
146
+ this.listeners.add(listener);
147
+ return () => {
148
+ offDelegate();
149
+ this.listeners.delete(listener);
150
+ };
151
+ }
152
+ // ── internals ─────────────────────────────────────────────────────────────
153
+ ensureHost() {
154
+ if (this.host)
155
+ return this.host;
156
+ if (this.mcpPort == null) {
157
+ // The FSM always spawns mcp before daemon, so this should be unreachable;
158
+ // guard loudly rather than route runtimes at a bogus port.
159
+ throw new Error("InProcessProcessManager: spawnDaemon before mcp port was known");
160
+ }
161
+ this.host = new MultiDeviceHost({
162
+ mcpUrl: `http://${this.mcpHost}:${this.mcpPort}`,
163
+ defaultAgentGatewayUrl: this.defaultAgentGatewayUrl,
164
+ ...(this.baseConfig ? { baseConfig: this.baseConfig } : {}),
165
+ logger: this.log,
166
+ });
167
+ return this.host;
168
+ }
169
+ emit(event) {
170
+ for (const l of this.listeners) {
171
+ try {
172
+ l(event);
173
+ }
174
+ catch (e) {
175
+ this.log.warn({ err: e.message }, "in-process manager: listener threw");
176
+ }
177
+ }
178
+ }
179
+ }
180
+ /**
181
+ * Project a supervisor-built `SpawnOptions` onto the `DeviceBinding` the host
182
+ * consumes. `opts.adbSerial` is already the post-failover ACTIVE transport, so
183
+ * the in-process runtime targets the same device the spawned daemon would.
184
+ */
185
+ function spawnOptionsToBinding(opts) {
186
+ return {
187
+ serial: opts.serial,
188
+ adbSerial: opts.adbSerial,
189
+ name: opts.name ?? opts.serial,
190
+ instanceId: opts.instanceId ?? null,
191
+ keyFile: opts.keyFile,
192
+ agentGatewayUrl: opts.agentGatewayUrl,
193
+ backend: opts.backend,
194
+ // httpPort intentionally dropped — MultiDeviceHost forces HTTP debug off.
195
+ };
196
+ }
197
+ async function fileExists(p) {
198
+ try {
199
+ await fs.promises.access(p);
200
+ return true;
201
+ }
202
+ catch {
203
+ return false;
204
+ }
205
+ }
206
+ //# sourceMappingURL=in-process-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-process-manager.js","sourceRoot":"","sources":["../../../../src/fleet/adapters/process/in-process-manager.ts"],"names":[],"mappings":"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"}
@@ -257,3 +257,22 @@ export declare class NodeProcessManager implements IProcessManager {
257
257
  private killChild;
258
258
  private emit;
259
259
  }
260
+ /**
261
+ * Read `state.json` and, if a `kind=device` agent with the given
262
+ * `instance_id` carries an inline `agent_config`, materialise it to a
263
+ * stable path under `~/.beeos/runtime/agent-config/<instance_id>.json`
264
+ * and return that path. Returns `null` when state.json is absent /
265
+ * malformed / forward-versioned / has no inline payload — caller then
266
+ * falls back to the legacy `~/.beeos/<instance_id>.config.json`.
267
+ *
268
+ * Why a temp file (rather than a `--vlm-config-json '<payload>'`
269
+ * flag) — keeping the existing CLI flag interface unchanged means
270
+ * the dual-write Step 3 doesn't have to ship in lockstep with a
271
+ * device-agent flag-parser change. The file lives under a stable
272
+ * path so successive spawns are idempotent (the FSM may respawn
273
+ * many times before the operator next runs `beeos device attach`).
274
+ *
275
+ * Round 5: shape parsing delegated to the shared `readStateJson`
276
+ * helper; this function just projects + materialises.
277
+ */
278
+ export declare function materializeInlineAgentConfig(instanceId: string): Promise<string | null>;
@@ -1092,7 +1092,7 @@ async function fileExists(p) {
1092
1092
  * Round 5: shape parsing delegated to the shared `readStateJson`
1093
1093
  * helper; this function just projects + materialises.
1094
1094
  */
1095
- async function materializeInlineAgentConfig(instanceId) {
1095
+ export async function materializeInlineAgentConfig(instanceId) {
1096
1096
  const home = beeoHome();
1097
1097
  const statePath = path.join(home, "state.json");
1098
1098
  const result = await readStateJson(statePath);