sentienceapi 0.92.2 → 0.93.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 (43) hide show
  1. package/README.md +152 -54
  2. package/dist/actions.d.ts +33 -1
  3. package/dist/actions.d.ts.map +1 -1
  4. package/dist/actions.js +81 -3
  5. package/dist/actions.js.map +1 -1
  6. package/dist/agent-runtime.d.ts +190 -0
  7. package/dist/agent-runtime.d.ts.map +1 -0
  8. package/dist/agent-runtime.js +257 -0
  9. package/dist/agent-runtime.js.map +1 -0
  10. package/dist/canonicalization.d.ts +126 -0
  11. package/dist/canonicalization.d.ts.map +1 -0
  12. package/dist/canonicalization.js +161 -0
  13. package/dist/canonicalization.js.map +1 -0
  14. package/dist/index.d.ts +4 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +19 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/ordinal.d.ts +90 -0
  19. package/dist/ordinal.d.ts.map +1 -0
  20. package/dist/ordinal.js +249 -0
  21. package/dist/ordinal.js.map +1 -0
  22. package/dist/snapshot-diff.d.ts +8 -15
  23. package/dist/snapshot-diff.d.ts.map +1 -1
  24. package/dist/snapshot-diff.js +38 -43
  25. package/dist/snapshot-diff.js.map +1 -1
  26. package/dist/snapshot.js +2 -0
  27. package/dist/snapshot.js.map +1 -1
  28. package/dist/tracing/indexer.d.ts.map +1 -1
  29. package/dist/tracing/indexer.js +3 -46
  30. package/dist/tracing/indexer.js.map +1 -1
  31. package/dist/tracing/types.d.ts +19 -0
  32. package/dist/tracing/types.d.ts.map +1 -1
  33. package/dist/types.d.ts +8 -0
  34. package/dist/types.d.ts.map +1 -1
  35. package/dist/verification.d.ts +177 -0
  36. package/dist/verification.d.ts.map +1 -0
  37. package/dist/verification.js +315 -0
  38. package/dist/verification.js.map +1 -0
  39. package/package.json +1 -1
  40. package/src/extension/injected_api.js +9 -2
  41. package/src/extension/manifest.json +1 -1
  42. package/src/extension/pkg/sentience_core_bg.wasm +0 -0
  43. package/src/extension/release.json +47 -46
package/dist/actions.js CHANGED
@@ -5,6 +5,7 @@
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.click = click;
7
7
  exports.typeText = typeText;
8
+ exports.scrollTo = scrollTo;
8
9
  exports.press = press;
9
10
  exports.clickRect = clickRect;
10
11
  const snapshot_1 = require("./snapshot");
@@ -180,6 +181,7 @@ async function click(browser, elementId, useMouse = true, takeSnapshot = false)
180
181
  * @param elementId - Element ID from snapshot (must be a text input element)
181
182
  * @param text - Text to type
182
183
  * @param takeSnapshot - Take snapshot after action (default: false)
184
+ * @param delayMs - Delay between keystrokes in milliseconds for human-like typing (default: 0)
183
185
  * @returns ActionResult with success status, outcome, duration, and optional snapshot
184
186
  *
185
187
  * @example
@@ -187,11 +189,15 @@ async function click(browser, elementId, useMouse = true, takeSnapshot = false)
187
189
  * const snap = await snapshot(browser);
188
190
  * const searchBox = find(snap, 'role=searchbox');
189
191
  * if (searchBox) {
192
+ * // Type instantly (default behavior)
190
193
  * await typeText(browser, searchBox.id, 'Hello World');
194
+ *
195
+ * // Type with human-like delay (~10ms between keystrokes)
196
+ * await typeText(browser, searchBox.id, 'Hello World', false, 10);
191
197
  * }
192
198
  * ```
193
199
  */
194
- async function typeText(browser, elementId, text, takeSnapshot = false) {
200
+ async function typeText(browser, elementId, text, takeSnapshot = false, delayMs = 0) {
195
201
  const page = browser.getPage();
196
202
  if (!page) {
197
203
  throw new Error('Browser not started. Call start() first.');
@@ -215,8 +221,80 @@ async function typeText(browser, elementId, text, takeSnapshot = false) {
215
221
  error: { code: 'focus_failed', reason: 'Element not found' },
216
222
  };
217
223
  }
218
- // Type using Playwright keyboard
219
- await page.keyboard.type(text);
224
+ // Type using Playwright keyboard with optional delay between keystrokes
225
+ await page.keyboard.type(text, { delay: delayMs });
226
+ const durationMs = Date.now() - startTime;
227
+ const urlAfter = page.url();
228
+ const urlChanged = urlBefore !== urlAfter;
229
+ const outcome = urlChanged ? 'navigated' : 'dom_updated';
230
+ let snapshotAfter;
231
+ if (takeSnapshot) {
232
+ snapshotAfter = await (0, snapshot_1.snapshot)(browser);
233
+ }
234
+ return {
235
+ success: true,
236
+ duration_ms: durationMs,
237
+ outcome,
238
+ url_changed: urlChanged,
239
+ snapshot_after: snapshotAfter,
240
+ };
241
+ }
242
+ /**
243
+ * Scroll an element into view
244
+ *
245
+ * Scrolls the page so that the specified element is visible in the viewport.
246
+ * Uses the element registry to find the element and scrollIntoView() to scroll it.
247
+ *
248
+ * @param browser - SentienceBrowser instance
249
+ * @param elementId - Element ID from snapshot to scroll into view
250
+ * @param behavior - Scroll behavior: 'smooth' for animated scroll, 'instant' for immediate (default: 'smooth')
251
+ * @param block - Vertical alignment: 'start', 'center', 'end', 'nearest' (default: 'center')
252
+ * @param takeSnapshot - Take snapshot after action (default: false)
253
+ * @returns ActionResult with success status, outcome, duration, and optional snapshot
254
+ *
255
+ * @example
256
+ * ```typescript
257
+ * const snap = await snapshot(browser);
258
+ * const button = find(snap, 'role=button[name="Submit"]');
259
+ * if (button) {
260
+ * // Scroll element into view with smooth animation
261
+ * await scrollTo(browser, button.id);
262
+ *
263
+ * // Scroll instantly to top of viewport
264
+ * await scrollTo(browser, button.id, 'instant', 'start');
265
+ * }
266
+ * ```
267
+ */
268
+ async function scrollTo(browser, elementId, behavior = 'smooth', block = 'center', takeSnapshot = false) {
269
+ const page = browser.getPage();
270
+ if (!page) {
271
+ throw new Error('Browser not started. Call start() first.');
272
+ }
273
+ const startTime = Date.now();
274
+ const urlBefore = page.url();
275
+ // Scroll element into view using the element registry
276
+ const scrolled = await browser_evaluator_1.BrowserEvaluator.evaluate(page, (args) => {
277
+ const el = window.sentience_registry[args.id];
278
+ if (el && el.scrollIntoView) {
279
+ el.scrollIntoView({
280
+ behavior: args.behavior,
281
+ block: args.block,
282
+ inline: 'nearest',
283
+ });
284
+ return true;
285
+ }
286
+ return false;
287
+ }, { id: elementId, behavior, block });
288
+ if (!scrolled) {
289
+ return {
290
+ success: false,
291
+ duration_ms: Date.now() - startTime,
292
+ outcome: 'error',
293
+ error: { code: 'scroll_failed', reason: 'Element not found or not scrollable' },
294
+ };
295
+ }
296
+ // Wait a bit for scroll to complete (especially for smooth scrolling)
297
+ await page.waitForTimeout(behavior === 'smooth' ? 500 : 100);
220
298
  const durationMs = Date.now() - startTime;
221
299
  const urlAfter = page.url();
222
300
  const urlChanged = urlBefore !== urlAfter;
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAyGH,sBA2GC;AAsBD,4BAyDC;AAoBD,sBAoCC;AAsCD,8BAkGC;AA/dD,yCAAsC;AACtC,iEAA6D;AAW7D;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,OAAiB,EACjB,IAAe,EACf,cAAsB,GAAG;IAEzB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,WAAW,GAAG,uBAAuB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAExD,4DAA4D;IAC5D,MAAM,IAAI,GAAG;QACX,IAAI,EAAE;YACJ,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;YAC5B,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;SAC9B;QACD,WAAW;QACX,WAAW;KACZ,CAAC;IAEF,MAAM,oCAAgB,CAAC,QAAQ,CAC7B,IAAI,EACJ,CAAC,IAIA,EAAE,EAAE;QACH,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAChD,qBAAqB;QACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,EAAE,GAAG,WAAW,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,sBAAsB,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,uBAAuB,CAAC;QAEnD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEnC,wBAAwB;QACxB,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;YAC5B,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;oBACvB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,+BAA+B;QAC1C,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,CAAC;IACzB,CAAC,EACD,IAAI,CACL,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACI,KAAK,UAAU,KAAK,CACzB,OAAiB,EACjB,SAAiB,EACjB,WAAoB,IAAI,EACxB,eAAwB,KAAK;IAE7B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,OAAgB,CAAC;IAErB,IAAI,QAAQ,EAAE,CAAC;QACb,uFAAuF;QACvF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAA,mBAAQ,EAAC,OAAO,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;YAE9D,IAAI,OAAO,EAAE,CAAC;gBACZ,mCAAmC;gBACnC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBACzD,+DAA+D;gBAC/D,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACzC,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,wDAAwD;gBACxD,OAAO,GAAG,MAAM,oCAAgB,CAAC,8BAA8B,CAC7D,IAAI,EACJ,EAAE,CAAC,EAAE,CAAE,MAAc,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EACzC,SAAS,EACT,IAAI,CAAC,iDAAiD;iBACvD,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;YAChC,OAAO,GAAG,MAAM,oCAAgB,CAAC,8BAA8B,CAC7D,IAAI,EACJ,EAAE,CAAC,EAAE,CAAE,MAAc,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EACzC,SAAS,EACT,IAAI,CAAC,iDAAiD;aACvD,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,wBAAwB;QACxB,OAAO,GAAG,MAAM,oCAAgB,CAAC,8BAA8B,CAC7D,IAAI,EACJ,EAAE,CAAC,EAAE,CAAE,MAAc,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EACzC,SAAS,EACT,IAAI,CAAC,iDAAiD;SACvD,CAAC;IACJ,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,oDAAoD;IACtD,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAE1C,sDAAsD;IACtD,IAAI,QAAgB,CAAC;IACrB,IAAI,UAAmB,CAAC;IACxB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,UAAU,GAAG,SAAS,KAAK,QAAQ,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;QAC3D,QAAQ,GAAG,SAAS,CAAC;QACrB,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,oBAAoB;IACpB,IAAI,OAAwE,CAAC;IAC7E,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,GAAG,WAAW,CAAC;IACxB,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,OAAO,GAAG,aAAa,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,OAAO,CAAC;IACpB,CAAC;IAED,0BAA0B;IAC1B,IAAI,aAAmC,CAAC;IACxC,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,aAAa,GAAG,MAAM,IAAA,mBAAQ,EAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;QACP,WAAW,EAAE,UAAU;QACvB,OAAO;QACP,WAAW,EAAE,UAAU;QACvB,cAAc,EAAE,aAAa;QAC7B,KAAK,EAAE,OAAO;YACZ,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,oCAAoC,EAAE;KAC3E,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACI,KAAK,UAAU,QAAQ,CAC5B,OAAiB,EACjB,SAAiB,EACjB,IAAY,EACZ,eAAwB,KAAK;IAE7B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,sBAAsB;IACtB,MAAM,OAAO,GAAG,MAAM,oCAAgB,CAAC,QAAQ,CAC7C,IAAI,EACJ,EAAE,CAAC,EAAE;QACH,MAAM,EAAE,GAAI,MAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,EAAE,EAAE,CAAC;YACP,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EACD,SAAS,CACV,CAAC;IAEF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YACnC,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,mBAAmB,EAAE;SAC7D,CAAC;IACJ,CAAC;IAED,iCAAiC;IACjC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,SAAS,KAAK,QAAQ,CAAC;IAE1C,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;IAEzD,IAAI,aAAmC,CAAC;IACxC,IAAI,YAAY,EAAE,CAAC;QACjB,aAAa,GAAG,MAAM,IAAA,mBAAQ,EAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,UAAU;QACvB,OAAO;QACP,WAAW,EAAE,UAAU;QACvB,cAAc,EAAE,aAAa;KAC9B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACI,KAAK,UAAU,KAAK,CACzB,OAAiB,EACjB,GAAW,EACX,eAAwB,KAAK;IAE7B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,6BAA6B;IAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE/B,wCAAwC;IACxC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,SAAS,KAAK,QAAQ,CAAC;IAE1C,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;IAEzD,IAAI,aAAmC,CAAC;IACxC,IAAI,YAAY,EAAE,CAAC;QACjB,aAAa,GAAG,MAAM,IAAA,mBAAQ,EAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,UAAU;QACvB,OAAO;QACP,WAAW,EAAE,UAAU;QACvB,cAAc,EAAE,aAAa;KAC9B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACI,KAAK,UAAU,SAAS,CAC7B,OAAiB,EACjB,IAAsB,EACtB,YAAqB,IAAI,EACzB,oBAA4B,GAAG,EAC/B,eAAwB,KAAK;IAE7B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,uCAAuC;IACvC,IAAI,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,CAAC;IAE/C,IAAI,OAAO,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;QAC5E,sDAAsD;QACtD,MAAM,IAAI,GAAG,IAAY,CAAC;QAC1B,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACX,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACX,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACf,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,iBAAiB;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC;QACvB,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;QAChB,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;QAChB,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC;QACxC,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,CAAC;YACd,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE;gBACL,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,6CAA6C;aACtD;SACF,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE1B,8CAA8C;IAC9C,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAChE,6CAA6C;QAC7C,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,+DAA+D;IAC/D,IAAI,OAAgB,CAAC;IACrB,IAAI,QAA4B,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,KAAK,CAAC;QAChB,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,wCAAwC;IACxC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,SAAS,KAAK,QAAQ,CAAC;IAE1C,oBAAoB;IACpB,IAAI,OAAwE,CAAC;IAC7E,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,GAAG,WAAW,CAAC;IACxB,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,OAAO,GAAG,aAAa,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,OAAO,CAAC;IACpB,CAAC;IAED,0BAA0B;IAC1B,IAAI,aAAmC,CAAC;IACxC,IAAI,YAAY,EAAE,CAAC;QACjB,aAAa,GAAG,MAAM,IAAA,mBAAQ,EAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO;QACL,OAAO;QACP,WAAW,EAAE,UAAU;QACvB,OAAO;QACP,WAAW,EAAE,UAAU;QACvB,cAAc,EAAE,aAAa;QAC7B,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,IAAI,cAAc,EAAE;KAC1F,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Agent runtime for verification loop support.
3
+ *
4
+ * This module provides a thin runtime wrapper that combines:
5
+ * 1. Browser session management
6
+ * 2. Snapshot/query helpers
7
+ * 3. Tracer for event emission
8
+ * 4. Assertion/verification methods
9
+ *
10
+ * The AgentRuntime is designed to be used in agent verification loops where
11
+ * you need to repeatedly take snapshots, execute actions, and verify results.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { SentienceBrowser } from './browser';
16
+ * import { AgentRuntime } from './agent-runtime';
17
+ * import { urlMatches, exists } from './verification';
18
+ * import { Tracer, JsonlTraceSink } from './tracing';
19
+ *
20
+ * const browser = await SentienceBrowser.create();
21
+ * const page = await browser.newPage();
22
+ * await page.goto("https://example.com");
23
+ *
24
+ * const sink = new JsonlTraceSink("trace.jsonl");
25
+ * const tracer = new Tracer("test-run", sink);
26
+ *
27
+ * const runtime = new AgentRuntime(browser, page, tracer);
28
+ *
29
+ * // Take snapshot and run assertions
30
+ * await runtime.snapshot();
31
+ * runtime.assert(urlMatches(/example\.com/), "on_homepage");
32
+ * runtime.assert(exists("role=button"), "has_buttons");
33
+ *
34
+ * // Check if task is done
35
+ * if (runtime.assertDone(exists("text~'Success'"), "task_complete")) {
36
+ * console.log("Task completed!");
37
+ * }
38
+ * ```
39
+ */
40
+ import { Page } from 'playwright';
41
+ import { Snapshot } from './types';
42
+ import { Predicate } from './verification';
43
+ import { Tracer } from './tracing/tracer';
44
+ interface BrowserLike {
45
+ snapshot(page: Page, options?: Record<string, any>): Promise<Snapshot>;
46
+ }
47
+ /**
48
+ * Assertion record for accumulation and step_end emission.
49
+ */
50
+ export interface AssertionRecord {
51
+ label: string;
52
+ passed: boolean;
53
+ required: boolean;
54
+ reason: string;
55
+ details: Record<string, any>;
56
+ }
57
+ /**
58
+ * Runtime wrapper for agent verification loops.
59
+ *
60
+ * Provides ergonomic methods for:
61
+ * - snapshot(): Take page snapshot
62
+ * - assert(): Evaluate assertion predicates
63
+ * - assertDone(): Assert task completion (required assertion)
64
+ *
65
+ * The runtime manages assertion state per step and emits verification events
66
+ * to the tracer for Studio timeline display.
67
+ */
68
+ export declare class AgentRuntime {
69
+ /** Browser instance for taking snapshots */
70
+ readonly browser: BrowserLike;
71
+ /** Playwright Page for browser interaction */
72
+ readonly page: Page;
73
+ /** Tracer for event emission */
74
+ readonly tracer: Tracer;
75
+ /** Current step identifier */
76
+ stepId: string | null;
77
+ /** Current step index (0-based) */
78
+ stepIndex: number;
79
+ /** Most recent snapshot (for assertion context) */
80
+ lastSnapshot: Snapshot | null;
81
+ /** Assertions accumulated during current step */
82
+ private assertionsThisStep;
83
+ /** Task completion tracking */
84
+ private taskDone;
85
+ private taskDoneLabel;
86
+ /**
87
+ * Create a new AgentRuntime.
88
+ *
89
+ * @param browser - Browser instance for taking snapshots
90
+ * @param page - Playwright Page for browser interaction
91
+ * @param tracer - Tracer for emitting verification events
92
+ */
93
+ constructor(browser: BrowserLike, page: Page, tracer: Tracer);
94
+ /**
95
+ * Build assertion context from current state.
96
+ */
97
+ private ctx;
98
+ /**
99
+ * Take a snapshot of the current page state.
100
+ *
101
+ * This updates lastSnapshot which is used as context for assertions.
102
+ *
103
+ * @param options - Options passed through to browser.snapshot()
104
+ * @returns Snapshot of current page state
105
+ */
106
+ snapshot(options?: Record<string, any>): Promise<Snapshot>;
107
+ /**
108
+ * Begin a new step in the verification loop.
109
+ *
110
+ * This:
111
+ * - Generates a new stepId
112
+ * - Clears assertions from previous step
113
+ * - Increments stepIndex (or uses provided value)
114
+ *
115
+ * @param goal - Description of what this step aims to achieve
116
+ * @param stepIndex - Optional explicit step index (otherwise auto-increments)
117
+ * @returns Generated stepId
118
+ */
119
+ beginStep(goal: string, stepIndex?: number): string;
120
+ /**
121
+ * Evaluate an assertion against current snapshot state.
122
+ *
123
+ * The assertion result is:
124
+ * 1. Accumulated for inclusion in step_end.data.verify.signals.assertions
125
+ * 2. Emitted as a dedicated 'verification' event for Studio timeline
126
+ *
127
+ * @param predicate - Predicate function to evaluate
128
+ * @param label - Human-readable label for this assertion
129
+ * @param required - If true, this assertion gates step success (default: false)
130
+ * @returns True if assertion passed, false otherwise
131
+ */
132
+ assert(predicate: Predicate, label: string, required?: boolean): boolean;
133
+ /**
134
+ * Assert task completion (required assertion).
135
+ *
136
+ * This is a convenience wrapper for assert() with required=true.
137
+ * When the assertion passes, it marks the task as done.
138
+ *
139
+ * Use this for final verification that the agent's goal is complete.
140
+ *
141
+ * @param predicate - Predicate function to evaluate
142
+ * @param label - Human-readable label for this assertion
143
+ * @returns True if task is complete (assertion passed), false otherwise
144
+ */
145
+ assertDone(predicate: Predicate, label: string): boolean;
146
+ /**
147
+ * Get assertions data for inclusion in step_end.data.verify.signals.
148
+ *
149
+ * This is called when building the step_end event to include
150
+ * assertion results in the trace.
151
+ *
152
+ * @returns Object with 'assertions', 'task_done', 'task_done_label' keys
153
+ */
154
+ getAssertionsForStepEnd(): {
155
+ assertions: AssertionRecord[];
156
+ task_done?: boolean;
157
+ task_done_label?: string;
158
+ };
159
+ /**
160
+ * Get and clear assertions for current step.
161
+ *
162
+ * Call this at step end to get accumulated assertions
163
+ * for the step_end event, then clear for next step.
164
+ *
165
+ * @returns List of assertion records from this step
166
+ */
167
+ flushAssertions(): AssertionRecord[];
168
+ /**
169
+ * Check if task has been marked as done via assertDone().
170
+ */
171
+ get isTaskDone(): boolean;
172
+ /**
173
+ * Reset task_done state (for multi-task runs).
174
+ */
175
+ resetTaskDone(): void;
176
+ /**
177
+ * Check if all assertions in current step passed.
178
+ *
179
+ * @returns True if all assertions passed (or no assertions made)
180
+ */
181
+ allAssertionsPassed(): boolean;
182
+ /**
183
+ * Check if all required assertions in current step passed.
184
+ *
185
+ * @returns True if all required assertions passed (or no required assertions)
186
+ */
187
+ requiredAssertionsPassed(): boolean;
188
+ }
189
+ export {};
190
+ //# sourceMappingURL=agent-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAiB,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACxE;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACvB,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAK;IACtB,mDAAmD;IACnD,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAErC,iDAAiD;IACjD,OAAO,CAAC,kBAAkB,CAAyB;IACnD,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,aAAa,CAAuB;IAE5C;;;;;;OAMG;gBACS,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAM5D;;OAEG;IACH,OAAO,CAAC,GAAG;IAeX;;;;;;;OAOG;IACG,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKhE;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAiBnD;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO;IA8B/E;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAsBxD;;;;;;;OAOG;IACH,uBAAuB,IAAI;QACzB,UAAU,EAAE,eAAe,EAAE,CAAC;QAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B;IAiBD;;;;;;;OAOG;IACH,eAAe,IAAI,eAAe,EAAE;IAMpC;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,aAAa,IAAI,IAAI;IAKrB;;;;OAIG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;;;OAIG;IACH,wBAAwB,IAAI,OAAO;CAIpC"}
@@ -0,0 +1,257 @@
1
+ "use strict";
2
+ /**
3
+ * Agent runtime for verification loop support.
4
+ *
5
+ * This module provides a thin runtime wrapper that combines:
6
+ * 1. Browser session management
7
+ * 2. Snapshot/query helpers
8
+ * 3. Tracer for event emission
9
+ * 4. Assertion/verification methods
10
+ *
11
+ * The AgentRuntime is designed to be used in agent verification loops where
12
+ * you need to repeatedly take snapshots, execute actions, and verify results.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { SentienceBrowser } from './browser';
17
+ * import { AgentRuntime } from './agent-runtime';
18
+ * import { urlMatches, exists } from './verification';
19
+ * import { Tracer, JsonlTraceSink } from './tracing';
20
+ *
21
+ * const browser = await SentienceBrowser.create();
22
+ * const page = await browser.newPage();
23
+ * await page.goto("https://example.com");
24
+ *
25
+ * const sink = new JsonlTraceSink("trace.jsonl");
26
+ * const tracer = new Tracer("test-run", sink);
27
+ *
28
+ * const runtime = new AgentRuntime(browser, page, tracer);
29
+ *
30
+ * // Take snapshot and run assertions
31
+ * await runtime.snapshot();
32
+ * runtime.assert(urlMatches(/example\.com/), "on_homepage");
33
+ * runtime.assert(exists("role=button"), "has_buttons");
34
+ *
35
+ * // Check if task is done
36
+ * if (runtime.assertDone(exists("text~'Success'"), "task_complete")) {
37
+ * console.log("Task completed!");
38
+ * }
39
+ * ```
40
+ */
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.AgentRuntime = void 0;
43
+ const uuid_1 = require("uuid");
44
+ /**
45
+ * Runtime wrapper for agent verification loops.
46
+ *
47
+ * Provides ergonomic methods for:
48
+ * - snapshot(): Take page snapshot
49
+ * - assert(): Evaluate assertion predicates
50
+ * - assertDone(): Assert task completion (required assertion)
51
+ *
52
+ * The runtime manages assertion state per step and emits verification events
53
+ * to the tracer for Studio timeline display.
54
+ */
55
+ class AgentRuntime {
56
+ /**
57
+ * Create a new AgentRuntime.
58
+ *
59
+ * @param browser - Browser instance for taking snapshots
60
+ * @param page - Playwright Page for browser interaction
61
+ * @param tracer - Tracer for emitting verification events
62
+ */
63
+ constructor(browser, page, tracer) {
64
+ /** Current step identifier */
65
+ this.stepId = null;
66
+ /** Current step index (0-based) */
67
+ this.stepIndex = 0;
68
+ /** Most recent snapshot (for assertion context) */
69
+ this.lastSnapshot = null;
70
+ /** Assertions accumulated during current step */
71
+ this.assertionsThisStep = [];
72
+ /** Task completion tracking */
73
+ this.taskDone = false;
74
+ this.taskDoneLabel = null;
75
+ this.browser = browser;
76
+ this.page = page;
77
+ this.tracer = tracer;
78
+ }
79
+ /**
80
+ * Build assertion context from current state.
81
+ */
82
+ ctx() {
83
+ let url = null;
84
+ if (this.lastSnapshot) {
85
+ url = this.lastSnapshot.url;
86
+ }
87
+ else if (this.page) {
88
+ url = this.page.url();
89
+ }
90
+ return {
91
+ snapshot: this.lastSnapshot,
92
+ url,
93
+ stepId: this.stepId,
94
+ };
95
+ }
96
+ /**
97
+ * Take a snapshot of the current page state.
98
+ *
99
+ * This updates lastSnapshot which is used as context for assertions.
100
+ *
101
+ * @param options - Options passed through to browser.snapshot()
102
+ * @returns Snapshot of current page state
103
+ */
104
+ async snapshot(options) {
105
+ this.lastSnapshot = await this.browser.snapshot(this.page, options);
106
+ return this.lastSnapshot;
107
+ }
108
+ /**
109
+ * Begin a new step in the verification loop.
110
+ *
111
+ * This:
112
+ * - Generates a new stepId
113
+ * - Clears assertions from previous step
114
+ * - Increments stepIndex (or uses provided value)
115
+ *
116
+ * @param goal - Description of what this step aims to achieve
117
+ * @param stepIndex - Optional explicit step index (otherwise auto-increments)
118
+ * @returns Generated stepId
119
+ */
120
+ beginStep(goal, stepIndex) {
121
+ // Clear previous step state
122
+ this.assertionsThisStep = [];
123
+ // Generate new stepId
124
+ this.stepId = (0, uuid_1.v4)();
125
+ // Update step index
126
+ if (stepIndex !== undefined) {
127
+ this.stepIndex = stepIndex;
128
+ }
129
+ else {
130
+ this.stepIndex += 1;
131
+ }
132
+ return this.stepId;
133
+ }
134
+ /**
135
+ * Evaluate an assertion against current snapshot state.
136
+ *
137
+ * The assertion result is:
138
+ * 1. Accumulated for inclusion in step_end.data.verify.signals.assertions
139
+ * 2. Emitted as a dedicated 'verification' event for Studio timeline
140
+ *
141
+ * @param predicate - Predicate function to evaluate
142
+ * @param label - Human-readable label for this assertion
143
+ * @param required - If true, this assertion gates step success (default: false)
144
+ * @returns True if assertion passed, false otherwise
145
+ */
146
+ assert(predicate, label, required = false) {
147
+ const outcome = predicate(this.ctx());
148
+ const record = {
149
+ label,
150
+ passed: outcome.passed,
151
+ required,
152
+ reason: outcome.reason,
153
+ details: outcome.details,
154
+ };
155
+ this.assertionsThisStep.push(record);
156
+ // Emit dedicated verification event (Option B from design doc)
157
+ // This makes assertions visible in Studio timeline
158
+ this.tracer.emit('verification', {
159
+ kind: 'assert',
160
+ passed: outcome.passed,
161
+ label,
162
+ required,
163
+ reason: outcome.reason,
164
+ details: outcome.details,
165
+ }, this.stepId || undefined);
166
+ return outcome.passed;
167
+ }
168
+ /**
169
+ * Assert task completion (required assertion).
170
+ *
171
+ * This is a convenience wrapper for assert() with required=true.
172
+ * When the assertion passes, it marks the task as done.
173
+ *
174
+ * Use this for final verification that the agent's goal is complete.
175
+ *
176
+ * @param predicate - Predicate function to evaluate
177
+ * @param label - Human-readable label for this assertion
178
+ * @returns True if task is complete (assertion passed), false otherwise
179
+ */
180
+ assertDone(predicate, label) {
181
+ const ok = this.assert(predicate, label, true);
182
+ if (ok) {
183
+ this.taskDone = true;
184
+ this.taskDoneLabel = label;
185
+ // Emit task_done verification event
186
+ this.tracer.emit('verification', {
187
+ kind: 'task_done',
188
+ passed: true,
189
+ label,
190
+ }, this.stepId || undefined);
191
+ }
192
+ return ok;
193
+ }
194
+ /**
195
+ * Get assertions data for inclusion in step_end.data.verify.signals.
196
+ *
197
+ * This is called when building the step_end event to include
198
+ * assertion results in the trace.
199
+ *
200
+ * @returns Object with 'assertions', 'task_done', 'task_done_label' keys
201
+ */
202
+ getAssertionsForStepEnd() {
203
+ const result = {
204
+ assertions: [...this.assertionsThisStep],
205
+ };
206
+ if (this.taskDone) {
207
+ result.task_done = true;
208
+ result.task_done_label = this.taskDoneLabel || undefined;
209
+ }
210
+ return result;
211
+ }
212
+ /**
213
+ * Get and clear assertions for current step.
214
+ *
215
+ * Call this at step end to get accumulated assertions
216
+ * for the step_end event, then clear for next step.
217
+ *
218
+ * @returns List of assertion records from this step
219
+ */
220
+ flushAssertions() {
221
+ const assertions = [...this.assertionsThisStep];
222
+ this.assertionsThisStep = [];
223
+ return assertions;
224
+ }
225
+ /**
226
+ * Check if task has been marked as done via assertDone().
227
+ */
228
+ get isTaskDone() {
229
+ return this.taskDone;
230
+ }
231
+ /**
232
+ * Reset task_done state (for multi-task runs).
233
+ */
234
+ resetTaskDone() {
235
+ this.taskDone = false;
236
+ this.taskDoneLabel = null;
237
+ }
238
+ /**
239
+ * Check if all assertions in current step passed.
240
+ *
241
+ * @returns True if all assertions passed (or no assertions made)
242
+ */
243
+ allAssertionsPassed() {
244
+ return this.assertionsThisStep.every(a => a.passed);
245
+ }
246
+ /**
247
+ * Check if all required assertions in current step passed.
248
+ *
249
+ * @returns True if all required assertions passed (or no required assertions)
250
+ */
251
+ requiredAssertionsPassed() {
252
+ const required = this.assertionsThisStep.filter(a => a.required);
253
+ return required.every(a => a.passed);
254
+ }
255
+ }
256
+ exports.AgentRuntime = AgentRuntime;
257
+ //# sourceMappingURL=agent-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;;;AAGH,+BAAoC;AAqBpC;;;;;;;;;;GAUG;AACH,MAAa,YAAY;IAqBvB;;;;;;OAMG;IACH,YAAY,OAAoB,EAAE,IAAU,EAAE,MAAc;QApB5D,8BAA8B;QAC9B,WAAM,GAAkB,IAAI,CAAC;QAC7B,mCAAmC;QACnC,cAAS,GAAW,CAAC,CAAC;QACtB,mDAAmD;QACnD,iBAAY,GAAoB,IAAI,CAAC;QAErC,iDAAiD;QACzC,uBAAkB,GAAsB,EAAE,CAAC;QACnD,+BAA+B;QACvB,aAAQ,GAAY,KAAK,CAAC;QAC1B,kBAAa,GAAkB,IAAI,CAAC;QAU1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,GAAG;QACT,IAAI,GAAG,GAAkB,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;QAC9B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACrB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,GAAG;YACH,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,QAAQ,CAAC,OAA6B;QAC1C,IAAI,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,IAAY,EAAE,SAAkB;QACxC,4BAA4B;QAC5B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAE7B,sBAAsB;QACtB,IAAI,CAAC,MAAM,GAAG,IAAA,SAAM,GAAE,CAAC;QAEvB,oBAAoB;QACpB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,SAAoB,EAAE,KAAa,EAAE,WAAoB,KAAK;QACnE,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAoB;YAC9B,KAAK;YACL,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ;YACR,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErC,+DAA+D;QAC/D,mDAAmD;QACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,cAAc,EACd;YACE,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK;YACL,QAAQ;YACR,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,EACD,IAAI,CAAC,MAAM,IAAI,SAAS,CACzB,CAAC;QAEF,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,SAAoB,EAAE,KAAa;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE/C,IAAI,EAAE,EAAE,CAAC;YACP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAE3B,oCAAoC;YACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,cAAc,EACd;gBACE,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,IAAI;gBACZ,KAAK;aACN,EACD,IAAI,CAAC,MAAM,IAAI,SAAS,CACzB,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;;OAOG;IACH,uBAAuB;QAKrB,MAAM,MAAM,GAIR;YACF,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;SACzC,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,IAAI,SAAS,CAAC;QAC3D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,eAAe;QACb,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChD,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,aAAa;QACX,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACH,wBAAwB;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACjE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CACF;AAtPD,oCAsPC"}