@mercuryo-ai/agentbrowse 0.2.60 → 0.2.63

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 (105) hide show
  1. package/CHANGELOG.md +33 -1
  2. package/README.md +132 -14
  3. package/dist/browser-session-state.d.ts +40 -10
  4. package/dist/browser-session-state.d.ts.map +1 -1
  5. package/dist/browser-session-state.js +63 -5
  6. package/dist/commands/act.d.ts.map +1 -1
  7. package/dist/commands/act.js +548 -535
  8. package/dist/commands/attach.d.ts +1 -3
  9. package/dist/commands/attach.d.ts.map +1 -1
  10. package/dist/commands/attach.js +5 -12
  11. package/dist/commands/browser-connection-failure.d.ts +9 -0
  12. package/dist/commands/browser-connection-failure.d.ts.map +1 -0
  13. package/dist/commands/browser-connection-failure.js +15 -0
  14. package/dist/commands/browser-status.d.ts +0 -2
  15. package/dist/commands/browser-status.d.ts.map +1 -1
  16. package/dist/commands/browser-status.js +27 -37
  17. package/dist/commands/close.d.ts.map +1 -1
  18. package/dist/commands/close.js +5 -0
  19. package/dist/commands/extract.d.ts.map +1 -1
  20. package/dist/commands/extract.js +147 -144
  21. package/dist/commands/interaction-kernel.d.ts +1 -1
  22. package/dist/commands/interaction-kernel.d.ts.map +1 -1
  23. package/dist/commands/interaction-kernel.js +1 -1
  24. package/dist/commands/launch.d.ts +0 -1
  25. package/dist/commands/launch.d.ts.map +1 -1
  26. package/dist/commands/launch.js +11 -12
  27. package/dist/commands/navigate.d.ts.map +1 -1
  28. package/dist/commands/navigate.js +79 -73
  29. package/dist/commands/observe-accessibility.d.ts.map +1 -1
  30. package/dist/commands/observe-accessibility.js +36 -2
  31. package/dist/commands/observe-inventory.d.ts +50 -7
  32. package/dist/commands/observe-inventory.d.ts.map +1 -1
  33. package/dist/commands/observe-inventory.js +822 -99
  34. package/dist/commands/observe-persistence.d.ts.map +1 -1
  35. package/dist/commands/observe-persistence.js +49 -6
  36. package/dist/commands/observe-projection.d.ts +6 -2
  37. package/dist/commands/observe-projection.d.ts.map +1 -1
  38. package/dist/commands/observe-projection.js +251 -27
  39. package/dist/commands/observe-semantics.d.ts +1 -0
  40. package/dist/commands/observe-semantics.d.ts.map +1 -1
  41. package/dist/commands/observe-semantics.js +541 -135
  42. package/dist/commands/observe-signals.d.ts +4 -4
  43. package/dist/commands/observe-signals.d.ts.map +1 -1
  44. package/dist/commands/observe-signals.js +2 -2
  45. package/dist/commands/observe-surfaces.d.ts +2 -1
  46. package/dist/commands/observe-surfaces.d.ts.map +1 -1
  47. package/dist/commands/observe-surfaces.js +143 -45
  48. package/dist/commands/observe.d.ts +5 -1
  49. package/dist/commands/observe.d.ts.map +1 -1
  50. package/dist/commands/observe.js +266 -274
  51. package/dist/commands/screenshot.d.ts.map +1 -1
  52. package/dist/commands/screenshot.js +50 -64
  53. package/dist/commands/semantic-observe.d.ts.map +1 -1
  54. package/dist/commands/semantic-observe.js +43 -0
  55. package/dist/library.d.ts +3 -1
  56. package/dist/library.d.ts.map +1 -1
  57. package/dist/library.js +3 -1
  58. package/dist/match-resolve-fill.d.ts +196 -0
  59. package/dist/match-resolve-fill.d.ts.map +1 -0
  60. package/dist/match-resolve-fill.js +700 -0
  61. package/dist/match-resolve-fill.test-support.d.ts +34 -0
  62. package/dist/match-resolve-fill.test-support.d.ts.map +1 -0
  63. package/dist/match-resolve-fill.test-support.js +81 -0
  64. package/dist/protected-fill.d.ts.map +1 -1
  65. package/dist/protected-fill.js +46 -7
  66. package/dist/runtime-protected-state.d.ts.map +1 -1
  67. package/dist/runtime-protected-state.js +12 -0
  68. package/dist/runtime-state.d.ts +6 -0
  69. package/dist/runtime-state.d.ts.map +1 -1
  70. package/dist/runtime-state.js +6 -0
  71. package/dist/secrets/form-matcher.d.ts.map +1 -1
  72. package/dist/secrets/form-matcher.js +76 -27
  73. package/dist/secrets/protected-exact-value-redaction.d.ts.map +1 -1
  74. package/dist/secrets/protected-exact-value-redaction.js +6 -0
  75. package/dist/secrets/protected-fill.js +3 -3
  76. package/dist/session.d.ts +3 -3
  77. package/dist/session.d.ts.map +1 -1
  78. package/dist/session.js +2 -2
  79. package/dist/solver/browser-launcher.d.ts.map +1 -1
  80. package/dist/solver/browser-launcher.js +2 -1
  81. package/dist/sticky-owner-host-entry.d.ts +2 -0
  82. package/dist/sticky-owner-host-entry.d.ts.map +1 -0
  83. package/dist/sticky-owner-host-entry.js +97 -0
  84. package/dist/sticky-owner.d.ts +15 -0
  85. package/dist/sticky-owner.d.ts.map +1 -0
  86. package/dist/sticky-owner.js +431 -0
  87. package/dist/testing.d.ts +1 -0
  88. package/dist/testing.d.ts.map +1 -1
  89. package/dist/testing.js +1 -0
  90. package/docs/README.md +28 -11
  91. package/docs/api-reference.md +311 -19
  92. package/docs/assistive-runtime.md +41 -16
  93. package/docs/configuration.md +36 -4
  94. package/docs/getting-started.md +73 -5
  95. package/docs/integration-checklist.md +32 -3
  96. package/docs/match-resolve-fill.md +699 -0
  97. package/docs/protected-fill.md +373 -91
  98. package/docs/testing.md +147 -15
  99. package/docs/troubleshooting.md +47 -6
  100. package/examples/README.md +7 -0
  101. package/examples/match-resolve-fill.ts +107 -0
  102. package/package.json +4 -2
  103. package/dist/protected-fill-browser.d.ts +0 -22
  104. package/dist/protected-fill-browser.d.ts.map +0 -1
  105. package/dist/protected-fill-browser.js +0 -52
@@ -6,8 +6,10 @@ import { getProtectedExposure } from '../runtime-protected-state.js';
6
6
  import { saveSession } from '../session.js';
7
7
  import { outputFailure, outputJSON, outputContractFailure, info } from '../output.js';
8
8
  import { captureDiagnosticSnapshotBestEffort, finishDiagnosticStepBestEffort, recordCommandLifecycleEventBestEffort, startDiagnosticStep, } from '../diagnostics.js';
9
- import { connectPlaywright, disconnectPlaywright, resolveCurrentPageContext, syncSessionPage, } from '../playwright-runtime.js';
9
+ import { resolveCurrentPageContext, syncSessionPage } from '../playwright-runtime.js';
10
10
  import { buildProtectedScreenshotBlockedResult, } from '../secrets/protected-artifact-guard.js';
11
+ import { describeBrowserConnectionFailure } from './browser-connection-failure.js';
12
+ import { withStickyOwnerBrowser } from '../sticky-owner.js';
11
13
  /** Stable top-level error codes returned by `screenshot(...)`. */
12
14
  export const SCREENSHOT_ERROR_CODES = [
13
15
  'browser_connection_failed',
@@ -172,81 +174,65 @@ export async function screenshotBrowser(session, filePath) {
172
174
  protectedStep: Boolean(initialProtectedExposure),
173
175
  },
174
176
  });
175
- let browser = null;
176
- let failureMessage = null;
177
- let page = null;
178
177
  try {
179
- browser = await connectPlaywright(session.cdpUrl);
180
- }
181
- catch (err) {
182
- return buildScreenshotContractFailureResult(session, {
183
- step: screenshotStepHandle,
184
- error: 'browser_connection_failed',
185
- outcomeType: 'blocked',
186
- message: 'Screenshot capture could not start because AgentBrowse failed to connect to the browser.',
187
- reason: err instanceof Error ? err.message : String(err),
188
- runId: session.activeRunId,
189
- stepId: screenshotStep?.stepId,
178
+ return await withStickyOwnerBrowser(session, async (browser) => {
179
+ try {
180
+ const resolvedPage = await resolveCurrentPageContext(browser, session);
181
+ pageRef = resolvedPage.pageRef;
182
+ const page = resolvedPage.page;
183
+ const recoveredProtectedExposure = getProtectedExposure(session, pageRef) ?? (!page ? initialProtectedExposure : null);
184
+ if (recoveredProtectedExposure) {
185
+ if (page && pageRef !== initialPageRef) {
186
+ setCurrentPage(session, pageRef);
187
+ }
188
+ return buildScreenshotFailureResult(session, {
189
+ step: screenshotStepHandle,
190
+ ...buildProtectedScreenshotBlockedResult(recoveredProtectedExposure),
191
+ runId: session.activeRunId,
192
+ stepId: screenshotStep?.stepId,
193
+ });
194
+ }
195
+ if (!page) {
196
+ throw new Error('no_open_pages');
197
+ }
198
+ await page.screenshot({ path: outputPath });
199
+ const { url, title } = await syncSessionPage(session, pageRef, page);
200
+ setCurrentPage(session, pageRef);
201
+ return buildScreenshotSuccessResult({
202
+ session,
203
+ step: screenshotStepHandle,
204
+ runId: session.activeRunId,
205
+ stepId: screenshotStep?.stepId,
206
+ pageRef,
207
+ path: outputPath,
208
+ url,
209
+ title,
210
+ });
211
+ }
212
+ catch (error) {
213
+ throw new Error(`screenshot_failed:${error instanceof Error ? error.message : String(error)}`);
214
+ }
190
215
  });
191
216
  }
192
- try {
193
- const resolvedPage = await resolveCurrentPageContext(browser, session);
194
- pageRef = resolvedPage.pageRef;
195
- page = resolvedPage.page;
196
- }
197
217
  catch (err) {
198
- failureMessage = `Screenshot failed: ${err instanceof Error ? err.message : String(err)}`;
199
- }
200
- const recoveredProtectedExposure = getProtectedExposure(session, pageRef) ?? (!page ? initialProtectedExposure : null);
201
- if (recoveredProtectedExposure) {
202
- if (page && pageRef !== initialPageRef) {
203
- setCurrentPage(session, pageRef);
204
- }
205
- if (browser) {
206
- await disconnectPlaywright(browser);
207
- browser = null;
208
- }
209
- return buildScreenshotFailureResult(session, {
210
- step: screenshotStepHandle,
211
- ...buildProtectedScreenshotBlockedResult(recoveredProtectedExposure),
212
- runId: session.activeRunId,
213
- stepId: screenshotStep?.stepId,
218
+ const reason = err instanceof Error ? err.message : String(err);
219
+ const isCommandFailure = reason.startsWith('screenshot_failed:');
220
+ const browserConnectionFailure = describeBrowserConnectionFailure(err, {
221
+ defaultMessage: 'Screenshot capture could not start because AgentBrowse failed to connect to the browser.',
222
+ unrecoverableSessionMessage: 'Screenshot capture could not start because the previous browser session is no longer reachable.',
214
223
  });
215
- }
216
- try {
217
- if (!page) {
218
- throw new Error(failureMessage?.replace(/^Screenshot failed:\s*/, '') ?? 'no_open_pages');
219
- }
220
- await page.screenshot({ path: outputPath });
221
- const { url, title } = await syncSessionPage(session, pageRef, page);
222
- setCurrentPage(session, pageRef);
223
- return buildScreenshotSuccessResult({
224
- session,
225
- step: screenshotStepHandle,
226
- runId: session.activeRunId,
227
- stepId: screenshotStep?.stepId,
228
- pageRef,
229
- path: outputPath,
230
- url,
231
- title,
232
- });
233
- }
234
- catch (err) {
235
224
  return buildScreenshotContractFailureResult(session, {
236
225
  step: screenshotStepHandle,
237
- error: 'screenshot_failed',
226
+ error: isCommandFailure ? 'screenshot_failed' : 'browser_connection_failed',
238
227
  outcomeType: 'blocked',
239
- message: 'Screenshot capture failed.',
240
- reason: err instanceof Error ? err.message : String(err),
228
+ message: isCommandFailure ? 'Screenshot capture failed.' : browserConnectionFailure.message,
229
+ reason: isCommandFailure
230
+ ? reason.replace(/^screenshot_failed:/, '')
231
+ : browserConnectionFailure.reason,
241
232
  runId: session.activeRunId,
242
233
  stepId: screenshotStep?.stepId,
243
234
  });
244
235
  }
245
- finally {
246
- if (browser) {
247
- await disconnectPlaywright(browser);
248
- }
249
- }
250
236
  }
251
237
  /** CLI wrapper for `screenshotBrowser(...)` that persists session changes and writes JSON output. */
252
238
  export async function screenshot(session, filePath) {
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-observe.d.ts","sourceRoot":"","sources":["../../src/commands/semantic-observe.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAY7B,KAAK,sBAAsB,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACvC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AA4oDF,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,sBAAsB,EAC5E,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EACzB,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAAO,GAC9C,OAAO,CAAC,CAAC,EAAE,CAAC,CAkHd"}
1
+ {"version":3,"file":"semantic-observe.d.ts","sourceRoot":"","sources":["../../src/commands/semantic-observe.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAY7B,KAAK,sBAAsB,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACvC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AA2sDF,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,sBAAsB,EAC5E,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EACzB,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAAO,GAC9C,OAAO,CAAC,CAAC,EAAE,CAAC,CAkHd"}
@@ -239,6 +239,10 @@ function cachedStructureValue(structure) {
239
239
  return {
240
240
  ...(structure.family ? { family: structure.family } : {}),
241
241
  ...(structure.variant ? { variant: structure.variant } : {}),
242
+ ...(structure.dateIso ? { dateIso: structure.dateIso } : {}),
243
+ ...(typeof structure.dateYear === 'number' ? { dateYear: structure.dateYear } : {}),
244
+ ...(typeof structure.dateMonth === 'number' ? { dateMonth: structure.dateMonth } : {}),
245
+ ...(typeof structure.dateDay === 'number' ? { dateDay: structure.dateDay } : {}),
242
246
  ...(structure.row ? { row: structure.row } : {}),
243
247
  ...(structure.column ? { column: structure.column } : {}),
244
248
  ...(structure.zone ? { zone: structure.zone } : {}),
@@ -263,6 +267,34 @@ function appendGoalIdentityAlias(values, value) {
263
267
  }
264
268
  values.push(normalized);
265
269
  }
270
+ function structuredDateIdentityOf(structure) {
271
+ if (!structure || structure.family !== 'structured-grid' || structure.variant !== 'date-cell') {
272
+ return undefined;
273
+ }
274
+ const iso = normalizeGoalIdentityValue(structure.dateIso, 32);
275
+ const year = typeof structure.dateYear === 'number' ? structure.dateYear : undefined;
276
+ const month = typeof structure.dateMonth === 'number' ? structure.dateMonth : undefined;
277
+ const day = typeof structure.dateDay === 'number' ? structure.dateDay : undefined;
278
+ if (!iso && year === undefined && month === undefined && day === undefined) {
279
+ return undefined;
280
+ }
281
+ return { iso, year, month, day };
282
+ }
283
+ function structuredDateGoalIdentityValues(target) {
284
+ const identity = structuredDateIdentityOf(target.structure);
285
+ if (!identity) {
286
+ return [];
287
+ }
288
+ const values = [];
289
+ appendGoalIdentityAlias(values, identity.iso);
290
+ if (typeof identity.year === 'number' &&
291
+ typeof identity.month === 'number' &&
292
+ typeof identity.day === 'number') {
293
+ appendGoalIdentityAlias(values, `${identity.year} ${identity.month} ${identity.day}`);
294
+ appendGoalIdentityAlias(values, `${identity.day} ${identity.month} ${identity.year}`);
295
+ }
296
+ return values;
297
+ }
266
298
  function goalIdentityValuesOf(target) {
267
299
  const values = [];
268
300
  appendGoalIdentityAlias(values, target.goalLabel);
@@ -272,6 +304,9 @@ function goalIdentityValuesOf(target) {
272
304
  if (values.length > 0) {
273
305
  return values;
274
306
  }
307
+ for (const value of structuredDateGoalIdentityValues(target)) {
308
+ appendGoalIdentityAlias(values, value);
309
+ }
275
310
  if (isFieldLikeTarget(target)) {
276
311
  appendGoalIdentityAlias(values, target.label);
277
312
  appendGoalIdentityAlias(values, target.displayLabel);
@@ -646,6 +681,10 @@ function structureLexicalValue(structure) {
646
681
  return [
647
682
  structure.family,
648
683
  structure.variant,
684
+ structure.dateIso,
685
+ typeof structure.dateYear === 'number' ? String(structure.dateYear) : undefined,
686
+ typeof structure.dateMonth === 'number' ? String(structure.dateMonth) : undefined,
687
+ typeof structure.dateDay === 'number' ? String(structure.dateDay) : undefined,
649
688
  structure.row,
650
689
  structure.column,
651
690
  structure.zone,
@@ -1205,6 +1244,7 @@ function buildCompactCandidateSummary(target, index, surfaceSummaryIdBySurfaceKe
1205
1244
  const surfaceSummaryId = surfaceIdentityOf(target)
1206
1245
  ? surfaceSummaryIdBySurfaceKey?.get(surfaceIdentityOf(target))
1207
1246
  : undefined;
1247
+ const structuredDateIdentity = structuredDateIdentityOf(target.structure);
1208
1248
  if (target.kind)
1209
1249
  parts.push(`kind=${JSON.stringify(target.kind)}`);
1210
1250
  if (target.role)
@@ -1231,6 +1271,9 @@ function buildCompactCandidateSummary(target, index, surfaceSummaryIdBySurfaceKe
1231
1271
  if (surfaceSummaryId) {
1232
1272
  parts.push(`surface=${surfaceSummaryId}`);
1233
1273
  }
1274
+ if (structuredDateIdentity) {
1275
+ parts.push(`date=${JSON.stringify(structuredDateIdentity)}`);
1276
+ }
1234
1277
  if (target.structure)
1235
1278
  parts.push(`structure=${JSON.stringify(target.structure)}`);
1236
1279
  if (target.placeholder)
package/dist/library.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export { createBrowserSessionStore, deleteBrowserSession, getSessionPort, isAttachedSession, isOwnedSession, isSessionAlive, loadBrowserSession, resolveBrowserSessionId, saveBrowserSession, serializeBrowserSession, supportsCaptchaSolve, buildAttachedSession, buildOwnedSession, type BrowserSessionCapabilities, type BrowserSessionStore, type BrowserSessionState, type BrowseSessionIdentity, type BrowseSessionTransport, } from './browser-session-state.js';
1
+ export { fill, match, resolve, type AgentbrowseFillFailureResult, type AgentbrowseFillOptions, type AgentbrowseFillResult, type AgentbrowseGroupFillHandler, type AgentbrowseMatchApplicability, type AgentbrowseMatchCandidate, type AgentbrowseGroupMatchCandidate, type AgentbrowseMatchOptions, type AgentbrowseMatchResolver, type AgentbrowseMatchResult, type AgentbrowseMatchSource, type AgentbrowseGroupMatchStore, type AgentbrowseMatchStore, type AgentbrowseMatchValue, type AgentbrowseResolvableMatchResult, type AgentbrowseResolvedArtifactResource, type AgentbrowseResolvedResource, type AgentbrowseResolvedValueResource, type AgentbrowseAmbiguousGroupMatchResult, type AgentbrowseAmbiguousMatchResult, type AgentbrowseGroupResolutionPlan, type AgentbrowseNeedsResolutionGroupMatchResult, type AgentbrowseNeedsResolutionMatchResult, type AgentbrowseNoGroupMatchResult, type AgentbrowseNoMatchResult, type AgentbrowseReadyGroupMatchResult, type AgentbrowseReadyGroupFillInput, type AgentbrowseReadyMatchResult, type AgentbrowseResolutionPlan, type AgentbrowseResolveOptions, } from './match-resolve-fill.js';
2
+ export { createBrowserSessionStore, deleteBrowserSession, getSessionPort, isAttachedSession, isOwnedSession, isSessionAlive, loadBrowserSession, resolveBrowserSessionId, saveBrowserSession, serializeBrowserSession, buildAttachedSession, buildOwnedSession, buildStickyOwnerMetadata, canPersistStickyOwnerMetadata, type BrowserSessionStore, type BrowserSessionState, type BrowseSessionIdentity, type BrowseSessionTransport, type StickyOwnerInProcessTransport, type StickyOwnerMetadata, type StickyOwnerPlaywrightBindTransport, type StickyOwnerState, type StickyOwnerTransport, STICKY_OWNER_SCHEMA_VERSION, } from './browser-session-state.js';
2
3
  export { attach, ATTACH_ERROR_CODES, ATTACH_OUTCOME_TYPES, type AttachErrorCode, type AttachFailureResult, type AttachOutcomeType, type AttachOptions, type AttachResult, type AttachSuccessResult, } from './commands/attach.js';
3
4
  export { AgentbrowseAssistiveRuntimeMissingError, AssistiveStructuredOutputTruncatedError, configureAgentbrowseAssistiveRuntime, resetAgentbrowseAssistiveRuntime, type AgentbrowseAssistiveChatCompletionOptions, type AgentbrowseAssistiveChatCompletionRequest, type AgentbrowseAssistiveChatCompletionResult, type AgentbrowseAssistiveChatMessage, type AgentbrowseAssistiveImageInput, type AgentbrowseAssistiveLlmClient, type AgentbrowseAssistiveLlmUsage, type AgentbrowseAssistiveMessageContentPart, type AgentbrowseAssistiveResponseModel, type AgentbrowseAssistiveRuntime, } from './assistive-runtime.js';
4
5
  export { createAgentbrowseClient, type AgentbrowseClient, type AgentbrowseClientOptions, } from './client.js';
@@ -13,6 +14,7 @@ export { observeBrowser as observe, OBSERVE_ERROR_CODES, OBSERVE_OUTCOME_TYPES,
13
14
  export { classifyObservePageState, shouldSuppressFillableFormsForObserve, type ObservePageState, } from './commands/observe-page-state.js';
14
15
  export { resolveObservedField, type ObservedFieldCandidate, type ObservedFieldValueSource, type ObservedFieldValueType, type ResolveObservedFieldOptions, type ResolveObservedFieldResult, } from './secrets/observed-field-resolution.js';
15
16
  export { close, CLOSE_ERROR_CODES, CLOSE_OUTCOME_TYPES, type CloseErrorCode, type CloseFailureResult, type CloseOutcomeType, type CloseResult, type CloseSuccessResult, } from './commands/close.js';
17
+ export { restoreBrowserSessionOwner, type RestoreBrowserSessionOwnerResult, } from './sticky-owner.js';
16
18
  export { launch, LAUNCH_ERROR_CODES, LAUNCH_OUTCOME_TYPES, type LaunchErrorCode, type LaunchOptions, type LaunchFailureResult, type LaunchOutcomeType, type LaunchResult, type LaunchSuccessResult, } from './commands/launch.js';
17
19
  export { navigateBrowser as navigate, NAVIGATE_ERROR_CODES, NAVIGATE_OUTCOME_TYPES, type NavigateErrorCode, type NavigateFailureResult, type NavigateOutcomeType, type NavigateResult, type NavigateSuccessResult, } from './commands/navigate.js';
18
20
  export { screenshotBrowser as screenshot, SCREENSHOT_ERROR_CODES, SCREENSHOT_OUTCOME_TYPES, type ScreenshotErrorCode, type ScreenshotFailureResult, type ScreenshotOutcomeType, type ScreenshotResult, type ScreenshotSuccessResult, } from './commands/screenshot.js';
@@ -1 +1 @@
1
- {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../src/library.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../src/library.ts"],"names":[],"mappings":"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"}
package/dist/library.js CHANGED
@@ -1,4 +1,5 @@
1
- export { createBrowserSessionStore, deleteBrowserSession, getSessionPort, isAttachedSession, isOwnedSession, isSessionAlive, loadBrowserSession, resolveBrowserSessionId, saveBrowserSession, serializeBrowserSession, supportsCaptchaSolve, buildAttachedSession, buildOwnedSession, } from './browser-session-state.js';
1
+ export { fill, match, resolve, } from './match-resolve-fill.js';
2
+ export { createBrowserSessionStore, deleteBrowserSession, getSessionPort, isAttachedSession, isOwnedSession, isSessionAlive, loadBrowserSession, resolveBrowserSessionId, saveBrowserSession, serializeBrowserSession, buildAttachedSession, buildOwnedSession, buildStickyOwnerMetadata, canPersistStickyOwnerMetadata, STICKY_OWNER_SCHEMA_VERSION, } from './browser-session-state.js';
2
3
  export { attach, ATTACH_ERROR_CODES, ATTACH_OUTCOME_TYPES, } from './commands/attach.js';
3
4
  export { AgentbrowseAssistiveRuntimeMissingError, AssistiveStructuredOutputTruncatedError, configureAgentbrowseAssistiveRuntime, resetAgentbrowseAssistiveRuntime, } from './assistive-runtime.js';
4
5
  export { createAgentbrowseClient, } from './client.js';
@@ -11,6 +12,7 @@ export { observeBrowser as observe, OBSERVE_ERROR_CODES, OBSERVE_OUTCOME_TYPES,
11
12
  export { classifyObservePageState, shouldSuppressFillableFormsForObserve, } from './commands/observe-page-state.js';
12
13
  export { resolveObservedField, } from './secrets/observed-field-resolution.js';
13
14
  export { close, CLOSE_ERROR_CODES, CLOSE_OUTCOME_TYPES, } from './commands/close.js';
15
+ export { restoreBrowserSessionOwner, } from './sticky-owner.js';
14
16
  export { launch, LAUNCH_ERROR_CODES, LAUNCH_OUTCOME_TYPES, } from './commands/launch.js';
15
17
  export { navigateBrowser as navigate, NAVIGATE_ERROR_CODES, NAVIGATE_OUTCOME_TYPES, } from './commands/navigate.js';
16
18
  export { screenshotBrowser as screenshot, SCREENSHOT_ERROR_CODES, SCREENSHOT_OUTCOME_TYPES, } from './commands/screenshot.js';
@@ -0,0 +1,196 @@
1
+ import type { BrowserCommandSession } from './browser-session-state.js';
2
+ import { type ActResult } from './commands/act.js';
3
+ import { type ObservedFieldValueType } from './secrets/observed-field-resolution.js';
4
+ import type { ProtectedFillForm } from './protected-fill.js';
5
+ import type { TargetDescriptor } from './runtime-state.js';
6
+ export type AgentbrowseMatchValue = string | number;
7
+ export type AgentbrowseMatchApplicability = {
8
+ target: 'global' | 'host';
9
+ value?: string;
10
+ };
11
+ export interface AgentbrowseMatchResolutionRequest {
12
+ kind: string;
13
+ key?: string;
14
+ params?: Record<string, unknown>;
15
+ }
16
+ export interface AgentbrowseMatchCandidate {
17
+ candidateRef?: string;
18
+ fieldKey: string;
19
+ value?: AgentbrowseMatchValue;
20
+ type?: ObservedFieldValueType;
21
+ label?: string;
22
+ semanticTags?: string[];
23
+ applicability?: AgentbrowseMatchApplicability;
24
+ resolve?: AgentbrowseMatchResolutionRequest;
25
+ }
26
+ export interface AgentbrowseMatchStore {
27
+ entries(): ReadonlyArray<AgentbrowseMatchCandidate>;
28
+ read(candidateRef: string): AgentbrowseMatchValue | undefined;
29
+ }
30
+ export interface AgentbrowseGroupMatchCandidate {
31
+ candidateRef?: string;
32
+ itemRef?: string;
33
+ label?: string;
34
+ fieldKeys: ReadonlyArray<string>;
35
+ confidence?: 'high' | 'medium';
36
+ applicability?: AgentbrowseMatchApplicability;
37
+ resolve?: AgentbrowseMatchResolutionRequest;
38
+ artifact?: unknown;
39
+ }
40
+ export interface AgentbrowseGroupMatchStore {
41
+ entries(): ReadonlyArray<AgentbrowseGroupMatchCandidate>;
42
+ readArtifact(candidateRef: string): unknown;
43
+ }
44
+ export type AgentbrowseMatchSource = Record<string, AgentbrowseMatchValue> | ReadonlyArray<AgentbrowseMatchCandidate> | AgentbrowseMatchStore | ReadonlyArray<AgentbrowseGroupMatchCandidate> | AgentbrowseGroupMatchStore;
45
+ export interface AgentbrowseMatchOptions {
46
+ from: AgentbrowseMatchSource;
47
+ host?: string;
48
+ protectedTargetRefs?: ReadonlySet<string>;
49
+ }
50
+ export interface AgentbrowseResolutionPlan {
51
+ targetRef: string;
52
+ candidateRef: string;
53
+ fieldKey: string;
54
+ type?: ObservedFieldValueType;
55
+ resolve: AgentbrowseMatchResolutionRequest;
56
+ }
57
+ export interface AgentbrowseGroupResolutionPlan {
58
+ fillRef: string;
59
+ pageRef: string;
60
+ scopeRef?: string;
61
+ purpose: string;
62
+ candidateRef: string;
63
+ itemRef?: string;
64
+ fieldKeys: ReadonlyArray<string>;
65
+ resolve: AgentbrowseMatchResolutionRequest;
66
+ }
67
+ export type AgentbrowseReadyMatchResult = {
68
+ kind: 'ready';
69
+ targetRef: string;
70
+ fieldKey: string;
71
+ candidateRef: string;
72
+ valueRef: string;
73
+ confidence: 'high' | 'medium';
74
+ };
75
+ export type AgentbrowseNeedsResolutionMatchResult = {
76
+ kind: 'needs_resolution';
77
+ targetRef: string;
78
+ fieldKey: string;
79
+ candidateRef: string;
80
+ confidence: 'high' | 'medium';
81
+ plan: AgentbrowseResolutionPlan;
82
+ };
83
+ export type AgentbrowseReadyGroupMatchResult = {
84
+ kind: 'ready_group';
85
+ fillRef: string;
86
+ purpose: string;
87
+ candidateRef: string;
88
+ itemRef?: string;
89
+ fieldKeys: ReadonlyArray<string>;
90
+ artifactRef: string;
91
+ confidence: 'high' | 'medium';
92
+ requestId?: string;
93
+ resolutionPath?: string;
94
+ claimedAt?: string;
95
+ };
96
+ export type AgentbrowseNeedsResolutionGroupMatchResult = {
97
+ kind: 'needs_resolution_group';
98
+ fillRef: string;
99
+ purpose: string;
100
+ candidateRef: string;
101
+ itemRef?: string;
102
+ fieldKeys: ReadonlyArray<string>;
103
+ confidence: 'high' | 'medium';
104
+ plan: AgentbrowseGroupResolutionPlan;
105
+ };
106
+ export type AgentbrowseAmbiguousGroupMatchResult = {
107
+ kind: 'ambiguous_group';
108
+ fillRef: string;
109
+ candidates: string[];
110
+ };
111
+ export type AgentbrowseNoGroupMatchResult = {
112
+ kind: 'no_match_group';
113
+ fillRef: string;
114
+ reason: 'no_candidate' | 'scope_ineligible' | 'incompatible_shape' | 'low_confidence';
115
+ };
116
+ export type AgentbrowseAmbiguousMatchResult = {
117
+ kind: 'ambiguous';
118
+ targetRef: string;
119
+ candidates: string[];
120
+ };
121
+ export type AgentbrowseNoMatchResult = {
122
+ kind: 'no_match';
123
+ targetRef: string;
124
+ reason: 'protected_target' | 'no_candidate' | 'scope_ineligible' | 'incompatible_shape' | 'low_confidence';
125
+ };
126
+ export type AgentbrowseMatchResult = AgentbrowseReadyMatchResult | AgentbrowseNeedsResolutionMatchResult | AgentbrowseAmbiguousMatchResult | AgentbrowseNoMatchResult | AgentbrowseReadyGroupMatchResult | AgentbrowseNeedsResolutionGroupMatchResult | AgentbrowseAmbiguousGroupMatchResult | AgentbrowseNoGroupMatchResult;
127
+ export type AgentbrowseResolvableMatchResult = AgentbrowseNeedsResolutionMatchResult | AgentbrowseNeedsResolutionGroupMatchResult;
128
+ export type AgentbrowseResolvedValueResource = {
129
+ kind: 'value';
130
+ value: AgentbrowseMatchValue;
131
+ };
132
+ export type AgentbrowseResolvedArtifactResource = {
133
+ kind: 'artifact';
134
+ artifact: unknown;
135
+ itemRef?: string;
136
+ requestId?: string;
137
+ resolutionPath?: string;
138
+ claimedAt?: string;
139
+ };
140
+ export type AgentbrowseResolvedResource = AgentbrowseResolvedValueResource | AgentbrowseResolvedArtifactResource;
141
+ export interface AgentbrowseReadyGroupFillInput {
142
+ candidateRef: string;
143
+ itemRef?: string;
144
+ fieldKeys: ReadonlyArray<string>;
145
+ artifact: unknown;
146
+ requestId?: string;
147
+ resolutionPath?: string;
148
+ claimedAt?: string;
149
+ }
150
+ export interface AgentbrowseGroupFillHandler {
151
+ fill(session: BrowserCommandSession, subject: ProtectedFillForm, ready: AgentbrowseReadyGroupFillInput): Promise<Record<string, unknown> & {
152
+ success: boolean;
153
+ }>;
154
+ }
155
+ export interface AgentbrowseMatchResolver {
156
+ resolve(plan: AgentbrowseResolutionPlan | AgentbrowseGroupResolutionPlan): Promise<AgentbrowseResolvedResource>;
157
+ resolveBatch?(plans: ReadonlyArray<AgentbrowseResolutionPlan | AgentbrowseGroupResolutionPlan>): Promise<ReadonlyArray<AgentbrowseResolvedResource>>;
158
+ fill?(session: BrowserCommandSession, subject: ProtectedFillForm, ready: AgentbrowseReadyGroupFillInput): Promise<Record<string, unknown> & {
159
+ success: boolean;
160
+ }>;
161
+ }
162
+ export interface AgentbrowseResolveOptions {
163
+ with: AgentbrowseMatchResolver;
164
+ }
165
+ export interface AgentbrowseFillOptions {
166
+ resolver?: AgentbrowseMatchResolver | AgentbrowseGroupFillHandler;
167
+ }
168
+ export type AgentbrowseFillFailureResult = {
169
+ success: false;
170
+ failureSurface: 'contract';
171
+ error: 'match_no_match' | 'match_ambiguous' | 'match_resolver_required' | 'match_value_unavailable' | 'match_artifact_unavailable';
172
+ outcomeType: 'blocked' | 'unsupported';
173
+ message: string;
174
+ reason: string;
175
+ targetRef?: string;
176
+ fillRef?: string;
177
+ action: 'fill';
178
+ };
179
+ export type AgentbrowseFillResult = ActResult | AgentbrowseFillFailureResult | (Record<string, unknown> & {
180
+ success: boolean;
181
+ });
182
+ type MatchableTarget = {
183
+ ref: string;
184
+ } & Partial<Pick<TargetDescriptor, 'pageRef' | 'kind' | 'label' | 'displayLabel' | 'placeholder' | 'inputName' | 'inputType' | 'autocomplete' | 'selection' | 'structure' | 'capability'>> & {
185
+ context?: TargetDescriptor['context'] | string;
186
+ availability?: TargetDescriptor['availability'] | string;
187
+ lifecycle?: TargetDescriptor['lifecycle'];
188
+ allowedActions?: TargetDescriptor['allowedActions'];
189
+ };
190
+ type MatchableGroup = Pick<ProtectedFillForm, 'fillRef' | 'pageRef' | 'scopeRef' | 'purpose' | 'fields' | 'observedAt' | 'presence'>;
191
+ export declare function match(subject: MatchableTarget | MatchableGroup, options: AgentbrowseMatchOptions): Promise<AgentbrowseMatchResult>;
192
+ export declare function resolve(plan: ReadonlyArray<AgentbrowseMatchResult>, options: AgentbrowseResolveOptions): Promise<AgentbrowseMatchResult[]>;
193
+ export declare function resolve(plan: AgentbrowseMatchResult, options: AgentbrowseResolveOptions): Promise<AgentbrowseMatchResult>;
194
+ export declare function fill(session: BrowserCommandSession, subject: Pick<TargetDescriptor, 'ref'> | ProtectedFillForm, plan: AgentbrowseMatchResult, options?: AgentbrowseFillOptions): Promise<AgentbrowseFillResult>;
195
+ export {};
196
+ //# sourceMappingURL=match-resolve-fill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match-resolve-fill.d.ts","sourceRoot":"","sources":["../src/match-resolve-fill.ts"],"names":[],"mappings":"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"}