e2e 0.15.2 → 0.17.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/.build.json +1 -1
- package/dist/agent/act-validation.d.ts +10 -1
- package/dist/agent/act-validation.js +48 -1
- package/dist/agent/act.d.ts +1 -2
- package/dist/agent/act.js +29 -9
- package/dist/agent/action-dispatcher.d.ts +0 -1
- package/dist/agent/action-dispatcher.js +4 -6
- package/dist/agent/action-names.d.ts +0 -1
- package/dist/agent/action-names.js +0 -1
- package/dist/agent/actions.d.ts +32 -24
- package/dist/agent/actions.js +38 -25
- package/dist/agent/agent-brand.d.ts +0 -1
- package/dist/agent/agent-brand.js +0 -1
- package/dist/agent/ai-sdk.d.ts +7 -1
- package/dist/agent/ai-sdk.js +11 -1
- package/dist/agent/call-options.d.ts +0 -1
- package/dist/agent/call-options.js +0 -1
- package/dist/agent/default-agent.d.ts +0 -1
- package/dist/agent/default-agent.js +0 -1
- package/dist/agent/derived.d.ts +0 -1
- package/dist/agent/derived.js +0 -1
- package/dist/agent/error.d.ts +0 -1
- package/dist/agent/error.js +0 -1
- package/dist/agent/executor.d.ts +0 -1
- package/dist/agent/executor.js +0 -1
- package/dist/agent/index.d.ts +0 -1
- package/dist/agent/index.js +0 -1
- package/dist/agent/interactive-step.d.ts +0 -1
- package/dist/agent/interactive-step.js +0 -1
- package/dist/agent/invocation.d.ts +0 -1
- package/dist/agent/invocation.js +10 -5
- package/dist/agent/ledger.d.ts +0 -1
- package/dist/agent/ledger.js +0 -1
- package/dist/agent/loop-guards.d.ts +0 -1
- package/dist/agent/loop-guards.js +0 -1
- package/dist/agent/model/adapter.d.ts +0 -1
- package/dist/agent/model/adapter.js +0 -1
- package/dist/agent/model/overflow.d.ts +0 -1
- package/dist/agent/model/overflow.js +0 -1
- package/dist/agent/model/provider-hints.d.ts +0 -1
- package/dist/agent/model/provider-hints.js +0 -1
- package/dist/agent/model/schema.d.ts +0 -1
- package/dist/agent/model/schema.js +0 -1
- package/dist/agent/model/sdk.d.ts +0 -1
- package/dist/agent/model/sdk.js +2 -1
- package/dist/agent/model/stall.d.ts +0 -1
- package/dist/agent/model/stall.js +0 -1
- package/dist/agent/model/tool-choice.d.ts +0 -1
- package/dist/agent/model/tool-choice.js +0 -1
- package/dist/agent/observation-budget.d.ts +0 -1
- package/dist/agent/observation-budget.js +0 -1
- package/dist/agent/observation-feed.d.ts +5 -7
- package/dist/agent/observation-feed.js +5 -8
- package/dist/agent/observation.d.ts +40 -12
- package/dist/agent/observation.js +109 -60
- package/dist/agent/operation-queue.d.ts +0 -1
- package/dist/agent/operation-queue.js +0 -1
- package/dist/agent/phases.d.ts +0 -1
- package/dist/agent/phases.js +0 -1
- package/dist/agent/pixels.d.ts +0 -1
- package/dist/agent/pixels.js +0 -1
- package/dist/agent/point-tap.d.ts +8 -9
- package/dist/agent/point-tap.js +1 -2
- package/dist/agent/primitives.d.ts +6 -1
- package/dist/agent/primitives.js +4 -2
- package/dist/agent/prompts.d.ts +0 -1
- package/dist/agent/prompts.js +0 -1
- package/dist/agent/protocol.d.ts +0 -1
- package/dist/agent/protocol.js +0 -1
- package/dist/agent/public.d.ts +0 -1
- package/dist/agent/public.js +0 -1
- package/dist/agent/reading.d.ts +0 -1
- package/dist/agent/reading.js +0 -1
- package/dist/agent/replay.d.ts +19 -9
- package/dist/agent/replay.js +11 -15
- package/dist/agent/screen-update.d.ts +0 -1
- package/dist/agent/screen-update.js +0 -1
- package/dist/agent/scroll-target.d.ts +2 -4
- package/dist/agent/scroll-target.js +0 -1
- package/dist/agent/secrets.d.ts +0 -1
- package/dist/agent/secrets.js +0 -1
- package/dist/agent/settle-policy.d.ts +0 -1
- package/dist/agent/settle-policy.js +0 -1
- package/dist/agent/step-accounting.d.ts +0 -1
- package/dist/agent/step-accounting.js +0 -1
- package/dist/agent/step-cache.d.ts +41 -15
- package/dist/agent/step-cache.js +147 -63
- package/dist/agent/tool-loop.d.ts +0 -1
- package/dist/agent/tool-loop.js +2 -1
- package/dist/agent/tool-output.d.ts +0 -1
- package/dist/agent/tool-output.js +0 -1
- package/dist/agent/tool.d.ts +0 -1
- package/dist/agent/tool.js +0 -1
- package/dist/agent/transcript-compaction.d.ts +0 -1
- package/dist/agent/transcript-compaction.js +0 -1
- package/dist/agent/upload-paths.d.ts +0 -1
- package/dist/agent/upload-paths.js +0 -1
- package/dist/agent/usage.d.ts +0 -1
- package/dist/agent/usage.js +0 -1
- package/dist/cache/anchors.d.ts +72 -24
- package/dist/cache/anchors.js +233 -61
- package/dist/cache/context.d.ts +25 -15
- package/dist/cache/context.js +50 -9
- package/dist/cache/decide.d.ts +2 -3
- package/dist/cache/decide.js +4 -7
- package/dist/cache/identity.d.ts +18 -5
- package/dist/cache/identity.js +9 -5
- package/dist/cache/recorder.d.ts +15 -2
- package/dist/cache/recorder.js +36 -24
- package/dist/cache/rekeyed.d.ts +46 -0
- package/dist/cache/rekeyed.js +89 -0
- package/dist/cache/relocate.d.ts +14 -15
- package/dist/cache/relocate.js +33 -26
- package/dist/cache/route.d.ts +32 -34
- package/dist/cache/route.js +94 -51
- package/dist/cache/store.d.ts +6 -1
- package/dist/cache/store.js +21 -2
- package/dist/cache/template.d.ts +0 -1
- package/dist/cache/template.js +0 -1
- package/dist/cache/trace.d.ts +53 -15
- package/dist/cache/trace.js +70 -29
- package/dist/cli/bin.d.ts +0 -1
- package/dist/cli/bin.js +0 -1
- package/dist/cli/cache.d.ts +0 -1
- package/dist/cli/cache.js +0 -1
- package/dist/cli/docs-url.d.ts +0 -1
- package/dist/cli/docs-url.js +0 -1
- package/dist/cli/feedback.d.ts +0 -1
- package/dist/cli/feedback.js +0 -1
- package/dist/cli/guide.d.ts +0 -1
- package/dist/cli/guide.js +0 -1
- package/dist/cli/index.d.ts +0 -1
- package/dist/cli/index.js +10 -11
- package/dist/cli/init/agent-skill.d.ts +0 -1
- package/dist/cli/init/agent-skill.js +0 -1
- package/dist/cli/init/engines.d.ts +1 -4
- package/dist/cli/init/engines.js +2 -3
- package/dist/cli/init/gateways.d.ts +1 -2
- package/dist/cli/init/gateways.js +11 -2
- package/dist/cli/init/mcp-config.d.ts +0 -1
- package/dist/cli/init/mcp-config.js +0 -1
- package/dist/cli/init/package.d.ts +0 -1
- package/dist/cli/init/package.js +0 -1
- package/dist/cli/init/scaffold.d.ts +0 -1
- package/dist/cli/init/scaffold.js +0 -1
- package/dist/cli/init/sibling-versions.json +1 -1
- package/dist/cli/init/versions.d.ts +0 -9
- package/dist/cli/init/versions.js +1 -11
- package/dist/cli/init.d.ts +0 -1
- package/dist/cli/init.js +0 -1
- package/dist/cli/mcp.d.ts +9 -2
- package/dist/cli/mcp.js +14 -2
- package/dist/cli/signals.d.ts +0 -1
- package/dist/cli/signals.js +0 -1
- package/dist/cli/skill.d.ts +0 -1
- package/dist/cli/skill.js +0 -1
- package/dist/cli/telemetry.d.ts +0 -1
- package/dist/cli/telemetry.js +1 -2
- package/dist/cli/wordmark.d.ts +0 -1
- package/dist/cli/wordmark.js +0 -1
- package/dist/collect/collect.d.ts +0 -1
- package/dist/collect/collect.js +3 -2
- package/dist/collect/registry.d.ts +6 -3
- package/dist/collect/registry.js +31 -14
- package/dist/collect/select.d.ts +0 -1
- package/dist/collect/select.js +0 -1
- package/dist/config/agent.d.ts +0 -1
- package/dist/config/agent.js +0 -1
- package/dist/config/app.d.ts +0 -1
- package/dist/config/app.js +0 -1
- package/dist/config/command.d.ts +0 -1
- package/dist/config/command.js +0 -1
- package/dist/config/diagnose.d.ts +0 -1
- package/dist/config/diagnose.js +0 -1
- package/dist/config/esm-hooks.d.ts +0 -1
- package/dist/config/esm-hooks.js +0 -1
- package/dist/config/load.d.ts +0 -1
- package/dist/config/load.js +0 -1
- package/dist/config/resolve.d.ts +1 -1
- package/dist/config/resolve.js +33 -2
- package/dist/config/secrets.d.ts +0 -1
- package/dist/config/secrets.js +0 -1
- package/dist/config/targets.d.ts +0 -1
- package/dist/config/targets.js +0 -1
- package/dist/config/validate.d.ts +0 -1
- package/dist/config/validate.js +0 -1
- package/dist/engine/contract.d.ts +0 -1
- package/dist/engine/contract.js +0 -1
- package/dist/engine/index.d.ts +3 -4
- package/dist/engine/index.js +4 -4
- package/dist/engine/manifest.d.ts +0 -1
- package/dist/engine/manifest.js +0 -1
- package/dist/engine/recording.d.ts +0 -1
- package/dist/engine/recording.js +0 -1
- package/dist/engine/resolve.d.ts +0 -1
- package/dist/engine/resolve.js +0 -1
- package/dist/engine/session.d.ts +0 -1
- package/dist/engine/session.js +0 -1
- package/dist/engine/surface.d.ts +0 -1
- package/dist/engine/surface.js +0 -1
- package/dist/engine/timing.d.ts +0 -1
- package/dist/engine/timing.js +0 -1
- package/dist/expect/async.d.ts +0 -1
- package/dist/expect/async.js +101 -59
- package/dist/expect/attempt.d.ts +0 -1
- package/dist/expect/attempt.js +0 -1
- package/dist/expect/index.d.ts +0 -1
- package/dist/expect/index.js +0 -1
- package/dist/expect/poll-scope.d.ts +52 -0
- package/dist/expect/poll-scope.js +113 -0
- package/dist/expect/poll.d.ts +0 -1
- package/dist/expect/poll.js +31 -5
- package/dist/expect/soft.d.ts +0 -1
- package/dist/expect/soft.js +0 -1
- package/dist/expect/values.d.ts +0 -1
- package/dist/expect/values.js +11 -5
- package/dist/explore/body.d.ts +0 -1
- package/dist/explore/body.js +0 -1
- package/dist/explore/executor.d.ts +0 -1
- package/dist/explore/executor.js +0 -1
- package/dist/explore/index.d.ts +0 -1
- package/dist/explore/index.js +16 -2
- package/dist/explore/plan.d.ts +0 -1
- package/dist/explore/plan.js +0 -1
- package/dist/explore/progress.d.ts +0 -1
- package/dist/explore/progress.js +0 -1
- package/dist/explore/state.d.ts +0 -1
- package/dist/explore/state.js +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/internal/abandoned.d.ts +11 -0
- package/dist/internal/abandoned.js +23 -0
- package/dist/internal/ai-trace.d.ts +0 -1
- package/dist/internal/ai-trace.js +0 -1
- package/dist/internal/atomic-write.d.ts +0 -1
- package/dist/internal/atomic-write.js +0 -1
- package/dist/internal/brands.d.ts +2 -1
- package/dist/internal/brands.js +2 -1
- package/dist/internal/client-identity.d.ts +9 -0
- package/dist/internal/client-identity.js +14 -0
- package/dist/internal/debug.d.ts +0 -1
- package/dist/internal/debug.js +0 -1
- package/dist/internal/env.d.ts +0 -1
- package/dist/internal/env.js +0 -1
- package/dist/internal/errors.d.ts +0 -1
- package/dist/internal/errors.js +0 -1
- package/dist/internal/geometry.d.ts +0 -1
- package/dist/internal/geometry.js +0 -1
- package/dist/internal/git.d.ts +0 -1
- package/dist/internal/git.js +0 -1
- package/dist/internal/globs.d.ts +0 -1
- package/dist/internal/globs.js +0 -1
- package/dist/internal/ids.d.ts +0 -1
- package/dist/internal/ids.js +0 -1
- package/dist/internal/json-value.d.ts +0 -1
- package/dist/internal/json-value.js +0 -1
- package/dist/internal/keys.d.ts +0 -1
- package/dist/internal/keys.js +0 -1
- package/dist/internal/node-version.d.ts +0 -1
- package/dist/internal/node-version.js +0 -1
- package/dist/internal/objects.d.ts +0 -1
- package/dist/internal/objects.js +0 -1
- package/dist/internal/options.d.ts +0 -1
- package/dist/internal/options.js +0 -1
- package/dist/internal/package-manager.d.ts +0 -1
- package/dist/internal/package-manager.js +0 -1
- package/dist/internal/package-version.d.ts +0 -1
- package/dist/internal/package-version.js +0 -1
- package/dist/internal/paths.d.ts +0 -1
- package/dist/internal/paths.js +0 -1
- package/dist/internal/realm-slot.d.ts +0 -1
- package/dist/internal/realm-slot.js +0 -1
- package/dist/internal/recording-modes.d.ts +0 -1
- package/dist/internal/recording-modes.js +0 -1
- package/dist/internal/redact.d.ts +7 -5
- package/dist/internal/redact.js +116 -24
- package/dist/internal/regexp.d.ts +0 -1
- package/dist/internal/regexp.js +0 -1
- package/dist/internal/roles.d.ts +0 -1
- package/dist/internal/roles.js +0 -1
- package/dist/internal/skip.d.ts +0 -1
- package/dist/internal/skip.js +0 -1
- package/dist/internal/source.d.ts +0 -1
- package/dist/internal/source.js +0 -1
- package/dist/internal/standard-schema.d.ts +0 -1
- package/dist/internal/standard-schema.js +0 -1
- package/dist/internal/suggest.d.ts +0 -1
- package/dist/internal/suggest.js +0 -1
- package/dist/internal/text.d.ts +8 -1
- package/dist/internal/text.js +13 -2
- package/dist/internal/time.d.ts +6 -1
- package/dist/internal/time.js +25 -14
- package/dist/internal/urls.d.ts +9 -6
- package/dist/internal/urls.js +19 -11
- package/dist/internal/vcs.d.ts +0 -1
- package/dist/internal/vcs.js +0 -1
- package/dist/internal/zip.d.ts +0 -1
- package/dist/internal/zip.js +0 -1
- package/dist/locator/engine.d.ts +12 -3
- package/dist/locator/engine.js +8 -4
- package/dist/locator/expression.d.ts +0 -1
- package/dist/locator/expression.js +0 -1
- package/dist/locator/screen.d.ts +0 -1
- package/dist/locator/screen.js +28 -5
- package/dist/mcp/catalog.d.ts +7 -3
- package/dist/mcp/catalog.js +8 -9
- package/dist/mcp/config.d.ts +0 -1
- package/dist/mcp/config.js +0 -1
- package/dist/mcp/recording.d.ts +0 -1
- package/dist/mcp/recording.js +0 -1
- package/dist/mcp/server.d.ts +8 -1
- package/dist/mcp/server.js +8 -5
- package/dist/mcp/session.d.ts +4 -2
- package/dist/mcp/session.js +44 -22
- package/dist/mcp/sessions.d.ts +2 -1
- package/dist/mcp/sessions.js +5 -2
- package/dist/mcp/tools.d.ts +7 -6
- package/dist/mcp/tools.js +36 -11
- package/dist/mcp/usage.d.ts +61 -0
- package/dist/mcp/usage.js +73 -0
- package/dist/oauth/callback-server.d.ts +0 -1
- package/dist/oauth/callback-server.js +0 -1
- package/dist/oauth/chatgpt.d.ts +0 -1
- package/dist/oauth/chatgpt.js +3 -24
- package/dist/oauth/cli.d.ts +0 -1
- package/dist/oauth/cli.js +1 -1
- package/dist/oauth/copilot.d.ts +5 -5
- package/dist/oauth/copilot.js +80 -8
- package/dist/oauth/device-code.d.ts +0 -1
- package/dist/oauth/device-code.js +0 -1
- package/dist/oauth/errors.d.ts +0 -1
- package/dist/oauth/errors.js +0 -1
- package/dist/oauth/fetch.d.ts +0 -1
- package/dist/oauth/fetch.js +0 -1
- package/dist/oauth/grok.d.ts +0 -1
- package/dist/oauth/grok.js +2 -2
- package/dist/oauth/jwt.d.ts +0 -1
- package/dist/oauth/jwt.js +0 -1
- package/dist/oauth/login.d.ts +0 -1
- package/dist/oauth/login.js +0 -1
- package/dist/oauth/models.d.ts +0 -1
- package/dist/oauth/models.js +2 -2
- package/dist/oauth/opencode-console.d.ts +10 -0
- package/dist/oauth/opencode-console.js +133 -0
- package/dist/oauth/pkce.d.ts +0 -1
- package/dist/oauth/pkce.js +0 -1
- package/dist/oauth/providers/github-copilot.d.ts +12 -1
- package/dist/oauth/providers/github-copilot.js +80 -19
- package/dist/oauth/providers/openai.d.ts +0 -1
- package/dist/oauth/providers/openai.js +1 -2
- package/dist/oauth/providers/opencode-console.d.ts +31 -0
- package/dist/oauth/providers/opencode-console.js +148 -0
- package/dist/oauth/providers/xai.d.ts +0 -1
- package/dist/oauth/providers/xai.js +0 -1
- package/dist/oauth/providers.d.ts +2 -7
- package/dist/oauth/providers.js +3 -8
- package/dist/oauth/responses.d.ts +9 -0
- package/dist/oauth/responses.js +23 -0
- package/dist/oauth/sse.d.ts +0 -1
- package/dist/oauth/sse.js +0 -1
- package/dist/oauth/store.d.ts +0 -1
- package/dist/oauth/store.js +0 -1
- package/dist/oauth/token-endpoint.d.ts +0 -1
- package/dist/oauth/token-endpoint.js +0 -1
- package/dist/oauth/types.d.ts +0 -1
- package/dist/oauth/types.js +0 -1
- package/dist/params.d.ts +0 -1
- package/dist/params.js +0 -1
- package/dist/report/build.d.ts +26 -1
- package/dist/report/build.js +16 -9
- package/dist/report/builtin.d.ts +0 -1
- package/dist/report/builtin.js +0 -1
- package/dist/report/code-frame.d.ts +0 -1
- package/dist/report/code-frame.js +0 -1
- package/dist/report/debug-steps.d.ts +0 -1
- package/dist/report/debug-steps.js +0 -1
- package/dist/report/explore-text.d.ts +0 -1
- package/dist/report/explore-text.js +0 -1
- package/dist/report/failure-text.d.ts +6 -2
- package/dist/report/failure-text.js +14 -5
- package/dist/report/format.d.ts +10 -6
- package/dist/report/format.js +12 -6
- package/dist/report/json.d.ts +0 -1
- package/dist/report/json.js +0 -1
- package/dist/report/junit.d.ts +0 -1
- package/dist/report/junit.js +11 -13
- package/dist/report/list-explore.d.ts +0 -1
- package/dist/report/list-explore.js +0 -1
- package/dist/report/list-model.d.ts +0 -1
- package/dist/report/list-model.js +0 -1
- package/dist/report/list-steps.d.ts +0 -1
- package/dist/report/list-steps.js +0 -1
- package/dist/report/list.d.ts +1 -1
- package/dist/report/list.js +38 -19
- package/dist/report/live-window.d.ts +0 -1
- package/dist/report/live-window.js +0 -1
- package/dist/report/markdown-text.d.ts +0 -1
- package/dist/report/markdown-text.js +0 -1
- package/dist/report/markdown.d.ts +1 -2
- package/dist/report/markdown.js +37 -15
- package/dist/report/outcome.d.ts +0 -1
- package/dist/report/outcome.js +0 -1
- package/dist/report/repeats.d.ts +6 -2
- package/dist/report/repeats.js +12 -4
- package/dist/report/running-tree.d.ts +0 -1
- package/dist/report/running-tree.js +0 -1
- package/dist/report/write.d.ts +0 -1
- package/dist/report/write.js +0 -1
- package/dist/run/app-ports.d.ts +0 -1
- package/dist/run/app-ports.js +0 -1
- package/dist/run/artifacts.d.ts +18 -1
- package/dist/run/artifacts.js +68 -2
- package/dist/run/budget.d.ts +0 -1
- package/dist/run/budget.js +0 -1
- package/dist/run/declared-processes.d.ts +0 -1
- package/dist/run/declared-processes.js +0 -1
- package/dist/run/events.d.ts +0 -1
- package/dist/run/events.js +0 -1
- package/dist/run/execute.d.ts +9 -1
- package/dist/run/execute.js +55 -29
- package/dist/run/extended-fixtures.d.ts +0 -1
- package/dist/run/extended-fixtures.js +6 -3
- package/dist/run/failure-evidence.d.ts +0 -1
- package/dist/run/failure-evidence.js +4 -3
- package/dist/run/fixture-recording.d.ts +0 -1
- package/dist/run/fixture-recording.js +0 -1
- package/dist/run/fixtures.d.ts +0 -1
- package/dist/run/fixtures.js +6 -9
- package/dist/run/in-process.d.ts +2 -1
- package/dist/run/in-process.js +1 -1
- package/dist/run/last-run.d.ts +42 -9
- package/dist/run/last-run.js +121 -15
- package/dist/run/managed-process.d.ts +0 -1
- package/dist/run/managed-process.js +0 -1
- package/dist/run/output.d.ts +0 -1
- package/dist/run/output.js +0 -1
- package/dist/run/process-pool.d.ts +0 -1
- package/dist/run/process-pool.js +0 -1
- package/dist/run/provision.d.ts +0 -1
- package/dist/run/provision.js +0 -1
- package/dist/run/realm.d.ts +6 -2
- package/dist/run/realm.js +21 -8
- package/dist/run/records.d.ts +16 -1
- package/dist/run/records.js +26 -1
- package/dist/run/retry.d.ts +3 -2
- package/dist/run/retry.js +4 -3
- package/dist/run/runner.d.ts +3 -2
- package/dist/run/runner.js +70 -32
- package/dist/run/scheduler.d.ts +0 -1
- package/dist/run/scheduler.js +0 -1
- package/dist/run/secrecy.d.ts +15 -1
- package/dist/run/secrecy.js +27 -2
- package/dist/run/serial.d.ts +2 -1
- package/dist/run/serial.js +8 -6
- package/dist/run/sessions.d.ts +0 -1
- package/dist/run/sessions.js +0 -1
- package/dist/run/standalone.d.ts +0 -1
- package/dist/run/standalone.js +3 -3
- package/dist/run/steps.d.ts +2 -9
- package/dist/run/steps.js +7 -22
- package/dist/run/trace-redaction.d.ts +0 -1
- package/dist/run/trace-redaction.js +0 -1
- package/dist/run/unit-runner.d.ts +0 -1
- package/dist/run/unit-runner.js +0 -1
- package/dist/run/units.d.ts +0 -1
- package/dist/run/units.js +0 -1
- package/dist/run/worker/entry.d.ts +0 -1
- package/dist/run/worker/entry.js +7 -7
- package/dist/run/worker/handle.d.ts +0 -1
- package/dist/run/worker/handle.js +0 -1
- package/dist/run/worker/protocol.d.ts +2 -1
- package/dist/run/worker/protocol.js +0 -1
- package/dist/run/worker/session.d.ts +2 -1
- package/dist/run/worker/session.js +1 -1
- package/dist/run/worker-models.d.ts +0 -1
- package/dist/run/worker-models.js +0 -1
- package/dist/secrets.d.ts +0 -1
- package/dist/secrets.js +0 -1
- package/dist/telemetry/checkout.d.ts +0 -1
- package/dist/telemetry/checkout.js +0 -1
- package/dist/telemetry/environment.d.ts +0 -1
- package/dist/telemetry/environment.js +0 -1
- package/dist/telemetry/events.d.ts +26 -10
- package/dist/telemetry/events.js +108 -13
- package/dist/telemetry/failure-kind.d.ts +0 -1
- package/dist/telemetry/failure-kind.js +0 -1
- package/dist/telemetry/posthog.d.ts +0 -1
- package/dist/telemetry/posthog.js +0 -1
- package/dist/telemetry/project.d.ts +0 -1
- package/dist/telemetry/project.js +0 -1
- package/dist/telemetry/store.d.ts +0 -1
- package/dist/telemetry/store.js +0 -1
- package/dist/telemetry/telemetry.d.ts +19 -8
- package/dist/telemetry/telemetry.js +26 -9
- package/dist/telemetry/token.d.ts +0 -1
- package/dist/telemetry/token.js +0 -1
- package/dist/types.d.ts +34 -26
- package/dist/types.js +0 -1
- package/docs/agents.mdx +6 -3
- package/docs/assertions.mdx +94 -0
- package/docs/authentication.mdx +3 -1
- package/docs/browser.mdx +42 -6
- package/docs/cache.mdx +64 -18
- package/docs/ci.mdx +11 -7
- package/docs/debugging.mdx +6 -3
- package/docs/executors.mdx +5 -3
- package/docs/github.mdx +12 -4
- package/docs/{writing-tests.mdx → goals.mdx} +21 -101
- package/docs/index.mdx +4 -4
- package/docs/integrations/kernel.mdx +1 -1
- package/docs/locators.mdx +64 -0
- package/docs/migrate/cypress.mdx +2 -2
- package/docs/migrate/maestro.mdx +2 -2
- package/docs/migrate/playwright.mdx +22 -16
- package/docs/migrate/selenium.mdx +2 -2
- package/docs/mobile.mdx +61 -4
- package/docs/models.mdx +53 -7
- package/docs/physical-devices.mdx +76 -0
- package/docs/quickstart.mdx +4 -3
- package/docs/reference/app.mdx +1 -1
- package/docs/reference/cli.mdx +30 -11
- package/docs/reference/config.mdx +25 -7
- package/docs/reference/engine.mdx +4 -3
- package/docs/reference/environment.mdx +8 -1
- package/docs/reference/errors.mdx +5 -5
- package/docs/reference/expect.mdx +79 -24
- package/docs/reference/mcp.mdx +3 -0
- package/docs/reference/mobile.mdx +23 -13
- package/docs/reference/reporters.mdx +8 -2
- package/docs/reference/screen.mdx +30 -7
- package/docs/reference/test.mdx +11 -4
- package/docs/reference/web.mdx +131 -23
- package/docs/security.mdx +45 -19
- package/docs/subscriptions.mdx +97 -9
- package/docs/telemetry.mdx +48 -6
- package/package.json +18 -4
- package/schema/report-v1.schema.json +14 -1
- package/skills/e2e/SKILL.md +2 -2
- package/skills/e2e/references/agent.md +22 -11
- package/skills/e2e/references/debugging.md +4 -4
- package/skills/e2e/references/mcp.md +3 -0
- package/skills/e2e/references/running.md +13 -8
- package/skills/e2e/references/setup.md +42 -15
- package/skills/e2e/references/writing-tests.md +43 -15
- package/dist/agent/act-validation.d.ts.map +0 -1
- package/dist/agent/act-validation.js.map +0 -1
- package/dist/agent/act.d.ts.map +0 -1
- package/dist/agent/act.js.map +0 -1
- package/dist/agent/action-dispatcher.d.ts.map +0 -1
- package/dist/agent/action-dispatcher.js.map +0 -1
- package/dist/agent/action-names.d.ts.map +0 -1
- package/dist/agent/action-names.js.map +0 -1
- package/dist/agent/actions.d.ts.map +0 -1
- package/dist/agent/actions.js.map +0 -1
- package/dist/agent/agent-brand.d.ts.map +0 -1
- package/dist/agent/agent-brand.js.map +0 -1
- package/dist/agent/ai-sdk.d.ts.map +0 -1
- package/dist/agent/ai-sdk.js.map +0 -1
- package/dist/agent/call-options.d.ts.map +0 -1
- package/dist/agent/call-options.js.map +0 -1
- package/dist/agent/default-agent.d.ts.map +0 -1
- package/dist/agent/default-agent.js.map +0 -1
- package/dist/agent/derived.d.ts.map +0 -1
- package/dist/agent/derived.js.map +0 -1
- package/dist/agent/error.d.ts.map +0 -1
- package/dist/agent/error.js.map +0 -1
- package/dist/agent/executor.d.ts.map +0 -1
- package/dist/agent/executor.js.map +0 -1
- package/dist/agent/index.d.ts.map +0 -1
- package/dist/agent/index.js.map +0 -1
- package/dist/agent/interactive-step.d.ts.map +0 -1
- package/dist/agent/interactive-step.js.map +0 -1
- package/dist/agent/invocation.d.ts.map +0 -1
- package/dist/agent/invocation.js.map +0 -1
- package/dist/agent/ledger.d.ts.map +0 -1
- package/dist/agent/ledger.js.map +0 -1
- package/dist/agent/loop-guards.d.ts.map +0 -1
- package/dist/agent/loop-guards.js.map +0 -1
- package/dist/agent/model/adapter.d.ts.map +0 -1
- package/dist/agent/model/adapter.js.map +0 -1
- package/dist/agent/model/overflow.d.ts.map +0 -1
- package/dist/agent/model/overflow.js.map +0 -1
- package/dist/agent/model/provider-hints.d.ts.map +0 -1
- package/dist/agent/model/provider-hints.js.map +0 -1
- package/dist/agent/model/schema.d.ts.map +0 -1
- package/dist/agent/model/schema.js.map +0 -1
- package/dist/agent/model/sdk.d.ts.map +0 -1
- package/dist/agent/model/sdk.js.map +0 -1
- package/dist/agent/model/stall.d.ts.map +0 -1
- package/dist/agent/model/stall.js.map +0 -1
- package/dist/agent/model/tool-choice.d.ts.map +0 -1
- package/dist/agent/model/tool-choice.js.map +0 -1
- package/dist/agent/observation-budget.d.ts.map +0 -1
- package/dist/agent/observation-budget.js.map +0 -1
- package/dist/agent/observation-feed.d.ts.map +0 -1
- package/dist/agent/observation-feed.js.map +0 -1
- package/dist/agent/observation.d.ts.map +0 -1
- package/dist/agent/observation.js.map +0 -1
- package/dist/agent/operation-queue.d.ts.map +0 -1
- package/dist/agent/operation-queue.js.map +0 -1
- package/dist/agent/phases.d.ts.map +0 -1
- package/dist/agent/phases.js.map +0 -1
- package/dist/agent/pixels.d.ts.map +0 -1
- package/dist/agent/pixels.js.map +0 -1
- package/dist/agent/point-tap.d.ts.map +0 -1
- package/dist/agent/point-tap.js.map +0 -1
- package/dist/agent/primitives.d.ts.map +0 -1
- package/dist/agent/primitives.js.map +0 -1
- package/dist/agent/prompts.d.ts.map +0 -1
- package/dist/agent/prompts.js.map +0 -1
- package/dist/agent/protocol.d.ts.map +0 -1
- package/dist/agent/protocol.js.map +0 -1
- package/dist/agent/public.d.ts.map +0 -1
- package/dist/agent/public.js.map +0 -1
- package/dist/agent/reading.d.ts.map +0 -1
- package/dist/agent/reading.js.map +0 -1
- package/dist/agent/replay.d.ts.map +0 -1
- package/dist/agent/replay.js.map +0 -1
- package/dist/agent/screen-update.d.ts.map +0 -1
- package/dist/agent/screen-update.js.map +0 -1
- package/dist/agent/scroll-target.d.ts.map +0 -1
- package/dist/agent/scroll-target.js.map +0 -1
- package/dist/agent/secrets.d.ts.map +0 -1
- package/dist/agent/secrets.js.map +0 -1
- package/dist/agent/settle-policy.d.ts.map +0 -1
- package/dist/agent/settle-policy.js.map +0 -1
- package/dist/agent/step-accounting.d.ts.map +0 -1
- package/dist/agent/step-accounting.js.map +0 -1
- package/dist/agent/step-cache.d.ts.map +0 -1
- package/dist/agent/step-cache.js.map +0 -1
- package/dist/agent/tool-loop.d.ts.map +0 -1
- package/dist/agent/tool-loop.js.map +0 -1
- package/dist/agent/tool-output.d.ts.map +0 -1
- package/dist/agent/tool-output.js.map +0 -1
- package/dist/agent/tool.d.ts.map +0 -1
- package/dist/agent/tool.js.map +0 -1
- package/dist/agent/transcript-compaction.d.ts.map +0 -1
- package/dist/agent/transcript-compaction.js.map +0 -1
- package/dist/agent/upload-paths.d.ts.map +0 -1
- package/dist/agent/upload-paths.js.map +0 -1
- package/dist/agent/usage.d.ts.map +0 -1
- package/dist/agent/usage.js.map +0 -1
- package/dist/cache/anchors.d.ts.map +0 -1
- package/dist/cache/anchors.js.map +0 -1
- package/dist/cache/context.d.ts.map +0 -1
- package/dist/cache/context.js.map +0 -1
- package/dist/cache/decide.d.ts.map +0 -1
- package/dist/cache/decide.js.map +0 -1
- package/dist/cache/identity.d.ts.map +0 -1
- package/dist/cache/identity.js.map +0 -1
- package/dist/cache/recorder.d.ts.map +0 -1
- package/dist/cache/recorder.js.map +0 -1
- package/dist/cache/relocate.d.ts.map +0 -1
- package/dist/cache/relocate.js.map +0 -1
- package/dist/cache/route.d.ts.map +0 -1
- package/dist/cache/route.js.map +0 -1
- package/dist/cache/store.d.ts.map +0 -1
- package/dist/cache/store.js.map +0 -1
- package/dist/cache/template.d.ts.map +0 -1
- package/dist/cache/template.js.map +0 -1
- package/dist/cache/trace.d.ts.map +0 -1
- package/dist/cache/trace.js.map +0 -1
- package/dist/cli/bin.d.ts.map +0 -1
- package/dist/cli/bin.js.map +0 -1
- package/dist/cli/cache.d.ts.map +0 -1
- package/dist/cli/cache.js.map +0 -1
- package/dist/cli/docs-url.d.ts.map +0 -1
- package/dist/cli/docs-url.js.map +0 -1
- package/dist/cli/feedback.d.ts.map +0 -1
- package/dist/cli/feedback.js.map +0 -1
- package/dist/cli/guide.d.ts.map +0 -1
- package/dist/cli/guide.js.map +0 -1
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/init/agent-skill.d.ts.map +0 -1
- package/dist/cli/init/agent-skill.js.map +0 -1
- package/dist/cli/init/engines.d.ts.map +0 -1
- package/dist/cli/init/engines.js.map +0 -1
- package/dist/cli/init/gateways.d.ts.map +0 -1
- package/dist/cli/init/gateways.js.map +0 -1
- package/dist/cli/init/mcp-config.d.ts.map +0 -1
- package/dist/cli/init/mcp-config.js.map +0 -1
- package/dist/cli/init/package.d.ts.map +0 -1
- package/dist/cli/init/package.js.map +0 -1
- package/dist/cli/init/scaffold.d.ts.map +0 -1
- package/dist/cli/init/scaffold.js.map +0 -1
- package/dist/cli/init/versions.d.ts.map +0 -1
- package/dist/cli/init/versions.js.map +0 -1
- package/dist/cli/init.d.ts.map +0 -1
- package/dist/cli/init.js.map +0 -1
- package/dist/cli/mcp.d.ts.map +0 -1
- package/dist/cli/mcp.js.map +0 -1
- package/dist/cli/signals.d.ts.map +0 -1
- package/dist/cli/signals.js.map +0 -1
- package/dist/cli/skill.d.ts.map +0 -1
- package/dist/cli/skill.js.map +0 -1
- package/dist/cli/telemetry.d.ts.map +0 -1
- package/dist/cli/telemetry.js.map +0 -1
- package/dist/cli/wordmark.d.ts.map +0 -1
- package/dist/cli/wordmark.js.map +0 -1
- package/dist/collect/collect.d.ts.map +0 -1
- package/dist/collect/collect.js.map +0 -1
- package/dist/collect/registry.d.ts.map +0 -1
- package/dist/collect/registry.js.map +0 -1
- package/dist/collect/select.d.ts.map +0 -1
- package/dist/collect/select.js.map +0 -1
- package/dist/config/agent.d.ts.map +0 -1
- package/dist/config/agent.js.map +0 -1
- package/dist/config/app.d.ts.map +0 -1
- package/dist/config/app.js.map +0 -1
- package/dist/config/command.d.ts.map +0 -1
- package/dist/config/command.js.map +0 -1
- package/dist/config/diagnose.d.ts.map +0 -1
- package/dist/config/diagnose.js.map +0 -1
- package/dist/config/esm-hooks.d.ts.map +0 -1
- package/dist/config/esm-hooks.js.map +0 -1
- package/dist/config/load.d.ts.map +0 -1
- package/dist/config/load.js.map +0 -1
- package/dist/config/resolve.d.ts.map +0 -1
- package/dist/config/resolve.js.map +0 -1
- package/dist/config/secrets.d.ts.map +0 -1
- package/dist/config/secrets.js.map +0 -1
- package/dist/config/targets.d.ts.map +0 -1
- package/dist/config/targets.js.map +0 -1
- package/dist/config/validate.d.ts.map +0 -1
- package/dist/config/validate.js.map +0 -1
- package/dist/engine/contract.d.ts.map +0 -1
- package/dist/engine/contract.js.map +0 -1
- package/dist/engine/index.d.ts.map +0 -1
- package/dist/engine/index.js.map +0 -1
- package/dist/engine/manifest.d.ts.map +0 -1
- package/dist/engine/manifest.js.map +0 -1
- package/dist/engine/recording.d.ts.map +0 -1
- package/dist/engine/recording.js.map +0 -1
- package/dist/engine/resolve.d.ts.map +0 -1
- package/dist/engine/resolve.js.map +0 -1
- package/dist/engine/session.d.ts.map +0 -1
- package/dist/engine/session.js.map +0 -1
- package/dist/engine/surface.d.ts.map +0 -1
- package/dist/engine/surface.js.map +0 -1
- package/dist/engine/timing.d.ts.map +0 -1
- package/dist/engine/timing.js.map +0 -1
- package/dist/expect/async.d.ts.map +0 -1
- package/dist/expect/async.js.map +0 -1
- package/dist/expect/attempt.d.ts.map +0 -1
- package/dist/expect/attempt.js.map +0 -1
- package/dist/expect/index.d.ts.map +0 -1
- package/dist/expect/index.js.map +0 -1
- package/dist/expect/poll.d.ts.map +0 -1
- package/dist/expect/poll.js.map +0 -1
- package/dist/expect/soft.d.ts.map +0 -1
- package/dist/expect/soft.js.map +0 -1
- package/dist/expect/values.d.ts.map +0 -1
- package/dist/expect/values.js.map +0 -1
- package/dist/explore/body.d.ts.map +0 -1
- package/dist/explore/body.js.map +0 -1
- package/dist/explore/executor.d.ts.map +0 -1
- package/dist/explore/executor.js.map +0 -1
- package/dist/explore/index.d.ts.map +0 -1
- package/dist/explore/index.js.map +0 -1
- package/dist/explore/plan.d.ts.map +0 -1
- package/dist/explore/plan.js.map +0 -1
- package/dist/explore/progress.d.ts.map +0 -1
- package/dist/explore/progress.js.map +0 -1
- package/dist/explore/state.d.ts.map +0 -1
- package/dist/explore/state.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/internal/ai-trace.d.ts.map +0 -1
- package/dist/internal/ai-trace.js.map +0 -1
- package/dist/internal/atomic-write.d.ts.map +0 -1
- package/dist/internal/atomic-write.js.map +0 -1
- package/dist/internal/brands.d.ts.map +0 -1
- package/dist/internal/brands.js.map +0 -1
- package/dist/internal/debug.d.ts.map +0 -1
- package/dist/internal/debug.js.map +0 -1
- package/dist/internal/env.d.ts.map +0 -1
- package/dist/internal/env.js.map +0 -1
- package/dist/internal/errors.d.ts.map +0 -1
- package/dist/internal/errors.js.map +0 -1
- package/dist/internal/geometry.d.ts.map +0 -1
- package/dist/internal/geometry.js.map +0 -1
- package/dist/internal/git.d.ts.map +0 -1
- package/dist/internal/git.js.map +0 -1
- package/dist/internal/globs.d.ts.map +0 -1
- package/dist/internal/globs.js.map +0 -1
- package/dist/internal/ids.d.ts.map +0 -1
- package/dist/internal/ids.js.map +0 -1
- package/dist/internal/json-value.d.ts.map +0 -1
- package/dist/internal/json-value.js.map +0 -1
- package/dist/internal/keys.d.ts.map +0 -1
- package/dist/internal/keys.js.map +0 -1
- package/dist/internal/node-version.d.ts.map +0 -1
- package/dist/internal/node-version.js.map +0 -1
- package/dist/internal/objects.d.ts.map +0 -1
- package/dist/internal/objects.js.map +0 -1
- package/dist/internal/options.d.ts.map +0 -1
- package/dist/internal/options.js.map +0 -1
- package/dist/internal/package-manager.d.ts.map +0 -1
- package/dist/internal/package-manager.js.map +0 -1
- package/dist/internal/package-version.d.ts.map +0 -1
- package/dist/internal/package-version.js.map +0 -1
- package/dist/internal/paths.d.ts.map +0 -1
- package/dist/internal/paths.js.map +0 -1
- package/dist/internal/realm-slot.d.ts.map +0 -1
- package/dist/internal/realm-slot.js.map +0 -1
- package/dist/internal/recording-modes.d.ts.map +0 -1
- package/dist/internal/recording-modes.js.map +0 -1
- package/dist/internal/redact.d.ts.map +0 -1
- package/dist/internal/redact.js.map +0 -1
- package/dist/internal/regexp.d.ts.map +0 -1
- package/dist/internal/regexp.js.map +0 -1
- package/dist/internal/roles.d.ts.map +0 -1
- package/dist/internal/roles.js.map +0 -1
- package/dist/internal/skip.d.ts.map +0 -1
- package/dist/internal/skip.js.map +0 -1
- package/dist/internal/source.d.ts.map +0 -1
- package/dist/internal/source.js.map +0 -1
- package/dist/internal/standard-schema.d.ts.map +0 -1
- package/dist/internal/standard-schema.js.map +0 -1
- package/dist/internal/suggest.d.ts.map +0 -1
- package/dist/internal/suggest.js.map +0 -1
- package/dist/internal/text.d.ts.map +0 -1
- package/dist/internal/text.js.map +0 -1
- package/dist/internal/time.d.ts.map +0 -1
- package/dist/internal/time.js.map +0 -1
- package/dist/internal/urls.d.ts.map +0 -1
- package/dist/internal/urls.js.map +0 -1
- package/dist/internal/vcs.d.ts.map +0 -1
- package/dist/internal/vcs.js.map +0 -1
- package/dist/internal/zip.d.ts.map +0 -1
- package/dist/internal/zip.js.map +0 -1
- package/dist/locator/engine.d.ts.map +0 -1
- package/dist/locator/engine.js.map +0 -1
- package/dist/locator/expression.d.ts.map +0 -1
- package/dist/locator/expression.js.map +0 -1
- package/dist/locator/screen.d.ts.map +0 -1
- package/dist/locator/screen.js.map +0 -1
- package/dist/mcp/catalog.d.ts.map +0 -1
- package/dist/mcp/catalog.js.map +0 -1
- package/dist/mcp/config.d.ts.map +0 -1
- package/dist/mcp/config.js.map +0 -1
- package/dist/mcp/recording.d.ts.map +0 -1
- package/dist/mcp/recording.js.map +0 -1
- package/dist/mcp/server.d.ts.map +0 -1
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/session.d.ts.map +0 -1
- package/dist/mcp/session.js.map +0 -1
- package/dist/mcp/sessions.d.ts.map +0 -1
- package/dist/mcp/sessions.js.map +0 -1
- package/dist/mcp/tools.d.ts.map +0 -1
- package/dist/mcp/tools.js.map +0 -1
- package/dist/oauth/callback-server.d.ts.map +0 -1
- package/dist/oauth/callback-server.js.map +0 -1
- package/dist/oauth/chatgpt.d.ts.map +0 -1
- package/dist/oauth/chatgpt.js.map +0 -1
- package/dist/oauth/cli.d.ts.map +0 -1
- package/dist/oauth/cli.js.map +0 -1
- package/dist/oauth/copilot.d.ts.map +0 -1
- package/dist/oauth/copilot.js.map +0 -1
- package/dist/oauth/device-code.d.ts.map +0 -1
- package/dist/oauth/device-code.js.map +0 -1
- package/dist/oauth/errors.d.ts.map +0 -1
- package/dist/oauth/errors.js.map +0 -1
- package/dist/oauth/fetch.d.ts.map +0 -1
- package/dist/oauth/fetch.js.map +0 -1
- package/dist/oauth/grok.d.ts.map +0 -1
- package/dist/oauth/grok.js.map +0 -1
- package/dist/oauth/jwt.d.ts.map +0 -1
- package/dist/oauth/jwt.js.map +0 -1
- package/dist/oauth/login.d.ts.map +0 -1
- package/dist/oauth/login.js.map +0 -1
- package/dist/oauth/models.d.ts.map +0 -1
- package/dist/oauth/models.js.map +0 -1
- package/dist/oauth/pkce.d.ts.map +0 -1
- package/dist/oauth/pkce.js.map +0 -1
- package/dist/oauth/providers/github-copilot.d.ts.map +0 -1
- package/dist/oauth/providers/github-copilot.js.map +0 -1
- package/dist/oauth/providers/openai.d.ts.map +0 -1
- package/dist/oauth/providers/openai.js.map +0 -1
- package/dist/oauth/providers/xai.d.ts.map +0 -1
- package/dist/oauth/providers/xai.js.map +0 -1
- package/dist/oauth/providers.d.ts.map +0 -1
- package/dist/oauth/providers.js.map +0 -1
- package/dist/oauth/sse.d.ts.map +0 -1
- package/dist/oauth/sse.js.map +0 -1
- package/dist/oauth/store.d.ts.map +0 -1
- package/dist/oauth/store.js.map +0 -1
- package/dist/oauth/token-endpoint.d.ts.map +0 -1
- package/dist/oauth/token-endpoint.js.map +0 -1
- package/dist/oauth/types.d.ts.map +0 -1
- package/dist/oauth/types.js.map +0 -1
- package/dist/params.d.ts.map +0 -1
- package/dist/params.js.map +0 -1
- package/dist/report/build.d.ts.map +0 -1
- package/dist/report/build.js.map +0 -1
- package/dist/report/builtin.d.ts.map +0 -1
- package/dist/report/builtin.js.map +0 -1
- package/dist/report/code-frame.d.ts.map +0 -1
- package/dist/report/code-frame.js.map +0 -1
- package/dist/report/debug-steps.d.ts.map +0 -1
- package/dist/report/debug-steps.js.map +0 -1
- package/dist/report/explore-text.d.ts.map +0 -1
- package/dist/report/explore-text.js.map +0 -1
- package/dist/report/failure-text.d.ts.map +0 -1
- package/dist/report/failure-text.js.map +0 -1
- package/dist/report/format.d.ts.map +0 -1
- package/dist/report/format.js.map +0 -1
- package/dist/report/json.d.ts.map +0 -1
- package/dist/report/json.js.map +0 -1
- package/dist/report/junit.d.ts.map +0 -1
- package/dist/report/junit.js.map +0 -1
- package/dist/report/list-explore.d.ts.map +0 -1
- package/dist/report/list-explore.js.map +0 -1
- package/dist/report/list-model.d.ts.map +0 -1
- package/dist/report/list-model.js.map +0 -1
- package/dist/report/list-steps.d.ts.map +0 -1
- package/dist/report/list-steps.js.map +0 -1
- package/dist/report/list.d.ts.map +0 -1
- package/dist/report/list.js.map +0 -1
- package/dist/report/live-window.d.ts.map +0 -1
- package/dist/report/live-window.js.map +0 -1
- package/dist/report/markdown-text.d.ts.map +0 -1
- package/dist/report/markdown-text.js.map +0 -1
- package/dist/report/markdown.d.ts.map +0 -1
- package/dist/report/markdown.js.map +0 -1
- package/dist/report/outcome.d.ts.map +0 -1
- package/dist/report/outcome.js.map +0 -1
- package/dist/report/repeats.d.ts.map +0 -1
- package/dist/report/repeats.js.map +0 -1
- package/dist/report/running-tree.d.ts.map +0 -1
- package/dist/report/running-tree.js.map +0 -1
- package/dist/report/write.d.ts.map +0 -1
- package/dist/report/write.js.map +0 -1
- package/dist/run/app-ports.d.ts.map +0 -1
- package/dist/run/app-ports.js.map +0 -1
- package/dist/run/artifacts.d.ts.map +0 -1
- package/dist/run/artifacts.js.map +0 -1
- package/dist/run/budget.d.ts.map +0 -1
- package/dist/run/budget.js.map +0 -1
- package/dist/run/declared-processes.d.ts.map +0 -1
- package/dist/run/declared-processes.js.map +0 -1
- package/dist/run/events.d.ts.map +0 -1
- package/dist/run/events.js.map +0 -1
- package/dist/run/execute.d.ts.map +0 -1
- package/dist/run/execute.js.map +0 -1
- package/dist/run/extended-fixtures.d.ts.map +0 -1
- package/dist/run/extended-fixtures.js.map +0 -1
- package/dist/run/failure-evidence.d.ts.map +0 -1
- package/dist/run/failure-evidence.js.map +0 -1
- package/dist/run/fixture-recording.d.ts.map +0 -1
- package/dist/run/fixture-recording.js.map +0 -1
- package/dist/run/fixtures.d.ts.map +0 -1
- package/dist/run/fixtures.js.map +0 -1
- package/dist/run/in-process.d.ts.map +0 -1
- package/dist/run/in-process.js.map +0 -1
- package/dist/run/last-run.d.ts.map +0 -1
- package/dist/run/last-run.js.map +0 -1
- package/dist/run/managed-process.d.ts.map +0 -1
- package/dist/run/managed-process.js.map +0 -1
- package/dist/run/output.d.ts.map +0 -1
- package/dist/run/output.js.map +0 -1
- package/dist/run/process-pool.d.ts.map +0 -1
- package/dist/run/process-pool.js.map +0 -1
- package/dist/run/provision.d.ts.map +0 -1
- package/dist/run/provision.js.map +0 -1
- package/dist/run/realm.d.ts.map +0 -1
- package/dist/run/realm.js.map +0 -1
- package/dist/run/records.d.ts.map +0 -1
- package/dist/run/records.js.map +0 -1
- package/dist/run/retry.d.ts.map +0 -1
- package/dist/run/retry.js.map +0 -1
- package/dist/run/runner.d.ts.map +0 -1
- package/dist/run/runner.js.map +0 -1
- package/dist/run/scheduler.d.ts.map +0 -1
- package/dist/run/scheduler.js.map +0 -1
- package/dist/run/secrecy.d.ts.map +0 -1
- package/dist/run/secrecy.js.map +0 -1
- package/dist/run/serial.d.ts.map +0 -1
- package/dist/run/serial.js.map +0 -1
- package/dist/run/sessions.d.ts.map +0 -1
- package/dist/run/sessions.js.map +0 -1
- package/dist/run/standalone.d.ts.map +0 -1
- package/dist/run/standalone.js.map +0 -1
- package/dist/run/steps.d.ts.map +0 -1
- package/dist/run/steps.js.map +0 -1
- package/dist/run/trace-redaction.d.ts.map +0 -1
- package/dist/run/trace-redaction.js.map +0 -1
- package/dist/run/unit-runner.d.ts.map +0 -1
- package/dist/run/unit-runner.js.map +0 -1
- package/dist/run/units.d.ts.map +0 -1
- package/dist/run/units.js.map +0 -1
- package/dist/run/worker/entry.d.ts.map +0 -1
- package/dist/run/worker/entry.js.map +0 -1
- package/dist/run/worker/handle.d.ts.map +0 -1
- package/dist/run/worker/handle.js.map +0 -1
- package/dist/run/worker/protocol.d.ts.map +0 -1
- package/dist/run/worker/protocol.js.map +0 -1
- package/dist/run/worker/session.d.ts.map +0 -1
- package/dist/run/worker/session.js.map +0 -1
- package/dist/run/worker-models.d.ts.map +0 -1
- package/dist/run/worker-models.js.map +0 -1
- package/dist/secrets.d.ts.map +0 -1
- package/dist/secrets.js.map +0 -1
- package/dist/telemetry/checkout.d.ts.map +0 -1
- package/dist/telemetry/checkout.js.map +0 -1
- package/dist/telemetry/environment.d.ts.map +0 -1
- package/dist/telemetry/environment.js.map +0 -1
- package/dist/telemetry/events.d.ts.map +0 -1
- package/dist/telemetry/events.js.map +0 -1
- package/dist/telemetry/failure-kind.d.ts.map +0 -1
- package/dist/telemetry/failure-kind.js.map +0 -1
- package/dist/telemetry/posthog.d.ts.map +0 -1
- package/dist/telemetry/posthog.js.map +0 -1
- package/dist/telemetry/project.d.ts.map +0 -1
- package/dist/telemetry/project.js.map +0 -1
- package/dist/telemetry/store.d.ts.map +0 -1
- package/dist/telemetry/store.js.map +0 -1
- package/dist/telemetry/telemetry.d.ts.map +0 -1
- package/dist/telemetry/telemetry.js.map +0 -1
- package/dist/telemetry/token.d.ts.map +0 -1
- package/dist/telemetry/token.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
package/dist/cli/index.d.ts
CHANGED
package/dist/cli/index.js
CHANGED
|
@@ -266,7 +266,7 @@ async function runToOutcome(telemetry, command, start) {
|
|
|
266
266
|
const outcome = await start(signals);
|
|
267
267
|
process.exitCode = outcome.exitCode;
|
|
268
268
|
// The run event is the report's own numbers; every run has a report, even one that failed before its first test.
|
|
269
|
-
telemetry.record(runCompletedEvent(outcome.report, usedFlags(command)));
|
|
269
|
+
telemetry.record(runCompletedEvent(outcome.report, { command: commandPath(command), flags: usedFlags(command), config: outcome.config }));
|
|
270
270
|
}
|
|
271
271
|
catch (cause) {
|
|
272
272
|
reportFailure(telemetry, cause);
|
|
@@ -357,22 +357,22 @@ function createProgram(version, telemetry) {
|
|
|
357
357
|
});
|
|
358
358
|
program
|
|
359
359
|
.command('login')
|
|
360
|
-
.summary('sign in to a ChatGPT, GitHub Copilot, or SuperGrok subscription for agent steps')
|
|
361
|
-
.description('Sign in once to a personal subscription and store the login for the e2e/oauth models: openai (ChatGPT Plus/Pro, the Codex sign-in), github-copilot (GitHub Copilot; reuses the GitHub CLI login or runs a device flow for your OAuth App), spacexai (SuperGrok or X Premium+, device code). The config then constructs the model with chatgpt(), copilot(), or grok() from e2e/oauth/<provider>.')
|
|
362
|
-
.addArgument(new Argument('[provider]', 'openai, github-copilot, or spacexai; omitted, a picker').choices(PROVIDER_IDS))
|
|
360
|
+
.summary('sign in to a ChatGPT, GitHub Copilot, OpenCode Console, or SuperGrok subscription for agent steps')
|
|
361
|
+
.description('Sign in once to a personal subscription and store the login for the e2e/oauth models: openai (ChatGPT Plus/Pro, the Codex sign-in), github-copilot (GitHub Copilot; reuses the GitHub CLI login or runs a device flow for your OAuth App), opencode-console (OpenCode Console, device code), spacexai (SuperGrok or X Premium+, device code). The config then constructs the model with chatgpt(), copilot(), opencodeConsole(), or grok() from e2e/oauth/<provider>.')
|
|
362
|
+
.addArgument(new Argument('[provider]', 'openai, github-copilot, opencode-console, or spacexai; omitted, a picker').choices(PROVIDER_IDS))
|
|
363
363
|
.option('--device', 'ChatGPT: show a code to enter on another device instead of opening a browser')
|
|
364
364
|
.option('--client-id <id>', 'GitHub Copilot: the client id of your GitHub OAuth App with the device flow enabled')
|
|
365
365
|
.option('--from-gh', 'GitHub Copilot: reuse the token of the signed-in GitHub CLI')
|
|
366
366
|
.option('--enterprise-url <host>', 'GitHub Copilot: the GitHub Enterprise host')
|
|
367
|
-
.addHelpText('after', ['', examples(['e2e login openai', 'e2e login github-copilot --from-gh', 'e2e login spacexai', 'e2e login']), '', docsLine('/subscriptions')].join('\n'))
|
|
367
|
+
.addHelpText('after', ['', examples(['e2e login openai', 'e2e login github-copilot --from-gh', 'e2e login opencode-console', 'e2e login spacexai', 'e2e login']), '', docsLine('/subscriptions')].join('\n'))
|
|
368
368
|
.action(async (provider, options) => {
|
|
369
369
|
process.exitCode = await runLogin(provider, options);
|
|
370
370
|
});
|
|
371
371
|
program
|
|
372
372
|
.command('logout')
|
|
373
373
|
.summary('forget a stored subscription login')
|
|
374
|
-
.description('Remove the stored login of one provider (openai, github-copilot, spacexai). Without a provider, a picker over the stored logins.')
|
|
375
|
-
.addArgument(new Argument('[provider]', 'openai, github-copilot, or spacexai; omitted, a picker').choices(PROVIDER_IDS))
|
|
374
|
+
.description('Remove the stored login of one provider (openai, github-copilot, opencode-console, spacexai). Without a provider, a picker over the stored logins.')
|
|
375
|
+
.addArgument(new Argument('[provider]', 'openai, github-copilot, opencode-console, or spacexai; omitted, a picker').choices(PROVIDER_IDS))
|
|
376
376
|
.addHelpText('after', ['', examples(['e2e logout', 'e2e logout openai']), '', docsLine('/subscriptions')].join('\n'))
|
|
377
377
|
.action(async (provider) => {
|
|
378
378
|
process.exitCode = await runLogout(provider);
|
|
@@ -380,8 +380,8 @@ function createProgram(version, telemetry) {
|
|
|
380
380
|
program
|
|
381
381
|
.command('models')
|
|
382
382
|
.summary('list the models a stored subscription login serves')
|
|
383
|
-
.description('Ask the vendor which models the stored login serves and print their ids, the ones chatgpt(), copilot(), and grok() take. Without a provider, every stored login in turn.')
|
|
384
|
-
.addArgument(new Argument('[provider]', 'openai, github-copilot, or spacexai; omitted, every stored login').choices(PROVIDER_IDS))
|
|
383
|
+
.description('Ask the vendor which models the stored login serves and print their ids, the ones chatgpt(), copilot(), opencodeConsole(), and grok() take. Without a provider, every stored login in turn.')
|
|
384
|
+
.addArgument(new Argument('[provider]', 'openai, github-copilot, opencode-console, or spacexai; omitted, every stored login').choices(PROVIDER_IDS))
|
|
385
385
|
.addHelpText('after', ['', examples(['e2e models', 'e2e models openai']), '', docsLine('/subscriptions#pick-a-model')].join('\n'))
|
|
386
386
|
.action(async (provider) => {
|
|
387
387
|
process.exitCode = await runModels(provider);
|
|
@@ -410,7 +410,7 @@ function createProgram(version, telemetry) {
|
|
|
410
410
|
docsLine('/reference/mcp'),
|
|
411
411
|
].join('\n'))
|
|
412
412
|
.action(async (options) => {
|
|
413
|
-
process.exitCode = await mcp(version, options);
|
|
413
|
+
process.exitCode = await mcp(version, options, telemetry);
|
|
414
414
|
});
|
|
415
415
|
const runCommand = program
|
|
416
416
|
.command('run')
|
|
@@ -694,4 +694,3 @@ export async function main(argv) {
|
|
|
694
694
|
await telemetry.flush();
|
|
695
695
|
}
|
|
696
696
|
}
|
|
697
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -111,4 +111,3 @@ export declare function describeLinks(install: SkillInstall): string;
|
|
|
111
111
|
/** The install's obstacles for a message: the directory, then each entry and what it is in parentheses. */
|
|
112
112
|
export declare function describeObstacles(install: SkillInstall): string;
|
|
113
113
|
export {};
|
|
114
|
-
//# sourceMappingURL=agent-skill.d.ts.map
|
|
@@ -16,9 +16,7 @@ export declare function getEnginePresets(): readonly [{
|
|
|
16
16
|
readonly id: 'web';
|
|
17
17
|
readonly label: 'Web';
|
|
18
18
|
readonly hint: 'Playwright';
|
|
19
|
-
readonly dependencies:
|
|
20
|
-
readonly playwright: string;
|
|
21
|
-
};
|
|
19
|
+
readonly dependencies: Readonly<Record<string, string>>;
|
|
22
20
|
readonly imports: readonly ["import { web } from '@e2e-dev/web';"];
|
|
23
21
|
readonly config: ` targets: [{
|
|
24
22
|
engine: web(),
|
|
@@ -76,4 +74,3 @@ export type EngineId = ReturnType<typeof getEnginePresets>[number]['id'];
|
|
|
76
74
|
export declare const DEFAULT_ENGINE_ID = "web";
|
|
77
75
|
/** Resolves a preset with the common shape used by scaffold generation. */
|
|
78
76
|
export declare function getEnginePreset(id: EngineId): EnginePreset;
|
|
79
|
-
//# sourceMappingURL=engines.d.ts.map
|
package/dist/cli/init/engines.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** CLI scaffold presets. Engine packages are referenced as generated source, never imported. */
|
|
2
2
|
import os from 'node:os';
|
|
3
|
-
import {
|
|
3
|
+
import { siblingDependency } from './versions.js';
|
|
4
4
|
/** Builds prompt choices and scaffolds with defaults for the machine running init. */
|
|
5
5
|
export function getEnginePresets() {
|
|
6
6
|
const ios = os.platform() === 'darwin';
|
|
@@ -9,7 +9,7 @@ export function getEnginePresets() {
|
|
|
9
9
|
id: 'web',
|
|
10
10
|
label: 'Web',
|
|
11
11
|
hint: 'Playwright',
|
|
12
|
-
dependencies:
|
|
12
|
+
dependencies: siblingDependency('@e2e-dev/web'),
|
|
13
13
|
imports: ["import { web } from '@e2e-dev/web';"],
|
|
14
14
|
config: ` targets: [{
|
|
15
15
|
engine: web(),
|
|
@@ -104,4 +104,3 @@ export function getEnginePreset(id) {
|
|
|
104
104
|
throw new Error(`unknown engine: ${id}`);
|
|
105
105
|
return preset;
|
|
106
106
|
}
|
|
107
|
-
//# sourceMappingURL=engines.js.map
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* of them and takes the constructed instance. Adding a gateway is adding an
|
|
5
5
|
* entry here.
|
|
6
6
|
*/
|
|
7
|
-
export type GatewayId = 'vercel' | 'openrouter' | 'openai-compatible' | 'chatgpt' | 'copilot' | 'grok';
|
|
7
|
+
export type GatewayId = 'vercel' | 'openrouter' | 'openai-compatible' | 'chatgpt' | 'copilot' | 'opencode-console' | 'grok';
|
|
8
8
|
export interface GatewayPreset {
|
|
9
9
|
readonly id: GatewayId;
|
|
10
10
|
readonly label: string;
|
|
@@ -21,4 +21,3 @@ export interface GatewayPreset {
|
|
|
21
21
|
}
|
|
22
22
|
export declare const GATEWAYS: readonly GatewayPreset[];
|
|
23
23
|
export declare function getGatewayPreset(id: GatewayId): GatewayPreset;
|
|
24
|
-
//# sourceMappingURL=gateways.d.ts.map
|
|
@@ -50,12 +50,22 @@ export const GATEWAYS = [
|
|
|
50
50
|
id: 'copilot',
|
|
51
51
|
label: 'GitHub Copilot subscription',
|
|
52
52
|
hint: 'your Copilot plan: OpenAI, Anthropic, Google, and SpaceXAI models',
|
|
53
|
-
dependencies: { '@ai-sdk/openai-compatible': '^3.0.0' },
|
|
53
|
+
dependencies: { '@ai-sdk/openai-compatible': '^3.0.0', '@ai-sdk/openai': '^4.0.0' },
|
|
54
54
|
import: "import { copilot } from 'e2e/oauth/copilot';",
|
|
55
55
|
comment: 'Your GitHub Copilot subscription serves the model; sign in once with `e2e login github-copilot`, `e2e models github-copilot` lists the ids.',
|
|
56
56
|
login: 'github-copilot',
|
|
57
57
|
model: () => "copilot('claude-sonnet-5')",
|
|
58
58
|
},
|
|
59
|
+
{
|
|
60
|
+
id: 'opencode-console',
|
|
61
|
+
label: 'OpenCode Console',
|
|
62
|
+
hint: 'the models your OpenCode Console workspace serves',
|
|
63
|
+
dependencies: { '@ai-sdk/openai-compatible': '^3.0.0', '@ai-sdk/openai': '^4.0.0', '@ai-sdk/anthropic': '^4.0.0', '@ai-sdk/google': '^4.0.0' },
|
|
64
|
+
import: "import { opencodeConsole } from 'e2e/oauth/opencode-console';",
|
|
65
|
+
comment: 'Your OpenCode Console workspace serves the model; sign in once with `e2e login opencode-console`, `e2e models opencode-console` lists the ids.',
|
|
66
|
+
login: 'opencode-console',
|
|
67
|
+
model: () => "opencodeConsole('deepseek-v4.1-flash')",
|
|
68
|
+
},
|
|
59
69
|
{
|
|
60
70
|
id: 'grok',
|
|
61
71
|
label: 'SuperGrok subscription',
|
|
@@ -77,4 +87,3 @@ export function getGatewayPreset(id) {
|
|
|
77
87
|
function quote(value) {
|
|
78
88
|
return `'${value.replaceAll('\\', '\\\\').replaceAll("'", "\\'")}'`;
|
|
79
89
|
}
|
|
80
|
-
//# sourceMappingURL=gateways.js.map
|
|
@@ -28,4 +28,3 @@ export declare function findRegisteredMcpFiles(cwd: string): string[];
|
|
|
28
28
|
* Other servers, other keys, and the file's indentation are preserved.
|
|
29
29
|
*/
|
|
30
30
|
export declare function planMcpRegistration(cwd: string, files: readonly string[]): McpRegistration[];
|
|
31
|
-
//# sourceMappingURL=mcp-config.d.ts.map
|
package/dist/cli/init/package.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"@e2e-dev/web":"0.
|
|
1
|
+
{"@e2e-dev/web":"0.12.0","@e2e-dev/mobile":"0.9.2"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* build in `sibling-versions.json` next to this module from their manifests.
|
|
4
4
|
* Absent when running from source. Both preset tables read from here.
|
|
5
5
|
*/
|
|
6
|
-
export declare const SIBLING_VERSIONS: Readonly<Record<string, string>> | undefined;
|
|
7
6
|
/**
|
|
8
7
|
* The range init writes for the runner and for an engine. Engines version
|
|
9
8
|
* independently of the runner and pin it through their own peer range, so init
|
|
@@ -20,11 +19,3 @@ export declare const SIBLING_VERSIONS: Readonly<Record<string, string>> | undefi
|
|
|
20
19
|
export declare function dependencyRange(version: string | undefined): string;
|
|
21
20
|
/** The range init writes for a sibling `@e2e-dev/*` package released alongside this runner. */
|
|
22
21
|
export declare function siblingDependency(name: string): Readonly<Record<string, string>>;
|
|
23
|
-
/**
|
|
24
|
-
* The range init writes for `playwright`, which `@e2e-dev/web` peers on
|
|
25
|
-
* rather than installs, so an app that already ships Playwright keeps one copy
|
|
26
|
-
* and one browser cache. The build records the version the engine was built
|
|
27
|
-
* and tested against; from source, where nothing is recorded, any 1.x will do.
|
|
28
|
-
*/
|
|
29
|
-
export declare function playwrightRange(version: string | undefined): string;
|
|
30
|
-
//# sourceMappingURL=versions.d.ts.map
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Absent when running from source. Both preset tables read from here.
|
|
5
5
|
*/
|
|
6
6
|
import { readJson } from '../../internal/package-version.js';
|
|
7
|
-
|
|
7
|
+
const SIBLING_VERSIONS = readJson(import.meta.url, './sibling-versions.json');
|
|
8
8
|
/**
|
|
9
9
|
* The range init writes for the runner and for an engine. Engines version
|
|
10
10
|
* independently of the runner and pin it through their own peer range, so init
|
|
@@ -27,13 +27,3 @@ export function dependencyRange(version) {
|
|
|
27
27
|
export function siblingDependency(name) {
|
|
28
28
|
return { [name]: dependencyRange(SIBLING_VERSIONS?.[name]) };
|
|
29
29
|
}
|
|
30
|
-
/**
|
|
31
|
-
* The range init writes for `playwright`, which `@e2e-dev/web` peers on
|
|
32
|
-
* rather than installs, so an app that already ships Playwright keeps one copy
|
|
33
|
-
* and one browser cache. The build records the version the engine was built
|
|
34
|
-
* and tested against; from source, where nothing is recorded, any 1.x will do.
|
|
35
|
-
*/
|
|
36
|
-
export function playwrightRange(version) {
|
|
37
|
-
return version === undefined ? '^1' : `^${version}`;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=versions.js.map
|
package/dist/cli/init.d.ts
CHANGED
package/dist/cli/init.js
CHANGED
package/dist/cli/mcp.d.ts
CHANGED
|
@@ -5,12 +5,19 @@
|
|
|
5
5
|
* transport keeps the process's own stdout writer, and everything else that
|
|
6
6
|
* reaches process.stdout is redirected to stderr for the whole process.
|
|
7
7
|
*/
|
|
8
|
+
import { type ServeOptions } from '../mcp/server.ts';
|
|
9
|
+
import type { Telemetry } from '../telemetry/telemetry.ts';
|
|
8
10
|
export interface McpCommandOptions {
|
|
9
11
|
config?: string | undefined;
|
|
10
12
|
target?: string | undefined;
|
|
11
13
|
headless?: boolean | undefined;
|
|
12
14
|
maxSessions?: number | undefined;
|
|
13
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Records each MCP session as it ends and sends it at once: a server lives
|
|
18
|
+
* as long as its client, and one its client kills never reaches the flush
|
|
19
|
+
* at exit.
|
|
20
|
+
*/
|
|
21
|
+
export declare function sessionTelemetry(telemetry: Telemetry): NonNullable<ServeOptions['onSessionEnd']>;
|
|
14
22
|
/** Runs the server until the client disconnects or a signal arrives; returns the exit code. */
|
|
15
|
-
export declare function mcp(version: string, options: McpCommandOptions): Promise<number>;
|
|
16
|
-
//# sourceMappingURL=mcp.d.ts.map
|
|
23
|
+
export declare function mcp(version: string, options: McpCommandOptions, telemetry: Telemetry): Promise<number>;
|
package/dist/cli/mcp.js
CHANGED
|
@@ -9,6 +9,7 @@ import { Writable } from 'node:stream';
|
|
|
9
9
|
import { isCiMode } from '../config/resolve.js';
|
|
10
10
|
import { errorMessage, exitCodeForCategory, classifyError } from '../internal/errors.js';
|
|
11
11
|
import { serveMcp } from '../mcp/server.js';
|
|
12
|
+
import { mcpSessionEvent } from '../telemetry/events.js';
|
|
12
13
|
/**
|
|
13
14
|
* Diverts every later `process.stdout` write to stderr and returns a stream
|
|
14
15
|
* that still reaches the real stdout. The protocol stream wraps the original
|
|
@@ -37,8 +38,19 @@ function claimStdout() {
|
|
|
37
38
|
stderr.on('error', () => undefined);
|
|
38
39
|
return protocol;
|
|
39
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Records each MCP session as it ends and sends it at once: a server lives
|
|
43
|
+
* as long as its client, and one its client kills never reaches the flush
|
|
44
|
+
* at exit.
|
|
45
|
+
*/
|
|
46
|
+
export function sessionTelemetry(telemetry) {
|
|
47
|
+
return (summary, client) => {
|
|
48
|
+
telemetry.record(mcpSessionEvent(summary, client));
|
|
49
|
+
void telemetry.sendQueued();
|
|
50
|
+
};
|
|
51
|
+
}
|
|
40
52
|
/** Runs the server until the client disconnects or a signal arrives; returns the exit code. */
|
|
41
|
-
export async function mcp(version, options) {
|
|
53
|
+
export async function mcp(version, options, telemetry) {
|
|
42
54
|
const stdout = claimStdout();
|
|
43
55
|
const stop = new AbortController();
|
|
44
56
|
const onSignal = () => stop.abort();
|
|
@@ -57,6 +69,7 @@ export async function mcp(version, options) {
|
|
|
57
69
|
stdout,
|
|
58
70
|
log: (line) => process.stderr.write(`e2e mcp: ${line}\n`),
|
|
59
71
|
signal: stop.signal,
|
|
72
|
+
onSessionEnd: sessionTelemetry(telemetry),
|
|
60
73
|
});
|
|
61
74
|
}
|
|
62
75
|
catch (cause) {
|
|
@@ -69,4 +82,3 @@ export async function mcp(version, options) {
|
|
|
69
82
|
process.off('SIGTERM', onSignal);
|
|
70
83
|
}
|
|
71
84
|
}
|
|
72
|
-
//# sourceMappingURL=mcp.js.map
|
package/dist/cli/signals.d.ts
CHANGED
package/dist/cli/signals.js
CHANGED
package/dist/cli/skill.d.ts
CHANGED
|
@@ -13,4 +13,3 @@ export declare function readSkillFiles(): readonly SkillFile[];
|
|
|
13
13
|
export declare function skillTopics(): readonly string[];
|
|
14
14
|
/** The overview (`SKILL.md` without its frontmatter) or one topic's text; undefined for an unknown topic. */
|
|
15
15
|
export declare function readGuide(topic: string | undefined): string | undefined;
|
|
16
|
-
//# sourceMappingURL=skill.d.ts.map
|
package/dist/cli/skill.js
CHANGED
package/dist/cli/telemetry.d.ts
CHANGED
package/dist/cli/telemetry.js
CHANGED
|
@@ -29,7 +29,7 @@ export function telemetry(action, instance) {
|
|
|
29
29
|
const disabledBy = instance.disabledBy;
|
|
30
30
|
if (disabledBy === undefined) {
|
|
31
31
|
out(`Status: ${picocolors.green('enabled')}`);
|
|
32
|
-
out('Anonymous usage data is sent: the command, the versions, the OS, and
|
|
32
|
+
out('Anonymous usage data is sent: the command, the versions, the OS, and summaries of runs and MCP sessions. Never test names, app data, or credentials.');
|
|
33
33
|
}
|
|
34
34
|
else {
|
|
35
35
|
out(`Status: ${picocolors.red('disabled')} (${REASONS[disabledBy]})`);
|
|
@@ -38,4 +38,3 @@ export function telemetry(action, instance) {
|
|
|
38
38
|
out(`Details: ${DOCS_URL}/telemetry`);
|
|
39
39
|
return 0;
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=telemetry.js.map
|
package/dist/cli/wordmark.d.ts
CHANGED
package/dist/cli/wordmark.js
CHANGED
|
@@ -165,4 +165,3 @@ export declare function collectSetups(config: ResolvedConfig): Promise<Collectio
|
|
|
165
165
|
* stop `e2e run tests/one.e2e.ts`.
|
|
166
166
|
*/
|
|
167
167
|
export declare function collect(config: ResolvedConfig, positionals?: readonly string[]): Promise<Collection>;
|
|
168
|
-
//# sourceMappingURL=collect.d.ts.map
|
package/dist/collect/collect.js
CHANGED
|
@@ -6,6 +6,7 @@ import { CollectionError } from '../internal/errors.js';
|
|
|
6
6
|
import { setupTestId, testId } from '../internal/ids.js';
|
|
7
7
|
import { explainModuleError } from '../config/diagnose.js';
|
|
8
8
|
import { importModule } from '../config/load.js';
|
|
9
|
+
import { staticSecretLedger } from '../run/secrecy.js';
|
|
9
10
|
import { collectModule, groupTitles, outermostSerialGroup, } from './registry.js';
|
|
10
11
|
/** Narrows a collected test to its reportable, serializable identity. */
|
|
11
12
|
export function testIdentity(test) {
|
|
@@ -345,12 +346,13 @@ export async function collect(config, positionals = []) {
|
|
|
345
346
|
async function collectFiles(config, discovered, isSelected, narrowed, lines) {
|
|
346
347
|
const files = [];
|
|
347
348
|
const uncollected = [];
|
|
349
|
+
const { redact } = staticSecretLedger(config.allSecrets);
|
|
348
350
|
for (const file of discovered) {
|
|
349
351
|
const absolutePath = path.join(config.projectRoot, file);
|
|
350
352
|
const skippable = narrowed && !isSelected(file);
|
|
351
353
|
let registration;
|
|
352
354
|
try {
|
|
353
|
-
registration = await collectModule(() => importModule(absolutePath, 'collect'), absolutePath);
|
|
355
|
+
registration = await collectModule(() => importModule(absolutePath, 'collect'), absolutePath, redact);
|
|
354
356
|
}
|
|
355
357
|
catch (cause) {
|
|
356
358
|
if (skippable) {
|
|
@@ -373,4 +375,3 @@ async function collectFiles(config, discovered, isSelected, narrowed, lines) {
|
|
|
373
375
|
}
|
|
374
376
|
return { files, uncollected };
|
|
375
377
|
}
|
|
376
|
-
//# sourceMappingURL=collect.js.map
|
|
@@ -73,9 +73,13 @@ export declare function outermostSerialGroup(group: GroupNode | undefined): Grou
|
|
|
73
73
|
/**
|
|
74
74
|
* Runs `load` with a fresh collector active and returns everything it
|
|
75
75
|
* registered. `moduleFile` is the absolute path of the module `load` imports;
|
|
76
|
-
* a test's source prefers a frame in that file.
|
|
76
|
+
* a test's source prefers a frame in that file. `redactTitle` is applied to
|
|
77
|
+
* every test and describe title as it registers, so a secret a title spells
|
|
78
|
+
* out never reaches a test id, a report, or a path derived from either; the
|
|
79
|
+
* runner passes the static secrets of the config (`staticSecretLedger`), the
|
|
80
|
+
* same in every process, so ids agree across them.
|
|
77
81
|
*/
|
|
78
|
-
export declare function collectModule(load: () => Promise<unknown>, moduleFile?: string): Promise<ModuleRegistration>;
|
|
82
|
+
export declare function collectModule(load: () => Promise<unknown>, moduleFile?: string, redactTitle?: (title: string) => string): Promise<ModuleRegistration>;
|
|
79
83
|
export declare const test: TestAPI;
|
|
80
84
|
/**
|
|
81
85
|
* `test.describe` and the hooks as top-level imports. The per-test hooks
|
|
@@ -87,4 +91,3 @@ export declare const describe: {
|
|
|
87
91
|
<Result>(title: string, options: DescribeOptions, body: import("../types.ts").SynchronousBody<Result>): void;
|
|
88
92
|
}, beforeEach: (fn: TestHookFn<import("../types.ts").TestFixtures>) => void, afterEach: (fn: TestHookFn<import("../types.ts").TestFixtures>) => void, beforeAll: (fn: SuiteHookFn) => void, afterAll: (fn: SuiteHookFn) => void;
|
|
89
93
|
export {};
|
|
90
|
-
//# sourceMappingURL=registry.d.ts.map
|
package/dist/collect/registry.js
CHANGED
|
@@ -12,6 +12,7 @@ import { parseSkipCall, skipRunningTest } from '../internal/skip.js';
|
|
|
12
12
|
import { unknownKeyMessage } from '../internal/options.js';
|
|
13
13
|
const SESSION_NAME_PATTERN = /^[A-Za-z0-9_.-]{1,128}$/;
|
|
14
14
|
class Collector {
|
|
15
|
+
redactTitle;
|
|
15
16
|
tests = [];
|
|
16
17
|
hooks = [];
|
|
17
18
|
currentGroup = undefined;
|
|
@@ -19,13 +20,31 @@ class Collector {
|
|
|
19
20
|
closed = false;
|
|
20
21
|
/** Real path of the module being collected, the file a test's source prefers. */
|
|
21
22
|
moduleFile;
|
|
22
|
-
constructor(moduleFile
|
|
23
|
+
constructor(moduleFile,
|
|
24
|
+
/** Rewrites a registered secret value in a title to its marker. */
|
|
25
|
+
redactTitle) {
|
|
26
|
+
this.redactTitle = redactTitle;
|
|
23
27
|
this.moduleFile = moduleFile === undefined ? undefined : realPath(moduleFile);
|
|
24
28
|
}
|
|
25
29
|
close() {
|
|
26
30
|
this.closed = true;
|
|
27
31
|
return { tests: this.tests, hooks: this.hooks };
|
|
28
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* The title as it registers: validated as written, redacted, then
|
|
35
|
+
* normalized to NFC, and validated again, since a marker can be longer
|
|
36
|
+
* than the value it replaces.
|
|
37
|
+
*/
|
|
38
|
+
title(raw) {
|
|
39
|
+
const rawError = validateTitle(raw);
|
|
40
|
+
if (rawError !== null)
|
|
41
|
+
throw new CollectionError(rawError);
|
|
42
|
+
const title = this.redactTitle(raw).normalize('NFC');
|
|
43
|
+
const error = title === raw.normalize('NFC') ? null : validateTitle(title);
|
|
44
|
+
if (error !== null)
|
|
45
|
+
throw new CollectionError(`${error} once secret values are redacted`);
|
|
46
|
+
return title;
|
|
47
|
+
}
|
|
29
48
|
assertOpen(api) {
|
|
30
49
|
if (this.closed) {
|
|
31
50
|
throw new CollectionError(`${api} was called after module evaluation finished; registration must be synchronous`);
|
|
@@ -33,10 +52,7 @@ class Collector {
|
|
|
33
52
|
}
|
|
34
53
|
registerTest(kind, mode, title, options, sessions, fn, fixtures) {
|
|
35
54
|
this.assertOpen(kind === 'setup' ? 'test.setup()' : 'test()');
|
|
36
|
-
const
|
|
37
|
-
if (titleError !== null)
|
|
38
|
-
throw new CollectionError(titleError);
|
|
39
|
-
const normalizedTitle = title.normalize('NFC');
|
|
55
|
+
const normalizedTitle = this.title(title);
|
|
40
56
|
if (typeof fn !== 'function')
|
|
41
57
|
throw new CollectionError('test body must be a function');
|
|
42
58
|
if (kind === 'setup') {
|
|
@@ -80,14 +96,12 @@ class Collector {
|
|
|
80
96
|
}
|
|
81
97
|
registerDescribe(title, options, body) {
|
|
82
98
|
this.assertOpen('describe()');
|
|
83
|
-
const
|
|
84
|
-
if (titleError !== null)
|
|
85
|
-
throw new CollectionError(titleError);
|
|
99
|
+
const normalizedTitle = this.title(title);
|
|
86
100
|
if (typeof body !== 'function')
|
|
87
101
|
throw new CollectionError('describe body must be a function');
|
|
88
102
|
validateDescribeOptions(options, this.currentGroup);
|
|
89
103
|
const group = {
|
|
90
|
-
title:
|
|
104
|
+
title: normalizedTitle,
|
|
91
105
|
options,
|
|
92
106
|
parent: this.currentGroup,
|
|
93
107
|
serial: options.serial === true,
|
|
@@ -97,7 +111,7 @@ class Collector {
|
|
|
97
111
|
try {
|
|
98
112
|
const result = body();
|
|
99
113
|
if (isPromiseLike(result)) {
|
|
100
|
-
throw new CollectionError(`describe body for ${JSON.stringify(title)} must finish synchronously`);
|
|
114
|
+
throw new CollectionError(`describe body for ${JSON.stringify(group.title)} must finish synchronously`);
|
|
101
115
|
}
|
|
102
116
|
}
|
|
103
117
|
finally {
|
|
@@ -311,13 +325,17 @@ const collectorSlot = realmSlot('e2e.activeCollector.v1');
|
|
|
311
325
|
/**
|
|
312
326
|
* Runs `load` with a fresh collector active and returns everything it
|
|
313
327
|
* registered. `moduleFile` is the absolute path of the module `load` imports;
|
|
314
|
-
* a test's source prefers a frame in that file.
|
|
328
|
+
* a test's source prefers a frame in that file. `redactTitle` is applied to
|
|
329
|
+
* every test and describe title as it registers, so a secret a title spells
|
|
330
|
+
* out never reaches a test id, a report, or a path derived from either; the
|
|
331
|
+
* runner passes the static secrets of the config (`staticSecretLedger`), the
|
|
332
|
+
* same in every process, so ids agree across them.
|
|
315
333
|
*/
|
|
316
|
-
export async function collectModule(load, moduleFile) {
|
|
334
|
+
export async function collectModule(load, moduleFile, redactTitle = (title) => title) {
|
|
317
335
|
if (collectorSlot.get(globalThis) !== undefined) {
|
|
318
336
|
throw new CollectionError('collection is already in progress');
|
|
319
337
|
}
|
|
320
|
-
const collector = new Collector(moduleFile);
|
|
338
|
+
const collector = new Collector(moduleFile, redactTitle);
|
|
321
339
|
collectorSlot.set(globalThis, collector);
|
|
322
340
|
try {
|
|
323
341
|
await load();
|
|
@@ -495,4 +513,3 @@ export const test = createTestAPI([]);
|
|
|
495
513
|
* registers through that `test`, or an engine's re-export of these.
|
|
496
514
|
*/
|
|
497
515
|
export const { describe, beforeEach, afterEach, beforeAll, afterAll } = test;
|
|
498
|
-
//# sourceMappingURL=registry.js.map
|
package/dist/collect/select.d.ts
CHANGED
|
@@ -114,4 +114,3 @@ export declare function select(collection: Collection, config: ResolvedConfig, f
|
|
|
114
114
|
* count, and a filtered or skipped pair is reported once.
|
|
115
115
|
*/
|
|
116
116
|
export declare function repeatEach(selection: Selection, times: number): Selection;
|
|
117
|
-
//# sourceMappingURL=select.d.ts.map
|
package/dist/collect/select.js
CHANGED
package/dist/config/agent.d.ts
CHANGED
package/dist/config/agent.js
CHANGED
package/dist/config/app.d.ts
CHANGED
package/dist/config/app.js
CHANGED
package/dist/config/command.d.ts
CHANGED
package/dist/config/command.js
CHANGED
|
@@ -100,4 +100,3 @@ export function digestCommand(command) {
|
|
|
100
100
|
const { env, ...rest } = command;
|
|
101
101
|
return obj({ ...rest, env: env === undefined ? undefined : Object.fromEntries(Object.keys(env).map((key) => [key, { envName: key }])) });
|
|
102
102
|
}
|
|
103
|
-
//# sourceMappingURL=command.js.map
|
package/dist/config/diagnose.js
CHANGED
package/dist/config/esm-hooks.js
CHANGED
|
@@ -99,4 +99,3 @@ export function inGraph(specifier, context, resolution) {
|
|
|
99
99
|
export const resolveSync = (specifier, context, nextResolve) => inGraph(specifier, context, asModule(specifier, context, nextResolve(specifier, context)));
|
|
100
100
|
/** For `module.register`, which reads this export from the hook module. */
|
|
101
101
|
export const resolve = async (specifier, context, nextResolve) => inGraph(specifier, context, asModule(specifier, context, await nextResolve(specifier, context)));
|
|
102
|
-
//# sourceMappingURL=esm-hooks.js.map
|
package/dist/config/load.d.ts
CHANGED
|
@@ -48,4 +48,3 @@ export interface ConfigLoadOptions {
|
|
|
48
48
|
export declare function importModule(absolutePath: string, cacheKey?: string): Promise<unknown>;
|
|
49
49
|
/** Loads and returns the raw default export of a config module. */
|
|
50
50
|
export declare function loadConfigModule(configPath: string, options?: ConfigLoadOptions): Promise<E2EConfig>;
|
|
51
|
-
//# sourceMappingURL=load.d.ts.map
|