@xoxoai/checkmate 0.4.28 → 0.5.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/README.md +259 -224
- package/bin/checkmate.js +1 -1
- package/dist/ai/client.d.ts +45 -30
- package/dist/ai/client.d.ts.map +1 -1
- package/dist/ai/client.js +198 -129
- package/dist/ai/client.js.map +1 -1
- package/dist/ai/message-handler.d.ts +5 -7
- package/dist/ai/message-handler.d.ts.map +1 -1
- package/dist/ai/message-handler.js +38 -21
- package/dist/ai/message-handler.js.map +1 -1
- package/dist/ai/message-history.d.ts +4 -6
- package/dist/ai/message-history.d.ts.map +1 -1
- package/dist/ai/message-history.js +18 -21
- package/dist/ai/message-history.js.map +1 -1
- package/dist/ai/rate-limit-policy.d.ts +5 -3
- package/dist/ai/rate-limit-policy.d.ts.map +1 -1
- package/dist/ai/rate-limit-policy.js +24 -7
- package/dist/ai/rate-limit-policy.js.map +1 -1
- package/dist/ai/tool-response-handler.d.ts +11 -16
- package/dist/ai/tool-response-handler.d.ts.map +1 -1
- package/dist/ai/tool-response-handler.js +59 -28
- package/dist/ai/tool-response-handler.js.map +1 -1
- package/dist/ai/turn-processor.d.ts +34 -0
- package/dist/ai/turn-processor.d.ts.map +1 -0
- package/dist/ai/turn-processor.js +107 -0
- package/dist/ai/turn-processor.js.map +1 -0
- package/dist/api/allocate-run-identity.d.ts +8 -0
- package/dist/api/allocate-run-identity.d.ts.map +1 -0
- package/dist/api/allocate-run-identity.js +10 -0
- package/dist/api/allocate-run-identity.js.map +1 -0
- package/dist/api/execute-prepared-run.d.ts +22 -0
- package/dist/api/execute-prepared-run.d.ts.map +1 -0
- package/dist/api/execute-prepared-run.js +160 -0
- package/dist/api/execute-prepared-run.js.map +1 -0
- package/dist/api/index.d.ts +25 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +69 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/prepare-run.d.ts +44 -0
- package/dist/api/prepare-run.d.ts.map +1 -0
- package/dist/api/prepare-run.js +261 -0
- package/dist/api/prepare-run.js.map +1 -0
- package/dist/cli/diagnostic-relay.d.ts +6 -0
- package/dist/cli/diagnostic-relay.d.ts.map +1 -0
- package/dist/cli/diagnostic-relay.js +6 -0
- package/dist/cli/diagnostic-relay.js.map +1 -0
- package/dist/cli/main.d.ts +21 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +166 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/protocol.d.ts +57 -0
- package/dist/cli/protocol.d.ts.map +1 -0
- package/dist/cli/protocol.js +116 -0
- package/dist/cli/protocol.js.map +1 -0
- package/dist/cli/reconcile-result.d.ts +13 -0
- package/dist/cli/reconcile-result.d.ts.map +1 -0
- package/dist/cli/reconcile-result.js +300 -0
- package/dist/cli/reconcile-result.js.map +1 -0
- package/dist/cli/run-parent.d.ts +37 -0
- package/dist/cli/run-parent.d.ts.map +1 -0
- package/dist/cli/run-parent.js +491 -0
- package/dist/cli/run-parent.js.map +1 -0
- package/dist/cli/signals.d.ts +36 -0
- package/dist/cli/signals.d.ts.map +1 -0
- package/dist/cli/signals.js +85 -0
- package/dist/cli/signals.js.map +1 -0
- package/dist/cli/static-commands.d.ts +11 -0
- package/dist/cli/static-commands.d.ts.map +1 -0
- package/dist/cli/static-commands.js +83 -0
- package/dist/cli/static-commands.js.map +1 -0
- package/dist/cli/worker-stream-guard.d.ts +20 -0
- package/dist/cli/worker-stream-guard.d.ts.map +1 -0
- package/dist/cli/worker-stream-guard.js +41 -0
- package/dist/cli/worker-stream-guard.js.map +1 -0
- package/dist/cli/worker.d.ts +3 -0
- package/dist/cli/worker.d.ts.map +1 -0
- package/dist/cli/worker.js +111 -0
- package/dist/cli/worker.js.map +1 -0
- package/dist/config/ingestion.d.ts +58 -0
- package/dist/config/ingestion.d.ts.map +1 -0
- package/dist/config/ingestion.js +283 -0
- package/dist/config/ingestion.js.map +1 -0
- package/dist/config/manifest.d.ts +20 -0
- package/dist/config/manifest.d.ts.map +1 -0
- package/dist/config/manifest.js +91 -0
- package/dist/config/manifest.js.map +1 -0
- package/dist/config/model-egress.d.ts +10 -0
- package/dist/config/model-egress.d.ts.map +1 -0
- package/dist/config/model-egress.js +62 -0
- package/dist/config/model-egress.js.map +1 -0
- package/dist/config/package-resolution.d.ts +4 -0
- package/dist/config/package-resolution.d.ts.map +1 -0
- package/dist/config/package-resolution.js +24 -0
- package/dist/config/package-resolution.js.map +1 -0
- package/dist/config/policy.d.ts +44 -0
- package/dist/config/policy.d.ts.map +1 -0
- package/dist/config/policy.js +141 -0
- package/dist/config/policy.js.map +1 -0
- package/dist/config/record.d.ts +4 -0
- package/dist/config/record.d.ts.map +1 -0
- package/dist/config/record.js +10 -0
- package/dist/config/record.js.map +1 -0
- package/dist/config/secrets.d.ts +11 -0
- package/dist/config/secrets.d.ts.map +1 -0
- package/dist/config/secrets.js +42 -0
- package/dist/config/secrets.js.map +1 -0
- package/dist/contracts/diagnostics.d.ts +4 -0
- package/dist/contracts/diagnostics.d.ts.map +1 -0
- package/dist/contracts/diagnostics.js +31 -0
- package/dist/contracts/diagnostics.js.map +1 -0
- package/dist/contracts/serialize.d.ts +2 -0
- package/dist/contracts/serialize.d.ts.map +1 -0
- package/dist/contracts/serialize.js +90 -0
- package/dist/contracts/serialize.js.map +1 -0
- package/dist/contracts/types.d.ts +316 -0
- package/dist/contracts/types.d.ts.map +1 -0
- package/dist/contracts/types.js +74 -0
- package/dist/contracts/types.js.map +1 -0
- package/dist/contracts/validator.d.ts +8 -0
- package/dist/contracts/validator.d.ts.map +1 -0
- package/dist/contracts/validator.js +71 -0
- package/dist/contracts/validator.js.map +1 -0
- package/dist/driver.d.ts +97 -0
- package/dist/driver.d.ts.map +1 -0
- package/dist/driver.js +24 -0
- package/dist/driver.js.map +1 -0
- package/dist/drivers/descriptor.d.ts +15 -0
- package/dist/drivers/descriptor.d.ts.map +1 -0
- package/dist/drivers/descriptor.js +122 -0
- package/dist/drivers/descriptor.js.map +1 -0
- package/dist/drivers/loader.d.ts +18 -0
- package/dist/drivers/loader.d.ts.map +1 -0
- package/dist/drivers/loader.js +97 -0
- package/dist/drivers/loader.js.map +1 -0
- package/dist/drivers/web/checkmate-driver.json +44 -0
- package/dist/drivers/web/index.d.ts +6 -0
- package/dist/drivers/web/index.d.ts.map +1 -0
- package/dist/drivers/web/index.js +27 -0
- package/dist/drivers/web/index.js.map +1 -0
- package/dist/drivers/web/session.d.ts +22 -0
- package/dist/drivers/web/session.d.ts.map +1 -0
- package/dist/drivers/web/session.js +130 -0
- package/dist/drivers/web/session.js.map +1 -0
- package/dist/drivers/web/tools/network-request-recorder.d.ts +46 -0
- package/dist/drivers/web/tools/network-request-recorder.d.ts.map +1 -0
- package/dist/drivers/web/tools/network-request-recorder.js +164 -0
- package/dist/drivers/web/tools/network-request-recorder.js.map +1 -0
- package/dist/{tools/browser → drivers/web/tools}/screenshot-service.d.ts +1 -1
- package/dist/drivers/web/tools/screenshot-service.d.ts.map +1 -0
- package/dist/drivers/web/tools/screenshot-service.js.map +1 -0
- package/dist/drivers/web/tools/snapshot-filter/index.d.ts.map +1 -0
- package/dist/drivers/web/tools/snapshot-filter/index.js.map +1 -0
- package/dist/drivers/web/tools/snapshot-filter/semantic-scorer.d.ts.map +1 -0
- package/dist/drivers/web/tools/snapshot-filter/semantic-scorer.js.map +1 -0
- package/dist/drivers/web/tools/snapshot-filter/snapshot-filter.d.ts +5 -0
- package/dist/drivers/web/tools/snapshot-filter/snapshot-filter.d.ts.map +1 -0
- package/dist/drivers/web/tools/snapshot-filter/snapshot-filter.js +56 -0
- package/dist/drivers/web/tools/snapshot-filter/snapshot-filter.js.map +1 -0
- package/dist/drivers/web/tools/snapshot-filter/tree-reconstructor.d.ts.map +1 -0
- package/dist/drivers/web/tools/snapshot-filter/tree-reconstructor.js.map +1 -0
- package/dist/drivers/web/tools/snapshot-service.d.ts +31 -0
- package/dist/drivers/web/tools/snapshot-service.d.ts.map +1 -0
- package/dist/{tools/browser → drivers/web/tools}/snapshot-service.js +36 -7
- package/dist/drivers/web/tools/snapshot-service.js.map +1 -0
- package/dist/drivers/web/tools/tool.d.ts +76 -0
- package/dist/drivers/web/tools/tool.d.ts.map +1 -0
- package/dist/drivers/web/tools/tool.js +562 -0
- package/dist/drivers/web/tools/tool.js.map +1 -0
- package/dist/drivers/web/tools/transient-state-tracker.d.ts +26 -0
- package/dist/drivers/web/tools/transient-state-tracker.d.ts.map +1 -0
- package/dist/{tools/browser → drivers/web/tools}/transient-state-tracker.js +54 -19
- package/dist/drivers/web/tools/transient-state-tracker.js.map +1 -0
- package/dist/drivers/web/tools/types.d.ts +11 -0
- package/dist/drivers/web/tools/types.d.ts.map +1 -0
- package/dist/drivers/web/tools/types.js +2 -0
- package/dist/drivers/web/tools/types.js.map +1 -0
- package/dist/evidence/atomic-file.d.ts +23 -0
- package/dist/evidence/atomic-file.d.ts.map +1 -0
- package/dist/evidence/atomic-file.js +104 -0
- package/dist/evidence/atomic-file.js.map +1 -0
- package/dist/evidence/layout.d.ts +30 -0
- package/dist/evidence/layout.d.ts.map +1 -0
- package/dist/evidence/layout.js +152 -0
- package/dist/evidence/layout.js.map +1 -0
- package/dist/evidence/retention.d.ts +5 -0
- package/dist/evidence/retention.d.ts.map +1 -0
- package/dist/evidence/retention.js +10 -0
- package/dist/evidence/retention.js.map +1 -0
- package/dist/evidence/store.d.ts +101 -0
- package/dist/evidence/store.d.ts.map +1 -0
- package/dist/evidence/store.js +375 -0
- package/dist/evidence/store.js.map +1 -0
- package/dist/evidence/terminal-finalizer.d.ts +19 -0
- package/dist/evidence/terminal-finalizer.d.ts.map +1 -0
- package/dist/evidence/terminal-finalizer.js +56 -0
- package/dist/evidence/terminal-finalizer.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/logging/invocation-logger.d.ts +4 -0
- package/dist/logging/invocation-logger.d.ts.map +1 -0
- package/dist/logging/invocation-logger.js +25 -0
- package/dist/logging/invocation-logger.js.map +1 -0
- package/dist/logging/types.d.ts +8 -0
- package/dist/logging/types.d.ts.map +1 -0
- package/dist/logging/types.js +7 -0
- package/dist/logging/types.js.map +1 -0
- package/dist/redaction/diagnostic-sanitizer.d.ts +7 -0
- package/dist/redaction/diagnostic-sanitizer.d.ts.map +1 -0
- package/dist/redaction/diagnostic-sanitizer.js +42 -0
- package/dist/redaction/diagnostic-sanitizer.js.map +1 -0
- package/dist/redaction/redactor.d.ts +40 -0
- package/dist/redaction/redactor.d.ts.map +1 -0
- package/dist/redaction/redactor.js +176 -0
- package/dist/redaction/redactor.js.map +1 -0
- package/dist/redaction/scrub.d.ts +29 -0
- package/dist/redaction/scrub.d.ts.map +1 -0
- package/dist/redaction/scrub.js +54 -0
- package/dist/redaction/scrub.js.map +1 -0
- package/dist/runtime/config.d.ts +15 -0
- package/dist/runtime/config.d.ts.map +1 -0
- package/dist/runtime/config.js +2 -0
- package/dist/runtime/config.js.map +1 -0
- package/dist/runtime/driver-boundary.d.ts +16 -0
- package/dist/runtime/driver-boundary.d.ts.map +1 -0
- package/dist/runtime/driver-boundary.js +71 -0
- package/dist/runtime/driver-boundary.js.map +1 -0
- package/dist/runtime/driver-session.d.ts +9 -0
- package/dist/runtime/driver-session.d.ts.map +1 -0
- package/dist/runtime/driver-session.js +64 -0
- package/dist/runtime/driver-session.js.map +1 -0
- package/dist/runtime/internal-step-evidence.d.ts +30 -0
- package/dist/runtime/internal-step-evidence.d.ts.map +1 -0
- package/dist/runtime/internal-step-evidence.js +82 -0
- package/dist/runtime/internal-step-evidence.js.map +1 -0
- package/dist/runtime/result-adapter.d.ts +9 -0
- package/dist/runtime/result-adapter.d.ts.map +1 -0
- package/dist/runtime/result-adapter.js +77 -0
- package/dist/runtime/result-adapter.js.map +1 -0
- package/dist/runtime/runner.d.ts +35 -88
- package/dist/runtime/runner.d.ts.map +1 -1
- package/dist/runtime/runner.js +60 -74
- package/dist/runtime/runner.js.map +1 -1
- package/dist/runtime/scenario-control.d.ts +40 -0
- package/dist/runtime/scenario-control.d.ts.map +1 -0
- package/dist/runtime/scenario-control.js +94 -0
- package/dist/runtime/scenario-control.js.map +1 -0
- package/dist/runtime/scenario-runner.d.ts +39 -0
- package/dist/runtime/scenario-runner.d.ts.map +1 -0
- package/dist/runtime/scenario-runner.js +273 -0
- package/dist/runtime/scenario-runner.js.map +1 -0
- package/dist/runtime/scenario-state.d.ts +55 -0
- package/dist/runtime/scenario-state.d.ts.map +1 -0
- package/dist/runtime/scenario-state.js +128 -0
- package/dist/runtime/scenario-state.js.map +1 -0
- package/dist/runtime/step-execution.d.ts +24 -14
- package/dist/runtime/step-execution.d.ts.map +1 -1
- package/dist/runtime/step-execution.js +130 -36
- package/dist/runtime/step-execution.js.map +1 -1
- package/dist/runtime/text.d.ts +10 -0
- package/dist/runtime/text.d.ts.map +1 -0
- package/dist/runtime/text.js +25 -0
- package/dist/runtime/text.js.map +1 -0
- package/dist/runtime/types.d.ts +50 -76
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/usage-tracker.d.ts +37 -0
- package/dist/runtime/usage-tracker.d.ts.map +1 -0
- package/dist/runtime/usage-tracker.js +110 -0
- package/dist/runtime/usage-tracker.js.map +1 -0
- package/dist/tools/define-agent-tool.d.ts +3 -28
- package/dist/tools/define-agent-tool.d.ts.map +1 -1
- package/dist/tools/define-agent-tool.js +3 -28
- package/dist/tools/define-agent-tool.js.map +1 -1
- package/dist/tools/dispatcher.d.ts +11 -3
- package/dist/tools/dispatcher.d.ts.map +1 -1
- package/dist/tools/dispatcher.js +50 -8
- package/dist/tools/dispatcher.js.map +1 -1
- package/dist/tools/registry.d.ts +8 -10
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +19 -11
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/step/result-tool.d.ts.map +1 -1
- package/dist/tools/step/result-tool.js +8 -6
- package/dist/tools/step/result-tool.js.map +1 -1
- package/dist/tools/tool-contract.d.ts +1 -1
- package/dist/tools/tool-contract.d.ts.map +1 -1
- package/dist/tools/tool-contract.js.map +1 -1
- package/dist/tools/types.d.ts +77 -6
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/docs/CLI.md +59 -0
- package/docs/CONFIGURATION.md +91 -0
- package/docs/DRIVERS.md +75 -0
- package/docs/EVIDENCE.md +62 -0
- package/package.json +51 -59
- package/schemas/checkmate-config.v1.json +176 -0
- package/schemas/describe-result.v1.json +414 -0
- package/schemas/driver-descriptor.v1.json +66 -0
- package/schemas/run-request.v1.json +67 -0
- package/schemas/run-result.v1.json +333 -0
- package/schemas/validation-result.v1.json +86 -0
- package/dist/ai/response-processor.d.ts +0 -20
- package/dist/ai/response-processor.d.ts.map +0 -1
- package/dist/ai/response-processor.js +0 -62
- package/dist/ai/response-processor.js.map +0 -1
- package/dist/ai/token-pricing.d.ts +0 -13
- package/dist/ai/token-pricing.d.ts.map +0 -1
- package/dist/ai/token-pricing.js +0 -348
- package/dist/ai/token-pricing.js.map +0 -1
- package/dist/ai/token-tracker.d.ts +0 -33
- package/dist/ai/token-tracker.d.ts.map +0 -1
- package/dist/ai/token-tracker.js +0 -138
- package/dist/ai/token-tracker.js.map +0 -1
- package/dist/cli/create-examples.d.ts +0 -21
- package/dist/cli/create-examples.d.ts.map +0 -1
- package/dist/cli/create-examples.js +0 -116
- package/dist/cli/create-examples.js.map +0 -1
- package/dist/cli.d.ts +0 -15
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -69
- package/dist/cli.js.map +0 -1
- package/dist/config/runtime-config.d.ts +0 -21
- package/dist/config/runtime-config.d.ts.map +0 -1
- package/dist/config/runtime-config.js +0 -98
- package/dist/config/runtime-config.js.map +0 -1
- package/dist/core.d.ts +0 -8
- package/dist/core.d.ts.map +0 -1
- package/dist/core.js +0 -4
- package/dist/core.js.map +0 -1
- package/dist/integrations/salesforce/authenticator.d.ts +0 -27
- package/dist/integrations/salesforce/authenticator.d.ts.map +0 -1
- package/dist/integrations/salesforce/authenticator.js +0 -27
- package/dist/integrations/salesforce/authenticator.js.map +0 -1
- package/dist/integrations/salesforce/cli-handler.d.ts +0 -14
- package/dist/integrations/salesforce/cli-handler.d.ts.map +0 -1
- package/dist/integrations/salesforce/cli-handler.js +0 -50
- package/dist/integrations/salesforce/cli-handler.js.map +0 -1
- package/dist/logging/index.d.ts +0 -2
- package/dist/logging/index.d.ts.map +0 -1
- package/dist/logging/index.js +0 -4
- package/dist/logging/index.js.map +0 -1
- package/dist/logging/logger.d.ts +0 -5
- package/dist/logging/logger.d.ts.map +0 -1
- package/dist/logging/logger.js +0 -15
- package/dist/logging/logger.js.map +0 -1
- package/dist/playwright.d.ts +0 -102
- package/dist/playwright.d.ts.map +0 -1
- package/dist/playwright.js +0 -116
- package/dist/playwright.js.map +0 -1
- package/dist/runtime/extension.d.ts +0 -274
- package/dist/runtime/extension.d.ts.map +0 -1
- package/dist/runtime/extension.js +0 -171
- package/dist/runtime/extension.js.map +0 -1
- package/dist/salesforce.d.ts +0 -71
- package/dist/salesforce.d.ts.map +0 -1
- package/dist/salesforce.js +0 -73
- package/dist/salesforce.js.map +0 -1
- package/dist/tools/browser/screenshot-service.d.ts.map +0 -1
- package/dist/tools/browser/screenshot-service.js.map +0 -1
- package/dist/tools/browser/snapshot-filter/index.d.ts.map +0 -1
- package/dist/tools/browser/snapshot-filter/index.js.map +0 -1
- package/dist/tools/browser/snapshot-filter/semantic-scorer.d.ts.map +0 -1
- package/dist/tools/browser/snapshot-filter/semantic-scorer.js.map +0 -1
- package/dist/tools/browser/snapshot-filter/snapshot-filter.d.ts +0 -4
- package/dist/tools/browser/snapshot-filter/snapshot-filter.d.ts.map +0 -1
- package/dist/tools/browser/snapshot-filter/snapshot-filter.js +0 -57
- package/dist/tools/browser/snapshot-filter/snapshot-filter.js.map +0 -1
- package/dist/tools/browser/snapshot-filter/tree-reconstructor.d.ts.map +0 -1
- package/dist/tools/browser/snapshot-filter/tree-reconstructor.js.map +0 -1
- package/dist/tools/browser/snapshot-service.d.ts +0 -19
- package/dist/tools/browser/snapshot-service.d.ts.map +0 -1
- package/dist/tools/browser/snapshot-service.js.map +0 -1
- package/dist/tools/browser/tool.d.ts +0 -34
- package/dist/tools/browser/tool.d.ts.map +0 -1
- package/dist/tools/browser/tool.js +0 -226
- package/dist/tools/browser/tool.js.map +0 -1
- package/dist/tools/browser/transient-state-tracker.d.ts +0 -16
- package/dist/tools/browser/transient-state-tracker.d.ts.map +0 -1
- package/dist/tools/browser/transient-state-tracker.js.map +0 -1
- package/dist/tools/salesforce/login-tool.d.ts +0 -7
- package/dist/tools/salesforce/login-tool.d.ts.map +0 -1
- package/dist/tools/salesforce/login-tool.js +0 -25
- package/dist/tools/salesforce/login-tool.js.map +0 -1
- package/docs/EXTENSIONS.md +0 -232
- package/docs/GUIDE.md +0 -465
- package/docs/ROADMAP.md +0 -47
- package/playwright.config.ts +0 -39
- package/test/examples/salesforce/trial-dev-org.spec.ts +0 -82
- package/test/examples/web/website-testing.spec.ts +0 -281
- /package/dist/{tools/browser → drivers/web/tools}/screenshot-service.js +0 -0
- /package/dist/{tools/browser → drivers/web/tools}/snapshot-filter/index.d.ts +0 -0
- /package/dist/{tools/browser → drivers/web/tools}/snapshot-filter/index.js +0 -0
- /package/dist/{tools/browser → drivers/web/tools}/snapshot-filter/semantic-scorer.d.ts +0 -0
- /package/dist/{tools/browser → drivers/web/tools}/snapshot-filter/semantic-scorer.js +0 -0
- /package/dist/{tools/browser → drivers/web/tools}/snapshot-filter/tree-reconstructor.d.ts +0 -0
- /package/dist/{tools/browser → drivers/web/tools}/snapshot-filter/tree-reconstructor.js +0 -0
package/dist/playwright.d.ts
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { expect, Page } from '@playwright/test';
|
|
2
|
-
import { CheckmateRunner } from './runtime/runner.js';
|
|
3
|
-
import { CheckmateExtension } from './runtime/extension.js';
|
|
4
|
-
/**
|
|
5
|
-
* Capability names published by the Playwright web extension.
|
|
6
|
-
*
|
|
7
|
-
* Use these in custom extensions that need access to the active Playwright page
|
|
8
|
-
* or the browser tool runtime.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```ts
|
|
12
|
-
* const extension = defineExtension({
|
|
13
|
-
* name: 'custom-web-policy',
|
|
14
|
-
* setup(api) {
|
|
15
|
-
* const page = api.getCapability<Page>(PlaywrightCapability.PAGE)
|
|
16
|
-
* api.addInstruction(`Current page url is ${page.url()}`)
|
|
17
|
-
* },
|
|
18
|
-
* })
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
export declare const PlaywrightCapability: {
|
|
22
|
-
readonly PAGE: "checkmate.playwright.page";
|
|
23
|
-
readonly BROWSER_RUNTIME: "checkmate.playwright.browser-runtime";
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Fixture type exported by `@xoxoai/checkmate/playwright`.
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```ts
|
|
30
|
-
* test('checkout flow', async ({ ai }) => {
|
|
31
|
-
* await ai.run({ action: 'Open checkout', expect: 'Checkout page is visible' })
|
|
32
|
-
* })
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
export type CheckmateFixtures = {
|
|
36
|
-
/**
|
|
37
|
-
* Runner composed with the built-in web extension.
|
|
38
|
-
*/
|
|
39
|
-
ai: CheckmateRunner;
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* Options for the built-in web extension.
|
|
43
|
-
*
|
|
44
|
-
* @example
|
|
45
|
-
* ```ts
|
|
46
|
-
* const extension = web({ page })
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
export type WebExtensionOptions = {
|
|
50
|
-
/**
|
|
51
|
-
* Active Playwright page used for browser automation.
|
|
52
|
-
*/
|
|
53
|
-
page: Page;
|
|
54
|
-
};
|
|
55
|
-
/**
|
|
56
|
-
* Creates the built-in web extension.
|
|
57
|
-
*
|
|
58
|
-
* This extension adds browser tools, initial snapshots, and post-tool screenshot handling.
|
|
59
|
-
*
|
|
60
|
-
* @example
|
|
61
|
-
* ```ts
|
|
62
|
-
* import { createRunner } from '@xoxoai/checkmate/core'
|
|
63
|
-
* import { web } from '@xoxoai/checkmate/playwright'
|
|
64
|
-
*
|
|
65
|
-
* const ai = createRunner({
|
|
66
|
-
* extensions: [web({ page })],
|
|
67
|
-
* })
|
|
68
|
-
* ```
|
|
69
|
-
*/
|
|
70
|
-
export declare function web({ page }: WebExtensionOptions): CheckmateExtension;
|
|
71
|
-
/**
|
|
72
|
-
* Creates a runner composed with the built-in web extension.
|
|
73
|
-
*
|
|
74
|
-
* @example
|
|
75
|
-
* ```ts
|
|
76
|
-
* import { createPlaywrightRunner } from '@xoxoai/checkmate/playwright'
|
|
77
|
-
*
|
|
78
|
-
* const ai = createPlaywrightRunner(page)
|
|
79
|
-
* ```
|
|
80
|
-
*/
|
|
81
|
-
export declare function createPlaywrightRunner(page: Page): CheckmateRunner;
|
|
82
|
-
/**
|
|
83
|
-
* Playwright Test fixture with the `ai` runner.
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* ```ts
|
|
87
|
-
* import { test } from '@xoxoai/checkmate/playwright'
|
|
88
|
-
*
|
|
89
|
-
* test('search flow', async ({ ai }) => {
|
|
90
|
-
* await ai.run({
|
|
91
|
-
* action: 'Search for playwright docs',
|
|
92
|
-
* expect: 'Search results are displayed',
|
|
93
|
-
* })
|
|
94
|
-
* })
|
|
95
|
-
* ```
|
|
96
|
-
*/
|
|
97
|
-
export declare const test: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & CheckmateFixtures, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
|
|
98
|
-
/**
|
|
99
|
-
* Re-export of Playwright's `expect` for convenience.
|
|
100
|
-
*/
|
|
101
|
-
export { expect };
|
|
102
|
-
//# sourceMappingURL=playwright.d.ts.map
|
package/dist/playwright.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"playwright.d.ts","sourceRoot":"","sources":["../src/playwright.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAgB,MAAM,kBAAkB,CAAA;AAE7D,OAAO,EAAgB,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAmB,MAAM,wBAAwB,CAAA;AAK5E;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB;;;CAGvB,CAAA;AAEV;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC/B;;OAEG;IACH,EAAE,EAAE,eAAe,CAAA;CACnB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG;IACjC;;OAEG;IACH,IAAI,EAAE,IAAI,CAAA;CACV,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,mBAAmB,GAAG,kBAAkB,CAmCrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,eAAe,CAElE;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,IAAI,iQAMf,CAAA;AAEF;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
package/dist/playwright.js
DELETED
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { expect, test as base } from '@playwright/test';
|
|
2
|
-
import { MessageHistory } from './ai/message-history.js';
|
|
3
|
-
import { createRunner } from './runtime/runner.js';
|
|
4
|
-
import { defineExtension } from './runtime/extension.js';
|
|
5
|
-
import { BrowserScreenshotService } from './tools/browser/screenshot-service.js';
|
|
6
|
-
import { BrowserTool, BrowserToolRuntime, createBrowserTools } from './tools/browser/tool.js';
|
|
7
|
-
import { SnapshotService } from './tools/browser/snapshot-service.js';
|
|
8
|
-
/**
|
|
9
|
-
* Capability names published by the Playwright web extension.
|
|
10
|
-
*
|
|
11
|
-
* Use these in custom extensions that need access to the active Playwright page
|
|
12
|
-
* or the browser tool runtime.
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```ts
|
|
16
|
-
* const extension = defineExtension({
|
|
17
|
-
* name: 'custom-web-policy',
|
|
18
|
-
* setup(api) {
|
|
19
|
-
* const page = api.getCapability<Page>(PlaywrightCapability.PAGE)
|
|
20
|
-
* api.addInstruction(`Current page url is ${page.url()}`)
|
|
21
|
-
* },
|
|
22
|
-
* })
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
export const PlaywrightCapability = {
|
|
26
|
-
PAGE: 'checkmate.playwright.page',
|
|
27
|
-
BROWSER_RUNTIME: 'checkmate.playwright.browser-runtime',
|
|
28
|
-
};
|
|
29
|
-
/**
|
|
30
|
-
* Creates the built-in web extension.
|
|
31
|
-
*
|
|
32
|
-
* This extension adds browser tools, initial snapshots, and post-tool screenshot handling.
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```ts
|
|
36
|
-
* import { createRunner } from '@xoxoai/checkmate/core'
|
|
37
|
-
* import { web } from '@xoxoai/checkmate/playwright'
|
|
38
|
-
*
|
|
39
|
-
* const ai = createRunner({
|
|
40
|
-
* extensions: [web({ page })],
|
|
41
|
-
* })
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
export function web({ page }) {
|
|
45
|
-
return defineExtension({
|
|
46
|
-
name: 'web',
|
|
47
|
-
instructions: [
|
|
48
|
-
`If you cannot find elements, call '${BrowserTool.TOOL_SNAPSHOT}' to fetch the latest full snapshot of the page.`,
|
|
49
|
-
],
|
|
50
|
-
setup(api) {
|
|
51
|
-
const browserRuntime = new BrowserToolRuntime(page);
|
|
52
|
-
api.setCapability(PlaywrightCapability.PAGE, page);
|
|
53
|
-
api.setCapability(PlaywrightCapability.BROWSER_RUNTIME, browserRuntime);
|
|
54
|
-
api.addTool(createBrowserTools(browserRuntime));
|
|
55
|
-
},
|
|
56
|
-
buildInitialMessages: async ({ step }) => {
|
|
57
|
-
const snapshot = await new SnapshotService(page, step).get();
|
|
58
|
-
return [new MessageHistory().createSnapshotMessage(snapshot)];
|
|
59
|
-
},
|
|
60
|
-
handleToolResponses: async ({ aiClient, toolResponses }) => {
|
|
61
|
-
let latestSnapshot = null;
|
|
62
|
-
for (const { toolResponse } of toolResponses) {
|
|
63
|
-
if (toolResponse.snapshot) {
|
|
64
|
-
latestSnapshot = toolResponse.snapshot;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (latestSnapshot) {
|
|
68
|
-
await aiClient.addCurrentSnapshotMessage(latestSnapshot);
|
|
69
|
-
}
|
|
70
|
-
if (aiClient.getRuntimeConfig().includeScreenshotInSnapshot()) {
|
|
71
|
-
const screenshot = await new BrowserScreenshotService(page).getCompressedScreenshot();
|
|
72
|
-
await aiClient.addCurrentScreenshotMessage(screenshot.data, screenshot.mimeType ?? 'image/png');
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Creates a runner composed with the built-in web extension.
|
|
79
|
-
*
|
|
80
|
-
* @example
|
|
81
|
-
* ```ts
|
|
82
|
-
* import { createPlaywrightRunner } from '@xoxoai/checkmate/playwright'
|
|
83
|
-
*
|
|
84
|
-
* const ai = createPlaywrightRunner(page)
|
|
85
|
-
* ```
|
|
86
|
-
*/
|
|
87
|
-
export function createPlaywrightRunner(page) {
|
|
88
|
-
return createRunner({ extensions: [web({ page })] });
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Playwright Test fixture with the `ai` runner.
|
|
92
|
-
*
|
|
93
|
-
* @example
|
|
94
|
-
* ```ts
|
|
95
|
-
* import { test } from '@xoxoai/checkmate/playwright'
|
|
96
|
-
*
|
|
97
|
-
* test('search flow', async ({ ai }) => {
|
|
98
|
-
* await ai.run({
|
|
99
|
-
* action: 'Search for playwright docs',
|
|
100
|
-
* expect: 'Search results are displayed',
|
|
101
|
-
* })
|
|
102
|
-
* })
|
|
103
|
-
* ```
|
|
104
|
-
*/
|
|
105
|
-
export const test = base.extend({
|
|
106
|
-
ai: async ({ page }, use) => {
|
|
107
|
-
const ai = createPlaywrightRunner(page);
|
|
108
|
-
await use(ai);
|
|
109
|
-
await ai.teardown();
|
|
110
|
-
},
|
|
111
|
-
});
|
|
112
|
-
/**
|
|
113
|
-
* Re-export of Playwright's `expect` for convenience.
|
|
114
|
-
*/
|
|
115
|
-
export { expect };
|
|
116
|
-
//# sourceMappingURL=playwright.js.map
|
package/dist/playwright.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"playwright.js","sourceRoot":"","sources":["../src/playwright.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,274 +0,0 @@
|
|
|
1
|
-
import type { ChatCompletionMessageParam } from 'openai/resources/chat/completions';
|
|
2
|
-
import { RuntimeConfig } from '../config/runtime-config.js';
|
|
3
|
-
import { ToolRegistry, ToolResponse } from '../tools/registry.js';
|
|
4
|
-
import { AgentTool, ToolCall } from '../tools/types.js';
|
|
5
|
-
import { ResolveStepResult, Step } from './types.js';
|
|
6
|
-
import type { AiClient } from '../ai/client.js';
|
|
7
|
-
/**
|
|
8
|
-
* One tool execution observed during the runner loop.
|
|
9
|
-
*
|
|
10
|
-
* Extensions receive these objects in post-tool hooks.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* const execution: ToolExecution = {
|
|
15
|
-
* toolCallId: 'call_1',
|
|
16
|
-
* toolCall: { name: 'browser_navigate', arguments: { url: 'https://example.com' } },
|
|
17
|
-
* toolResponse: { response: 'Navigated to example.com', status: 'success' },
|
|
18
|
-
* }
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
export type ToolExecution = {
|
|
22
|
-
/**
|
|
23
|
-
* Provider-issued id for the tool call.
|
|
24
|
-
*/
|
|
25
|
-
toolCallId: string;
|
|
26
|
-
/**
|
|
27
|
-
* Normalized tool call request.
|
|
28
|
-
*/
|
|
29
|
-
toolCall: ToolCall;
|
|
30
|
-
/**
|
|
31
|
-
* Normalized tool response returned by Checkmate.
|
|
32
|
-
*/
|
|
33
|
-
toolResponse: ToolResponse;
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* Builds additional initial messages for a step.
|
|
37
|
-
*
|
|
38
|
-
* Use this to inject snapshots, screenshots, or custom context before the first model request.
|
|
39
|
-
*
|
|
40
|
-
* @example
|
|
41
|
-
* ```ts
|
|
42
|
-
* const buildInitialMessages: ExtensionInitialMessagesBuilder = async ({ step }) => [
|
|
43
|
-
* { role: 'user', content: `Current business area: checkout for ${step.action}` },
|
|
44
|
-
* ]
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
export type ExtensionInitialMessagesBuilder = (context: {
|
|
48
|
-
/**
|
|
49
|
-
* Step being executed.
|
|
50
|
-
*/
|
|
51
|
-
step: Step;
|
|
52
|
-
}) => Promise<ChatCompletionMessageParam[]> | ChatCompletionMessageParam[];
|
|
53
|
-
/**
|
|
54
|
-
* Runs after one or more tools finish.
|
|
55
|
-
*
|
|
56
|
-
* Use this to append fresh snapshots, screenshots, or any other ephemeral follow-up context.
|
|
57
|
-
*
|
|
58
|
-
* @example
|
|
59
|
-
* ```ts
|
|
60
|
-
* const handleToolResponses: ExtensionToolResponsesHook = async ({ aiClient, toolResponses }) => {
|
|
61
|
-
* const snapshot = toolResponses.at(-1)?.toolResponse.snapshot
|
|
62
|
-
* if (snapshot) {
|
|
63
|
-
* await aiClient.addCurrentSnapshotMessage(snapshot)
|
|
64
|
-
* }
|
|
65
|
-
* }
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
export type ExtensionToolResponsesHook = (context: {
|
|
69
|
-
/**
|
|
70
|
-
* Active AI client for the current step.
|
|
71
|
-
*/
|
|
72
|
-
aiClient: AiClient;
|
|
73
|
-
/**
|
|
74
|
-
* Step being executed.
|
|
75
|
-
*/
|
|
76
|
-
step: Step;
|
|
77
|
-
/**
|
|
78
|
-
* Callback used to finish the step.
|
|
79
|
-
*/
|
|
80
|
-
resolveStepResult: ResolveStepResult;
|
|
81
|
-
/**
|
|
82
|
-
* Tool executions that just completed.
|
|
83
|
-
*/
|
|
84
|
-
toolResponses: ToolExecution[];
|
|
85
|
-
}) => Promise<void> | void;
|
|
86
|
-
/**
|
|
87
|
-
* Cleans up resources created by an extension.
|
|
88
|
-
*
|
|
89
|
-
* @example
|
|
90
|
-
* ```ts
|
|
91
|
-
* const teardown: ExtensionTeardown = async () => {
|
|
92
|
-
* await browser.close()
|
|
93
|
-
* }
|
|
94
|
-
* ```
|
|
95
|
-
*/
|
|
96
|
-
export type ExtensionTeardown = () => Promise<void> | void;
|
|
97
|
-
/**
|
|
98
|
-
* API exposed to an extension during setup.
|
|
99
|
-
*
|
|
100
|
-
* @example
|
|
101
|
-
* ```ts
|
|
102
|
-
* const extension = defineExtension({
|
|
103
|
-
* name: 'custom',
|
|
104
|
-
* setup(api) {
|
|
105
|
-
* api.addInstruction('Prefer visible labels over generated ids.')
|
|
106
|
-
* },
|
|
107
|
-
* })
|
|
108
|
-
* ```
|
|
109
|
-
*/
|
|
110
|
-
export type ExtensionSetupApi = {
|
|
111
|
-
/**
|
|
112
|
-
* Runtime config used by the current runner.
|
|
113
|
-
*/
|
|
114
|
-
runtimeConfig: RuntimeConfig;
|
|
115
|
-
/**
|
|
116
|
-
* Registers one or more tools.
|
|
117
|
-
*/
|
|
118
|
-
addTool: (tool: AgentTool | AgentTool[]) => void;
|
|
119
|
-
/**
|
|
120
|
-
* Appends a system-level instruction for the model.
|
|
121
|
-
*/
|
|
122
|
-
addInstruction: (instruction: string) => void;
|
|
123
|
-
/**
|
|
124
|
-
* Adds a builder for extra initial messages.
|
|
125
|
-
*/
|
|
126
|
-
addInitialMessages: (builder: ExtensionInitialMessagesBuilder) => void;
|
|
127
|
-
/**
|
|
128
|
-
* Adds a hook that runs after tool execution.
|
|
129
|
-
*/
|
|
130
|
-
addToolResponsesHook: (hook: ExtensionToolResponsesHook) => void;
|
|
131
|
-
/**
|
|
132
|
-
* Publishes a capability for other extensions to consume.
|
|
133
|
-
*/
|
|
134
|
-
setCapability: (name: string, value: unknown) => void;
|
|
135
|
-
/**
|
|
136
|
-
* Reads a capability published by another extension.
|
|
137
|
-
*/
|
|
138
|
-
getCapability: <T>(name: string) => T;
|
|
139
|
-
/**
|
|
140
|
-
* Registers teardown work for the runner lifecycle.
|
|
141
|
-
*/
|
|
142
|
-
onTeardown: (teardown: ExtensionTeardown) => void;
|
|
143
|
-
};
|
|
144
|
-
/**
|
|
145
|
-
* Shape used to define a Checkmate extension.
|
|
146
|
-
*
|
|
147
|
-
* @example
|
|
148
|
-
* ```ts
|
|
149
|
-
* const extension = defineExtension({
|
|
150
|
-
* name: 'api-health',
|
|
151
|
-
* instructions: ['Check API health before asserting UI state.'],
|
|
152
|
-
* tools: [apiHealthTool],
|
|
153
|
-
* })
|
|
154
|
-
* ```
|
|
155
|
-
*/
|
|
156
|
-
export type ExtensionDefinition = {
|
|
157
|
-
/**
|
|
158
|
-
* Stable extension name.
|
|
159
|
-
*/
|
|
160
|
-
name: string;
|
|
161
|
-
/**
|
|
162
|
-
* Tools contributed by this extension.
|
|
163
|
-
*/
|
|
164
|
-
tools?: AgentTool | AgentTool[];
|
|
165
|
-
/**
|
|
166
|
-
* Additional system instructions for the model.
|
|
167
|
-
*/
|
|
168
|
-
instructions?: string[];
|
|
169
|
-
/**
|
|
170
|
-
* Setup hook used to register capabilities, tools, and hooks.
|
|
171
|
-
*/
|
|
172
|
-
setup?: (api: ExtensionSetupApi) => void;
|
|
173
|
-
/**
|
|
174
|
-
* Optional builder for initial step messages.
|
|
175
|
-
*/
|
|
176
|
-
buildInitialMessages?: ExtensionInitialMessagesBuilder;
|
|
177
|
-
/**
|
|
178
|
-
* Optional hook that runs after tool execution.
|
|
179
|
-
*/
|
|
180
|
-
handleToolResponses?: ExtensionToolResponsesHook;
|
|
181
|
-
/**
|
|
182
|
-
* Optional teardown hook.
|
|
183
|
-
*/
|
|
184
|
-
teardown?: ExtensionTeardown;
|
|
185
|
-
};
|
|
186
|
-
/**
|
|
187
|
-
* Additional behavior layered on top of an existing extension.
|
|
188
|
-
*
|
|
189
|
-
* @example
|
|
190
|
-
* ```ts
|
|
191
|
-
* const customWeb = web({ page }).extend({
|
|
192
|
-
* instructions: ['Prefer visible labels over generated ids.'],
|
|
193
|
-
* })
|
|
194
|
-
* ```
|
|
195
|
-
*/
|
|
196
|
-
export type ExtensionOverride = Omit<ExtensionDefinition, 'name'> & {
|
|
197
|
-
/**
|
|
198
|
-
* Optional replacement name for the derived extension.
|
|
199
|
-
*/
|
|
200
|
-
name?: string;
|
|
201
|
-
};
|
|
202
|
-
/**
|
|
203
|
-
* A composable Checkmate extension.
|
|
204
|
-
*
|
|
205
|
-
* Use `defineExtension()` to create one, then pass it to `createRunner()`.
|
|
206
|
-
*
|
|
207
|
-
* @example
|
|
208
|
-
* ```ts
|
|
209
|
-
* const extension = defineExtension({
|
|
210
|
-
* name: 'custom',
|
|
211
|
-
* instructions: ['Prefer visible labels over generated ids.'],
|
|
212
|
-
* })
|
|
213
|
-
* ```
|
|
214
|
-
*/
|
|
215
|
-
export type CheckmateExtension = {
|
|
216
|
-
/**
|
|
217
|
-
* Stable extension name.
|
|
218
|
-
*/
|
|
219
|
-
name: string;
|
|
220
|
-
/**
|
|
221
|
-
* Applies the extension to the runner host.
|
|
222
|
-
*/
|
|
223
|
-
apply: (api: ExtensionSetupApi) => void;
|
|
224
|
-
/**
|
|
225
|
-
* Derives a new extension by layering more behavior on top.
|
|
226
|
-
*
|
|
227
|
-
* @example
|
|
228
|
-
* ```ts
|
|
229
|
-
* const customWeb = web({ page }).extend({
|
|
230
|
-
* instructions: ['Use customer-specific naming where available.'],
|
|
231
|
-
* })
|
|
232
|
-
* ```
|
|
233
|
-
*/
|
|
234
|
-
extend: (override: ExtensionOverride) => CheckmateExtension;
|
|
235
|
-
};
|
|
236
|
-
/**
|
|
237
|
-
* Creates a composable Checkmate extension.
|
|
238
|
-
*
|
|
239
|
-
* @example
|
|
240
|
-
* ```ts
|
|
241
|
-
* import { createRunner, defineExtension } from '@xoxoai/checkmate/core'
|
|
242
|
-
* import { web } from '@xoxoai/checkmate/playwright'
|
|
243
|
-
*
|
|
244
|
-
* const extension = defineExtension({
|
|
245
|
-
* name: 'checkout-policy',
|
|
246
|
-
* instructions: ['Prefer visible checkout totals over inferred values.'],
|
|
247
|
-
* })
|
|
248
|
-
*
|
|
249
|
-
* const ai = createRunner({
|
|
250
|
-
* extensions: [web({ page }), extension],
|
|
251
|
-
* })
|
|
252
|
-
* ```
|
|
253
|
-
*/
|
|
254
|
-
export declare function defineExtension(definition: ExtensionDefinition): CheckmateExtension;
|
|
255
|
-
export declare class ExtensionHost {
|
|
256
|
-
private readonly runtimeConfig;
|
|
257
|
-
private readonly toolRegistry;
|
|
258
|
-
private readonly instructions;
|
|
259
|
-
private readonly initialMessagesBuilders;
|
|
260
|
-
private readonly toolResponsesHooks;
|
|
261
|
-
private readonly teardowns;
|
|
262
|
-
private readonly capabilities;
|
|
263
|
-
constructor(runtimeConfig: RuntimeConfig, toolRegistry: ToolRegistry, extensions: CheckmateExtension[]);
|
|
264
|
-
getInstructions(): string[];
|
|
265
|
-
buildInitialMessages(step: Step): Promise<ChatCompletionMessageParam[]>;
|
|
266
|
-
handleToolResponses(context: {
|
|
267
|
-
aiClient: AiClient;
|
|
268
|
-
step: Step;
|
|
269
|
-
resolveStepResult: ResolveStepResult;
|
|
270
|
-
toolResponses: ToolExecution[];
|
|
271
|
-
}): Promise<void>;
|
|
272
|
-
teardown(): Promise<void>;
|
|
273
|
-
}
|
|
274
|
-
//# sourceMappingURL=extension.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/runtime/extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates a composable Checkmate extension.
|
|
3
|
-
*
|
|
4
|
-
* @example
|
|
5
|
-
* ```ts
|
|
6
|
-
* import { createRunner, defineExtension } from '@xoxoai/checkmate/core'
|
|
7
|
-
* import { web } from '@xoxoai/checkmate/playwright'
|
|
8
|
-
*
|
|
9
|
-
* const extension = defineExtension({
|
|
10
|
-
* name: 'checkout-policy',
|
|
11
|
-
* instructions: ['Prefer visible checkout totals over inferred values.'],
|
|
12
|
-
* })
|
|
13
|
-
*
|
|
14
|
-
* const ai = createRunner({
|
|
15
|
-
* extensions: [web({ page }), extension],
|
|
16
|
-
* })
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
export function defineExtension(definition) {
|
|
20
|
-
return {
|
|
21
|
-
name: definition.name,
|
|
22
|
-
apply(api) {
|
|
23
|
-
registerExtension(api, definition);
|
|
24
|
-
},
|
|
25
|
-
extend(override) {
|
|
26
|
-
return defineExtension(mergeExtensionDefinition(definition, override));
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
export class ExtensionHost {
|
|
31
|
-
runtimeConfig;
|
|
32
|
-
toolRegistry;
|
|
33
|
-
instructions = [];
|
|
34
|
-
initialMessagesBuilders = [];
|
|
35
|
-
toolResponsesHooks = [];
|
|
36
|
-
teardowns = [];
|
|
37
|
-
capabilities = new Map();
|
|
38
|
-
constructor(runtimeConfig, toolRegistry, extensions) {
|
|
39
|
-
this.runtimeConfig = runtimeConfig;
|
|
40
|
-
this.toolRegistry = toolRegistry;
|
|
41
|
-
const api = {
|
|
42
|
-
runtimeConfig,
|
|
43
|
-
addTool: (tool) => this.toolRegistry.register(tool),
|
|
44
|
-
addInstruction: (instruction) => {
|
|
45
|
-
if (instruction.trim().length > 0) {
|
|
46
|
-
this.instructions.push(instruction);
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
addInitialMessages: (builder) => {
|
|
50
|
-
this.initialMessagesBuilders.push(builder);
|
|
51
|
-
},
|
|
52
|
-
addToolResponsesHook: (hook) => {
|
|
53
|
-
this.toolResponsesHooks.push(hook);
|
|
54
|
-
},
|
|
55
|
-
setCapability: (name, value) => {
|
|
56
|
-
this.capabilities.set(name, value);
|
|
57
|
-
},
|
|
58
|
-
getCapability: (name) => {
|
|
59
|
-
if (!this.capabilities.has(name)) {
|
|
60
|
-
throw new Error(`Extension capability '${name}' is not available`);
|
|
61
|
-
}
|
|
62
|
-
return this.capabilities.get(name);
|
|
63
|
-
},
|
|
64
|
-
onTeardown: (teardown) => {
|
|
65
|
-
this.teardowns.push(teardown);
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
|
-
for (const extension of extensions) {
|
|
69
|
-
extension.apply(api);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
getInstructions() {
|
|
73
|
-
return [...this.instructions];
|
|
74
|
-
}
|
|
75
|
-
async buildInitialMessages(step) {
|
|
76
|
-
const messages = [];
|
|
77
|
-
for (const buildInitialMessages of this.initialMessagesBuilders) {
|
|
78
|
-
messages.push(...(await buildInitialMessages({ step })));
|
|
79
|
-
}
|
|
80
|
-
return messages;
|
|
81
|
-
}
|
|
82
|
-
async handleToolResponses(context) {
|
|
83
|
-
for (const handleToolResponses of this.toolResponsesHooks) {
|
|
84
|
-
await handleToolResponses(context);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
async teardown() {
|
|
88
|
-
for (const teardown of [...this.teardowns].reverse()) {
|
|
89
|
-
await teardown();
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
function registerExtension(api, definition) {
|
|
94
|
-
for (const tool of asArray(definition.tools)) {
|
|
95
|
-
api.addTool(tool);
|
|
96
|
-
}
|
|
97
|
-
for (const instruction of definition.instructions ?? []) {
|
|
98
|
-
api.addInstruction(instruction);
|
|
99
|
-
}
|
|
100
|
-
if (definition.buildInitialMessages) {
|
|
101
|
-
api.addInitialMessages(definition.buildInitialMessages);
|
|
102
|
-
}
|
|
103
|
-
if (definition.handleToolResponses) {
|
|
104
|
-
api.addToolResponsesHook(definition.handleToolResponses);
|
|
105
|
-
}
|
|
106
|
-
if (definition.teardown) {
|
|
107
|
-
api.onTeardown(definition.teardown);
|
|
108
|
-
}
|
|
109
|
-
definition.setup?.(api);
|
|
110
|
-
}
|
|
111
|
-
function mergeExtensionDefinition(base, override) {
|
|
112
|
-
return {
|
|
113
|
-
name: override.name ?? base.name,
|
|
114
|
-
tools: [...asArray(base.tools), ...asArray(override.tools)],
|
|
115
|
-
instructions: [...(base.instructions ?? []), ...(override.instructions ?? [])],
|
|
116
|
-
setup: chainSync(base.setup, override.setup),
|
|
117
|
-
buildInitialMessages: combineInitialMessages(base.buildInitialMessages, override.buildInitialMessages),
|
|
118
|
-
handleToolResponses: chainAsync(base.handleToolResponses, override.handleToolResponses),
|
|
119
|
-
teardown: chainAsync(base.teardown, override.teardown),
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
function chainSync(first, second) {
|
|
123
|
-
if (!first) {
|
|
124
|
-
return second;
|
|
125
|
-
}
|
|
126
|
-
if (!second) {
|
|
127
|
-
return (...args) => {
|
|
128
|
-
first(...args);
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
return (...args) => {
|
|
132
|
-
first(...args);
|
|
133
|
-
second(...args);
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
function chainAsync(first, second) {
|
|
137
|
-
if (!first) {
|
|
138
|
-
return second
|
|
139
|
-
? async (...args) => {
|
|
140
|
-
await second(...args);
|
|
141
|
-
}
|
|
142
|
-
: undefined;
|
|
143
|
-
}
|
|
144
|
-
if (!second) {
|
|
145
|
-
return async (...args) => {
|
|
146
|
-
await first(...args);
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
return async (...args) => {
|
|
150
|
-
await first(...args);
|
|
151
|
-
await second(...args);
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
function combineInitialMessages(first, second) {
|
|
155
|
-
if (!first) {
|
|
156
|
-
return second;
|
|
157
|
-
}
|
|
158
|
-
if (!second) {
|
|
159
|
-
return first;
|
|
160
|
-
}
|
|
161
|
-
return async (context) => {
|
|
162
|
-
return [...(await first(context)), ...(await second(context))];
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
function asArray(value) {
|
|
166
|
-
if (!value) {
|
|
167
|
-
return [];
|
|
168
|
-
}
|
|
169
|
-
return Array.isArray(value) ? value : [value];
|
|
170
|
-
}
|
|
171
|
-
//# sourceMappingURL=extension.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/runtime/extension.ts"],"names":[],"mappings":"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"}
|