@beeos-ai/device-agent 0.12.7 → 0.14.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 (149) hide show
  1. package/dist/agent-runtime/adapters/base.d.ts +2 -0
  2. package/dist/agent-runtime/adapters/base.js +1 -0
  3. package/dist/agent-runtime/adapters/base.js.map +1 -1
  4. package/dist/agent-runtime/adapters/openai.js +39 -17
  5. package/dist/agent-runtime/adapters/openai.js.map +1 -1
  6. package/dist/agent-runtime/advanced/app-card.d.ts +23 -0
  7. package/dist/agent-runtime/advanced/app-card.js +99 -0
  8. package/dist/agent-runtime/advanced/app-card.js.map +1 -0
  9. package/dist/agent-runtime/advanced/knowledge.d.ts +15 -0
  10. package/dist/agent-runtime/advanced/knowledge.js +85 -0
  11. package/dist/agent-runtime/advanced/knowledge.js.map +1 -0
  12. package/dist/agent-runtime/advanced/subgoal-verifier.d.ts +37 -0
  13. package/dist/agent-runtime/advanced/subgoal-verifier.js +190 -0
  14. package/dist/agent-runtime/advanced/subgoal-verifier.js.map +1 -0
  15. package/dist/agent-runtime/advanced/task-state.d.ts +20 -0
  16. package/dist/agent-runtime/advanced/task-state.js +60 -0
  17. package/dist/agent-runtime/advanced/task-state.js.map +1 -0
  18. package/dist/agent-runtime/agent-runner.d.ts +16 -27
  19. package/dist/agent-runtime/agent-runner.js +19 -132
  20. package/dist/agent-runtime/agent-runner.js.map +1 -1
  21. package/dist/agent-runtime/core.d.ts +8 -0
  22. package/dist/agent-runtime/core.js +24 -2
  23. package/dist/agent-runtime/core.js.map +1 -1
  24. package/dist/agent-runtime/execution-mode.d.ts +28 -0
  25. package/dist/agent-runtime/execution-mode.js +51 -0
  26. package/dist/agent-runtime/execution-mode.js.map +1 -0
  27. package/dist/agent-runtime/factory.d.ts +6 -4
  28. package/dist/agent-runtime/factory.js +4 -4
  29. package/dist/agent-runtime/factory.js.map +1 -1
  30. package/dist/agent-runtime/index.d.ts +9 -2
  31. package/dist/agent-runtime/index.js +7 -0
  32. package/dist/agent-runtime/index.js.map +1 -1
  33. package/dist/agent-runtime/models/base.d.ts +2 -0
  34. package/dist/agent-runtime/models/client.d.ts +1 -0
  35. package/dist/agent-runtime/models/client.js +90 -1
  36. package/dist/agent-runtime/models/client.js.map +1 -1
  37. package/dist/agent-runtime/models/runtime-registry.d.ts +28 -0
  38. package/dist/agent-runtime/models/runtime-registry.js +59 -0
  39. package/dist/agent-runtime/models/runtime-registry.js.map +1 -0
  40. package/dist/agent-runtime/models/vlm/autoglm.js +14 -9
  41. package/dist/agent-runtime/models/vlm/autoglm.js.map +1 -1
  42. package/dist/agent-runtime/models/vlm/base.d.ts +15 -1
  43. package/dist/agent-runtime/models/vlm/base.js +31 -10
  44. package/dist/agent-runtime/models/vlm/base.js.map +1 -1
  45. package/dist/agent-runtime/models/vlm/general.d.ts +7 -1
  46. package/dist/agent-runtime/models/vlm/general.js +43 -9
  47. package/dist/agent-runtime/models/vlm/general.js.map +1 -1
  48. package/dist/agent-runtime/models/vlm/guiowl.js +4 -13
  49. package/dist/agent-runtime/models/vlm/guiowl.js.map +1 -1
  50. package/dist/agent-runtime/models/vlm/index.d.ts +1 -0
  51. package/dist/agent-runtime/models/vlm/index.js +1 -0
  52. package/dist/agent-runtime/models/vlm/index.js.map +1 -1
  53. package/dist/agent-runtime/models/vlm/maiui.js +4 -6
  54. package/dist/agent-runtime/models/vlm/maiui.js.map +1 -1
  55. package/dist/agent-runtime/models/vlm/qwen38.d.ts +1 -0
  56. package/dist/agent-runtime/models/vlm/qwen38.js +241 -0
  57. package/dist/agent-runtime/models/vlm/qwen38.js.map +1 -0
  58. package/dist/agent-runtime/models/vlm/qwenvl.js +4 -6
  59. package/dist/agent-runtime/models/vlm/qwenvl.js.map +1 -1
  60. package/dist/agent-runtime/models/vlm/shared/tool-call.d.ts +6 -2
  61. package/dist/agent-runtime/models/vlm/shared/tool-call.js +91 -17
  62. package/dist/agent-runtime/models/vlm/shared/tool-call.js.map +1 -1
  63. package/dist/agent-runtime/modes/hybrid/index.d.ts +25 -13
  64. package/dist/agent-runtime/modes/hybrid/index.js +74 -28
  65. package/dist/agent-runtime/modes/hybrid/index.js.map +1 -1
  66. package/dist/agent-runtime/modes/hybrid/planner/base.d.ts +4 -0
  67. package/dist/agent-runtime/modes/hybrid/planner/base.js.map +1 -1
  68. package/dist/agent-runtime/modes/hybrid/planner/llm-planner.js +2 -0
  69. package/dist/agent-runtime/modes/hybrid/planner/llm-planner.js.map +1 -1
  70. package/dist/agent-runtime/modes/hybrid/planner/noop-planner.d.ts +1 -1
  71. package/dist/agent-runtime/modes/hybrid/planner/noop-planner.js +1 -1
  72. package/dist/agent-runtime/modes/hybrid/planner/prompts.d.ts +2 -0
  73. package/dist/agent-runtime/modes/hybrid/planner/prompts.js +8 -0
  74. package/dist/agent-runtime/modes/hybrid/planner/prompts.js.map +1 -1
  75. package/dist/agent-runtime/modes/orchestrator/index.d.ts +6 -0
  76. package/dist/agent-runtime/modes/orchestrator/index.js +4 -0
  77. package/dist/agent-runtime/modes/orchestrator/index.js.map +1 -1
  78. package/dist/agent-runtime/observation-mode.d.ts +2 -0
  79. package/dist/agent-runtime/observation-mode.js +2 -0
  80. package/dist/agent-runtime/observation-mode.js.map +1 -1
  81. package/dist/agent-runtime/plan-executor.d.ts +8 -2
  82. package/dist/agent-runtime/plan-executor.js +109 -14
  83. package/dist/agent-runtime/plan-executor.js.map +1 -1
  84. package/dist/agent-runtime/reflectors/policy.d.ts +2 -5
  85. package/dist/agent-runtime/reflectors/policy.js +6 -14
  86. package/dist/agent-runtime/reflectors/policy.js.map +1 -1
  87. package/dist/agent-runtime/reflectors/trajectory-reflector.d.ts +3 -4
  88. package/dist/agent-runtime/reflectors/trajectory-reflector.js +4 -4
  89. package/dist/agent-runtime/reflectors/trajectory-reflector.js.map +1 -1
  90. package/dist/agent-runtime/skills/replay.js +1 -0
  91. package/dist/agent-runtime/skills/replay.js.map +1 -1
  92. package/dist/agent-runtime/vlm.d.ts +2 -3
  93. package/dist/agent-runtime/vlm.js +2 -3
  94. package/dist/agent-runtime/vlm.js.map +1 -1
  95. package/dist/api.js +1 -0
  96. package/dist/api.js.map +1 -1
  97. package/dist/app/agent-host.js +3 -3
  98. package/dist/app/agent-host.js.map +1 -1
  99. package/dist/app/multi-device-host.d.ts +2 -2
  100. package/dist/app/multi-device-host.js +1 -1
  101. package/dist/app/session-manager.d.ts +20 -3
  102. package/dist/app/session-manager.js +33 -4
  103. package/dist/app/session-manager.js.map +1 -1
  104. package/dist/bootstrap.d.ts +2 -8
  105. package/dist/bootstrap.js +61 -103
  106. package/dist/bootstrap.js.map +1 -1
  107. package/dist/config/loader.d.ts +2 -9
  108. package/dist/config/loader.js +32 -34
  109. package/dist/config/loader.js.map +1 -1
  110. package/dist/config/schema.d.ts +5 -29
  111. package/dist/config/schema.js +8 -42
  112. package/dist/config/schema.js.map +1 -1
  113. package/dist/device/apps.js +51 -1
  114. package/dist/device/apps.js.map +1 -1
  115. package/dist/fleet/adapters/process/in-process-manager.d.ts +1 -1
  116. package/dist/fleet/adapters/process/node-process-manager.d.ts +7 -0
  117. package/dist/fleet/adapters/process/node-process-manager.js +29 -8
  118. package/dist/fleet/adapters/process/node-process-manager.js.map +1 -1
  119. package/dist/inbound/acp/handlers/session.d.ts +4 -1
  120. package/dist/inbound/acp/handlers/session.js +24 -10
  121. package/dist/inbound/acp/handlers/session.js.map +1 -1
  122. package/dist/inbound/cli/benchmark-command.d.ts +17 -0
  123. package/dist/inbound/cli/benchmark-command.js +158 -0
  124. package/dist/inbound/cli/benchmark-command.js.map +1 -0
  125. package/dist/inbound/cli/fleet-command.d.ts +12 -1
  126. package/dist/inbound/cli/fleet-command.js +38 -9
  127. package/dist/inbound/cli/fleet-command.js.map +1 -1
  128. package/dist/inbound/cli/main.d.ts +2 -6
  129. package/dist/inbound/cli/main.js +49 -33
  130. package/dist/inbound/cli/main.js.map +1 -1
  131. package/dist/inbound/cli/run-artifacts.d.ts +61 -0
  132. package/dist/inbound/cli/run-artifacts.js +247 -0
  133. package/dist/inbound/cli/run-artifacts.js.map +1 -0
  134. package/dist/inbound/cli/run-command.d.ts +23 -20
  135. package/dist/inbound/cli/run-command.js +157 -159
  136. package/dist/inbound/cli/run-command.js.map +1 -1
  137. package/dist/index.d.ts +9 -3
  138. package/dist/index.js +5 -2
  139. package/dist/index.js.map +1 -1
  140. package/dist/plugins/http-debug/early-health.d.ts +11 -0
  141. package/dist/plugins/http-debug/early-health.js +51 -0
  142. package/dist/plugins/http-debug/early-health.js.map +1 -0
  143. package/dist/plugins/http-debug/index.js +2 -0
  144. package/dist/plugins/http-debug/index.js.map +1 -1
  145. package/dist/plugins/message-bus/inbound.js +7 -6
  146. package/dist/plugins/message-bus/inbound.js.map +1 -1
  147. package/dist/ports/agent-core.d.ts +13 -13
  148. package/dist/ports/agent-host.d.ts +4 -1
  149. package/package.json +4 -4
@@ -0,0 +1,190 @@
1
+ import OpenAI from "openai";
2
+ import { normalizeOpenAIBaseUrl } from "../models/openai-base-url.js";
3
+ import { inferTargetApp } from "./app-card.js";
4
+ export class LLMSubgoalVerifier {
5
+ client;
6
+ modelName;
7
+ constructor(opts = {}) {
8
+ this.modelName = opts.modelName ?? process.env.ADVANCED_VERIFIER_MODEL ?? "glm-4-flash";
9
+ this.client = opts.client ?? new OpenAI({
10
+ baseURL: normalizeOpenAIBaseUrl(opts.baseUrl ?? process.env.ADVANCED_VERIFIER_BASE_URL ?? process.env.PLANNER_BASE_URL ?? "https://api.openai.com/v1"),
11
+ apiKey: opts.apiKey ??
12
+ process.env.ADVANCED_VERIFIER_API_KEY ??
13
+ process.env.PLANNER_API_KEY ??
14
+ process.env.GUI_AGENT_API_KEY ??
15
+ "EMPTY",
16
+ timeout: opts.timeoutMs ?? 30_000,
17
+ maxRetries: 1,
18
+ });
19
+ }
20
+ async verify(ctx, signal) {
21
+ const startedAt = Date.now();
22
+ const deterministic = deterministicPostcondition(ctx);
23
+ if (deterministic) {
24
+ return {
25
+ ...deterministic,
26
+ usage: { inputTokens: 0, outputTokens: 0, durationMs: Date.now() - startedAt },
27
+ };
28
+ }
29
+ try {
30
+ const response = await this.client.chat.completions.create({
31
+ model: this.modelName,
32
+ temperature: 0,
33
+ max_tokens: 220,
34
+ response_format: { type: "json_object" },
35
+ messages: [
36
+ { role: "system", content: SYSTEM_PROMPT },
37
+ { role: "user", content: renderVerificationPrompt(ctx) },
38
+ ],
39
+ }, { signal });
40
+ const raw = response.choices[0]?.message?.content ?? "";
41
+ const parsed = parseVerification(raw);
42
+ return {
43
+ ...parsed,
44
+ usage: {
45
+ inputTokens: response.usage?.prompt_tokens ?? 0,
46
+ outputTokens: response.usage?.completion_tokens ?? 0,
47
+ durationMs: Date.now() - startedAt,
48
+ },
49
+ };
50
+ }
51
+ catch (error) {
52
+ // Fail open: Advanced supervision improves reliability but must not make
53
+ // a healthy actor unavailable when the secondary model has an outage.
54
+ return {
55
+ verdict: "achieved",
56
+ reason: `verifier unavailable; accepting actor result: ${errorMessage(error)}`,
57
+ usage: { inputTokens: 0, outputTokens: 0, durationMs: Date.now() - startedAt },
58
+ };
59
+ }
60
+ }
61
+ }
62
+ const SYSTEM_PROMPT = `You supervise a mobile GUI executor. Decide whether the
63
+ CURRENT SUBGOAL is visibly achieved from the latest UI evidence. The executor's
64
+ own success claim is not proof. Be conservative but practical.
65
+
66
+ Return strict JSON:
67
+ {"verdict":"achieved|not_achieved|task_complete","reason":"<=180 chars","guidance":"optional concrete recovery"}
68
+
69
+ Rules:
70
+ - achieved: the expected outcome is supported by current app/UI evidence.
71
+ - not_achieved: wrong app/page, blocking dialog, stale/no-op state, missing
72
+ expected result, or contradictory evidence. Give one concrete recovery hint.
73
+ - task_complete: the root user goal, not merely this subgoal, is visibly done.
74
+ - For the final plan step, check every explicit terminal condition in the root
75
+ goal (for example returning to the home screen), not only the executor text.
76
+ - Do not reject solely because evidence is sparse after a harmless navigation
77
+ action. Do reject irreversible actions that lack a visible success signal.`;
78
+ function renderVerificationPrompt(ctx) {
79
+ const currentApp = typeof ctx.observation?.extra?.currentApp === "string"
80
+ ? ctx.observation.extra.currentApp
81
+ : "unknown";
82
+ const recent = ctx.recentHistory.slice(-6).map((entry) => ({
83
+ step: entry.stepIdx,
84
+ action: entry.action?.type ?? null,
85
+ outcome: entry.actionResult ?? null,
86
+ screen: truncate(entry.observationSummary, 220),
87
+ error: entry.actErrorMessage ?? null,
88
+ }));
89
+ return JSON.stringify({
90
+ rootGoal: ctx.goal,
91
+ currentSubgoal: ctx.step.description,
92
+ expectedOutcome: ctx.step.expectedOutcome ?? "unspecified",
93
+ currentApp,
94
+ uiDump: truncate(ctx.observation?.uiDump ?? "", 5000),
95
+ executorMessage: truncate(ctx.executorMessage, 500),
96
+ recentSteps: recent,
97
+ appKnowledge: truncate(ctx.advancedKnowledge ?? "", 2400),
98
+ });
99
+ }
100
+ function parseVerification(raw) {
101
+ try {
102
+ const parsed = JSON.parse(raw);
103
+ const verdict = parsed.verdict;
104
+ if (verdict !== "achieved" && verdict !== "not_achieved" && verdict !== "task_complete") {
105
+ throw new Error("invalid verdict");
106
+ }
107
+ return {
108
+ verdict,
109
+ reason: truncate(typeof parsed.reason === "string" ? parsed.reason : verdict, 180),
110
+ ...(typeof parsed.guidance === "string" && parsed.guidance.trim()
111
+ ? { guidance: truncate(parsed.guidance, 240) }
112
+ : {}),
113
+ };
114
+ }
115
+ catch {
116
+ return { verdict: "achieved", reason: "verifier returned malformed output; accepting actor result" };
117
+ }
118
+ }
119
+ /**
120
+ * Reject post-conditions that can be proved false without asking a model.
121
+ * This prevents a persuasive executor summary from overriding authoritative
122
+ * runtime state. Keep this deliberately narrow: uncertain states still go to
123
+ * the semantic verifier.
124
+ */
125
+ function deterministicPostcondition(ctx) {
126
+ const currentApp = typeof ctx.observation?.extra?.currentApp === "string"
127
+ ? ctx.observation.extra.currentApp.trim()
128
+ : "";
129
+ if (!currentApp)
130
+ return undefined;
131
+ const lastStep = ctx.plan.steps.at(-1);
132
+ const isFinalStep = lastStep?.idx === ctx.step.idx;
133
+ const stepRequirement = `${ctx.step.description} ${ctx.step.expectedOutcome ?? ""}`;
134
+ const rootTerminalRequirement = isFinalStep ? ctx.goal : "";
135
+ const requiresHome = asksForHomeScreen(`${stepRequirement} ${rootTerminalRequirement}`);
136
+ if (requiresHome) {
137
+ if (!isHomeApp(currentApp)) {
138
+ return {
139
+ verdict: "not_achieved",
140
+ reason: `terminal state requires the home screen, but current app is ${currentApp}`,
141
+ guidance: "Press Home, then verify that the launcher is foreground before finishing.",
142
+ };
143
+ }
144
+ return {
145
+ verdict: isFinalStep ? "task_complete" : "achieved",
146
+ reason: `launcher is foreground (${currentApp})`,
147
+ };
148
+ }
149
+ const expectedApp = inferTargetApp(stepRequirement);
150
+ if (expectedApp) {
151
+ if (!isExpectedApp(currentApp, expectedApp)) {
152
+ return {
153
+ verdict: "not_achieved",
154
+ reason: `subgoal expects ${expectedApp.displayName}, but current app is ${currentApp}`,
155
+ guidance: `Open ${expectedApp.displayName} and verify it is foreground before finishing.`,
156
+ };
157
+ }
158
+ if (isAppLaunchOnly(stepRequirement)) {
159
+ return {
160
+ verdict: "achieved",
161
+ reason: `${expectedApp.displayName} is foreground (${currentApp})`,
162
+ };
163
+ }
164
+ }
165
+ return undefined;
166
+ }
167
+ function isAppLaunchOnly(text) {
168
+ const opensApp = /(?:打开|启动|进入)(?:\S{0,12})(?:应用|app)?|\b(?:open|launch|start)\b/i.test(text);
169
+ const hasAdditionalWork = /搜索|输入|读取|说明|点击|返回|发布|发送|关注|点赞|评论|search|type|read|describe|tap|click|return|post|send|follow|like|comment/i.test(text);
170
+ return opensApp && !hasAdditionalWork;
171
+ }
172
+ function asksForHomeScreen(text) {
173
+ return /(?:返回|回到|进入|显示)(?:手机)?(?:桌面|主屏幕)|return\s+to\s+(?:the\s+)?home(?:\s+screen)?|go\s+home/i.test(text);
174
+ }
175
+ function isHomeApp(currentApp) {
176
+ return /(?:^|[./])(?:launcher\d*|home)(?:$|[./])|system\s+home|com\.miui\.home|com\.oppo\.launcher|com\.android\.launcher|com\.google\.android\.apps\.nexuslauncher|com\.sec\.android\.app\.launcher/i.test(currentApp);
177
+ }
178
+ function isExpectedApp(currentApp, expected) {
179
+ const normalized = currentApp.toLocaleLowerCase();
180
+ return [expected.packageName, expected.displayName].some((value) => normalized.includes(value.toLocaleLowerCase()));
181
+ }
182
+ function truncate(value, max) {
183
+ if (value.length <= max)
184
+ return value;
185
+ return `${value.slice(0, max - 1)}…`;
186
+ }
187
+ function errorMessage(error) {
188
+ return error instanceof Error ? error.message : String(error);
189
+ }
190
+ //# sourceMappingURL=subgoal-verifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subgoal-verifier.js","sourceRoot":"","sources":["../../../src/agent-runtime/advanced/subgoal-verifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export interface CompletedSubgoal {
2
+ description: string;
3
+ expectedOutcome?: string;
4
+ evidence?: string;
5
+ }
6
+ export interface RecoveryRecord {
7
+ description: string;
8
+ reason: string;
9
+ guidance?: string;
10
+ }
11
+ /** Compact cross-subgoal state for long-horizon Advanced runs. */
12
+ export declare class AdvancedTaskState {
13
+ private readonly completed;
14
+ private readonly recoveries;
15
+ recordCompleted(entry: CompletedSubgoal): void;
16
+ recordRecovery(entry: RecoveryRecord): void;
17
+ render(notes?: readonly string[]): string;
18
+ /** Preserve useful results produced by earlier subgoals in the final reply. */
19
+ renderFinalAnswer(fallback: string): string;
20
+ }
@@ -0,0 +1,60 @@
1
+ /** Compact cross-subgoal state for long-horizon Advanced runs. */
2
+ export class AdvancedTaskState {
3
+ completed = [];
4
+ recoveries = [];
5
+ recordCompleted(entry) {
6
+ if (this.completed.some((item) => item.description === entry.description))
7
+ return;
8
+ this.completed.push(entry);
9
+ }
10
+ recordRecovery(entry) {
11
+ this.recoveries.push(entry);
12
+ if (this.recoveries.length > 6)
13
+ this.recoveries.shift();
14
+ }
15
+ render(notes = []) {
16
+ const lines = ["ADVANCED TASK STATE (authoritative, compact)"];
17
+ if (this.completed.length === 0) {
18
+ lines.push("Completed subgoals: none");
19
+ }
20
+ else {
21
+ lines.push("Completed subgoals:");
22
+ for (const item of this.completed.slice(-8)) {
23
+ const outcome = item.expectedOutcome ? `; expected=${item.expectedOutcome}` : "";
24
+ const evidence = item.evidence ? `; evidence=${truncate(item.evidence, 160)}` : "";
25
+ lines.push(`- ${item.description}${outcome}${evidence}`);
26
+ }
27
+ }
28
+ if (notes.length > 0) {
29
+ lines.push("Facts and notes:");
30
+ for (const note of notes.slice(-8))
31
+ lines.push(`- ${truncate(note, 200)}`);
32
+ }
33
+ if (this.recoveries.length > 0) {
34
+ lines.push("Recent rejected paths (do not repeat unchanged):");
35
+ for (const item of this.recoveries.slice(-4)) {
36
+ lines.push(`- ${item.description}: ${truncate(item.reason, 180)}` +
37
+ `${item.guidance ? `; next=${truncate(item.guidance, 180)}` : ""}`);
38
+ }
39
+ }
40
+ return lines.join("\n");
41
+ }
42
+ /** Preserve useful results produced by earlier subgoals in the final reply. */
43
+ renderFinalAnswer(fallback) {
44
+ if (this.completed.length === 0)
45
+ return fallback;
46
+ return this.completed
47
+ .slice(-8)
48
+ .map((item) => {
49
+ const evidence = item.evidence?.trim();
50
+ return evidence
51
+ ? `已完成:${item.description}\n${truncate(evidence, 500)}`
52
+ : `已完成:${item.description}`;
53
+ })
54
+ .join("\n\n");
55
+ }
56
+ }
57
+ function truncate(value, max) {
58
+ return value.length <= max ? value : `${value.slice(0, max - 1)}…`;
59
+ }
60
+ //# sourceMappingURL=task-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-state.js","sourceRoot":"","sources":["../../../src/agent-runtime/advanced/task-state.ts"],"names":[],"mappings":"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"}
@@ -2,19 +2,8 @@
2
2
  * agent-runtime/agent-runner — unified, top-level entry point that the
3
3
  * CLI, the ACP session manager, and the HTTP debug routes all share.
4
4
  *
5
- * It implements the **Hybrid Plan-Act strategy** described in the
6
- * `device-agent autoglm phone driver — v0.3.0` plan:
7
- *
8
- * - With a `planner` and `mode: "always"` → straight Plan-Act
9
- * (`PlanExecutor` from step 0).
10
- * - With a `planner` and `mode: "auto"` (default):
11
- * * Long task (≥ `taskMinChars`, default 30) → Plan-Act
12
- * * Short task → ReAct (`AgentLoop`)
13
- * with a mid-run **replan fallback**: when the inner loop
14
- * exhausts an early step budget (`maxSteps * stepsRatioToReplan`,
15
- * default 1/3) without finishing, we splice in a PlanExecutor
16
- * seeded with the captured history for the remaining budget.
17
- * - Without a `planner` (or `mode: "never"`) → AgentLoop only.
5
+ * It implements the internal planner policy selected by product execution
6
+ * mode: `always` starts with Plan-Act and `never` runs pure ReAct.
18
7
  *
19
8
  * The runner returns a uniform `AgentRunnerResult` so callers don't need
20
9
  * to discriminate between the two execution paths.
@@ -27,7 +16,10 @@ import type { IPlanner } from "./modes/hybrid/planner/base.js";
27
16
  import type { ObservationMode } from "./observation-mode.js";
28
17
  import { type ReflectorPolicy } from "./reflectors/policy.js";
29
18
  import { type EmbeddingProvider, type SkillCacheStore, type SkillEvolverOptions, type SkillMatcherOptions, type SkillMatchOutcome, type SkillReplayResult } from "./skills/index.js";
30
- export type AgentPlanMode = "auto" | "always" | "never";
19
+ import type { ISubgoalVerifier } from "./advanced/subgoal-verifier.js";
20
+ export type PlannerPolicy = "always" | "never";
21
+ /** @deprecated Use product `executionMode`; retained for source compatibility. */
22
+ export type AgentPlanMode = PlannerPolicy | "auto";
31
23
  export interface AgentRunnerOptions {
32
24
  task: string;
33
25
  env: Observation["env"];
@@ -37,16 +29,10 @@ export interface AgentRunnerOptions {
37
29
  observationMode?: ObservationMode;
38
30
  /** Optional planner. When omitted the runner is pure ReAct. */
39
31
  planner?: IPlanner;
40
- /** Plan-mode policy. Defaults to `"auto"`. */
32
+ /** Internal planner policy derived from the public execution mode. */
33
+ plannerPolicy?: PlannerPolicy;
34
+ /** @deprecated Use `plannerPolicy` through the product execution-mode mapping. */
41
35
  mode?: AgentPlanMode;
42
- /** Minimum task length (in chars) at which `auto` mode escalates to Plan-Act. Defaults to 30. */
43
- taskMinChars?: number;
44
- /**
45
- * In short-task `auto` runs, fraction of `maxSteps` to spend on the
46
- * pure ReAct phase before triggering the replan-fallback. Defaults
47
- * to 1/3.
48
- */
49
- stepsRatioToReplan?: number;
50
36
  /** Per-call max steps. Defaults to 30. */
51
37
  maxSteps?: number;
52
38
  /** Wall-clock timeout. Defaults to 5 minutes. */
@@ -63,8 +49,8 @@ export interface AgentRunnerOptions {
63
49
  * Phase 1.4 / 2.4 reflector configuration. When omitted the runner
64
50
  * resolves a policy from `process.env` (`ACTION_REFLECTOR=…`, etc.)
65
51
  * via {@link buildReflectorPolicyFromEnv}. Defaults: trajectory
66
- * reflector `every:5` (KISS hardening), action reflector `off`,
67
- * note taker `off`. See `agent-runtime/reflectors/policy.ts` for
52
+ * reflector `off`, action reflector `off`, note taker `off`.
53
+ * See `agent-runtime/reflectors/policy.ts` for
68
54
  * the env-var matrix.
69
55
  */
70
56
  reflectorPolicy?: ReflectorPolicy;
@@ -76,6 +62,10 @@ export interface AgentRunnerOptions {
76
62
  * omitted (legacy behaviour preserved).
77
63
  */
78
64
  skillMemory?: SkillMemoryConfig;
65
+ /** Advanced-only App Card, skill, and recovery guidance. */
66
+ advancedKnowledge?: string;
67
+ /** Advanced-only independent subgoal supervision. */
68
+ subgoalVerifier?: ISubgoalVerifier;
79
69
  }
80
70
  export interface SkillMemoryConfig {
81
71
  /** Persistent or in-memory store. Required to enable the feature. */
@@ -109,7 +99,7 @@ export interface AgentRunnerResult {
109
99
  usage: ModelUsage;
110
100
  history: StepHistory[];
111
101
  /** Which top-level path the runner took. */
112
- mode: "react" | "plan" | "react+replan" | "skill_replay";
102
+ mode: "react" | "plan" | "skill_replay";
113
103
  terminator: AgentLoopTerminator;
114
104
  cancelled: boolean;
115
105
  /** Plan-Act metrics; populated only when `mode !== "react"`. */
@@ -149,6 +139,5 @@ export declare class AgentRunner {
149
139
  private runWithoutSkillMemory;
150
140
  private runReact;
151
141
  private runPlan;
152
- private runReactWithReplanFallback;
153
142
  private spawnLoop;
154
143
  }
@@ -2,19 +2,8 @@
2
2
  * agent-runtime/agent-runner — unified, top-level entry point that the
3
3
  * CLI, the ACP session manager, and the HTTP debug routes all share.
4
4
  *
5
- * It implements the **Hybrid Plan-Act strategy** described in the
6
- * `device-agent autoglm phone driver — v0.3.0` plan:
7
- *
8
- * - With a `planner` and `mode: "always"` → straight Plan-Act
9
- * (`PlanExecutor` from step 0).
10
- * - With a `planner` and `mode: "auto"` (default):
11
- * * Long task (≥ `taskMinChars`, default 30) → Plan-Act
12
- * * Short task → ReAct (`AgentLoop`)
13
- * with a mid-run **replan fallback**: when the inner loop
14
- * exhausts an early step budget (`maxSteps * stepsRatioToReplan`,
15
- * default 1/3) without finishing, we splice in a PlanExecutor
16
- * seeded with the captured history for the remaining budget.
17
- * - Without a `planner` (or `mode: "never"`) → AgentLoop only.
5
+ * It implements the internal planner policy selected by product execution
6
+ * mode: `always` starts with Plan-Act and `never` runs pure ReAct.
18
7
  *
19
8
  * The runner returns a uniform `AgentRunnerResult` so callers don't need
20
9
  * to discriminate between the two execution paths.
@@ -25,17 +14,10 @@ import { PlanExecutor, } from "./plan-executor.js";
25
14
  import { HierarchicalReflector } from "./reflection.js";
26
15
  import { buildReflectorPolicyFromEnv, resolveActionReflector, resolveTrajectoryReflector, } from "./reflectors/policy.js";
27
16
  import { evolveSkill, matchSkill, replaySkill, } from "./skills/index.js";
28
- const DEFAULT_TASK_MIN_CHARS = 30;
29
- const DEFAULT_STEPS_RATIO_TO_REPLAN = 1 / 3;
30
17
  const DEFAULT_MAX_STEPS = 30;
31
18
  const DEFAULT_TIMEOUT_MS = 5 * 60 * 1000;
32
19
  const DEFAULT_MAX_REPLANS = 2;
33
20
  const SUCCESS_TERMINATORS = new Set(["done"]);
34
- const FAIL_FAST_TERMINATORS = new Set([
35
- "fail",
36
- "call_for_user",
37
- "cancelled",
38
- ]);
39
21
  export class AgentRunner {
40
22
  opts;
41
23
  reflector;
@@ -167,36 +149,18 @@ export class AgentRunner {
167
149
  });
168
150
  }
169
151
  async runWithoutSkillMemory() {
170
- const mode = this.opts.mode ?? "auto";
152
+ const plannerPolicy = this.opts.plannerPolicy ?? legacyPlannerPolicy(this.opts.mode, this.opts.planner, this.opts.task);
171
153
  const maxSteps = this.opts.maxSteps ?? DEFAULT_MAX_STEPS;
172
154
  const timeoutMs = this.opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
173
- const taskMinChars = this.opts.taskMinChars ?? DEFAULT_TASK_MIN_CHARS;
174
- const ratio = this.opts.stepsRatioToReplan ?? DEFAULT_STEPS_RATIO_TO_REPLAN;
175
155
  const maxReplans = this.opts.maxReplans ?? DEFAULT_MAX_REPLANS;
176
156
  const planner = this.opts.planner;
177
- const taskLen = this.opts.task.length;
178
- // ── Resolve effective execution mode ───────────────────────────────
179
- if (mode === "always") {
157
+ if (plannerPolicy === "always") {
180
158
  if (!planner) {
181
- throw new Error("AgentRunner: mode=\"always\" requires a planner");
159
+ throw new Error('AgentRunner: plannerPolicy="always" requires a planner');
182
160
  }
183
161
  return this.runPlan({ maxSteps, timeoutMs, maxReplans, planner });
184
162
  }
185
- if (mode === "never" || !planner) {
186
- return this.runReact({ maxSteps, timeoutMs });
187
- }
188
- // mode === "auto"
189
- if (taskLen >= taskMinChars) {
190
- return this.runPlan({ maxSteps, timeoutMs, maxReplans, planner });
191
- }
192
- // Short task — ReAct first, with mid-run replan fallback.
193
- return this.runReactWithReplanFallback({
194
- maxSteps,
195
- timeoutMs,
196
- maxReplans,
197
- planner,
198
- ratio,
199
- });
163
+ return this.runReact({ maxSteps, timeoutMs });
200
164
  }
201
165
  /* ───────────────────────────── pure ReAct ────────────────────────── */
202
166
  async runReact(args) {
@@ -232,96 +196,11 @@ export class AgentRunner {
232
196
  signal: this.opts.signal,
233
197
  hooks: this.opts.hooks,
234
198
  reflector: this.reflector,
199
+ advancedKnowledge: this.opts.advancedKnowledge,
200
+ subgoalVerifier: this.opts.subgoalVerifier,
235
201
  });
236
202
  const r = await exec.run();
237
- return convertPlanResult(r, /*mode*/ "plan");
238
- }
239
- /* ────────────────────── ReAct + fallback to Plan ─────────────────── */
240
- async runReactWithReplanFallback(args) {
241
- const reactBudget = Math.max(1, Math.ceil(args.maxSteps * args.ratio));
242
- const start = Date.now();
243
- const reactResult = await this.spawnLoop({
244
- task: this.opts.task,
245
- maxSteps: reactBudget,
246
- timeoutMs: args.timeoutMs,
247
- });
248
- if (SUCCESS_TERMINATORS.has(reactResult.terminator)) {
249
- return {
250
- ok: true,
251
- finalText: reactResult.finalText,
252
- steps: reactResult.steps,
253
- usage: reactResult.usage,
254
- history: reactResult.history,
255
- mode: "react",
256
- terminator: reactResult.terminator,
257
- cancelled: reactResult.cancelled,
258
- notes: reactResult.notes,
259
- };
260
- }
261
- if (FAIL_FAST_TERMINATORS.has(reactResult.terminator)) {
262
- // The model explicitly gave up / requested takeover / was cancelled
263
- // — the planner can't help, surface it directly.
264
- return {
265
- ok: false,
266
- finalText: reactResult.finalText,
267
- steps: reactResult.steps,
268
- usage: reactResult.usage,
269
- history: reactResult.history,
270
- mode: "react",
271
- terminator: reactResult.terminator,
272
- cancelled: reactResult.cancelled,
273
- notes: reactResult.notes,
274
- };
275
- }
276
- // Step budget / timeout / reflection veto / soft error — escalate to
277
- // Plan-Act with the remaining budget.
278
- const elapsed = Date.now() - start;
279
- const remainingTimeMs = Math.max(1000, args.timeoutMs - elapsed);
280
- const remainingSteps = Math.max(1, args.maxSteps - reactResult.steps);
281
- // Seed: pre-existing history isn't replayable through PlanExecutor's
282
- // sub-loops (each AgentLoop owns its own history), so we surface the
283
- // ReAct-phase totals through the result mirroring instead.
284
- const exec = new PlanExecutor({
285
- planner: args.planner,
286
- adapter: this.opts.adapter,
287
- mcp: this.opts.mcp,
288
- goal: this.opts.task,
289
- env: this.opts.env,
290
- observationMode: this.opts.observationMode,
291
- maxSteps: remainingSteps,
292
- timeoutMs: remainingTimeMs,
293
- maxReplans: args.maxReplans,
294
- signal: this.opts.signal,
295
- hooks: this.opts.hooks,
296
- reflector: this.reflector,
297
- });
298
- const r = await exec.run();
299
- // Aggregate.
300
- const usage = {
301
- inputTokens: reactResult.usage.inputTokens + r.usage.inputTokens,
302
- outputTokens: reactResult.usage.outputTokens + r.usage.outputTokens,
303
- };
304
- if (reactResult.usage.cachedInputTokens || r.usage.cachedInputTokens) {
305
- usage.cachedInputTokens =
306
- (reactResult.usage.cachedInputTokens ?? 0) + (r.usage.cachedInputTokens ?? 0);
307
- }
308
- if (reactResult.usage.costUsd || r.usage.costUsd) {
309
- usage.costUsd = (reactResult.usage.costUsd ?? 0) + (r.usage.costUsd ?? 0);
310
- }
311
- return {
312
- ok: r.ok,
313
- finalText: r.finalText || reactResult.finalText,
314
- steps: reactResult.steps + r.steps,
315
- usage,
316
- history: [...reactResult.history, ...r.history],
317
- mode: "react+replan",
318
- terminator: r.terminator,
319
- cancelled: r.cancelled,
320
- plansEmitted: r.plansEmitted,
321
- replans: r.replans,
322
- reactFallbackUsed: r.reactFallbackUsed,
323
- notes: [...reactResult.notes, ...r.notes],
324
- };
203
+ return convertPlanResult(r);
325
204
  }
326
205
  /* ──────────────────────────── helpers ────────────────────────────── */
327
206
  spawnLoop(args) {
@@ -340,14 +219,22 @@ export class AgentRunner {
340
219
  }).run();
341
220
  }
342
221
  }
343
- function convertPlanResult(r, mode) {
222
+ function legacyPlannerPolicy(mode, planner, task) {
223
+ if (mode === "always")
224
+ return "always";
225
+ if (mode === "never" || !planner)
226
+ return "never";
227
+ // Historical `auto` planned long tasks and ran short tasks as ReAct.
228
+ return task.length >= 30 ? "always" : "never";
229
+ }
230
+ function convertPlanResult(r) {
344
231
  return {
345
232
  ok: r.ok,
346
233
  finalText: r.finalText,
347
234
  steps: r.steps,
348
235
  usage: r.usage,
349
236
  history: r.history,
350
- mode,
237
+ mode: "plan",
351
238
  terminator: r.terminator,
352
239
  cancelled: r.cancelled,
353
240
  plansEmitted: r.plansEmitted,
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../../src/agent-runtime/agent-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../../src/agent-runtime/agent-runner.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,8 @@ export interface AgentRunHooks {
41
41
  onText?: (delta: string) => void | Promise<void>;
42
42
  /** Historical name for planner narration; surfaced as visible prose. */
43
43
  onReasoning?: (delta: string) => void | Promise<void>;
44
+ /** Fired after observation capture and before that frame is sent to the model. */
45
+ onObservation?: (event: AgentObservationEvent) => void | Promise<void>;
44
46
  /** Fired exactly once per step, after the action has been parsed. */
45
47
  onStep?: (step: AgentStepEvent) => void | Promise<void>;
46
48
  /** Fired before the action is dispatched to MCP `/act`. */
@@ -48,6 +50,12 @@ export interface AgentRunHooks {
48
50
  /** Fired on every error, fatal or recoverable. */
49
51
  onError?: (err: AgentErrorEvent) => void | Promise<void>;
50
52
  }
53
+ export interface AgentObservationEvent {
54
+ /** 1-based step index within the active loop. */
55
+ index: number;
56
+ /** The exact observation object supplied to the model adapter. */
57
+ observation: Observation;
58
+ }
51
59
  export interface AgentStepEvent {
52
60
  /** 1-based step index. */
53
61
  index: number;