@xoxoai/checkmate 0.6.6 → 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
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Dawid Dobrowolski SoftQA
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
package/README.md
DELETED
|
@@ -1,294 +0,0 @@
|
|
|
1
|
-
#### □ □ ■ □
|
|
2
|
-
|
|
3
|
-
## _Checkmate - a harness for agentic acceptance_
|
|
4
|
-
|
|
5
|
-
[](https://www.npmjs.com/package/@xoxoai/checkmate)
|
|
6
|
-
|
|
7
|
-
<img src="docs/img/onboarding.gif" alt="onboarding" width="50%" centered/>
|
|
8
|
-
|
|
9
|
-
#
|
|
10
|
-
|
|
11
|
-
Think of it like QA contracts for software factories: policies define the bounds of execution, where scenarios describe the intent to verify through a domain driver. It aims to patch the gap between fully coded tests and freelance agent testing.
|
|
12
|
-
|
|
13
|
-
## Install
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npm install @xoxoai/checkmate
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Usage
|
|
20
|
-
|
|
21
|
-
#### Scenario is a JSON document:
|
|
22
|
-
|
|
23
|
-
```json
|
|
24
|
-
{
|
|
25
|
-
"schemaVersion": 1,
|
|
26
|
-
"scenario": {
|
|
27
|
-
"id": "checkout spring promo",
|
|
28
|
-
"driver": {
|
|
29
|
-
"id": "web",
|
|
30
|
-
"target": {
|
|
31
|
-
"baseUrl": "https://staging.example.test"
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
"policy": "ci",
|
|
35
|
-
"steps": [
|
|
36
|
-
{
|
|
37
|
-
"id": "start checkout",
|
|
38
|
-
"action": "Add a product to the cart",
|
|
39
|
-
"expect": "The checkout page is displayed"
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
"id": "apply promo",
|
|
43
|
-
"action": "Apply promotion code SPRING25",
|
|
44
|
-
"expect": "The order total is reduced by 25%"
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
"id": "verify total",
|
|
48
|
-
"action": "Proceed to the payment step",
|
|
49
|
-
"expect": "The order total reflects the applied promotion"
|
|
50
|
-
}
|
|
51
|
-
]
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
#### Run:
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
checkmate run scenario.json
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Checkmate writes one JSON result to stdout. Outcomes distinguish application, model, infrastructure, and invalid-invocation failures.
|
|
63
|
-
|
|
64
|
-
<details>
|
|
65
|
-
<summary>Example Results</summary>
|
|
66
|
-
|
|
67
|
-
A successful run of the scenario above:
|
|
68
|
-
|
|
69
|
-
```json
|
|
70
|
-
{
|
|
71
|
-
"kind": "run-result",
|
|
72
|
-
"schemaVersion": 1,
|
|
73
|
-
"runId": "0123456789abcdef",
|
|
74
|
-
"scenarioId": "checkout spring promo",
|
|
75
|
-
"status": "passed",
|
|
76
|
-
"category": "passed",
|
|
77
|
-
"reason": "scenario-complete",
|
|
78
|
-
"targetMutation": "possibly-mutated",
|
|
79
|
-
"startedAt": "2026-09-04T12:00:00.000Z",
|
|
80
|
-
"durationMs": 12600,
|
|
81
|
-
"driver": { "id": "web", "contractVersion": 1 },
|
|
82
|
-
"policy": {
|
|
83
|
-
"id": "ci",
|
|
84
|
-
"effectiveLimits": {
|
|
85
|
-
"scenarioTimeoutMs": 180000,
|
|
86
|
-
"stepTimeoutMs": 120000,
|
|
87
|
-
"turnsPerStep": 20,
|
|
88
|
-
"requestTimeoutMs": 60000,
|
|
89
|
-
"maxRetries": 3,
|
|
90
|
-
"loopMaxRepetitions": 5,
|
|
91
|
-
"cleanupTimeoutMs": 10000,
|
|
92
|
-
"budgetTokens": 200000
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
"usage": {
|
|
96
|
-
"promptTokens": 3600,
|
|
97
|
-
"cachedPromptTokens": 1200,
|
|
98
|
-
"completionTokens": 300,
|
|
99
|
-
"totalTokens": 3900,
|
|
100
|
-
"state": "complete"
|
|
101
|
-
},
|
|
102
|
-
"steps": [
|
|
103
|
-
{
|
|
104
|
-
"id": "start checkout",
|
|
105
|
-
"status": "passed",
|
|
106
|
-
"category": "app",
|
|
107
|
-
"reason": "met-expectation",
|
|
108
|
-
"actual": "The checkout page displays one product with a $40 order total.",
|
|
109
|
-
"turns": 3,
|
|
110
|
-
"durationMs": 4000,
|
|
111
|
-
"usage": { "promptTokens": 1200, "cachedPromptTokens": 400, "completionTokens": 100, "totalTokens": 1300 },
|
|
112
|
-
"toolCalls": [
|
|
113
|
-
{
|
|
114
|
-
"turn": 1,
|
|
115
|
-
"driverId": "web",
|
|
116
|
-
"name": "browser_click_or_hover",
|
|
117
|
-
"arguments": { "ref": "e12", "name": "Add to cart", "hover": false, "goal": "Add a product to the cart" },
|
|
118
|
-
"status": "ok"
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
"turn": 2,
|
|
122
|
-
"driverId": "web",
|
|
123
|
-
"name": "browser_click_or_hover",
|
|
124
|
-
"arguments": { "ref": "e18", "name": "Checkout", "hover": false, "goal": "Open the checkout page" },
|
|
125
|
-
"status": "ok"
|
|
126
|
-
}
|
|
127
|
-
]
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
"id": "apply promo",
|
|
131
|
-
"status": "passed",
|
|
132
|
-
"category": "app",
|
|
133
|
-
"reason": "met-expectation",
|
|
134
|
-
"actual": "SPRING25 is applied and the order total is reduced from $40 to $30.",
|
|
135
|
-
"turns": 3,
|
|
136
|
-
"durationMs": 4000,
|
|
137
|
-
"usage": { "promptTokens": 1200, "cachedPromptTokens": 400, "completionTokens": 100, "totalTokens": 1300 },
|
|
138
|
-
"toolCalls": [
|
|
139
|
-
{
|
|
140
|
-
"turn": 1,
|
|
141
|
-
"driverId": "web",
|
|
142
|
-
"name": "browser_type_or_select",
|
|
143
|
-
"arguments": {
|
|
144
|
-
"elements": [
|
|
145
|
-
{ "ref": "e24", "name": "Promotion code", "text": "SPRING25", "clear": true, "select": false }
|
|
146
|
-
],
|
|
147
|
-
"goal": "Enter the promotion code"
|
|
148
|
-
},
|
|
149
|
-
"status": "ok"
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
"turn": 2,
|
|
153
|
-
"driverId": "web",
|
|
154
|
-
"name": "browser_click_or_hover",
|
|
155
|
-
"arguments": { "ref": "e25", "name": "Apply", "hover": false, "goal": "Apply the promotion code" },
|
|
156
|
-
"status": "ok"
|
|
157
|
-
}
|
|
158
|
-
]
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
"id": "verify total",
|
|
162
|
-
"status": "passed",
|
|
163
|
-
"category": "app",
|
|
164
|
-
"reason": "met-expectation",
|
|
165
|
-
"actual": "The payment step displays the discounted order total of $30.",
|
|
166
|
-
"turns": 2,
|
|
167
|
-
"durationMs": 4000,
|
|
168
|
-
"usage": { "promptTokens": 1200, "cachedPromptTokens": 400, "completionTokens": 100, "totalTokens": 1300 },
|
|
169
|
-
"toolCalls": [
|
|
170
|
-
{
|
|
171
|
-
"turn": 1,
|
|
172
|
-
"driverId": "web",
|
|
173
|
-
"name": "browser_click_or_hover",
|
|
174
|
-
"arguments": {
|
|
175
|
-
"ref": "e30",
|
|
176
|
-
"name": "Continue to payment",
|
|
177
|
-
"hover": false,
|
|
178
|
-
"goal": "Verify the discounted total at the payment step"
|
|
179
|
-
},
|
|
180
|
-
"status": "ok"
|
|
181
|
-
}
|
|
182
|
-
]
|
|
183
|
-
}
|
|
184
|
-
],
|
|
185
|
-
"evidence": { "state": "complete", "references": [] },
|
|
186
|
-
"diagnostics": []
|
|
187
|
-
}
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
</details>
|
|
191
|
-
|
|
192
|
-
## Configuration
|
|
193
|
-
|
|
194
|
-
Execution is configured through `checkmate.config.json`.
|
|
195
|
-
|
|
196
|
-
Policies keep execution settings outside test intent. For example, a policy can define limits, evidence retention, and allowed driver tools:
|
|
197
|
-
|
|
198
|
-
<details>
|
|
199
|
-
<summary>Example Configuration</summary>
|
|
200
|
-
|
|
201
|
-
```json
|
|
202
|
-
{
|
|
203
|
-
"schemaVersion": 1,
|
|
204
|
-
"outputDirectory": ".checkmate/runs",
|
|
205
|
-
"defaultPolicy": "ci",
|
|
206
|
-
"secretBindings": {
|
|
207
|
-
"openai-api-key": {
|
|
208
|
-
"source": "environment",
|
|
209
|
-
"name": "CHECKMATE_OPENAI_API_KEY"
|
|
210
|
-
}
|
|
211
|
-
},
|
|
212
|
-
"policies": {
|
|
213
|
-
"ci": {
|
|
214
|
-
"modelEgress": {
|
|
215
|
-
"provider": {
|
|
216
|
-
"id": "openai",
|
|
217
|
-
"model": "gpt-5-mini",
|
|
218
|
-
"apiKeyBinding": "openai-api-key"
|
|
219
|
-
},
|
|
220
|
-
"textRedaction": "on",
|
|
221
|
-
"allowOpaque": false,
|
|
222
|
-
"maxStepBytes": 1048576,
|
|
223
|
-
"maxMessageBytes": 262144
|
|
224
|
-
},
|
|
225
|
-
"bounds": {
|
|
226
|
-
"scenarioTimeoutMs": 180000,
|
|
227
|
-
"stepTimeoutMs": 120000,
|
|
228
|
-
"turnsPerStep": 20,
|
|
229
|
-
"requestTimeoutMs": 60000,
|
|
230
|
-
"maxRetries": 3,
|
|
231
|
-
"loopMaxRepetitions": 5,
|
|
232
|
-
"cleanupTimeoutMs": 10000,
|
|
233
|
-
"budgetTokens": 200000
|
|
234
|
-
},
|
|
235
|
-
"evidence": {
|
|
236
|
-
"retention": "retain-on-failure",
|
|
237
|
-
"redaction": "on",
|
|
238
|
-
"allowOpaque": false
|
|
239
|
-
},
|
|
240
|
-
"drivers": {
|
|
241
|
-
"web": {
|
|
242
|
-
"settings": {
|
|
243
|
-
"headless": true,
|
|
244
|
-
"logLevel": "off",
|
|
245
|
-
"logsAsEvidence": false,
|
|
246
|
-
"snapshotFilter": false
|
|
247
|
-
},
|
|
248
|
-
"tools": { "allowed": ["*"] }
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
},
|
|
253
|
-
"drivers": {
|
|
254
|
-
"web": {
|
|
255
|
-
"package": "@xoxoai/checkmate/driver-web",
|
|
256
|
-
"secrets": {}
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
</details>
|
|
263
|
-
|
|
264
|
-
## Drivers
|
|
265
|
-
|
|
266
|
-
#### Checkmate is designed around domain-specific drivers.
|
|
267
|
-
|
|
268
|
-
A driver defines how the model interacts with a particular system while the harness keeps scenario execution, policies, results, and evidence consistent.
|
|
269
|
-
|
|
270
|
-
The included `web` driver is a simple reference implementation. Other domains can be integrated through the same public driver contract.
|
|
271
|
-
|
|
272
|
-
## Commands
|
|
273
|
-
|
|
274
|
-
```text
|
|
275
|
-
checkmate run <request.json|->
|
|
276
|
-
checkmate validate <request.json>
|
|
277
|
-
checkmate describe
|
|
278
|
-
checkmate --help
|
|
279
|
-
checkmate --version
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
`describe` returns the drivers, policies, and contract versions available in the current environment.
|
|
283
|
-
|
|
284
|
-
## Docs
|
|
285
|
-
|
|
286
|
-
[Configuration](docs/CONFIGURATION.md)
|
|
287
|
-
[Evidence](docs/EVIDENCE.md)
|
|
288
|
-
[Drivers](docs/DRIVERS.md)
|
|
289
|
-
[CLI](docs/CLI.md)
|
|
290
|
-
[Dev](docs/DEVELOPMENT.md)
|
|
291
|
-
|
|
292
|
-
## License
|
|
293
|
-
|
|
294
|
-
[MIT](LICENSE)
|
package/bin/checkmate.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import { runCli } from '../dist/cli/main.js'
|
|
4
|
-
|
|
5
|
-
runCli(process.argv.slice(2)).then(
|
|
6
|
-
(code) => {
|
|
7
|
-
process.exitCode = code
|
|
8
|
-
},
|
|
9
|
-
(error) => {
|
|
10
|
-
console.error(error instanceof Error ? error.message : String(error))
|
|
11
|
-
process.exitCode = 1
|
|
12
|
-
}
|
|
13
|
-
)
|
package/dist/ai/client.d.ts
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { ChatCompletion, ChatCompletionAssistantMessageParam, ChatCompletionMessageParam } from 'openai/resources/chat/completions';
|
|
2
|
-
import { RuntimeConfig } from '../runtime/config.js';
|
|
3
|
-
import type { ModelEgressPolicyV1 } from '../contracts/types.js';
|
|
4
|
-
import type { RuntimeLogger } from '../logging/types.js';
|
|
5
|
-
import { ToolRegistry } from '../tools/registry.js';
|
|
6
|
-
import { Step } from '../runtime/types.js';
|
|
7
|
-
export type AiClientDependencies = {
|
|
8
|
-
config: RuntimeConfig;
|
|
9
|
-
toolRegistry: ToolRegistry;
|
|
10
|
-
apiKey: string;
|
|
11
|
-
modelEgress?: ModelEgressPolicyV1;
|
|
12
|
-
exactSecrets?: Iterable<string>;
|
|
13
|
-
logger: RuntimeLogger;
|
|
14
|
-
};
|
|
15
|
-
export type AiSendOptions = {
|
|
16
|
-
step?: Step;
|
|
17
|
-
signal?: AbortSignal;
|
|
18
|
-
};
|
|
19
|
-
export type AiResponse = {
|
|
20
|
-
response: ChatCompletion;
|
|
21
|
-
assistantMessages: ChatCompletionAssistantMessageParam[];
|
|
22
|
-
};
|
|
23
|
-
export declare class AiClient {
|
|
24
|
-
private client;
|
|
25
|
-
private readonly config;
|
|
26
|
-
private readonly toolRegistry;
|
|
27
|
-
private readonly apiKey;
|
|
28
|
-
private readonly modelEgress;
|
|
29
|
-
private readonly exactSecrets;
|
|
30
|
-
private readonly runtimeLogger;
|
|
31
|
-
private readonly retryableStatus;
|
|
32
|
-
private sendsTemperature;
|
|
33
|
-
readonly temperature: number;
|
|
34
|
-
constructor({ config, toolRegistry, apiKey, modelEgress, exactSecrets, logger: runtimeLogger, }: AiClientDependencies);
|
|
35
|
-
send(messages: ChatCompletionMessageParam[], options?: AiSendOptions): Promise<AiResponse>;
|
|
36
|
-
countHistoryTokens(messages: ChatCompletionMessageParam[]): number;
|
|
37
|
-
private complete;
|
|
38
|
-
/**
|
|
39
|
-
* Whether the provider rejected the request because of the configured temperature.
|
|
40
|
-
*
|
|
41
|
-
* Some models — OpenAI's `gpt-5` family and its reasoning models among them — accept only
|
|
42
|
-
* their own default temperature and answer any other value with a 400. Detecting that from
|
|
43
|
-
* the response is what keeps the policy temperature working against any OpenAI-compatible
|
|
44
|
-
* endpoint; a hard-coded list of model families would go stale the week after it was written.
|
|
45
|
-
*/
|
|
46
|
-
private rejectsTemperature;
|
|
47
|
-
private openai;
|
|
48
|
-
private retainAssistantMessages;
|
|
49
|
-
private sanitizeAssistantMessage;
|
|
50
|
-
private executeWithRetry;
|
|
51
|
-
private getStatus;
|
|
52
|
-
private isRetryable;
|
|
53
|
-
private getRetryAfterSeconds;
|
|
54
|
-
private calculateBackoff;
|
|
55
|
-
private sleep;
|
|
56
|
-
private enhanceError;
|
|
57
|
-
private isToolError;
|
|
58
|
-
private formatStepContext;
|
|
59
|
-
private formatRecentMessages;
|
|
60
|
-
private formatError;
|
|
61
|
-
private formatContentPreview;
|
|
62
|
-
private countContentChars;
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=client.d.ts.map
|
package/dist/ai/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ai/client.ts"],"names":[],"mappings":"AACA,OAAO,EACN,cAAc,EACd,mCAAmC,EAEnC,0BAA0B,EAC1B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE1C,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,aAAa,CAAA;IACrB,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,mBAAmB,CAAA;IACjC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC/B,MAAM,EAAE,aAAa,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,MAAM,CAAC,EAAE,WAAW,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,cAAc,CAAA;IACxB,iBAAiB,EAAE,mCAAmC,EAAE,CAAA;CACxD,CAAA;AAED,qBAAa,QAAQ;IACpB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiC;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2D;IAC3F,OAAO,CAAC,gBAAgB,CAAO;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;gBAEhB,EACX,MAAM,EACN,YAAY,EACZ,MAAM,EACN,WAAW,EACX,YAAiB,EACjB,MAAM,EAAE,aAAa,GACrB,EAAE,oBAAoB;IAUjB,IAAI,CAAC,QAAQ,EAAE,0BAA0B,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBpG,kBAAkB,CAAC,QAAQ,EAAE,0BAA0B,EAAE,GAAG,MAAM;YAKpD,QAAQ;IAwBtB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,MAAM;IAed,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,wBAAwB;YAgClB,gBAAgB;IAmC9B,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,KAAK;IAgBb,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,WAAW;IA0CnB,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,iBAAiB;CA0BzB"}
|