eve 0.61.1 → 0.63.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/CHANGELOG.md +33 -0
- package/dist/src/_virtual/_rolldown/runtime.js +1 -1
- package/dist/src/cli/banner.d.ts +1 -2
- package/dist/src/cli/commands/init-install.d.ts +8 -5
- package/dist/src/cli/commands/init-install.js +1 -1
- package/dist/src/cli/commands/init-project.d.ts +1 -2
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/dev/boot-progress.js +1 -1
- package/dist/src/cli/dev/command.js +1 -1
- package/dist/src/cli/dev/tui/agent-header.d.ts +1 -10
- package/dist/src/cli/dev/tui/agent-header.js +1 -1
- package/dist/src/cli/dev/tui/blocks.js +1 -1
- package/dist/src/cli/dev/tui/model-picker.d.ts +48 -0
- package/dist/src/cli/dev/tui/model-picker.js +1 -0
- package/dist/src/cli/dev/tui/prompt-commands.js +1 -1
- package/dist/src/cli/dev/tui/registry-result-message.js +2 -1
- package/dist/src/cli/dev/tui/runner.d.ts +2 -5
- package/dist/src/cli/dev/tui/runner.js +2 -2
- package/dist/src/cli/dev/tui/setup-commands.d.ts +1 -1
- package/dist/src/cli/dev/tui/setup-commands.js +1 -1
- package/dist/src/cli/dev/tui/setup-flow.d.ts +2 -2
- package/dist/src/cli/dev/tui/setup-panel.d.ts +1 -26
- package/dist/src/cli/dev/tui/setup-panel.js +5 -5
- package/dist/src/cli/dev/tui/stream-format.d.ts +0 -7
- package/dist/src/cli/dev/tui/stream-format.js +1 -1
- package/dist/src/cli/dev/tui/subagent-pump.d.ts +1 -1
- package/dist/src/cli/dev/tui/subagent-pump.js +1 -1
- package/dist/src/cli/dev/tui/terminal-renderer.d.ts +0 -3
- package/dist/src/cli/dev/tui/terminal-renderer.js +12 -12
- package/dist/src/cli/dev/tui/test/fake-setup-flow-renderer.js +1 -1
- package/dist/src/cli/dev/tui/test/mock-terminal.js +1 -1
- package/dist/src/cli/dev/tui/theme.d.ts +0 -8
- package/dist/src/cli/dev/tui/theme.js +1 -1
- package/dist/src/cli/dev/tui/tui.d.ts +0 -1
- package/dist/src/cli/dev/tui/tui.js +1 -1
- package/dist/src/cli/run.js +1 -1
- package/dist/src/cli/ui/live-row.d.ts +4 -1
- package/dist/src/cli/ui/live-row.js +1 -1
- package/dist/src/compiled/.vendor-stamp.json +1 -1
- package/dist/src/compiler/extension-compatibility.d.ts +29 -8
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/compiler/manifest.d.ts +0 -5
- package/dist/src/compiler/manifest.js +1 -1
- package/dist/src/compiler/normalize-agent-config.js +1 -1
- package/dist/src/compiler/normalize-manifest.js +1 -1
- package/dist/src/compiler/normalize-tool.js +1 -1
- package/dist/src/compiler/project-sources.d.ts +1 -1
- package/dist/src/compiler/project-sources.js +1 -1
- package/dist/src/compiler/source-graph.js +1 -1
- package/dist/src/compiler/validate-artifact.js +1 -1
- package/dist/src/context/build-dynamic-tools.js +1 -1
- package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
- package/dist/src/discover/discover-agent.js +1 -1
- package/dist/src/discover/manifest.d.ts +0 -3
- package/dist/src/discover/manifest.js +1 -1
- package/dist/src/evals/abort.d.ts +2 -0
- package/dist/src/evals/abort.js +1 -0
- package/dist/src/evals/context.js +1 -1
- package/dist/src/evals/define-eval-config.d.ts +2 -2
- package/dist/src/evals/define-eval-config.js +1 -1
- package/dist/src/evals/define-eval.d.ts +3 -3
- package/dist/src/evals/define-eval.js +1 -1
- package/dist/src/evals/expect/index.js +1 -1
- package/dist/src/evals/expect/levenshtein.d.ts +2 -0
- package/dist/src/evals/expect/levenshtein.js +1 -0
- package/dist/src/evals/index.d.ts +1 -1
- package/dist/src/evals/judge.d.ts +3 -12
- package/dist/src/evals/judge.js +2 -2
- package/dist/src/evals/runner/derive-run-facts.js +1 -1
- package/dist/src/evals/runner/discover.js +1 -1
- package/dist/src/evals/runner/execute-task.js +1 -1
- package/dist/src/evals/types.d.ts +56 -41
- package/dist/src/eve-channel/request.js +1 -1
- package/dist/src/execution/cancel-descendant-turns-step.js +1 -1
- package/dist/src/execution/cancel-indexed-session-tasks-step.d.ts +2 -1
- package/dist/src/execution/cancel-indexed-session-tasks-step.js +1 -1
- package/dist/src/execution/coordination-dispatch-shared.d.ts +1 -6
- package/dist/src/execution/coordination-dispatch-shared.js +1 -1
- package/dist/src/execution/coordination-dispatch-step.js +1 -1
- package/dist/src/execution/dynamic-workflow/tool.js +1 -1
- package/dist/src/execution/legacy-session/interrupt-step.js +1 -1
- package/dist/src/execution/node-step.js +1 -1
- package/dist/src/execution/proxied-deliver-step.js +1 -1
- package/dist/src/execution/route-child-delivery.js +3 -1
- package/dist/src/execution/session/admission.js +1 -1
- package/dist/src/execution/session/handoff-steps.js +1 -1
- package/dist/src/execution/session/handoff.d.ts +2 -1
- package/dist/src/execution/session/handoff.js +1 -1
- package/dist/src/execution/session/input-queue.d.ts +2 -0
- package/dist/src/execution/session/input-queue.js +1 -1
- package/dist/src/execution/session/next-input.js +1 -1
- package/dist/src/execution/session/turn.js +1 -1
- package/dist/src/execution/session-workflow-tool-run.js +1 -1
- package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
- package/dist/src/execution/stable-workflow-names.d.ts +0 -1
- package/dist/src/execution/stable-workflow-names.js +1 -1
- package/dist/src/execution/tasks/child/notify.d.ts +44 -0
- package/dist/src/execution/tasks/child/notify.js +1 -0
- package/dist/src/execution/tasks/parent/control-shared.d.ts +2 -5
- package/dist/src/execution/tasks/parent/control-shared.js +1 -1
- package/dist/src/execution/tasks/parent/delegate.d.ts +8 -36
- package/dist/src/execution/tasks/parent/delegate.js +1 -1
- package/dist/src/execution/tasks/parent/dispatch.d.ts +3 -5
- package/dist/src/execution/tasks/parent/dispatch.js +1 -1
- package/dist/src/execution/tasks/parent/hitl-proxy-steps.d.ts +4 -1
- package/dist/src/execution/tasks/parent/hitl-proxy-steps.js +1 -1
- package/dist/src/execution/tasks/parent/run-parent.d.ts +5 -19
- package/dist/src/execution/tasks/parent/run-parent.js +1 -1
- package/dist/src/execution/tasks/parent/task-cancel.d.ts +6 -5
- package/dist/src/execution/tasks/parent/task-cancel.js +1 -1
- package/dist/src/execution/tasks/parent/tool-execution.js +1 -1
- package/dist/src/execution/tool-auth.d.ts +3 -9
- package/dist/src/execution/tool-auth.js +1 -1
- package/dist/src/execution/tools/agent-router-workflow.js +1 -1
- package/dist/src/execution/tools/sleep-workflow.js +1 -1
- package/dist/src/execution/tools/subagent/accept-event-step.js +1 -1
- package/dist/src/execution/tools/subagent/emit-event-step.d.ts +11 -0
- package/dist/src/execution/tools/subagent/emit-event-step.js +1 -0
- package/dist/src/execution/tools/subagent/invoke-agent.d.ts +5 -7
- package/dist/src/execution/tools/subagent/invoke-agent.js +1 -1
- package/dist/src/execution/tools/subagent/invoke-preparation.js +1 -1
- package/dist/src/execution/tools/subagent/invoke-step.d.ts +3 -2
- package/dist/src/execution/tools/subagent/invoke-step.js +1 -1
- package/dist/src/execution/tools/subagent/task-agent-requests.d.ts +0 -1
- package/dist/src/execution/tools/subagent/task-agent-requests.js +1 -1
- package/dist/src/execution/tools/subagent/task-cancel.d.ts +1 -1
- package/dist/src/execution/tools/subagent/task-cancel.js +1 -1
- package/dist/src/execution/tools/workflow/background.d.ts +1 -1
- package/dist/src/execution/tools/workflow/background.js +1 -1
- package/dist/src/execution/tools/workflow/body.d.ts +0 -2
- package/dist/src/execution/tools/workflow/body.js +1 -1
- package/dist/src/execution/tools/workflow/cancel.d.ts +4 -3
- package/dist/src/execution/tools/workflow/cancel.js +1 -1
- package/dist/src/execution/tools/workflow/cancellation-policy.d.ts +2 -0
- package/dist/src/execution/tools/workflow/cancellation-policy.js +1 -0
- package/dist/src/execution/tools/workflow/messages.d.ts +0 -1
- package/dist/src/execution/tools/workflow/owner-channels.d.ts +6 -6
- package/dist/src/execution/tools/workflow/owner-inbox.d.ts +5 -9
- package/dist/src/execution/tools/workflow/owner-inbox.js +1 -1
- package/dist/src/execution/tools/workflow/owner.d.ts +6 -2
- package/dist/src/execution/tools/workflow/owner.js +1 -1
- package/dist/src/execution/tools/workflow/start.js +1 -1
- package/dist/src/execution/tools/workflow/types.d.ts +11 -19
- package/dist/src/execution/tools/workflow/types.js +1 -1
- package/dist/src/execution/tools/workflow/workflow-owner-background.d.ts +13 -0
- package/dist/src/execution/tools/workflow/workflow-owner-background.js +1 -0
- package/dist/src/execution/tools/workflow/workflow-owner-blocking.d.ts +12 -0
- package/dist/src/execution/tools/workflow/workflow-owner-blocking.js +1 -0
- package/dist/src/execution/tools/workflow/workflow.d.ts +3 -3
- package/dist/src/execution/tools/workflow/workflow.js +1 -1
- package/dist/src/execution/workflow-runtime.d.ts +0 -4
- package/dist/src/execution/workflow-runtime.js +1 -1
- package/dist/src/harness/background-tools.d.ts +3 -5
- package/dist/src/harness/coordination.js +1 -1
- package/dist/src/harness/emission.js +1 -1
- package/dist/src/harness/execute-tool.d.ts +2 -29
- package/dist/src/harness/tool-loop.js +1 -1
- package/dist/src/harness/tool-model-output.js +1 -1
- package/dist/src/harness/tools.js +1 -1
- package/dist/src/harness/workflow-tool-runs.d.ts +53 -18
- package/dist/src/harness/workflow-tool-runs.js +1 -1
- package/dist/src/instrumentation/dispatch.js +1 -1
- package/dist/src/instrumentation/lifecycle.d.ts +2 -4
- package/dist/src/instrumentation/provider.d.ts +8 -16
- package/dist/src/instrumentation/provider.js +1 -1
- package/dist/src/instrumentation/providers.js +1 -1
- package/dist/src/instrumentation/runtime-context.d.ts +2 -5
- package/dist/src/instrumentation/runtime-context.js +1 -1
- package/dist/src/instrumentation/runtime.d.ts +1 -4
- package/dist/src/instrumentation/runtime.js +1 -1
- package/dist/src/instrumentation/setup-context.d.ts +0 -5
- package/dist/src/internal/application/compiled-artifacts.d.ts +4 -7
- package/dist/src/internal/application/compiled-artifacts.js +2 -4
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/authored-definition/core.js +1 -1
- package/dist/src/internal/authored-package-boundary.js +1 -1
- package/dist/src/internal/authored-runtime-modules.d.ts +1 -1
- package/dist/src/internal/authored-runtime-modules.js +1 -1
- package/dist/src/internal/instrumentation-layout.d.ts +6 -20
- package/dist/src/internal/instrumentation-layout.js +1 -1
- package/dist/src/internal/materialized-authored-modules.d.ts +2 -5
- package/dist/src/internal/materialized-authored-modules.js +1 -1
- package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
- package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
- package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
- package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
- package/dist/src/internal/nitro/routes/channel-request-instrumentation.js +1 -1
- package/dist/src/protocol/message.d.ts +4 -4
- package/dist/src/public/instrumentation/index.d.ts +4 -102
- package/dist/src/public/instrumentation/index.js +1 -1
- package/dist/src/public/instrumentation/otel.d.ts +1 -2
- package/dist/src/public/tools/index.d.ts +2 -2
- package/dist/src/runtime/agent/resolve-model.js +1 -1
- package/dist/src/runtime/connections/scoped-authorization.js +1 -1
- package/dist/src/runtime/resolve-agent.js +1 -1
- package/dist/src/runtime/sessions/turn.d.ts +10 -8
- package/dist/src/runtime/subagents/registry.js +1 -1
- package/dist/src/runtime/subagents/workflow.js +1 -1
- package/dist/src/runtime/tools/registry.js +1 -1
- package/dist/src/sandbox/backends/default.d.ts +2 -11
- package/dist/src/sandbox/backends/default.js +1 -1
- package/dist/src/sandbox/backends/probes.d.ts +7 -0
- package/dist/src/sandbox/backends/probes.js +1 -0
- package/dist/src/self-modification/agent.d.ts +5 -12
- package/dist/src/self-modification/agent.js +1 -1
- package/dist/src/self-modification/extension/classify-registry-item.d.ts +1 -1
- package/dist/src/self-modification/extension/extension.d.ts +5 -0
- package/dist/src/self-modification/extension/extension.js +1 -1
- package/dist/src/self-modification/extension/subagents/agent/agent.d.ts +19 -0
- package/dist/src/self-modification/extension/subagents/agent/agent.js +1 -0
- package/dist/src/self-modification/extension/subagents/agent/instructions.js +37 -0
- package/dist/src/self-modification/extension/subagents/agent/sandbox.d.ts +26 -0
- package/dist/src/self-modification/extension/subagents/agent/sandbox.js +1 -0
- package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/publish.d.ts +2 -2
- package/dist/src/self-modification/extension/subagents/agent/tools/publish.js +1 -0
- package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/registry_add.d.ts +2 -2
- package/dist/src/self-modification/extension/subagents/agent/tools/registry_add.js +1 -0
- package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/search_registry.js +1 -1
- package/dist/src/self-modification/git-workspace.d.ts +1 -1
- package/dist/src/self-modification/git-workspace.js +1 -1
- package/dist/src/self-modification/migration.d.ts +10 -0
- package/dist/src/self-modification/migration.js +28 -0
- package/dist/src/self-modification/proposal.d.ts +1 -1
- package/dist/src/self-modification/proposal.js +1 -1
- package/dist/src/self-modification/sandbox.d.ts +6 -20
- package/dist/src/self-modification/sandbox.js +1 -1
- package/dist/src/self-modification/setup.js +7 -6
- package/dist/src/setup/flows/model.d.ts +5 -5
- package/dist/src/setup/flows/registry.js +1 -2
- package/dist/src/setup/integrations/self-modification/setup.d.ts +6 -3
- package/dist/src/setup/integrations/self-modification/setup.js +1 -1
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/setup/scaffold/index.d.ts +1 -0
- package/dist/src/setup/scaffold/index.js +1 -1
- package/dist/src/setup/scaffold/update/dependencies.d.ts +12 -0
- package/dist/src/setup/scaffold/update/dependencies.js +1 -0
- package/dist/src/setup/scaffold/version-tokens.d.ts +1 -0
- package/dist/src/setup/scaffold/version-tokens.js +1 -1
- package/dist/src/shared/action-types.d.ts +0 -4
- package/dist/src/shared/action-types.js +1 -1
- package/dist/src/shared/agent-definition.d.ts +0 -9
- package/dist/src/shared/trace-policy.d.ts +0 -3
- package/dist/src/shared/trace-policy.js +1 -1
- package/dist/src/tasks/delivery-context.js +2 -2
- package/dist/src/tasks/notification.d.ts +4 -0
- package/dist/src/tasks/notification.js +1 -0
- package/dist/src/tasks/session-task-cohorts.d.ts +1 -12
- package/dist/src/tasks/session-task-cohorts.js +1 -1
- package/dist/src/tasks/transitions.d.ts +5 -2
- package/dist/src/tasks/transitions.js +1 -1
- package/dist/src/tasks/types.d.ts +2 -52
- package/dist/src/tasks/types.js +1 -1
- package/dist/src/tools/definition.d.ts +1 -25
- package/dist/src/tools/definition.js +1 -1
- package/dist/src/tools/dynamic.d.ts +1 -3
- package/dist/src/tools/framework/agent.d.ts +16 -22
- package/dist/src/tools/framework/agent.js +1 -1
- package/dist/src/tools/workflow-definition.d.ts +16 -5
- package/dist/src/tracing/agent-invocation-coordinator.js +1 -1
- package/dist/src/tracing/agent-trace-context-store.js +1 -1
- package/dist/src/tracing/content-span-processor.js +1 -1
- package/dist/src/tracing/install-instrumentation-runtime.d.ts +2 -4
- package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
- package/dist/src/tracing/otel-declaration.d.ts +5 -4
- package/dist/src/tracing/otel-declaration.js +1 -1
- package/dist/src/tracing/span-export-policy.d.ts +1 -3
- package/docs/agent-config.md +1 -1
- package/docs/concepts/execution-model-and-durability.mdx +4 -5
- package/docs/concepts/security-model.md +4 -1
- package/docs/concepts/sessions-runs-and-streaming.md +2 -2
- package/docs/evals/assertions.mdx +6 -2
- package/docs/evals/cases.mdx +4 -6
- package/docs/evals/judge.mdx +99 -56
- package/docs/evals/overview.mdx +8 -6
- package/docs/evals/reporters.mdx +1 -1
- package/docs/guides/dev-tui.md +22 -10
- package/docs/guides/evaluate.md +4 -0
- package/docs/guides/frontend/overview.mdx +1 -1
- package/docs/guides/hooks.md +1 -1
- package/docs/guides/instrumentation/{providers.mdx → instrumentation.mdx} +39 -43
- package/docs/guides/instrumentation/meta.json +1 -1
- package/docs/guides/instrumentation/migration.md +97 -0
- package/docs/guides/instrumentation/otel.mdx +95 -33
- package/docs/install-integrations.mdx +1 -1
- package/docs/reference/agent-files.md +2 -2
- package/docs/reference/cli.md +1 -1
- package/docs/reference/typescript-api.md +4 -2
- package/docs/subagents/index.mdx +12 -9
- package/docs/tools/overview.mdx +26 -34
- package/docs/tools/workflows.mdx +31 -24
- package/package.json +1 -2
- package/dist/src/cli/dev/tui/model-editor.d.ts +0 -103
- package/dist/src/cli/dev/tui/model-editor.js +0 -1
- package/dist/src/compiler/instrumentation-layout-config.d.ts +0 -3
- package/dist/src/compiler/instrumentation-layout-config.js +0 -1
- package/dist/src/evals/autoevals-client.d.ts +0 -14
- package/dist/src/evals/autoevals-client.js +0 -2
- package/dist/src/execution/tasks/child/steps.d.ts +0 -81
- package/dist/src/execution/tasks/child/steps.js +0 -1
- package/dist/src/execution/tasks/child/workflow.d.ts +0 -28
- package/dist/src/execution/tasks/child/workflow.js +0 -1
- package/dist/src/execution/tools/subagent/emit-called-step.d.ts +0 -9
- package/dist/src/execution/tools/subagent/emit-called-step.js +0 -1
- package/dist/src/execution/tools/workflow/run-control.d.ts +0 -14
- package/dist/src/execution/tools/workflow/run-control.js +0 -1
- package/dist/src/instrumentation/config.d.ts +0 -13
- package/dist/src/instrumentation/config.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/ajv.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/code.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/index.js +0 -2
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/scope.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/errors.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/index.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/names.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/ref_error.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/resolve.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/rules.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/util.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/applicability.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/boolSchema.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/dataType.js +0 -4
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/defaults.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/index.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/keyword.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/subschema.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/core.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/data.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-draft-07.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/equal.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/ucs2length.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/uri.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/validation_error.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/allOf.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/contains.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +0 -4
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/if.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/index.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/items.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/items2020.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/not.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/properties.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/code.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/id.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/index.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/ref.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/discriminator/index.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/discriminator/types.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/draft7.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/format/format.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/format/index.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/metadata.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/const.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/enum.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/index.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitItems.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitLength.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/pattern.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/required.js +0 -1
- package/dist/src/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +0 -1
- package/dist/src/node_modules/.pnpm/autoevals@0.0.132_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0_/node_modules/autoevals/jsdist/index.js +0 -384
- package/dist/src/node_modules/.pnpm/compute-cosine-similarity@1.1.0/node_modules/compute-cosine-similarity/lib/index.js +0 -1
- package/dist/src/node_modules/.pnpm/compute-dot@1.1.0/node_modules/compute-dot/lib/index.js +0 -1
- package/dist/src/node_modules/.pnpm/compute-l2norm@1.1.0/node_modules/compute-l2norm/lib/index.js +0 -1
- package/dist/src/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js +0 -1
- package/dist/src/node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/index.js +0 -1
- package/dist/src/node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/lib/schemes.js +0 -1
- package/dist/src/node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/lib/utils.js +0 -1
- package/dist/src/node_modules/.pnpm/js-levenshtein@1.1.6/node_modules/js-levenshtein/index.js +0 -1
- package/dist/src/node_modules/.pnpm/js-yaml@4.3.2/node_modules/js-yaml/dist/js-yaml.js +0 -34
- package/dist/src/node_modules/.pnpm/json-schema-traverse@1.0.0/node_modules/json-schema-traverse/index.js +0 -1
- package/dist/src/node_modules/.pnpm/mustache@4.2.0/node_modules/mustache/mustache.js +0 -4
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/_vendor/partial-json-parser/parser.js +0 -2
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/auth/workload-identity-auth.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/azure.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/bedrock.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/client.js +0 -11
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/core/api-promise.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/core/error.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/core/pagination.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/core/resource.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/core/streaming.js +0 -3
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/core/uploads.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/error.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/index.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/decoders/line.js +0 -3
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/detect-platform.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/errors.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/headers.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/parse.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/provider.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/qs/formats.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/qs/stringify.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/qs/utils.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/request-options.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/shims.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/to-file.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/tslib.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/uploads.js +0 -2
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/base64.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/bytes.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/env.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/log.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/path.js +0 -2
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/query.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/sleep.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/uuid.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils/values.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/internal/utils.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/AbstractChatCompletionRunner.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/AssistantStream.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/ChatCompletionRunner.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/ChatCompletionStream.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/ChatCompletionStreamingRunner.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/EventStream.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/ResponsesParser.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/RunnableFunction.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/Util.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/chatCompletionUtils.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/parser.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/responses/ResponseAccumulator.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/lib/responses/ResponseStream.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/admin.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/admin-api-keys.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/audit-logs.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/certificates.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/data-retention.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/groups/groups.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/groups/roles.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/groups/users.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/invites.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/organization.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/api-keys.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/certificates.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/data-retention.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/groups/groups.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/groups/roles.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/model-permissions.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/projects.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/rate-limits.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/roles.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/service-accounts/api-keys.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/service-accounts/service-accounts.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/spend-alerts.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/spend-limit.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/users/roles.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/projects/users/users.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/roles.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/spend-alerts.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/spend-limit.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/usage.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/users/roles.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/admin/organization/users/users.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/audio/audio.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/audio/speech.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/audio/transcriptions.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/audio/translations.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/batches.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/assistants.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/beta.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/chatkit/chatkit.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/chatkit/sessions.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/chatkit/threads.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/realtime/realtime.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/realtime/sessions.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/realtime/transcription-sessions.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/responses/input-items.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/responses/input-tokens.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/responses/responses.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/threads/messages.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/threads/runs/runs.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/threads/runs/steps.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/beta/threads/threads.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/chat/chat.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/chat/completions/completions.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/chat/completions/index.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/chat/completions/messages.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/chat/index.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/completions.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/containers/containers.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/containers/files/content.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/containers/files/files.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/conversations/conversations.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/conversations/items.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/embeddings.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/evals/evals.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/evals/runs/output-items.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/evals/runs/runs.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/files.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/alpha/alpha.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/alpha/graders.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/checkpoints/permissions.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/fine-tuning.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/jobs/checkpoints.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/jobs/jobs.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/fine-tuning/methods.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/graders/grader-models.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/graders/graders.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/images.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/index.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/models.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/moderations.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/realtime/calls.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/realtime/client-secrets.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/realtime/realtime.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/responses/input-items.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/responses/input-tokens.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/responses/responses.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/shared.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/skills/content.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/skills/skills.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/skills/versions/content.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/skills/versions/versions.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/uploads/parts.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/uploads/uploads.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/vector-stores/file-batches.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/vector-stores/files.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/vector-stores/vector-stores.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/videos.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/webhooks/index.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/webhooks/webhooks.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/resources/webhooks.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/streaming.js +0 -1
- package/dist/src/node_modules/.pnpm/openai@6.49.0_@smithy_signature-v4@5.7.3_ws@8.21.3_bufferutil@4.1.0__zod@3.25.76/node_modules/openai/version.js +0 -1
- package/dist/src/node_modules/.pnpm/validate.io-array@1.0.6/node_modules/validate.io-array/lib/index.js +0 -1
- package/dist/src/node_modules/.pnpm/validate.io-function@1.0.2/node_modules/validate.io-function/lib/index.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/index.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseTypes.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +0 -3
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js +0 -1
- package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +0 -1
- package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/index.js +0 -1
- package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js +0 -1
- package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js +0 -1
- package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js +0 -1
- package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js +0 -1
- package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js +0 -1
- package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/typeAliases.js +0 -1
- package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js +0 -1
- package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/index.js +0 -1
- package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js +0 -1
- package/dist/src/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js +0 -1
- package/dist/src/self-modification/extension/instructions.js +0 -37
- package/dist/src/self-modification/extension/tools/publish.js +0 -1
- package/dist/src/self-modification/extension/tools/registry_add.js +0 -1
- package/dist/src/tasks/session-index.d.ts +0 -65
- package/dist/src/tasks/session-index.js +0 -1
- package/dist/src/tools/task.d.ts +0 -55
- package/dist/src/tools/task.js +0 -1
- package/docs/guides/instrumentation/overview.md +0 -199
- /package/dist/src/self-modification/extension/{instructions.d.ts → subagents/agent/instructions.d.ts} +0 -0
- /package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/edit_file.d.ts +0 -0
- /package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/edit_file.js +0 -0
- /package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/search_models.d.ts +0 -0
- /package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/search_models.js +0 -0
- /package/dist/src/self-modification/extension/{tools → subagents/agent/tools}/search_registry.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createActionInputAppendedEvent,createActionPartialEvent,createActionResultEvent,createActionsRequestedEvent,createMessageAppendedEvent,createMessageCompletedEvent,createMessageReceivedEvent,createReasoningAppendedEvent,createReasoningCompletedEvent,createSessionCompletedEvent,createSessionFailedEvent,createSessionStartedEvent,createSessionWaitingEvent,createStepFailedEvent,createStepStartedEvent,createTurnCompletedEvent,createTurnFailedEvent,createTurnStartedEvent}from"#protocol/message.js";import{frameworkMessageKindForStepInput}from"#harness/messages.js";import{collectActionPresentation,createPresentedRuntimeActionRequestFromToolCall}from"#harness/action-presentation.js";import{createRuntimeToolResultFromStepResult,createRuntimeToolResultFromToolError,createToolResultMessagePartFromToolError}from"#harness/action-result-helpers.js";import{hasEmptyDeliverySentinel}from"#shared/empty-delivery.js";import{createInvalidToolCallInputError,isInvalidToolCall,resolveProviderToolCallRequest}from"#harness/tool-call-input-errors.js";import{projectDeltaPresentation,projectResultPresentation}from"#harness/tool-presentation.js";import{createProviderStreamActionBatch}from"#harness/stream-actions.js";import{normalizeModelStreamError}from"#harness/model-call-error.js";import{createOrderedStreamEmitter}from"#harness/ordered-stream-emitter.js";import{interruptStreamOnFailure}from"#harness/interruptible-stream.js";import{isInlineAuthorizationToolResult}from"#harness/inline-tool-authorization.js";import{normalizeAssistantStepFinishReason}from"#harness/finish-reason.js";import{getHarnessEmissionState,isHarnessBetweenTurns,setHarnessEmissionState}from"#harness/emission-state.js";async function emitTurnPreamble(e,t,n,r,i,a){let o=n.turnId!==``,s=o?n.turnId:`turn_${n.sequence}`;if(n.sessionStarted||await e(createSessionStartedEvent({runtime:i,trace:a})),o||await e(createTurnStartedEvent({sequence:n.sequence,trace:a,turnId:s}),r),t.message!==void 0){let r=frameworkMessageKindForStepInput(t);await e(createMessageReceivedEvent({kind:r===`execution.background_task`?r:void 0,message:t.message,sequence:n.sequence,turnId:s}))}let c={sessionStarted:!0,sequence:n.sequence,stepIndex:o?n.stepIndex:0,turnId:s};return o&&n.assistantOutputStarted?{...c,assistantOutputStarted:!0}:c}async function emitStepStarted(e,t,n,r){await e(createStepStartedEvent({modelId:n,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId}),r)}async function emitStepAndTurnFailed(e,t,n){await e(createStepFailedEvent({...n,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),await e(createTurnFailedEvent({...n,sequence:t.sequence,turnId:t.turnId}))}async function emitFailedStep(e,t,n){await emitStepAndTurnFailed(e,t,n),await e(createSessionFailedEvent(n))}async function emitRecoverableFailedTurn(e,t,n){return await emitStepAndTurnFailed(e,t,n),await e(createSessionWaitingEvent()),{sessionStarted:t.sessionStarted,sequence:t.sequence+1,stepIndex:0,turnId:``}}function advanceStep(e){return{...e,stepIndex:e.stepIndex+1}}async function emitTurnEpilogue(e,t,n){return await e(createTurnCompletedEvent({sequence:t.sequence,turnId:t.turnId})),n===`conversation`?await e(createSessionWaitingEvent()):await e(createSessionCompletedEvent()),{sessionStarted:t.sessionStarted,sequence:t.sequence+1,stepIndex:0,turnId:``}}
|
|
1
|
+
import{createActionInputAppendedEvent,createActionPartialEvent,createActionResultEvent,createActionsRequestedEvent,createMessageAppendedEvent,createMessageCompletedEvent,createMessageReceivedEvent,createReasoningAppendedEvent,createReasoningCompletedEvent,createSessionCompletedEvent,createSessionFailedEvent,createSessionStartedEvent,createSessionWaitingEvent,createStepFailedEvent,createStepStartedEvent,createTurnCompletedEvent,createTurnFailedEvent,createTurnStartedEvent}from"#protocol/message.js";import{frameworkMessageKindForStepInput}from"#harness/messages.js";import{collectActionPresentation,createPresentedRuntimeActionRequestFromToolCall}from"#harness/action-presentation.js";import{createRuntimeToolResultFromStepResult,createRuntimeToolResultFromToolError,createToolResultMessagePartFromToolError}from"#harness/action-result-helpers.js";import{hasEmptyDeliverySentinel}from"#shared/empty-delivery.js";import{createInvalidToolCallInputError,isInvalidToolCall,resolveProviderToolCallRequest}from"#harness/tool-call-input-errors.js";import{projectDeltaPresentation,projectResultPresentation}from"#harness/tool-presentation.js";import{createProviderStreamActionBatch}from"#harness/stream-actions.js";import{normalizeModelStreamError}from"#harness/model-call-error.js";import{createOrderedStreamEmitter}from"#harness/ordered-stream-emitter.js";import{interruptStreamOnFailure}from"#harness/interruptible-stream.js";import{isInlineAuthorizationToolResult}from"#harness/inline-tool-authorization.js";import{normalizeAssistantStepFinishReason}from"#harness/finish-reason.js";import{getHarnessEmissionState,isHarnessBetweenTurns,setHarnessEmissionState}from"#harness/emission-state.js";async function emitTurnPreamble(e,t,n,r,i,a){let o=n.turnId!==``,s=o?n.turnId:`turn_${n.sequence}`;if(n.sessionStarted||await e(createSessionStartedEvent({runtime:i,trace:a})),o||await e(createTurnStartedEvent({sequence:n.sequence,trace:a,turnId:s}),r),t.message!==void 0){let r=frameworkMessageKindForStepInput(t);await e(createMessageReceivedEvent({kind:r===`execution.background_task`?r:void 0,message:t.message,sequence:n.sequence,turnId:s}))}let c={sessionStarted:!0,sequence:n.sequence,stepIndex:o?n.stepIndex:0,turnId:s};return o&&n.assistantOutputStarted?{...c,assistantOutputStarted:!0}:c}async function emitStepStarted(e,t,n,r){await e(createStepStartedEvent({modelId:n,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId}),r)}async function emitStepAndTurnFailed(e,t,n){await e(createStepFailedEvent({...n,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),await e(createTurnFailedEvent({...n,sequence:t.sequence,turnId:t.turnId}))}async function emitFailedStep(e,t,n){await emitStepAndTurnFailed(e,t,n),await e(createSessionFailedEvent(n))}async function emitRecoverableFailedTurn(e,t,n){return await emitStepAndTurnFailed(e,t,n),await e(createSessionWaitingEvent()),{sessionStarted:t.sessionStarted,sequence:t.sequence+1,stepIndex:0,turnId:``}}function advanceStep(e){return{...e,stepIndex:e.stepIndex+1}}async function emitTurnEpilogue(e,t,n){return await e(createTurnCompletedEvent({sequence:t.sequence,turnId:t.turnId})),n===`conversation`?await e(createSessionWaitingEvent()):await e(createSessionCompletedEvent()),{sessionStarted:t.sessionStarted,sequence:t.sequence+1,stepIndex:0,turnId:``}}async function emitStreamContent(e,t,n,r){let i=createOrderedStreamEmitter(e),a=createProviderStreamActionBatch({emitFn:i.emit,state:t});try{return await consumeStreamContent(i.emit,t,interruptStreamOnFailure(n,i.failureSignal),a,r)}finally{try{await a.cancel()}finally{await i.closeAndDrain()}}}async function consumeStreamContent(e,t,n,r,i){let a=``,o=``,s=`stop`,c,l=new Set,u=new Set,d=new Set,f=new Set,p=new Set,m=new Set,h=[],g=[],_=new Map,v=new Map,flushCurrentMessage=async()=>{o.length!==0&&(await e(createMessageCompletedEvent({finishReason:`tool-calls`,message:o,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),o=``)},emitActionInput=async(n,r,i)=>e(createActionInputAppendedEvent({callId:n,inputTextDelta:i,sequence:t.sequence,stepIndex:t.stepIndex,toolName:r,turnId:t.turnId})),emitActionRequest=async n=>{let{action:r}=n;u.has(r.callId)||(o.trim().length>0&&await flushCurrentMessage(),u.add(r.callId),_.set(r.callId,r.input),await e(createActionsRequestedEvent({actions:[r],presentation:collectActionPresentation([n]),sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})))},collectProviderToolCall=async e=>{if(f.has(e.toolCallId)||(f.add(e.toolCallId),u.has(e.toolCallId)))return;u.add(e.toolCallId),o.trim().length>0&&await flushCurrentMessage();let t=resolveProviderToolCallRequest(e,i?.tools??new Map);if(t.toolError!==void 0){m.add(e.toolCallId),await emitActionResult(createRuntimeToolResultFromToolError(t.toolError)),p.add(e.toolCallId),g.push(createToolResultMessagePartFromToolError(t.toolError));return}_.set(t.request.action.callId,t.request.action.input),r.observe(t.request)},emitActionResult=async n=>{if(d.has(n.callId))return;d.add(n.callId);let r=n.isError===!0?void 0:projectResultPresentation(i?.tools.get(n.toolName),n.callId,_.get(n.callId),n.output);await e(createActionResultEvent({presentation:r,result:n,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId}))},emitActionPartial=async n=>{let r=projectDeltaPresentation(i?.tools.get(n.toolName),n.callId,_.get(n.callId),n.output);await e(createActionPartialEvent({presentation:r,result:n,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId}))},emitToolCall=async e=>{if(isInvalidToolCall(e)){m.add(e.toolCallId);return}if(!(i===void 0||i.excludedActionToolNames.has(e.toolName)))try{await emitActionRequest(createPresentedRuntimeActionRequestFromToolCall({toolCall:e,tools:i.tools}))}catch(t){if(t instanceof TypeError){let n=createInvalidToolCallInputError({error:t,toolCall:e});m.add(e.toolCallId),o.trim().length>0&&await flushCurrentMessage(),await emitActionResult(createRuntimeToolResultFromToolError(n)),p.add(e.toolCallId),g.push(createToolResultMessagePartFromToolError(n));return}throw t}};for await(let d of n)if(c===void 0)switch(d.type){case`reasoning-delta`:await r.flush(),a+=d.text,await e(createReasoningAppendedEvent({reasoningDelta:d.text,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId}));break;case`text-delta`:await r.flush(),a.trim().length>0&&(await e(createReasoningCompletedEvent({reasoning:a,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),a=``),o+=d.text,await e(createMessageAppendedEvent({messageDelta:d.text,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId}));break;case`tool-input-start`:if(i===void 0||d.providerExecuted===!0||i.excludedActionToolNames.has(d.toolName)){v.delete(d.id);break}await r.flush(),o.trim().length>0&&await flushCurrentMessage(),v.set(d.id,{toolName:d.toolName});break;case`tool-input-delta`:{let e=v.get(d.id);if(e===void 0)break;await r.flush(),await emitActionInput(d.id,e.toolName,d.delta);break}case`tool-input-end`:v.delete(d.id);break;case`tool-call`:{let e=d;v.delete(e.toolCallId),l.add(e.toolCallId),e.providerExecuted===!0?await collectProviderToolCall(e):(await r.flush(),await emitToolCall(e));break}case`tool-result`:{let e=d;if(e.preliminary===!0){e.providerExecuted!==!0&&await emitActionPartial(createRuntimeToolResultFromStepResult(e));break}if(e.providerExecuted===!0){await collectProviderToolCall({input:`input`in e?e.input:void 0,toolCallId:e.toolCallId,toolName:e.toolName}),await r.flush(),await emitActionResult(createRuntimeToolResultFromStepResult(e));break}if(l.has(d.toolCallId)){if(isInlineAuthorizationToolResult(e))break;u.has(d.toolCallId)&&(await emitActionResult(createRuntimeToolResultFromStepResult(e)),p.add(d.toolCallId));break}if(await r.flush(),await flushCurrentMessage(),isInlineAuthorizationToolResult(e)){p.add(d.toolCallId),h.push(e);break}await emitActionResult(createRuntimeToolResultFromStepResult(e)),p.add(d.toolCallId);break}case`tool-error`:{let e=d;e.providerExecuted===!0?(await collectProviderToolCall(e),await r.flush(),await emitActionResult(createRuntimeToolResultFromToolError(e))):u.has(e.toolCallId)&&(await emitActionResult(createRuntimeToolResultFromToolError(e)),p.add(e.toolCallId),g.push(createToolResultMessagePartFromToolError(e)));break}case`finish-step`:s=normalizeAssistantStepFinishReason(d.finishReason),await r.flush();break;case`error`:c=normalizeModelStreamError(d.error);break;case`abort`:throw new DOMException(d.reason??`The model stream was aborted.`,`AbortError`)}if(await r.flush(),c!==void 0)throw c;return a.trim().length>0&&await e(createReasoningCompletedEvent({reasoning:a,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),s!==`content-filter`&&s!==`tool-calls`&&hasEmptyDeliverySentinel(o)?await e(createMessageCompletedEvent({finishReason:s,message:null,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})):s!==`content-filter`&&o.trim().length>0&&await e(createMessageCompletedEvent({finishReason:s,message:o,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),{emittedActionCallIds:u,handledInlineToolResultCallIds:p,invalidInputToolCallIds:m,inlineAuthorizationResults:h,trailingInlineToolResultParts:g}}export{advanceStep,emitFailedStep,emitRecoverableFailedTurn,emitStepStarted,emitStreamContent,emitTurnEpilogue,emitTurnPreamble,getHarnessEmissionState,isHarnessBetweenTurns,setHarnessEmissionState};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { FlexibleSchema } from "ai";
|
|
2
2
|
import type { Approval } from "#approval/definition.js";
|
|
3
3
|
import type { InternalToolLabelDefinition, ToolExecuteOptions } from "#tools/definition.js";
|
|
4
|
-
import type { TaskExec } from "#tools/task.js";
|
|
5
4
|
import type { JsonValue } from "#shared/json.js";
|
|
6
5
|
import type { PreparedToolBehavior } from "#tools/behavior.js";
|
|
7
6
|
/**
|
|
@@ -22,43 +21,17 @@ export interface HarnessToolDefinition {
|
|
|
22
21
|
readonly approvalKey?: (toolInput: Readonly<Record<string, unknown>>) => string;
|
|
23
22
|
readonly behavior?: PreparedToolBehavior;
|
|
24
23
|
readonly description: string;
|
|
25
|
-
readonly execute?: (input: any, options: ToolExecuteOptions
|
|
24
|
+
readonly execute?: (input: any, options: ToolExecuteOptions) => any;
|
|
26
25
|
/** Optional JSON input substituted when this tool starts its workflow body. */
|
|
27
26
|
readonly executeInput?: (input: unknown) => JsonValue;
|
|
28
27
|
readonly execution?: "background";
|
|
29
28
|
readonly frameworkAction?: "load-skill";
|
|
30
29
|
readonly inputSchema: FlexibleSchema;
|
|
31
30
|
readonly name: string;
|
|
32
|
-
/**
|
|
31
|
+
/** Selected agent definition's runtime graph ID; absent for authored workflow tools. */
|
|
33
32
|
readonly nodeId?: string;
|
|
34
33
|
readonly approval?: Approval;
|
|
35
34
|
readonly outputSchema?: FlexibleSchema;
|
|
36
|
-
/**
|
|
37
|
-
* How the result of this workflow-backed tool is settled: as a
|
|
38
|
-
* `subagent-result` (delegation tools — `behavior.handling.target.kind` is
|
|
39
|
-
* `subagent-call`, `remote-agent-call`, or `self-agent-call`) or as an
|
|
40
|
-
* ordinary `tool-result` (authored workflow tools). Absent means `"tool"`.
|
|
41
|
-
*
|
|
42
|
-
* On the definition itself this duplicates the dispatch target kind; it
|
|
43
|
-
* exists because the value must survive past the tool map. `buildToolSet`,
|
|
44
|
-
* `createCoordinationRequestFromToolCall`, and the workflow sandbox host
|
|
45
|
-
* tool copy it into the `RuntimeWorkflowTaskRequest`, which `startWorkflowTask`
|
|
46
|
-
* persists on the `WorkflowToolRunRecord` in session state and the run echoes
|
|
47
|
-
* back on every `WorkflowToolRunRef` inbox message. The owner turn then routes
|
|
48
|
-
* outcomes, counts the workflow subagent budget, and decides whether child
|
|
49
|
-
* usage accrues without access to a `HarnessToolMap`. Harness-side readers
|
|
50
|
-
* (`advertised-tools`, `emission`, the background tool executor) use it to
|
|
51
|
-
* expose only delegation tools inside workflow sandboxes, emit task receipts,
|
|
52
|
-
* and reserve/claim agent handles for subagent starts.
|
|
53
|
-
*
|
|
54
|
-
* The persisted copy is dropped by `removeWorkflowToolRun` when the run
|
|
55
|
-
* settles, or `clearWorkflowToolRuns` at turn end.
|
|
56
|
-
*
|
|
57
|
-
* TODO: once subagent starts no longer need harness-specific handling,
|
|
58
|
-
* derive this from `behavior.handling.target.kind` at the projection points
|
|
59
|
-
* above and remove the field.
|
|
60
|
-
*/
|
|
61
|
-
readonly resultKind?: "subagent" | "tool";
|
|
62
35
|
/**
|
|
63
36
|
* Advertise this tool only to the root session, hiding it from subagent
|
|
64
37
|
* sessions. Set on the injected `agent` self-delegation tool so children
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{ToolLoopAgent,isStepCount}from"ai";import{readClientContext}from"#internal/client-context.js";import{createErrorId,createLogger,formatError,logError}from"#internal/logging.js";import{contextStorage}from"#context/container.js";import{AuthKey,HistoryStateKey,ParentSessionKey,ScheduleIdKey,SessionCallbackKey,StaticModelReferenceKey,TurnTaskDeliveryKey}from"#context/keys.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{toErrorMessage}from"#shared/errors.js";import{createActionResultEvent,createApprovalCandidateEvent,createApprovalSettledEvent,createAuthorizationCompletedEvent,createAuthorizationRequiredEvent,createCompactionCompletedEvent,createCompactionRequestedEvent,createContextClearedEvent,createInputRequestedEvent,createInputResolvedEvent,createMessageCompletedEvent,createResultCompletedEvent,createSessionWaitingEvent,createStepStartedEvent}from"#protocol/message.js";import{summarizeKnownError}from"#harness/semantic-errors/index.js";import{resolveProviderHeaders}from"#internal/gateway.js";import{formatLanguageModelGatewayId}from"#internal/runtime-model.js";import{createFrameworkUserMessage,createTurnInputMessages,createUserMessage,frameworkMessageKindForStepInput,normalizeModelMessages,normalizeUserContent,resolveAssistantStepText,validateHarnessModelMessages}from"#harness/messages.js";import{getEffectiveModelSelection}from"#context/effective-model.js";import{buildDynamicTools,buildResponseAuthorizationTools}from"#context/build-dynamic-tools.js";import{BoundaryHookError}from"#shared/boundary-hook-error.js";import{drainMemoryCommit,prepareMemoryCompaction,prepareMemoryPreamble}from"#context/memory-lifecycle.js";import{canonicalizeMemoryRecords,clearMemorySessionState,shouldCanonicalizeMemory}from"#shared/memory-state.js";import{advanceStep,emitFailedStep,emitRecoverableFailedTurn,emitStepStarted,emitStreamContent,emitTurnEpilogue,emitTurnPreamble,getHarnessEmissionState,setHarnessEmissionState}from"#harness/emission.js";import{projectParkedAgentHandles,resolveAgentsAnnouncement}from"#subagents/handles/prompt.js";import{renderPendingApprovalsInstruction,renderPendingApprovalsSnippet}from"#harness/hitl/approval-prompt.js";import{setTimeout}from"node:timers/promises";import{getPendingInputBatches,queueDeferredStepInput}from"#harness/pending-input-batches.js";import{getAgentHandleStore}from"#subagents/handles/store.js";import{buildDynamicSubagentTools}from"#context/dynamic-subagent-lifecycle.js";import{hydrateSandboxAttachments,stageAttachmentsToSandbox}from"#harness/attachment-staging.js";import{
|
|
1
|
+
import{ToolLoopAgent,isStepCount}from"ai";import{readClientContext}from"#internal/client-context.js";import{createErrorId,createLogger,formatError,logError}from"#internal/logging.js";import{contextStorage}from"#context/container.js";import{AuthKey,HistoryStateKey,ParentSessionKey,ScheduleIdKey,SessionCallbackKey,StaticModelReferenceKey,TurnTaskDeliveryKey}from"#context/keys.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{toErrorMessage}from"#shared/errors.js";import{createActionResultEvent,createApprovalCandidateEvent,createApprovalSettledEvent,createAuthorizationCompletedEvent,createAuthorizationRequiredEvent,createCompactionCompletedEvent,createCompactionRequestedEvent,createContextClearedEvent,createInputRequestedEvent,createInputResolvedEvent,createMessageCompletedEvent,createResultCompletedEvent,createSessionWaitingEvent,createStepStartedEvent}from"#protocol/message.js";import{summarizeKnownError}from"#harness/semantic-errors/index.js";import{resolveProviderHeaders}from"#internal/gateway.js";import{formatLanguageModelGatewayId}from"#internal/runtime-model.js";import{createFrameworkUserMessage,createTurnInputMessages,createUserMessage,frameworkMessageKindForStepInput,normalizeModelMessages,normalizeUserContent,resolveAssistantStepText,validateHarnessModelMessages}from"#harness/messages.js";import{getEffectiveModelSelection}from"#context/effective-model.js";import{buildDynamicTools,buildResponseAuthorizationTools}from"#context/build-dynamic-tools.js";import{BoundaryHookError}from"#shared/boundary-hook-error.js";import{drainMemoryCommit,prepareMemoryCompaction,prepareMemoryPreamble}from"#context/memory-lifecycle.js";import{canonicalizeMemoryRecords,clearMemorySessionState,shouldCanonicalizeMemory}from"#shared/memory-state.js";import{advanceStep,emitFailedStep,emitRecoverableFailedTurn,emitStepStarted,emitStreamContent,emitTurnEpilogue,emitTurnPreamble,getHarnessEmissionState,setHarnessEmissionState}from"#harness/emission.js";import{projectParkedAgentHandles,resolveAgentsAnnouncement}from"#subagents/handles/prompt.js";import{renderPendingApprovalsInstruction,renderPendingApprovalsSnippet}from"#harness/hitl/approval-prompt.js";import{setTimeout}from"node:timers/promises";import{getPendingInputBatches,queueDeferredStepInput}from"#harness/pending-input-batches.js";import{createCoordinationRequestFromToolCall,resolvePendingCoordination,setPendingCoordinationBatch}from"#harness/coordination.js";import{getAgentHandleStore}from"#subagents/handles/store.js";import{buildDynamicSubagentTools}from"#context/dynamic-subagent-lifecycle.js";import{hydrateSandboxAttachments,stageAttachmentsToSandbox}from"#harness/attachment-staging.js";import{activeTurnId}from"#harness/active-turn-id.js";import{createHistoryViewPreparer}from"#shared/history-view.js";import{isDynamicModelSelectionError}from"#context/dynamic-model-lifecycle.js";import{ASK_QUESTION_TOOL_NAME}from"#harness/request-input-tool.js";import{buildDynamicInstructionMessages,drainDynamicInstructionUserMessages,prepareDynamicInstructionPreamble}from"#context/dynamic-instruction-lifecycle.js";import{PendingSkillAnnouncementKey}from"#context/dynamic-skill-lifecycle.js";import{getSupersededAuthorizationChallenges,setPendingAuthorization}from"#harness/authorization.js";import{appendPendingInputBatch,consumeDeferredStepInput as consumeDeferredStepInput$1,getApprovedTools,getPendingInputRequestIds,hasDeferredStepInput,hasPendingApprovalBatch,hasStepInput,resolvePendingInput}from"#harness/input-requests.js";import{accumulateTurnUsage,getTurnUsageState,setTurnUsageState}from"#harness/turn-tag-state.js";import{setEveAttributes}from"#runtime/attributes/emit.js";import{isTurnCancellation,throwIfTurnAborted}from"#harness/turn-cancellation.js";import{resolveInitiatingTaskContext}from"#tasks/delivery-context.js";import{BackgroundToolExecutorKey,createBackgroundToolCallBatch}from"#harness/background-tools.js";import{createToolResultMessagePartFromToolError}from"#harness/action-result-helpers.js";import{getApprovalAuditState,markApprovalCandidateHistoryEventEmitted,markApprovalCandidatePendingEventEmitted,markApprovalSettlementEventEmitted}from"#harness/approval-candidates.js";import{estimateTokens}from"#harness/token-estimate.js";import{clearTurnClientContextState,getTurnClientContextState,setTurnClientContextState}from"#harness/turn-client-context.js";import{EMPTY_DELIVERY_SENTINEL,hasEmptyDeliverySentinel}from"#shared/empty-delivery.js";import{getInvalidToolCallInputError,isInvalidToolCall}from"#harness/tool-call-input-errors.js";import{ContentFilteredModelResponseError,EmptyModelResponseError,classifyModelCallError,extractModelCallErrorDetails,extractUnsupportedProviderToolTypes,extractUpstreamRejectionMessage,isNoOutputGeneratedError}from"#harness/model-call-error.js";import{interruptStreamOnFailure}from"#harness/interruptible-stream.js";import{resolveInlineAuthorizationInterrupt}from"#harness/inline-tool-authorization.js";import{createCurrentMessages}from"#harness/current-messages.js";import{extractQuestionInputRequests,extractToolApprovalInputRequests}from"#harness/input-extraction.js";import{applyLastToolCacheBreakpoint,applySystemCacheBreakpoint,detectPromptCachePath,getAnthropicCacheMarker}from"#harness/prompt-cache.js";import{mergeProviderSafetyIdentifier}from"#harness/provider-safety.js";import{requireSessionModelReference}from"#harness/types.js";import{GenerationSteering}from"#harness/generation-steering.js";import{estimateRequestEnvelope,getRequestEnvelopeTokens,setRequestEnvelopeTokens}from"#harness/request-envelope.js";import{compactMessages,getInputTokenCount,resolveCompactionModel,shouldCompact}from"#harness/compaction.js";import{applySessionLimitContinuation,enforceSessionUsageLimit}from"#harness/session-limit-enforcement.js";import{coordinateApprovalDelivery,shouldPrepareApprovalReplayTools}from"#harness/approval-delivery-coordinator.js";import{convertStaleResponsesToUserMessage,dropStaleSessionLimitContinuationResponses}from"#harness/stale-input-responses.js";import{normalizeProviderToolHistory}from"#harness/provider-tool-history.js";import{resolveDeliveryPolicy}from"#tasks/delivery-policy.js";import{extractWorkflowStreamWriteErrorDetails}from"#harness/workflow-stream-error.js";import{getAdvertisedTools}from"#harness/advertised-tools.js";import{resolveFrameworkToolFromUpstreamType}from"#harness/provider-tools.js";import{buildStepHooks,emitStepActions,readGatewayGenerationId}from"#harness/step-hooks.js";import{buildToolApproval,buildToolSetFromDefinitions,buildToolSetWithProviderTools}from"#harness/tools.js";import{FINAL_OUTPUT_TOOL_NAME,buildFinalOutputTool}from"#harness/final-output.js";const environment=process.env.NODE_ENV??`unknown`,eveVersion=resolveInstalledPackageInfo().version,log=createLogger(`harness.tool-loop`);function logToolExecutionError(e){e.toolOutput.type===`tool-error`&&logError(log,`tool execution failed`,e.toolOutput.error,{toolName:e.toolCall.toolName,toolCallId:e.toolCall.toolCallId})}function mergeSystemInstructions(e){if(e.length===0)return;if(e.length===1)return{...e[0]};let t;for(let n of e)n.providerOptions!==void 0&&(t={...t,...n.providerOptions});let n={role:`system`,content:e.map(e=>e.content).join(`
|
|
2
2
|
|
|
3
3
|
`)};return t!==void 0&&(n.providerOptions=t),n}function buildGatewayAttributionHeaders(e,t){let n=resolveProviderHeaders(e);if(n===void 0)return;let r=t?.agentName??t?.agentId,i=process.env.VERCEL_PROJECT_PRODUCTION_URL||process.env.VERCEL_URL,a=i?`https://${i}`:void 0,o={...n};return r&&(o[`x-title`]=r),a&&(o[`http-referer`]=a),o}async function resolveEffectiveRuntimeModel(e){if(e.ctx===void 0){let t=e.session.agent.modelReference;if(t===void 0)throw Error(`Dynamic model selection is unavailable outside an eve runtime context.`);return{model:await e.config.resolveModel(t),session:e.session}}let t=getEffectiveModelSelection(e.ctx);if(t===null)throw Error(`Dynamic model selection is required before model-dependent work begins. Add a matching resolver handler that returns a concrete model.`);return{model:t.model===void 0?await e.config.resolveModel(t.reference):t.model,session:updateSessionModelReference(e.session,t.reference)}}function updateSessionModelReference(e,t){return e.agent.modelReference===t?e:{...e,agent:{...e.agent,modelReference:t},compaction:updateCompactionThresholdForModelReference({compaction:e.compaction,modelReference:t})}}function updateCompactionThresholdForModelReference(e){return e.modelReference.contextWindowTokens===void 0?e.compaction:{...e.compaction,threshold:Math.max(1,Math.floor(e.modelReference.contextWindowTokens*(e.compaction.thresholdPercent??.9)))}}function buildHarnessToolsWithDynamicSubagents(e,t){let n=new Map(e);if(t===void 0)return n;for(let e of buildDynamicSubagentTools(t)){if(n.has(e.name))throw Error(`Dynamic subagent "${e.name}" collides with another runtime-visible tool name.`);n.set(e.name,e)}return n}function createToolLoopHarness(e){let t=e.handleEvent;async function runStep(t,n){let executeStep=async r=>{let i=r?.session??t,a=new GenerationSteering({abortSignal:e.abortSignal,steeringSignal:e.steeringSignal,outputStarted:getHarnessEmissionState(i.state).assistantOutputStarted});try{return await executeStepBody(i,a,n,r)}finally{a.dispose()}};return e.instrumentation?.runStep({environment,eveVersion,hasInput:hasStepInput(n),session:t},executeStep)??executeStep()}async function executeStepBody(n,r,i,a){let o=n,s=createHistoryViewPreparer({previous:e.historyView,projector:e.historyProjector});s(o.history,o.state);let projectHistory=(e,t)=>s(e,t).messages,c=getHarnessEmissionState(o.state),l=contextStorage.getStore();l!==void 0&&!l.has(StaticModelReferenceKey)&&l.setVirtualContext(StaticModelReferenceKey,o.agent.dynamicModel===!0?null:o.agent.modelReference??null);let u=l?.get(ParentSessionKey),d=l?.get(SessionCallbackKey),f=u!==void 0||d!==void 0,p,m=a?.createHandleEvent({getAttemptScope:()=>p,handleEvent:t,turnId:activeTurnId(c)})??t,h=m===void 0?void 0:async(e,t)=>{r.beforeEvent(e),await m(e,t)},failModelSelection=async(t,n)=>{if(throwIfTurnAborted(e.abortSignal),a?.recordError(t),!h)throw t;let r=createErrorId(),i=toErrorMessage(t);return log.error(`model selection failed terminally`,{error:t,errorId:r,sessionId:o.sessionId,turnId:n.turnId}),await emitFailedStep(h,n,{code:`MODEL_SELECTION_FAILED`,details:{errorId:r},message:i,sessionId:o.sessionId}),{next:e.mode===`task`||f?{done:!0,isError:!0,output:i}:{done:!0,output:``},session:o}},failBoundaryEvent=async(t,n)=>{if(throwIfTurnAborted(e.abortSignal),isTurnCancellation(t))throw t;if(isDynamicModelSelectionError(t))return failModelSelection(t,n);if(!h||e.mode!==`conversation`||!(t instanceof BoundaryHookError))throw t;a?.recordError(t);let r=createErrorId(),i=toErrorMessage(t);return log.error(`turn boundary handler failed — parking session`,{error:t,errorId:r,sessionId:o.sessionId,turnId:n.turnId}),c=await emitRecoverableFailedTurn(h,n,{code:`EVENT_HANDLER_FAILED`,continuationToken:o.continuationToken,details:{errorId:r},message:i}),{next:null,session:setHarnessEmissionState({...o,outputSchema:void 0},c),settledTurn:{isError:!0,output:i}}},preparePreambleTrace=async()=>await a?.preparePreamble({sequence:c.sequence,sessionStarted:c.sessionStarted,traceContext:a?.traceContext,turnId:activeTurnId(c)});if(e.clearOnly===!0)return o={...o,state:clearMemorySessionState(o.state)},o=replaceSessionHistory(o,[]),await h?.(createContextClearedEvent({sequence:c.sequence,sessionId:o.sessionId,turnId:activeTurnId(c)})),await h?.(createSessionWaitingEvent()),{next:null,session:o};if(e.compactOnly===!0){if(o.history.length>0)try{let t=contextStorage.getStore(),n=await resolveEffectiveRuntimeModel({config:e,ctx:t,session:o});o=n.session,o=(await maybeCompact({abortSignal:e.abortSignal,auth:t?.get(AuthKey)??null,emit:h,emissionState:{...c,turnId:activeTurnId(c)},force:!0,historyProjector:e.historyProjector,messages:[...o.history],model:n.model,onCompaction:e.onCompaction,requestEnvelopeTokens:getRequestEnvelopeTokens(o),resolveModel:e.resolveModel,runtimeIdentity:e.runtimeIdentity,session:o,telemetry:a?.telemetry()})).session}catch(e){logError(log,`manual session compaction failed`,e,{sessionId:o.sessionId})}return await h?.(createSessionWaitingEvent()),{next:null,session:o}}let g=consumeDeferredStepInput$1({input:i,preferCurrentInput:e.mode!==`conversation`&&i!==void 0&&hasPendingApprovalBatch(o),session:o});o=g.session;let _=await resolvePendingCoordination({emit:h,session:o,stepInput:g.input,tools:e.tools});if(_.outcome===`unresolved`)return{next:null,session:_.session};o=_.session;let v=getPendingInputRequestIds(o.state),y=convertStaleResponsesToUserMessage({history:_.messages,pendingRequestIds:v,stepInput:dropStaleSessionLimitContinuationResponses({pendingRequestIds:v,stepInput:g.input}),tools:e.tools}),b=y.stepInput,x=y.kind===`converted`?{...b,message:y.displayMessage}:b,S=contextStorage.getStore();S!==void 0&&e.resolveStepDynamicTools!==void 0&&shouldPrepareApprovalReplayTools({session:o,stepInput:b})&&await e.resolveStepDynamicTools({ctx:S,event:createStepStartedEvent({modelId:o.agent.modelReference?.id??`dynamic`,sequence:c.sequence,stepIndex:c.stepIndex,turnId:c.turnId}),messages:projectHistory(_.messages,o.state)});let C=shouldPrepareApprovalReplayTools({session:o,stepInput:b})?buildResponseAuthorizationTools({authoredTools:e.tools,context:S}):e.tools,w=await coordinateApprovalDelivery({session:o,stepInput:b,tools:C});if(o=w.session,h){for(let e of w.feedback)await h(createMessageCompletedEvent({message:e,sequence:c.sequence,stepIndex:c.stepIndex,turnId:c.turnId}));let e=getApprovalAuditState(o.state);for(let t of e.activeCandidates.filter(e=>e.pendingEventEmitted!==!0))await h(createApprovalCandidateEvent({candidateId:t.candidateId,outcome:`pending`,requestId:t.requestId,responderPrincipalId:t.responder.principalId,sequence:c.sequence,stepIndex:c.stepIndex,turnId:c.turnId})),o={...o,state:markApprovalCandidatePendingEventEmitted({candidateId:t.candidateId,state:o.state})};for(let t of e.candidateHistory.filter(e=>e.eventEmitted!==!0&&e.status!==`allowed`))await h(createApprovalCandidateEvent({candidateId:t.candidateId,outcome:t.status,requestId:t.requestId,responderPrincipalId:t.responder.principalId,reason:t.reason,sequence:c.sequence,stepIndex:c.stepIndex,turnId:c.turnId})),o={...o,state:markApprovalCandidateHistoryEventEmitted({candidateId:t.candidateId,state:o.state})};for(let t of e.settlements.filter(e=>e.eventEmitted!==!0))await h(createApprovalSettledEvent({outcome:t.outcome===`allowed`?`approved`:`cancelled`,requestId:t.requestId,responderPrincipalId:t.actor.principalId,sequence:c.sequence,stepIndex:c.stepIndex,turnId:c.turnId})),o={...o,state:markApprovalSettlementEventEmitted({requestId:t.requestId,state:o.state})}}if(w.kind===`park`)return{next:null,session:o};if(w.kind===`continue-coordination`)return{next:runStep,session:w.stepInput===void 0?o:queueDeferredStepInput(o,w.stepInput)};if(w.challenges.length>0){if(h)for(let e of w.challenges)await h(createAuthorizationRequiredEvent({authorization:e.challenge,candidateId:e.candidateId,description:e.challenge.instructions??`Authorization required for ${e.name}`,name:e.name,sequence:c.sequence,stepIndex:c.stepIndex,turnId:c.turnId,webhookUrl:e.hookUrl}));let e=w.stepInput===void 0?o:queueDeferredStepInput(o,w.stepInput);return{next:null,session:{...e,state:setPendingAuthorization(e.state,{challenges:w.challenges})}}}let T=resolvePendingInput({deferMessagesWhileApprovalsPending:e.mode!==`conversation`,history:_.messages,resolveApprovalKey:resolveApprovalKeyFromTools(C),session:o,stepInput:w.stepInput});if(T.outcome===`unresolved`){let t=_.outcome===`resolved`?{...T.session,history:validateHarnessModelMessages(_.messages)}:T.session;if(h&&e.mode===`conversation`&&T.deferredMessage===!0&&hasStepInput(i)){let n=createTurnInputMessages(b);l!==void 0&&(prepareDynamicInstructionPreamble(l,projectHistory(t.history,t.state)),prepareMemoryPreamble(l,{history:t.history,input:n,projector:e.historyProjector,state:t.state}));let r=[],i;try{let r=await preparePreambleTrace();c=await emitTurnPreamble(h,x??{},c,projectHistory([...t.history,...n],t.state),e.runtimeIdentity,r)}catch(e){return r=l===void 0?[]:drainDynamicInstructionUserMessages(l),i=l===void 0?void 0:drainMemoryCommit(l),t={...t,history:validateHarnessModelMessages([...i?.history??t.history,...r]),state:i?.state??t.state},o=t,failBoundaryEvent(e,{sessionStarted:!0,sequence:c.sequence,stepIndex:0,turnId:activeTurnId(c)})}return r=l===void 0?[]:drainDynamicInstructionUserMessages(l),i=l===void 0?void 0:drainMemoryCommit(l),t={...t,history:validateHarnessModelMessages([...i?.history??t.history,...r]),state:i?.state??t.state},c=await emitTurnEpilogue(h,c,e.mode),{next:null,session:setHarnessEmissionState(t,c)}}return _.outcome===`resolved`?(h&&e.mode===`conversation`&&(c=await emitTurnEpilogue(h,c,e.mode),t=setHarnessEmissionState(t,c)),{next:null,session:t}):{next:null,session:T.session}}if(T.resolvedInputs!==void 0)for(let e of T.resolvedInputs)await a?.publishInputResolutions({batch:e,sessionId:o.sessionId}),h&&await h(createInputResolvedEvent({resolutions:e.inputs.map(e=>{let t={kind:e.request.kind,outcome:e.outcome,requestId:e.request.requestId};return e.response===void 0?t:{...t,response:e.response}}),sequence:e.event.sequence,stepIndex:e.event.stepIndex,turnId:e.event.turnId}));if(h&&T.rejectedActions)for(let e of T.rejectedActions)for(let t of e.results)await h(createActionResultEvent({rejected:!0,result:t,sequence:e.event.sequence,stepIndex:e.event.stepIndex,turnId:e.event.turnId}));let E=activeTurnId(c),D=getTurnClientContextState(T.session.state,E),O=T.deferredContext===!0?void 0:readClientContext(b),k=(O??D?.messages)?.map(e=>createFrameworkUserMessage(`context.instruction`,e))??[],A=[];if(b?.context!==void 0&&T.deferredContext!==!0)for(let e of b.context)A.push(createFrameworkUserMessage(`context.instruction`,e));let j=frameworkMessageKindForStepInput(b),M=normalizeUserContent(b?.message),N=M!==void 0&&!T.deferredMessage&&!T.consumedMessage?await stageAttachmentsToSandbox(M):void 0;N!==void 0&&A.push(j===void 0?createUserMessage(`user`,N):createFrameworkUserMessage(j,N));let P=[],F;if(h&&hasStepInput(i)){l!==void 0&&(prepareDynamicInstructionPreamble(l,projectHistory(T.session.history,T.session.state)),prepareMemoryPreamble(l,{history:T.messages,input:[...k,...A],projector:e.historyProjector,state:T.session.state}));try{let t=await preparePreambleTrace();c=await emitTurnPreamble(h,x??{},c,projectHistory([...T.messages,...k,...A],T.session.state),e.runtimeIdentity,t)}catch(e){return P=l===void 0?[]:drainDynamicInstructionUserMessages(l),F=l===void 0?void 0:drainMemoryCommit(l),o={...T.session,history:validateHarnessModelMessages([...F?.history??T.session.history,...P]),state:F?.state??T.session.state},failBoundaryEvent(e,{sessionStarted:!0,sequence:c.sequence,stepIndex:0,turnId:activeTurnId(c)})}P=l===void 0?[]:drainDynamicInstructionUserMessages(l),F=l===void 0?void 0:drainMemoryCommit(l),a?.setTurnId(c.turnId)}let ee=F?.history??T.session.history,te=T.session.history.length;o=setHarnessEmissionState({...T.session,history:validateHarnessModelMessages([...ee,...P]),state:F?.state??T.session.state},c);let I=validateHarnessModelMessages([...F?.history??T.messages.slice(0,te),...P,...F===void 0?T.messages.slice(te):[]]),L=await applySessionLimitContinuation({config:e,emit:h,emissionState:c,limitContinuation:T.limitContinuation,session:o});if(L.result!==null)return L.result;o=L.session;let ne=getAgentHandleStore(o.state);if(!hasUnansweredToolCall(I)){let e=await l?.get(BackgroundToolExecutorKey)?.readAgentViews?.(),t=e===void 0||e.length===0?void 0:[...projectParkedAgentHandles(ne??{handles:[]}).map(e=>({availability:`available`,id:e.identity.id,name:e.identity.name,statusLine:e.phase===`parked`?e.lastStatus:void 0})),...e],n=resolveAgentsAnnouncement({agentViews:t,messages:projectHistory(I,o.state),store:ne});n!==void 0&&I.push(createFrameworkUserMessage(`context.state`,n))}let R=D;O!==void 0&&(R={insertionIndex:D?.insertionIndex??I.length,messages:O,turnId:E}),R!==void 0&&(o=setTurnClientContextState(o,R)),I=[...I,...A];let createModelMessages=e=>{if(R===void 0||R.messages.length===0)return[...e];let t=Math.min(Math.max(0,R.insertionIndex),e.length);return[...e.slice(0,t),...R.messages.map(e=>createFrameworkUserMessage(`context.instruction`,e)),...e.slice(t)]},z=validateHarnessModelMessages(projectHistory(createModelMessages(I),o.state)),B=l,V;try{B!==void 0&&e.dispatchDynamicModelEvent!==void 0&&await e.dispatchDynamicModelEvent({ctx:B,event:{data:{sequence:c.sequence,stepIndex:c.stepIndex,turnId:c.turnId},type:`step.started`},messages:z}),V=await resolveEffectiveRuntimeModel({config:e,ctx:B,session:o})}catch(e){return failModelSelection(e,c)}o=V.session;let H=V.model,re=detectPromptCachePath(H),U=re.kind===`anthropic-direct`?getAnthropicCacheMarker():void 0,ie=buildGatewayAttributionHeaders(H,e.runtimeIdentity);if(z=validateHarnessModelMessages(normalizeModelMessages(projectHistory(createModelMessages(I),o.state))),h)try{await emitStepStarted(h,c,requireSessionModelReference(o).id,z)}catch(e){return failBoundaryEvent(e,c)}let W=getApprovedTools(o,resolveApprovalKeyFromTools(buildResponseAuthorizationTools({authoredTools:e.tools,context:B}))),G=c.sequence===0,ae=G&&B?.get(ScheduleIdKey)!==void 0,oe=resolveDeliveryPolicy({hasScheduleProvenance:ae,hasOutputSchema:o.outputSchema!==void 0,isChild:B?.get(ParentSessionKey)!==void 0,isFirstTurn:G,taskDeliveryPhase:B?.get(TurnTaskDeliveryKey)}),createRequestMessages=()=>{let e=createCurrentMessages(I,{historyState:B?.get(HistoryStateKey),currentTurnMessages:A,projectedMessages:z});B!==void 0&&e.addSystem(buildDynamicInstructionMessages(B));let t=B?.get(TurnTaskDeliveryKey)===`initiating`?resolveInitiatingTaskContext({state:o.state,turnId:E}):void 0;e.addAnnouncements({availableSkills:B?.get(PendingSkillAnnouncementKey),taskState:t?.context,deliveryInstruction:oe.instruction});let n=renderPendingApprovalsInstruction(getPendingInputBatches(o.state).flatMap(e=>e.requests));return n!==void 0&&e.add(n,`context.state`,{cacheFriendly:!1}),e},K=createRequestMessages(),q,finishSteeredStep=()=>(throwIfTurnAborted(e.abortSignal),B?.set(HistoryStateKey,K.historyState),q!==void 0&&(o=setTurnUsageState(o,accumulateTurnUsage({previous:getTurnUsageState(o.state),turnId:c.turnId,usage:q}))),{steered:!0,next:runStep,session:setHarnessEmissionState({...o,history:[...K.history]},advanceStep(c))}),J=[],withTrailingUserNote=(e,t)=>t?[...e,createFrameworkUserMessage(`execution.retry`,t)]:[...e],prepareModelInstructions=e=>{let t=e?[{role:`system`,content:e}]:[],n=o.agent.system?[{role:`system`,content:o.agent.system}]:[],r=K.systemMessages.length>0||t.length>0?[...t,...n,...K.systemMessages]:void 0,i=r!==void 0&&U?applySystemCacheBreakpoint(r,U):r;return i===void 0?o.agent.system??void 0:mergeSystemInstructions(i)},prepareModelCallInput=e=>{let t=prepareModelInstructions(e);return{instructions:t,telemetryRuntimeContext:a?.resolveRuntimeContext({eveVersion,emissionState:c,environment,modelInput:{instructions:t,messages:J},session:o})}},se=e.tools,Y=0,X,throwIfCompactionFailed=()=>{if(X!==void 0)throw X.error},prepareModelTools=async t=>{let n=buildHarnessToolsWithDynamicSubagents(e.tools,B),i=createBackgroundToolCallBatch(),a=getAdvertisedTools({session:o,tools:n});se=a;let s=await buildToolSetWithProviderTools({approvedTools:W,backgroundBatch:i,capabilities:e.capabilities,disabledProviderTools:t.disabledProviderTools,modelReference:requireSessionModelReference(o),tools:a});if(B!==void 0){let n=getAdvertisedTools({session:o,tools:buildDynamicTools(B)}),r=buildToolSetFromDefinitions({approvedTools:W,backgroundBatch:i,capabilities:e.capabilities,disabledProviderTools:t.disabledProviderTools,tools:n});for(let[e,t]of Object.entries(r)){let n=a.get(e);if(n?.runtimeAction!==void 0||n?.workflowId!==void 0)throw Error(`Dynamic tool "${e}" collides with a coordination-visible deferred tool.`);s[e]=t}}o.outputSchema!==void 0&&(s[FINAL_OUTPUT_TOOL_NAME]=buildFinalOutputTool(o.outputSchema));let c=await getAdvertisedTools({modelTools:s,session:o,tools:a});o=c.session;let l=c.modelTools,u=U?applyLastToolCacheBreakpoint(l,U):l;for(let e of Object.values(u)){let t=e.execute;t!==void 0&&(e.execute=(...e)=>(r.protectToolExecution(),t(...e)));let n=e.onInputAvailable;n!==void 0&&(e.onInputAvailable=(...e)=>(r.protectToolExecution(),n(...e)))}return{effectiveTools:u,backgroundBatch:i,advertisedHarnessTools:a,modelTools:l}},runSingleModelCall=async t=>{let{effectiveTools:n,backgroundBatch:i,advertisedHarnessTools:s,modelTools:l}=await prepareModelTools(t);K=createRequestMessages(),Y=await estimateRequestEnvelope({history:z,instructions:prepareModelInstructions(t.extraSystemNote),messages:withTrailingUserNote(K.nonSystemMessages,t.trailingUserNote),tools:n});let u=R===void 0?void 0:Math.max(0,I.length-R.insertionIndex),d=await(async()=>{try{return await maybeCompact({abortSignal:e.abortSignal,auth:B?.get(AuthKey)??null,emit:h,emissionState:c,historyProjector:e.historyProjector,messages:[...I],model:H,onCompaction:e.onCompaction,promptMessages:createModelMessages(I),requestEnvelopeTokens:Y,resolveModel:e.resolveModel,runtimeIdentity:e.runtimeIdentity,session:o,telemetry:a?.telemetry()})}catch(e){throw X={error:e},e}})();o=d.session,d.compacted&&(I=d.messages,R!==void 0&&u!==void 0&&(R={...R,insertionIndex:Math.max(0,I.length-u)},o=setTurnClientContextState(o,R)),o={...o,compaction:{recentWindowSize:o.compaction.recentWindowSize,threshold:o.compaction.threshold,thresholdPercent:o.compaction.thresholdPercent}},z=validateHarnessModelMessages(normalizeModelMessages(projectHistory(createModelMessages(I),o.state))),K=createRequestMessages(),{effectiveTools:n,backgroundBatch:i,advertisedHarnessTools:s,modelTools:l}=await prepareModelTools(t),Y=await estimateRequestEnvelope({history:z,instructions:prepareModelInstructions(t.extraSystemNote),messages:withTrailingUserNote(K.nonSystemMessages,t.trailingUserNote),tools:n})),Y=Math.max(0,Y-(estimateTokens(K.history)-estimateTokens(I))),r.begin(),J=await hydrateSandboxAttachments(K.nonSystemMessages);let{instructions:f,telemetryRuntimeContext:m={}}=prepareModelCallInput(t.extraSystemNote);t.retryReason&&(m[`eve.retry.reason`]=t.retryReason);let g=withTrailingUserNote(J,t.trailingUserNote),_=activeTurnId(c),v=a?.prepareAttempt({attemptIndex:t.attemptIndex,runtimeContext:m,stepIndex:c.stepIndex,turnId:_});p=v?.scope;let y=buildStepHooks({auth:B?.get(AuthKey)??null,cachePath:re,emit:h,emissionState:c,emitStepStarted:t.suppressStepStartedEmission!==!0,marker:U,session:o}),b={headers:ie,instructions:f,model:H,onLanguageModelCallEnd(e){if(!r.interrupted){q=extractTokenUsageDelta({usage:e.usage,costUsd:extractGatewayCostUsd(e.providerMetadata)});for(let t of e.content)t.type!==`tool-call`||t.providerExecuted===!0||isInvalidToolCall(t)||i.register({callId:t.toolCallId,input:t.input,toolName:t.toolName})}},onToolExecutionEnd:logToolExecutionError,onError(e){r.interrupted||summarizeKnownError(e.error)?.tags.includes(`config`)!==!0&&logError(log,`tool-loop stream error`,e.error)},onStepEnd:y.onStepEnd,onStepStart:y.onStepStart,prepareStep:y.prepareStep,reasoning:o.agent.modelReference?.reasoning??o.agent.reasoning,runtimeContext:m,stopWhen:isStepCount(1),telemetry:v?.telemetry,toolApproval:buildToolApproval(l,r.signal),tools:n},x=new ToolLoopAgent(b),executeModelCall=async()=>{if(h){let t=[...e.tools].filter(([e,t])=>t.runtimeAction!==void 0&&s.get(e)===void 0).map(([e])=>e),n=new Set([ASK_QUESTION_TOOL_NAME,FINAL_OUTPUT_TOOL_NAME,...t]),i=await x.stream({abortSignal:r.signal,messages:g}),{emittedActionCallIds:a,handledInlineToolResultCallIds:o,invalidInputToolCallIds:l,inlineAuthorizationResults:u,trailingInlineToolResultParts:d}=await emitStreamContent(h,c,interruptStreamOnFailure(i.fullStream,r.signal),{excludedActionToolNames:n,tools:s});throwIfTurnAborted(e.abortSignal),r.check();let[f,p]=await Promise.all([y.stepResult,i.responseMessages]);if(f.finishReason===`content-filter`)throw new ContentFilteredModelResponseError(readGatewayGenerationId(f.providerMetadata));if(isEmptyModelResponse(f)&&extractToolResultCallIds(p).size===0&&u.length===0&&d.length===0)throw new EmptyModelResponseError;await emitStepActions(h,c,f,{emittedActionCallIds:a,excludedActionCallIds:l,excludedActionToolNames:n,handledInlineToolResultCallIds:o,tools:s});let m=f.toolResults,_=new Map(m.map(e=>[e.toolCallId,e]));for(let e of u)_.set(e.toolCallId,e);return withAccumulatedResponseMessages({invalidInputToolCallIds:l,responseMessages:appendMissingToolResultMessages({append:d,responseMessages:p}),stepResult:f,toolResults:[..._.values()]})}let t=await x.generate({abortSignal:r.signal,messages:g});throwIfTurnAborted(e.abortSignal),r.check();let n=await y.stepResult;if(n.finishReason===`content-filter`)throw new ContentFilteredModelResponseError(readGatewayGenerationId(n.providerMetadata));if(isEmptyModelResponse(n)&&extractToolResultCallIds(t.responseMessages).size===0)throw new EmptyModelResponseError;return withAccumulatedResponseMessages({responseMessages:t.responseMessages,stepResult:n})};try{let e=await executeModelCall();return await v?.complete(),e}catch(e){return r.interrupted?await v?.complete():await v?.fail(e),r.check(),rethrowNoOutputAsEmptyResponse(e)}},ce=0,runOneModelCall=async e=>runModelCallWithRetries(t=>runSingleModelCall({...e,attemptIndex:ce++,suppressStepStartedEmission:t!==1||e.suppressStepStartedEmission}),{sessionId:o.sessionId,turnId:c.turnId,canRetry:()=>X===void 0},r.signal),le=await enforceSessionUsageLimit({config:e,emit:h,emissionState:c,messages:z,session:o});if(le!==null)return le;let Z;try{Z=await runOneModelCall({suppressStepStartedEmission:!0})}catch(t){if(throwIfCompactionFailed(),throwIfTurnAborted(e.abortSignal),r.interrupted)return finishSteeredStep();let n=await runModelCallRecoveryPipeline({error:t,stages:[e=>attemptUnsupportedProviderToolRecovery({error:e.error,runOneModelCall,sessionId:o.sessionId,turnId:c.turnId}),e=>attemptEmptyResponseRecovery({emptyDeliveryEnabled:oe.allowsEmptyDelivery,error:e.error,retryCallOptions:e.retryCallOptions,runOneModelCall,sessionId:o.sessionId,turnId:c.turnId})]});if(throwIfCompactionFailed(),throwIfTurnAborted(e.abortSignal),r.interrupted)return finishSteeredStep();if(n.outcome===`recovered`)Z=n.result;else{let t=n.error;if(a?.recordError(t),!h)throw t;let r=extractWorkflowStreamWriteErrorDetails(t);if(r!==null){let e=createErrorId();return log.error(`workflow stream write failed — parking session for retry by the user`,{...r,errorId:e,error:t,sessionId:o.sessionId,turnId:c.turnId}),c=await emitRecoverableFailedTurn(h,c,{code:`WORKFLOW_STREAM_WRITE_FAILED`,continuationToken:o.continuationToken,details:{...r,errorId:e},message:toErrorMessage(t)}),{next:null,session:setHarnessEmissionState(o,c)}}let i=classifyModelCallError(t),s=createErrorId(),l=summarizeKnownError(t),u=l===null?extractUpstreamRejectionMessage(t):null,d=l?.message??u?.message??toErrorMessage(t),p=l?.hint===void 0?d:`${d} ${l.hint}`,m=extractModelCallErrorDetails(t),g=buildModelCallFailureDetails({catalogSummary:l,error:t,errorId:s,modelCallDetails:m,upstreamRejection:u}),_=buildModelCallFailureLogFields({error:t,errorId:s,modelCallDetails:m,recognized:l!==null||u!==null,sessionId:o.sessionId,turnId:c.turnId});if(i===`terminal`)return l===null?log.error(u?.message??`model call failed terminally`,_):log.error(`${l.name}: ${l.message}`,{errorId:s,hint:l.hint,sessionId:o.sessionId,turnId:c.turnId}),await emitFailedStep(h,c,{code:`MODEL_CALL_FAILED`,details:g,message:d,sessionId:o.sessionId}),{next:e.mode===`task`||f?{done:!0,isError:!0,output:p}:{done:!0,output:``},session:o};if(e.mode===`task`){if(i===`recoverable`&&!(t instanceof EmptyModelResponseError)&&!(t instanceof ContentFilteredModelResponseError))throw log.warn(u?.message??`model call failed recoverably in task mode — rethrowing for durable step retry`,_),t;return log.error(u?.message??`model call failed; failing the task run`,_),await emitFailedStep(h,c,{code:`MODEL_CALL_FAILED`,details:g,message:d,sessionId:o.sessionId}),{next:{done:!0,isError:!0,output:p},session:o}}log.error(u?.message??`model call failed — parking session for retry by the user`,_),c=await emitRecoverableFailedTurn(h,c,{code:`MODEL_CALL_FAILED`,continuationToken:o.continuationToken,details:g,message:d});let v={isError:!0,output:p};return o={...o,outputSchema:void 0},{next:null,session:setHarnessEmissionState(o,c),settledTurn:v}}}let Q=accumulateTurnUsage({previous:getTurnUsageState(o.state),turnId:c.turnId,usage:extractTokenUsageDelta({costUsd:extractGatewayCostUsd(Z.providerMetadata),usage:Z.usage})});o=setTurnUsageState(o,Q),q=void 0;let $;try{$=formatLanguageModelGatewayId(H)}catch{$=void 0}await setEveAttributes({"$eve.model":$,"$eve.input_tokens":Q.inputTokens,"$eve.output_tokens":Q.outputTokens,"$eve.cache_read_tokens":Q.cacheReadTokens,"$eve.cache_write_tokens":Q.cacheWriteTokens,"$eve.cost_usd":Q.sawCost?Q.costUsd:void 0,"$eve.tool_count":e.tools.size});let ue;try{r.check(),ue=await handleStepResult({config:e,emit:h,emissionState:r.outputStarted?{...c,assistantOutputStarted:!0}:c,requestEnvelopeTokens:Y,durableModelPromptMessageCount:R===void 0||R.messages.length===0?J.length:void 0,promptMessages:K.history,result:Z,runStep,session:o,coordinationTools:se})}catch(t){if(throwIfTurnAborted(e.abortSignal),r.interrupted)return finishSteeredStep();throw t}return B?.set(HistoryStateKey,K.historyState),ue}return runStep}function extractTokenUsageDelta(e){let t=e.usage;if(t!==void 0||e.costUsd!==void 0)return{cacheReadTokens:t?.inputTokenDetails?.cacheReadTokens,cacheWriteTokens:t?.inputTokenDetails?.cacheWriteTokens,costUsd:e.costUsd,inputTokens:t?.inputTokens,outputTokens:t?.outputTokens}}function extractGatewayCostUsd(e){let t=readGatewayMetadata(e)?.cost;if(typeof t==`number`&&Number.isFinite(t))return t;if(typeof t==`string`){let e=Number(t);return Number.isFinite(e)?e:void 0}}function readGatewayMetadata(e){let t=e?.gateway;return t&&typeof t==`object`&&!Array.isArray(t)?t:void 0}function buildModelCallFailureDetails(e){let{catalogSummary:t,error:n,errorId:r,modelCallDetails:i,upstreamRejection:a}=e;if(t!==null){let e={errorId:r,message:t.message,name:t.name,semanticErrorId:t.id,...i};return t.hint!==void 0&&(e.hint=t.hint),e}return a===null?{...formatError(n,r),...i}:{errorId:r,message:toErrorMessage(n),name:a.name,...i}}function buildModelCallFailureLogFields(e){let t={errorId:e.errorId,sessionId:e.sessionId,turnId:e.turnId};return e.recognized?{...t,details:e.modelCallDetails}:{...t,error:e.error}}async function runModelCallRecoveryPipeline(e){let t=e.error,n;for(let r of e.stages){let e=await r({error:t,retryCallOptions:n});if(e.outcome===`recovered`)return e;e.outcome===`failed`&&(t=e.error,n=e.retryCallOptions)}return{outcome:`failed`,error:t}}function withAccumulatedResponseMessages(e){let{stepResult:t}=e;return{content:t.content,finishReason:t.finishReason,...e.invalidInputToolCallIds===void 0?{}:{invalidInputToolCallIds:e.invalidInputToolCallIds},providerMetadata:t.providerMetadata,response:{...t.response,messages:[...e.responseMessages]},text:t.text,toolCalls:t.toolCalls,toolResults:e.toolResults===void 0?t.toolResults:[...e.toolResults],usage:t.usage}}function appendMissingToolResultMessages(e){let t=extractToolResultCallIds(e.responseMessages),n=e.append.filter(e=>!t.has(e.toolCallId));return[...e.responseMessages,...n.length>0?[{role:`tool`,content:[...n]}]:[]]}function getInvalidToolCallInputErrors(e){let t=[];for(let n of e.toolCalls){if(n.toolName===FINAL_OUTPUT_TOOL_NAME)continue;let e=getInvalidToolCallInputError({toolCall:n});e!==void 0&&t.push(e)}return t}function extractToolResultCallIds(e){let t=new Set;for(let n of e)if(Array.isArray(n.content))for(let e of n.content)typeof e==`object`&&e&&e.type===`tool-result`&&t.add(e.toolCallId);return t}function hasUnansweredToolCall(e){let t=new Set,n=new Set;for(let r of e)if(Array.isArray(r.content))for(let e of r.content)typeof e==`object`&&e&&(e.type===`tool-call`&&t.add(e.toolCallId),e.type===`tool-result`&&n.add(e.toolCallId));for(let e of t)if(!n.has(e))return!0;return!1}async function attemptUnsupportedProviderToolRecovery(e){let t=extractUnsupportedProviderToolTypes(e.error);if(t.length===0)return{outcome:`skipped`};let n=[];for(let e of t){let t=resolveFrameworkToolFromUpstreamType(e);t!==null&&!n.includes(t)&&n.push(t)}if(n.length===0)return{outcome:`skipped`};log.warn(`disabling unsupported provider tool(s); retrying step once`,{disabled:n,sessionId:e.sessionId,turnId:e.turnId,upstreamTypes:t});let r={disabledProviderTools:new Set(n),extraSystemNote:buildDisabledToolNote(n)};try{return{outcome:`recovered`,result:await e.runOneModelCall({...r,suppressStepStartedEmission:!0})}}catch(e){return{outcome:`failed`,error:e,retryCallOptions:r}}}function buildDisabledToolNote(e){let t=e.join(`, `);return`The following ${e.length===1?`tool is`:`tools are`} not available with the current model and has been removed: ${t}. Proceed using the remaining tools or your training knowledge.`}function isEmptyModelResponse(e){return e.toolCalls.length===0&&e.toolResults.length===0&&resolveAssistantStepText(e.response.messages,e.text)===null}function rethrowNoOutputAsEmptyResponse(e){throw isNoOutputGeneratedError(e)?new EmptyModelResponseError({cause:e}):e}const EMPTY_RESPONSE_NUDGE=`Your previous reply was empty and was not delivered. Answer now from the tool results above; do not re-run tools or mention this notice.`;function buildEmptyResponseNudge(e){return e?`${EMPTY_RESPONSE_NUDGE} If the current task explicitly requires conditional delivery and there is nothing to report, reply with exactly ${EMPTY_DELIVERY_SENTINEL}.`:EMPTY_RESPONSE_NUDGE}async function attemptEmptyResponseRecovery(e){if(!(e.error instanceof EmptyModelResponseError))return{outcome:`skipped`};log.warn(`empty model response; reissuing the model call once`,{sessionId:e.sessionId,turnId:e.turnId});try{return{outcome:`recovered`,result:await e.runOneModelCall({...e.retryCallOptions,retryReason:`empty-response`,suppressStepStartedEmission:!0,trailingUserNote:buildEmptyResponseNudge(e.emptyDeliveryEnabled)})}}catch(t){return{outcome:`failed`,error:t,retryCallOptions:e.retryCallOptions}}}async function handleStepResult(e){let{config:t,emit:n,promptMessages:r,result:i,runStep:a}=e,{emissionState:o,session:s}=e,c=resolveAssistantStepText(i.response.messages,i.text),l=i.finishReason!==`tool-calls`&&i.toolCalls.length===0&&hasEmptyDeliverySentinel(c),u=getInvalidToolCallInputErrors({toolCalls:i.toolCalls}),d=new Set([...i.invalidInputToolCallIds??[],...i.toolCalls.filter(isInvalidToolCall).map(e=>e.toolCallId),...u.map(e=>e.toolCallId)]),f=l?[]:appendMissingToolResultMessages({append:u.map(e=>createToolResultMessagePartFromToolError(e)),responseMessages:i.response.messages}),p=l?null:c,m=new Set;for(let e of[...i.content??[],...i.toolResults??[]])(e.type===`tool-result`||e.type===`tool-error`)&&e.providerExecuted===!0&&m.add(e.toolCallId);let h=normalizeProviderToolHistory({messages:f,providerExecutedOutcomeIds:m}),g=h.messages,_=setRequestEnvelopeTokens({...s,compaction:createNextCompactionConfig(s.compaction,e.durableModelPromptMessageCount,i)},i.usage?.inputTokens!==void 0&&e.durableModelPromptMessageCount!==void 0?e.requestEnvelopeTokens:void 0),v=extractToolApprovalInputRequests({content:i.content??[],excludedCallIds:d}),y=new Set(v.map(e=>e.action.callId)),b=extractQuestionInputRequests({toolCalls:i.toolCalls,excludedCallIds:new Set([...d,...y]),tools:e.coordinationTools}),x=[...v,...b],S=renderPendingApprovalsSnippet(v),C=g.findIndex(e=>e.role!==`tool`),w=C===-1?g:g.slice(0,C),T=g.slice(w.length),E=validateHarnessModelMessages([...r,...w,...S===void 0?[]:[createFrameworkUserMessage(`context.state`,S)]]),D=getAdvertisedTools({session:_,tools:e.coordinationTools}),O=(i.toolCalls??[]).filter(e=>!d.has(e.toolCallId)).filter(t=>isDeferredHarnessTool(e.coordinationTools.get(t.toolName))).filter(e=>isDeferredHarnessTool(D.get(e.toolName))?!0:(log.warn(`deferred tool call blocked because tool is not advertised`,{callId:e.toolCallId,sessionId:_.sessionId,toolName:e.toolName}),!1)).map(e=>createCoordinationRequestFromToolCall({toolCall:e,tools:D}));if(O.length>0){let e=O.flatMap(e=>e.kind===`runtime-action`?[e.request]:[]),t=O.flatMap(e=>e.kind===`task`?[e.request]:[]);if(x.length===0)return{next:null,session:setHarnessEmissionState(setPendingCoordinationBatch({runtimeActions:e,tasks:t,event:{sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId},responseMessages:g,session:{..._,history:validateHarnessModelMessages(r)}}),advanceStep(o))};let i=setPendingCoordinationBatch({runtimeActions:e,tasks:t,event:{sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId},responseMessages:T,session:{..._,history:E}});return i=appendPendingInputBatch({event:{sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId},requests:x,responseMessages:[],session:i}),n&&await n(createInputRequestedEvent({requests:x,sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId})),{next:null,session:setHarnessEmissionState(i,advanceStep(o))}}if(x.length>0){let e=buildResponseAuthorizationTools({authoredTools:t.tools,context:contextStorage.getStore()}),r=appendPendingInputBatch({event:{sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId},requests:x,responseAuthRequiredRequestIds:v.filter(t=>{let n=e.get(t.action.toolName)?.approval;return n!==void 0&&typeof n!=`function`&&n.response!==void 0}).map(e=>e.requestId),responseMessages:T,session:{..._,history:E}});return n&&(await n(createInputRequestedEvent({requests:x,sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId})),t.mode===`conversation`&&(o=await emitTurnEpilogue(n,o,t.mode),r=setHarnessEmissionState(r,o))),{next:hasDeferredStepInput(r)?a:null,session:r}}let k=resolveInlineAuthorizationInterrupt({messages:[...r,...g],toolResults:i.toolResults});if(k){let{challenges:e,history:r}=k;if(n){for(let t of getSupersededAuthorizationChallenges(_.state,e))await n(createAuthorizationCompletedEvent({attemptId:t.attemptId,authorization:t.challenge,name:t.name,outcome:`failed`,reason:`Superseded by a newer authorization attempt.`,sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId}));for(let t of e)await n(createAuthorizationRequiredEvent({attemptId:t.attemptId,authorization:t.challenge,name:t.name,description:t.challenge.instructions??`Authorization required for ${t.name}`,webhookUrl:t.hookUrl,sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId}));t.mode===`conversation`&&(o=await emitTurnEpilogue(n,o,t.mode))}return{next:null,session:setHarnessEmissionState({..._,history:validateHarnessModelMessages(r),state:setPendingAuthorization(_.state,{challenges:e})},o)}}let A=g,j=validateHarnessModelMessages([...r,...A]),M={..._,history:j};return(M.outputSchema===void 0||extractFinalOutput(i)===void 0)&&(A.at(-1)?.role===`tool`||h.outcomeEndsResponse||hasDeferredStepInput(M))?(n&&(o=advanceStep(o),M=setHarnessEmissionState(M,o)),{next:a,session:M}):t.mode===`task`&&contextStorage.getStore()?.get(ScheduleIdKey)!==void 0&&contextStorage.getStore()?.get(BackgroundToolExecutorKey)?.hasPendingTasks?.()===!0?deferTaskTurn({emissionState:o,emit:n,history:r,result:i,schema:M.outputSchema,session:M,stepOutput:p}):t.mode===`task`?finishTaskTurn({emissionState:o,emit:n,history:r,result:i,schema:M.outputSchema,session:M,stepOutput:p}):finishConversationTurn({emissionState:o,emit:n,history:r,result:i,schema:M.outputSchema,session:M,stepOutput:p})}async function deferTaskTurn(e){let{emit:t,history:n,result:r,schema:i,stepOutput:a}=e,{emissionState:o,session:s}=e;s=clearTurnClientContextState(s);let c=i===void 0?void 0:extractFinalOutput(r);return c!==void 0&&(s={...persistStructuredAssistantTurn(s,n,c),outputSchema:i}),t&&(o=await emitTurnEpilogue(t,o,`conversation`),s=setHarnessEmissionState(s,o)),{next:null,session:s,settledTurn:{output:c??a??``}}}function isDeferredHarnessTool(e){return e?.runtimeAction!==void 0||e?.workflowId!==void 0&&e.execution!==`background`}const OUTPUT_SCHEMA_NOT_FULFILLED={code:`OUTPUT_SCHEMA_NOT_FULFILLED`,message:`The agent could not produce a result matching the requested schema.`};function extractFinalOutput(e){return(e.toolCalls??[]).find(e=>e.toolName===FINAL_OUTPUT_TOOL_NAME&&!isInvalidToolCall(e))?.input}function persistStructuredAssistantTurn(e,t,n){return{...e,history:[...t,{content:JSON.stringify(n),role:`assistant`}],outputSchema:void 0}}async function emitStructuredResult(e,t,n,r){return await e(createResultCompletedEvent({result:n,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),emitTurnEpilogue(e,t,r)}async function finishTaskTurn(e){let{emit:t,history:n,result:r,schema:i,stepOutput:a}=e,{emissionState:o,session:s}=e;if(s=clearTurnClientContextState(s),i===void 0)return t&&(o=await emitTurnEpilogue(t,o,`task`),s=setHarnessEmissionState(s,o)),{next:{done:!0,output:a??``},session:s};let c=extractFinalOutput(r);return c===void 0?(s={...s,outputSchema:void 0},t&&await emitFailedStep(t,o,{...OUTPUT_SCHEMA_NOT_FULFILLED,sessionId:s.sessionId}),{next:{done:!0,isError:!0,output:OUTPUT_SCHEMA_NOT_FULFILLED.message},session:s}):(s=persistStructuredAssistantTurn(s,n,c),t&&(o=await emitStructuredResult(t,o,c,`task`),s=setHarnessEmissionState(s,o)),{next:{done:!0,output:c},session:s})}async function finishConversationTurn(e){let{emit:t,history:n,result:r,schema:i,stepOutput:a}=e,{emissionState:o,session:s}=e;if(s=clearTurnClientContextState(s),i===void 0)return t&&(o=await emitTurnEpilogue(t,o,`conversation`),s=setHarnessEmissionState(s,o)),{next:null,session:s,settledTurn:{output:a??``}};let c=extractFinalOutput(r);if(c===void 0){s={...s,outputSchema:void 0},t&&(o=await emitRecoverableFailedTurn(t,o,{...OUTPUT_SCHEMA_NOT_FULFILLED,continuationToken:s.continuationToken}),s=setHarnessEmissionState(s,o));let e={isError:!0,output:OUTPUT_SCHEMA_NOT_FULFILLED.message};return{next:null,session:s,settledTurn:e}}return s=persistStructuredAssistantTurn(s,n,c),t&&(o=await emitStructuredResult(t,o,c,`conversation`),s=setHarnessEmissionState(s,o)),{next:null,session:s,settledTurn:{output:c}}}function createNextCompactionConfig(e,t,n){let r={recentWindowSize:e.recentWindowSize,threshold:e.threshold,thresholdPercent:e.thresholdPercent};return n.usage?.inputTokens!==void 0&&t!==void 0&&(r.lastKnownInputTokens=n.usage.inputTokens,r.lastKnownPromptMessageCount=t),r}function replaceSessionHistory(e,t){return contextStorage.getStore()?.delete(HistoryStateKey),{...e,history:t,compaction:{recentWindowSize:e.compaction.recentWindowSize,threshold:e.compaction.threshold,thresholdPercent:e.compaction.thresholdPercent}}}async function maybeCompact(e){let{emit:t,emissionState:n}=e,r=e.messages,i=e.session,a=e.promptMessages??r,o=validateHarnessModelMessages(e.historyProjector?.({messages:a,state:i.state})??a),s=e.force===!0||shouldCompact(o,i.compaction,e.requestEnvelopeTokens,getRequestEnvelopeTokens(i)),c=shouldCanonicalizeMemory(r);if(!s&&!c)return{compacted:!1,messages:r,session:i};let l=await resolveCompactionModel({compactionModelReference:i.agent.compactionModelReference,model:e.model,modelReference:requireSessionModelReference(i),resolveModel:e.resolveModel}),u=i.agent.compactionModelReference??requireSessionModelReference(i),d=mergeProviderSafetyIdentifier(u,l.providerOptions,e.auth);if(t){let a=contextStorage.getStore();a!==void 0&&prepareMemoryCompaction(a,{history:r,state:i.state}),await t(createCompactionRequestedEvent({modelId:formatLanguageModelGatewayId(l.model),sequence:n.sequence,sessionId:i.sessionId,turnId:n.turnId,usageInputTokens:getInputTokenCount(o,i.compaction,e.requestEnvelopeTokens,getRequestEnvelopeTokens(i))}),o)}let f=canonicalizeMemoryRecords(r),p=validateHarnessModelMessages(e.historyProjector?.({messages:f.ordinary,state:i.state})??f.ordinary),m=e.requestEnvelopeTokens??0,h={...i.compaction,threshold:Math.max(1,i.compaction.threshold-m),lastKnownInputTokens:i.compaction.lastKnownInputTokens===void 0?void 0:Math.max(0,i.compaction.lastKnownInputTokens-Math.min(getRequestEnvelopeTokens(i)??0,m))},g=s?await compactMessages([...p],l.model,h,d,e.telemetry,buildGatewayAttributionHeaders(l.model,e.runtimeIdentity),e.abortSignal,e.force===!0,e.requestEnvelopeTokens===void 0?void 0:Math.max(0,getInputTokenCount(o,i.compaction,m,getRequestEnvelopeTokens(i))-m)):[...p];if(r=validateHarnessModelMessages([...f.memory,...g]),e.onCompaction)for(let t of e.onCompaction())r.push(t);if(t){let a=contextStorage.getStore();if(a!==void 0&&prepareMemoryCompaction(a,{history:r,state:i.state}),await t(createCompactionCompletedEvent({modelId:formatLanguageModelGatewayId(l.model),sequence:n.sequence,sessionId:i.sessionId,turnId:n.turnId}),e.historyProjector?.({messages:r,state:i.state})??r),a!==void 0){let e=drainMemoryCommit(a);e!==void 0&&(r=validateHarnessModelMessages(e.history),i={...i,state:e.state})}}return{compacted:!0,messages:r,session:replaceSessionHistory(i,r)}}function resolveApprovalKeyFromTools(e){return t=>{let n=e.get(t.action.toolName);if(n?.approvalKey!==void 0)return n.approvalKey(t.action.input)}}async function runModelCallWithRetries(e,t,n){for(let r=1;;r++){n.throwIfAborted();try{return await e(r)}catch(e){if(n.throwIfAborted(),t.canRetry?.()===!1||r===3||classifyModelCallError(e)!==`retry`)throw e;let i=500*2**(r-1)+Math.floor(Math.random()*250);log.warn(`model call failed transiently — retrying`,{attempt:r,delayMs:i,sessionId:t.sessionId,turnId:t.turnId,error:e}),await setTimeout(i,void 0,{signal:n})}}}export{appendMissingToolResultMessages,createToolLoopHarness};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z}from"#compiled/zod/index.js";import{createLogger}from"#internal/logging.js";import{
|
|
1
|
+
import{z}from"#compiled/zod/index.js";import{createLogger}from"#internal/logging.js";import{parseJsonValue}from"#shared/json.js";import{formatValidationError}from"#runtime/validation.js";import{withToolOutputSerializationError}from"#harness/tool-output-serialization.js";const log=createLogger(`harness.tool-model-output`),CONTENT_FILE_WARN_BYTES=3145728,UNSUPPORTED_FILE_DATA_TAGS=new Set([`url`,`reference`,`text`]),toolModelOutputPartSchema=z.discriminatedUnion(`type`,[z.object({type:z.literal(`text`),text:z.string()}),z.object({type:z.literal(`file`),data:z.object({type:z.literal(`data`),data:z.string()}),mediaType:z.string().min(1),filename:z.string().optional()})]),toolModelOutputSchema=z.discriminatedUnion(`type`,[z.object({type:z.literal(`text`),value:z.string()}),z.object({type:z.literal(`json`),value:z.unknown()}),z.object({type:z.literal(`content`),value:z.array(toolModelOutputPartSchema).min(1)})]);function normalizeToolJsonOutput(e){let t=e.output===void 0?null:e.output;return withToolOutputSerializationError(e,()=>(parseJsonValue(t),t))}function normalizeToolModelOutput(e){return withToolOutputSerializationError({boundary:`toModelOutput`,toolCallId:e.toolCallId,toolName:e.toolName},()=>{assertSupportedFilePartData(e.output);let t=toolModelOutputSchema.safeParse(e.output);if(!t.success)throw TypeError(formatValidationError(t.error));let n=t.data;if(n.type===`json`)return{type:`json`,value:normalizeToolJsonOutput({boundary:`toModelOutput`,output:n.value,toolCallId:e.toolCallId,toolName:e.toolName})};if(n.type===`content`)for(let t of n.value)t.type===`file`&&warnOversizedFilePayload(t,e.toolName);return n})}function assertSupportedFilePartData(e){if(typeof e!=`object`||!e)return;let t=e;if(t.type===`content`&&Array.isArray(t.value))for(let e of t.value){if(typeof e!=`object`||!e)continue;let t=e;if(t.type!==`file`)continue;let n=t.data,r=typeof n==`object`&&n?n.data:void 0;if(isBinaryPayload(n)||isBinaryPayload(r))throw TypeError(`Expected file content part data to be a base64 string, received raw bytes. Base64-encode binary payloads before returning them from toModelOutput.`);let i=typeof n==`object`&&n?n.type:void 0;if(typeof i==`string`&&UNSUPPORTED_FILE_DATA_TAGS.has(i))throw TypeError(`File content part data tag "${i}" is not supported yet; only { type: "data" } with a base64 string is accepted.`)}}function warnOversizedFilePayload(e,t){let n=Math.floor(e.data.data.length*3/4);n<=CONTENT_FILE_WARN_BYTES||log.warn(`content-part file payload exceeds the inline size guideline — it is persisted in history and re-sent on every subsequent model call`,{estimatedBytes:n,mediaType:e.mediaType,toolName:t,warnBytes:CONTENT_FILE_WARN_BYTES})}function isBinaryPayload(e){return e instanceof Uint8Array||e instanceof ArrayBuffer}export{normalizeToolJsonOutput,normalizeToolModelOutput};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{tool}from"ai";import{isObject}from"#shared/guards.js";import{loadContext}from"#context/container.js";import{buildCallbackContext}from"#context/build-callback-context.js";import{resolveApprovalPolicy}from"#approval/definition.js";import{authorizationPendingModelText,isAuthorizationPendingModelOutput,isAuthorizationSignal,modelFacingAuthorizationOutput}from"#harness/authorization.js";import{createBackgroundToolCallBatch,executeBackgroundToolCall}from"#harness/background-tools.js";import{
|
|
1
|
+
import{tool}from"ai";import{isObject}from"#shared/guards.js";import{loadContext}from"#context/container.js";import{buildCallbackContext}from"#context/build-callback-context.js";import{resolveApprovalPolicy}from"#approval/definition.js";import{authorizationPendingModelText,isAuthorizationPendingModelOutput,isAuthorizationSignal,modelFacingAuthorizationOutput}from"#harness/authorization.js";import{createBackgroundToolCallBatch,executeBackgroundToolCall}from"#harness/background-tools.js";import{normalizeToolJsonOutput,normalizeToolModelOutput}from"#harness/tool-model-output.js";import{stashToolInterrupt}from"#harness/tool-interrupts.js";import{resolveWebSearchBackend,resolveWebSearchProviderTool}from"#harness/provider-tools.js";import{isAsyncIterable}from"#shared/async-iterable.js";const toolApprovals=new WeakMap;function buildToolSet(e){let t={},n=e.backgroundBatch??createBackgroundToolCallBatch(),r=e.capabilities?.requestInput===!0,i=e.disabledProviderTools;for(let a of e.tools.values()){if(a.behavior?.availability.includes(`requires-request-input`)===!0&&!r||i?.has(a.name))continue;n.setTool(a.name,a.execution===`background`&&a.execute!==void 0?{executeInput:a.executeInput,name:a.name,nodeId:a.nodeId,workflowId:requireBackgroundWorkflowId(a)}:void 0);let o=a.toModelOutput,s=buildApprovalFn(a,e),c=tool({description:a.description,execute:wrapToolExecute(a,n),inputSchema:a.inputSchema,...a.execution===`background`?{onInputAvailable:({input:e,toolCallId:t})=>{if(a.execute===void 0)throw Error(`Background tool "${a.name}" has no execute function.`);n.register({callId:t,input:e,toolName:a.name})}}:{},outputSchema:a.outputSchema,...a.execute===void 0?o===void 0?{}:{toModelOutput:async({output:e,toolCallId:t})=>normalizeToolModelOutput({output:await o(e),toolCallId:t,toolName:a.name})}:{toModelOutput:async({output:e,toolCallId:t})=>isAuthorizationPendingModelOutput(e)?{type:`text`,value:authorizationPendingModelText(e.connections)}:o===void 0?typeof e==`string`?{type:`text`,value:e}:normalizeToolModelOutput({output:{type:`json`,value:e??null},toolCallId:t,toolName:a.name}):normalizeToolModelOutput({output:await o(e),toolCallId:t,toolName:a.name})}});t[a.name]=c,a.approval!==void 0&&toolApprovals.set(c,s)}return t}function requireBackgroundWorkflowId(e){if(e.workflowId===void 0)throw Error(`Background tool "${e.name}" must be defined with defineWorkflowTool().`);return e.workflowId}function buildToolSetFromDefinitions(e){let t=new Map;for(let n of e.tools)t.has(n.name)||t.set(n.name,n);return buildToolSet({approvedTools:e.approvedTools,backgroundBatch:e.backgroundBatch,capabilities:e.capabilities,disabledProviderTools:e.disabledProviderTools,tools:t})}function wrapToolExecute(e,t=createBackgroundToolCallBatch()){let n=e.execute;if(n!==void 0)return(r,i)=>{let a;try{e.execution===`background`?(t.register({callId:i.toolCallId,input:r,toolName:e.name}),a=executeBackgroundToolCall({batch:t,definition:e,options:i,toolInput:r})):a=n(r,i)}catch(e){return Promise.reject(e)}return isAsyncIterable(a)?normalizeToolExecuteIterable(a,e.name,i):Promise.resolve(a).then(t=>normalizeToolExecuteOutput(t,e.name,i))}}async function*normalizeToolExecuteIterable(e,t,n){for await(let r of e)yield normalizeToolExecuteOutput(r,t,n)}function normalizeToolExecuteOutput(e,t,n){return isAuthorizationSignal(e)?(stashToolInterrupt(loadContext(),n.toolCallId,e),modelFacingAuthorizationOutput(e)):normalizeToolJsonOutput({boundary:`execute`,output:e,toolCallId:n.toolCallId,toolName:t})}async function buildToolSetWithProviderTools(e){let t=e.disabledProviderTools,n={...buildToolSet({approvedTools:e.approvedTools,backgroundBatch:e.backgroundBatch,capabilities:e.capabilities,disabledProviderTools:t,tools:e.tools})};for(let r of e.tools.values()){let i=r.behavior?.handling;if(i?.kind===`provider-tool`&&r.execute===void 0&&!t?.has(r.name)){let t=resolveWebSearchBackend(e.modelReference,i.provider);t===null?delete n[r.name]:n[r.name]=await resolveWebSearchProviderTool(t)}}return n}function buildApprovalFn(e,t){return async(n,r,i)=>{if(e.approval===void 0)return;let a=isObject(n)?n:void 0,o=await resolveApprovalPolicy(e.approval)({...buildCallbackContext(),abortSignal:i??new AbortController().signal,approvedTools:t.approvedTools??new Set,callId:r,toolInput:a,toolName:e.name});return typeof o==`boolean`?o?`user-approval`:`not-applicable`:o}}function buildToolApproval(e,t){return async({toolCall:n})=>{let r=e[n.toolName];return r===void 0?void 0:await toolApprovals.get(r)?.(n.input,n.toolCallId,t)}}export{buildToolApproval,buildToolSet,buildToolSetFromDefinitions,buildToolSetWithProviderTools,wrapToolExecute};
|
|
@@ -1,26 +1,61 @@
|
|
|
1
|
-
import type { HarnessSession, SessionStateMap } from "#harness/types.js";
|
|
2
1
|
import type { RuntimeToolResultActionResult } from "#shared/action-types.js";
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import type { SessionStateMap } from "#harness/types.js";
|
|
3
|
+
import { type ActivityWorkIdentityV1 } from "#protocol/activity.js";
|
|
4
|
+
import { type TaskMetadata, type TaskView } from "#tasks/types.js";
|
|
5
|
+
import type { DurableDynamicSubagentSelection, SessionAuth } from "#context/keys.js";
|
|
6
|
+
export declare const WORKFLOW_TOOL_RUNS_STATE_KEY = "eve.workflowTool";
|
|
7
|
+
export interface WorkflowTaskPayload {
|
|
8
|
+
readonly taskId: string;
|
|
9
|
+
readonly metadata: TaskMetadata;
|
|
10
|
+
readonly dispatchContext: TaskAgentDispatchContext;
|
|
11
|
+
readonly activityWorkIdentity?: ActivityWorkIdentityV1;
|
|
12
|
+
readonly cohortId?: string;
|
|
13
|
+
/** Parent-owned outcome. Read through readWorkflowTaskView before consuming it. */
|
|
14
|
+
readonly outcome?: unknown;
|
|
15
|
+
}
|
|
16
|
+
interface WorkflowToolRunBase {
|
|
5
17
|
readonly callId: string;
|
|
6
|
-
readonly hookToken: string;
|
|
7
|
-
readonly runId: string;
|
|
8
18
|
readonly toolName: string;
|
|
9
|
-
readonly
|
|
19
|
+
readonly origin: {
|
|
20
|
+
readonly turnId: string;
|
|
21
|
+
readonly stepIndex: number;
|
|
22
|
+
};
|
|
23
|
+
readonly address: {
|
|
24
|
+
readonly runId: string;
|
|
25
|
+
readonly hookToken: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export type BlockingWorkflowToolRun = WorkflowToolRunBase & {
|
|
29
|
+
readonly lifetime: "turn";
|
|
30
|
+
};
|
|
31
|
+
export type BackgroundWorkflowToolRun = WorkflowToolRunBase & {
|
|
32
|
+
readonly lifetime: "session";
|
|
33
|
+
readonly task: WorkflowTaskPayload;
|
|
34
|
+
};
|
|
35
|
+
export type WorkflowToolRun = BlockingWorkflowToolRun | BackgroundWorkflowToolRun;
|
|
36
|
+
export interface TaskAgentDispatchContext {
|
|
37
|
+
readonly auth: SessionAuth;
|
|
38
|
+
readonly sessionDynamicSubagentSelections?: Readonly<Record<string, DurableDynamicSubagentSelection>>;
|
|
39
|
+
readonly turnDynamicSubagentSelections?: Readonly<Record<string, DurableDynamicSubagentSelection>>;
|
|
10
40
|
}
|
|
11
|
-
|
|
12
|
-
export declare function
|
|
13
|
-
export declare function
|
|
41
|
+
/** Decode retained output only when it is consumed, independently of ownership reads. */
|
|
42
|
+
export declare function readWorkflowTaskView(task: WorkflowTaskPayload): TaskView | undefined;
|
|
43
|
+
export declare function getWorkflowToolRuns(state: SessionStateMap | undefined): readonly WorkflowToolRun[];
|
|
44
|
+
export declare function getBackgroundWorkflowToolRuns(state: SessionStateMap | undefined): readonly BackgroundWorkflowToolRun[];
|
|
45
|
+
export declare function getBlockingWorkflowToolRuns(state: SessionStateMap | undefined, turnId?: string): readonly BlockingWorkflowToolRun[];
|
|
46
|
+
export declare function findBackgroundWorkflowToolRun(state: SessionStateMap | undefined, taskId: string): BackgroundWorkflowToolRun | undefined;
|
|
47
|
+
/** Registration is idempotent by originating turn and call; retained task facts survive replay. */
|
|
48
|
+
export declare function registerWorkflowToolRun<T extends {
|
|
14
49
|
readonly state?: SessionStateMap;
|
|
15
|
-
}>(session: T,
|
|
16
|
-
|
|
50
|
+
}>(session: T, entry: WorkflowToolRun): T;
|
|
51
|
+
/** Task payloads remain available for the session lifetime, including after report delivery. */
|
|
52
|
+
export declare function recordWorkflowTaskView(state: SessionStateMap | undefined, view: TaskView): SessionStateMap | undefined;
|
|
53
|
+
/** Removes only this turn's waiting calls. Session-owned task payloads are never pruned here. */
|
|
54
|
+
export declare function removeBlockingWorkflowToolRuns<T extends {
|
|
17
55
|
readonly state?: SessionStateMap;
|
|
18
|
-
}>(session: T,
|
|
19
|
-
|
|
56
|
+
}>(session: T, turnId: string, callId?: string): T;
|
|
57
|
+
/** Results without an originating turn may bind only when exactly one recorded turn owns the call. */
|
|
58
|
+
export declare function findBlockingWorkflowToolRun(state: SessionStateMap | undefined, callId: string, turnId?: string): BlockingWorkflowToolRun | undefined;
|
|
20
59
|
/** The turn inbox is shared; a result settles a call only if the turn recorded that run. */
|
|
21
60
|
export declare function isInboxToolResultFromRecordedWorkflowToolRun(state: SessionStateMap | undefined, result: RuntimeToolResultActionResult): boolean;
|
|
22
|
-
|
|
23
|
-
export declare function isInboxSubagentResultFromRecordedWorkflowToolRun(state: SessionStateMap | undefined, result: {
|
|
24
|
-
readonly callId: string;
|
|
25
|
-
readonly subagentName: string;
|
|
26
|
-
}): boolean;
|
|
61
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const WORKFLOW_TOOL_RUNS_STATE_KEY=`eve.
|
|
1
|
+
import{isNonEmptyString,isObject}from"#shared/guards.js";import{parseActivityWorkIdentityV1}from"#protocol/activity.js";import{sameTaskMetadata}from"#tasks/types.js";const WORKFLOW_TOOL_RUNS_STATE_KEY=`eve.workflowTool`;function isTaskMetadata(e){return isObject(e)&&isNonEmptyString(e.kind)&&isNonEmptyString(e.name)}function isRecord(e){if(!isObject(e))return!1;let t=e.constructor;return typeof t!=`function`||isObject(t.prototype)&&Object.hasOwn(t.prototype,`isPrototypeOf`)}function isSessionAuthContext(e){return e===null||isObject(e)&&Object.keys(e).every(e=>[`attributes`,`authenticator`,`issuer`,`principalId`,`principalType`,`subject`].includes(e))&&isRecord(e.attributes)&&Object.values(e.attributes).every(e=>typeof e==`string`||Array.isArray(e)&&Array.from(e).every(e=>typeof e==`string`))&&typeof e.authenticator==`string`&&typeof e.principalId==`string`&&typeof e.principalType==`string`&&(e.issuer===void 0||typeof e.issuer==`string`)&&(e.subject===void 0||typeof e.subject==`string`)}function isTaskAgentDispatchContext(e){return isObject(e)&&Object.keys(e).every(e=>[`auth`,`sessionDynamicSubagentSelections`,`turnDynamicSubagentSelections`].includes(e))&&isObject(e.auth)&&Object.keys(e.auth).every(e=>e===`current`||e===`initiator`)&&isSessionAuthContext(e.auth.current)&&isSessionAuthContext(e.auth.initiator)&&(e.sessionDynamicSubagentSelections===void 0||isRecord(e.sessionDynamicSubagentSelections))&&(e.turnDynamicSubagentSelections===void 0||isRecord(e.turnDynamicSubagentSelections))}function isWorkflowToolRun(e){if(!isObject(e)||!isNonEmptyString(e.callId)||!isNonEmptyString(e.toolName)||!isObject(e.origin)||!isNonEmptyString(e.origin.turnId)||typeof e.origin.stepIndex!=`number`||!Number.isSafeInteger(e.origin.stepIndex)||e.origin.stepIndex<0||!isObject(e.address)||!isNonEmptyString(e.address.runId)||!isNonEmptyString(e.address.hookToken))return!1;if(e.lifetime===`turn`)return e.task===void 0;if(e.lifetime!==`session`||!isObject(e.task))return!1;let t=e.task;return isNonEmptyString(t.taskId)&&isTaskMetadata(t.metadata)&&isTaskAgentDispatchContext(t.dispatchContext)&&(t.cohortId===void 0||isNonEmptyString(t.cohortId))&&(t.activityWorkIdentity===void 0||parseActivityWorkIdentityV1(t.activityWorkIdentity)!==void 0)}function parseRegistry(e){if(!isObject(e)||e.version!==3||!Array.isArray(e.runs)||!Array.from(e.runs).every(isWorkflowToolRun))throw Error(`Corrupt workflow tool run registry: invalid version or run.`);let t=new Set,n=new Set;for(let r of e.runs){let e=JSON.stringify([r.origin.turnId,r.callId]);if(t.has(e))throw Error(`Corrupt workflow tool run registry: Run identities must be unique.`);if(t.add(e),r.lifetime===`session`){if(n.has(r.task.taskId))throw Error(`Corrupt workflow tool run registry: Task ids must be unique.`);n.add(r.task.taskId)}}return{...e,version:3,runs:e.runs.map(copyWorkflowToolRun)}}function copySessionAuthContext(e){return e===null?null:{...e,attributes:Object.fromEntries(Object.entries(e.attributes).map(([e,t])=>[e,typeof t==`string`?t:Object.freeze([...t])]))}}function copyWorkflowToolRun(e){let t={...e,origin:{...e.origin},address:{...e.address}};if(e.lifetime===`turn`)return t;let n=e.task.dispatchContext,r={...n,auth:{current:copySessionAuthContext(n.auth.current),initiator:copySessionAuthContext(n.auth.initiator)}};return n.sessionDynamicSubagentSelections!==void 0&&(r.sessionDynamicSubagentSelections={...n.sessionDynamicSubagentSelections}),n.turnDynamicSubagentSelections!==void 0&&(r.turnDynamicSubagentSelections={...n.turnDynamicSubagentSelections}),{...t,lifetime:`session`,task:{...e.task,metadata:{...e.task.metadata},dispatchContext:r}}}function parseTaskOutcome(e){if(!isObject(e)||e.inputRequests!==void 0)return;let t=e.usage;if(t!==void 0&&(!isObject(t)||![t.cacheReadTokens,t.cacheWriteTokens,t.inputTokens,t.outputTokens,...t.costUsd===void 0?[]:[t.costUsd]].every(e=>typeof e==`number`&&Number.isFinite(e)&&e>=0)))return;if(e.status===`cancelled`){if(e.lastOutput!==void 0)return}else{if(e.status!==`completed`&&e.status!==`failed`)return;let t=e.status===`completed`?`result`:`error`;if(!isObject(e.lastOutput)||e.lastOutput.type!==t)return}let n={...e};return t!==void 0&&(n.usage={...t}),isObject(e.lastOutput)&&(n.lastOutput={...e.lastOutput}),n}function readWorkflowTaskView(e){if(e.outcome===void 0)return;let t=parseTaskOutcome(e.outcome);if(t===void 0)throw Error(`Corrupt workflow task result "${e.taskId}": invalid outcome.`);return{...t,taskId:e.taskId,metadata:{...e.metadata}}}function readRegistry(e){if(e?.[`eve.tasks`]!==void 0||e?.[`eve.runtime.workflowToolRuns`]!==void 0)throw Error(`Unsupported workflow tool run state: start a new session or import its conversation.`);let t=e?.[WORKFLOW_TOOL_RUNS_STATE_KEY];return t===void 0?{version:3,runs:[]}:parseRegistry(t)}function getWorkflowToolRuns(e){return readRegistry(e).runs}function getBackgroundWorkflowToolRuns(e){return getWorkflowToolRuns(e).filter(e=>e.lifetime===`session`)}function getBlockingWorkflowToolRuns(e,t){return getWorkflowToolRuns(e).filter(e=>e.lifetime===`turn`&&(t===void 0||e.origin.turnId===t))}function findBackgroundWorkflowToolRun(e,t){return getBackgroundWorkflowToolRuns(e).find(e=>e.task.taskId===t)}function writeRegistry(e,t){if(t.runs.length===0){let t={...e};return delete t[WORKFLOW_TOOL_RUNS_STATE_KEY],Object.keys(t).length===0?void 0:t}return{...e,[WORKFLOW_TOOL_RUNS_STATE_KEY]:parseRegistry(t)}}function registerWorkflowToolRun(e,t){let n=readRegistry(e.state),r=[...n.runs],i=r.findIndex(e=>e.origin.turnId===t.origin.turnId&&e.callId===t.callId),a=r[i];if(a!==void 0&&(a.lifetime!==t.lifetime||a.toolName!==t.toolName))throw Error(`Replayed invocation changed its ownership or tool identity.`);if(t.lifetime===`session`){if(a?.lifetime===`session`){if(t.task.taskId!==a.task.taskId)throw Error(`Replayed invocation changed its task identity.`);t={...t,task:{...a.task,...t.task,metadata:{...a.task.metadata,...t.task.metadata},activityWorkIdentity:t.task.activityWorkIdentity===void 0?a.task.activityWorkIdentity:{...a.task.activityWorkIdentity,...t.task.activityWorkIdentity},cohortId:a.task.cohortId,dispatchContext:a.task.dispatchContext,outcome:a.task.outcome??t.task.outcome}}}else{let e=r.find(e=>e.lifetime===`session`&&e.task.outcome===void 0);t={...t,task:{...t.task,cohortId:e===void 0?void 0:e.task.cohortId??e.task.taskId}}}}return t.lifetime===`session`&&readWorkflowTaskView(t.task),a===void 0?r.push(t):r[i]={...a,...t,origin:a.origin,address:{...a.address,...t.address}},{...e,state:writeRegistry(e.state,{...n,runs:r})}}function recordWorkflowTaskView(e,t){let{taskId:n,metadata:r,...i}=t,a=parseTaskOutcome(i);if(!isNonEmptyString(n)||!isTaskMetadata(r)||a===void 0)throw Error(`Invalid terminal workflow task view.`);let o=readRegistry(e),s=[...o.runs],c=s.findIndex(e=>e.lifetime===`session`&&e.task.taskId===n),l=s[c];if(l===void 0||l.lifetime!==`session`)return e;if(!sameTaskMetadata(l.task.metadata,r))throw Error(`Task view metadata does not match invocation "${t.taskId}".`);return readWorkflowTaskView(l.task)===void 0?(s[c]={...l,task:{...l.task,outcome:a}},writeRegistry(e,{...o,runs:s})):e}function removeBlockingWorkflowToolRuns(e,t,n){let r=readRegistry(e.state),i=r.runs,a=i.filter(e=>e.lifetime!==`turn`||e.origin.turnId!==t||n!==void 0&&e.callId!==n);return a.length===i.length?e:{...e,state:writeRegistry(e.state,{...r,runs:a})}}function findBlockingWorkflowToolRun(e,t,n){let r=getBlockingWorkflowToolRuns(e,n).filter(e=>e.callId===t);return r.length===1?r[0]:void 0}function isInboxToolResultFromRecordedWorkflowToolRun(e,t){let n=findBlockingWorkflowToolRun(e,t.callId);return n!==void 0&&n.toolName===t.toolName}export{WORKFLOW_TOOL_RUNS_STATE_KEY,findBackgroundWorkflowToolRun,findBlockingWorkflowToolRun,getBackgroundWorkflowToolRuns,getBlockingWorkflowToolRuns,getWorkflowToolRuns,isInboxToolResultFromRecordedWorkflowToolRun,readWorkflowTaskView,recordWorkflowTaskView,registerWorkflowToolRun,removeBlockingWorkflowToolRuns};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createLogger,formatError}from"#internal/logging.js";import{abandonInstrumentationState,instrumentationStateSlot,isInstrumentationStateAbandoned,releaseAllInstrumentationAttemptState,releaseAllInstrumentationState,releaseAllInstrumentationTurnState,takeInstrumentationActionScopes}from"#instrumentation/state.js";import{withInstrumentationDecision,withoutInstrumentationContent}from"#instrumentation/content.js";import{
|
|
1
|
+
import{createLogger,formatError}from"#internal/logging.js";import{abandonInstrumentationState,instrumentationStateSlot,isInstrumentationStateAbandoned,releaseAllInstrumentationAttemptState,releaseAllInstrumentationState,releaseAllInstrumentationTurnState,takeInstrumentationActionScopes}from"#instrumentation/state.js";import{withInstrumentationDecision,withoutInstrumentationContent}from"#instrumentation/content.js";import{resolveTracePolicy}from"#shared/trace-policy.js";const log=createLogger(`harness.instrumentation-dispatch`);function createInstrumentationDispatcher(e,t){let n=t.handlerTimeoutMs??5e3,r=normalizeDispatchGroups(e),i=[...r.serialBefore,...r.parallel,...r.serialAfter],a=new Set;function forTrace(e){let t=new WeakMap,o=new Map(i.map(t=>[t,resolveTracePolicy(t.tracePolicy,e,e=>{a.has(t)||(a.add(t),log.warn(`instrumentation provider trace policy failed`,{error:formatError(e),provider:t.name}))})])),s=[...o.values()].some(e=>e.action===`record`&&e.recordInputs),c=[...o.values()].some(e=>e.action===`record`&&e.recordOutputs),l=s||c,publish=async e=>{let i=snapshotInstrumentationEvent(withInstrumentationDecision(e,{action:`record`,recordInputs:s,recordOutputs:c}),t,e),a=i.type===`session.completed`||i.type===`session.failed`,l=i.type===`turn.cancelled`||i.type===`turn.failed`;if(a||l){let e=takeInstrumentationActionScopes(i.sessionId,l?i.turnId:void 0),t=terminalActionFailure(i);for(let n of e)await publish({...t,idempotencyKey:n.idempotencyKey,scope:n.scope,type:`action.failed`})}let u=new Map,visibleEvent=e=>{let t=o.get(e);if(t===void 0||t.action===`drop`)return withoutInstrumentationContent(i);if(t.recordInputs&&t.recordOutputs)return i;let n=`${String(t.recordInputs)}:${String(t.recordOutputs)}`,r=u.get(n);return r===void 0&&(r=withInstrumentationDecision(i,t),u.set(n,r)),r},admitted=e=>o.get(e)?.action===`record`;try{try{for(let e of r.serialBefore)admitted(e)&&await dispatchToProvider(e,i,n,()=>visibleEvent(e));let e=r.parallel.filter(admitted);if(e.length===1){let t=e[0];await dispatchToProvider(t,i,n,()=>visibleEvent(t))}else if(e.length>1){let t=(await Promise.allSettled(e.map(e=>dispatchToProvider(e,i,n,()=>visibleEvent(e))))).find(e=>e.status===`rejected`);if(t!==void 0)throw t.reason}}finally{for(let e of r.serialAfter)admitted(e)&&await dispatchToProvider(e,i,n,()=>visibleEvent(e))}}finally{releaseTerminalState(i)}};return{capturesContent:l,capturesInputs:s,capturesOutputs:c,forTrace,publish}}let o=!1;return{capturesContent:!1,forTrace,async publish(e){o||(o=!0,log.debug(`instrumentation event published without trace binding`,{eventType:e.type}))}}}function snapshotInstrumentationEvent(e,t,n){let r=t.get(n);if(r!==void 0)return r;let i=snapshotPlainValue(e,t);return t.set(n,i),i}function snapshotPlainValue(e,t){if(Array.isArray(e)){let n=t.get(e);if(n!==void 0)return n;let r=[];t.set(e,r);for(let n of e)r.push(snapshotPlainValue(n,t));return Object.freeze(r)}if(typeof e!=`object`||!e)return e;let n;try{n=Object.getPrototypeOf(e)}catch{return e}if(n!==Object.prototype&&n!==null)return e;let r=t.get(e);if(r!==void 0)return r;let i={};t.set(e,i);for(let[n,r]of Object.entries(e))i[n]=snapshotPlainValue(r,t);return Object.freeze(i)}function normalizeDispatchGroups(e){if(!Array.isArray(e)){let t=e;return{parallel:t.parallel??[],serialAfter:t.serialAfter??[],serialBefore:t.serialBefore??[]}}return{parallel:[],serialAfter:[],serialBefore:e.map((e,t)=>({...e,name:e.name??`provider-${String(t)}`}))}}async function dispatchToProvider(e,t,n,r){let i=t.type.endsWith(`.started`)||t.type===`input.requested`,a=stateOwner(t),o=e.name,s=e.stateNamespace??o;if(isInstrumentationStateAbandoned(s,t.idempotencyKey))return;let c=e.events?.[t.type];if(c===void 0)return;let l=instrumentationStateSlot(s,t.idempotencyKey,a);try{await withTimeout(async()=>{let t=r();await c(e.projectEvent===void 0?t:await e.projectEvent(t),{state:l})},n,()=>{l.revoke(),i&&abandonInstrumentationState(s,t.idempotencyKey,a)})||log.warn(`instrumentation provider timed out`,{boundary:t.type,provider:o,timeoutMs:n})}catch(e){log.warn(`instrumentation provider failed`,{boundary:t.type,error:formatError(e),provider:o})}finally{l.revoke()}}async function withTimeout(e,t,n){let r;try{return await Promise.race([Promise.resolve(e()).then(()=>!0),new Promise(e=>{r=setTimeout(()=>{n(),e(!1)},t)})])}finally{clearTimeout(r)}}function stateOwner(e){return e.type===`channel.delivery.started`||e.type===`channel.delivery.cancelled`||e.type===`channel.delivery.completed`||e.type===`channel.delivery.failed`||e.type===`memory.operation.started`||e.type===`memory.operation.completed`||e.type===`memory.operation.failed`?{sessionId:e.sessionId,turnId:e.turnId}:`scope`in e?e.type.startsWith(`action.`)||e.type.startsWith(`input.`)?{sessionId:e.scope.sessionId,turnId:e.scope.turnId}:e.type.startsWith(`model.call.`)||e.type.startsWith(`tool.call.`)||e.type.startsWith(`step.attempt.`)?{attemptId:e.scope.attemptId}:{}:{}}function releaseTerminalState(e){isTerminal(e.type)&&releaseAllInstrumentationState(e.idempotencyKey),(e.type===`step.attempt.completed`||e.type===`step.attempt.failed`)&&releaseAllInstrumentationAttemptState(e.scope.attemptId),(e.type===`session.completed`||e.type===`session.failed`)&&releaseAllInstrumentationTurnState(e.sessionId),(e.type===`turn.cancelled`||e.type===`turn.failed`)&&releaseAllInstrumentationTurnState(e.sessionId,e.turnId)}function terminalActionFailure(e){return e.type===`session.failed`||e.type===`turn.failed`?{error:e.error,outcome:`failed`}:e.type===`turn.cancelled`?{error:Error(`The action was cancelled with its turn.`),errorCode:`ACTION_CANCELLED`,outcome:`cancelled`}:{error:Error(`The session completed before the action settled.`),errorCode:`ACTION_ABANDONED`,outcome:`abandoned`}}function isTerminal(e){return e.endsWith(`.completed`)||e.endsWith(`.failed`)||e.endsWith(`.cancelled`)||e===`input.resolved`}export{createInstrumentationDispatcher};
|
|
@@ -3,7 +3,7 @@ import type { InstrumentationStateSlot } from "#instrumentation/state.js";
|
|
|
3
3
|
import type { RuntimeTraceContext } from "#protocol/message.js";
|
|
4
4
|
import type { ChannelAudience } from "#shared/channel-audience.js";
|
|
5
5
|
import type { InstrumentationDecision } from "#shared/instrumentation-decision.js";
|
|
6
|
-
import type {
|
|
6
|
+
import type { TraceCaptureContext, TraceCapturePolicy } from "#shared/trace-policy.js";
|
|
7
7
|
/**
|
|
8
8
|
* Stable eve identity for one model attempt. Retries share `stepIndex` and
|
|
9
9
|
* differ by `attemptIndex`, so `step.attempt.*` fires once per attempt while
|
|
@@ -419,11 +419,9 @@ export interface InstrumentationHandlerContext {
|
|
|
419
419
|
* still open when the step attempt terminates.
|
|
420
420
|
*/
|
|
421
421
|
export type InstrumentationEventHandler<TEvent> = (event: TEvent, ctx: InstrumentationHandlerContext) => void | PromiseLike<void>;
|
|
422
|
-
/** Internal provider shape
|
|
422
|
+
/** Internal normalized provider shape consumed by the instrumentation bus. */
|
|
423
423
|
export interface InstrumentationProviderDefinition {
|
|
424
424
|
readonly name: string;
|
|
425
|
-
/** @deprecated Use `tracePolicy` to select directional content. */
|
|
426
|
-
readonly capture?: InstrumentationCapture;
|
|
427
425
|
/** Durable state identity, separate from the human-readable log name. */
|
|
428
426
|
readonly stateNamespace?: string;
|
|
429
427
|
/** Internal provider-specific projection applied after capture filtering. */
|
|
@@ -1,26 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The provider contract authored under `agent/instrumentation/`.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* off nothing discovers that directory, so these types compile but never run.
|
|
4
|
+
* Each file in the directory declares one independently configured provider.
|
|
6
5
|
*/
|
|
7
6
|
import type { InstrumentationEvent } from "#instrumentation/lifecycle.js";
|
|
8
7
|
import type { JsonValue } from "#shared/json.js";
|
|
9
|
-
import type {
|
|
8
|
+
import type { TraceCapturePolicy } from "#shared/trace-policy.js";
|
|
10
9
|
export type { JsonValue } from "#shared/json.js";
|
|
11
10
|
export type { InstrumentationActionCompletedEvent, InstrumentationActionFailedEvent, InstrumentationActionKind, InstrumentationActionOutcome, InstrumentationActionOutput, InstrumentationActionStartedEvent, InstrumentationAttemptScope, InstrumentationChannelDeliveryInput, InstrumentationChannelDeliveryOutcome, InstrumentationChannelDeliveryRef, InstrumentationChannelDeliveryStartedEvent, InstrumentationChannelDeliveryTerminalEvent, InstrumentationContentPart, InstrumentationEvent, InstrumentationInputKind, InstrumentationInputOption, InstrumentationInputOutcome, InstrumentationInputRequest, InstrumentationInputRequestedEvent, InstrumentationInputResolvedEvent, InstrumentationInputResponse, InstrumentationModelCallCompletedEvent, InstrumentationModelCallFailedEvent, InstrumentationModelCallStartedEvent, InstrumentationModelRef, InstrumentationOperationRef, InstrumentationParentLineage, InstrumentationSessionFailedEvent, InstrumentationSessionSettledEvent, InstrumentationSessionStartedEvent, InstrumentationSessionTransitionEvent, InstrumentationStepAttemptMetadataEvent, InstrumentationStepAttemptCompletedEvent, InstrumentationStepAttemptFailedEvent, InstrumentationStepAttemptStartedEvent, InstrumentationStepAttemptTerminalEvent, InstrumentationToolCallCompletedEvent, InstrumentationToolCallFailedEvent, InstrumentationToolCallStartedEvent, InstrumentationToolOutput, InstrumentationTraceContext, InstrumentationTurnFailedEvent, InstrumentationTurnSettledEvent, InstrumentationTurnStartedEvent, InstrumentationTurnTerminalEvent, InstrumentationUsage, } from "#instrumentation/lifecycle.js";
|
|
12
11
|
export type { InstrumentationMemoryOperation, InstrumentationMemoryOperationCompletedEvent, InstrumentationMemoryOperationEvent, InstrumentationMemoryOperationFailedEvent, InstrumentationMemoryOperationName, InstrumentationMemoryOperationStartedEvent, InstrumentationMemoryOperationTerminalEvent, InstrumentationMemoryRecord, } from "#instrumentation/memory.js";
|
|
13
|
-
export type {
|
|
12
|
+
export type { TraceCaptureContext, TraceCapturePolicy, TracePolicyDecision, } from "#shared/trace-policy.js";
|
|
14
13
|
/**
|
|
15
14
|
* Marks a value as having come from `defineInstrumentation` or a built-in
|
|
16
15
|
* factory.
|
|
17
16
|
*
|
|
18
|
-
*
|
|
19
|
-
* config both carry `events` and `setup`, so no value-level check separates
|
|
20
|
-
* them. The layout decides — `agent/instrumentation.ts` is read as a config and
|
|
21
|
-
* `agent/instrumentation/*.ts` as providers, and the two are mutually exclusive
|
|
22
|
-
* builds. The brand's job is only to catch a default export that never went
|
|
23
|
-
* through eve at all.
|
|
17
|
+
* The brand catches a default export that never went through eve.
|
|
24
18
|
*/
|
|
25
19
|
export declare const PROVIDER: unique symbol;
|
|
26
20
|
/** Marks a slot the author turned off rather than configured. */
|
|
@@ -38,13 +32,11 @@ export interface EvaluationRef {
|
|
|
38
32
|
export interface ProviderSetupContext {
|
|
39
33
|
/** The agent name declared by `defineAgent`. */
|
|
40
34
|
readonly agentName: string;
|
|
41
|
-
|
|
42
|
-
readonly environment?: InstrumentationEnvironment;
|
|
35
|
+
readonly environment: InstrumentationEnvironment;
|
|
43
36
|
/** Present only when this server was started for a local `eve eval` run. */
|
|
44
37
|
readonly evaluation?: EvaluationRef;
|
|
45
38
|
/** The eve version running the agent. */
|
|
46
|
-
|
|
47
|
-
readonly frameworkVersion?: string;
|
|
39
|
+
readonly frameworkVersion: string;
|
|
48
40
|
}
|
|
49
41
|
export interface ProviderState {
|
|
50
42
|
get(): JsonValue | undefined;
|
|
@@ -83,8 +75,6 @@ export type ProviderEvents = {
|
|
|
83
75
|
* completion order.
|
|
84
76
|
*/
|
|
85
77
|
export interface ProviderDefinition {
|
|
86
|
-
/** @deprecated Use `tracePolicy`. Ignored when `tracePolicy` is also set. */
|
|
87
|
-
readonly capture?: InstrumentationCapture;
|
|
88
78
|
/**
|
|
89
79
|
* Whether this provider receives events and which content directions they
|
|
90
80
|
* include. Defaults to emitting every audience, with content only for public
|
|
@@ -102,6 +92,8 @@ export interface ProviderDefinition {
|
|
|
102
92
|
/** Releases resources when the process is going away. */
|
|
103
93
|
readonly shutdown?: () => void | PromiseLike<void>;
|
|
104
94
|
}
|
|
95
|
+
/** Declares one instrumentation provider. */
|
|
96
|
+
export declare function defineInstrumentation(definition: ProviderDefinition): InstrumentationProvider;
|
|
105
97
|
/** A {@link ProviderDefinition} that has been through `defineInstrumentation`. */
|
|
106
98
|
export type InstrumentationProvider = ProviderDefinition & {
|
|
107
99
|
readonly [PROVIDER]: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const PROVIDER=Symbol.for(`eve.instrumentation.provider`),DISABLED=Symbol.for(`eve.instrumentation.disabled`);function disableInstrumentation(){return{[DISABLED]:!0}}function isInstrumentationProvider(e){return typeof e==`object`&&!!e&&e[PROVIDER]===!0}function isInstrumentationDisabled(e){return typeof e==`object`&&!!e&&e[DISABLED]===!0}export{DISABLED,PROVIDER,disableInstrumentation,isInstrumentationDisabled,isInstrumentationProvider};
|
|
1
|
+
const PROVIDER=Symbol.for(`eve.instrumentation.provider`),DISABLED=Symbol.for(`eve.instrumentation.disabled`);function defineInstrumentation(e){return{...e,[PROVIDER]:!0}}function disableInstrumentation(){return{[DISABLED]:!0}}function isInstrumentationProvider(e){return typeof e==`object`&&!!e&&e[PROVIDER]===!0}function isInstrumentationDisabled(e){return typeof e==`object`&&!!e&&e[DISABLED]===!0}export{DISABLED,PROVIDER,defineInstrumentation,disableInstrumentation,isInstrumentationDisabled,isInstrumentationProvider};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{getInstrumentationRuntime}from"#instrumentation/runtime.js";import{DEVELOPMENT_WORKER_APP_ROOT_ENV}from"#internal/workflow/development-world-protocol.js";import{createInstrumentationSetupContext}from"#instrumentation/setup-context.js";import{agentRuns,localTraces}from"#public/instrumentation/otel.js";import{installInstrumentationRuntime}from"#tracing/install-instrumentation-runtime.js";import{collectOtelPipeline}from"#tracing/otel-declaration.js";import{isInstrumentationDisabled,isInstrumentationProvider}from"#public/instrumentation/provider.js";const INSTRUMENTATION_PROVIDERS_GLOBAL_KEY=Symbol.for(`eve.harness-instrumentation-providers`),globalContainer=globalThis;function providerRegistry(){let e=globalContainer[INSTRUMENTATION_PROVIDERS_GLOBAL_KEY];if(e!==void 0)return e;let t=new Map;return globalContainer[INSTRUMENTATION_PROVIDERS_GLOBAL_KEY]=t,t}function seedInstrumentationProviders(){let e=providerRegistry();(process.env.VERCEL_ENV===`preview`||process.env.VERCEL_ENV===`production`)&&e.set(`agent-runs`,agentRuns()),process.env[DEVELOPMENT_WORKER_APP_ROOT_ENV]!==void 0&&e.set(`local`,localTraces())}async function registerInstrumentationProvider(e){if(isInstrumentationDisabled(e.value)){providerRegistry().delete(e.slot);return}if(!isInstrumentationProvider(e.value))throw Error(`The default export of "instrumentation/${e.slot}" is not an instrumentation provider. Return the result of \`defineInstrumentation\` or \`disableInstrumentation\` from it.`);providerRegistry().set(e.slot,e.value),await e.value.setup?.(createInstrumentationSetupContext(e.agentName))}function getInstrumentationProviders(){return[...providerRegistry()].sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>({provider:t,slot:e}))}function finalizeInstrumentationProviders(e){let t=getInstrumentationProviders(),n=t.map(toProviderDefinition),r=collectOtelPipeline(t.map(e=>e.provider));return installInstrumentationRuntime({collected:r,frameworkVersion:resolveInstalledPackageInfo().version,
|
|
1
|
+
import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{getInstrumentationRuntime}from"#instrumentation/runtime.js";import{DEVELOPMENT_WORKER_APP_ROOT_ENV}from"#internal/workflow/development-world-protocol.js";import{createInstrumentationSetupContext}from"#instrumentation/setup-context.js";import{agentRuns,localTraces}from"#public/instrumentation/otel.js";import{installInstrumentationRuntime}from"#tracing/install-instrumentation-runtime.js";import{collectOtelPipeline}from"#tracing/otel-declaration.js";import{isInstrumentationDisabled,isInstrumentationProvider}from"#public/instrumentation/provider.js";const INSTRUMENTATION_PROVIDERS_GLOBAL_KEY=Symbol.for(`eve.harness-instrumentation-providers`),globalContainer=globalThis;function providerRegistry(){let e=globalContainer[INSTRUMENTATION_PROVIDERS_GLOBAL_KEY];if(e!==void 0)return e;let t=new Map;return globalContainer[INSTRUMENTATION_PROVIDERS_GLOBAL_KEY]=t,t}function seedInstrumentationProviders(){let e=providerRegistry();(process.env.VERCEL_ENV===`preview`||process.env.VERCEL_ENV===`production`)&&e.set(`agent-runs`,agentRuns()),process.env[DEVELOPMENT_WORKER_APP_ROOT_ENV]!==void 0&&e.set(`local`,localTraces())}async function registerInstrumentationProvider(e){if(isInstrumentationDisabled(e.value)){providerRegistry().delete(e.slot);return}if(!isInstrumentationProvider(e.value))throw Error(`The default export of "instrumentation/${e.slot}" is not an instrumentation provider. Return the result of \`defineInstrumentation\` or \`disableInstrumentation\` from it.`);if(Object.hasOwn(e.value,`capture`))throw Error(`The instrumentation provider "instrumentation/${e.slot}" no longer supports \`capture\`. Use \`tracePolicy\` to configure content capture.`);providerRegistry().set(e.slot,e.value),await e.value.setup?.(createInstrumentationSetupContext(e.agentName))}function getInstrumentationProviders(){return[...providerRegistry()].sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>({provider:t,slot:e}))}function finalizeInstrumentationProviders(e){let t=getInstrumentationProviders(),n=t.map(toProviderDefinition),r=collectOtelPipeline(t.map(e=>e.provider));return installInstrumentationRuntime({collected:r,frameworkVersion:resolveInstalledPackageInfo().version,providers:n,runtimeContextResolvers:r.runtimeContextResolvers,serviceName:e.serviceName})}async function shutdownInstrumentationProviders(){await getInstrumentationRuntime()?.shutdown()}function toProviderDefinition(e){return{events:e.provider.events,flush:e.provider.flush,name:e.slot,shutdown:e.provider.shutdown,stateNamespace:`authored:${e.slot}`,tracePolicy:e.provider.tracePolicy}}export{finalizeInstrumentationProviders,getInstrumentationProviders,registerInstrumentationProvider,seedInstrumentationProviders,shutdownInstrumentationProviders};
|
|
@@ -4,7 +4,6 @@ import type { AlsContext } from "#context/container.js";
|
|
|
4
4
|
import type { HarnessEmissionState } from "#harness/emission.js";
|
|
5
5
|
import type { HarnessSession } from "#harness/types.js";
|
|
6
6
|
import type { RuntimeContextResolver } from "#tracing/otel-declaration.js";
|
|
7
|
-
import type { InstrumentationEvents } from "#public/instrumentation/index.js";
|
|
8
7
|
export interface BuildTelemetryRuntimeContextInput {
|
|
9
8
|
readonly capturesContent: boolean;
|
|
10
9
|
readonly context?: InstrumentationRuntimeContextSnapshot;
|
|
@@ -17,7 +16,6 @@ export interface BuildTelemetryRuntimeContextInput {
|
|
|
17
16
|
};
|
|
18
17
|
readonly providerResolvers?: readonly RuntimeContextResolver[];
|
|
19
18
|
readonly session: HarnessSession;
|
|
20
|
-
readonly stepStartedResolver: InstrumentationEvents["step.started"];
|
|
21
19
|
}
|
|
22
20
|
export interface InstrumentationRuntimeContextSnapshot {
|
|
23
21
|
readonly channel?: ChannelInstrumentationProjection;
|
|
@@ -29,8 +27,7 @@ export declare function snapshotInstrumentationRuntimeContext(context: AlsContex
|
|
|
29
27
|
/**
|
|
30
28
|
* Builds per-model-call runtime context for AI SDK telemetry spans.
|
|
31
29
|
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* instrumentation cannot compromise the normal turn flow.
|
|
30
|
+
* Runtime context is parsed defensively. Invalid results, reserved `eve.*`
|
|
31
|
+
* keys, and callback failures are warning-only.
|
|
35
32
|
*/
|
|
36
33
|
export declare function buildTelemetryRuntimeContext(input: BuildTelemetryRuntimeContextInput): Record<string, unknown> | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createLogger,formatError}from"#internal/logging.js";import{normalizeInstrumentationChannelKind,resolveInstrumentationProjection}from"#internal/instrumentation.js";import{contextStorage}from"#context/container.js";import{AuthKey,ChannelInstrumentationKey,InitiatorAuthKey,ParentSessionKey}from"#context/keys.js";import{
|
|
1
|
+
import{createLogger,formatError}from"#internal/logging.js";import{normalizeInstrumentationChannelKind,resolveInstrumentationProjection}from"#internal/instrumentation.js";import{contextStorage}from"#context/container.js";import{AuthKey,ChannelInstrumentationKey,InitiatorAuthKey,ParentSessionKey}from"#context/keys.js";import{parseJsonValue}from"#shared/json.js";const log=createLogger(`harness.instrumentation-runtime-context`);function snapshotInstrumentationRuntimeContext(e){let t=e?.get(AuthKey)??null;return{channel:snapshotForInstrumentation(e?.get(ChannelInstrumentationKey),`channel.instrumentation`),currentAuth:snapshotForInstrumentation(t,`session.auth.current`)??null,initiatorAuth:snapshotForInstrumentation(e?.get(InitiatorAuthKey)??t,`session.auth.initiator`)??null,parent:snapshotForInstrumentation(e?.get(ParentSessionKey),`session.parent`)}}function buildTelemetryRuntimeContext(e){if(!(e.providerResolvers!==void 0&&e.providerResolvers.length>0))return;let t=resolveProviderRuntimeContext(e),n=(e.context??snapshotInstrumentationRuntimeContext(contextStorage.getStore())).channel;return{...t,"eve.channel.kind":normalizeInstrumentationChannelKind(n?.kind),"eve.environment":e.environment,"eve.session.id":e.session.sessionId,"eve.step.index":String(e.emissionState.stepIndex),"eve.turn.id":e.emissionState.turnId,"eve.turn.sequence":String(e.emissionState.sequence),"eve.version":e.eveVersion}}function buildInstrumentationStepStartedInput(e){let t=e.context??snapshotInstrumentationRuntimeContext(contextStorage.getStore()),n=t.channel;return{channel:{kind:normalizeInstrumentationChannelKind(n?.kind),metadata:snapshotForInstrumentation(n?.metadata,`channel.metadata`)??{}},modelInput:e.capturesContent?snapshotForInstrumentation(e.modelInput,`modelInput`)??{instructions:void 0,messages:[]}:{instructions:void 0,messages:[]},session:{auth:projectSessionAuth(t),id:e.session.sessionId,parent:t.parent},step:{index:e.emissionState.stepIndex},turn:{id:e.emissionState.turnId,sequence:e.emissionState.sequence}}}function filterAuthoredRuntimeContext(e,t){let n={};for(let[r,i]of Object.entries(e)){if(r.startsWith(`eve.`)){log.warn(`ignoring reserved instrumentation runtime context key`,{key:r,source:t});continue}n[r]=i}return Object.keys(n).length>0?n:void 0}function resolveProviderRuntimeContext(e){let t=e.providerResolvers;if(t===void 0||t.length===0)return;let n={},r=!1;for(let i of t){let t=`provider.runtimeContext`,a=resolveInstrumentationProjection({invoke:()=>{let t=buildInstrumentationStepStartedInput(e);return i(t)},log,source:t});if(a===void 0)continue;let o=filterAuthoredRuntimeContext(a,t);o!==void 0&&(Object.assign(n,o),r=!0)}return r?n:void 0}function projectSessionAuth(e){return{current:e.currentAuth,initiator:e.initiatorAuth}}function snapshotForInstrumentation(e,t){if(e!==void 0)try{return parseJsonValue(e)}catch(e){log.warn(`dropping non-serializable instrumentation snapshot`,{error:formatError(e),source:t});return}}export{buildTelemetryRuntimeContext,snapshotInstrumentationRuntimeContext};
|