e2e 0.15.1 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -24
- 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 +25 -8
- package/dist/agent/action-dispatcher.d.ts +0 -1
- package/dist/agent/action-dispatcher.js +0 -1
- package/dist/agent/action-names.d.ts +0 -1
- package/dist/agent/action-names.js +0 -1
- package/dist/agent/actions.d.ts +0 -1
- package/dist/agent/actions.js +0 -1
- 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 +16 -4
- package/dist/agent/error.js +25 -7
- 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 +0 -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 +24 -2
- package/dist/agent/model/tool-choice.js +27 -2
- package/dist/agent/observation-budget.d.ts +0 -1
- package/dist/agent/observation-budget.js +0 -1
- package/dist/agent/observation-feed.d.ts +0 -1
- package/dist/agent/observation-feed.js +0 -1
- package/dist/agent/observation.d.ts +0 -1
- package/dist/agent/observation.js +0 -1
- 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 +0 -1
- package/dist/agent/point-tap.js +0 -1
- 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 +0 -1
- package/dist/agent/replay.js +0 -1
- package/dist/agent/screen-update.d.ts +0 -1
- package/dist/agent/screen-update.js +0 -1
- package/dist/agent/scroll-target.d.ts +0 -1
- 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 +14 -4
- package/dist/agent/step-cache.js +13 -4
- package/dist/agent/tool-loop.d.ts +0 -1
- package/dist/agent/tool-loop.js +62 -10
- 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 +0 -1
- package/dist/cache/anchors.js +0 -1
- package/dist/cache/context.d.ts +19 -7
- package/dist/cache/context.js +15 -22
- package/dist/cache/decide.d.ts +0 -1
- package/dist/cache/decide.js +0 -1
- package/dist/cache/identity.d.ts +0 -1
- package/dist/cache/identity.js +0 -1
- package/dist/cache/recorder.d.ts +0 -1
- package/dist/cache/recorder.js +0 -1
- package/dist/cache/relocate.d.ts +0 -1
- package/dist/cache/relocate.js +0 -1
- package/dist/cache/route.d.ts +0 -1
- package/dist/cache/route.js +0 -1
- package/dist/cache/store.d.ts +0 -1
- package/dist/cache/store.js +0 -1
- package/dist/cache/template.d.ts +0 -1
- package/dist/cache/template.js +0 -1
- package/dist/cache/trace.d.ts +0 -1
- package/dist/cache/trace.js +0 -1
- 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 +2 -3
- 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 +0 -1
- package/dist/cli/init/engines.js +0 -1
- package/dist/cli/init/gateways.d.ts +0 -1
- package/dist/cli/init/gateways.js +0 -1
- 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 +1 -1
- package/dist/cli/init/scaffold.js +2 -2
- package/dist/cli/init/sibling-versions.json +1 -1
- package/dist/cli/init/versions.d.ts +0 -1
- package/dist/cli/init/versions.js +0 -1
- 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 +0 -1
- package/dist/config/resolve.js +0 -1
- 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 +1 -2
- 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 +99 -58
- 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.d.ts +0 -1
- package/dist/expect/poll.js +0 -1
- 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 +1 -2
- 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/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 +0 -1
- package/dist/internal/brands.js +0 -1
- 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 +0 -1
- package/dist/internal/redact.js +0 -1
- 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 +0 -1
- package/dist/internal/time.js +0 -1
- package/dist/internal/urls.d.ts +0 -1
- package/dist/internal/urls.js +0 -1
- 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 +0 -1
- package/dist/locator/engine.js +0 -1
- 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 +0 -1
- package/dist/mcp/catalog.d.ts +4 -1
- package/dist/mcp/catalog.js +2 -3
- 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 +43 -21
- 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 +0 -1
- package/dist/oauth/cli.d.ts +0 -1
- package/dist/oauth/cli.js +0 -1
- package/dist/oauth/copilot.d.ts +0 -1
- package/dist/oauth/copilot.js +0 -1
- 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 +0 -1
- 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 +0 -1
- package/dist/oauth/pkce.d.ts +0 -1
- package/dist/oauth/pkce.js +0 -1
- package/dist/oauth/providers/github-copilot.d.ts +0 -1
- package/dist/oauth/providers/github-copilot.js +10 -3
- package/dist/oauth/providers/openai.d.ts +0 -1
- package/dist/oauth/providers/openai.js +1 -2
- package/dist/oauth/providers/xai.d.ts +0 -1
- package/dist/oauth/providers/xai.js +0 -1
- package/dist/oauth/providers.d.ts +0 -1
- package/dist/oauth/providers.js +0 -1
- 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 +0 -1
- package/dist/report/build.js +0 -1
- 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 +0 -1
- package/dist/report/failure-text.js +0 -1
- package/dist/report/format.d.ts +0 -1
- package/dist/report/format.js +0 -1
- 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 +0 -1
- 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 +0 -1
- package/dist/report/list.js +0 -1
- 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 +0 -1
- package/dist/report/markdown.js +0 -1
- package/dist/report/outcome.d.ts +0 -1
- package/dist/report/outcome.js +0 -1
- package/dist/report/repeats.d.ts +0 -1
- package/dist/report/repeats.js +0 -1
- 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 +0 -1
- package/dist/run/artifacts.js +0 -1
- 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 +0 -1
- package/dist/run/execute.js +27 -13
- package/dist/run/extended-fixtures.d.ts +0 -1
- package/dist/run/extended-fixtures.js +0 -1
- package/dist/run/failure-evidence.d.ts +0 -1
- package/dist/run/failure-evidence.js +0 -1
- 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 +0 -1
- package/dist/run/in-process.d.ts +0 -1
- package/dist/run/in-process.js +0 -1
- package/dist/run/last-run.d.ts +0 -1
- package/dist/run/last-run.js +0 -1
- 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 +2 -1
- package/dist/run/realm.js +1 -2
- package/dist/run/records.d.ts +0 -1
- package/dist/run/records.js +0 -1
- package/dist/run/retry.d.ts +0 -1
- package/dist/run/retry.js +0 -1
- package/dist/run/runner.d.ts +2 -1
- package/dist/run/runner.js +1 -2
- 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 +0 -1
- package/dist/run/serial.js +0 -1
- 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 -3
- package/dist/run/steps.js +4 -2
- 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 +2 -3
- package/dist/run/worker/handle.d.ts +0 -1
- package/dist/run/worker/handle.js +0 -1
- package/dist/run/worker/protocol.d.ts +0 -1
- package/dist/run/worker/protocol.js +0 -1
- package/dist/run/worker/session.d.ts +0 -1
- package/dist/run/worker/session.js +0 -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 +107 -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 +26 -24
- package/dist/types.js +0 -1
- package/docs/agent-steps.mdx +126 -0
- package/docs/agents.mdx +217 -0
- package/docs/api-testing.mdx +65 -0
- package/docs/authentication.mdx +345 -0
- package/docs/browser.mdx +440 -0
- package/docs/bug-bash.mdx +90 -0
- package/docs/cache.mdx +306 -0
- package/docs/ci.mdx +210 -0
- package/docs/coding-agents.mdx +183 -0
- package/docs/debugging.mdx +291 -0
- package/docs/executors.mdx +243 -0
- package/docs/explore.mdx +174 -0
- package/docs/github.mdx +184 -0
- package/docs/index.mdx +82 -0
- package/docs/integrations/eas.mdx +216 -0
- package/docs/integrations/index.mdx +24 -0
- package/docs/integrations/kernel.mdx +163 -0
- package/docs/migrate/cypress.mdx +124 -0
- package/docs/migrate/detox.mdx +140 -0
- package/docs/migrate/maestro.mdx +229 -0
- package/docs/migrate/playwright.mdx +430 -0
- package/docs/migrate/selenium.mdx +110 -0
- package/docs/mobile-ci.mdx +567 -0
- package/docs/mobile.mdx +595 -0
- package/docs/models.mdx +241 -0
- package/docs/quickstart.mdx +260 -0
- package/docs/reference/agent.mdx +524 -0
- package/docs/reference/app.mdx +72 -0
- package/docs/reference/cli.mdx +819 -0
- package/docs/reference/config.mdx +986 -0
- package/docs/reference/engine.mdx +1363 -0
- package/docs/reference/environment.mdx +113 -0
- package/docs/reference/errors.mdx +143 -0
- package/docs/reference/expect.mdx +546 -0
- package/docs/reference/mcp.mdx +205 -0
- package/docs/reference/mobile.mdx +522 -0
- package/docs/reference/reporters.mdx +216 -0
- package/docs/reference/screen.mdx +688 -0
- package/docs/reference/test.mdx +449 -0
- package/docs/reference/web.mdx +615 -0
- package/docs/security.mdx +308 -0
- package/docs/starting-your-app.mdx +231 -0
- package/docs/subscriptions.mdx +166 -0
- package/docs/telemetry.mdx +227 -0
- package/docs/tools.mdx +150 -0
- package/docs/viewports.mdx +146 -0
- package/docs/writing-an-engine.mdx +316 -0
- package/docs/writing-tests.mdx +256 -0
- package/package.json +5 -3
- package/skills/e2e/SKILL.md +4 -1
- package/skills/e2e/references/agent.md +3 -1
- package/skills/e2e/references/mcp.md +3 -0
- package/skills/e2e/references/setup.md +19 -4
- package/skills/e2e/references/writing-tests.md +11 -0
- 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
|
@@ -43,4 +43,3 @@ export interface ProviderHints {
|
|
|
43
43
|
export declare function providerHints(model: ProviderModelRef | undefined): ProviderHints;
|
|
44
44
|
/** A stable key for one system prompt, so every call sharing the prefix routes alike. */
|
|
45
45
|
export declare function promptCacheKey(system: string): string;
|
|
46
|
-
//# sourceMappingURL=provider-hints.d.ts.map
|
|
@@ -17,4 +17,3 @@ import type { JSONSchema7 } from 'ai';
|
|
|
17
17
|
import type { StandardSchemaV1 } from '../../types.ts';
|
|
18
18
|
/** The caller schema's shape as JSON Schema, or undefined when it has no usable projection. */
|
|
19
19
|
export declare function deriveJsonSchema(schema: StandardSchemaV1): Promise<JSONSchema7 | undefined>;
|
|
20
|
-
//# sourceMappingURL=schema.d.ts.map
|
package/dist/agent/model/sdk.js
CHANGED
|
@@ -8,4 +8,3 @@ import type { AiSdk, SdkLanguageModel } from '../ai-sdk.ts';
|
|
|
8
8
|
* The caller's cancellation is not a stall and passes through as it was.
|
|
9
9
|
*/
|
|
10
10
|
export declare function withStallGuard(ai: AiSdk, model: SdkLanguageModel, onStall?: (stallMs: number) => void, stallMs?: number): SdkLanguageModel;
|
|
11
|
-
//# sourceMappingURL=stall.d.ts.map
|
|
@@ -3,13 +3,36 @@
|
|
|
3
3
|
* a tool call on every turn (`toolChoice: 'required'`) and names
|
|
4
4
|
* `complete_step` on the final ones; some models reject that request shape
|
|
5
5
|
* outright (Anthropic's Claude Fable 5.1 answers HTTP 400 with
|
|
6
|
-
* `tool_choice: type "tool" and "any" are not supported for this model
|
|
6
|
+
* `tool_choice: type "tool" and "any" are not supported for this model.`;
|
|
7
|
+
* DeepSeek's V4 models think by default and answer a forced choice with
|
|
8
|
+
* `Thinking mode does not support this tool_choice`),
|
|
7
9
|
* and a gateway forwards the provider's words.
|
|
8
10
|
*
|
|
9
11
|
* The loop reacts to this refusal differently from any other provider
|
|
10
12
|
* failure: the same request with `toolChoice: 'auto'` and an instruction to
|
|
11
13
|
* answer with tool calls can still succeed, where a 5xx needs only time.
|
|
12
14
|
*/
|
|
15
|
+
/**
|
|
16
|
+
* Whether a call warning says the provider sent `auto` in place of the
|
|
17
|
+
* forced choice it was asked for. The AI SDK's Anthropic provider does this
|
|
18
|
+
* itself for models it knows reject forced tool use (Claude Sonnet 5.5), so
|
|
19
|
+
* the request succeeds and no refusal ever reaches the loop.
|
|
20
|
+
*/
|
|
21
|
+
export declare function isForcedToolChoiceDowngraded(warning: {
|
|
22
|
+
readonly type: string;
|
|
23
|
+
readonly feature?: string;
|
|
24
|
+
}): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Whether a turn under a forced choice came back as a finished reply without
|
|
27
|
+
* a tool call. The AI SDK (7.0.88 and later) throws `AI_ToolChoiceViolationError`
|
|
28
|
+
* for that, which is how a downgrading provider's prose answer surfaces. It is
|
|
29
|
+
* matched by name, since earlier 7.x releases export no such class; a reply
|
|
30
|
+
* cut off by the token limit or a content filter says nothing about the
|
|
31
|
+
* provider and does not count.
|
|
32
|
+
*/
|
|
33
|
+
export declare function isForcedToolCallSkipped(error: unknown): error is {
|
|
34
|
+
readonly content?: readonly unknown[];
|
|
35
|
+
};
|
|
13
36
|
/**
|
|
14
37
|
* Whether a provider failure says the model does not accept a forced tool
|
|
15
38
|
* choice. Reads the message and the raw response body of the error and of
|
|
@@ -18,4 +41,3 @@
|
|
|
18
41
|
* quoting the request never reads as a model limitation.
|
|
19
42
|
*/
|
|
20
43
|
export declare function isForcedToolChoiceRejected(error: unknown): boolean;
|
|
21
|
-
//# sourceMappingURL=tool-choice.d.ts.map
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
* a tool call on every turn (`toolChoice: 'required'`) and names
|
|
4
4
|
* `complete_step` on the final ones; some models reject that request shape
|
|
5
5
|
* outright (Anthropic's Claude Fable 5.1 answers HTTP 400 with
|
|
6
|
-
* `tool_choice: type "tool" and "any" are not supported for this model
|
|
6
|
+
* `tool_choice: type "tool" and "any" are not supported for this model.`;
|
|
7
|
+
* DeepSeek's V4 models think by default and answer a forced choice with
|
|
8
|
+
* `Thinking mode does not support this tool_choice`),
|
|
7
9
|
* and a gateway forwards the provider's words.
|
|
8
10
|
*
|
|
9
11
|
* The loop reacts to this refusal differently from any other provider
|
|
@@ -12,10 +14,34 @@
|
|
|
12
14
|
*/
|
|
13
15
|
const FORCED_CHOICE_PATTERNS = [
|
|
14
16
|
/tool_choice.*not supported/i, // Anthropic
|
|
17
|
+
/does not support (?:this |the )?tool_choice/i, // DeepSeek V4 in thinking mode (its default)
|
|
15
18
|
/tool_choice.*(?:unsupported|is not allowed|cannot be)/i, // OpenAI-compatible proxies
|
|
16
19
|
/(?:forced|required) tool (?:choice|call|use).*not supported/i, // generic
|
|
17
20
|
/does not support (?:forced|required) tool/i, // generic
|
|
18
21
|
];
|
|
22
|
+
/**
|
|
23
|
+
* Whether a call warning says the provider sent `auto` in place of the
|
|
24
|
+
* forced choice it was asked for. The AI SDK's Anthropic provider does this
|
|
25
|
+
* itself for models it knows reject forced tool use (Claude Sonnet 5.5), so
|
|
26
|
+
* the request succeeds and no refusal ever reaches the loop.
|
|
27
|
+
*/
|
|
28
|
+
export function isForcedToolChoiceDowngraded(warning) {
|
|
29
|
+
return warning.type === 'unsupported' && warning.feature === 'toolChoice';
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Whether a turn under a forced choice came back as a finished reply without
|
|
33
|
+
* a tool call. The AI SDK (7.0.88 and later) throws `AI_ToolChoiceViolationError`
|
|
34
|
+
* for that, which is how a downgrading provider's prose answer surfaces. It is
|
|
35
|
+
* matched by name, since earlier 7.x releases export no such class; a reply
|
|
36
|
+
* cut off by the token limit or a content filter says nothing about the
|
|
37
|
+
* provider and does not count.
|
|
38
|
+
*/
|
|
39
|
+
export function isForcedToolCallSkipped(error) {
|
|
40
|
+
if (typeof error !== 'object' || error === null)
|
|
41
|
+
return false;
|
|
42
|
+
const record = error;
|
|
43
|
+
return record.name === 'AI_ToolChoiceViolationError' && record.finishReason === 'stop';
|
|
44
|
+
}
|
|
19
45
|
/** Longest cause chain walked; a wrapped error rarely nests deeper. */
|
|
20
46
|
const MAX_CAUSE_DEPTH = 8;
|
|
21
47
|
/**
|
|
@@ -46,4 +72,3 @@ function describesRejection(error) {
|
|
|
46
72
|
return false;
|
|
47
73
|
return [record.message, record.responseBody].some((text) => typeof text === 'string' && FORCED_CHOICE_PATTERNS.some((pattern) => pattern.test(text)));
|
|
48
74
|
}
|
|
49
|
-
//# sourceMappingURL=tool-choice.js.map
|
|
@@ -24,4 +24,3 @@ export interface ObservationBudgetRequest {
|
|
|
24
24
|
* than fail the adapter's pre-flight check.
|
|
25
25
|
*/
|
|
26
26
|
export declare function observationByteBudget(limits: ObservationBudgetLimits, request: ObservationBudgetRequest): number;
|
|
27
|
-
//# sourceMappingURL=observation-budget.d.ts.map
|
|
@@ -40,4 +40,3 @@ export function observationByteBudget(limits, request) {
|
|
|
40
40
|
const withinTokenCeiling = Math.max(MIN_OBSERVATION_BYTES, limits.maxInputTokens - overhead);
|
|
41
41
|
return Math.min(limits.maxObservationBytes, withinTokenCeiling);
|
|
42
42
|
}
|
|
43
|
-
//# sourceMappingURL=observation-budget.js.map
|
|
@@ -392,4 +392,3 @@ function echoesInput(node) {
|
|
|
392
392
|
export function nodeGone(id, latest) {
|
|
393
393
|
return new AgentError('LOCATOR_NOT_FOUND', `node #${id} is not on the current screen (observation ${latest.revision}); it was removed or never existed`);
|
|
394
394
|
}
|
|
395
|
-
//# sourceMappingURL=observation-feed.js.map
|
package/dist/agent/phases.d.ts
CHANGED
package/dist/agent/phases.js
CHANGED
package/dist/agent/pixels.d.ts
CHANGED
|
@@ -18,4 +18,3 @@ export declare function sizeForModel<P extends ObservationPixels>(pixels: P): P;
|
|
|
18
18
|
* the caller's pixels carry (a masked-region count) rides along unchanged.
|
|
19
19
|
*/
|
|
20
20
|
export declare function downscalePixels<P extends ObservationPixels>(pixels: P, maxLongSide: number): P;
|
|
21
|
-
//# sourceMappingURL=pixels.d.ts.map
|
package/dist/agent/pixels.js
CHANGED
package/dist/agent/point-tap.js
CHANGED
|
@@ -46,6 +46,12 @@ export interface GrammarToolOptions {
|
|
|
46
46
|
* otherwise.
|
|
47
47
|
*/
|
|
48
48
|
readonly screen?: ScreenPresenter;
|
|
49
|
+
/**
|
|
50
|
+
* Told the cause of every action that failed into a result rather than a
|
|
51
|
+
* throw, before it becomes the result's text: the one place its runner
|
|
52
|
+
* code is still structured.
|
|
53
|
+
*/
|
|
54
|
+
readonly onActionFailed?: ((cause: unknown) => void) | undefined;
|
|
49
55
|
}
|
|
50
56
|
/**
|
|
51
57
|
* AI SDK tools over the harness action grammar, limited to the verbs the
|
|
@@ -78,4 +84,3 @@ export declare function trackModelCalls(context: StepExecutorContext, model?: {
|
|
|
78
84
|
readonly provider?: string;
|
|
79
85
|
readonly modelId?: string;
|
|
80
86
|
}): ModelCallTracker;
|
|
81
|
-
//# sourceMappingURL=primitives.d.ts.map
|
package/dist/agent/primitives.js
CHANGED
|
@@ -666,7 +666,10 @@ function verbKit(context, options) {
|
|
|
666
666
|
catch (cause) {
|
|
667
667
|
if (isRuntimeHardStop(cause))
|
|
668
668
|
throw cause;
|
|
669
|
-
|
|
669
|
+
const failed = await present(failureLead(label, cause));
|
|
670
|
+
// After the look, so a look that throws fails the call once, as itself.
|
|
671
|
+
options.onActionFailed?.(cause);
|
|
672
|
+
return failed;
|
|
670
673
|
}
|
|
671
674
|
return present(outcome.lead, { expectChange: outcome.expectChange, ...update });
|
|
672
675
|
});
|
|
@@ -717,4 +720,3 @@ export function trackModelCalls(context, model) {
|
|
|
717
720
|
},
|
|
718
721
|
};
|
|
719
722
|
}
|
|
720
|
-
//# sourceMappingURL=primitives.js.map
|
package/dist/agent/prompts.d.ts
CHANGED
|
@@ -49,4 +49,3 @@ export declare const JUDGMENT_REQUEST: string;
|
|
|
49
49
|
export declare const EXTRACT_REQUEST: string;
|
|
50
50
|
/** The extraction's answer to a rejection the screen cannot satisfy: say so rather than change the data. */
|
|
51
51
|
export declare const EXTRACT_REPAIR_OUTLET = "Correct a misread or a wrong shape. When the data the observation shows cannot satisfy the errors, respond with \"found\": false and say why in \"missing\" rather than change a value to fit.";
|
|
52
|
-
//# sourceMappingURL=prompts.d.ts.map
|
package/dist/agent/prompts.js
CHANGED
|
@@ -118,4 +118,3 @@ export const EXTRACT_REQUEST = [
|
|
|
118
118
|
].join('\n');
|
|
119
119
|
/** The extraction's answer to a rejection the screen cannot satisfy: say so rather than change the data. */
|
|
120
120
|
export const EXTRACT_REPAIR_OUTLET = 'Correct a misread or a wrong shape. When the data the observation shows cannot satisfy the errors, respond with "found": false and say why in "missing" rather than change a value to fit.';
|
|
121
|
-
//# sourceMappingURL=prompts.js.map
|
package/dist/agent/protocol.d.ts
CHANGED
package/dist/agent/protocol.js
CHANGED
package/dist/agent/public.d.ts
CHANGED
|
@@ -11,4 +11,3 @@
|
|
|
11
11
|
export { createToolLoopExecutor, type ToolLoopExecutorOptions, type PreparedTurn, type PreparedMessages, type ToolLoopHelpers, } from './tool-loop.ts';
|
|
12
12
|
export { defineTool, getToolContext, type DefinedTool, type ToolAnnotations } from './tool.ts';
|
|
13
13
|
export { AgentError, isAgentError } from './error.ts';
|
|
14
|
-
//# sourceMappingURL=public.d.ts.map
|
package/dist/agent/public.js
CHANGED
package/dist/agent/reading.d.ts
CHANGED
package/dist/agent/reading.js
CHANGED
package/dist/agent/replay.d.ts
CHANGED
package/dist/agent/replay.js
CHANGED
|
@@ -23,4 +23,3 @@ import type { SemanticAgentObservation } from './observation.ts';
|
|
|
23
23
|
export declare function resolveScrollTarget(feed: ObservationFeed, target: ExecutorTarget): Resolved | undefined;
|
|
24
24
|
/** The listed node of the role whose box overlaps `box` most, when it overlaps enough. */
|
|
25
25
|
export declare function samePlace(observation: SemanticAgentObservation, role: string | undefined, box: Box): SemanticNode | undefined;
|
|
26
|
-
//# sourceMappingURL=scroll-target.d.ts.map
|
package/dist/agent/secrets.d.ts
CHANGED
package/dist/agent/secrets.js
CHANGED
|
@@ -47,8 +47,15 @@ export interface StepCacheOptions {
|
|
|
47
47
|
/** Timeline index of the step being dispatched. */
|
|
48
48
|
readonly stepIndex: number;
|
|
49
49
|
}
|
|
50
|
-
/**
|
|
51
|
-
|
|
50
|
+
/**
|
|
51
|
+
* How the step settled, as the write-side decision sees it. `no-verdict` is a
|
|
52
|
+
* step that ended without anything judging the app: it was cancelled, or no
|
|
53
|
+
* model answered (`isModelUnreachable`). Neither says the recorded flow is
|
|
54
|
+
* wrong, so neither implicates its entry.
|
|
55
|
+
*/
|
|
56
|
+
export type StepOutcome = 'passed' | 'failed' | 'no-verdict';
|
|
57
|
+
/** The outcome of a step that threw `cause`. */
|
|
58
|
+
export declare function failedStepOutcome(cause: unknown): Exclude<StepOutcome, 'passed'>;
|
|
52
59
|
export declare class StepTraceSession {
|
|
53
60
|
private readonly host;
|
|
54
61
|
private readonly cache;
|
|
@@ -132,7 +139,11 @@ export declare class StepTraceSession {
|
|
|
132
139
|
* - failed after consuming a replay: evict. Without this, a diverged replay
|
|
133
140
|
* whose step then fails stages nothing — and the poisoned entry would
|
|
134
141
|
* replay its bad prefix on every future first attempt.
|
|
135
|
-
* - cancelled: nothing, exactly like an
|
|
142
|
+
* - no verdict (cancelled, or no model answered): nothing, exactly like an
|
|
143
|
+
* interrupted attempt. A replay that stopped at a gap and handed off to a
|
|
144
|
+
* model that never answered proved nothing against the recording, and one
|
|
145
|
+
* that diverged hands off again next run, where a model that answers
|
|
146
|
+
* re-records it.
|
|
136
147
|
*/
|
|
137
148
|
conclude(outcome: StepOutcome, verdictSummary: string | undefined): Promise<void>;
|
|
138
149
|
/**
|
|
@@ -213,4 +224,3 @@ export declare class StepTraceSession {
|
|
|
213
224
|
* drift apart; a summary not written by it is returned as is.
|
|
214
225
|
*/
|
|
215
226
|
export declare function recordedVerdictOf(summary: string): string;
|
|
216
|
-
//# sourceMappingURL=step-cache.d.ts.map
|
package/dist/agent/step-cache.js
CHANGED
|
@@ -19,9 +19,15 @@ import { TraceRecorder } from '../cache/recorder.js';
|
|
|
19
19
|
import { expandTrace, templateParams, templatesCollide, templateTrace } from '../cache/template.js';
|
|
20
20
|
import { readTraceEntry } from '../cache/trace.js';
|
|
21
21
|
import { sleep } from '../internal/time.js';
|
|
22
|
-
import { AgentError } from './error.js';
|
|
22
|
+
import { AgentError, isAgentError, isModelUnreachable } from './error.js';
|
|
23
23
|
import { isRuntimeHardStop } from './executor.js';
|
|
24
24
|
import { replayTrace, verifyAnchors, } from './replay.js';
|
|
25
|
+
/** The outcome of a step that threw `cause`. */
|
|
26
|
+
export function failedStepOutcome(cause) {
|
|
27
|
+
if (isModelUnreachable(cause))
|
|
28
|
+
return 'no-verdict';
|
|
29
|
+
return isAgentError(cause) && cause.code === 'CANCELLED' ? 'no-verdict' : 'failed';
|
|
30
|
+
}
|
|
25
31
|
/**
|
|
26
32
|
* The reasons a recording that exists no longer replays: the app or the
|
|
27
33
|
* entry changed under it. The others describe the step (a value read off
|
|
@@ -189,14 +195,18 @@ export class StepTraceSession {
|
|
|
189
195
|
* - failed after consuming a replay: evict. Without this, a diverged replay
|
|
190
196
|
* whose step then fails stages nothing — and the poisoned entry would
|
|
191
197
|
* replay its bad prefix on every future first attempt.
|
|
192
|
-
* - cancelled: nothing, exactly like an
|
|
198
|
+
* - no verdict (cancelled, or no model answered): nothing, exactly like an
|
|
199
|
+
* interrupted attempt. A replay that stopped at a gap and handed off to a
|
|
200
|
+
* model that never answered proved nothing against the recording, and one
|
|
201
|
+
* that diverged hands off again next run, where a model that answers
|
|
202
|
+
* re-records it.
|
|
193
203
|
*/
|
|
194
204
|
async conclude(outcome, verdictSummary) {
|
|
195
205
|
const recorder = this.recorder;
|
|
196
206
|
if (recorder === undefined)
|
|
197
207
|
return;
|
|
198
208
|
switch (outcome) {
|
|
199
|
-
case '
|
|
209
|
+
case 'no-verdict':
|
|
200
210
|
return;
|
|
201
211
|
case 'failed':
|
|
202
212
|
// A stale recording `cache.strict` failed on stays for the next strict
|
|
@@ -501,4 +511,3 @@ export function recordedVerdictOf(summary) {
|
|
|
501
511
|
const at = summary.indexOf(RECORDED_VERDICT_SEPARATOR);
|
|
502
512
|
return at === -1 ? summary : summary.slice(at + RECORDED_VERDICT_SEPARATOR.length);
|
|
503
513
|
}
|
|
504
|
-
//# sourceMappingURL=step-cache.js.map
|
package/dist/agent/tool-loop.js
CHANGED
|
@@ -14,7 +14,7 @@ import { asSdkLanguageModel, loadAiSdk } from './ai-sdk.js';
|
|
|
14
14
|
import { ConfigurationError, withHint } from '../internal/errors.js';
|
|
15
15
|
import { failureHint, isAbort, TRANSPORT_RETRIES } from './model/sdk.js';
|
|
16
16
|
import { isContextOverflow } from './model/overflow.js';
|
|
17
|
-
import { isForcedToolChoiceRejected } from './model/tool-choice.js';
|
|
17
|
+
import { isForcedToolCallSkipped, isForcedToolChoiceDowngraded, isForcedToolChoiceRejected } from './model/tool-choice.js';
|
|
18
18
|
import { withStallGuard } from './model/stall.js';
|
|
19
19
|
import { providerHints } from './model/provider-hints.js';
|
|
20
20
|
import { isScreenOutput, toolResultTexts } from './screen-update.js';
|
|
@@ -61,6 +61,14 @@ const MAX_REPORTED_NOTES_CHARS = 1_000;
|
|
|
61
61
|
const FREE_TOOL_CHOICE_MODELS = new WeakSet();
|
|
62
62
|
/** Appended to the instructions when the model cannot be forced to call tools. */
|
|
63
63
|
const TOOL_CALLS_ONLY_RULE = 'Reply with tool calls only. A reply without a tool call does nothing and spends a turn; the step ends only through complete_step.';
|
|
64
|
+
/** The usage of a turn the SDK threw on: the provider answered, but the SDK reports no usage for it. */
|
|
65
|
+
const UNREPORTED_USAGE = {
|
|
66
|
+
inputTokens: undefined,
|
|
67
|
+
inputTokenDetails: { noCacheTokens: undefined, cacheReadTokens: undefined, cacheWriteTokens: undefined },
|
|
68
|
+
outputTokens: undefined,
|
|
69
|
+
outputTokenDetails: { textTokens: undefined, reasoningTokens: undefined },
|
|
70
|
+
totalTokens: undefined,
|
|
71
|
+
};
|
|
64
72
|
/** Sent when a turn came back as text without a tool call. */
|
|
65
73
|
const TEXT_REPLY_NOTICE = '[SYSTEM] Your last reply had no tool call, so nothing happened. Continue with a tool call, or call complete_step with your verdict.';
|
|
66
74
|
/**
|
|
@@ -125,6 +133,8 @@ class LoopRun {
|
|
|
125
133
|
overflowNote;
|
|
126
134
|
/** How this step asks for tool calls; flips to `auto` when the model rejects a forced choice. */
|
|
127
135
|
toolChoice;
|
|
136
|
+
/** The tool-choice mode the running generate call's instructions were written for. */
|
|
137
|
+
instructedFor = 'required';
|
|
128
138
|
/** The last turn that ran, for continuing after a reply without tool calls. */
|
|
129
139
|
lastStep;
|
|
130
140
|
/** `model` as the loop sends requests to it: each one bounded, so a stalled response is sent again. */
|
|
@@ -166,6 +176,7 @@ class LoopRun {
|
|
|
166
176
|
this.lastStep = step;
|
|
167
177
|
this.recordTurn(step);
|
|
168
178
|
tracker.onStepEnd(step);
|
|
179
|
+
this.noticeToolChoiceDowngrade(step);
|
|
169
180
|
},
|
|
170
181
|
});
|
|
171
182
|
const continued = this.continueAfterTextReply(result.responseMessages);
|
|
@@ -181,7 +192,7 @@ class LoopRun {
|
|
|
181
192
|
prompt = shrunk;
|
|
182
193
|
continue;
|
|
183
194
|
}
|
|
184
|
-
const freed = this.freeToolChoiceRetry(cause);
|
|
195
|
+
const freed = this.freeToolChoiceRetry(cause, tracker);
|
|
185
196
|
if (freed !== undefined) {
|
|
186
197
|
prompt = freed;
|
|
187
198
|
continue;
|
|
@@ -221,6 +232,7 @@ class LoopRun {
|
|
|
221
232
|
}
|
|
222
233
|
buildLoop(tools) {
|
|
223
234
|
const system = this.instructions();
|
|
235
|
+
this.instructedFor = this.toolChoice;
|
|
224
236
|
const providerOptions = this.hints.providerOptions(this.options.providerOptions ?? this.context.providerOptions, system);
|
|
225
237
|
return new this.ai.ToolLoopAgent({
|
|
226
238
|
model: this.requestModel,
|
|
@@ -241,8 +253,8 @@ class LoopRun {
|
|
|
241
253
|
/**
|
|
242
254
|
* A generate call that returned without a verdict and without a hard stop
|
|
243
255
|
* ended on a turn that made no tool call: the SDK loop stops when there is
|
|
244
|
-
* nothing to execute. Under `required`
|
|
245
|
-
* model may answer in prose. While turns remain, the reply is kept in the
|
|
256
|
+
* nothing to execute. Under `required` the SDK throws instead (see
|
|
257
|
+
* `freeToolChoiceRetry`); under `auto` the model may answer in prose. While turns remain, the reply is kept in the
|
|
246
258
|
* history and the model is told to act, on the same turn budget.
|
|
247
259
|
*/
|
|
248
260
|
continueAfterTextReply(responseMessages) {
|
|
@@ -264,21 +276,49 @@ class LoopRun {
|
|
|
264
276
|
/**
|
|
265
277
|
* A model that refuses a forced tool choice (HTTP 400 naming
|
|
266
278
|
* `tool_choice`) is asked again with `auto` and a tool-calls-only rule in
|
|
267
|
-
* its instructions, on the same turn budget.
|
|
268
|
-
*
|
|
279
|
+
* its instructions, on the same turn budget. So is one whose reply had no
|
|
280
|
+
* tool call under a forced choice: the SDK throws `ToolChoiceViolationError`
|
|
281
|
+
* for it, which happens when the provider downgraded the choice to `auto`
|
|
282
|
+
* and the model answered in prose. Either way the model is remembered, so
|
|
283
|
+
* later steps start in that mode.
|
|
269
284
|
*/
|
|
270
|
-
freeToolChoiceRetry(cause) {
|
|
285
|
+
freeToolChoiceRetry(cause, tracker) {
|
|
271
286
|
if (this.toolChoice === 'auto' || this.lastRequest === undefined)
|
|
272
287
|
return undefined;
|
|
273
|
-
if (this.context.signal.aborted || this.hardStop !== undefined
|
|
288
|
+
if (this.context.signal.aborted || this.hardStop !== undefined)
|
|
289
|
+
return undefined;
|
|
290
|
+
if (isForcedToolCallSkipped(cause)) {
|
|
291
|
+
// The provider answered, and billed, before the SDK threw: the turn counts.
|
|
292
|
+
tracker.onStepEnd({ usage: UNREPORTED_USAGE, providerMetadata: undefined, reasoningText: undefined });
|
|
293
|
+
this.turnsUsed += 1;
|
|
294
|
+
this.turns.push({ index: this.turnsUsed, calls: [], outcome: skippedReplyText(cause.content), notes: [] });
|
|
295
|
+
this.note(`turn ${String(this.turnsUsed)} answered without the forced tool call: retrying with auto`);
|
|
296
|
+
}
|
|
297
|
+
else if (isForcedToolChoiceRejected(cause)) {
|
|
298
|
+
this.note(`the model rejected a forced tool choice before turn ${String(this.turnsUsed + 1)}: retrying with auto`);
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
274
301
|
return undefined;
|
|
275
302
|
}
|
|
276
303
|
this.toolChoice = 'auto';
|
|
277
304
|
FREE_TOOL_CHOICE_MODELS.add(this.model);
|
|
278
305
|
this.turnOffset = this.turnsUsed;
|
|
279
|
-
this.note(`the model rejected a forced tool choice before turn ${String(this.turnsUsed + 1)}: retrying with auto`);
|
|
280
306
|
return this.lastRequest;
|
|
281
307
|
}
|
|
308
|
+
/**
|
|
309
|
+
* A provider that downgraded a forced choice to `auto` on its own (a
|
|
310
|
+
* `toolChoice` warning on a turn that otherwise succeeded) is treated like
|
|
311
|
+
* one that refused it: the rest of the step asks with `auto` under the
|
|
312
|
+
* tool-calls-only rule, and the model is remembered, so later steps start
|
|
313
|
+
* in that mode.
|
|
314
|
+
*/
|
|
315
|
+
noticeToolChoiceDowngrade(step) {
|
|
316
|
+
if (this.toolChoice === 'auto' || step.warnings?.some(isForcedToolChoiceDowngraded) !== true)
|
|
317
|
+
return;
|
|
318
|
+
this.toolChoice = 'auto';
|
|
319
|
+
FREE_TOOL_CHOICE_MODELS.add(this.model);
|
|
320
|
+
this.note(`the provider sent auto in place of a forced tool choice on turn ${String(this.turnsUsed)}: continuing with auto`);
|
|
321
|
+
}
|
|
282
322
|
/**
|
|
283
323
|
* The one recovery the loop attempts on its own: a request the provider
|
|
284
324
|
* refused as too large is sent again with the history shrunk — superseded
|
|
@@ -409,6 +449,8 @@ class LoopRun {
|
|
|
409
449
|
// alone under `auto`; the notices above already tell it to call it.
|
|
410
450
|
return {
|
|
411
451
|
...(outgoing === messages ? {} : { messages: outgoing }),
|
|
452
|
+
// A switch to `auto` inside this generate call: the remaining turns get the tool-calls-only rule too.
|
|
453
|
+
...(this.toolChoice === this.instructedFor ? {} : { instructions: this.hints.instructions(this.instructions()) }),
|
|
412
454
|
...(forced
|
|
413
455
|
? {
|
|
414
456
|
activeTools: ['complete_step'],
|
|
@@ -564,6 +606,17 @@ function truncate(text, max) {
|
|
|
564
606
|
return text.length <= max ? text : `${text.slice(0, max)}…[truncated]`;
|
|
565
607
|
}
|
|
566
608
|
/** A tool result for the transcript: a screenshot-carrying result reads as its text plus the image size, never the bytes. */
|
|
609
|
+
/** The prose of a reply the SDK refused for lacking the forced tool call, as a turn outcome. */
|
|
610
|
+
function skippedReplyText(content) {
|
|
611
|
+
const text = (content ?? [])
|
|
612
|
+
.flatMap((part) => {
|
|
613
|
+
const record = part;
|
|
614
|
+
return record.type === 'text' && typeof record.text === 'string' ? [record.text] : [];
|
|
615
|
+
})
|
|
616
|
+
.join('')
|
|
617
|
+
.trim();
|
|
618
|
+
return text === '' ? '' : `assistant: ${truncate(text, MAX_TURN_TEXT_CHARS)}`;
|
|
619
|
+
}
|
|
567
620
|
function describeOutput(output) {
|
|
568
621
|
if (isScreenOutput(output))
|
|
569
622
|
return `${output.text}\n[screenshot, ${String(output.pixels.data.byteLength)} bytes]`;
|
|
@@ -579,4 +632,3 @@ function safeJson(value) {
|
|
|
579
632
|
return String(value);
|
|
580
633
|
}
|
|
581
634
|
}
|
|
582
|
-
//# sourceMappingURL=tool-loop.js.map
|