@beeos-ai/device-agent 0.4.2 → 0.5.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 (181) hide show
  1. package/.pi/extensions/android-tools.ts +146 -15
  2. package/LICENSE +201 -0
  3. package/dist/adapters/agent-gateway-client.d.ts +37 -0
  4. package/dist/adapters/agent-gateway-client.js +45 -0
  5. package/dist/adapters/agent-gateway-client.js.map +1 -1
  6. package/dist/adapters/agentcore-pi.d.ts +22 -0
  7. package/dist/adapters/agentcore-pi.js +48 -0
  8. package/dist/adapters/agentcore-pi.js.map +1 -1
  9. package/dist/adapters/device-android-adb.d.ts +47 -0
  10. package/dist/adapters/device-android-adb.js +50 -0
  11. package/dist/adapters/device-android-adb.js.map +1 -1
  12. package/dist/adapters/device-desktop.d.ts +12 -0
  13. package/dist/adapters/device-desktop.js +31 -0
  14. package/dist/adapters/device-desktop.js.map +1 -1
  15. package/dist/agent-runtime/adapters/base.d.ts +20 -0
  16. package/dist/agent-runtime/adapters/base.js.map +1 -1
  17. package/dist/agent-runtime/agent-runner.d.ts +4 -2
  18. package/dist/agent-runtime/agent-runner.js.map +1 -1
  19. package/dist/agent-runtime/core.d.ts +60 -0
  20. package/dist/agent-runtime/core.js +190 -9
  21. package/dist/agent-runtime/core.js.map +1 -1
  22. package/dist/agent-runtime/feedback.d.ts +56 -0
  23. package/dist/agent-runtime/feedback.js +54 -0
  24. package/dist/agent-runtime/feedback.js.map +1 -0
  25. package/dist/agent-runtime/index.d.ts +1 -0
  26. package/dist/agent-runtime/index.js +1 -0
  27. package/dist/agent-runtime/index.js.map +1 -1
  28. package/dist/agent-runtime/plan-executor.js +24 -0
  29. package/dist/agent-runtime/plan-executor.js.map +1 -1
  30. package/dist/agent-runtime/planner/base.d.ts +10 -0
  31. package/dist/agent-runtime/planner/base.js.map +1 -1
  32. package/dist/agent-runtime/planner/llm-planner.js +1 -0
  33. package/dist/agent-runtime/planner/llm-planner.js.map +1 -1
  34. package/dist/agent-runtime/planner/prompts.d.ts +3 -0
  35. package/dist/agent-runtime/planner/prompts.js +12 -0
  36. package/dist/agent-runtime/planner/prompts.js.map +1 -1
  37. package/dist/agent-runtime/reflection.d.ts +25 -6
  38. package/dist/agent-runtime/reflection.js +64 -22
  39. package/dist/agent-runtime/reflection.js.map +1 -1
  40. package/dist/agent-runtime/reflectors/policy.d.ts +10 -4
  41. package/dist/agent-runtime/reflectors/policy.js +19 -6
  42. package/dist/agent-runtime/reflectors/policy.js.map +1 -1
  43. package/dist/agent-runtime/shortcuts/fs-store.d.ts +41 -0
  44. package/dist/agent-runtime/shortcuts/fs-store.js +122 -0
  45. package/dist/agent-runtime/shortcuts/fs-store.js.map +1 -0
  46. package/dist/agent-runtime/shortcuts/in-memory-store.d.ts +20 -0
  47. package/dist/agent-runtime/shortcuts/in-memory-store.js +64 -0
  48. package/dist/agent-runtime/shortcuts/in-memory-store.js.map +1 -0
  49. package/dist/agent-runtime/shortcuts/index.d.ts +10 -0
  50. package/dist/agent-runtime/shortcuts/index.js +10 -0
  51. package/dist/agent-runtime/shortcuts/index.js.map +1 -0
  52. package/dist/agent-runtime/shortcuts/types.d.ts +69 -0
  53. package/dist/agent-runtime/shortcuts/types.js +17 -0
  54. package/dist/agent-runtime/shortcuts/types.js.map +1 -0
  55. package/dist/app/agent-host.d.ts +83 -0
  56. package/dist/app/agent-host.js +345 -32
  57. package/dist/app/agent-host.js.map +1 -1
  58. package/dist/app/session-manager.d.ts +33 -4
  59. package/dist/app/session-manager.js +27 -5
  60. package/dist/app/session-manager.js.map +1 -1
  61. package/dist/bootstrap.js +187 -3
  62. package/dist/bootstrap.js.map +1 -1
  63. package/dist/config/loader.js +22 -0
  64. package/dist/config/loader.js.map +1 -1
  65. package/dist/config/schema.d.ts +18 -0
  66. package/dist/config/schema.js +118 -0
  67. package/dist/config/schema.js.map +1 -1
  68. package/dist/inbound/acp/handlers/session.js.map +1 -1
  69. package/dist/mcp-client/client.d.ts +6 -0
  70. package/dist/mcp-client/client.js +11 -0
  71. package/dist/mcp-client/client.js.map +1 -1
  72. package/dist/mcp-client/runtime.d.ts +13 -0
  73. package/dist/orchestrator-system-prompt.d.ts +26 -0
  74. package/dist/orchestrator-system-prompt.js +118 -2
  75. package/dist/orchestrator-system-prompt.js.map +1 -1
  76. package/dist/pi-context.d.ts +50 -0
  77. package/dist/pi-context.js.map +1 -1
  78. package/dist/ports/device.d.ts +18 -0
  79. package/dist/resources/augmenter.d.ts +48 -0
  80. package/dist/resources/augmenter.js +126 -0
  81. package/dist/resources/augmenter.js.map +1 -0
  82. package/dist/resources/cache.d.ts +57 -0
  83. package/dist/resources/cache.js +107 -0
  84. package/dist/resources/cache.js.map +1 -0
  85. package/dist/resources/index.d.ts +17 -0
  86. package/dist/resources/index.js +15 -0
  87. package/dist/resources/index.js.map +1 -0
  88. package/dist/resources/lifecycle/disk-pressure.d.ts +75 -0
  89. package/dist/resources/lifecycle/disk-pressure.js +148 -0
  90. package/dist/resources/lifecycle/disk-pressure.js.map +1 -0
  91. package/dist/resources/lifecycle/index.d.ts +7 -0
  92. package/dist/resources/lifecycle/index.js +7 -0
  93. package/dist/resources/lifecycle/index.js.map +1 -0
  94. package/dist/resources/lifecycle/manager.d.ts +38 -0
  95. package/dist/resources/lifecycle/manager.js +205 -0
  96. package/dist/resources/lifecycle/manager.js.map +1 -0
  97. package/dist/resources/lifecycle/sweeper.d.ts +36 -0
  98. package/dist/resources/lifecycle/sweeper.js +179 -0
  99. package/dist/resources/lifecycle/sweeper.js.map +1 -0
  100. package/dist/resources/lifecycle/types.d.ts +180 -0
  101. package/dist/resources/lifecycle/types.js +46 -0
  102. package/dist/resources/lifecycle/types.js.map +1 -0
  103. package/dist/resources/parsers.d.ts +28 -0
  104. package/dist/resources/parsers.js +88 -0
  105. package/dist/resources/parsers.js.map +1 -0
  106. package/dist/resources/registry.d.ts +47 -0
  107. package/dist/resources/registry.js +107 -0
  108. package/dist/resources/registry.js.map +1 -0
  109. package/dist/resources/resolvers/beeos-file-resolver.d.ts +62 -0
  110. package/dist/resources/resolvers/beeos-file-resolver.js +109 -0
  111. package/dist/resources/resolvers/beeos-file-resolver.js.map +1 -0
  112. package/dist/resources/resolvers/errors.d.ts +11 -0
  113. package/dist/resources/resolvers/errors.js +23 -0
  114. package/dist/resources/resolvers/errors.js.map +1 -0
  115. package/dist/resources/resolvers/mime-table.d.ts +41 -0
  116. package/dist/resources/resolvers/mime-table.js +92 -0
  117. package/dist/resources/resolvers/mime-table.js.map +1 -0
  118. package/dist/resources/resolvers/url-resolver.d.ts +85 -0
  119. package/dist/resources/resolvers/url-resolver.js +495 -0
  120. package/dist/resources/resolvers/url-resolver.js.map +1 -0
  121. package/dist/resources/shortcut-facade.d.ts +51 -0
  122. package/dist/resources/shortcut-facade.js +72 -0
  123. package/dist/resources/shortcut-facade.js.map +1 -0
  124. package/dist/resources/telemetry.d.ts +52 -0
  125. package/dist/resources/telemetry.js +59 -0
  126. package/dist/resources/telemetry.js.map +1 -0
  127. package/dist/resources/types.d.ts +249 -0
  128. package/dist/resources/types.js +29 -0
  129. package/dist/resources/types.js.map +1 -0
  130. package/dist/shortcuts/builtins/download-to-device.d.ts +83 -0
  131. package/dist/shortcuts/builtins/download-to-device.js +125 -0
  132. package/dist/shortcuts/builtins/download-to-device.js.map +1 -0
  133. package/dist/shortcuts/builtins/find-app-package.d.ts +79 -0
  134. package/dist/shortcuts/builtins/find-app-package.js +168 -0
  135. package/dist/shortcuts/builtins/find-app-package.js.map +1 -0
  136. package/dist/shortcuts/builtins/index.d.ts +32 -0
  137. package/dist/shortcuts/builtins/index.js +37 -0
  138. package/dist/shortcuts/builtins/index.js.map +1 -0
  139. package/dist/shortcuts/builtins/open-deeplink.d.ts +68 -0
  140. package/dist/shortcuts/builtins/open-deeplink.js +142 -0
  141. package/dist/shortcuts/builtins/open-deeplink.js.map +1 -0
  142. package/dist/shortcuts/builtins/set-clipboard.d.ts +65 -0
  143. package/dist/shortcuts/builtins/set-clipboard.js +112 -0
  144. package/dist/shortcuts/builtins/set-clipboard.js.map +1 -0
  145. package/dist/shortcuts/index.d.ts +11 -0
  146. package/dist/shortcuts/index.js +11 -0
  147. package/dist/shortcuts/index.js.map +1 -0
  148. package/dist/shortcuts/registry.d.ts +56 -0
  149. package/dist/shortcuts/registry.js +70 -0
  150. package/dist/shortcuts/registry.js.map +1 -0
  151. package/dist/shortcuts/router.d.ts +91 -0
  152. package/dist/shortcuts/router.js +158 -0
  153. package/dist/shortcuts/router.js.map +1 -0
  154. package/dist/shortcuts/types.d.ts +219 -0
  155. package/dist/shortcuts/types.js +46 -0
  156. package/dist/shortcuts/types.js.map +1 -0
  157. package/package.json +24 -25
  158. package/dist/agent-runtime/skills/sqlite-store.d.ts +0 -60
  159. package/dist/agent-runtime/skills/sqlite-store.js +0 -234
  160. package/dist/agent-runtime/skills/sqlite-store.js.map +0 -1
  161. package/dist/test-lan-autoglm.d.ts +0 -7
  162. package/dist/test-lan-autoglm.js +0 -46
  163. package/dist/test-lan-autoglm.js.map +0 -1
  164. package/dist/test-mem-breakdown.d.ts +0 -1
  165. package/dist/test-mem-breakdown.js +0 -103
  166. package/dist/test-mem-breakdown.js.map +0 -1
  167. package/dist/test-mem.d.ts +0 -1
  168. package/dist/test-mem.js +0 -60
  169. package/dist/test-mem.js.map +0 -1
  170. package/dist/test-mobile-use.d.ts +0 -1
  171. package/dist/test-mobile-use.js +0 -18
  172. package/dist/test-mobile-use.js.map +0 -1
  173. package/dist/test-screenshot-loop.d.ts +0 -1
  174. package/dist/test-screenshot-loop.js +0 -43
  175. package/dist/test-screenshot-loop.js.map +0 -1
  176. package/dist/test-screenshot.d.ts +0 -1
  177. package/dist/test-screenshot.js +0 -10
  178. package/dist/test-screenshot.js.map +0 -1
  179. package/dist/test-ui-xml-dump.d.ts +0 -15
  180. package/dist/test-ui-xml-dump.js +0 -49
  181. package/dist/test-ui-xml-dump.js.map +0 -1
@@ -29,7 +29,9 @@
29
29
  * - reflection veto
30
30
  * - external `AbortSignal` aborted
31
31
  */
32
+ import { createHash } from "node:crypto";
32
33
  import { isTerminal } from "@beeos-ai/device-common";
34
+ import { formatFeedbackForPrompt } from "./feedback.js";
33
35
  import { HierarchicalReflector } from "./reflection.js";
34
36
  /* ──────────────────────────────────────────────────────────────────────── */
35
37
  /* AgentLoop */
@@ -42,10 +44,40 @@ export class AgentLoop {
42
44
  reflector;
43
45
  notes = [];
44
46
  trajectoryVerdict;
47
+ /**
48
+ * One-way bus for diagnostics that need to surface in the next
49
+ * `Observation.task` prefix. Drained right before each predict; entries
50
+ * are pushed by veto / act_failed / trajectory-reflector paths. See
51
+ * `feedback.ts` for the rationale (closes the reflection feedback loop
52
+ * without adapter protocol changes).
53
+ */
54
+ pendingFeedback = [];
55
+ /**
56
+ * Append-only counterpart of {@link pendingFeedback} — never drained.
57
+ * Surfaced via `AgentRunResult.feedbackLog` so the PlanExecutor can
58
+ * thread the most recent entries into `PlanContext.failureChain` on
59
+ * replan.
60
+ */
61
+ feedbackLog = [];
62
+ /**
63
+ * Per-veto-code *consecutive* counter — only tracks the most recent
64
+ * veto code so that an A→B→A sequence is NOT treated as "A fired
65
+ * twice in a row" (that's exactly what `consecutive` means). Reset on
66
+ * any successful action dispatch. When a single code fires twice in a
67
+ * row we escalate to a fatal `reflection_veto` so the PlanExecutor
68
+ * can `replan()` — much faster than waiting for `maybeVeto` to spot
69
+ * four identical actions.
70
+ */
71
+ vetoCodeCount = {};
45
72
  constructor(opts) {
46
73
  this.opts = opts;
47
74
  this.reflector = opts.reflector ?? new HierarchicalReflector(opts.adapter);
48
75
  }
76
+ /** Push feedback into both the pending queue and the immutable log. */
77
+ pushFeedback(item) {
78
+ this.pendingFeedback.push(item);
79
+ this.feedbackLog.push(item);
80
+ }
49
81
  async run() {
50
82
  const maxSteps = this.opts.maxSteps ?? AgentLoop.DEFAULT_MAX_STEPS;
51
83
  const timeoutMs = this.opts.timeoutMs ?? AgentLoop.DEFAULT_TIMEOUT_MS;
@@ -83,6 +115,22 @@ export class AgentLoop {
83
115
  await this.fire("onError", err);
84
116
  return this.finish("error", step, err.message, usage, err);
85
117
  }
118
+ // Compute a normalised screen-state fingerprint. Used downstream by
119
+ // reflectors to detect "no progress" stalls more reliably than
120
+ // coordinate-similarity heuristics. Only meaningful when uiDump is
121
+ // present; pure-vision flows fall back to the legacy 8px rule.
122
+ obs.screenStateHash = computeScreenStateHash(obs.uiDump);
123
+ // Stamp the previous step's `screenStateHashAfter` with the current
124
+ // observation's fingerprint — the MCP act + roundtrip + subsequent
125
+ // observe() naturally act as the settle wait, so this is the
126
+ // cheapest "did the screen actually change?" signal we can offer
127
+ // to `maybeBlockAction` without an extra MCP call.
128
+ if (this.history.length > 0 && obs.screenStateHash !== undefined) {
129
+ const prev = this.history[this.history.length - 1];
130
+ if (prev.screenStateHashAfter === undefined) {
131
+ prev.screenStateHashAfter = obs.screenStateHash;
132
+ }
133
+ }
86
134
  // ── Phase 1.5 — derive a text-only observation summary. Prefer
87
135
  // uiDump's top text/content-desc nodes (already fetched when the
88
136
  // adapter sets `consumesUiDump`); otherwise we fall back to the
@@ -90,12 +138,26 @@ export class AgentLoop {
90
138
  // downstream reflectors read so they don't need the screenshot.
91
139
  let observationSummary = summarizeUiDump(obs.uiDump);
92
140
  // ── 2. Predict ────────────────────────────────────────────────
141
+ // Splice any pending reflector feedback into the prompt so the
142
+ // grounder sees that its previous action was blocked / failed
143
+ // before it picks the next one. This closes the reflection
144
+ // feedback loop without touching adapter protocols. The drained
145
+ // entries are still preserved in `feedbackLog` for the executor.
146
+ // Snapshot pending feedback for this round's prompt, but DO NOT drain
147
+ // the queue yet — if `predictAction` throws, the LLM never actually
148
+ // sees the SYSTEM NOTICE, so the feedback must survive to the next
149
+ // round. We only clear after a successful predict (see below).
150
+ const feedbackPrefix = formatFeedbackForPrompt(this.pendingFeedback);
151
+ const obsForPredict = feedbackPrefix
152
+ ? { ...obs, task: `${feedbackPrefix}${obs.task}` }
153
+ : obs;
93
154
  let prediction;
94
155
  try {
95
- prediction = await this.opts.adapter.predictAction(obs, this.history, {
156
+ prediction = await this.opts.adapter.predictAction(obsForPredict, this.history, {
96
157
  signal: this.opts.signal,
97
158
  hooks: { onText: this.opts.hooks?.onText, onReasoning: this.opts.hooks?.onReasoning },
98
159
  });
160
+ this.pendingFeedback = [];
99
161
  }
100
162
  catch (e) {
101
163
  if (this.opts.signal?.aborted) {
@@ -117,6 +179,7 @@ export class AgentLoop {
117
179
  observationSummary: "",
118
180
  actionResult: "predict_failed",
119
181
  actErrorMessage: err.message,
182
+ screenStateHashBefore: obs.screenStateHash,
120
183
  });
121
184
  continue;
122
185
  }
@@ -148,8 +211,10 @@ export class AgentLoop {
148
211
  if (note.trim().length > 0) {
149
212
  this.notes.push(note.trim());
150
213
  }
151
- this.recordHistory(step, prediction, observationSummary, "ok");
214
+ this.recordHistory(step, prediction, observationSummary, "ok", undefined, obs.screenStateHash);
152
215
  await this.fireStep(step, prediction, false);
216
+ // Successful (non-vetoed) action — clear veto escalation counter.
217
+ this.vetoCodeCount = {};
153
218
  // Heuristic veto still applies (4 identical take_note in a row =
154
219
  // stalled grounder), so fall through to the bottom check.
155
220
  const veto = this.reflector.maybeVeto(this.history, step, maxSteps);
@@ -183,8 +248,35 @@ export class AgentLoop {
183
248
  const veto = this.reflector.maybeBlockAction(this.history, action);
184
249
  if (veto) {
185
250
  const note = `pre-sanity blocked: ${veto.code} — ${veto.reason}`;
186
- this.recordHistory(step, prediction, note, "skipped", veto.reason);
251
+ this.recordHistory(step, prediction, note, "skipped", veto.reason, obs.screenStateHash);
187
252
  await this.fireStep(step, prediction, false);
253
+ // Push feedback so the next predict explicitly sees that the
254
+ // action was NOT executed. Modern instruction-tuned LLMs honour
255
+ // a fresh user-side correction over their own self-inferred
256
+ // history, which is what closes the AutoGLM "I tapped X" loop.
257
+ this.pushFeedback({
258
+ source: "pre_sanity",
259
+ code: veto.code,
260
+ reason: veto.reason,
261
+ });
262
+ // Escalation cadence — same code firing twice *in a row* is
263
+ // the canonical "stuck on a bad idea" signal. Bail straight
264
+ // to `reflection_veto` so the PlanExecutor can `replan()`
265
+ // instead of waiting for `maybeVeto` to spot four identical
266
+ // actions. We track only the most recent code so an A→B→A
267
+ // sequence is correctly treated as "no consecutive run of A".
268
+ const prevCount = this.vetoCodeCount[veto.code] ?? 0;
269
+ this.vetoCodeCount = { [veto.code]: prevCount + 1 };
270
+ if (this.vetoCodeCount[veto.code] >= 2) {
271
+ const msg = `veto loop on ${veto.code}: ${veto.reason}`;
272
+ const fatal = {
273
+ code: "REFLECTION_VETO",
274
+ message: msg,
275
+ fatal: true,
276
+ };
277
+ await this.fire("onError", fatal);
278
+ return this.finish("reflection_veto", step, msg, usage, fatal);
279
+ }
188
280
  // Surface as a non-fatal error event so the orchestrator can log it.
189
281
  await this.fire("onError", {
190
282
  code: "REFLECTION_VETO",
@@ -200,7 +292,8 @@ export class AgentLoop {
200
292
  stringFromPayload(action.payload, "finalText") ??
201
293
  "task complete";
202
294
  await this.fireStep(step, prediction, true);
203
- this.recordHistory(step, prediction, observationSummary, "terminal");
295
+ this.recordHistory(step, prediction, observationSummary, "terminal", undefined, obs.screenStateHash);
296
+ this.markTerminalHashAfter(obs.screenStateHash);
204
297
  return this.finish("done", step, finalText, usage, lastError);
205
298
  }
206
299
  if (action.type === "fail") {
@@ -215,7 +308,8 @@ export class AgentLoop {
215
308
  };
216
309
  await this.fire("onError", err);
217
310
  await this.fireStep(step, prediction, true);
218
- this.recordHistory(step, prediction, observationSummary, "terminal", finalText);
311
+ this.recordHistory(step, prediction, observationSummary, "terminal", finalText, obs.screenStateHash);
312
+ this.markTerminalHashAfter(obs.screenStateHash);
219
313
  return this.finish("fail", step, finalText, usage, err);
220
314
  }
221
315
  if (action.type === "call_for_user") {
@@ -224,7 +318,8 @@ export class AgentLoop {
224
318
  stringFromPayload(action.payload, "reason") ??
225
319
  "operator takeover requested";
226
320
  await this.fireStep(step, prediction, true);
227
- this.recordHistory(step, prediction, observationSummary, "terminal");
321
+ this.recordHistory(step, prediction, observationSummary, "terminal", undefined, obs.screenStateHash);
322
+ this.markTerminalHashAfter(obs.screenStateHash);
228
323
  if (!this.opts.waitForUser) {
229
324
  return this.finish("call_for_user", step, finalText, usage, lastError);
230
325
  }
@@ -248,8 +343,15 @@ export class AgentLoop {
248
343
  lastError = err;
249
344
  await this.fire("onError", err);
250
345
  // Record the failed step, then keep going so the model can recover.
251
- this.recordHistory(step, prediction, observationSummary, "act_failed", err.message);
346
+ this.recordHistory(step, prediction, observationSummary, "act_failed", err.message, obs.screenStateHash);
252
347
  await this.fireStep(step, prediction, false);
348
+ // Surface the failure to the next predict so the grounder doesn't
349
+ // assume the action took effect.
350
+ this.pushFeedback({
351
+ source: "act_failed",
352
+ code: "act_failed",
353
+ reason: err.message,
354
+ });
253
355
  // Action reflector is most useful exactly here — fire it before
254
356
  // the next predict so the grounder sees the verdict in history.
255
357
  await this.maybeRunActionReflector(prediction, "act_failed", usage);
@@ -262,8 +364,12 @@ export class AgentLoop {
262
364
  result: actResult,
263
365
  durationMs,
264
366
  });
265
- this.recordHistory(step, prediction, observationSummary, "ok");
367
+ this.recordHistory(step, prediction, observationSummary, "ok", undefined, obs.screenStateHash);
266
368
  await this.fireStep(step, prediction, false);
369
+ // Successful (non-vetoed) action — clear veto escalation counter
370
+ // so a future legitimate retry sequence isn't penalised by stale
371
+ // counts from an earlier loop arc.
372
+ this.vetoCodeCount = {};
267
373
  // ── 4. Reflect (model-based action reflector — Phase 1.4) ──────
268
374
  await this.maybeRunActionReflector(prediction, "ok", usage);
269
375
  // ── 5. Heuristic veto ─────────────────────────────────────────
@@ -455,6 +561,16 @@ export class AgentLoop {
455
561
  last.rationale = (last.rationale ? last.rationale + "\n" : "") + tag;
456
562
  }
457
563
  this.trajectoryVerdict = { verdict: verdict.verdict, reason: verdict.reason };
564
+ // Push into the feedback queue so the next predict (or the planner
565
+ // on replan) sees the trajectory verdict explicitly. For `off_track`
566
+ // this is the primary signal because the loop keeps going.
567
+ this.pushFeedback({
568
+ source: "trajectory_reflector",
569
+ code: verdict.verdict,
570
+ reason: verdict.suggestion
571
+ ? `${verdict.reason} (suggestion: ${verdict.suggestion})`
572
+ : verdict.reason,
573
+ });
458
574
  if (verdict.verdict === "stuck") {
459
575
  return `trajectory stuck: ${verdict.reason}`;
460
576
  }
@@ -467,7 +583,7 @@ export class AgentLoop {
467
583
  return undefined;
468
584
  }
469
585
  }
470
- recordHistory(step, p, summary, actionResult, actErrorMessage) {
586
+ recordHistory(step, p, summary, actionResult, actErrorMessage, screenStateHashBefore) {
471
587
  this.history.push({
472
588
  stepIdx: step,
473
589
  action: p.action,
@@ -476,8 +592,27 @@ export class AgentLoop {
476
592
  actionResult,
477
593
  confidence: p.confidence,
478
594
  actErrorMessage,
595
+ screenStateHashBefore,
479
596
  });
480
597
  }
598
+ /**
599
+ * Backfill `screenStateHashAfter` on the just-pushed terminal history
600
+ * entry. Terminal actions (`done` / `fail` / `call_for_user`) return
601
+ * immediately and the next-iteration `observe()` never runs, so the
602
+ * normal hash-after backfill at the top of the loop body never fires.
603
+ * For terminal entries we set after = before — the screen cannot
604
+ * possibly change after the loop exits — eliminating the residual
605
+ * `undefined` that downstream consumers (telemetry, replay) had to
606
+ * special-case.
607
+ */
608
+ markTerminalHashAfter(hash) {
609
+ if (this.history.length === 0)
610
+ return;
611
+ const last = this.history[this.history.length - 1];
612
+ if (last.screenStateHashAfter === undefined) {
613
+ last.screenStateHashAfter = hash;
614
+ }
615
+ }
481
616
  async fireStep(step, prediction, finished) {
482
617
  if (!this.opts.hooks?.onStep)
483
618
  return;
@@ -516,6 +651,7 @@ export class AgentLoop {
516
651
  lastError,
517
652
  notes: [...this.notes],
518
653
  trajectoryVerdict: this.trajectoryVerdict,
654
+ feedbackLog: [...this.feedbackLog],
519
655
  };
520
656
  }
521
657
  }
@@ -609,6 +745,51 @@ function summarizeRationale(rationale) {
609
745
  function truncateForSummary(s) {
610
746
  return s.length > 200 ? `${s.slice(0, 199)}…` : s;
611
747
  }
748
+ /**
749
+ * Attribute names that uiautomator emits but which can flip on tiny
750
+ * focus / scroll / selection / cursor changes that don't constitute
751
+ * "screen progress" from the agent's perspective. Stripping them keeps
752
+ * `screenStateHash` stable across cosmetic jitter so `no_progress_repeat`
753
+ * actually fires when the screen is functionally unchanged.
754
+ *
755
+ * `bounds` is also stripped (separately) for pixel jitter on layout
756
+ * recalculation. Add new noisy attributes here as we observe them.
757
+ */
758
+ const NOISY_UI_DUMP_ATTRS = [
759
+ "bounds",
760
+ "index",
761
+ "focused",
762
+ "focusable",
763
+ "selected",
764
+ "scrollable",
765
+ "long-clickable",
766
+ "checkable",
767
+ "password",
768
+ ];
769
+ const NOISY_UI_DUMP_ATTR_RE = new RegExp(`\\b(?:${NOISY_UI_DUMP_ATTRS.join("|")})="[^"]*"`, "g");
770
+ /**
771
+ * Compute a normalised fingerprint of the on-screen state for stall
772
+ * detection. The hash is computed over the uiautomator XML with all
773
+ * {@link NOISY_UI_DUMP_ATTRS} stripped and whitespace collapsed so
774
+ * that focus/scroll/cursor jitter does not flip the hash. Two screens
775
+ * that look identical to a human should produce the same hash.
776
+ *
777
+ * Returns `undefined` when no `uiDump` is available — pure-vision
778
+ * adapters (Open-AutoGLM, UI-TARS, Qwen-VL) skip the dump round-trip
779
+ * and fall back to the legacy 8px coordinate-similarity heuristic in
780
+ * `HierarchicalReflector.maybeBlockAction`.
781
+ */
782
+ export function computeScreenStateHash(uiDump) {
783
+ if (!uiDump)
784
+ return undefined;
785
+ const normalised = uiDump
786
+ .replace(NOISY_UI_DUMP_ATTR_RE, "")
787
+ .replace(/\s+/g, " ")
788
+ .trim();
789
+ if (!normalised)
790
+ return undefined;
791
+ return createHash("md5").update(normalised).digest("hex");
792
+ }
612
793
  function scaleCoord(v, system, screen, _axis) {
613
794
  if (system === "0-1000")
614
795
  return Math.round((v / 1000) * screen);
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/agent-runtime/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/agent-runtime/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * agent-runtime/feedback — one-way bus for diagnostics that need to reach
3
+ * the next `predictAction` call WITHOUT touching the adapter protocol.
4
+ *
5
+ * Why this exists (KISS):
6
+ * The reflector stack writes diagnostics into `StepHistory.rationale` /
7
+ * `StepHistory.actErrorMessage`, but every adapter (autoglm / uitars /
8
+ * qwenvl / guiowl / maiui / showui) maintains its OWN private
9
+ * `Message[]` context inside `ModelClient.updateContext` and never reads
10
+ * `StepHistory`. As a result, when AgentLoop vetoes an action the model
11
+ * keeps re-emitting the same blocked action because (a) it doesn't see
12
+ * the veto reason and (b) its own context still says "I tapped X".
13
+ *
14
+ * We close the loop without changing the adapter protocol: AgentLoop
15
+ * maintains a `pendingFeedback` queue, and right before the next predict
16
+ * it splices a `[SYSTEM NOTICE]` block into `Observation.task`. Modern
17
+ * instruction-tuned LLMs prioritise the latest user message over their
18
+ * own self-inferred prior turns, so a user-side correction is enough
19
+ * for AutoGLM-Phone-9B / GLM-4 / Claude / GPT-4 to course-correct.
20
+ *
21
+ * This is a deliberate alternative to refactoring 6 adapters' private
22
+ * context APIs (the "research-grade" route). See
23
+ * `.cursor/plans/device-agent_reflector_hardening_efea035f.plan.md`
24
+ * for the cost-benefit analysis.
25
+ */
26
+ /**
27
+ * Diagnostic the AgentLoop wants the next predict to see. Sources are kept
28
+ * coarse; concrete codes (e.g. `"no_progress_repeat"`, `"act_failed"`,
29
+ * `"trajectory_stuck"`) live in the reasoning string so we don't have to
30
+ * pre-enumerate every reflector code in this central type.
31
+ */
32
+ export interface StepFeedback {
33
+ /** Which subsystem produced the feedback. */
34
+ source: "pre_sanity" | "act_failed" | "trajectory_reflector";
35
+ /** Stable machine-readable code (e.g. `"no_progress_repeat"`). */
36
+ code: string;
37
+ /** Short human-readable explanation surfaced into the next prompt. */
38
+ reason: string;
39
+ }
40
+ /**
41
+ * Render a list of {@link StepFeedback} entries into a `[SYSTEM NOTICE]`
42
+ * block to prepend onto the next `Observation.task`. Returns the empty
43
+ * string when `items` is empty so the caller can skip the splice
44
+ * cheaply.
45
+ *
46
+ * Deliberate prompt design choices:
47
+ * - `[SYSTEM NOTICE — read carefully]` header uses caps + an em-dash
48
+ * so the model treats it as out-of-band metadata, not part of the
49
+ * task description.
50
+ * - The phrase `was NOT executed` is in caps to override any prior
51
+ * adapter context that says the action happened.
52
+ * - The closing reminder ("Pick a different approach…") gives the
53
+ * grounder a concrete escape hatch so it doesn't simply retry the
54
+ * same target with a tiny perturbation.
55
+ */
56
+ export declare function formatFeedbackForPrompt(items: readonly StepFeedback[]): string;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * agent-runtime/feedback — one-way bus for diagnostics that need to reach
3
+ * the next `predictAction` call WITHOUT touching the adapter protocol.
4
+ *
5
+ * Why this exists (KISS):
6
+ * The reflector stack writes diagnostics into `StepHistory.rationale` /
7
+ * `StepHistory.actErrorMessage`, but every adapter (autoglm / uitars /
8
+ * qwenvl / guiowl / maiui / showui) maintains its OWN private
9
+ * `Message[]` context inside `ModelClient.updateContext` and never reads
10
+ * `StepHistory`. As a result, when AgentLoop vetoes an action the model
11
+ * keeps re-emitting the same blocked action because (a) it doesn't see
12
+ * the veto reason and (b) its own context still says "I tapped X".
13
+ *
14
+ * We close the loop without changing the adapter protocol: AgentLoop
15
+ * maintains a `pendingFeedback` queue, and right before the next predict
16
+ * it splices a `[SYSTEM NOTICE]` block into `Observation.task`. Modern
17
+ * instruction-tuned LLMs prioritise the latest user message over their
18
+ * own self-inferred prior turns, so a user-side correction is enough
19
+ * for AutoGLM-Phone-9B / GLM-4 / Claude / GPT-4 to course-correct.
20
+ *
21
+ * This is a deliberate alternative to refactoring 6 adapters' private
22
+ * context APIs (the "research-grade" route). See
23
+ * `.cursor/plans/device-agent_reflector_hardening_efea035f.plan.md`
24
+ * for the cost-benefit analysis.
25
+ */
26
+ /**
27
+ * Render a list of {@link StepFeedback} entries into a `[SYSTEM NOTICE]`
28
+ * block to prepend onto the next `Observation.task`. Returns the empty
29
+ * string when `items` is empty so the caller can skip the splice
30
+ * cheaply.
31
+ *
32
+ * Deliberate prompt design choices:
33
+ * - `[SYSTEM NOTICE — read carefully]` header uses caps + an em-dash
34
+ * so the model treats it as out-of-band metadata, not part of the
35
+ * task description.
36
+ * - The phrase `was NOT executed` is in caps to override any prior
37
+ * adapter context that says the action happened.
38
+ * - The closing reminder ("Pick a different approach…") gives the
39
+ * grounder a concrete escape hatch so it doesn't simply retry the
40
+ * same target with a tiny perturbation.
41
+ */
42
+ export function formatFeedbackForPrompt(items) {
43
+ if (items.length === 0)
44
+ return "";
45
+ const lines = items.map((f) => `- [${f.source}:${f.code}] ${f.reason}`);
46
+ return [
47
+ "[SYSTEM NOTICE — read carefully]",
48
+ "Your previous action was NOT executed by the runtime.",
49
+ ...lines,
50
+ "Pick a different approach (different coordinates, different gesture, or change strategy).",
51
+ "",
52
+ ].join("\n");
53
+ }
54
+ //# sourceMappingURL=feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/agent-runtime/feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAiBH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAA8B;IACpE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACxE,OAAO;QACL,kCAAkC;QAClC,uDAAuD;QACvD,GAAG,KAAK;QACR,2FAA2F;QAC3F,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  export { AgentLoop, type AgentErrorCode, type AgentErrorEvent, type AgentLoopTerminator, type AgentRunHooks, type AgentRunOptions, type AgentRunResult, type AgentStepEvent, type AgentToolEvent, } from "./core.js";
7
7
  export { HierarchicalReflector, actionsEqual, type HierarchicalReflectorOptions, type PreActionVeto, } from "./reflection.js";
8
+ export { formatFeedbackForPrompt, type StepFeedback } from "./feedback.js";
8
9
  export { HIGH_RISK_VERBS, LLMActionReflector, type ActionReflectCtx, type ActionReflectVerdict, type ActionReflectorGating, type IActionReflector, type LLMActionReflectorOptions, } from "./reflectors/action-reflector.js";
9
10
  export { buildReflectorPolicyFromEnv, resolveActionReflector, resolveTrajectoryReflector, type ReflectorPolicy, } from "./reflectors/policy.js";
10
11
  export { availableAdapters, clearAdapters, makePrediction, MockAdapter, OpenAIAdapter, parsedToAction, registerAdapter, resolveAdapter, resolveAdapterSync, UITarsAdapter, type AdapterDescriptor, type IModelAdapter, type MockAdapterOptions, type ModelUsage, type OpenAIAdapterOptions, type PredictHooks, type PredictOptions, type Prediction, type StepHistory, } from "./adapters/index.js";
@@ -5,6 +5,7 @@
5
5
  */
6
6
  export { AgentLoop, } from "./core.js";
7
7
  export { HierarchicalReflector, actionsEqual, } from "./reflection.js";
8
+ export { formatFeedbackForPrompt } from "./feedback.js";
8
9
  export { HIGH_RISK_VERBS, LLMActionReflector, } from "./reflectors/action-reflector.js";
9
10
  export { buildReflectorPolicyFromEnv, resolveActionReflector, resolveTrajectoryReflector, } from "./reflectors/policy.js";
10
11
  export { availableAdapters, clearAdapters, makePrediction, MockAdapter, OpenAIAdapter, parsedToAction, registerAdapter, resolveAdapter, resolveAdapterSync, UITarsAdapter, } from "./adapters/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-runtime/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,SAAS,GASV,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,qBAAqB,EACrB,YAAY,GAGb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,eAAe,EACf,kBAAkB,GAMnB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,GAE3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,aAAa,GAUd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,oBAAoB,GAOrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAA0B,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,WAAW,GAIZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,iBAAiB,EACjB,MAAM,EACN,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,EACV,uBAAuB,EACvB,eAAe,GAYhB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-runtime/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,SAAS,GASV,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,qBAAqB,EACrB,YAAY,GAGb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,uBAAuB,EAAqB,MAAM,eAAe,CAAC;AAE3E,OAAO,EACL,eAAe,EACf,kBAAkB,GAMnB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,GAE3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,aAAa,GAUd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,oBAAoB,GAOrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAA0B,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,WAAW,GAIZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,iBAAiB,EACjB,MAAM,EACN,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,EACV,uBAAuB,EACvB,eAAe,GAYhB,MAAM,mBAAmB,CAAC"}
@@ -74,6 +74,15 @@ export class PlanExecutor {
74
74
  * failure mode.
75
75
  */
76
76
  let lastTrajectoryVerdict;
77
+ /**
78
+ * KISS hardening — append-only feedback ring across the whole plan
79
+ * run. Each inner AgentLoop's `feedbackLog` is concatenated here
80
+ * (capped at the last `MAX_AGGREGATED_FEEDBACK` entries). Threaded
81
+ * into `PlanContext.failureChain` so the planner sees the structured
82
+ * veto / act_failed trail accumulated across **all** sub-tasks, not
83
+ * just the one that just failed.
84
+ */
85
+ const aggregatedFeedback = [];
77
86
  // ── Initial plan ────────────────────────────────────────────────────
78
87
  // The planner round-trip can fail intermittently (upstream LLM 5xx /
79
88
  // network reset). Don't let that bubble up as a fatal task error —
@@ -231,6 +240,14 @@ export class PlanExecutor {
231
240
  notes.push(...result.notes);
232
241
  if (result.trajectoryVerdict)
233
242
  lastTrajectoryVerdict = result.trajectoryVerdict;
243
+ aggregatedFeedback.push(...result.feedbackLog);
244
+ // Cap the buffer so a long-running plan with many failures doesn't
245
+ // grow memory unboundedly — we only ever surface the last 3 entries
246
+ // anyway, but keep a small history (~32) for telemetry / debugging.
247
+ const MAX_AGGREGATED_FEEDBACK = 32;
248
+ if (aggregatedFeedback.length > MAX_AGGREGATED_FEEDBACK) {
249
+ aggregatedFeedback.splice(0, aggregatedFeedback.length - MAX_AGGREGATED_FEEDBACK);
250
+ }
234
251
  lastTerminator = result.terminator;
235
252
  lastFinalText = result.finalText;
236
253
  if (SUCCESS_TERMINATORS.has(result.terminator)) {
@@ -273,6 +290,13 @@ export class PlanExecutor {
273
290
  // Phase 2.2 / 2.3 — surface the most recent trajectory verdict so
274
291
  // the planner can react to "off_track" / "stuck" explicitly.
275
292
  trajectoryVerdict: lastTrajectoryVerdict,
293
+ // KISS hardening — surface the last 3 reflector feedback entries
294
+ // accumulated across **all** sub-tasks so the planner sees the
295
+ // precise failure trail (pre-sanity vetoes, MCP failures,
296
+ // trajectory verdicts) rather than having to parse
297
+ // `failureReason`. Cross-sub-task accumulation matters when an
298
+ // earlier step failed in the same way as the current one.
299
+ failureChain: aggregatedFeedback.length > 0 ? aggregatedFeedback.slice(-3) : undefined,
276
300
  };
277
301
  try {
278
302
  const repl = await this.opts.planner.replan(ctx, { signal: this.opts.signal });