@xoxoai/checkmate 0.6.7 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/checkmate.js +13375 -0
- package/package.json +14 -100
- package/plugin/.claude-plugin/plugin.json +10 -0
- package/plugin/bin/checkmate.ts +3 -0
- package/plugin/contracts/finding.schema.json +78 -0
- package/plugin/contracts/gap.schema.json +56 -0
- package/plugin/contracts/plan-candidate.schema.json +103 -0
- package/plugin/contracts/plan-delta.schema.json +63 -0
- package/plugin/contracts/plan-patch.schema.json +116 -0
- package/plugin/contracts/plan-request.schema.json +108 -0
- package/plugin/contracts/plan.schema.json +313 -0
- package/plugin/contracts/profile.schema.json +154 -0
- package/plugin/contracts/response.schema.json +25 -0
- package/plugin/contracts/result.schema.json +410 -0
- package/plugin/dist/checkmate.js +13012 -0
- package/plugin/package.json +4 -0
- package/plugin/references/browser.md +35 -0
- package/plugin/references/http.md +30 -0
- package/plugin/references/workflow.md +122 -0
- package/plugin/skills/execute/SKILL.md +92 -0
- package/plugin/skills/plan/SKILL.md +94 -0
- package/plugin/skills/report/SKILL.md +28 -0
- package/plugin/skills/revise/SKILL.md +43 -0
- package/plugin/skills/setup/SKILL.md +82 -0
- package/plugin/skills/status/SKILL.md +20 -0
- package/plugin/skills/ui/SKILL.md +26 -0
- package/plugin/src/actor.ts +21 -0
- package/plugin/src/cli.ts +1133 -0
- package/plugin/src/contracts.ts +342 -0
- package/plugin/src/index.ts +52 -0
- package/plugin/src/plans.ts +1028 -0
- package/plugin/src/render.ts +544 -0
- package/plugin/src/runs.ts +868 -0
- package/plugin/src/store.ts +384 -0
- package/plugin/src/targets.ts +205 -0
- package/plugin/src/types.ts +319 -0
- package/plugin/src/ui/assets/client.js +501 -0
- package/plugin/src/ui/assets/favicon.svg +1 -0
- package/plugin/src/ui/assets/fonts/inter-OFL.txt +93 -0
- package/plugin/src/ui/assets/fonts/inter.woff2 +0 -0
- package/plugin/src/ui/assets/fonts/jetbrains-mono-OFL.txt +93 -0
- package/plugin/src/ui/assets/fonts/jetbrains-mono.woff2 +0 -0
- package/plugin/src/ui/assets/fonts/space-grotesk-OFL.txt +93 -0
- package/plugin/src/ui/assets/fonts/space-grotesk.woff2 +0 -0
- package/plugin/src/ui/assets/style.css +1926 -0
- package/plugin/src/ui/edit.ts +305 -0
- package/plugin/src/ui/forms.ts +209 -0
- package/plugin/src/ui/html.ts +130 -0
- package/plugin/src/ui/layout.ts +198 -0
- package/plugin/src/ui/lists.ts +645 -0
- package/plugin/src/ui/plan.ts +577 -0
- package/plugin/src/ui/run.ts +489 -0
- package/plugin/src/ui/server.ts +684 -0
- package/plugin/src/validators.d.ts +13 -0
- package/plugin/src/validators.js +1 -0
- package/plugin/src/views.ts +839 -0
- package/LICENSE +0 -21
- package/README.md +0 -294
- package/bin/checkmate.js +0 -13
- package/dist/ai/client.d.ts +0 -64
- package/dist/ai/client.d.ts.map +0 -1
- package/dist/ai/client.js +0 -313
- package/dist/ai/client.js.map +0 -1
- package/dist/ai/message-handler.d.ts +0 -9
- package/dist/ai/message-handler.d.ts.map +0 -1
- package/dist/ai/message-handler.js +0 -50
- package/dist/ai/message-handler.js.map +0 -1
- package/dist/ai/message-history.d.ts +0 -17
- package/dist/ai/message-history.d.ts.map +0 -1
- package/dist/ai/message-history.js +0 -45
- package/dist/ai/message-history.js.map +0 -1
- package/dist/ai/prompts.d.ts +0 -4
- package/dist/ai/prompts.d.ts.map +0 -1
- package/dist/ai/prompts.js +0 -24
- package/dist/ai/prompts.js.map +0 -1
- package/dist/ai/rate-limit-policy.d.ts +0 -9
- package/dist/ai/rate-limit-policy.d.ts.map +0 -1
- package/dist/ai/rate-limit-policy.js +0 -34
- package/dist/ai/rate-limit-policy.js.map +0 -1
- package/dist/ai/tool-response-handler.d.ts +0 -16
- package/dist/ai/tool-response-handler.d.ts.map +0 -1
- package/dist/ai/tool-response-handler.js +0 -85
- package/dist/ai/tool-response-handler.js.map +0 -1
- package/dist/ai/turn-processor.d.ts +0 -34
- package/dist/ai/turn-processor.d.ts.map +0 -1
- package/dist/ai/turn-processor.js +0 -107
- package/dist/ai/turn-processor.js.map +0 -1
- package/dist/api/allocate-run-identity.d.ts +0 -8
- package/dist/api/allocate-run-identity.d.ts.map +0 -1
- package/dist/api/allocate-run-identity.js +0 -10
- package/dist/api/allocate-run-identity.js.map +0 -1
- package/dist/api/execute-prepared-run.d.ts +0 -22
- package/dist/api/execute-prepared-run.d.ts.map +0 -1
- package/dist/api/execute-prepared-run.js +0 -184
- package/dist/api/execute-prepared-run.js.map +0 -1
- package/dist/api/index.d.ts +0 -25
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/index.js +0 -69
- package/dist/api/index.js.map +0 -1
- package/dist/api/prepare-run.d.ts +0 -44
- package/dist/api/prepare-run.d.ts.map +0 -1
- package/dist/api/prepare-run.js +0 -261
- package/dist/api/prepare-run.js.map +0 -1
- package/dist/cli/diagnostic-relay.d.ts +0 -6
- package/dist/cli/diagnostic-relay.d.ts.map +0 -1
- package/dist/cli/diagnostic-relay.js +0 -6
- package/dist/cli/diagnostic-relay.js.map +0 -1
- package/dist/cli/main.d.ts +0 -21
- package/dist/cli/main.d.ts.map +0 -1
- package/dist/cli/main.js +0 -166
- package/dist/cli/main.js.map +0 -1
- package/dist/cli/protocol.d.ts +0 -57
- package/dist/cli/protocol.d.ts.map +0 -1
- package/dist/cli/protocol.js +0 -116
- package/dist/cli/protocol.js.map +0 -1
- package/dist/cli/reconcile-result.d.ts +0 -13
- package/dist/cli/reconcile-result.d.ts.map +0 -1
- package/dist/cli/reconcile-result.js +0 -300
- package/dist/cli/reconcile-result.js.map +0 -1
- package/dist/cli/run-parent.d.ts +0 -37
- package/dist/cli/run-parent.d.ts.map +0 -1
- package/dist/cli/run-parent.js +0 -491
- package/dist/cli/run-parent.js.map +0 -1
- package/dist/cli/signals.d.ts +0 -36
- package/dist/cli/signals.d.ts.map +0 -1
- package/dist/cli/signals.js +0 -85
- package/dist/cli/signals.js.map +0 -1
- package/dist/cli/static-commands.d.ts +0 -11
- package/dist/cli/static-commands.d.ts.map +0 -1
- package/dist/cli/static-commands.js +0 -83
- package/dist/cli/static-commands.js.map +0 -1
- package/dist/cli/worker-stream-guard.d.ts +0 -20
- package/dist/cli/worker-stream-guard.d.ts.map +0 -1
- package/dist/cli/worker-stream-guard.js +0 -41
- package/dist/cli/worker-stream-guard.js.map +0 -1
- package/dist/cli/worker.d.ts +0 -3
- package/dist/cli/worker.d.ts.map +0 -1
- package/dist/cli/worker.js +0 -111
- package/dist/cli/worker.js.map +0 -1
- package/dist/config/ingestion.d.ts +0 -58
- package/dist/config/ingestion.d.ts.map +0 -1
- package/dist/config/ingestion.js +0 -283
- package/dist/config/ingestion.js.map +0 -1
- package/dist/config/manifest.d.ts +0 -20
- package/dist/config/manifest.d.ts.map +0 -1
- package/dist/config/manifest.js +0 -91
- package/dist/config/manifest.js.map +0 -1
- package/dist/config/model-egress.d.ts +0 -10
- package/dist/config/model-egress.d.ts.map +0 -1
- package/dist/config/model-egress.js +0 -62
- package/dist/config/model-egress.js.map +0 -1
- package/dist/config/package-resolution.d.ts +0 -4
- package/dist/config/package-resolution.d.ts.map +0 -1
- package/dist/config/package-resolution.js +0 -24
- package/dist/config/package-resolution.js.map +0 -1
- package/dist/config/policy.d.ts +0 -44
- package/dist/config/policy.d.ts.map +0 -1
- package/dist/config/policy.js +0 -141
- package/dist/config/policy.js.map +0 -1
- package/dist/config/record.d.ts +0 -4
- package/dist/config/record.d.ts.map +0 -1
- package/dist/config/record.js +0 -10
- package/dist/config/record.js.map +0 -1
- package/dist/config/secrets.d.ts +0 -11
- package/dist/config/secrets.d.ts.map +0 -1
- package/dist/config/secrets.js +0 -42
- package/dist/config/secrets.js.map +0 -1
- package/dist/contracts/diagnostics.d.ts +0 -4
- package/dist/contracts/diagnostics.d.ts.map +0 -1
- package/dist/contracts/diagnostics.js +0 -31
- package/dist/contracts/diagnostics.js.map +0 -1
- package/dist/contracts/serialize.d.ts +0 -2
- package/dist/contracts/serialize.d.ts.map +0 -1
- package/dist/contracts/serialize.js +0 -90
- package/dist/contracts/serialize.js.map +0 -1
- package/dist/contracts/types.d.ts +0 -316
- package/dist/contracts/types.d.ts.map +0 -1
- package/dist/contracts/types.js +0 -74
- package/dist/contracts/types.js.map +0 -1
- package/dist/contracts/validator.d.ts +0 -8
- package/dist/contracts/validator.d.ts.map +0 -1
- package/dist/contracts/validator.js +0 -71
- package/dist/contracts/validator.js.map +0 -1
- package/dist/driver.d.ts +0 -97
- package/dist/driver.d.ts.map +0 -1
- package/dist/driver.js +0 -24
- package/dist/driver.js.map +0 -1
- package/dist/drivers/descriptor.d.ts +0 -15
- package/dist/drivers/descriptor.d.ts.map +0 -1
- package/dist/drivers/descriptor.js +0 -122
- package/dist/drivers/descriptor.js.map +0 -1
- package/dist/drivers/loader.d.ts +0 -18
- package/dist/drivers/loader.d.ts.map +0 -1
- package/dist/drivers/loader.js +0 -97
- package/dist/drivers/loader.js.map +0 -1
- package/dist/drivers/web/checkmate-driver.json +0 -47
- package/dist/drivers/web/index.d.ts +0 -6
- package/dist/drivers/web/index.d.ts.map +0 -1
- package/dist/drivers/web/index.js +0 -27
- package/dist/drivers/web/index.js.map +0 -1
- package/dist/drivers/web/session.d.ts +0 -25
- package/dist/drivers/web/session.d.ts.map +0 -1
- package/dist/drivers/web/session.js +0 -132
- package/dist/drivers/web/session.js.map +0 -1
- package/dist/drivers/web/tools/network-request-recorder.d.ts +0 -46
- package/dist/drivers/web/tools/network-request-recorder.d.ts.map +0 -1
- package/dist/drivers/web/tools/network-request-recorder.js +0 -164
- package/dist/drivers/web/tools/network-request-recorder.js.map +0 -1
- package/dist/drivers/web/tools/screenshot-service.d.ts +0 -10
- package/dist/drivers/web/tools/screenshot-service.d.ts.map +0 -1
- package/dist/drivers/web/tools/screenshot-service.js +0 -23
- package/dist/drivers/web/tools/screenshot-service.js.map +0 -1
- package/dist/drivers/web/tools/snapshot-filter/index.d.ts +0 -4
- package/dist/drivers/web/tools/snapshot-filter/index.d.ts.map +0 -1
- package/dist/drivers/web/tools/snapshot-filter/index.js +0 -4
- package/dist/drivers/web/tools/snapshot-filter/index.js.map +0 -1
- package/dist/drivers/web/tools/snapshot-filter/semantic-scorer.d.ts +0 -15
- package/dist/drivers/web/tools/snapshot-filter/semantic-scorer.d.ts.map +0 -1
- package/dist/drivers/web/tools/snapshot-filter/semantic-scorer.js +0 -99
- package/dist/drivers/web/tools/snapshot-filter/semantic-scorer.js.map +0 -1
- package/dist/drivers/web/tools/snapshot-filter/snapshot-filter.d.ts +0 -5
- package/dist/drivers/web/tools/snapshot-filter/snapshot-filter.d.ts.map +0 -1
- package/dist/drivers/web/tools/snapshot-filter/snapshot-filter.js +0 -56
- package/dist/drivers/web/tools/snapshot-filter/snapshot-filter.js.map +0 -1
- package/dist/drivers/web/tools/snapshot-filter/tree-reconstructor.d.ts +0 -3
- package/dist/drivers/web/tools/snapshot-filter/tree-reconstructor.d.ts.map +0 -1
- package/dist/drivers/web/tools/snapshot-filter/tree-reconstructor.js +0 -85
- package/dist/drivers/web/tools/snapshot-filter/tree-reconstructor.js.map +0 -1
- package/dist/drivers/web/tools/snapshot-service.d.ts +0 -31
- package/dist/drivers/web/tools/snapshot-service.d.ts.map +0 -1
- package/dist/drivers/web/tools/snapshot-service.js +0 -96
- package/dist/drivers/web/tools/snapshot-service.js.map +0 -1
- package/dist/drivers/web/tools/tool.d.ts +0 -76
- package/dist/drivers/web/tools/tool.d.ts.map +0 -1
- package/dist/drivers/web/tools/tool.js +0 -562
- package/dist/drivers/web/tools/tool.js.map +0 -1
- package/dist/drivers/web/tools/transient-state-tracker.d.ts +0 -26
- package/dist/drivers/web/tools/transient-state-tracker.d.ts.map +0 -1
- package/dist/drivers/web/tools/transient-state-tracker.js +0 -301
- package/dist/drivers/web/tools/transient-state-tracker.js.map +0 -1
- package/dist/drivers/web/tools/types.d.ts +0 -11
- package/dist/drivers/web/tools/types.d.ts.map +0 -1
- package/dist/drivers/web/tools/types.js +0 -2
- package/dist/drivers/web/tools/types.js.map +0 -1
- package/dist/evidence/atomic-file.d.ts +0 -23
- package/dist/evidence/atomic-file.d.ts.map +0 -1
- package/dist/evidence/atomic-file.js +0 -104
- package/dist/evidence/atomic-file.js.map +0 -1
- package/dist/evidence/layout.d.ts +0 -30
- package/dist/evidence/layout.d.ts.map +0 -1
- package/dist/evidence/layout.js +0 -152
- package/dist/evidence/layout.js.map +0 -1
- package/dist/evidence/retention.d.ts +0 -5
- package/dist/evidence/retention.d.ts.map +0 -1
- package/dist/evidence/retention.js +0 -10
- package/dist/evidence/retention.js.map +0 -1
- package/dist/evidence/store.d.ts +0 -101
- package/dist/evidence/store.d.ts.map +0 -1
- package/dist/evidence/store.js +0 -375
- package/dist/evidence/store.js.map +0 -1
- package/dist/evidence/terminal-finalizer.d.ts +0 -19
- package/dist/evidence/terminal-finalizer.d.ts.map +0 -1
- package/dist/evidence/terminal-finalizer.js +0 -56
- package/dist/evidence/terminal-finalizer.js.map +0 -1
- package/dist/index.d.ts +0 -9
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -12
- package/dist/index.js.map +0 -1
- package/dist/logging/invocation-logger.d.ts +0 -4
- package/dist/logging/invocation-logger.d.ts.map +0 -1
- package/dist/logging/invocation-logger.js +0 -25
- package/dist/logging/invocation-logger.js.map +0 -1
- package/dist/logging/level-logger.d.ts +0 -11
- package/dist/logging/level-logger.d.ts.map +0 -1
- package/dist/logging/level-logger.js +0 -82
- package/dist/logging/level-logger.js.map +0 -1
- package/dist/logging/types.d.ts +0 -8
- package/dist/logging/types.d.ts.map +0 -1
- package/dist/logging/types.js +0 -7
- package/dist/logging/types.js.map +0 -1
- package/dist/redaction/diagnostic-sanitizer.d.ts +0 -7
- package/dist/redaction/diagnostic-sanitizer.d.ts.map +0 -1
- package/dist/redaction/diagnostic-sanitizer.js +0 -42
- package/dist/redaction/diagnostic-sanitizer.js.map +0 -1
- package/dist/redaction/redactor.d.ts +0 -40
- package/dist/redaction/redactor.d.ts.map +0 -1
- package/dist/redaction/redactor.js +0 -176
- package/dist/redaction/redactor.js.map +0 -1
- package/dist/redaction/scrub.d.ts +0 -29
- package/dist/redaction/scrub.d.ts.map +0 -1
- package/dist/redaction/scrub.js +0 -54
- package/dist/redaction/scrub.js.map +0 -1
- package/dist/runtime/config.d.ts +0 -16
- package/dist/runtime/config.d.ts.map +0 -1
- package/dist/runtime/config.js +0 -2
- package/dist/runtime/config.js.map +0 -1
- package/dist/runtime/driver-boundary.d.ts +0 -16
- package/dist/runtime/driver-boundary.d.ts.map +0 -1
- package/dist/runtime/driver-boundary.js +0 -71
- package/dist/runtime/driver-boundary.js.map +0 -1
- package/dist/runtime/driver-session.d.ts +0 -9
- package/dist/runtime/driver-session.d.ts.map +0 -1
- package/dist/runtime/driver-session.js +0 -64
- package/dist/runtime/driver-session.js.map +0 -1
- package/dist/runtime/internal-step-evidence.d.ts +0 -30
- package/dist/runtime/internal-step-evidence.d.ts.map +0 -1
- package/dist/runtime/internal-step-evidence.js +0 -82
- package/dist/runtime/internal-step-evidence.js.map +0 -1
- package/dist/runtime/result-adapter.d.ts +0 -9
- package/dist/runtime/result-adapter.d.ts.map +0 -1
- package/dist/runtime/result-adapter.js +0 -77
- package/dist/runtime/result-adapter.js.map +0 -1
- package/dist/runtime/runner.d.ts +0 -43
- package/dist/runtime/runner.d.ts.map +0 -1
- package/dist/runtime/runner.js +0 -72
- package/dist/runtime/runner.js.map +0 -1
- package/dist/runtime/scenario-control.d.ts +0 -40
- package/dist/runtime/scenario-control.d.ts.map +0 -1
- package/dist/runtime/scenario-control.js +0 -94
- package/dist/runtime/scenario-control.js.map +0 -1
- package/dist/runtime/scenario-runner.d.ts +0 -41
- package/dist/runtime/scenario-runner.d.ts.map +0 -1
- package/dist/runtime/scenario-runner.js +0 -274
- package/dist/runtime/scenario-runner.js.map +0 -1
- package/dist/runtime/scenario-state.d.ts +0 -55
- package/dist/runtime/scenario-state.d.ts.map +0 -1
- package/dist/runtime/scenario-state.js +0 -128
- package/dist/runtime/scenario-state.js.map +0 -1
- package/dist/runtime/step-execution.d.ts +0 -27
- package/dist/runtime/step-execution.d.ts.map +0 -1
- package/dist/runtime/step-execution.js +0 -143
- package/dist/runtime/step-execution.js.map +0 -1
- package/dist/runtime/text.d.ts +0 -10
- package/dist/runtime/text.d.ts.map +0 -1
- package/dist/runtime/text.js +0 -25
- package/dist/runtime/text.js.map +0 -1
- package/dist/runtime/types.d.ts +0 -53
- package/dist/runtime/types.d.ts.map +0 -1
- package/dist/runtime/types.js +0 -2
- package/dist/runtime/types.js.map +0 -1
- package/dist/runtime/usage-tracker.d.ts +0 -37
- package/dist/runtime/usage-tracker.d.ts.map +0 -1
- package/dist/runtime/usage-tracker.js +0 -110
- package/dist/runtime/usage-tracker.js.map +0 -1
- package/dist/tools/define-agent-tool.d.ts +0 -20
- package/dist/tools/define-agent-tool.d.ts.map +0 -1
- package/dist/tools/define-agent-tool.js +0 -30
- package/dist/tools/define-agent-tool.js.map +0 -1
- package/dist/tools/dispatcher.d.ts +0 -19
- package/dist/tools/dispatcher.d.ts.map +0 -1
- package/dist/tools/dispatcher.js +0 -91
- package/dist/tools/dispatcher.js.map +0 -1
- package/dist/tools/loop-detector.d.ts +0 -27
- package/dist/tools/loop-detector.d.ts.map +0 -1
- package/dist/tools/loop-detector.js +0 -76
- package/dist/tools/loop-detector.js.map +0 -1
- package/dist/tools/registry.d.ts +0 -19
- package/dist/tools/registry.d.ts.map +0 -1
- package/dist/tools/registry.js +0 -54
- package/dist/tools/registry.js.map +0 -1
- package/dist/tools/step/result-tool.d.ts +0 -7
- package/dist/tools/step/result-tool.d.ts.map +0 -1
- package/dist/tools/step/result-tool.js +0 -34
- package/dist/tools/step/result-tool.js.map +0 -1
- package/dist/tools/tool-contract.d.ts +0 -3
- package/dist/tools/tool-contract.d.ts.map +0 -1
- package/dist/tools/tool-contract.js +0 -2
- package/dist/tools/tool-contract.js.map +0 -1
- package/dist/tools/types.d.ts +0 -210
- package/dist/tools/types.d.ts.map +0 -1
- package/dist/tools/types.js +0 -4
- package/dist/tools/types.js.map +0 -1
- package/docs/CLI.md +0 -59
- package/docs/CONFIGURATION.md +0 -105
- package/docs/DRIVERS.md +0 -79
- package/docs/EVIDENCE.md +0 -64
- package/schemas/checkmate-config.v1.json +0 -176
- package/schemas/describe-result.v1.json +0 -414
- package/schemas/driver-descriptor.v1.json +0 -66
- package/schemas/run-request.v1.json +0 -67
- package/schemas/run-result.v1.json +0 -333
- package/schemas/validation-result.v1.json +0 -86
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tree-reconstructor.d.ts","sourceRoot":"","sources":["../../../../../src/drivers/web/tools/snapshot-filter/tree-reconstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,SAAS,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEtF,wBAAgB,eAAe,CAAC,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,SAAS,CAOrG"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
export function reconstructTree(originalJson, selectedElements) {
|
|
2
|
-
if (selectedElements.length === 0) {
|
|
3
|
-
return originalJson;
|
|
4
|
-
}
|
|
5
|
-
const allPaths = collectAllRequiredPaths(selectedElements);
|
|
6
|
-
return buildFilteredTree(originalJson, allPaths, []) ?? originalJson;
|
|
7
|
-
}
|
|
8
|
-
function collectAllRequiredPaths(elements) {
|
|
9
|
-
const paths = new Set();
|
|
10
|
-
for (const element of elements) {
|
|
11
|
-
for (let i = 0; i <= element.path.length; i++) {
|
|
12
|
-
paths.add(JSON.stringify(element.path.slice(0, i)));
|
|
13
|
-
}
|
|
14
|
-
paths.add(JSON.stringify(element.path));
|
|
15
|
-
}
|
|
16
|
-
return paths;
|
|
17
|
-
}
|
|
18
|
-
function buildFilteredTree(value, requiredPaths, currentPath) {
|
|
19
|
-
if (!isPathOrAncestorRequired(currentPath, requiredPaths)) {
|
|
20
|
-
return undefined;
|
|
21
|
-
}
|
|
22
|
-
if (value === null || typeof value !== 'object') {
|
|
23
|
-
return value;
|
|
24
|
-
}
|
|
25
|
-
if (Array.isArray(value)) {
|
|
26
|
-
return buildFilteredArray(value, requiredPaths, currentPath);
|
|
27
|
-
}
|
|
28
|
-
return buildFilteredObject(value, requiredPaths, currentPath);
|
|
29
|
-
}
|
|
30
|
-
function isPathOrAncestorRequired(path, requiredPaths) {
|
|
31
|
-
const pathKey = JSON.stringify(path);
|
|
32
|
-
if (requiredPaths.has(pathKey)) {
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
for (const requiredPath of requiredPaths) {
|
|
36
|
-
const parsed = JSON.parse(requiredPath);
|
|
37
|
-
if (isAncestorOf(path, parsed)) {
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
function isAncestorOf(potentialAncestor, descendant) {
|
|
44
|
-
return (potentialAncestor.length < descendant.length &&
|
|
45
|
-
potentialAncestor.every((segment, index) => segment === descendant[index]));
|
|
46
|
-
}
|
|
47
|
-
function buildFilteredArray(value, requiredPaths, currentPath) {
|
|
48
|
-
const filteredItems = [];
|
|
49
|
-
for (let index = 0; index < value.length; index++) {
|
|
50
|
-
const filteredChild = buildFilteredTree(value[index], requiredPaths, [...currentPath, index]);
|
|
51
|
-
if (filteredChild !== undefined) {
|
|
52
|
-
filteredItems.push(filteredChild);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if (filteredItems.length === 0) {
|
|
56
|
-
return includeDirectChildren(requiredPaths, currentPath) ? value : undefined;
|
|
57
|
-
}
|
|
58
|
-
return filteredItems;
|
|
59
|
-
}
|
|
60
|
-
function buildFilteredObject(value, requiredPaths, currentPath) {
|
|
61
|
-
const filteredObject = {};
|
|
62
|
-
let hasContent = false;
|
|
63
|
-
for (const key of Object.keys(value)) {
|
|
64
|
-
const filteredChild = buildFilteredTree(value[key], requiredPaths, [...currentPath, key]);
|
|
65
|
-
if (filteredChild !== undefined) {
|
|
66
|
-
filteredObject[key] = filteredChild;
|
|
67
|
-
hasContent = true;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
if (!hasContent && includeDirectChildren(requiredPaths, currentPath)) {
|
|
71
|
-
return value;
|
|
72
|
-
}
|
|
73
|
-
return hasContent ? filteredObject : undefined;
|
|
74
|
-
}
|
|
75
|
-
function includeDirectChildren(requiredPaths, currentPath) {
|
|
76
|
-
const currentPathKey = JSON.stringify(currentPath);
|
|
77
|
-
for (const requiredPath of requiredPaths) {
|
|
78
|
-
const parsed = JSON.parse(requiredPath);
|
|
79
|
-
if (parsed.length === currentPath.length && currentPathKey === requiredPath) {
|
|
80
|
-
return true;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return false;
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=tree-reconstructor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tree-reconstructor.js","sourceRoot":"","sources":["../../../../../src/drivers/web/tools/snapshot-filter/tree-reconstructor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,YAAuB,EAAE,gBAAiC;IACzF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,YAAY,CAAA;IACpB,CAAC;IAED,MAAM,QAAQ,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAA;IAC1D,OAAO,iBAAiB,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,YAAY,CAAA;AACrE,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAyB;IACzD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAE/B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACpD,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,KAAK,CAAA;AACb,CAAC;AAED,SAAS,iBAAiB,CACzB,KAAgB,EAChB,aAA0B,EAC1B,WAAgC;IAEhC,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC;QAC3D,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,OAAO,KAAK,CAAA;IACb,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,CAAC,CAAA;IAC7D,CAAC;IAED,OAAO,mBAAmB,CAAC,KAAmB,EAAE,aAAa,EAAE,WAAW,CAAC,CAAA;AAC5E,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAyB,EAAE,aAA0B;IACtF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACpC,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAwB,CAAA;QAC9D,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAA;QACZ,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAA;AACb,CAAC;AAED,SAAS,YAAY,CAAC,iBAAsC,EAAE,UAA+B;IAC5F,OAAO,CACN,iBAAiB,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM;QAC5C,iBAAiB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAC1E,CAAA;AACF,CAAC;AAED,SAAS,kBAAkB,CAC1B,KAAgB,EAChB,aAA0B,EAC1B,WAAgC;IAEhC,MAAM,aAAa,GAAgB,EAAE,CAAA;IAErC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACnD,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC,CAAA;QAC7F,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YACjC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAClC,CAAC;IACF,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,qBAAqB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7E,CAAC;IAED,OAAO,aAAa,CAAA;AACrB,CAAC;AAED,SAAS,mBAAmB,CAC3B,KAAiB,EACjB,aAA0B,EAC1B,WAAgC;IAEhC,MAAM,cAAc,GAAe,EAAE,CAAA;IACrC,IAAI,UAAU,GAAG,KAAK,CAAA;IAEtB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC,CAAA;QACzF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YACjC,cAAc,CAAC,GAAG,CAAC,GAAG,aAAa,CAAA;YACnC,UAAU,GAAG,IAAI,CAAA;QAClB,CAAC;IACF,CAAC;IAED,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC;QACtE,OAAO,KAAK,CAAA;IACb,CAAC;IAED,OAAO,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAA;AAC/C,CAAC;AAED,SAAS,qBAAqB,CAAC,aAA0B,EAAE,WAAgC;IAC1F,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IAElD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAwB,CAAA;QAC9D,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;YAC7E,OAAO,IAAI,CAAA;QACZ,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAA;AACb,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { Page } from 'playwright';
|
|
2
|
-
import type { RuntimeLogger } from '../../../logging/types.js';
|
|
3
|
-
import type { BrowserStepIntent, WebToolSettings } from './types.js';
|
|
4
|
-
export type BrowserSnapshot = string | null;
|
|
5
|
-
export interface SnapshotServiceOptions {
|
|
6
|
-
skipFilter?: boolean;
|
|
7
|
-
}
|
|
8
|
-
export declare class SnapshotService {
|
|
9
|
-
private readonly page;
|
|
10
|
-
private readonly config;
|
|
11
|
-
private readonly runtimeLogger;
|
|
12
|
-
private readonly step?;
|
|
13
|
-
private readonly options;
|
|
14
|
-
constructor(page: Page | null, config: WebToolSettings, runtimeLogger: RuntimeLogger, step?: BrowserStepIntent, options?: SnapshotServiceOptions);
|
|
15
|
-
/**
|
|
16
|
-
* Waits for two consecutive reads of the page's HTML to match before a snapshot is captured.
|
|
17
|
-
*
|
|
18
|
-
* This is an ordinary wait, not a Playwright assertion: `expect.poll` would record every
|
|
19
|
-
* rejected attempt as its own failed child step, so a page that settles on its second read
|
|
20
|
-
* would render as a green step containing a red ✗ that had nothing to do with the step's
|
|
21
|
-
* actual outcome. An ordinary wait — the same thing `page.waitForLoadState` already does for
|
|
22
|
-
* navigation — reports only a plain error if the page genuinely never settles.
|
|
23
|
-
*/
|
|
24
|
-
private waitForStableHtml;
|
|
25
|
-
private getHeader;
|
|
26
|
-
private minify;
|
|
27
|
-
private redactAds;
|
|
28
|
-
private compress;
|
|
29
|
-
get(): Promise<BrowserSnapshot>;
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=snapshot-service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-service.d.ts","sourceRoot":"","sources":["../../../../src/drivers/web/tools/snapshot-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEpE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,IAAI,CAAA;AAE3C,MAAM,WAAW,sBAAsB;IACtC,UAAU,CAAC,EAAE,OAAO,CAAA;CACpB;AAKD,qBAAa,eAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAJP,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,aAAa,EAC5B,IAAI,CAAC,EAAE,iBAAiB,EACxB,OAAO,GAAE,sBAA2B;IAGtD;;;;;;;;OAQG;YACW,iBAAiB;YAgBjB,SAAS;IAQvB,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,SAAS;YAkBH,QAAQ;IAUhB,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;CAerC"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { parse } from 'yaml';
|
|
2
|
-
import { filterSnapshot } from './snapshot-filter/index.js';
|
|
3
|
-
const STABILITY_POLL_INTERVAL_MS = 500;
|
|
4
|
-
const STABILITY_TIMEOUT_MS = 30_000;
|
|
5
|
-
export class SnapshotService {
|
|
6
|
-
page;
|
|
7
|
-
config;
|
|
8
|
-
runtimeLogger;
|
|
9
|
-
step;
|
|
10
|
-
options;
|
|
11
|
-
constructor(page, config, runtimeLogger, step, options = {}) {
|
|
12
|
-
this.page = page;
|
|
13
|
-
this.config = config;
|
|
14
|
-
this.runtimeLogger = runtimeLogger;
|
|
15
|
-
this.step = step;
|
|
16
|
-
this.options = options;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Waits for two consecutive reads of the page's HTML to match before a snapshot is captured.
|
|
20
|
-
*
|
|
21
|
-
* This is an ordinary wait, not a Playwright assertion: `expect.poll` would record every
|
|
22
|
-
* rejected attempt as its own failed child step, so a page that settles on its second read
|
|
23
|
-
* would render as a green step containing a red ✗ that had nothing to do with the step's
|
|
24
|
-
* actual outcome. An ordinary wait — the same thing `page.waitForLoadState` already does for
|
|
25
|
-
* navigation — reports only a plain error if the page genuinely never settles.
|
|
26
|
-
*/
|
|
27
|
-
async waitForStableHtml(page) {
|
|
28
|
-
const deadline = Date.now() + STABILITY_TIMEOUT_MS;
|
|
29
|
-
for (;;) {
|
|
30
|
-
const before = await page.locator('html').innerHTML();
|
|
31
|
-
await page.waitForTimeout(STABILITY_POLL_INTERVAL_MS);
|
|
32
|
-
const after = await page.locator('html').innerHTML();
|
|
33
|
-
if (before === after) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
if (Date.now() >= deadline) {
|
|
37
|
-
throw new Error(`page snapshot did not stabilize within ${STABILITY_TIMEOUT_MS}ms`);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
async getHeader() {
|
|
42
|
-
if (!this.page) {
|
|
43
|
-
throw new Error('Page is not initialized');
|
|
44
|
-
}
|
|
45
|
-
return ['page data:', `url: '${this.page.url()}'`, `title: '${await this.page.title()}'`].join('\n');
|
|
46
|
-
}
|
|
47
|
-
minify(snapshot) {
|
|
48
|
-
return snapshot
|
|
49
|
-
.replaceAll(' ', '')
|
|
50
|
-
.replaceAll('"', '')
|
|
51
|
-
.replaceAll('\\', '')
|
|
52
|
-
.replaceAll(' [', '[')
|
|
53
|
-
.replaceAll('] ', ']');
|
|
54
|
-
}
|
|
55
|
-
redactAds(snapshot) {
|
|
56
|
-
const adPatterns = [
|
|
57
|
-
/googleadservices\.com/i,
|
|
58
|
-
/doubleclick\.net/i,
|
|
59
|
-
/googlesyndication\.com/i,
|
|
60
|
-
/googleads/i,
|
|
61
|
-
/pagead\/aclk/i,
|
|
62
|
-
/adurl=/i,
|
|
63
|
-
/\bgad_source\b/i,
|
|
64
|
-
/\bgclid\b/i,
|
|
65
|
-
];
|
|
66
|
-
const snapshotUrlWrapperRegex = /\{\/url:([^}]+)\}/g;
|
|
67
|
-
return snapshot.replace(snapshotUrlWrapperRegex, (match, urlContent) => {
|
|
68
|
-
return adPatterns.some((pattern) => pattern.test(urlContent)) ? '{/url:ADVERT}' : match;
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
async compress(snapshot) {
|
|
72
|
-
const snapshotTree = parse(snapshot)?.[0] ?? { state: 'page is blank - navigate to a relevant page url' };
|
|
73
|
-
const shouldSkipFilter = this.options.skipFilter || !this.config.snapshotFilter;
|
|
74
|
-
const processed = shouldSkipFilter
|
|
75
|
-
? snapshotTree
|
|
76
|
-
: await filterSnapshot(snapshotTree, this.runtimeLogger, this.step, this.config.snapshotTopPercent);
|
|
77
|
-
const minifiedSnapshot = `page snapshot:\n${this.minify(JSON.stringify(processed))}`;
|
|
78
|
-
return this.redactAds(`${await this.getHeader()}\n${minifiedSnapshot}`);
|
|
79
|
-
}
|
|
80
|
-
async get() {
|
|
81
|
-
try {
|
|
82
|
-
if (!this.page) {
|
|
83
|
-
throw new Error('Page is not initialized');
|
|
84
|
-
}
|
|
85
|
-
await this.waitForStableHtml(this.page);
|
|
86
|
-
const rawSnapshot = await this.page.ariaSnapshot({ mode: 'ai' });
|
|
87
|
-
const compressedSnapshot = await this.compress(rawSnapshot);
|
|
88
|
-
this.runtimeLogger.debug(`created aria page snapshot:\n${compressedSnapshot}`);
|
|
89
|
-
return compressedSnapshot;
|
|
90
|
-
}
|
|
91
|
-
catch (error) {
|
|
92
|
-
throw new Error(`Failed to create aria page snapshot:\n${error}`, { cause: error });
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=snapshot-service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-service.js","sourceRoot":"","sources":["../../../../src/drivers/web/tools/snapshot-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import type { BrowserContext, Page } from 'playwright';
|
|
2
|
-
import type { RuntimeLogger } from '../../../logging/types.js';
|
|
3
|
-
import { AgentTool, AgentToolResponse } from '../../../tools/types.js';
|
|
4
|
-
import type { BrowserStepIntent, WebToolSettings } from './types.js';
|
|
5
|
-
type BrowserInputElement = {
|
|
6
|
-
ref: string;
|
|
7
|
-
text: string;
|
|
8
|
-
name: string;
|
|
9
|
-
clear: boolean;
|
|
10
|
-
select: boolean;
|
|
11
|
-
};
|
|
12
|
-
export declare const BrowserTool: {
|
|
13
|
-
readonly TOOL_NAVIGATE: "browser_navigate";
|
|
14
|
-
readonly TOOL_CLICK_OR_HOVER: "browser_click_or_hover";
|
|
15
|
-
readonly TOOL_SET_DIALOG_RESPONSE: "browser_set_dialog_response";
|
|
16
|
-
readonly TOOL_DRAG: "browser_drag";
|
|
17
|
-
readonly TOOL_UPLOAD: "browser_upload";
|
|
18
|
-
readonly TOOL_TYPE_OR_SELECT: "browser_type_or_select";
|
|
19
|
-
readonly TOOL_PRESS_KEY: "browser_press_key";
|
|
20
|
-
readonly TOOL_SNAPSHOT: "browser_snapshot";
|
|
21
|
-
readonly TOOL_WAIT: "browser_wait";
|
|
22
|
-
readonly TOOL_LIST_TABS: "browser_list_tabs";
|
|
23
|
-
readonly TOOL_SELECT_TAB: "browser_select_tab";
|
|
24
|
-
readonly TOOL_CLOSE_TAB: "browser_close_tab";
|
|
25
|
-
readonly TOOL_NETWORK_REQUESTS: "browser_network_requests";
|
|
26
|
-
readonly TOOL_NETWORK_REQUEST: "browser_network_request";
|
|
27
|
-
};
|
|
28
|
-
export declare class BrowserToolRuntime {
|
|
29
|
-
private readonly config;
|
|
30
|
-
private readonly runtimeLogger;
|
|
31
|
-
private readonly browserContext;
|
|
32
|
-
private activePage;
|
|
33
|
-
private nextPageNumber;
|
|
34
|
-
private readonly pageIds;
|
|
35
|
-
private readonly pagesById;
|
|
36
|
-
private pendingDialogHandlingIntent;
|
|
37
|
-
private readonly networkRecorder;
|
|
38
|
-
constructor(page: Page, config: WebToolSettings, runtimeLogger: RuntimeLogger);
|
|
39
|
-
getActivePage(): Page;
|
|
40
|
-
getBrowserContext(): BrowserContext;
|
|
41
|
-
listNetworkRequests(includeStatic: boolean): string;
|
|
42
|
-
inspectNetworkRequest(sequence: number, part: 'detail' | 'request-body' | 'response-body'): Promise<string>;
|
|
43
|
-
dispose(): void;
|
|
44
|
-
listPages(): Promise<string>;
|
|
45
|
-
selectPage(pageId: string, step: BrowserStepIntent): Promise<AgentToolResponse | string>;
|
|
46
|
-
closePage(pageId: string | null | undefined, step: BrowserStepIntent): Promise<AgentToolResponse | string>;
|
|
47
|
-
setDialogResponse(action: 'accept' | 'dismiss', promptText?: string): string;
|
|
48
|
-
navigateToUrl(url: string, step: BrowserStepIntent): Promise<AgentToolResponse | string>;
|
|
49
|
-
clickElement(ref: string, hover: boolean, step: BrowserStepIntent): Promise<AgentToolResponse | string>;
|
|
50
|
-
dragElement(sourceRef: string, targetRef: string, step: BrowserStepIntent): Promise<AgentToolResponse | string>;
|
|
51
|
-
uploadFiles(ref: string, filePaths: string[], step: BrowserStepIntent): Promise<AgentToolResponse | string>;
|
|
52
|
-
typeOrSelectInElement(elements: BrowserInputElement[], step: BrowserStepIntent): Promise<AgentToolResponse | string>;
|
|
53
|
-
pressKey(key: string, step: BrowserStepIntent): Promise<AgentToolResponse | string>;
|
|
54
|
-
captureCurrentSnapshot(step: BrowserStepIntent, options?: {
|
|
55
|
-
skipFilter?: boolean;
|
|
56
|
-
}): Promise<string>;
|
|
57
|
-
wait(seconds: number, step: BrowserStepIntent): Promise<AgentToolResponse | string>;
|
|
58
|
-
private consumePendingDialogHandlingIntent;
|
|
59
|
-
private registerExistingPages;
|
|
60
|
-
private registerPage;
|
|
61
|
-
ensureActivePage(): Promise<Page>;
|
|
62
|
-
private openPages;
|
|
63
|
-
private findOpenPage;
|
|
64
|
-
private setActivePage;
|
|
65
|
-
private selectFallbackActivePage;
|
|
66
|
-
private selectNewestFallbackActivePage;
|
|
67
|
-
private setNewestFallbackActivePage;
|
|
68
|
-
private selectNewPageOpenedAfter;
|
|
69
|
-
private isPageClosed;
|
|
70
|
-
private safeTitle;
|
|
71
|
-
private waitForPageEventLoop;
|
|
72
|
-
private wrapWithTracker;
|
|
73
|
-
}
|
|
74
|
-
export declare function createBrowserTools(runtime: BrowserToolRuntime): AgentTool[];
|
|
75
|
-
export {};
|
|
76
|
-
//# sourceMappingURL=tool.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../../src/drivers/web/tools/tool.ts"],"names":[],"mappings":"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"}
|