@e2edev/e2e 0.7.0 → 0.9.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 (210) hide show
  1. package/README.md +8 -3
  2. package/dist/agent/act-validation.d.ts +7 -4
  3. package/dist/agent/act-validation.d.ts.map +1 -1
  4. package/dist/agent/act-validation.js +18 -3
  5. package/dist/agent/act-validation.js.map +1 -1
  6. package/dist/agent/act.d.ts +2 -2
  7. package/dist/agent/act.d.ts.map +1 -1
  8. package/dist/agent/act.js +228 -51
  9. package/dist/agent/act.js.map +1 -1
  10. package/dist/agent/default-agent.d.ts +1 -1
  11. package/dist/agent/default-agent.d.ts.map +1 -1
  12. package/dist/agent/default-agent.js +19 -84
  13. package/dist/agent/default-agent.js.map +1 -1
  14. package/dist/agent/executor.d.ts +7 -0
  15. package/dist/agent/executor.d.ts.map +1 -1
  16. package/dist/agent/executor.js.map +1 -1
  17. package/dist/agent/index.d.ts.map +1 -1
  18. package/dist/agent/index.js +14 -6
  19. package/dist/agent/index.js.map +1 -1
  20. package/dist/agent/invocation.d.ts +1 -8
  21. package/dist/agent/invocation.d.ts.map +1 -1
  22. package/dist/agent/invocation.js +7 -51
  23. package/dist/agent/invocation.js.map +1 -1
  24. package/dist/agent/ledger.d.ts.map +1 -1
  25. package/dist/agent/ledger.js +10 -1
  26. package/dist/agent/ledger.js.map +1 -1
  27. package/dist/agent/loop-guards.d.ts +21 -0
  28. package/dist/agent/loop-guards.d.ts.map +1 -1
  29. package/dist/agent/loop-guards.js +48 -0
  30. package/dist/agent/loop-guards.js.map +1 -1
  31. package/dist/agent/model/sdk.d.ts +18 -0
  32. package/dist/agent/model/sdk.d.ts.map +1 -1
  33. package/dist/agent/model/sdk.js +9 -3
  34. package/dist/agent/model/sdk.js.map +1 -1
  35. package/dist/agent/observation-budget.d.ts +27 -0
  36. package/dist/agent/observation-budget.d.ts.map +1 -0
  37. package/dist/agent/observation-budget.js +43 -0
  38. package/dist/agent/observation-budget.js.map +1 -0
  39. package/dist/agent/observation.d.ts +40 -7
  40. package/dist/agent/observation.d.ts.map +1 -1
  41. package/dist/agent/observation.js +56 -11
  42. package/dist/agent/observation.js.map +1 -1
  43. package/dist/agent/phases.d.ts +1 -1
  44. package/dist/agent/phases.d.ts.map +1 -1
  45. package/dist/agent/phases.js +11 -13
  46. package/dist/agent/phases.js.map +1 -1
  47. package/dist/agent/primitives.d.ts +14 -2
  48. package/dist/agent/primitives.d.ts.map +1 -1
  49. package/dist/agent/primitives.js +98 -54
  50. package/dist/agent/primitives.js.map +1 -1
  51. package/dist/agent/screen-update.d.ts +47 -0
  52. package/dist/agent/screen-update.d.ts.map +1 -0
  53. package/dist/agent/screen-update.js +222 -0
  54. package/dist/agent/screen-update.js.map +1 -0
  55. package/dist/agent/step-cache.d.ts +38 -10
  56. package/dist/agent/step-cache.d.ts.map +1 -1
  57. package/dist/agent/step-cache.js +86 -45
  58. package/dist/agent/step-cache.js.map +1 -1
  59. package/dist/agent/tool-loop.d.ts.map +1 -1
  60. package/dist/agent/tool-loop.js +27 -4
  61. package/dist/agent/tool-loop.js.map +1 -1
  62. package/dist/cache/decide.d.ts +4 -3
  63. package/dist/cache/decide.d.ts.map +1 -1
  64. package/dist/cache/decide.js.map +1 -1
  65. package/dist/cli/index.d.ts.map +1 -1
  66. package/dist/cli/index.js +2 -0
  67. package/dist/cli/index.js.map +1 -1
  68. package/dist/cli/init/engines.d.ts +2 -3
  69. package/dist/cli/init/engines.d.ts.map +1 -1
  70. package/dist/cli/init/engines.js +3 -4
  71. package/dist/cli/init/engines.js.map +1 -1
  72. package/dist/cli/signals.d.ts +3 -3
  73. package/dist/cli/signals.js +3 -3
  74. package/dist/config/agent.d.ts +6 -2
  75. package/dist/config/agent.d.ts.map +1 -1
  76. package/dist/config/agent.js +6 -2
  77. package/dist/config/agent.js.map +1 -1
  78. package/dist/config/app.d.ts +4 -4
  79. package/dist/config/app.d.ts.map +1 -1
  80. package/dist/config/load.d.ts +2 -2
  81. package/dist/config/load.js +2 -2
  82. package/dist/config/resolve.d.ts +21 -6
  83. package/dist/config/resolve.d.ts.map +1 -1
  84. package/dist/config/resolve.js +165 -54
  85. package/dist/config/resolve.js.map +1 -1
  86. package/dist/engine/contract.d.ts +6 -1
  87. package/dist/engine/contract.d.ts.map +1 -1
  88. package/dist/engine/contract.js.map +1 -1
  89. package/dist/engine/index.d.ts +69 -6
  90. package/dist/engine/index.d.ts.map +1 -1
  91. package/dist/engine/index.js +25 -5
  92. package/dist/engine/index.js.map +1 -1
  93. package/dist/engine/session.d.ts.map +1 -1
  94. package/dist/engine/session.js +6 -0
  95. package/dist/engine/session.js.map +1 -1
  96. package/dist/engine/surface.d.ts +6 -2
  97. package/dist/engine/surface.d.ts.map +1 -1
  98. package/dist/index.d.ts +1 -0
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/internal/options.d.ts +9 -0
  101. package/dist/internal/options.d.ts.map +1 -0
  102. package/dist/internal/options.js +27 -0
  103. package/dist/internal/options.js.map +1 -0
  104. package/dist/locator/expression.js +1 -1
  105. package/dist/locator/expression.js.map +1 -1
  106. package/dist/locator/screen.d.ts.map +1 -1
  107. package/dist/locator/screen.js +4 -2
  108. package/dist/locator/screen.js.map +1 -1
  109. package/dist/report/build.d.ts +2 -1
  110. package/dist/report/build.d.ts.map +1 -1
  111. package/dist/report/build.js +2 -0
  112. package/dist/report/build.js.map +1 -1
  113. package/dist/report/json.d.ts +4 -0
  114. package/dist/report/json.d.ts.map +1 -0
  115. package/dist/report/json.js +8 -0
  116. package/dist/report/json.js.map +1 -0
  117. package/dist/report/junit.d.ts +7 -0
  118. package/dist/report/junit.d.ts.map +1 -1
  119. package/dist/report/junit.js +17 -0
  120. package/dist/report/junit.js.map +1 -1
  121. package/dist/report/list-model.d.ts +8 -5
  122. package/dist/report/list-model.d.ts.map +1 -1
  123. package/dist/report/list.d.ts +19 -4
  124. package/dist/report/list.d.ts.map +1 -1
  125. package/dist/report/list.js +67 -19
  126. package/dist/report/list.js.map +1 -1
  127. package/dist/report/running-tree.d.ts +5 -4
  128. package/dist/report/running-tree.d.ts.map +1 -1
  129. package/dist/report/running-tree.js +8 -7
  130. package/dist/report/running-tree.js.map +1 -1
  131. package/dist/run/artifacts.d.ts.map +1 -1
  132. package/dist/run/artifacts.js +20 -2
  133. package/dist/run/artifacts.js.map +1 -1
  134. package/dist/run/events.d.ts +14 -9
  135. package/dist/run/events.d.ts.map +1 -1
  136. package/dist/run/events.js +7 -7
  137. package/dist/run/events.js.map +1 -1
  138. package/dist/run/execute.d.ts +24 -5
  139. package/dist/run/execute.d.ts.map +1 -1
  140. package/dist/run/execute.js +67 -25
  141. package/dist/run/execute.js.map +1 -1
  142. package/dist/run/fixtures.d.ts +6 -1
  143. package/dist/run/fixtures.d.ts.map +1 -1
  144. package/dist/run/fixtures.js +0 -1
  145. package/dist/run/fixtures.js.map +1 -1
  146. package/dist/run/in-process.d.ts +1 -1
  147. package/dist/run/in-process.d.ts.map +1 -1
  148. package/dist/run/in-process.js +6 -3
  149. package/dist/run/in-process.js.map +1 -1
  150. package/dist/run/managed-process.d.ts.map +1 -1
  151. package/dist/run/managed-process.js +6 -2
  152. package/dist/run/managed-process.js.map +1 -1
  153. package/dist/run/records.d.ts +14 -1
  154. package/dist/run/records.d.ts.map +1 -1
  155. package/dist/run/runner.d.ts +17 -9
  156. package/dist/run/runner.d.ts.map +1 -1
  157. package/dist/run/runner.js +180 -101
  158. package/dist/run/runner.js.map +1 -1
  159. package/dist/run/scheduler.d.ts +4 -6
  160. package/dist/run/scheduler.d.ts.map +1 -1
  161. package/dist/run/scheduler.js +51 -23
  162. package/dist/run/scheduler.js.map +1 -1
  163. package/dist/run/serial.d.ts +2 -4
  164. package/dist/run/serial.d.ts.map +1 -1
  165. package/dist/run/serial.js +4 -2
  166. package/dist/run/serial.js.map +1 -1
  167. package/dist/run/steps.d.ts +25 -0
  168. package/dist/run/steps.d.ts.map +1 -1
  169. package/dist/run/steps.js +12 -0
  170. package/dist/run/steps.js.map +1 -1
  171. package/dist/run/unit-runner.d.ts +7 -2
  172. package/dist/run/unit-runner.d.ts.map +1 -1
  173. package/dist/run/units.d.ts +10 -0
  174. package/dist/run/units.d.ts.map +1 -1
  175. package/dist/run/units.js +11 -0
  176. package/dist/run/units.js.map +1 -1
  177. package/dist/run/worker/entry.js +1 -0
  178. package/dist/run/worker/entry.js.map +1 -1
  179. package/dist/run/worker/handle.d.ts +1 -1
  180. package/dist/run/worker/handle.d.ts.map +1 -1
  181. package/dist/run/worker/handle.js +1 -1
  182. package/dist/run/worker/handle.js.map +1 -1
  183. package/dist/run/worker/protocol.d.ts +2 -0
  184. package/dist/run/worker/protocol.d.ts.map +1 -1
  185. package/dist/run/worker/protocol.js.map +1 -1
  186. package/dist/run/worker/session.d.ts +2 -0
  187. package/dist/run/worker/session.d.ts.map +1 -1
  188. package/dist/run/worker/session.js +1 -0
  189. package/dist/run/worker/session.js.map +1 -1
  190. package/dist/telemetry/telemetry.d.ts +2 -3
  191. package/dist/telemetry/telemetry.d.ts.map +1 -1
  192. package/dist/telemetry/telemetry.js +2 -3
  193. package/dist/telemetry/telemetry.js.map +1 -1
  194. package/dist/types.d.ts +159 -37
  195. package/dist/types.d.ts.map +1 -1
  196. package/package.json +2 -6
  197. package/skills/e2e/SKILL.md +0 -2
  198. package/skills/e2e/references/agent.md +20 -12
  199. package/skills/e2e/references/debugging.md +3 -1
  200. package/skills/e2e/references/running.md +4 -3
  201. package/skills/e2e/references/setup.md +13 -10
  202. package/skills/e2e/references/writing-tests.md +6 -5
  203. package/dist/internal/trace.d.ts +0 -18
  204. package/dist/internal/trace.d.ts.map +0 -1
  205. package/dist/internal/trace.js +0 -46
  206. package/dist/internal/trace.js.map +0 -1
  207. package/dist/run/public.d.ts +0 -19
  208. package/dist/run/public.d.ts.map +0 -1
  209. package/dist/run/public.js +0 -11
  210. package/dist/run/public.js.map +0 -1
@@ -0,0 +1,47 @@
1
+ /**
2
+ * What the built-in agent tells the model about the screen, and how much.
3
+ *
4
+ * The first look at a screen goes out whole. Every look after it is compared
5
+ * with the screen the model already holds and rendered as the difference:
6
+ * the lines that appeared, the lines that changed, the lines that went away.
7
+ * Node ids are stable for as long as an element exists, so a line the model
8
+ * saw earlier still names the same element, and a diff is a complete update
9
+ * rather than a hint. A screen that changed mostly goes out whole again.
10
+ *
11
+ * Every full screen the transcript carries is a candidate for elision once
12
+ * newer full screens supersede it; diffs are small and stay. That keeps the
13
+ * conversation prefix stable turn after turn, which is what lets a provider
14
+ * serve the resent context from its prompt cache.
15
+ */
16
+ import type { ModelMessage } from 'ai';
17
+ import type { ExecutorObservation } from './executor.ts';
18
+ /** How a screen update reads: the lead line names the action it follows. */
19
+ export interface ScreenUpdateOptions {
20
+ /** Prose placed before the screen, such as `Tapped #n16.`. */
21
+ readonly lead?: string | undefined;
22
+ /**
23
+ * Whether the update follows an action that should have changed the
24
+ * screen. An unchanged screen is then reported as the action having had no
25
+ * visible effect, which is what the model needs to stop repeating it.
26
+ */
27
+ readonly expectChange?: boolean | undefined;
28
+ }
29
+ /** Renders one step's screens for the model and remembers what it has seen. */
30
+ export declare class ScreenPresenter {
31
+ private shown;
32
+ /** The step's first screen, whole. */
33
+ initial(observation: ExecutorObservation): string;
34
+ /**
35
+ * A later screen, as the difference from the one the model holds: nothing,
36
+ * the changed lines, or the whole screen when most of it changed.
37
+ */
38
+ update(observation: ExecutorObservation, options?: ScreenUpdateOptions): string;
39
+ }
40
+ /**
41
+ * Elides full screens the transcript no longer needs: every full screen but
42
+ * the newest few is reduced to its lead and a notice, in the opening prompt
43
+ * and in tool results alike. Diffs are never touched. Returns the input array
44
+ * unchanged when nothing qualifies, so the caller can skip the override.
45
+ */
46
+ export declare function compactScreenHistory(messages: ModelMessage[]): ModelMessage[];
47
+ //# sourceMappingURL=screen-update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen-update.d.ts","sourceRoot":"","sources":["../../src/agent/screen-update.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AA6BzD,4EAA4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7C;AAED,+EAA+E;AAC/E,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAA0B;IAEvC,sCAAsC;IACtC,OAAO,CAAC,WAAW,EAAE,mBAAmB,GAAG,MAAM,CAGhD;IAED;;;OAGG;IACH,MAAM,CAAC,WAAW,EAAE,mBAAmB,EAAE,OAAO,GAAE,mBAAwB,GAAG,MAAM,CAsBlF;CACF;AA6FD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAiC7E"}
@@ -0,0 +1,222 @@
1
+ /**
2
+ * What the built-in agent tells the model about the screen, and how much.
3
+ *
4
+ * The first look at a screen goes out whole. Every look after it is compared
5
+ * with the screen the model already holds and rendered as the difference:
6
+ * the lines that appeared, the lines that changed, the lines that went away.
7
+ * Node ids are stable for as long as an element exists, so a line the model
8
+ * saw earlier still names the same element, and a diff is a complete update
9
+ * rather than a hint. A screen that changed mostly goes out whole again.
10
+ *
11
+ * Every full screen the transcript carries is a candidate for elision once
12
+ * newer full screens supersede it; diffs are small and stay. That keeps the
13
+ * conversation prefix stable turn after turn, which is what lets a provider
14
+ * serve the resent context from its prompt cache.
15
+ */
16
+ /**
17
+ * How many of the newest full screens stay verbatim in the transcript. One:
18
+ * a whole new screen means the page changed mostly, and the screen it
19
+ * replaced is dead weight on every later turn. Change updates never elide.
20
+ */
21
+ const FULL_SCREEN_PRESERVE_COUNT = 1;
22
+ /** A diff past this many lines goes out as the full screen instead. */
23
+ const MAX_DIFF_LINES = 60;
24
+ /** A diff touching more than this share of the new screen goes out whole. */
25
+ const MAX_DIFF_SHARE = 0.5;
26
+ /** Every full screen is introduced by this phrase; the elision looks for it. */
27
+ const FULL_SCREEN_PATTERN = /Current screen \(revision /;
28
+ /** Renders one step's screens for the model and remembers what it has seen. */
29
+ export class ScreenPresenter {
30
+ shown;
31
+ /** The step's first screen, whole. */
32
+ initial(observation) {
33
+ this.shown = indexScreen(observation);
34
+ return renderFull(observation);
35
+ }
36
+ /**
37
+ * A later screen, as the difference from the one the model holds: nothing,
38
+ * the changed lines, or the whole screen when most of it changed.
39
+ */
40
+ update(observation, options = {}) {
41
+ const previous = this.shown;
42
+ const next = indexScreen(observation);
43
+ this.shown = next;
44
+ const lead = options.lead === undefined ? '' : `${options.lead}\n\n`;
45
+ if (previous === undefined)
46
+ return `${lead}${renderFull(observation)}`;
47
+ const diff = diffScreens(previous, next);
48
+ const changes = diff.length;
49
+ // A truncated screen is never called unchanged: what it left out is unknown.
50
+ if (changes === 0 && !observation.truncated) {
51
+ return `${lead}${renderUnchanged(previous.revision, observation, options.expectChange === true)}`;
52
+ }
53
+ if (changes >= MAX_DIFF_LINES || changes > MAX_DIFF_SHARE * next.order.length) {
54
+ return `${lead}The screen changed substantially since revision ${previous.revision}. ${renderFull(observation)}`;
55
+ }
56
+ const assurance = observation.truncated
57
+ ? 'The screen was truncated at the observation byte limit: nodes past it are not listed and none is reported removed; every listed node keeps the id you have.'
58
+ : 'Every node not listed as removed is still on screen under the id you have.';
59
+ return [
60
+ `${lead}Screen changes since revision ${previous.revision} (now revision ${observation.revision}${describeLocation(observation)}, ${String(next.nodes)} nodes): ${describeCounts(diff)}. ${assurance}`,
61
+ ...diff,
62
+ ].join('\n');
63
+ }
64
+ }
65
+ /** `2 added, 1 changed, 5 removed`, omitting the kinds that did not happen. */
66
+ function describeCounts(diff) {
67
+ const count = (kind) => diff.filter((line) => line.startsWith(`${kind} `)).length;
68
+ const counts = ['added', 'changed', 'removed']
69
+ .map((kind) => [count(kind), kind])
70
+ .filter(([n]) => n > 0)
71
+ .map(([n, kind]) => `${String(n)} ${kind}`)
72
+ .join(', ');
73
+ return counts === '' ? 'no listed node changed' : counts;
74
+ }
75
+ /** One full screen, headed so the elision can find it later. */
76
+ function renderFull(observation) {
77
+ const nodes = indexScreen(observation).nodes;
78
+ return `Current screen (revision ${observation.revision}${describeLocation(observation)}, ${String(nodes)} nodes):\n${observation.text}`;
79
+ }
80
+ function renderUnchanged(since, observation, expectedChange) {
81
+ const looked = `re-observed as revision ${observation.revision}${describeLocation(observation)}`;
82
+ return expectedChange
83
+ ? `The screen did not change within the wait after this action (${looked}); the ids you have stay valid. If a change was expected, the control had no visible effect here: look for another way rather than repeating it.`
84
+ : `Screen unchanged since revision ${since} (${looked}); the ids you have stay valid.`;
85
+ }
86
+ function describeLocation(observation) {
87
+ return observation.path === undefined ? '' : `, path ${observation.path}`;
88
+ }
89
+ /** Node id at the head of one rendered line, or undefined for a marker line. */
90
+ function lineId(line) {
91
+ return /^\s*#(\S+)/.exec(line)?.[1];
92
+ }
93
+ /**
94
+ * The line without its focus state. Focus moves with every action and on its
95
+ * own, so a diff that reported it would drown the changes that matter and
96
+ * make a control that did nothing look like it did something. The states
97
+ * bracket is always the last token of a line. The full screen keeps focus.
98
+ */
99
+ function withoutFocus(line) {
100
+ return line.replace(/ \[([^\]]*)\]$/, (_match, states) => {
101
+ const kept = states.split(' ').filter((state) => state !== 'focused');
102
+ return kept.length === 0 ? '' : ` [${kept.join(' ')}]`;
103
+ });
104
+ }
105
+ function indexScreen(observation) {
106
+ const order = [];
107
+ const byId = new Map();
108
+ for (const raw of observation.text.split('\n')) {
109
+ const id = lineId(raw);
110
+ if (id === undefined)
111
+ continue;
112
+ // Without indentation: a node that only moved to another depth reads the
113
+ // same, and reporting it as changed would show identical text twice.
114
+ const line = withoutFocus(raw).trimStart();
115
+ order.push(line);
116
+ byId.set(id, line);
117
+ }
118
+ return { revision: observation.revision, order, byId, nodes: byId.size, truncated: observation.truncated };
119
+ }
120
+ /**
121
+ * The lines that differ between two screens, keyed by node id: additions and
122
+ * changes in the new screen's document order, then removals in the old one's.
123
+ * A changed line is rendered whole with what it read before, so a value that
124
+ * was typed, a state that toggled, or a label that moved reads at a glance.
125
+ * Each line is prefixed with a word, not a symbol: a model read `- #n19
126
+ * button "Delete"` as a button that was there and tapped it twice more.
127
+ */
128
+ function diffScreens(previous, next) {
129
+ const lines = [];
130
+ for (const line of next.order) {
131
+ const id = lineId(line);
132
+ if (id === undefined)
133
+ continue;
134
+ const before = previous.byId.get(id);
135
+ if (before === undefined) {
136
+ lines.push(`added ${line}`);
137
+ }
138
+ else if (before !== line) {
139
+ lines.push(`changed ${line} (was: ${before})`);
140
+ }
141
+ }
142
+ // A truncated screen stopped listing nodes at the byte limit; the ones it
143
+ // left out may well still exist, so nothing is called removed on its word.
144
+ if (next.truncated)
145
+ return lines;
146
+ for (const line of previous.order) {
147
+ const id = lineId(line);
148
+ if (id !== undefined && !next.byId.has(id))
149
+ lines.push(`removed ${line}`);
150
+ }
151
+ return lines;
152
+ }
153
+ /**
154
+ * Elides full screens the transcript no longer needs: every full screen but
155
+ * the newest few is reduced to its lead and a notice, in the opening prompt
156
+ * and in tool results alike. Diffs are never touched. Returns the input array
157
+ * unchanged when nothing qualifies, so the caller can skip the override.
158
+ */
159
+ export function compactScreenHistory(messages) {
160
+ const total = messages.reduce((count, message) => count + screenParts(message).filter((text) => text !== undefined).length, 0);
161
+ let stale = total - FULL_SCREEN_PRESERVE_COUNT;
162
+ if (stale <= 0)
163
+ return messages;
164
+ return messages.map((message) => {
165
+ if (stale <= 0)
166
+ return message;
167
+ if (message.role === 'user') {
168
+ if (typeof message.content === 'string') {
169
+ if (!FULL_SCREEN_PATTERN.test(message.content))
170
+ return message;
171
+ stale -= 1;
172
+ return { ...message, content: elideScreen(message.content) };
173
+ }
174
+ const content = message.content.map((part) => {
175
+ if (stale <= 0 || part.type !== 'text' || !FULL_SCREEN_PATTERN.test(part.text))
176
+ return part;
177
+ stale -= 1;
178
+ return { ...part, text: elideScreen(part.text) };
179
+ });
180
+ return { ...message, content };
181
+ }
182
+ if (message.role !== 'tool')
183
+ return message;
184
+ const texts = screenParts(message);
185
+ if (!texts.some((text) => text !== undefined))
186
+ return message;
187
+ const content = message.content.map((part, index) => {
188
+ const text = texts[index];
189
+ if (text === undefined || stale <= 0)
190
+ return part;
191
+ stale -= 1;
192
+ return { ...part, output: { type: 'text', value: elideScreen(text) } };
193
+ });
194
+ return { ...message, content };
195
+ });
196
+ }
197
+ /** Everything before the screen, then the notice in place of the tree. */
198
+ function elideScreen(text) {
199
+ const at = text.search(FULL_SCREEN_PATTERN);
200
+ const head = at <= 0 ? (text.split('\n', 1)[0] ?? '') : text.slice(0, at).trimEnd();
201
+ return `${head}\n[earlier screen elided; the newest "Current screen" plus the changes after it describe the screen]`;
202
+ }
203
+ /** Per-part full-screen text of one message; undefined for parts without one. */
204
+ function screenParts(message) {
205
+ if (message.role === 'user') {
206
+ if (typeof message.content === 'string') {
207
+ return [FULL_SCREEN_PATTERN.test(message.content) ? message.content : undefined];
208
+ }
209
+ return message.content.map((part) => part.type === 'text' && FULL_SCREEN_PATTERN.test(part.text) ? part.text : undefined);
210
+ }
211
+ if (message.role !== 'tool')
212
+ return [];
213
+ return message.content.map((part) => {
214
+ if (part.type !== 'tool-result')
215
+ return undefined;
216
+ const output = part.output;
217
+ if (output.type !== 'text' || typeof output.value !== 'string')
218
+ return undefined;
219
+ return FULL_SCREEN_PATTERN.test(output.value) ? output.value : undefined;
220
+ });
221
+ }
222
+ //# sourceMappingURL=screen-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen-update.js","sourceRoot":"","sources":["../../src/agent/screen-update.ts"],"names":[],"mappings":"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"}
@@ -18,12 +18,18 @@ import type { RecordableAction } from './actions.ts';
18
18
  import { type ReplayedPrefix, type StepVerdict } from './executor.ts';
19
19
  import { type ObservedNodes, type ReplayHost } from './replay.ts';
20
20
  /**
21
- * The replay host plus the one session-level probe replay itself never needs:
22
- * the current location path, read at both ends of the step for the trace's
23
- * start-path precondition and end-path postcondition.
21
+ * The replay host plus what replay itself never needs: the current location
22
+ * path, read at both ends of the step for the trace's start-path precondition
23
+ * and end-path postcondition, and the step's live progress.
24
24
  */
25
25
  export interface StepCacheHost extends ReplayHost {
26
26
  currentPath(observation?: ObservedNodes): Promise<string | undefined>;
27
+ /**
28
+ * Tells the step's live progress the cache has the step (`true`) or has
29
+ * handed it to the model (`false`), so a reporter can show the cache at
30
+ * work instead of a model turn.
31
+ */
32
+ replaying(active: boolean): void;
27
33
  }
28
34
  /** What the session needs from the dispatch beyond the host itself. */
29
35
  export interface StepCacheOptions {
@@ -84,13 +90,13 @@ export declare class StepTraceSession {
84
90
  /** Records one mutating project-tool call as a replay-ending gap. */
85
91
  recordGap(toolName: string): void;
86
92
  /**
87
- * Opens the step: captures the write-side preconditions the start path
88
- * and, when this step may write, the baseline screen — then attempts a
89
- * zero-turn replay. Returns the self-finalized verdict on a full replay
90
- * whose postcondition holds; undefined dispatches the executor after a
91
- * miss from the top, after a divergence mid-step with `replayedPrefix` set.
92
- * Every failure to replay is a miss, never an error; only runtime hard stops
93
- * propagate.
93
+ * Opens the step: reads the cache entry, captures the write-side
94
+ * preconditions — the start path and, when this step may write, the
95
+ * baseline screen then attempts a zero-turn replay of a hit. Returns the
96
+ * self-finalized verdict on a full replay whose postcondition holds;
97
+ * undefined dispatches the executor after a miss from the top, after a
98
+ * divergence mid-step with `replayedPrefix` set. Every failure to replay is
99
+ * a miss, never an error; only runtime hard stops propagate.
94
100
  */
95
101
  begin(): Promise<StepVerdict | undefined>;
96
102
  /**
@@ -119,6 +125,20 @@ export declare class StepTraceSession {
119
125
  * degrades to a miss.
120
126
  */
121
127
  private readEntry;
128
+ /**
129
+ * The write-side preconditions, captured before any action: the start path,
130
+ * doubling as the replay decision's current path, and the baseline screen
131
+ * when this step may write.
132
+ */
133
+ private captureStart;
134
+ /**
135
+ * Replays one hit: decides it against the start path, runs the recorded
136
+ * actions, then checks the postcondition. Actions that all ran prove the
137
+ * clicks happened; only the postcondition proves the save took. A flow whose
138
+ * destination changed, or whose effect is not on screen again, hands off
139
+ * like any other divergence.
140
+ */
141
+ private replayEntry;
122
142
  /**
123
143
  * The trace's postcondition against the live screen: the recorded end path
124
144
  * (pathname only, when the live location is known, and up to the ids the
@@ -156,4 +176,12 @@ export declare class StepTraceSession {
156
176
  private repairedAfterEndMismatch;
157
177
  private missed;
158
178
  }
179
+ /**
180
+ * The recorded verdict alone, for the ledger later steps read: how the step
181
+ * was served is the report's business, not context a model should reason
182
+ * about, and the notice would spend handoff bytes on every replayed step.
183
+ * Built from the two constants `replaySummary` writes with, so the two cannot
184
+ * drift apart; a summary not written by it is returned as is.
185
+ */
186
+ export declare function recordedVerdictOf(summary: string): string;
159
187
  //# sourceMappingURL=step-cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"step-cache.d.ts","sourceRoot":"","sources":["../../src/agent/step-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-cache.d.ts","sourceRoot":"","sources":["../../src/agent/step-cache.ts"],"names":[],"mappings":"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"}
@@ -93,54 +93,36 @@ export class StepTraceSession {
93
93
  this.recorder?.recordGap(toolName);
94
94
  }
95
95
  /**
96
- * Opens the step: captures the write-side preconditions the start path
97
- * and, when this step may write, the baseline screen — then attempts a
98
- * zero-turn replay. Returns the self-finalized verdict on a full replay
99
- * whose postcondition holds; undefined dispatches the executor after a
100
- * miss from the top, after a divergence mid-step with `replayedPrefix` set.
101
- * Every failure to replay is a miss, never an error; only runtime hard stops
102
- * propagate.
96
+ * Opens the step: reads the cache entry, captures the write-side
97
+ * preconditions — the start path and, when this step may write, the
98
+ * baseline screen then attempts a zero-turn replay of a hit. Returns the
99
+ * self-finalized verdict on a full replay whose postcondition holds;
100
+ * undefined dispatches the executor after a miss from the top, after a
101
+ * divergence mid-step with `replayedPrefix` set. Every failure to replay is
102
+ * a miss, never an error; only runtime hard stops propagate.
103
103
  */
104
104
  async begin() {
105
105
  this.startedMs = Date.now();
106
- // Captured before any action for the write's start-path precondition, and
107
- // doubling as the replay decision's current path.
108
- if (this.recorder !== undefined)
109
- this.startNodes = await probeScreen(this.host);
110
- this.startPath = await this.host.currentPath(this.startNodes);
111
- if (!this.cache.replayEligible)
112
- return undefined;
113
- const read = await this.readEntry();
106
+ // A retry records like any step but never replays; the report says so
107
+ // instead of looking like a step that ran with caching off.
108
+ const read = this.cache.replayEligible
109
+ ? await this.readEntry()
110
+ : { status: 'miss', reason: 'retry' };
114
111
  if (read.status === 'miss') {
112
+ await this.captureStart();
115
113
  this.info = this.missed(read.reason, 0);
116
114
  return undefined;
117
115
  }
118
- const trace = read.entry.payload;
119
- const decision = decideTraceReplay(read.entry, this.startPath);
120
- if (decision.action === 'miss') {
121
- this.info = this.missed(decision.reason, trace.actions.length);
122
- return undefined;
123
- }
124
- const outcome = await replayTrace(this.host, trace);
125
- this.consumedReplay = true;
126
- // Actions that all ran prove the clicks happened; only the postcondition
127
- // proves the save took. A flow whose destination changed, or whose effect
128
- // is not on screen again, hands off like any other divergence.
129
- const stopReason = outcome.completed
130
- ? (await this.endStateMatches(trace))
131
- ? undefined
132
- : 'end-mismatch'
133
- : (outcome.stopReason ?? 'action-failed');
134
- if (stopReason === undefined)
135
- return this.selfFinalize(trace, outcome);
136
- if (outcome.executed === 0) {
137
- // A prefix that performed nothing is a miss with a name, not a hand-off:
138
- // the executor starts from the top and owes the notice nothing.
139
- this.info = this.missed(stopReason, outcome.total);
140
- return undefined;
141
- }
142
- this.handOff(outcome, stopReason);
143
- return undefined;
116
+ // With an entry in hand the step is the cache's from its first moment: the
117
+ // baseline probe doubles as the replay's start-path check, and a step the
118
+ // replay finishes stays the cache's through its verdict and the re-stage,
119
+ // so a reporter never shows a model turn that is not coming. Only a replay
120
+ // that cannot finish the step hands it to the model.
121
+ this.host.replaying(true);
122
+ const verdict = await this.replayEntry(read.entry);
123
+ if (verdict === undefined)
124
+ this.host.replaying(false);
125
+ return verdict;
144
126
  }
145
127
  /**
146
128
  * Closes the session once the step has settled. The whole write-side
@@ -200,6 +182,49 @@ export class StepTraceSession {
200
182
  const entry = readTraceEntry(read.entry);
201
183
  return entry === undefined ? { status: 'miss', reason: 'invalid-entry' } : { status: 'hit', entry };
202
184
  }
185
+ /**
186
+ * The write-side preconditions, captured before any action: the start path,
187
+ * doubling as the replay decision's current path, and the baseline screen
188
+ * when this step may write.
189
+ */
190
+ async captureStart() {
191
+ if (this.recorder !== undefined)
192
+ this.startNodes = await probeScreen(this.host);
193
+ this.startPath = await this.host.currentPath(this.startNodes);
194
+ }
195
+ /**
196
+ * Replays one hit: decides it against the start path, runs the recorded
197
+ * actions, then checks the postcondition. Actions that all ran prove the
198
+ * clicks happened; only the postcondition proves the save took. A flow whose
199
+ * destination changed, or whose effect is not on screen again, hands off
200
+ * like any other divergence.
201
+ */
202
+ async replayEntry(entry) {
203
+ await this.captureStart();
204
+ const trace = entry.payload;
205
+ const decision = decideTraceReplay(entry, this.startPath);
206
+ if (decision.action === 'miss') {
207
+ this.info = this.missed(decision.reason, trace.actions.length);
208
+ return undefined;
209
+ }
210
+ const outcome = await replayTrace(this.host, trace);
211
+ this.consumedReplay = true;
212
+ const stopReason = outcome.completed
213
+ ? (await this.endStateMatches(trace))
214
+ ? undefined
215
+ : 'end-mismatch'
216
+ : (outcome.stopReason ?? 'action-failed');
217
+ if (stopReason === undefined)
218
+ return this.selfFinalize(trace, outcome);
219
+ if (outcome.executed === 0) {
220
+ // A prefix that performed nothing is a miss with a name, not a hand-off:
221
+ // the executor starts from the top and owes the notice nothing.
222
+ this.info = this.missed(stopReason, outcome.total);
223
+ return undefined;
224
+ }
225
+ this.handOff(outcome, stopReason);
226
+ return undefined;
227
+ }
203
228
  /**
204
229
  * The trace's postcondition against the live screen: the recorded end path
205
230
  * (pathname only, when the live location is known, and up to the ids the
@@ -234,10 +259,7 @@ export class StepTraceSession {
234
259
  replayedActions: outcome.executed,
235
260
  totalActions: outcome.total,
236
261
  };
237
- return {
238
- status: 'passed',
239
- summary: `replayed ${outcome.executed} recorded action(s) zero-turn from the trace cache; recorded verdict: ${trace.summary}`,
240
- };
262
+ return { status: 'passed', summary: replaySummary(outcome.executed, trace.summary) };
241
263
  }
242
264
  handOff(outcome, stopReason) {
243
265
  if (stopReason === 'end-mismatch')
@@ -335,4 +357,23 @@ async function probeScreen(host) {
335
357
  return undefined;
336
358
  }
337
359
  }
360
+ const REPLAY_NOTICE_START = 'replayed ';
361
+ const RECORDED_VERDICT_SEPARATOR = '; recorded verdict: ';
362
+ /** The verdict summary of a step the cache replayed whole: the notice, then the recorded verdict. */
363
+ function replaySummary(executed, recorded) {
364
+ return `${REPLAY_NOTICE_START}${String(executed)} recorded action(s) zero-turn from the trace cache${RECORDED_VERDICT_SEPARATOR}${recorded}`;
365
+ }
366
+ /**
367
+ * The recorded verdict alone, for the ledger later steps read: how the step
368
+ * was served is the report's business, not context a model should reason
369
+ * about, and the notice would spend handoff bytes on every replayed step.
370
+ * Built from the two constants `replaySummary` writes with, so the two cannot
371
+ * drift apart; a summary not written by it is returned as is.
372
+ */
373
+ export function recordedVerdictOf(summary) {
374
+ if (!summary.startsWith(REPLAY_NOTICE_START))
375
+ return summary;
376
+ const at = summary.indexOf(RECORDED_VERDICT_SEPARATOR);
377
+ return at === -1 ? summary : summary.slice(at + RECORDED_VERDICT_SEPARATOR.length);
378
+ }
338
379
  //# sourceMappingURL=step-cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"step-cache.js","sourceRoot":"","sources":["../../src/agent/step-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-cache.js","sourceRoot":"","sources":["../../src/agent/step-cache.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-loop.d.ts","sourceRoot":"","sources":["../../src/agent/tool-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAiB,YAAY,EAAc,OAAO,EAAE,MAAM,IAAI,CAAC;AAC3E,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAC;AACtD,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAEzB,MAAM,eAAe,CAAC;AAwBvB,0DAA0D;AAC1D,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,6EAA6E;IAC7E,UAAU,IAAI,OAAO,CAAC;IACtB,8EAA8E;IAC9E,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC;IACpF;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,MAAM,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC,CAAC;IACnH,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CACzB,QAAQ,EAAE,YAAY,EAAE,EACxB,IAAI,EAAE,YAAY,KACf,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;CACnD;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,YAAY,EAAE,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9G,kFAAkF;AAClF,MAAM,WAAW,YAAY;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,YAAY,CAwBrF"}
1
+ {"version":3,"file":"tool-loop.d.ts","sourceRoot":"","sources":["../../src/agent/tool-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAiB,YAAY,EAAc,OAAO,EAAE,MAAM,IAAI,CAAC;AAC3E,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAC;AACtD,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAEzB,MAAM,eAAe,CAAC;AA8BvB,0DAA0D;AAC1D,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,6EAA6E;IAC7E,UAAU,IAAI,OAAO,CAAC;IACtB,8EAA8E;IAC9E,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC;IACpF;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,MAAM,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC,CAAC;IACnH,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CACzB,QAAQ,EAAE,YAAY,EAAE,EACxB,IAAI,EAAE,YAAY,KACf,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;CACnD;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,YAAY,EAAE,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9G,kFAAkF;AAClF,MAAM,WAAW,YAAY;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,YAAY,CAwBrF"}