@predicatelabs/sdk 0.99.9

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 (302) hide show
  1. package/LICENSE +24 -0
  2. package/README.md +252 -0
  3. package/dist/actions.d.ts +185 -0
  4. package/dist/actions.d.ts.map +1 -0
  5. package/dist/actions.js +1120 -0
  6. package/dist/actions.js.map +1 -0
  7. package/dist/agent-runtime.d.ts +352 -0
  8. package/dist/agent-runtime.d.ts.map +1 -0
  9. package/dist/agent-runtime.js +1170 -0
  10. package/dist/agent-runtime.js.map +1 -0
  11. package/dist/agent.d.ts +164 -0
  12. package/dist/agent.d.ts.map +1 -0
  13. package/dist/agent.js +408 -0
  14. package/dist/agent.js.map +1 -0
  15. package/dist/asserts/expect.d.ts +159 -0
  16. package/dist/asserts/expect.d.ts.map +1 -0
  17. package/dist/asserts/expect.js +547 -0
  18. package/dist/asserts/expect.js.map +1 -0
  19. package/dist/asserts/index.d.ts +58 -0
  20. package/dist/asserts/index.d.ts.map +1 -0
  21. package/dist/asserts/index.js +70 -0
  22. package/dist/asserts/index.js.map +1 -0
  23. package/dist/asserts/query.d.ts +199 -0
  24. package/dist/asserts/query.d.ts.map +1 -0
  25. package/dist/asserts/query.js +288 -0
  26. package/dist/asserts/query.js.map +1 -0
  27. package/dist/backends/actions.d.ts +119 -0
  28. package/dist/backends/actions.d.ts.map +1 -0
  29. package/dist/backends/actions.js +291 -0
  30. package/dist/backends/actions.js.map +1 -0
  31. package/dist/backends/browser-use-adapter.d.ts +131 -0
  32. package/dist/backends/browser-use-adapter.d.ts.map +1 -0
  33. package/dist/backends/browser-use-adapter.js +219 -0
  34. package/dist/backends/browser-use-adapter.js.map +1 -0
  35. package/dist/backends/cdp-backend.d.ts +66 -0
  36. package/dist/backends/cdp-backend.d.ts.map +1 -0
  37. package/dist/backends/cdp-backend.js +273 -0
  38. package/dist/backends/cdp-backend.js.map +1 -0
  39. package/dist/backends/index.d.ts +80 -0
  40. package/dist/backends/index.d.ts.map +1 -0
  41. package/dist/backends/index.js +101 -0
  42. package/dist/backends/index.js.map +1 -0
  43. package/dist/backends/protocol.d.ts +156 -0
  44. package/dist/backends/protocol.d.ts.map +1 -0
  45. package/dist/backends/protocol.js +16 -0
  46. package/dist/backends/protocol.js.map +1 -0
  47. package/dist/backends/sentience-context.d.ts +143 -0
  48. package/dist/backends/sentience-context.d.ts.map +1 -0
  49. package/dist/backends/sentience-context.js +359 -0
  50. package/dist/backends/sentience-context.js.map +1 -0
  51. package/dist/backends/snapshot.d.ts +188 -0
  52. package/dist/backends/snapshot.d.ts.map +1 -0
  53. package/dist/backends/snapshot.js +360 -0
  54. package/dist/backends/snapshot.js.map +1 -0
  55. package/dist/browser.d.ts +154 -0
  56. package/dist/browser.d.ts.map +1 -0
  57. package/dist/browser.js +920 -0
  58. package/dist/browser.js.map +1 -0
  59. package/dist/canonicalization.d.ts +126 -0
  60. package/dist/canonicalization.d.ts.map +1 -0
  61. package/dist/canonicalization.js +161 -0
  62. package/dist/canonicalization.js.map +1 -0
  63. package/dist/captcha/strategies.d.ts +12 -0
  64. package/dist/captcha/strategies.d.ts.map +1 -0
  65. package/dist/captcha/strategies.js +43 -0
  66. package/dist/captcha/strategies.js.map +1 -0
  67. package/dist/captcha/types.d.ts +45 -0
  68. package/dist/captcha/types.d.ts.map +1 -0
  69. package/dist/captcha/types.js +12 -0
  70. package/dist/captcha/types.js.map +1 -0
  71. package/dist/cli.d.ts +5 -0
  72. package/dist/cli.d.ts.map +1 -0
  73. package/dist/cli.js +422 -0
  74. package/dist/cli.js.map +1 -0
  75. package/dist/conversational-agent.d.ts +123 -0
  76. package/dist/conversational-agent.d.ts.map +1 -0
  77. package/dist/conversational-agent.js +341 -0
  78. package/dist/conversational-agent.js.map +1 -0
  79. package/dist/cursor-policy.d.ts +41 -0
  80. package/dist/cursor-policy.d.ts.map +1 -0
  81. package/dist/cursor-policy.js +81 -0
  82. package/dist/cursor-policy.js.map +1 -0
  83. package/dist/debugger.d.ts +28 -0
  84. package/dist/debugger.d.ts.map +1 -0
  85. package/dist/debugger.js +107 -0
  86. package/dist/debugger.js.map +1 -0
  87. package/dist/expect.d.ts +16 -0
  88. package/dist/expect.d.ts.map +1 -0
  89. package/dist/expect.js +67 -0
  90. package/dist/expect.js.map +1 -0
  91. package/dist/failure-artifacts.d.ts +95 -0
  92. package/dist/failure-artifacts.d.ts.map +1 -0
  93. package/dist/failure-artifacts.js +805 -0
  94. package/dist/failure-artifacts.js.map +1 -0
  95. package/dist/generator.d.ts +16 -0
  96. package/dist/generator.d.ts.map +1 -0
  97. package/dist/generator.js +205 -0
  98. package/dist/generator.js.map +1 -0
  99. package/dist/index.d.ts +37 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +160 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/inspector.d.ts +13 -0
  104. package/dist/inspector.d.ts.map +1 -0
  105. package/dist/inspector.js +153 -0
  106. package/dist/inspector.js.map +1 -0
  107. package/dist/llm-provider.d.ts +144 -0
  108. package/dist/llm-provider.d.ts.map +1 -0
  109. package/dist/llm-provider.js +460 -0
  110. package/dist/llm-provider.js.map +1 -0
  111. package/dist/ordinal.d.ts +90 -0
  112. package/dist/ordinal.d.ts.map +1 -0
  113. package/dist/ordinal.js +249 -0
  114. package/dist/ordinal.js.map +1 -0
  115. package/dist/overlay.d.ts +63 -0
  116. package/dist/overlay.d.ts.map +1 -0
  117. package/dist/overlay.js +102 -0
  118. package/dist/overlay.js.map +1 -0
  119. package/dist/protocols/browser-protocol.d.ts +79 -0
  120. package/dist/protocols/browser-protocol.d.ts.map +1 -0
  121. package/dist/protocols/browser-protocol.js +9 -0
  122. package/dist/protocols/browser-protocol.js.map +1 -0
  123. package/dist/query.d.ts +66 -0
  124. package/dist/query.d.ts.map +1 -0
  125. package/dist/query.js +482 -0
  126. package/dist/query.js.map +1 -0
  127. package/dist/read.d.ts +47 -0
  128. package/dist/read.d.ts.map +1 -0
  129. package/dist/read.js +128 -0
  130. package/dist/read.js.map +1 -0
  131. package/dist/recorder.d.ts +44 -0
  132. package/dist/recorder.d.ts.map +1 -0
  133. package/dist/recorder.js +262 -0
  134. package/dist/recorder.js.map +1 -0
  135. package/dist/runtime-agent.d.ts +72 -0
  136. package/dist/runtime-agent.d.ts.map +1 -0
  137. package/dist/runtime-agent.js +357 -0
  138. package/dist/runtime-agent.js.map +1 -0
  139. package/dist/screenshot.d.ts +17 -0
  140. package/dist/screenshot.d.ts.map +1 -0
  141. package/dist/screenshot.js +40 -0
  142. package/dist/screenshot.js.map +1 -0
  143. package/dist/snapshot-diff.d.ts +23 -0
  144. package/dist/snapshot-diff.d.ts.map +1 -0
  145. package/dist/snapshot-diff.js +119 -0
  146. package/dist/snapshot-diff.js.map +1 -0
  147. package/dist/snapshot.d.ts +47 -0
  148. package/dist/snapshot.d.ts.map +1 -0
  149. package/dist/snapshot.js +358 -0
  150. package/dist/snapshot.js.map +1 -0
  151. package/dist/textSearch.d.ts +64 -0
  152. package/dist/textSearch.d.ts.map +1 -0
  153. package/dist/textSearch.js +113 -0
  154. package/dist/textSearch.js.map +1 -0
  155. package/dist/tools/context.d.ts +18 -0
  156. package/dist/tools/context.d.ts.map +1 -0
  157. package/dist/tools/context.js +40 -0
  158. package/dist/tools/context.js.map +1 -0
  159. package/dist/tools/defaults.d.ts +5 -0
  160. package/dist/tools/defaults.d.ts.map +1 -0
  161. package/dist/tools/defaults.js +368 -0
  162. package/dist/tools/defaults.js.map +1 -0
  163. package/dist/tools/filesystem.d.ts +12 -0
  164. package/dist/tools/filesystem.d.ts.map +1 -0
  165. package/dist/tools/filesystem.js +137 -0
  166. package/dist/tools/filesystem.js.map +1 -0
  167. package/dist/tools/index.d.ts +5 -0
  168. package/dist/tools/index.d.ts.map +1 -0
  169. package/dist/tools/index.js +15 -0
  170. package/dist/tools/index.js.map +1 -0
  171. package/dist/tools/registry.d.ts +38 -0
  172. package/dist/tools/registry.d.ts.map +1 -0
  173. package/dist/tools/registry.js +100 -0
  174. package/dist/tools/registry.js.map +1 -0
  175. package/dist/tracing/cloud-sink.d.ts +189 -0
  176. package/dist/tracing/cloud-sink.d.ts.map +1 -0
  177. package/dist/tracing/cloud-sink.js +1067 -0
  178. package/dist/tracing/cloud-sink.js.map +1 -0
  179. package/dist/tracing/index-schema.d.ts +231 -0
  180. package/dist/tracing/index-schema.d.ts.map +1 -0
  181. package/dist/tracing/index-schema.js +235 -0
  182. package/dist/tracing/index-schema.js.map +1 -0
  183. package/dist/tracing/index.d.ts +12 -0
  184. package/dist/tracing/index.d.ts.map +1 -0
  185. package/dist/tracing/index.js +28 -0
  186. package/dist/tracing/index.js.map +1 -0
  187. package/dist/tracing/indexer.d.ts +20 -0
  188. package/dist/tracing/indexer.d.ts.map +1 -0
  189. package/dist/tracing/indexer.js +347 -0
  190. package/dist/tracing/indexer.js.map +1 -0
  191. package/dist/tracing/jsonl-sink.d.ts +51 -0
  192. package/dist/tracing/jsonl-sink.d.ts.map +1 -0
  193. package/dist/tracing/jsonl-sink.js +329 -0
  194. package/dist/tracing/jsonl-sink.js.map +1 -0
  195. package/dist/tracing/sink.d.ts +25 -0
  196. package/dist/tracing/sink.d.ts.map +1 -0
  197. package/dist/tracing/sink.js +15 -0
  198. package/dist/tracing/sink.js.map +1 -0
  199. package/dist/tracing/tracer-factory.d.ts +102 -0
  200. package/dist/tracing/tracer-factory.d.ts.map +1 -0
  201. package/dist/tracing/tracer-factory.js +375 -0
  202. package/dist/tracing/tracer-factory.js.map +1 -0
  203. package/dist/tracing/tracer.d.ts +140 -0
  204. package/dist/tracing/tracer.d.ts.map +1 -0
  205. package/dist/tracing/tracer.js +336 -0
  206. package/dist/tracing/tracer.js.map +1 -0
  207. package/dist/tracing/types.d.ts +203 -0
  208. package/dist/tracing/types.d.ts.map +1 -0
  209. package/dist/tracing/types.js +8 -0
  210. package/dist/tracing/types.js.map +1 -0
  211. package/dist/types.d.ts +422 -0
  212. package/dist/types.d.ts.map +1 -0
  213. package/dist/types.js +6 -0
  214. package/dist/types.js.map +1 -0
  215. package/dist/utils/action-executor.d.ts +25 -0
  216. package/dist/utils/action-executor.d.ts.map +1 -0
  217. package/dist/utils/action-executor.js +121 -0
  218. package/dist/utils/action-executor.js.map +1 -0
  219. package/dist/utils/browser-evaluator.d.ts +76 -0
  220. package/dist/utils/browser-evaluator.d.ts.map +1 -0
  221. package/dist/utils/browser-evaluator.js +130 -0
  222. package/dist/utils/browser-evaluator.js.map +1 -0
  223. package/dist/utils/browser.d.ts +30 -0
  224. package/dist/utils/browser.d.ts.map +1 -0
  225. package/dist/utils/browser.js +75 -0
  226. package/dist/utils/browser.js.map +1 -0
  227. package/dist/utils/element-filter.d.ts +76 -0
  228. package/dist/utils/element-filter.d.ts.map +1 -0
  229. package/dist/utils/element-filter.js +195 -0
  230. package/dist/utils/element-filter.js.map +1 -0
  231. package/dist/utils/grid-utils.d.ts +37 -0
  232. package/dist/utils/grid-utils.d.ts.map +1 -0
  233. package/dist/utils/grid-utils.js +283 -0
  234. package/dist/utils/grid-utils.js.map +1 -0
  235. package/dist/utils/llm-interaction-handler.d.ts +41 -0
  236. package/dist/utils/llm-interaction-handler.d.ts.map +1 -0
  237. package/dist/utils/llm-interaction-handler.js +171 -0
  238. package/dist/utils/llm-interaction-handler.js.map +1 -0
  239. package/dist/utils/llm-response-builder.d.ts +56 -0
  240. package/dist/utils/llm-response-builder.d.ts.map +1 -0
  241. package/dist/utils/llm-response-builder.js +130 -0
  242. package/dist/utils/llm-response-builder.js.map +1 -0
  243. package/dist/utils/selector-utils.d.ts +12 -0
  244. package/dist/utils/selector-utils.d.ts.map +1 -0
  245. package/dist/utils/selector-utils.js +32 -0
  246. package/dist/utils/selector-utils.js.map +1 -0
  247. package/dist/utils/snapshot-event-builder.d.ts +28 -0
  248. package/dist/utils/snapshot-event-builder.d.ts.map +1 -0
  249. package/dist/utils/snapshot-event-builder.js +88 -0
  250. package/dist/utils/snapshot-event-builder.js.map +1 -0
  251. package/dist/utils/snapshot-processor.d.ts +27 -0
  252. package/dist/utils/snapshot-processor.d.ts.map +1 -0
  253. package/dist/utils/snapshot-processor.js +47 -0
  254. package/dist/utils/snapshot-processor.js.map +1 -0
  255. package/dist/utils/trace-event-builder.d.ts +122 -0
  256. package/dist/utils/trace-event-builder.d.ts.map +1 -0
  257. package/dist/utils/trace-event-builder.js +365 -0
  258. package/dist/utils/trace-event-builder.js.map +1 -0
  259. package/dist/utils/trace-file-manager.d.ts +70 -0
  260. package/dist/utils/trace-file-manager.d.ts.map +1 -0
  261. package/dist/utils/trace-file-manager.js +194 -0
  262. package/dist/utils/trace-file-manager.js.map +1 -0
  263. package/dist/utils/zod.d.ts +5 -0
  264. package/dist/utils/zod.d.ts.map +1 -0
  265. package/dist/utils/zod.js +80 -0
  266. package/dist/utils/zod.js.map +1 -0
  267. package/dist/utils.d.ts +8 -0
  268. package/dist/utils.d.ts.map +1 -0
  269. package/dist/utils.js +13 -0
  270. package/dist/utils.js.map +1 -0
  271. package/dist/verification.d.ts +194 -0
  272. package/dist/verification.d.ts.map +1 -0
  273. package/dist/verification.js +530 -0
  274. package/dist/verification.js.map +1 -0
  275. package/dist/vision-executor.d.ts +18 -0
  276. package/dist/vision-executor.d.ts.map +1 -0
  277. package/dist/vision-executor.js +60 -0
  278. package/dist/vision-executor.js.map +1 -0
  279. package/dist/visual-agent.d.ts +120 -0
  280. package/dist/visual-agent.d.ts.map +1 -0
  281. package/dist/visual-agent.js +796 -0
  282. package/dist/visual-agent.js.map +1 -0
  283. package/dist/wait.d.ts +35 -0
  284. package/dist/wait.d.ts.map +1 -0
  285. package/dist/wait.js +76 -0
  286. package/dist/wait.js.map +1 -0
  287. package/package.json +94 -0
  288. package/spec/README.md +72 -0
  289. package/spec/SNAPSHOT_V1.md +208 -0
  290. package/spec/sdk-types.md +259 -0
  291. package/spec/snapshot.schema.json +148 -0
  292. package/src/extension/background.js +104 -0
  293. package/src/extension/content.js +162 -0
  294. package/src/extension/injected_api.js +1399 -0
  295. package/src/extension/manifest.json +36 -0
  296. package/src/extension/pkg/README.md +1340 -0
  297. package/src/extension/pkg/package.json +15 -0
  298. package/src/extension/pkg/sentience_core.d.ts +51 -0
  299. package/src/extension/pkg/sentience_core.js +371 -0
  300. package/src/extension/pkg/sentience_core_bg.wasm +0 -0
  301. package/src/extension/pkg/sentience_core_bg.wasm.d.ts +10 -0
  302. package/src/extension/release.json +116 -0
@@ -0,0 +1,422 @@
1
+ /**
2
+ * TypeScript type definitions - matches spec/sdk-types.md
3
+ */
4
+ export interface BBox {
5
+ x: number;
6
+ y: number;
7
+ width: number;
8
+ height: number;
9
+ }
10
+ export interface Viewport {
11
+ width: number;
12
+ height: number;
13
+ }
14
+ export interface VisualCues {
15
+ is_primary: boolean;
16
+ background_color_name: string | null;
17
+ fallback_background_color_name?: string | null;
18
+ is_clickable: boolean;
19
+ }
20
+ export interface Element {
21
+ id: number;
22
+ role: string;
23
+ text: string | null;
24
+ importance: number;
25
+ bbox: BBox;
26
+ visual_cues: VisualCues;
27
+ in_viewport: boolean;
28
+ is_occluded: boolean;
29
+ z_index: number;
30
+ fused_rank_index?: number;
31
+ heuristic_index?: number;
32
+ ml_probability?: number;
33
+ ml_score?: number;
34
+ diff_status?: 'ADDED' | 'REMOVED' | 'MODIFIED' | 'MOVED';
35
+ center_x?: number;
36
+ center_y?: number;
37
+ doc_y?: number;
38
+ group_key?: string;
39
+ group_index?: number;
40
+ href?: string;
41
+ /** Nearby static text (best-effort, usually only for top-ranked elements) */
42
+ nearby_text?: string | null;
43
+ /** Best-effort accessible name/label for controls (distinct from visible text) */
44
+ name?: string | null;
45
+ /** Current value for inputs/textarea/select (PII-aware: may be omitted/redacted) */
46
+ value?: string | null;
47
+ /** Input type (e.g., "text", "email", "password") */
48
+ input_type?: string | null;
49
+ /** Whether value was redacted for privacy */
50
+ value_redacted?: boolean | null;
51
+ /** Normalized boolean states (best-effort) */
52
+ checked?: boolean | null;
53
+ disabled?: boolean | null;
54
+ expanded?: boolean | null;
55
+ /** Raw ARIA state strings (tri-state / debugging) */
56
+ aria_checked?: string | null;
57
+ aria_disabled?: string | null;
58
+ aria_expanded?: string | null;
59
+ in_dominant_group?: boolean;
60
+ layout?: LayoutHints;
61
+ }
62
+ export interface GridPosition {
63
+ /** 0-based row index */
64
+ row_index: number;
65
+ /** 0-based column index */
66
+ col_index: number;
67
+ /** ID of the row cluster (for distinguishing separate grids) */
68
+ cluster_id: number;
69
+ }
70
+ export interface LayoutHints {
71
+ /** Grid ID (maps to GridInfo.grid_id) - distinguishes multiple grids on same page */
72
+ /** Per feedback: Add grid_id to distinguish main feed + sidebar lists + nav links */
73
+ grid_id?: number | null;
74
+ /** Grid position within the grid (row_index, col_index) */
75
+ grid_pos?: GridPosition | null;
76
+ /** Inferred parent index in the original elements slice */
77
+ parent_index?: number | null;
78
+ /** Indices of children elements (optional to avoid payload bloat - container elements can have hundreds) */
79
+ /** Per feedback: Make optional/capped to prevent serializing large arrays */
80
+ children_indices?: number[] | null;
81
+ /** Confidence score for grid position assignment (0.0-1.0) */
82
+ grid_confidence: number;
83
+ /** Confidence score for parent-child containment (0.0-1.0) */
84
+ parent_confidence: number;
85
+ /** Optional: Page region (header/nav/main/aside/footer) - killer signal for ordinality + dominant group */
86
+ /** Per feedback: Optional but very useful for region detection */
87
+ region?: 'header' | 'nav' | 'main' | 'aside' | 'footer' | null;
88
+ /** Confidence score for region assignment (0.0-1.0) */
89
+ region_confidence: number;
90
+ }
91
+ export interface GridInfo {
92
+ /** The grid ID (matches grid_id in LayoutHints) */
93
+ grid_id: number;
94
+ /** Bounding box: x, y, width, height (document coordinates) */
95
+ bbox: BBox;
96
+ /** Number of rows in the grid */
97
+ row_count: number;
98
+ /** Number of columns in the grid */
99
+ col_count: number;
100
+ /** Total number of items in the grid */
101
+ item_count: number;
102
+ /** Confidence score (currently 1.0) */
103
+ confidence: number;
104
+ /** Optional inferred label (e.g., "product_grid", "search_results", "navigation") - best-effort heuristic, may be null */
105
+ label?: string | null;
106
+ /** Whether this grid is the dominant group (main content area) */
107
+ is_dominant?: boolean;
108
+ /** Z-index of this grid (max among elements in this grid) */
109
+ z_index?: number;
110
+ /** Global max z-index across ALL grids (for comparison) */
111
+ z_index_max?: number;
112
+ /** Whether this grid blocks interaction with content behind it */
113
+ blocks_interaction?: boolean;
114
+ /** Ratio of grid area to viewport area (0.0-1.0) */
115
+ viewport_coverage?: number;
116
+ }
117
+ export interface MlRerankTags {
118
+ repeated: boolean;
119
+ sponsored_ish: boolean;
120
+ non_sponsored: boolean;
121
+ pos: boolean;
122
+ occ: boolean;
123
+ vocc: boolean;
124
+ short: boolean;
125
+ action_ish: boolean;
126
+ nav_ish: boolean;
127
+ }
128
+ export interface MlRerankInfo {
129
+ enabled: boolean;
130
+ applied: boolean;
131
+ reason?: string | null;
132
+ candidate_count?: number | null;
133
+ top_probability?: number | null;
134
+ min_confidence?: number | null;
135
+ is_high_confidence?: boolean | null;
136
+ tags?: MlRerankTags | null;
137
+ error?: string | null;
138
+ }
139
+ export interface Snapshot {
140
+ status: 'success' | 'error';
141
+ timestamp?: string;
142
+ url: string;
143
+ viewport?: Viewport;
144
+ elements: Element[];
145
+ screenshot?: string;
146
+ screenshot_format?: 'png' | 'jpeg';
147
+ error?: string;
148
+ requires_license?: boolean;
149
+ dominant_group_key?: string;
150
+ diagnostics?: SnapshotDiagnostics;
151
+ /** True if a modal/overlay grid was detected */
152
+ modal_detected?: boolean;
153
+ /** Array of GridInfo for detected modal grids */
154
+ modal_grids?: GridInfo[];
155
+ /** ML rerank metadata (optional) */
156
+ ml_rerank?: MlRerankInfo;
157
+ }
158
+ export interface StepHookContext {
159
+ stepId: string;
160
+ stepIndex: number;
161
+ goal: string;
162
+ attempt: number;
163
+ url?: string | null;
164
+ success?: boolean;
165
+ outcome?: string | null;
166
+ error?: string | null;
167
+ }
168
+ export interface SnapshotDiagnosticsMetrics {
169
+ ready_state?: string | null;
170
+ quiet_ms?: number | null;
171
+ node_count?: number | null;
172
+ interactive_count?: number | null;
173
+ raw_elements_count?: number | null;
174
+ }
175
+ export interface CaptchaEvidence {
176
+ text_hits: string[];
177
+ selector_hits: string[];
178
+ iframe_src_hits: string[];
179
+ url_hits: string[];
180
+ }
181
+ export interface CaptchaDiagnostics {
182
+ detected: boolean;
183
+ provider_hint?: 'recaptcha' | 'hcaptcha' | 'turnstile' | 'arkose' | 'awswaf' | 'unknown' | null;
184
+ confidence: number;
185
+ evidence: CaptchaEvidence;
186
+ }
187
+ export interface SnapshotDiagnostics {
188
+ confidence?: number | null;
189
+ reasons?: string[];
190
+ metrics?: SnapshotDiagnosticsMetrics;
191
+ captcha?: CaptchaDiagnostics;
192
+ /** P1-01: forward-compatible vision recommendation signal (optional) */
193
+ requires_vision?: boolean | null;
194
+ requires_vision_reason?: string | null;
195
+ }
196
+ /**
197
+ * Metadata for a stored screenshot.
198
+ * Used by CloudTraceSink to track screenshots before upload.
199
+ */
200
+ export interface ScreenshotMetadata {
201
+ sequence: number;
202
+ format: 'png' | 'jpeg';
203
+ sizeBytes: number;
204
+ stepId: string | null;
205
+ filepath: string;
206
+ }
207
+ export interface ActionResult {
208
+ success: boolean;
209
+ duration_ms: number;
210
+ outcome?: 'navigated' | 'dom_updated' | 'no_change' | 'error';
211
+ url_changed?: boolean;
212
+ snapshot_after?: Snapshot;
213
+ /** Optional: action metadata (e.g., human-like cursor movement path) */
214
+ cursor?: Record<string, any>;
215
+ error?: {
216
+ code: string;
217
+ reason: string;
218
+ recovery_hint?: string;
219
+ };
220
+ }
221
+ export interface TabInfo {
222
+ tab_id: string;
223
+ url?: string | null;
224
+ title?: string | null;
225
+ is_active: boolean;
226
+ }
227
+ export interface TabListResult {
228
+ ok: boolean;
229
+ tabs: TabInfo[];
230
+ error?: string | null;
231
+ }
232
+ export interface TabOperationResult {
233
+ ok: boolean;
234
+ tab?: TabInfo | null;
235
+ error?: string | null;
236
+ }
237
+ export interface BackendCapabilities {
238
+ tabs: boolean;
239
+ evaluate_js: boolean;
240
+ downloads: boolean;
241
+ filesystem_tools: boolean;
242
+ keyboard: boolean;
243
+ permissions: boolean;
244
+ }
245
+ export interface EvaluateJsRequest {
246
+ code: string;
247
+ max_output_chars?: number;
248
+ truncate?: boolean;
249
+ }
250
+ export interface EvaluateJsResult {
251
+ ok: boolean;
252
+ value?: any;
253
+ text?: string | null;
254
+ truncated?: boolean;
255
+ error?: string | null;
256
+ }
257
+ export interface WaitResult {
258
+ found: boolean;
259
+ element?: Element;
260
+ duration_ms: number;
261
+ timeout: boolean;
262
+ }
263
+ export interface ExtractResult {
264
+ ok: boolean;
265
+ data?: any;
266
+ raw?: string | null;
267
+ error?: string | null;
268
+ }
269
+ export interface QuerySelectorObject {
270
+ role?: string;
271
+ text?: string;
272
+ name?: string;
273
+ value?: string;
274
+ checked?: boolean;
275
+ disabled?: boolean;
276
+ expanded?: boolean;
277
+ clickable?: boolean;
278
+ isPrimary?: boolean;
279
+ importance?: number | {
280
+ min?: number;
281
+ max?: number;
282
+ };
283
+ }
284
+ export type QuerySelector = string | QuerySelectorObject;
285
+ /**
286
+ * Cookie definition for storage state injection.
287
+ * Matches Playwright's cookie format for storage_state.
288
+ */
289
+ export interface Cookie {
290
+ name: string;
291
+ value: string;
292
+ domain: string;
293
+ path?: string;
294
+ expires?: number;
295
+ httpOnly?: boolean;
296
+ secure?: boolean;
297
+ sameSite?: 'Strict' | 'Lax' | 'None';
298
+ }
299
+ /**
300
+ * LocalStorage item for a specific origin.
301
+ * Playwright stores localStorage as an array of {name, value} objects.
302
+ */
303
+ export interface LocalStorageItem {
304
+ name: string;
305
+ value: string;
306
+ }
307
+ /**
308
+ * Storage state for a specific origin (localStorage).
309
+ * Represents localStorage data for a single domain.
310
+ */
311
+ export interface OriginStorage {
312
+ origin: string;
313
+ localStorage: LocalStorageItem[];
314
+ }
315
+ /**
316
+ * Complete browser storage state (cookies + localStorage).
317
+ * This is the format used by Playwright's storage_state() method.
318
+ * Can be saved to/loaded from JSON files for session injection.
319
+ */
320
+ export interface StorageState {
321
+ cookies: Cookie[];
322
+ origins: OriginStorage[];
323
+ }
324
+ /**
325
+ * Rectangle coordinates for text occurrence.
326
+ * Includes both absolute (page) and viewport-relative coordinates.
327
+ */
328
+ export interface TextRect {
329
+ /** Absolute X coordinate (page coordinate with scroll offset) */
330
+ x: number;
331
+ /** Absolute Y coordinate (page coordinate with scroll offset) */
332
+ y: number;
333
+ /** Rectangle width in pixels */
334
+ width: number;
335
+ /** Rectangle height in pixels */
336
+ height: number;
337
+ /** Absolute left position (same as x) */
338
+ left: number;
339
+ /** Absolute top position (same as y) */
340
+ top: number;
341
+ /** Absolute right position (x + width) */
342
+ right: number;
343
+ /** Absolute bottom position (y + height) */
344
+ bottom: number;
345
+ }
346
+ /**
347
+ * Viewport-relative rectangle coordinates (without scroll offset)
348
+ */
349
+ export interface ViewportRect {
350
+ /** Viewport-relative X coordinate */
351
+ x: number;
352
+ /** Viewport-relative Y coordinate */
353
+ y: number;
354
+ /** Rectangle width in pixels */
355
+ width: number;
356
+ /** Rectangle height in pixels */
357
+ height: number;
358
+ }
359
+ /**
360
+ * Context text surrounding a match
361
+ */
362
+ export interface TextContext {
363
+ /** Text before the match (up to 20 chars) */
364
+ before: string;
365
+ /** Text after the match (up to 20 chars) */
366
+ after: string;
367
+ }
368
+ /**
369
+ * A single text match with its rectangle and context
370
+ */
371
+ export interface TextMatch {
372
+ /** The matched text */
373
+ text: string;
374
+ /** Absolute rectangle coordinates (with scroll offset) */
375
+ rect: TextRect;
376
+ /** Viewport-relative rectangle (without scroll offset) */
377
+ viewport_rect: ViewportRect;
378
+ /** Surrounding text context */
379
+ context: TextContext;
380
+ /** Whether the match is currently visible in viewport */
381
+ in_viewport: boolean;
382
+ }
383
+ /**
384
+ * Result of findTextRect operation.
385
+ * Returns all occurrences of text on the page with their exact pixel coordinates.
386
+ */
387
+ export interface TextRectSearchResult {
388
+ status: 'success' | 'error';
389
+ /** The search text that was queried */
390
+ query?: string;
391
+ /** Whether search was case-sensitive */
392
+ case_sensitive?: boolean;
393
+ /** Whether whole-word matching was used */
394
+ whole_word?: boolean;
395
+ /** Number of matches found */
396
+ matches?: number;
397
+ /** List of text matches with coordinates */
398
+ results?: TextMatch[];
399
+ /** Current viewport dimensions */
400
+ viewport?: Viewport & {
401
+ scroll_x: number;
402
+ scroll_y: number;
403
+ };
404
+ /** Error message if status is 'error' */
405
+ error?: string;
406
+ }
407
+ /**
408
+ * Options for findTextRect operation
409
+ */
410
+ export interface FindTextRectOptions {
411
+ /** Text to search for (required) */
412
+ text: string;
413
+ /** Container element to search within (default: document.body) */
414
+ containerElement?: Element;
415
+ /** Case-sensitive search (default: false) */
416
+ caseSensitive?: boolean;
417
+ /** Match whole words only (default: false) */
418
+ wholeWord?: boolean;
419
+ /** Maximum number of results to return (default: 10) */
420
+ maxResults?: number;
421
+ }
422
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * TypeScript type definitions - matches spec/sdk-types.md
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * ActionExecutor - Executes actions and handles retries
3
+ *
4
+ * Extracted from SentienceAgent to improve separation of concerns
5
+ */
6
+ import { IBrowser } from '../protocols/browser-protocol';
7
+ import { Snapshot } from '../types';
8
+ import { AgentActResult } from '../agent';
9
+ /**
10
+ * ActionExecutor handles action parsing and execution
11
+ */
12
+ export declare class ActionExecutor {
13
+ private browser;
14
+ private verbose;
15
+ constructor(browser: IBrowser, verbose?: boolean);
16
+ /**
17
+ * Execute an action string (e.g., "CLICK(42)", "TYPE(5, \"text\")")
18
+ *
19
+ * @param actionStr - Action string to parse and execute
20
+ * @param snap - Current snapshot for element lookup
21
+ * @returns Action result
22
+ */
23
+ executeAction(actionStr: string, snap: Snapshot): Promise<AgentActResult>;
24
+ }
25
+ //# sourceMappingURL=action-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-executor.d.ts","sourceRoot":"","sources":["../../src/utils/action-executor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C;;GAEG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;gBADP,OAAO,EAAE,QAAQ,EACjB,OAAO,GAAE,OAAc;IAGjC;;;;;;OAMG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;CA+GhF"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ /**
3
+ * ActionExecutor - Executes actions and handles retries
4
+ *
5
+ * Extracted from SentienceAgent to improve separation of concerns
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ActionExecutor = void 0;
9
+ const actions_1 = require("../actions");
10
+ /**
11
+ * ActionExecutor handles action parsing and execution
12
+ */
13
+ class ActionExecutor {
14
+ constructor(browser, verbose = true) {
15
+ this.browser = browser;
16
+ this.verbose = verbose;
17
+ }
18
+ /**
19
+ * Execute an action string (e.g., "CLICK(42)", "TYPE(5, \"text\")")
20
+ *
21
+ * @param actionStr - Action string to parse and execute
22
+ * @param snap - Current snapshot for element lookup
23
+ * @returns Action result
24
+ */
25
+ async executeAction(actionStr, snap) {
26
+ // Parse action string
27
+ const actionMatch = actionStr.match(/^(\w+)\((.*)\)$/);
28
+ if (!actionMatch) {
29
+ throw new Error(`Unknown action format: ${actionStr}\n` +
30
+ `Expected: CLICK(id), TYPE(id, "text"), PRESS("key"), or FINISH()`);
31
+ }
32
+ const [, action, argsStr] = actionMatch;
33
+ const actionUpper = action.toUpperCase();
34
+ if (actionUpper === 'FINISH') {
35
+ return {
36
+ success: true,
37
+ action: 'finish',
38
+ outcome: 'Task completed',
39
+ durationMs: 0,
40
+ attempt: 0,
41
+ goal: '',
42
+ urlChanged: false,
43
+ };
44
+ }
45
+ if (actionUpper === 'CLICK') {
46
+ const elementId = parseInt(argsStr.trim(), 10);
47
+ if (isNaN(elementId)) {
48
+ throw new Error(`Invalid element ID in CLICK action: ${argsStr}`);
49
+ }
50
+ // Verify element exists
51
+ const element = snap.elements.find(el => el.id === elementId);
52
+ if (!element) {
53
+ throw new Error(`Element ${elementId} not found in snapshot`);
54
+ }
55
+ const result = await (0, actions_1.click)(this.browser, elementId);
56
+ return {
57
+ success: result.success,
58
+ action: 'click',
59
+ elementId,
60
+ cursor: result.cursor,
61
+ outcome: result.outcome || (result.success ? 'Clicked successfully' : 'Click failed'),
62
+ durationMs: result.duration_ms,
63
+ attempt: 0,
64
+ goal: '',
65
+ urlChanged: result.url_changed || false,
66
+ error: result.error?.reason,
67
+ };
68
+ }
69
+ if (actionUpper === 'TYPE') {
70
+ // Parse TYPE(id, "text") - support both single and double quotes, and flexible whitespace
71
+ const typeMatch = argsStr.match(/^(\d+)\s*,\s*["']([^"']+)["']$/);
72
+ if (!typeMatch) {
73
+ throw new Error(`Invalid TYPE format. Expected: TYPE(id, "text")`);
74
+ }
75
+ const [, elementIdStr, text] = typeMatch;
76
+ const elementId = parseInt(elementIdStr, 10);
77
+ // Verify element exists
78
+ const element = snap.elements.find(el => el.id === elementId);
79
+ if (!element) {
80
+ throw new Error(`Element ${elementId} not found in snapshot`);
81
+ }
82
+ const result = await (0, actions_1.typeText)(this.browser, elementId, text);
83
+ return {
84
+ success: result.success,
85
+ action: 'type',
86
+ elementId,
87
+ text,
88
+ outcome: result.outcome || (result.success ? 'Typed successfully' : 'Type failed'),
89
+ durationMs: result.duration_ms,
90
+ attempt: 0,
91
+ goal: '',
92
+ urlChanged: result.url_changed || false,
93
+ error: result.error?.reason,
94
+ };
95
+ }
96
+ if (actionUpper === 'PRESS') {
97
+ // Parse PRESS("key") - support both single and double quotes
98
+ const keyMatch = argsStr.match(/^["']([^"']+)["']$/);
99
+ if (!keyMatch) {
100
+ throw new Error(`Invalid PRESS format. Expected: PRESS("key")`);
101
+ }
102
+ const [, key] = keyMatch;
103
+ const result = await (0, actions_1.press)(this.browser, key);
104
+ return {
105
+ success: result.success,
106
+ action: 'press',
107
+ key,
108
+ outcome: result.outcome || (result.success ? 'Key pressed successfully' : 'Press failed'),
109
+ durationMs: result.duration_ms,
110
+ attempt: 0,
111
+ goal: '',
112
+ urlChanged: result.url_changed || false,
113
+ error: result.error?.reason,
114
+ };
115
+ }
116
+ throw new Error(`Unknown action: ${actionUpper}\n` +
117
+ `Expected: CLICK(id), TYPE(id, "text"), PRESS("key"), or FINISH()`);
118
+ }
119
+ }
120
+ exports.ActionExecutor = ActionExecutor;
121
+ //# sourceMappingURL=action-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-executor.js","sourceRoot":"","sources":["../../src/utils/action-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * BrowserEvaluator - Common browser evaluation patterns with standardized error handling
3
+ *
4
+ * This utility class extracts common page.evaluate() patterns to reduce code duplication
5
+ * and provide consistent error handling across snapshot, actions, wait, and read modules.
6
+ */
7
+ import { Page } from 'playwright';
8
+ export interface EvaluationOptions {
9
+ timeout?: number;
10
+ retries?: number;
11
+ onError?: (error: Error) => void;
12
+ }
13
+ /**
14
+ * BrowserEvaluator provides static methods for common browser evaluation patterns
15
+ */
16
+ export declare class BrowserEvaluator {
17
+ /**
18
+ * Execute a browser evaluation script with standardized error handling
19
+ *
20
+ * @param page - Playwright Page instance
21
+ * @param script - Function to execute in browser context
22
+ * @param args - Arguments to pass to the script
23
+ * @param options - Evaluation options (timeout, retries, error handler)
24
+ * @returns Promise resolving to the evaluation result
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const result = await BrowserEvaluator.evaluate(
29
+ * page,
30
+ * (opts) => (window as any).sentience.snapshot(opts),
31
+ * { limit: 50 }
32
+ * );
33
+ * ```
34
+ */
35
+ static evaluate<T>(page: Page, script: (args: any) => T | Promise<T>, args?: any, options?: EvaluationOptions): Promise<T>;
36
+ /**
37
+ * Execute a browser evaluation with navigation-aware error handling
38
+ * Navigation may destroy the context, so we handle that gracefully
39
+ *
40
+ * @param page - Playwright Page instance
41
+ * @param script - Function to execute in browser context
42
+ * @param args - Arguments to pass to the script
43
+ * @param fallbackValue - Value to return if evaluation fails due to navigation
44
+ * @returns Promise resolving to the evaluation result or fallback value
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * const success = await BrowserEvaluator.evaluateWithNavigationFallback(
49
+ * page,
50
+ * (id) => (window as any).sentience.click(id),
51
+ * elementId,
52
+ * true // Assume success if navigation destroyed context
53
+ * );
54
+ * ```
55
+ */
56
+ static evaluateWithNavigationFallback<T>(page: Page, script: (args: any) => T | Promise<T>, args?: any, fallbackValue?: T): Promise<T>;
57
+ /**
58
+ * Wait for a condition in the browser context with timeout
59
+ *
60
+ * @param page - Playwright Page instance
61
+ * @param condition - Function that returns a truthy value when condition is met
62
+ * @param timeout - Maximum time to wait in milliseconds
63
+ * @returns Promise resolving when condition is met
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * await BrowserEvaluator.waitForCondition(
68
+ * page,
69
+ * () => typeof (window as any).sentience !== 'undefined',
70
+ * 5000
71
+ * );
72
+ * ```
73
+ */
74
+ static waitForCondition(page: Page, condition: () => boolean | Promise<boolean>, timeout?: number): Promise<void>;
75
+ }
76
+ //# sourceMappingURL=browser-evaluator.d.ts.map