@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.
- package/LICENSE +24 -0
- package/README.md +252 -0
- package/dist/actions.d.ts +185 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +1120 -0
- package/dist/actions.js.map +1 -0
- package/dist/agent-runtime.d.ts +352 -0
- package/dist/agent-runtime.d.ts.map +1 -0
- package/dist/agent-runtime.js +1170 -0
- package/dist/agent-runtime.js.map +1 -0
- package/dist/agent.d.ts +164 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +408 -0
- package/dist/agent.js.map +1 -0
- package/dist/asserts/expect.d.ts +159 -0
- package/dist/asserts/expect.d.ts.map +1 -0
- package/dist/asserts/expect.js +547 -0
- package/dist/asserts/expect.js.map +1 -0
- package/dist/asserts/index.d.ts +58 -0
- package/dist/asserts/index.d.ts.map +1 -0
- package/dist/asserts/index.js +70 -0
- package/dist/asserts/index.js.map +1 -0
- package/dist/asserts/query.d.ts +199 -0
- package/dist/asserts/query.d.ts.map +1 -0
- package/dist/asserts/query.js +288 -0
- package/dist/asserts/query.js.map +1 -0
- package/dist/backends/actions.d.ts +119 -0
- package/dist/backends/actions.d.ts.map +1 -0
- package/dist/backends/actions.js +291 -0
- package/dist/backends/actions.js.map +1 -0
- package/dist/backends/browser-use-adapter.d.ts +131 -0
- package/dist/backends/browser-use-adapter.d.ts.map +1 -0
- package/dist/backends/browser-use-adapter.js +219 -0
- package/dist/backends/browser-use-adapter.js.map +1 -0
- package/dist/backends/cdp-backend.d.ts +66 -0
- package/dist/backends/cdp-backend.d.ts.map +1 -0
- package/dist/backends/cdp-backend.js +273 -0
- package/dist/backends/cdp-backend.js.map +1 -0
- package/dist/backends/index.d.ts +80 -0
- package/dist/backends/index.d.ts.map +1 -0
- package/dist/backends/index.js +101 -0
- package/dist/backends/index.js.map +1 -0
- package/dist/backends/protocol.d.ts +156 -0
- package/dist/backends/protocol.d.ts.map +1 -0
- package/dist/backends/protocol.js +16 -0
- package/dist/backends/protocol.js.map +1 -0
- package/dist/backends/sentience-context.d.ts +143 -0
- package/dist/backends/sentience-context.d.ts.map +1 -0
- package/dist/backends/sentience-context.js +359 -0
- package/dist/backends/sentience-context.js.map +1 -0
- package/dist/backends/snapshot.d.ts +188 -0
- package/dist/backends/snapshot.d.ts.map +1 -0
- package/dist/backends/snapshot.js +360 -0
- package/dist/backends/snapshot.js.map +1 -0
- package/dist/browser.d.ts +154 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +920 -0
- package/dist/browser.js.map +1 -0
- package/dist/canonicalization.d.ts +126 -0
- package/dist/canonicalization.d.ts.map +1 -0
- package/dist/canonicalization.js +161 -0
- package/dist/canonicalization.js.map +1 -0
- package/dist/captcha/strategies.d.ts +12 -0
- package/dist/captcha/strategies.d.ts.map +1 -0
- package/dist/captcha/strategies.js +43 -0
- package/dist/captcha/strategies.js.map +1 -0
- package/dist/captcha/types.d.ts +45 -0
- package/dist/captcha/types.d.ts.map +1 -0
- package/dist/captcha/types.js +12 -0
- package/dist/captcha/types.js.map +1 -0
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +422 -0
- package/dist/cli.js.map +1 -0
- package/dist/conversational-agent.d.ts +123 -0
- package/dist/conversational-agent.d.ts.map +1 -0
- package/dist/conversational-agent.js +341 -0
- package/dist/conversational-agent.js.map +1 -0
- package/dist/cursor-policy.d.ts +41 -0
- package/dist/cursor-policy.d.ts.map +1 -0
- package/dist/cursor-policy.js +81 -0
- package/dist/cursor-policy.js.map +1 -0
- package/dist/debugger.d.ts +28 -0
- package/dist/debugger.d.ts.map +1 -0
- package/dist/debugger.js +107 -0
- package/dist/debugger.js.map +1 -0
- package/dist/expect.d.ts +16 -0
- package/dist/expect.d.ts.map +1 -0
- package/dist/expect.js +67 -0
- package/dist/expect.js.map +1 -0
- package/dist/failure-artifacts.d.ts +95 -0
- package/dist/failure-artifacts.d.ts.map +1 -0
- package/dist/failure-artifacts.js +805 -0
- package/dist/failure-artifacts.js.map +1 -0
- package/dist/generator.d.ts +16 -0
- package/dist/generator.d.ts.map +1 -0
- package/dist/generator.js +205 -0
- package/dist/generator.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +160 -0
- package/dist/index.js.map +1 -0
- package/dist/inspector.d.ts +13 -0
- package/dist/inspector.d.ts.map +1 -0
- package/dist/inspector.js +153 -0
- package/dist/inspector.js.map +1 -0
- package/dist/llm-provider.d.ts +144 -0
- package/dist/llm-provider.d.ts.map +1 -0
- package/dist/llm-provider.js +460 -0
- package/dist/llm-provider.js.map +1 -0
- package/dist/ordinal.d.ts +90 -0
- package/dist/ordinal.d.ts.map +1 -0
- package/dist/ordinal.js +249 -0
- package/dist/ordinal.js.map +1 -0
- package/dist/overlay.d.ts +63 -0
- package/dist/overlay.d.ts.map +1 -0
- package/dist/overlay.js +102 -0
- package/dist/overlay.js.map +1 -0
- package/dist/protocols/browser-protocol.d.ts +79 -0
- package/dist/protocols/browser-protocol.d.ts.map +1 -0
- package/dist/protocols/browser-protocol.js +9 -0
- package/dist/protocols/browser-protocol.js.map +1 -0
- package/dist/query.d.ts +66 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +482 -0
- package/dist/query.js.map +1 -0
- package/dist/read.d.ts +47 -0
- package/dist/read.d.ts.map +1 -0
- package/dist/read.js +128 -0
- package/dist/read.js.map +1 -0
- package/dist/recorder.d.ts +44 -0
- package/dist/recorder.d.ts.map +1 -0
- package/dist/recorder.js +262 -0
- package/dist/recorder.js.map +1 -0
- package/dist/runtime-agent.d.ts +72 -0
- package/dist/runtime-agent.d.ts.map +1 -0
- package/dist/runtime-agent.js +357 -0
- package/dist/runtime-agent.js.map +1 -0
- package/dist/screenshot.d.ts +17 -0
- package/dist/screenshot.d.ts.map +1 -0
- package/dist/screenshot.js +40 -0
- package/dist/screenshot.js.map +1 -0
- package/dist/snapshot-diff.d.ts +23 -0
- package/dist/snapshot-diff.d.ts.map +1 -0
- package/dist/snapshot-diff.js +119 -0
- package/dist/snapshot-diff.js.map +1 -0
- package/dist/snapshot.d.ts +47 -0
- package/dist/snapshot.d.ts.map +1 -0
- package/dist/snapshot.js +358 -0
- package/dist/snapshot.js.map +1 -0
- package/dist/textSearch.d.ts +64 -0
- package/dist/textSearch.d.ts.map +1 -0
- package/dist/textSearch.js +113 -0
- package/dist/textSearch.js.map +1 -0
- package/dist/tools/context.d.ts +18 -0
- package/dist/tools/context.d.ts.map +1 -0
- package/dist/tools/context.js +40 -0
- package/dist/tools/context.js.map +1 -0
- package/dist/tools/defaults.d.ts +5 -0
- package/dist/tools/defaults.d.ts.map +1 -0
- package/dist/tools/defaults.js +368 -0
- package/dist/tools/defaults.js.map +1 -0
- package/dist/tools/filesystem.d.ts +12 -0
- package/dist/tools/filesystem.d.ts.map +1 -0
- package/dist/tools/filesystem.js +137 -0
- package/dist/tools/filesystem.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +15 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/registry.d.ts +38 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +100 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tracing/cloud-sink.d.ts +189 -0
- package/dist/tracing/cloud-sink.d.ts.map +1 -0
- package/dist/tracing/cloud-sink.js +1067 -0
- package/dist/tracing/cloud-sink.js.map +1 -0
- package/dist/tracing/index-schema.d.ts +231 -0
- package/dist/tracing/index-schema.d.ts.map +1 -0
- package/dist/tracing/index-schema.js +235 -0
- package/dist/tracing/index-schema.js.map +1 -0
- package/dist/tracing/index.d.ts +12 -0
- package/dist/tracing/index.d.ts.map +1 -0
- package/dist/tracing/index.js +28 -0
- package/dist/tracing/index.js.map +1 -0
- package/dist/tracing/indexer.d.ts +20 -0
- package/dist/tracing/indexer.d.ts.map +1 -0
- package/dist/tracing/indexer.js +347 -0
- package/dist/tracing/indexer.js.map +1 -0
- package/dist/tracing/jsonl-sink.d.ts +51 -0
- package/dist/tracing/jsonl-sink.d.ts.map +1 -0
- package/dist/tracing/jsonl-sink.js +329 -0
- package/dist/tracing/jsonl-sink.js.map +1 -0
- package/dist/tracing/sink.d.ts +25 -0
- package/dist/tracing/sink.d.ts.map +1 -0
- package/dist/tracing/sink.js +15 -0
- package/dist/tracing/sink.js.map +1 -0
- package/dist/tracing/tracer-factory.d.ts +102 -0
- package/dist/tracing/tracer-factory.d.ts.map +1 -0
- package/dist/tracing/tracer-factory.js +375 -0
- package/dist/tracing/tracer-factory.js.map +1 -0
- package/dist/tracing/tracer.d.ts +140 -0
- package/dist/tracing/tracer.d.ts.map +1 -0
- package/dist/tracing/tracer.js +336 -0
- package/dist/tracing/tracer.js.map +1 -0
- package/dist/tracing/types.d.ts +203 -0
- package/dist/tracing/types.d.ts.map +1 -0
- package/dist/tracing/types.js +8 -0
- package/dist/tracing/types.js.map +1 -0
- package/dist/types.d.ts +422 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/action-executor.d.ts +25 -0
- package/dist/utils/action-executor.d.ts.map +1 -0
- package/dist/utils/action-executor.js +121 -0
- package/dist/utils/action-executor.js.map +1 -0
- package/dist/utils/browser-evaluator.d.ts +76 -0
- package/dist/utils/browser-evaluator.d.ts.map +1 -0
- package/dist/utils/browser-evaluator.js +130 -0
- package/dist/utils/browser-evaluator.js.map +1 -0
- package/dist/utils/browser.d.ts +30 -0
- package/dist/utils/browser.d.ts.map +1 -0
- package/dist/utils/browser.js +75 -0
- package/dist/utils/browser.js.map +1 -0
- package/dist/utils/element-filter.d.ts +76 -0
- package/dist/utils/element-filter.d.ts.map +1 -0
- package/dist/utils/element-filter.js +195 -0
- package/dist/utils/element-filter.js.map +1 -0
- package/dist/utils/grid-utils.d.ts +37 -0
- package/dist/utils/grid-utils.d.ts.map +1 -0
- package/dist/utils/grid-utils.js +283 -0
- package/dist/utils/grid-utils.js.map +1 -0
- package/dist/utils/llm-interaction-handler.d.ts +41 -0
- package/dist/utils/llm-interaction-handler.d.ts.map +1 -0
- package/dist/utils/llm-interaction-handler.js +171 -0
- package/dist/utils/llm-interaction-handler.js.map +1 -0
- package/dist/utils/llm-response-builder.d.ts +56 -0
- package/dist/utils/llm-response-builder.d.ts.map +1 -0
- package/dist/utils/llm-response-builder.js +130 -0
- package/dist/utils/llm-response-builder.js.map +1 -0
- package/dist/utils/selector-utils.d.ts +12 -0
- package/dist/utils/selector-utils.d.ts.map +1 -0
- package/dist/utils/selector-utils.js +32 -0
- package/dist/utils/selector-utils.js.map +1 -0
- package/dist/utils/snapshot-event-builder.d.ts +28 -0
- package/dist/utils/snapshot-event-builder.d.ts.map +1 -0
- package/dist/utils/snapshot-event-builder.js +88 -0
- package/dist/utils/snapshot-event-builder.js.map +1 -0
- package/dist/utils/snapshot-processor.d.ts +27 -0
- package/dist/utils/snapshot-processor.d.ts.map +1 -0
- package/dist/utils/snapshot-processor.js +47 -0
- package/dist/utils/snapshot-processor.js.map +1 -0
- package/dist/utils/trace-event-builder.d.ts +122 -0
- package/dist/utils/trace-event-builder.d.ts.map +1 -0
- package/dist/utils/trace-event-builder.js +365 -0
- package/dist/utils/trace-event-builder.js.map +1 -0
- package/dist/utils/trace-file-manager.d.ts +70 -0
- package/dist/utils/trace-file-manager.d.ts.map +1 -0
- package/dist/utils/trace-file-manager.js +194 -0
- package/dist/utils/trace-file-manager.js.map +1 -0
- package/dist/utils/zod.d.ts +5 -0
- package/dist/utils/zod.d.ts.map +1 -0
- package/dist/utils/zod.js +80 -0
- package/dist/utils/zod.js.map +1 -0
- package/dist/utils.d.ts +8 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +13 -0
- package/dist/utils.js.map +1 -0
- package/dist/verification.d.ts +194 -0
- package/dist/verification.d.ts.map +1 -0
- package/dist/verification.js +530 -0
- package/dist/verification.js.map +1 -0
- package/dist/vision-executor.d.ts +18 -0
- package/dist/vision-executor.d.ts.map +1 -0
- package/dist/vision-executor.js +60 -0
- package/dist/vision-executor.js.map +1 -0
- package/dist/visual-agent.d.ts +120 -0
- package/dist/visual-agent.d.ts.map +1 -0
- package/dist/visual-agent.js +796 -0
- package/dist/visual-agent.js.map +1 -0
- package/dist/wait.d.ts +35 -0
- package/dist/wait.d.ts.map +1 -0
- package/dist/wait.js +76 -0
- package/dist/wait.js.map +1 -0
- package/package.json +94 -0
- package/spec/README.md +72 -0
- package/spec/SNAPSHOT_V1.md +208 -0
- package/spec/sdk-types.md +259 -0
- package/spec/snapshot.schema.json +148 -0
- package/src/extension/background.js +104 -0
- package/src/extension/content.js +162 -0
- package/src/extension/injected_api.js +1399 -0
- package/src/extension/manifest.json +36 -0
- package/src/extension/pkg/README.md +1340 -0
- package/src/extension/pkg/package.json +15 -0
- package/src/extension/pkg/sentience_core.d.ts +51 -0
- package/src/extension/pkg/sentience_core.js +371 -0
- package/src/extension/pkg/sentience_core_bg.wasm +0 -0
- package/src/extension/pkg/sentience_core_bg.wasm.d.ts +10 -0
- 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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"}
|
package/dist/utils.d.ts
ADDED
|
@@ -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"}
|