@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,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zodToJsonSchema = zodToJsonSchema;
4
+ const zod_1 = require("zod");
5
+ function unwrapSchema(schema) {
6
+ let current = schema;
7
+ let optional = false;
8
+ let nullable = false;
9
+ while (true) {
10
+ const typeName = current._def?.typeName;
11
+ if (typeName === zod_1.ZodFirstPartyTypeKind.ZodOptional) {
12
+ optional = true;
13
+ current = current._def.innerType;
14
+ continue;
15
+ }
16
+ if (typeName === zod_1.ZodFirstPartyTypeKind.ZodDefault) {
17
+ optional = true;
18
+ current = current._def.innerType;
19
+ continue;
20
+ }
21
+ if (typeName === zod_1.ZodFirstPartyTypeKind.ZodNullable) {
22
+ nullable = true;
23
+ current = current._def.innerType;
24
+ continue;
25
+ }
26
+ break;
27
+ }
28
+ return { schema: current, optional, nullable };
29
+ }
30
+ function zodToJsonSchema(schema) {
31
+ const { schema: base, nullable } = unwrapSchema(schema);
32
+ const typeName = base._def?.typeName;
33
+ let result;
34
+ switch (typeName) {
35
+ case zod_1.ZodFirstPartyTypeKind.ZodString:
36
+ result = { type: 'string' };
37
+ break;
38
+ case zod_1.ZodFirstPartyTypeKind.ZodNumber:
39
+ result = { type: 'number' };
40
+ break;
41
+ case zod_1.ZodFirstPartyTypeKind.ZodBoolean:
42
+ result = { type: 'boolean' };
43
+ break;
44
+ case zod_1.ZodFirstPartyTypeKind.ZodLiteral:
45
+ result = { const: base._def.value, type: typeof base._def.value };
46
+ break;
47
+ case zod_1.ZodFirstPartyTypeKind.ZodEnum:
48
+ result = { type: 'string', enum: base._def.values };
49
+ break;
50
+ case zod_1.ZodFirstPartyTypeKind.ZodArray:
51
+ result = { type: 'array', items: zodToJsonSchema(base._def.type) };
52
+ break;
53
+ case zod_1.ZodFirstPartyTypeKind.ZodObject: {
54
+ const shape = base._def.shape();
55
+ const properties = {};
56
+ const required = [];
57
+ for (const [key, value] of Object.entries(shape)) {
58
+ const { schema: inner, optional } = unwrapSchema(value);
59
+ properties[key] = zodToJsonSchema(inner);
60
+ if (!optional)
61
+ required.push(key);
62
+ }
63
+ result = { type: 'object', properties, required };
64
+ break;
65
+ }
66
+ case zod_1.ZodFirstPartyTypeKind.ZodUnion:
67
+ result = {
68
+ anyOf: base._def.options.map((opt) => zodToJsonSchema(opt)),
69
+ };
70
+ break;
71
+ default:
72
+ result = {};
73
+ break;
74
+ }
75
+ if (nullable) {
76
+ return { anyOf: [result, { type: 'null' }] };
77
+ }
78
+ return result;
79
+ }
80
+ //# sourceMappingURL=zod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../src/utils/zod.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Utility functions for Sentience SDK
3
+ *
4
+ * @deprecated This file is being migrated to src/utils/ directory.
5
+ * Use imports from src/utils/ instead.
6
+ */
7
+ export { saveStorageState } from './utils/browser';
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/utils.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /**
3
+ * Utility functions for Sentience SDK
4
+ *
5
+ * @deprecated This file is being migrated to src/utils/ directory.
6
+ * Use imports from src/utils/ instead.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.saveStorageState = void 0;
10
+ // Re-export for backward compatibility
11
+ var browser_1 = require("./utils/browser");
12
+ Object.defineProperty(exports, "saveStorageState", { enumerable: true, get: function () { return browser_1.saveStorageState; } });
13
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,uCAAuC;AACvC,2CAAmD;AAA1C,2GAAA,gBAAgB,OAAA"}
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Verification primitives for agent assertion loops.
3
+ *
4
+ * This module provides assertion predicates and outcome types for runtime verification
5
+ * in agent loops. Assertions evaluate against the current browser state (snapshot/url)
6
+ * and record results into the trace.
7
+ *
8
+ * Key concepts:
9
+ * - AssertOutcome: Result of evaluating an assertion
10
+ * - AssertContext: Context provided to assertion predicates (snapshot, url, stepId)
11
+ * - Predicate: Callable that takes context and returns outcome
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { urlMatches, exists, AssertContext } from './verification';
16
+ *
17
+ * // Create predicates
18
+ * const onSearchPage = urlMatches(/\/s\?k=/);
19
+ * const resultsLoaded = exists("text~'Results'");
20
+ *
21
+ * // Evaluate against context
22
+ * const ctx: AssertContext = { snapshot, url: "https://example.com/s?k=shoes" };
23
+ * const outcome = onSearchPage(ctx);
24
+ * console.log(outcome.passed); // true
25
+ * ```
26
+ */
27
+ import { Snapshot, QuerySelector } from './types';
28
+ /**
29
+ * Result of evaluating an assertion predicate.
30
+ */
31
+ export interface AssertOutcome {
32
+ /** Whether the assertion passed */
33
+ passed: boolean;
34
+ /** Human-readable explanation (especially useful when failed) */
35
+ reason: string;
36
+ /** Additional structured data for debugging/display */
37
+ details: Record<string, any>;
38
+ }
39
+ /**
40
+ * Context provided to assertion predicates.
41
+ *
42
+ * Provides access to current browser state without requiring
43
+ * the predicate to know about browser internals.
44
+ */
45
+ export interface AssertContext {
46
+ /** Current page snapshot (may be null if not taken) */
47
+ snapshot: Snapshot | null;
48
+ /** Current page URL */
49
+ url: string | null;
50
+ /** Current step identifier (for trace correlation) */
51
+ stepId: string | null;
52
+ /** Optional: non-snapshot state signals for verification (e.g., downloads). */
53
+ downloads?: Array<Record<string, any>> | null;
54
+ }
55
+ /**
56
+ * Type alias for assertion predicates.
57
+ * A predicate takes context and returns an outcome.
58
+ */
59
+ export type Predicate = (ctx: AssertContext) => AssertOutcome;
60
+ /**
61
+ * Predicate that passes if a browser download has completed.
62
+ *
63
+ * Notes:
64
+ * - This relies on `AssertContext.downloads` being populated by the runtime/browser.
65
+ */
66
+ export declare function downloadCompleted(filenameSubstring?: string): Predicate;
67
+ /**
68
+ * Create a predicate that checks if current URL matches a regex pattern.
69
+ *
70
+ * @param pattern - Regular expression pattern or string to match against URL
71
+ * @returns Predicate function that evaluates URL matching
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * const pred = urlMatches(/\/search\?q=/);
76
+ * const ctx = { snapshot: null, url: "https://example.com/search?q=shoes", stepId: null };
77
+ * const outcome = pred(ctx);
78
+ * console.log(outcome.passed); // true
79
+ * ```
80
+ */
81
+ export declare function urlMatches(pattern: string | RegExp): Predicate;
82
+ /**
83
+ * Create a predicate that checks if current URL contains a substring.
84
+ *
85
+ * @param substring - String to search for in URL
86
+ * @returns Predicate function that evaluates URL containment
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * const pred = urlContains("/cart");
91
+ * const ctx = { snapshot: null, url: "https://example.com/cart/checkout", stepId: null };
92
+ * const outcome = pred(ctx);
93
+ * console.log(outcome.passed); // true
94
+ * ```
95
+ */
96
+ export declare function urlContains(substring: string): Predicate;
97
+ /**
98
+ * Create a predicate that checks if elements matching selector exist.
99
+ *
100
+ * Uses the SDK's query engine to find matching elements.
101
+ *
102
+ * @param selector - Semantic selector string (e.g., "role=button text~'Sign in'")
103
+ * @returns Predicate function that evaluates element existence
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * const pred = exists("text~'Results'");
108
+ * // Will check if snapshot contains elements with "Results" in text
109
+ * ```
110
+ */
111
+ export declare function exists(selector: QuerySelector): Predicate;
112
+ /**
113
+ * Create a predicate that checks that NO elements match the selector.
114
+ *
115
+ * Useful for asserting that error messages, loading spinners, etc. are gone.
116
+ *
117
+ * @param selector - Semantic selector string
118
+ * @returns Predicate function that evaluates element non-existence
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * const pred = notExists("text~'Loading'");
123
+ * // Will pass if no elements contain "Loading" text
124
+ * ```
125
+ */
126
+ export declare function notExists(selector: QuerySelector): Predicate;
127
+ /**
128
+ * Create a predicate that checks the number of matching elements.
129
+ *
130
+ * @param selector - Semantic selector string
131
+ * @param options - Count constraints
132
+ * @returns Predicate function that evaluates element count
133
+ *
134
+ * @example
135
+ * ```typescript
136
+ * const pred = elementCount("role=button", { minCount: 1, maxCount: 5 });
137
+ * // Will pass if 1-5 buttons found
138
+ * ```
139
+ */
140
+ export declare function elementCount(selector: QuerySelector, options?: {
141
+ minCount?: number;
142
+ maxCount?: number;
143
+ }): Predicate;
144
+ /**
145
+ * Create a predicate that passes only if ALL sub-predicates pass.
146
+ *
147
+ * @param predicates - Predicate functions to combine with AND logic
148
+ * @returns Combined predicate
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * const pred = allOf(urlContains("/cart"), exists("text~'Checkout'"));
153
+ * // Will pass only if both conditions are true
154
+ * ```
155
+ */
156
+ export declare function allOf(...predicates: Predicate[]): Predicate;
157
+ /**
158
+ * Create a predicate that passes if ANY sub-predicate passes.
159
+ *
160
+ * @param predicates - Predicate functions to combine with OR logic
161
+ * @returns Combined predicate
162
+ *
163
+ * @example
164
+ * ```typescript
165
+ * const pred = anyOf(exists("text~'Success'"), exists("text~'Complete'"));
166
+ * // Will pass if either condition is true
167
+ * ```
168
+ */
169
+ export declare function anyOf(...predicates: Predicate[]): Predicate;
170
+ /**
171
+ * Create a predicate from a custom function.
172
+ *
173
+ * @param checkFn - Function that takes AssertContext and returns boolean
174
+ * @param label - Label for debugging/display
175
+ * @returns Predicate wrapping the custom function
176
+ *
177
+ * @example
178
+ * ```typescript
179
+ * const pred = custom(
180
+ * (ctx) => ctx.snapshot !== null && ctx.snapshot.elements.length > 10,
181
+ * "has_many_elements"
182
+ * );
183
+ * ```
184
+ */
185
+ export declare function custom(checkFn: (ctx: AssertContext) => boolean, label?: string): Predicate;
186
+ export declare function isEnabled(selector: QuerySelector): Predicate;
187
+ export declare function isDisabled(selector: QuerySelector): Predicate;
188
+ export declare function isChecked(selector: QuerySelector): Predicate;
189
+ export declare function isUnchecked(selector: QuerySelector): Predicate;
190
+ export declare function valueEquals(selector: QuerySelector, expected: string): Predicate;
191
+ export declare function valueContains(selector: QuerySelector, substring: string): Predicate;
192
+ export declare function isExpanded(selector: QuerySelector): Predicate;
193
+ export declare function isCollapsed(selector: QuerySelector): Predicate;
194
+ //# sourceMappingURL=verification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../src/verification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAUlD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,uBAAuB;IACvB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,sDAAsD;IACtD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,aAAa,CAAC;AAE9D;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAkBvE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY9D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAUxD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,CAwBzD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,CAwB5D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACrD,SAAS,CA0CX;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,CAoB3D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,CAwB3D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CACpB,OAAO,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,EACxC,KAAK,GAAE,MAAiB,GACvB,SAAS,CAiBX;AAMD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,CA4B5D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,CAmB7D;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,CAmB5D;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,CAmB9D;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAoBhF;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAoBnF;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,CAmB7D;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,CAmB9D"}