eve 0.78.0 → 0.79.1
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 +43 -0
- package/dist/src/approval/definition.d.ts +42 -0
- package/dist/src/chunks/{use-eve-agent-BSYe_Re7.js → use-eve-agent-Ch-Q-s12.js} +43 -13
- package/dist/src/chunks/{use-eve-agent-B8brxCk-.js → use-eve-agent-Vsl-S0yI.js} +43 -13
- package/dist/src/cli/commands/trace-detail.d.ts +2 -2
- package/dist/src/cli/commands/trace-detail.js +1 -1
- package/dist/src/cli/commands/trace.d.ts +1 -1
- package/dist/src/cli/commands/trace.js +1 -1
- package/dist/src/cli/dev/tui/traces/trace-conversation.d.ts +1 -1
- package/dist/src/cli/dev/tui/traces/trace-conversation.js +1 -1
- package/dist/src/cli/dev/tui/traces/trace-store.d.ts +1 -1
- package/dist/src/cli/dev/tui/traces/trace-store.js +1 -1
- package/dist/src/cli/dev/tui/traces/trace-view.d.ts +1 -1
- package/dist/src/cli/dev/tui/traces/trace-view.js +1 -1
- package/dist/src/cli/dev/tui/traces/trace-viewer-state.d.ts +1 -1
- package/dist/src/client/abort-signal.d.ts +2 -0
- package/dist/src/client/abort-signal.js +1 -0
- package/dist/src/client/conversation-client.d.ts +2 -0
- package/dist/src/client/conversation-client.js +1 -1
- package/dist/src/client/eve-agent-store-state.d.ts +9 -0
- package/dist/src/client/eve-agent-store.js +1 -1
- package/dist/src/client/ndjson.js +1 -1
- package/dist/src/client/open-stream.js +1 -1
- package/dist/src/client/session-turn-dispatch.js +1 -1
- package/dist/src/client/session-utils.js +1 -1
- package/dist/src/client/session.js +1 -1
- package/dist/src/compiled/.vendor-stamp.json +3 -1
- package/dist/src/compiled/@eve/tracing/adapters/agent-transport.d.ts +8 -0
- package/dist/src/compiled/@eve/tracing/adapters/ai-sdk-payload.d.ts +15 -0
- package/dist/src/compiled/@eve/tracing/adapters/ai-sdk-telemetry.d.ts +14 -0
- package/dist/src/{tracing/agent-span-id-generator.d.ts → compiled/@eve/tracing/adapters/otel-ids.d.ts} +1 -1
- package/dist/src/compiled/@eve/tracing/adapters/otel.d.ts +33 -0
- package/dist/src/{tracing/agent-otel-content.d.ts → compiled/@eve/tracing/adapters/serialization.d.ts} +9 -3
- package/dist/src/compiled/@eve/tracing/agent-tracing.d.ts +84 -0
- package/dist/src/compiled/@eve/tracing/ai-sdk.d.ts +7 -0
- package/dist/src/compiled/@eve/tracing/ai-sdk.js +1 -0
- package/dist/src/compiled/@eve/tracing/capture.d.ts +5 -0
- package/dist/src/compiled/@eve/tracing/core/activation.d.ts +3 -0
- package/dist/src/compiled/@eve/tracing/core/attributes.d.ts +14 -0
- package/dist/src/{tracing/content-attributes.d.ts → compiled/@eve/tracing/core/content-policy.d.ts} +1 -1
- package/dist/src/compiled/@eve/tracing/core/context.d.ts +3 -0
- package/dist/src/compiled/@eve/tracing/core/delegation.d.ts +13 -0
- package/dist/src/compiled/@eve/tracing/core/mcp.d.ts +24 -0
- package/dist/src/compiled/@eve/tracing/core/scopes.d.ts +59 -0
- package/dist/src/compiled/@eve/tracing/core/snapshot.d.ts +7 -0
- package/dist/src/compiled/@eve/tracing/core/span-kinds.d.ts +12 -0
- package/dist/src/compiled/@eve/tracing/core/types.d.ts +297 -0
- package/dist/src/compiled/@eve/tracing/core/writer.d.ts +15 -0
- package/dist/src/compiled/@eve/tracing/delegation.d.ts +2 -0
- package/dist/src/compiled/@eve/tracing/delegation.js +1 -0
- package/dist/src/compiled/@eve/tracing/index.d.ts +6 -0
- package/dist/src/compiled/@eve/tracing/index.js +1 -0
- package/dist/src/compiled/@eve/tracing/operations.d.ts +96 -0
- package/dist/src/compiled/@eve/tracing/otel.d.ts +12 -0
- package/dist/src/compiled/@eve/tracing/otel.js +1 -0
- package/dist/src/compiled/@opentelemetry/api/index.d.ts +4 -0
- package/dist/src/compiled/@workflow/world-vercel/index.js +7 -7
- package/dist/src/compiled/_chunks/workflow/delegation-BqhZ398D.js +1 -0
- package/dist/src/compiled/_chunks/workflow/mcp-C01bDEX-.js +5 -0
- package/dist/src/compiler/extension-compatibility.d.ts +6 -6
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/compiler/project-sources.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/context/memory-tools.js +1 -1
- package/dist/src/evals/assertions/collector.d.ts +4 -1
- package/dist/src/evals/assertions/collector.js +1 -1
- package/dist/src/evals/context.js +1 -1
- package/dist/src/evals/index.d.ts +1 -1
- package/dist/src/evals/runner/artifacts.js +1 -1
- package/dist/src/evals/runner/reporters/assertion-diagnostics.js +2 -2
- package/dist/src/evals/runner/reporters/assertion-scores.d.ts +13 -2
- package/dist/src/evals/runner/reporters/assertion-scores.js +1 -1
- package/dist/src/evals/runner/reporters/braintrust.js +1 -1
- package/dist/src/evals/runner/reporters/console.js +1 -1
- package/dist/src/evals/runner/reporters/datadog.js +2 -2
- package/dist/src/evals/runner/reporters/junit.js +1 -1
- package/dist/src/evals/runner/verdict.d.ts +2 -2
- package/dist/src/evals/runner/verdict.js +1 -1
- package/dist/src/evals/types.d.ts +22 -6
- package/dist/src/eve-channel/index.js +1 -1
- package/dist/src/eve-channel/request.js +1 -1
- package/dist/src/eve-channel/stream-headers.d.ts +1 -0
- package/dist/src/eve-channel/stream-headers.js +1 -0
- package/dist/src/execution/agent-sessions/context.d.ts +1 -1
- package/dist/src/execution/agent-sessions/context.js +1 -1
- package/dist/src/execution/agent-sessions/remote.js +1 -1
- package/dist/src/execution/agent-sessions/steps.js +1 -1
- package/dist/src/execution/authorization-callback-match.d.ts +2 -2
- package/dist/src/execution/authorization-callback-match.js +1 -1
- package/dist/src/execution/cancelled-model-call-batch.js +1 -1
- package/dist/src/execution/catalog/connection-entry.js +1 -1
- package/dist/src/execution/durable-session-store.js +1 -1
- package/dist/src/execution/dynamic-workflow/tool.js +1 -1
- package/dist/src/execution/eve-workflow-attributes.js +1 -1
- package/dist/src/execution/forward-session-input.js +1 -1
- package/dist/src/execution/invoke-tool.d.ts +1 -1
- package/dist/src/execution/invoke-tool.js +1 -1
- package/dist/src/execution/proxied-deliver-step.js +1 -1
- package/dist/src/execution/publish-session-events.d.ts +13 -2
- package/dist/src/execution/publish-session-events.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel-create-sdk.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel-credentials.d.ts +2 -0
- package/dist/src/execution/sandbox/bindings/vercel-credentials.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel-lifecycle.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel-lookup.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel.d.ts +3 -6
- package/dist/src/execution/sandbox/bindings/vercel.js +1 -1
- package/dist/src/execution/session/checkpoint-migrations.js +1 -1
- package/dist/src/execution/session/handoff-steps.js +1 -1
- package/dist/src/execution/session/handoff.d.ts +1 -1
- package/dist/src/execution/session/handoff.js +1 -1
- package/dist/src/execution/session/input-queue.d.ts +13 -6
- package/dist/src/execution/session/input-queue.js +1 -1
- package/dist/src/execution/session/pending-turn-state.js +1 -1
- package/dist/src/execution/session/turn-step.js +1 -1
- package/dist/src/execution/session/turn.d.ts +4 -1
- package/dist/src/execution/session/turn.js +1 -1
- package/dist/src/execution/tasks/steps.d.ts +1 -1
- package/dist/src/execution/tasks/steps.js +1 -1
- 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/workflow/answer.d.ts +1 -1
- package/dist/src/execution/tools/workflow/withdraw-step.d.ts +2 -2
- package/dist/src/execution/tools/workflow/withdraw-step.js +1 -1
- package/dist/src/execution/workflow-callback-url.d.ts +10 -1
- package/dist/src/execution/workflow-callback-url.js +1 -1
- package/dist/src/execution/workflow-runtime.js +1 -1
- package/dist/src/harness/authorization.d.ts +3 -13
- package/dist/src/harness/authorization.js +1 -1
- package/dist/src/harness/compaction/step.d.ts +1 -0
- package/dist/src/harness/compaction/step.js +1 -1
- package/dist/src/harness/coordination.js +1 -1
- package/dist/src/harness/execute-tool.d.ts +2 -2
- package/dist/src/harness/hitl/approvals.d.ts +1 -1
- package/dist/src/harness/hitl/approvals.js +1 -1
- package/dist/src/harness/hitl/approved-calls.d.ts +3 -0
- package/dist/src/harness/hitl/approved-calls.js +1 -1
- package/dist/src/harness/hitl/candidates.d.ts +13 -0
- package/dist/src/harness/hitl/candidates.js +1 -1
- package/dist/src/harness/hitl/coordinator.js +1 -1
- package/dist/src/harness/hitl/index.d.ts +2 -5
- package/dist/src/harness/hitl/index.js +1 -1
- package/dist/src/harness/hitl/intake.js +1 -1
- package/dist/src/harness/{proxy-input-requests.d.ts → hitl/relays.d.ts} +3 -39
- package/dist/src/harness/hitl/relays.js +1 -0
- package/dist/src/harness/hitl/requests.d.ts +64 -0
- package/dist/src/harness/hitl/requests.js +1 -0
- package/dist/src/harness/hitl/sign-ins.d.ts +9 -0
- package/dist/src/harness/hitl/sign-ins.js +1 -0
- package/dist/src/harness/inline-tool-authorization.js +1 -1
- package/dist/src/harness/input-extraction.js +1 -1
- package/dist/src/harness/model-call/call.js +1 -1
- package/dist/src/harness/model-call/model.d.ts +3 -1
- package/dist/src/harness/model-call/model.js +1 -1
- package/dist/src/harness/session-machine/commit.d.ts +14 -3
- package/dist/src/harness/session-machine/commit.js +1 -1
- package/dist/src/harness/session-machine/transitions.d.ts +16 -0
- package/dist/src/harness/session-machine/transitions.js +1 -1
- package/dist/src/instrumentation/ai-sdk-hook-bridge.js +1 -1
- package/dist/src/instrumentation/dispatch.js +1 -1
- package/dist/src/instrumentation/memory.d.ts +1 -4
- package/dist/src/instrumentation/memory.js +1 -1
- package/dist/src/instrumentation/principal-summary.js +1 -1
- package/dist/src/instrumentation/providers.js +1 -1
- package/dist/src/instrumentation/runtime-context.d.ts +1 -1
- package/dist/src/instrumentation/runtime.d.ts +4 -3
- package/dist/src/instrumentation/runtime.js +1 -1
- package/dist/src/instrumentation/session-init.js +1 -1
- package/dist/src/internal/application/stamped-package-version.js +1 -1
- package/dist/src/internal/authored-definition/approval.d.ts +3 -1
- package/dist/src/internal/authored-definition/approval.js +1 -1
- package/dist/src/internal/authored-definition/schema-backed.js +1 -1
- package/dist/src/internal/authored-definition/source-identity.d.ts +6 -0
- package/dist/src/internal/authored-definition/source-identity.js +1 -1
- package/dist/src/internal/authored-module-map-loader.js +1 -1
- package/dist/src/internal/helpers/markdown.js +1 -1
- package/dist/src/internal/logging.js +1 -1
- package/dist/src/internal/nitro/host/local-tracing-runtime-plugin.js +1 -1
- package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
- package/dist/src/internal/nitro/routes/channel-request-instrumentation.d.ts +10 -31
- package/dist/src/internal/nitro/routes/channel-request-instrumentation.js +1 -1
- package/dist/src/internal/nitro/routes/route-invoke-tool.d.ts +1 -1
- package/dist/src/internal/workflow/is-inactive-workflow-run-error.d.ts +2 -0
- package/dist/src/internal/workflow/is-inactive-workflow-run-error.js +1 -1
- package/dist/src/internal/workflow-bundle/dynamic-tool-transform.js +1 -1
- package/dist/src/protocol/baggage.d.ts +1 -0
- package/dist/src/protocol/baggage.js +1 -1
- package/dist/src/public/channels/slack/hitl.js +1 -1
- package/dist/src/public/definitions/approval.d.ts +1 -1
- package/dist/src/public/definitions/connections/mcp.js +1 -1
- package/dist/src/public/definitions/connections/openapi.js +1 -1
- package/dist/src/public/instrumentation/otel.d.ts +2 -2
- package/dist/src/public/instrumentation/otel.js +1 -1
- package/dist/src/public/sandbox/vercel.d.ts +2 -0
- package/dist/src/public/tools/approval/index.d.ts +1 -1
- package/dist/src/public/tools/index.d.ts +1 -1
- package/dist/src/public/tools/result.d.ts +10 -7
- package/dist/src/react/use-eve-agent.d.ts +6 -0
- package/dist/src/react/use-eve-agent.js +1 -1
- package/dist/src/runtime/authorization-context.d.ts +5 -0
- package/dist/src/runtime/authorization-context.js +1 -1
- package/dist/src/runtime/connections/mcp-tracing.d.ts +10 -18
- package/dist/src/runtime/connections/mcp-tracing.js +1 -1
- package/dist/src/runtime/connections/openapi-operations.js +1 -1
- package/dist/src/runtime/connections/scoped-authorization.d.ts +6 -0
- package/dist/src/runtime/connections/scoped-authorization.js +1 -1
- package/dist/src/runtime/resolve-connection.js +1 -1
- package/dist/src/runtime/resolve-tool.js +1 -1
- package/dist/src/runtime/types.d.ts +2 -2
- package/dist/src/self-modification/extension/subagents/agent/tools/inspect_trace.d.ts +12 -12
- package/dist/src/self-modification/extension/subagents/agent/tools/inspect_trace.js +1 -1
- package/dist/src/self-modification/extension/subagents/agent/tools/search_traces.d.ts +1 -1
- package/dist/src/self-modification/extension/subagents/agent/tools/search_traces.js +1 -1
- package/dist/src/self-modification/extension/trace-inspection.d.ts +1 -1
- package/dist/src/self-modification/extension/trace-inspection.js +1 -1
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/setup/scaffold/create/web-template.d.ts +1 -1
- package/dist/src/setup/scaffold/create/web-template.js +18 -10
- package/dist/src/shared/git.js +1 -1
- package/dist/src/shared/instrumentation-content.d.ts +1 -1
- package/dist/src/shared/instrumentation-content.js +1 -1
- package/dist/src/shared/instrumentation-decision.d.ts +3 -0
- package/dist/src/shared/instrumentation-decision.js +1 -1
- package/dist/src/shared/skill-package.js +1 -1
- package/dist/src/shared/trace-policy.d.ts +3 -0
- package/dist/src/shared/trace-policy.js +1 -1
- package/dist/src/subagents/adapter.js +1 -1
- package/dist/src/subagents/event-proxy-step.d.ts +1 -1
- package/dist/src/subagents/event-proxy-step.js +1 -1
- package/dist/src/subagents/hitl-proxy.d.ts +1 -1
- package/dist/src/subagents/hitl-proxy.js +1 -1
- package/dist/src/svelte/index.js +1 -1
- package/dist/src/svelte/use-eve-agent.d.ts +6 -0
- package/dist/src/svelte/use-eve-agent.js +1 -1
- package/dist/src/tools/definition.d.ts +41 -4
- package/dist/src/tools/durable-callbacks.d.ts +5 -3
- package/dist/src/tools/durable-callbacks.js +1 -1
- package/dist/src/tools/dynamic.d.ts +2 -2
- package/dist/src/tools/provided/ask-question-workflow.js +1 -1
- package/dist/src/tools/provided/sleep-workflow.js +1 -1
- package/dist/src/tools/workflow-definition.d.ts +2 -2
- package/dist/src/tracing/eve/agent-approval-instrumentation.d.ts +8 -0
- package/dist/src/tracing/eve/agent-approval-instrumentation.js +1 -0
- package/dist/src/tracing/{agent-channel-delivery-instrumentation.d.ts → eve/agent-channel-delivery-instrumentation.d.ts} +1 -1
- package/dist/src/tracing/{agent-channel-delivery-instrumentation.js → eve/agent-channel-delivery-instrumentation.js} +1 -1
- package/dist/src/tracing/eve/agent-invocation-coordinator.js +1 -0
- package/dist/src/tracing/eve/agent-memory-instrumentation.d.ts +12 -0
- package/dist/src/tracing/eve/agent-memory-instrumentation.js +1 -0
- package/dist/src/tracing/{agent-otel-provider.d.ts → eve/agent-otel-provider.d.ts} +6 -8
- package/dist/src/tracing/eve/agent-otel-provider.js +1 -0
- package/dist/src/tracing/eve/agent-tool-instrumentation.d.ts +44 -0
- package/dist/src/tracing/eve/agent-tool-instrumentation.js +1 -0
- package/dist/src/tracing/{agent-trace-context-store.d.ts → eve/agent-trace-context-store.d.ts} +8 -16
- package/dist/src/tracing/eve/agent-trace-context-store.js +1 -0
- package/dist/src/tracing/eve/agent-trace-context.js +1 -0
- package/dist/src/tracing/eve/agent-trace-state.d.ts +75 -0
- package/dist/src/tracing/{batch-span-processor.d.ts → eve/batch-span-processor.d.ts} +5 -1
- package/dist/src/tracing/eve/batch-span-processor.js +1 -0
- package/dist/src/tracing/{content-span-processor.d.ts → eve/content-span-processor.d.ts} +1 -1
- package/dist/src/tracing/eve/content-span-processor.js +1 -0
- package/dist/src/tracing/eve/delegation.d.ts +20 -0
- package/dist/src/tracing/eve/delegation.js +1 -0
- package/dist/src/tracing/eve/gateway.d.ts +17 -0
- package/dist/src/tracing/eve/gateway.js +1 -0
- package/dist/src/tracing/{install-instrumentation-runtime.d.ts → eve/install-instrumentation-runtime.d.ts} +1 -1
- package/dist/src/tracing/eve/install-instrumentation-runtime.js +1 -0
- package/dist/src/tracing/eve/invoke-tool-span.js +1 -0
- package/dist/src/tracing/eve/mcp.d.ts +29 -0
- package/dist/src/tracing/eve/mcp.js +1 -0
- package/dist/src/tracing/eve/metadata.d.ts +7 -0
- package/dist/src/tracing/eve/metadata.js +1 -0
- package/dist/src/tracing/eve/operation-input.d.ts +30 -0
- package/dist/src/tracing/eve/operation-input.js +1 -0
- package/dist/src/tracing/eve/otel-configuration.d.ts +70 -0
- package/dist/src/tracing/eve/otel-configuration.js +1 -0
- package/dist/src/tracing/{otel-declaration.d.ts → eve/otel-declaration.d.ts} +13 -19
- package/dist/src/tracing/eve/otel-declaration.js +1 -0
- package/dist/src/tracing/{otel-registration.d.ts → eve/otel-registration.d.ts} +12 -5
- package/dist/src/tracing/eve/otel-registration.js +1 -0
- package/dist/src/tracing/eve/policy.d.ts +15 -0
- package/dist/src/tracing/eve/policy.js +1 -0
- package/dist/src/tracing/eve/profile.d.ts +7 -0
- package/dist/src/tracing/eve/profile.js +1 -0
- package/dist/src/tracing/eve/session.d.ts +27 -0
- package/dist/src/tracing/eve/session.js +1 -0
- package/dist/src/tracing/{vercel-runtime-span-exporter.d.ts → eve/vercel-runtime-span-exporter.d.ts} +1 -1
- package/dist/src/tracing/local/agent-trace-span-processor.js +1 -0
- package/dist/src/tracing/local/inspection.d.ts +15 -0
- package/dist/src/tracing/local/inspection.js +1 -0
- package/dist/src/tracing/{local-instrumentation-runtime.d.ts → local/instrumentation-runtime.d.ts} +1 -1
- package/dist/src/tracing/local/instrumentation-runtime.js +1 -0
- package/dist/src/tracing/{local-trace-analysis.d.ts → local/trace-analysis.d.ts} +2 -2
- package/dist/src/tracing/{local-trace-analysis.js → local/trace-analysis.js} +1 -1
- package/dist/src/tracing/{local-trace-operations.d.ts → local/trace-operations.d.ts} +1 -1
- package/dist/src/tracing/{local-trace-query.d.ts → local/trace-query.d.ts} +1 -1
- package/dist/src/tracing/local/trace-reader.js +1 -0
- package/dist/src/tracing/{local-trace-retention.js → local/trace-retention.js} +1 -1
- package/dist/src/tracing/{local-trace-span-processor.js → local/trace-span-processor.js} +1 -1
- package/dist/src/tracing/{local-trace-summary.d.ts → local/trace-summary.d.ts} +1 -1
- package/dist/src/tracing/local/trace-summary.js +1 -0
- package/dist/src/tracing/{local-traces.d.ts → local/traces.d.ts} +1 -1
- package/dist/src/tracing/local/traces.js +1 -0
- package/dist/src/vue/index.js +1 -1
- package/dist/src/vue/use-eve-agent.d.ts +6 -0
- package/dist/src/vue/use-eve-agent.js +1 -1
- package/docs/agent-config.md +48 -0
- package/docs/channels/eve.mdx +2 -0
- package/docs/connections/mcp.mdx +22 -1
- package/docs/connections/overview.mdx +9 -6
- package/docs/evals/assertions.mdx +50 -3
- package/docs/evals/overview.mdx +2 -1
- package/docs/evals/reporters.mdx +3 -1
- package/docs/guides/frontend/overview.mdx +10 -1
- package/docs/guides/hooks.md +2 -2
- package/docs/guides/instrumentation/otel.mdx +3 -0
- package/docs/reference/cli.md +1 -1
- package/docs/reference/typescript-api.md +7 -6
- package/docs/sandbox/vercel.mdx +9 -0
- package/docs/skills.mdx +1 -1
- package/docs/tools/human-in-the-loop.md +44 -1
- package/package.json +2 -1
- package/dist/src/harness/proxy-input-requests.js +0 -1
- package/dist/src/tracing/agent-approval-instrumentation.d.ts +0 -11
- package/dist/src/tracing/agent-approval-instrumentation.js +0 -1
- package/dist/src/tracing/agent-invocation-coordinator.js +0 -1
- package/dist/src/tracing/agent-memory-instrumentation.d.ts +0 -16
- package/dist/src/tracing/agent-memory-instrumentation.js +0 -1
- package/dist/src/tracing/agent-otel-attributes.d.ts +0 -10
- package/dist/src/tracing/agent-otel-attributes.js +0 -1
- package/dist/src/tracing/agent-otel-content.js +0 -4
- package/dist/src/tracing/agent-otel-provider.js +0 -2
- package/dist/src/tracing/agent-otel-runtime-context.d.ts +0 -36
- package/dist/src/tracing/agent-otel-runtime-context.js +0 -1
- package/dist/src/tracing/agent-otel-session-context.d.ts +0 -22
- package/dist/src/tracing/agent-otel-session-context.js +0 -1
- package/dist/src/tracing/agent-otel-turn-state.d.ts +0 -6
- package/dist/src/tracing/agent-otel-turn-state.js +0 -1
- package/dist/src/tracing/agent-otel-usage.d.ts +0 -10
- package/dist/src/tracing/agent-otel-usage.js +0 -1
- package/dist/src/tracing/agent-span-contract.d.ts +0 -34
- package/dist/src/tracing/agent-span-contract.js +0 -1
- package/dist/src/tracing/agent-span-error.js +0 -1
- package/dist/src/tracing/agent-span-id-generator.js +0 -1
- package/dist/src/tracing/agent-span-naming.d.ts +0 -1
- package/dist/src/tracing/agent-span-naming.js +0 -1
- package/dist/src/tracing/agent-tool-instrumentation.d.ts +0 -40
- package/dist/src/tracing/agent-tool-instrumentation.js +0 -1
- package/dist/src/tracing/agent-tool-span-context.d.ts +0 -16
- package/dist/src/tracing/agent-tool-span-context.js +0 -1
- package/dist/src/tracing/agent-trace-context-codec.d.ts +0 -15
- package/dist/src/tracing/agent-trace-context-codec.js +0 -1
- package/dist/src/tracing/agent-trace-context-store.js +0 -1
- package/dist/src/tracing/agent-trace-context.js +0 -1
- package/dist/src/tracing/agent-trace-span-processor.js +0 -1
- package/dist/src/tracing/agent-trace-state.d.ts +0 -91
- package/dist/src/tracing/batch-span-processor.js +0 -1
- package/dist/src/tracing/bounded-error.d.ts +0 -1
- package/dist/src/tracing/bounded-error.js +0 -1
- package/dist/src/tracing/content-attributes.js +0 -1
- package/dist/src/tracing/content-span-processor.js +0 -1
- package/dist/src/tracing/error-content-context.d.ts +0 -3
- package/dist/src/tracing/error-content-context.js +0 -1
- package/dist/src/tracing/install-instrumentation-runtime.js +0 -1
- package/dist/src/tracing/invoke-tool-span.js +0 -1
- package/dist/src/tracing/local-instrumentation-runtime.js +0 -1
- package/dist/src/tracing/local-trace-reader.js +0 -1
- package/dist/src/tracing/local-trace-summary.js +0 -1
- package/dist/src/tracing/local-traces.js +0 -1
- package/dist/src/tracing/otel-declaration.js +0 -1
- package/dist/src/tracing/otel-registration.js +0 -1
- package/dist/src/tracing/sampled-trace.d.ts +0 -4
- package/dist/src/tracing/sampled-trace.js +0 -1
- package/dist/src/tracing/suppress-tracing.d.ts +0 -2
- package/dist/src/tracing/suppress-tracing.js +0 -1
- package/dist/src/tracing/telemetry-budget.d.ts +0 -3
- package/dist/src/tracing/telemetry-budget.js +0 -1
- /package/dist/src/{tracing/agent-span-error.d.ts → compiled/@eve/tracing/adapters/otel-error.d.ts} +0 -0
- /package/dist/src/tracing/{agent-invocation-coordinator.d.ts → eve/agent-invocation-coordinator.d.ts} +0 -0
- /package/dist/src/tracing/{agent-trace-context.d.ts → eve/agent-trace-context.d.ts} +0 -0
- /package/dist/src/tracing/{agent-trace-state.js → eve/agent-trace-state.js} +0 -0
- /package/dist/src/tracing/{channel-audience-context.d.ts → eve/channel-audience-context.d.ts} +0 -0
- /package/dist/src/tracing/{channel-audience-context.js → eve/channel-audience-context.js} +0 -0
- /package/dist/src/tracing/{conversation-context.d.ts → eve/conversation-context.d.ts} +0 -0
- /package/dist/src/tracing/{conversation-context.js → eve/conversation-context.js} +0 -0
- /package/dist/src/tracing/{invoke-tool-span.d.ts → eve/invoke-tool-span.d.ts} +0 -0
- /package/dist/src/tracing/{span-export-policy.d.ts → eve/span-export-policy.d.ts} +0 -0
- /package/dist/src/tracing/{span-export-policy.js → eve/span-export-policy.js} +0 -0
- /package/dist/src/tracing/{vercel-runtime-span-exporter.js → eve/vercel-runtime-span-exporter.js} +0 -0
- /package/dist/src/tracing/{agent-trace-span-processor.d.ts → local/agent-trace-span-processor.d.ts} +0 -0
- /package/dist/src/tracing/{local-trace-discovery-index.d.ts → local/trace-discovery-index.d.ts} +0 -0
- /package/dist/src/tracing/{local-trace-discovery-index.js → local/trace-discovery-index.js} +0 -0
- /package/dist/src/tracing/{local-trace-operations.js → local/trace-operations.js} +0 -0
- /package/dist/src/tracing/{local-trace-query.js → local/trace-query.js} +0 -0
- /package/dist/src/tracing/{local-trace-reader.d.ts → local/trace-reader.d.ts} +0 -0
- /package/dist/src/tracing/{local-trace-retention.d.ts → local/trace-retention.d.ts} +0 -0
- /package/dist/src/tracing/{local-trace-span-processor.d.ts → local/trace-span-processor.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isObject}from"#shared/guards.js";import{expectBoolean,expectFunction,expectObjectRecord,expectOnlyKnownKeys,expectString}from"#internal/authored-module.js";import{UNSPECIFIED_INPUT_SCHEMA,serializeInputSchema,serializeModelInputSchema,serializeOutputSchema,toInputSchema}from"#tools/schema.js";import{WEB_SEARCH_FALLBACK_PROVIDERS,WEB_SEARCH_PROVIDERS}from"#shared/web-search.js";import{readWorkflowFunctionId}from"#internal/workflow/reference.js";import{assertResolverOnlyDynamicSentinel,isDynamicSentinel}from"#dynamic/definition.js";import{isWorkflowToolDefinition,readWorkflowToolEntryPoints}from"#tools/workflow-definition.js";import{shouldRebindDynamicCallbacks}from"#internal/dynamic-tool-rebind.js";import{isDisabledToolSentinel}from"#tools/definition.js";import{TASK_ID_INPUT,withTaskIdSchema}from"#execution/tasks/task-id-input.js";import{
|
|
1
|
+
import{isObject}from"#shared/guards.js";import{expectBoolean,expectFunction,expectObjectRecord,expectOnlyKnownKeys,expectString}from"#internal/authored-module.js";import{UNSPECIFIED_INPUT_SCHEMA,serializeInputSchema,serializeModelInputSchema,serializeOutputSchema,toInputSchema}from"#tools/schema.js";import{WEB_SEARCH_FALLBACK_PROVIDERS,WEB_SEARCH_PROVIDERS}from"#shared/web-search.js";import{readWorkflowFunctionId}from"#internal/workflow/reference.js";import{assertResolverOnlyDynamicSentinel,isDynamicSentinel}from"#dynamic/definition.js";import{isWorkflowToolDefinition,readWorkflowToolEntryPoints}from"#tools/workflow-definition.js";import{shouldRebindDynamicCallbacks}from"#internal/dynamic-tool-rebind.js";import{isDisabledToolSentinel}from"#tools/definition.js";import{TASK_ID_INPUT,withTaskIdSchema}from"#execution/tasks/task-id-input.js";import{normalizeToolApproval}from"#internal/authored-definition/approval.js";import{isWebSearchToolDefinition}from"#tools/provided/web-search.js";import{readToolBehavior}from"#tools/behavior.js";import{readWorkflowProgramOptions}from"#tools/workflow-program-input.js";function normalizeToolDefinition(e,t){if(isDynamicSentinel(e))return assertResolverOnlyDynamicSentinel(e,t),{kind:`dynamic-tool`,eventNames:Object.keys(e.events),rebindMissingCallbacks:shouldRebindDynamicCallbacks(e)};if(isDisabledToolSentinel(e))return{kind:`disabled`};if(isWebSearchToolDefinition(e)){let n=expectObjectRecord(e,t);if(n.deferred!==void 0)throw Error(`${t} Provider tools can't be deferred: the provider has to see their definition. Remove "deferred".`);expectOnlyKnownKeys(n,[`fallback`,`kind`,`provider`],t);let r=expectOneOf(n.provider,WEB_SEARCH_PROVIDERS,`provider`,t);if(n.fallback===void 0)return{kind:`web-search-tool`,selection:{provider:r}};if(r!==`native`)throw Error(`${t} "fallback" applies only to provider "native"; provider "${r}" serves every AI Gateway model.`);return{kind:`web-search-tool`,selection:{fallback:expectOneOf(n.fallback,WEB_SEARCH_FALLBACK_PROVIDERS,`fallback`,t),provider:r}}}let n=expectObjectRecord(e,t),r=isWorkflowToolDefinition(e)?readCompiledWorkflowEntry(n,t):void 0;if(r===void 0&&readWorkflowFunctionId(n.execute)!==void 0)throw Error(`${t} Workflow executors require defineWorkflowTool() from "eve/tools". Replace defineTool() or the bare tool object with defineWorkflowTool().`);if(r!==void 0&&n.endsTurn!==void 0)throw Error(`${t} "endsTurn" is not supported on defineWorkflowTool(). Workflow tools resume the turn when they finish; use defineTool() for a tool that ends the turn.`);expectOnlyKnownKeys(n,[`availableInSubagents`,`deferred`,`endsTurn`,`label`,`auth`,`description`,`execute`,`inputSchema`,`approval`,`approvalKey`,`outputSchema`,`toModelOutput`,...r===void 0?[]:[r.entryPoint]],t);let i=n.inputSchema===void 0?null:serializeInputSchema(n.inputSchema);r?.entryPoint===`serve`&&assertNoOwnTaskIdInput(i,t);let a=serializeOutputSchema(n.outputSchema),o=readToolBehavior(e),s=readWorkflowProgramOptions(e),c=r!==void 0||n.execute!==void 0;!c&&o?.handling?.kind!==`dispatch`&&expectFunction(n.execute,t);let l={availableInSubagents:n.availableInSubagents===void 0?void 0:expectBoolean(n.availableInSubagents,t),deferred:n.deferred===void 0?void 0:expectBoolean(n.deferred,t),description:expectString(n.description,t),endsTurn:n.endsTurn===void 0||typeof n.endsTurn==`boolean`?n.endsTurn:expectFunction(n.endsTurn,t),hasApproval:n.approval!==void 0,hasExecute:c,hasModelOutputProjection:n.toModelOutput!==void 0,inputSchema:i,modelInputSchema:modelInputSchemaOf(n.inputSchema,r?.entryPoint===`serve`||o?.handling?.kind===`dispatch`)};if(o!==void 0&&(l.behavior=o),s!==void 0&&(l.workflowProgram=s),r===void 0?c&&(l.execute=expectFunction(n.execute,t)):l.workflow=r,a!==void 0&&(l.outputSchema=a),n.label!==void 0){let e=expectObjectRecord(n.label,t);expectOnlyKnownKeys(e,[`start`,`complete`,`delta`],t),expectFunction(e.start,t),e.complete!==void 0&&expectFunction(e.complete,t),e.delta!==void 0&&expectFunction(e.delta,t)}if(n.approval!==void 0&&normalizeToolApproval(n.approval,t),n.approvalKey!==void 0&&expectFunction(n.approvalKey,t),n.toModelOutput!==void 0&&expectFunction(n.toModelOutput,t),n.auth!==void 0){let e=expectObjectRecord(n.auth,t);expectFunction(e.getToken,t)}return{kind:`tool`,definition:l}}function readCompiledWorkflowEntry(e,t){let[n]=readWorkflowToolEntryPoints(e),r=n===void 0?void 0:readWorkflowFunctionId(e[n]);if(n===void 0||r===void 0)throw Error(`${t} defineWorkflowTool() requires a compiled workflow executor. Start execute, task, or serve with "use workflow" and export defineWorkflowTool() as the default export of a static tool module.`);return{entryPoint:n,workflowId:r}}function modelInputSchemaOf(e,t){let n=toInputSchema(e)??UNSPECIFIED_INPUT_SCHEMA;return serializeModelInputSchema(t?withTaskIdSchema(n):n)}function assertNoOwnTaskIdInput(e,t){let n=e?.properties;if(isObject(n)&&TASK_ID_INPUT in n)throw Error(`${t} inputSchema declares "${TASK_ID_INPUT}", which eve adds to a serve tool's model input to send a call to a running task. Rename the field.`)}function expectOneOf(e,t,n,r){let i=expectString(e,r);if(!t.includes(i))throw Error(`${r} Expected "${n}" to be one of: ${t.join(`, `)}.`);return i}export{normalizeToolDefinition};
|
|
@@ -12,6 +12,12 @@ export type RegisteredDefinitionSource = {
|
|
|
12
12
|
};
|
|
13
13
|
/** Stamps the authoring-time fallback key used for copies eve never loaded. */
|
|
14
14
|
export declare function stampDefinitionKey(definition: object, key: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* Fallback key shared by the connection factories and the resolver. The
|
|
17
|
+
* description keeps connections on one host, such as Jira and Confluence,
|
|
18
|
+
* distinct.
|
|
19
|
+
*/
|
|
20
|
+
export declare function connectionDefinitionKey(url: string, description: string): string;
|
|
15
21
|
/**
|
|
16
22
|
* Records a definition object eve loaded under one mounted name. The same
|
|
17
23
|
* object can be mounted more than once, for example when a subagent re-exports
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const DEFINITION_KEY=Symbol.for(`eve.definition-source-key`),RESOLVED_REGISTRY_SYMBOL=Symbol.for(`eve.resolved-definition-sources`),FALLBACK_REGISTRY_SYMBOL=Symbol.for(`eve.fallback-definition-sources`),registryContainer=globalThis;registryContainer[RESOLVED_REGISTRY_SYMBOL]??=new WeakMap,registryContainer[FALLBACK_REGISTRY_SYMBOL]??=new Map;const resolvedSources=registryContainer[RESOLVED_REGISTRY_SYMBOL],fallbackSources=registryContainer[FALLBACK_REGISTRY_SYMBOL];function stampDefinitionKey(e,t){Object.defineProperty(e,DEFINITION_KEY,{configurable:!0,value:t})}function registerDefinitionSource(e,t,n){let r=resolvedSources.get(e);r===void 0||r.kind!==t.kind?resolvedSources.set(e,{kind:t.kind,names:new Set([t.name])}):r.names.add(t.name),n!==void 0&®isterFallbackSource(n,e,t)}function readDefinitionSource(e){let t=resolvedSources.get(e);if(t!==void 0)return t;let n=readDefinitionKey(e);return n===void 0?void 0:fallbackSources.get(n)}function registerFallbackSource(e,t,n){let r=fallbackSources.get(e);if(r===void 0){fallbackSources.set(e,{definitions:new WeakSet([t]),firstEntry:n,kind:n.kind,names:new Set([n.name])});return}if(r.kind!==`ambiguous`){if(r.kind===n.kind&&(r.definitions.has(t)||r.names.has(n.name))){r.definitions.add(t),r.names.add(n.name);return}console.warn([`eve could not assign a unique toolResultFrom identity for ${JSON.stringify(e)}.`,`Conflicting definitions: ${formatDefinitionSourceForWarning(r.firstEntry)} and ${formatDefinitionSourceForWarning(n)}.`,`Multiple authored definitions share that fallback identity, so toolResultFrom will not match through it.`,`Use the original definition object loaded by eve so source-derived identity can be used instead.`].join(` `)),fallbackSources.set(e,{kind:`ambiguous`})}}function readDefinitionKey(e){if(DEFINITION_KEY in e)return e[DEFINITION_KEY]}function formatDefinitionSourceForWarning(e){return e.logicalPath===void 0?`${e.kind} "${e.name}"`:`${e.kind} "${e.name}" from "${e.logicalPath}"`}export{readDefinitionSource,registerDefinitionSource,stampDefinitionKey};
|
|
1
|
+
const DEFINITION_KEY=Symbol.for(`eve.definition-source-key`),RESOLVED_REGISTRY_SYMBOL=Symbol.for(`eve.resolved-definition-sources`),FALLBACK_REGISTRY_SYMBOL=Symbol.for(`eve.fallback-definition-sources`),registryContainer=globalThis;registryContainer[RESOLVED_REGISTRY_SYMBOL]??=new WeakMap,registryContainer[FALLBACK_REGISTRY_SYMBOL]??=new Map;const resolvedSources=registryContainer[RESOLVED_REGISTRY_SYMBOL],fallbackSources=registryContainer[FALLBACK_REGISTRY_SYMBOL];function stampDefinitionKey(e,t){Object.defineProperty(e,DEFINITION_KEY,{configurable:!0,value:t})}function connectionDefinitionKey(e,t){return`connection:${JSON.stringify([e,t])}`}function registerDefinitionSource(e,t,n){let r=resolvedSources.get(e);r===void 0||r.kind!==t.kind?resolvedSources.set(e,{kind:t.kind,names:new Set([t.name])}):r.names.add(t.name),n!==void 0&®isterFallbackSource(n,e,t)}function readDefinitionSource(e){let t=resolvedSources.get(e);if(t!==void 0)return t;let n=readDefinitionKey(e);return n===void 0?void 0:fallbackSources.get(n)}function registerFallbackSource(e,t,n){let r=fallbackSources.get(e);if(r===void 0){fallbackSources.set(e,{definitions:new WeakSet([t]),firstEntry:n,kind:n.kind,names:new Set([n.name])});return}if(r.kind!==`ambiguous`){if(r.kind===n.kind&&(r.definitions.has(t)||r.names.has(n.name))){r.definitions.add(t),r.names.add(n.name);return}console.warn([`eve could not assign a unique toolResultFrom identity for ${JSON.stringify(e)}.`,`Conflicting definitions: ${formatDefinitionSourceForWarning(r.firstEntry)} and ${formatDefinitionSourceForWarning(n)}.`,`Multiple authored definitions share that fallback identity, so toolResultFrom will not match through it.`,`Use the original definition object loaded by eve so source-derived identity can be used instead.`].join(` `)),fallbackSources.set(e,{kind:`ambiguous`})}}function readDefinitionKey(e){if(DEFINITION_KEY in e)return e[DEFINITION_KEY]}function formatDefinitionSourceForWarning(e){return e.logicalPath===void 0?`${e.kind} "${e.name}"`:`${e.kind} "${e.name}" from "${e.logicalPath}"`}export{connectionDefinitionKey,readDefinitionSource,registerDefinitionSource,stampDefinitionKey};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createHash,randomUUID}from"node:crypto";import{
|
|
1
|
+
import{createHash,randomUUID}from"node:crypto";import{mkdir,unlink,writeFile}from"node:fs/promises";import{loadCompiledManifest}from"#runtime/loaders/manifest.js";import{join,relative,resolve}from"node:path";import{pathToFileURL}from"node:url";import{ROOT_COMPILED_AGENT_NODE_ID}from"#compiler/manifest.js";import{collectRuntimeModuleBindingsForManifest,compiledModuleMapSchema,resolveExtensionBindingMountId}from"#compiler/module-map.js";import{memoizeModuleNamespaceFactories}from"#compiler/source-graph.js";import{formatValidationError}from"#runtime/validation.js";import{bundleAuthoredModuleMapForGeneration,loadAuthoredModuleNamespace}from"#internal/authored-module-loader.js";import{loadFrameworkProgrammaticModule}from"#framework/sources/registry.js";import{readMaterializedAuthoredModuleIndex}from"#internal/materialized-authored-modules.js";import{renameWithTransientBusyRetry}from"#shared/rename-with-retry.js";async function loadCompiledModuleMapFromAuthoredSource(e){return await hydrateCompiledModuleMapFromManifest(await loadCompiledManifest({compiledArtifactsSource:e.compiledArtifactsSource}),e.compiledArtifactsSource.appRoot,e.authoredAppRoot)}async function hydrateCompiledModuleMapFromManifest(e,t,n=e.appRoot){let r=await readMaterializedAuthoredModuleIndex(t);if(r!==void 0)return await loadMaterializedCompiledModuleMap({moduleMapPath:r.moduleMap,runtimeAppRoot:t});if([e,...e.subagents.map(e=>e.agent)].some(e=>e.extensionMounts.length>0)){let r=join(t,`.eve`,`compile`,`authored-module-map.mjs`),{code:i}=await bundleAuthoredModuleMapForGeneration({appRoot:n,manifest:e,moduleMapPath:r,resolveExternalPaths:!0}),a=`authored-module-map-${createHash(`sha256`).update(i).digest(`hex`)}.mjs`,o=join(t,`.eve`,`compile`,a);await mkdir(join(t,`.eve`,`compile`),{recursive:!0});let s=`${o}.${randomUUID()}.tmp`;try{await writeFile(s,i,{flag:`wx`}),await renameWithTransientBusyRetry(s,o)}finally{await unlink(s).catch(e=>{if(e.code!==`ENOENT`)throw e})}return await loadMaterializedCompiledModuleMap({moduleMapPath:a,runtimeAppRoot:t,instanceId:randomUUID()})}let i={},a=[{manifest:e,nodeId:ROOT_COMPILED_AGENT_NODE_ID},...[...e.subagents].sort((e,t)=>e.nodeId.localeCompare(t.nodeId)).map(e=>({manifest:e.agent,nodeId:e.nodeId}))];for(let t of a)i[t.nodeId]={modules:await hydrateCompiledNodeScope(t.manifest,n,t=>resolve(n,relative(e.appRoot,t)))};return{nodes:i}}async function hydrateCompiledNodeScope(e,t,n){let r={};for(let{binding:i,sourceId:a}of collectRuntimeModuleBindingsForManifest(e))r[a]=i.backing.kind===`programmatic`?await loadFrameworkProgrammaticModule(i.backing,Object.fromEntries(Object.entries(i.backing.dependencies??{}).map(([e,t])=>[e,r[t]]))):memoizeModuleNamespaceFactories(await loadAuthoredModuleNamespace(n(i.backing.sourcePath),{appRoot:i.owner.kind===`application`?t:void 0,externalDependencies:i.backing.externalDependencies,extension:(()=>{let e=resolveExtensionBindingMountId(i);return e===void 0?void 0:{mountId:e}})()}));return r}async function loadMaterializedCompiledModuleMap(e){let t=join(e.runtimeAppRoot,`.eve`,`compile`,e.moduleMapPath),n=await import(`${pathToFileURL(t).href}?generation=${encodeURIComponent(e.instanceId??e.moduleMapPath)}`),r=compiledModuleMapSchema.safeParse(n.moduleMap??n.default);if(!r.success)throw Error(`Expected materialized authored module map "${t}" to export a valid compiled eve module map. ${formatValidationError(r.error)}`);return r.data}export{loadCompiledModuleMapFromAuthoredSource};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isObject}from"#shared/guards.js";import{normalizeInstructionsDefinition,normalizeScheduleDefinition,normalizeSkillDefinition}from"#internal/authored-definition/core.js";import{hasFrontmatter,parseFrontmatter}from"#internal/helpers/frontmatter.js";import{defineSchedule}from"#public/definitions/schedule.js";import{defineSkill}from"#public/definitions/skill.js";function parseMarkdownDocument(e){if(!hasFrontmatter(e))return{hasFrontmatter:!1,frontmatter:{},markdown:e};let t=parseFrontmatter(e);if(t===void 0)throw Error(`Markdown frontmatter is missing a closing delimiter.`);if(!isObject(t.data))throw Error(`Markdown frontmatter must parse to an object.`);return{hasFrontmatter:!0,frontmatter:t.data,markdown:normalizeFrontmatterMarkdownBody(t.content)}}function lowerInstructionsMarkdown(e){return normalizeInstructionsDefinition({content:e,role:`system`},`Expected authored instructions markdown to match the public eve shape.`)}function lowerScheduleMarkdown(e){let t=parseMarkdownDocument(e);if(!t.hasFrontmatter)throw Error(`Schedule markdown must start with YAML frontmatter declaring "cron".`);if(`run`in t.frontmatter)throw Error('Markdown-form schedules do not support the "run" frontmatter key. Use a TypeScript schedule (`<name>.ts`) to author a handler.');let n={...t.frontmatter,markdown:t.markdown};return defineSchedule(normalizeScheduleDefinition(n,`Expected authored schedule markdown to match the public eve shape.`))}function lowerSkillMarkdown(e,t={}){let n=parseMarkdownDocument(e),r=t.slug;if(r===void 0&&!n.hasFrontmatter)throw Error(`Skill markdown must start with YAML frontmatter.`);let i=n.frontmatter,a=toOptionalString(i.description,`description`),o={description:r===void 0?requireStringFrontmatter(i.description,`description`):a??t.description??deriveFlatSkillDescription(n.markdown,r),markdown:n.markdown};return applyOptionalSkillFrontmatter(o,i),defineSkill(normalizeSkillDefinition(o,`Expected authored skill markdown to match the public eve shape.`))}function normalizeFrontmatterMarkdownBody(e){return e.replace(/^\r?\n/u,``)}function applyOptionalSkillFrontmatter(e,t){let n=toOptionalString(t.license,`license`);n!==void 0&&(e.license=n);let r=toOptionalStringRecord(t.metadata
|
|
1
|
+
import{isObject}from"#shared/guards.js";import{normalizeInstructionsDefinition,normalizeScheduleDefinition,normalizeSkillDefinition}from"#internal/authored-definition/core.js";import{hasFrontmatter,parseFrontmatter}from"#internal/helpers/frontmatter.js";import{defineSchedule}from"#public/definitions/schedule.js";import{defineSkill}from"#public/definitions/skill.js";function parseMarkdownDocument(e){if(!hasFrontmatter(e))return{hasFrontmatter:!1,frontmatter:{},markdown:e};let t=parseFrontmatter(e);if(t===void 0)throw Error(`Markdown frontmatter is missing a closing delimiter.`);if(!isObject(t.data))throw Error(`Markdown frontmatter must parse to an object.`);return{hasFrontmatter:!0,frontmatter:t.data,markdown:normalizeFrontmatterMarkdownBody(t.content)}}function lowerInstructionsMarkdown(e){return normalizeInstructionsDefinition({content:e,role:`system`},`Expected authored instructions markdown to match the public eve shape.`)}function lowerScheduleMarkdown(e){let t=parseMarkdownDocument(e);if(!t.hasFrontmatter)throw Error(`Schedule markdown must start with YAML frontmatter declaring "cron".`);if(`run`in t.frontmatter)throw Error('Markdown-form schedules do not support the "run" frontmatter key. Use a TypeScript schedule (`<name>.ts`) to author a handler.');let n={...t.frontmatter,markdown:t.markdown};return defineSchedule(normalizeScheduleDefinition(n,`Expected authored schedule markdown to match the public eve shape.`))}function lowerSkillMarkdown(e,t={}){let n=parseMarkdownDocument(e),r=t.slug;if(r===void 0&&!n.hasFrontmatter)throw Error(`Skill markdown must start with YAML frontmatter.`);let i=n.frontmatter,a=toOptionalString(i.description,`description`),o={description:r===void 0?requireStringFrontmatter(i.description,`description`):a??t.description??deriveFlatSkillDescription(n.markdown,r),markdown:n.markdown};return applyOptionalSkillFrontmatter(o,i),defineSkill(normalizeSkillDefinition(o,`Expected authored skill markdown to match the public eve shape.`))}function normalizeFrontmatterMarkdownBody(e){return e.replace(/^\r?\n/u,``)}function applyOptionalSkillFrontmatter(e,t){let n=toOptionalString(t.license,`license`);n!==void 0&&(e.license=n);let r=toOptionalStringRecord(t.metadata);r!==void 0&&(e.metadata=r);let i=t.deferred;if(i!=null){if(typeof i!=`boolean`)throw Error(`Expected "deferred" frontmatter to be true or false.`);e.deferred=i}}function toOptionalString(e,t){if(e!=null){if(typeof e!=`string`)throw Error(`Expected "${t}" frontmatter to be a string.`);return e}}function requireStringFrontmatter(e,t){let n=toOptionalString(e,t);if(n===void 0)throw Error(`Missing required "${t}" frontmatter.`);return n}function toOptionalStringRecord(e){if(!isObject(e))return;let t=Object.entries(e);if(!t.some(([,e])=>typeof e!=`string`))return Object.fromEntries(t)}function deriveFlatSkillDescription(e,t){let n=e.split(/\r?\n/u).map(e=>e.trim()).find(e=>e!==``&&!e.startsWith("```"));return n===void 0?`Instructions for the ${t} skill.`:n.replace(/^[#>*\-\s]+/u,``).trim()||`Instructions for the ${t} skill.`}export{lowerInstructionsMarkdown,lowerScheduleMarkdown,lowerSkillMarkdown};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isNonEmptyString,isObject}from"#shared/guards.js";import{inspect}from"node:util";import{SpanStatusCode,trace}from"#compiled/@opentelemetry/api/index.js";import{truncateTelemetryText}from"#tracing/
|
|
1
|
+
import{isNonEmptyString,isObject}from"#shared/guards.js";import{inspect}from"node:util";import{SpanStatusCode,trace}from"#compiled/@opentelemetry/api/index.js";import{truncateTelemetryText}from"#compiled/@eve/tracing/otel.js";import{currentCapture}from"#compiled/@eve/tracing/index.js";import{getErrorMessage}from"#compiled/@ai-sdk/provider/index.js";const LEVEL_SEVERITY={debug:10,info:20,warn:30,error:40};function createLogger(e){return{debug(t,n){write(`debug`,e,t,n)},info(t,n){write(`info`,e,t,n)},warn(t,n){write(`warn`,e,t,n)},error(t,n){write(`error`,e,t,n),recordOnActiveSpan(t,n)}}}function logError(e,t,n,r){let i=formatError(n);return e.error(t,{...r,error:i}),typeof i.errorId==`string`?i.errorId:createErrorId()}function createErrorId(){return crypto.randomUUID()}function formatError(e,t){let n={errorId:t??createErrorId(),message:extractErrorMessage(e)},r=extractErrorName(e);return r!==void 0&&(n.name=r),n.detail=inspectError(e),n}function extractErrorName(e){if(e instanceof Error)return e.name===`Error`?void 0:e.name;if(isObject(e)&&isNonEmptyString(e.name)&&e.name!==`Error`)return e.name}function extractErrorMessage(e){return isObject(e)&&!(e instanceof Error)&&typeof e.message==`string`?e.message:getErrorMessage(e)}function extractErrorId(e){if(isObject(e))return isNonEmptyString(e.errorId)?e.errorId:void 0}function formatErrorHint(e){let t=isObject(e.details)?e.details.name:void 0,n=isNonEmptyString(t)?t:void 0,r=typeof e.message==`string`?e.message.trim():``;return n&&r.length>0?` (${n}: ${truncateForDisplay(r)})`:n?` (${n})`:r.length>0?` (${truncateForDisplay(r)})`:``}function truncateForDisplay(e,t=160){return e.length<=t?e:`${e.slice(0,t-1).trimEnd()}…`}function recordErrorOnSpan(e,t){if(currentCapture()?.recordOutputs===!1){e.setStatus({code:SpanStatusCode.ERROR});return}let n=truncateTelemetryText(t instanceof Error?t.message:getErrorMessage(t),4096),r=t instanceof Error?truncateTelemetryText(t.name,128):`Error`;e.setStatus({code:SpanStatusCode.ERROR,message:n}),e.recordException({message:n,name:r,stack:inspectError(t)})}function resolveThreshold(){let e=process.env.EVE_LOG_LEVEL?.toLowerCase();return e===`debug`||e===`info`||e===`warn`||e===`error`?LEVEL_SEVERITY[e]:LEVEL_SEVERITY.info}function isLogLevelEnabled(e){return LEVEL_SEVERITY[e]>=resolveThreshold()}let logRecordSubscriber;function setLogRecordSubscriber(e){logRecordSubscriber=e}function write(e,t,n,r){if(LEVEL_SEVERITY[e]<resolveThreshold())return;let i=logRecordSubscriber;if(i!==void 0)try{i(r===void 0?{level:e,namespace:t,message:n}:{level:e,namespace:t,message:n,fields:renderFields(r)});return}catch{}let a=e===`error`?console.error:e===`warn`?console.warn:console.log,o=`[eve:${t}] ${n}`;if(r===void 0){a(o);return}a(o,renderFields(r))}function renderFields(e){let t={};for(let[n,r]of Object.entries(e))if(r!==void 0){if(r instanceof Error){t[n]=formatError(r);continue}t[n]=r}return t}function recordOnActiveSpan(e,t){let n=trace.getActiveSpan();if(n===void 0)return;let r=t?.error;if(currentCapture()?.recordOutputs===!1){(r instanceof Error||isFormattedError(r))&&n.setStatus({code:SpanStatusCode.ERROR});return}if(r instanceof Error){recordErrorOnSpan(n,r);return}if(isFormattedError(r)){let e=truncateTelemetryText(r.message,4096);n.setStatus({code:SpanStatusCode.ERROR,message:e}),n.recordException({message:e,name:typeof r.name==`string`?truncateTelemetryText(r.name,128):`Error`,stack:typeof r.detail==`string`?truncateTelemetryText(r.detail,8192):void 0});return}n.addEvent(e,t?renderFields(t):void 0)}function isFormattedError(e){return isObject(e)&&typeof e.errorId==`string`&&typeof e.message==`string`}function inspectError(e){return truncate(inspect(e,{breakLength:1/0,compact:!1,depth:10,maxStringLength:8192}),16384)}function truncate(e,t){if(Buffer.byteLength(e,`utf8`)<=t)return e;let n=e.slice(0,t);for(;Buffer.byteLength(n,`utf8`)>t&&n.length>0;)n=n.slice(0,-1);return`${n}<…truncated>`}export{createErrorId,createLogger,extractErrorId,formatError,formatErrorHint,inspectError,isLogLevelEnabled,logError,recordErrorOnSpan,setLogRecordSubscriber};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{basename}from"node:path";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{DEVELOPMENT_WORKER_APP_ROOT_ENV}from"#internal/workflow/development-world-protocol.js";import{installLocalInstrumentationRuntime}from"#tracing/local
|
|
1
|
+
import{basename}from"node:path";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{DEVELOPMENT_WORKER_APP_ROOT_ENV}from"#internal/workflow/development-world-protocol.js";import{installLocalInstrumentationRuntime}from"#tracing/local/instrumentation-runtime.js";const appRoot=process.env[DEVELOPMENT_WORKER_APP_ROOT_ENV];if(appRoot===void 0)throw Error(`${DEVELOPMENT_WORKER_APP_ROOT_ENV} is required for local tracing.`);const runtime=installLocalInstrumentationRuntime({appRoot,frameworkVersion:resolveInstalledPackageInfo().version,serviceName:basename(appRoot)});function installLocalTracingRuntimePlugin(e){e?.hooks?.hook(`close`,()=>runtime.shutdown())}export{installLocalTracingRuntimePlugin as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createAttachSessionFn}from"#channel/session.js";import{createLogger,logError}from"#internal/logging.js";import{createChannelDeliveryMetadata}from"#channel/delivery-metadata.js";import{createChannelOperations}from"#channel/channel-operations.js";import{getChannelInstrumentationKind}from"#channel/compiled-channel.js";import{createCrossChannelToFn,toCrossChannelTargets}from"#channel/cross-channel-receive.js";import{readVercelProjectLink}from"#internal/vercel/project-link.js";import{getWorld}from"#internal/workflow/runtime.js";import{attachAgentInfoRouteResponse,attachHomeRouteMetadata,attachRemoteAgentStreamHeadersResolver,attachRouteChannelName,attachRouteSessionCreator,attachSkillFileSource}from"#internal/nitro/routes/channel-route-context.js";import{context,trace}from"#compiled/@opentelemetry/api/index.js";import{DEVELOPMENT_WORKFLOW_SECRET_ENV}from"#internal/workflow/development-world-protocol.js";import{readTrustedDevelopmentClientAddress}from"#internal/nitro/dev-client-address.js";import{resolveNitroCompiledArtifactsSource}from"#internal/nitro/routes/runtime-artifacts.js";import{withLocalDevRequestScope}from"#runtime/local-dev-capability.js";import{createAgentDescriptionRouteArgs}from"#channel/agent-description.js";import{traceChannelRequest}from"#internal/nitro/routes/channel-request-instrumentation.js";import{resolveNitroChannelRuntimeBundle}from"#internal/nitro/routes/runtime-stack.js";import{createRouteInvokeTool}from"#internal/nitro/routes/route-invoke-tool.js";import{withVercelOidcProjectResolver}from"#channel/auth/vercel-oidc-project.js";const log=createLogger(`channel.dispatch`);async function dispatchChannelRequest(e,t,n){return await traceChannelRequest({request:e.req,routeKey:t},async r=>{let i=r?.
|
|
1
|
+
import{createAttachSessionFn}from"#channel/session.js";import{createLogger,logError}from"#internal/logging.js";import{createChannelDeliveryMetadata}from"#channel/delivery-metadata.js";import{createChannelOperations}from"#channel/channel-operations.js";import{getChannelInstrumentationKind}from"#channel/compiled-channel.js";import{createCrossChannelToFn,toCrossChannelTargets}from"#channel/cross-channel-receive.js";import{readVercelProjectLink}from"#internal/vercel/project-link.js";import{getWorld}from"#internal/workflow/runtime.js";import{attachAgentInfoRouteResponse,attachHomeRouteMetadata,attachRemoteAgentStreamHeadersResolver,attachRouteChannelName,attachRouteSessionCreator,attachSkillFileSource}from"#internal/nitro/routes/channel-route-context.js";import{context,trace}from"#compiled/@opentelemetry/api/index.js";import{DEVELOPMENT_WORKFLOW_SECRET_ENV}from"#internal/workflow/development-world-protocol.js";import{readTrustedDevelopmentClientAddress}from"#internal/nitro/dev-client-address.js";import{resolveNitroCompiledArtifactsSource}from"#internal/nitro/routes/runtime-artifacts.js";import{withLocalDevRequestScope}from"#runtime/local-dev-capability.js";import{createAgentDescriptionRouteArgs}from"#channel/agent-description.js";import{traceChannelRequest}from"#internal/nitro/routes/channel-request-instrumentation.js";import{resolveNitroChannelRuntimeBundle}from"#internal/nitro/routes/runtime-stack.js";import{createRouteInvokeTool}from"#internal/nitro/routes/route-invoke-tool.js";import{withVercelOidcProjectResolver}from"#channel/auth/vercel-oidc-project.js";const log=createLogger(`channel.dispatch`);async function dispatchChannelRequest(e,t,n){return await traceChannelRequest({request:e.req,routeKey:t},async r=>{let i=r?.reference??trace.getSpan(context.active())?.spanContext(),a=await resolveNitroChannelRuntimeBundle(n),o=a.channels.find(e=>`${e.method.toUpperCase()} ${e.urlPath}`===t);if(o===void 0)return Response.json({error:`No matching channel for this request.`,ok:!1},{status:404});r?.channel({channelName:o.name});let s=getChannelInstrumentationKind(o.definition)??o.adapter?.kind;s!==void 0&&r?.channel({channelKind:s});let c=await buildRouteArgs(e,a,o.name,s??`channel`,n,i),l;try{l=await withDevelopmentVercelOidcContext(n,e.req,async()=>{if(o.handler)return await o.handler(e.req,c.args);let t={waitUntil:c.args.waitUntil,params:c.args.params,requestIp:c.args.requestIp};return await o.fetch(e.req,t)})}catch(n){let r=logError(log,`channel handler threw`,n,{routeKey:t,channel:o.name});return flushBackgroundTasks(e,c.backgroundTasks,t,o.name),Response.json({error:`Channel handler failed.`,errorId:r,ok:!1},{status:500})}return flushBackgroundTasks(e,c.backgroundTasks,t,o.name),l})}async function dispatchChannelWebSocketRequest(e,t,n){let r=await resolveNitroChannelRuntimeBundle(n),i=r.channels.find(e=>`${e.method.toUpperCase()} ${e.urlPath}`===t);if(i===void 0||i.websocket===void 0)return rejectWebSocketUpgrade({error:`No matching websocket channel for this request.`,ok:!1},404);let a=i.websocket,o=getChannelInstrumentationKind(i.definition)??i.adapter?.kind??`channel`,s=await buildRouteArgs(e,r,i.name,o,n,void 0);try{let r=await withDevelopmentVercelOidcContext(n,e.req,async()=>await a(e.req,s.args));return flushBackgroundTasks(e,s.backgroundTasks,t,i.name),r}catch(n){let r=logError(log,`channel websocket handler threw`,n,{routeKey:t,channel:i.name});return flushBackgroundTasks(e,s.backgroundTasks,t,i.name),rejectWebSocketUpgrade({error:`Channel websocket handler failed.`,errorId:r,ok:!1},500)}}async function withDevelopmentVercelOidcContext(e,t,n){return e.kind===`development`?await withLocalDevRequestScope(t,async()=>await withVercelOidcProjectResolver({request:t,resolveCurrentProject:async()=>{let t=await readVercelProjectLink(e.appRoot);return t===void 0?void 0:{environment:`development`,projectId:t.projectId}}},n)):await n()}async function buildRouteArgs(e,t,n,r,i,a){let o=readVercelRequestId(e.req.headers),s=extractRequestIp(e,i),c=[],l=e.context.params??{},u={};for(let[e,t]of Object.entries(l))u[e]=decodeURIComponent(t);let waitUntil=e=>{c.push(e)},d=t.channels.find(e=>e.name===n),f=d?.adapter??{kind:`channel`},p={acceptedDeploymentId:await resolveAcceptedDeploymentId(i),channelKind:r,channelName:n,requestId:o,requestTraceContext:a===void 0?void 0:{spanId:a.spanId,traceFlags:a.traceFlags,traceId:a.traceId}},m=createChannelOperations({adapter:f,channelName:n,metadata:p,runtime:t.runtime,turnPolicy:d?.turnPolicy}),h=createAttachSessionFn(t.runtime,{...p,turnPolicy:d?.turnPolicy}),g=createCrossChannelToFn(t.runtime,toCrossChannelTargets(t.channels)),_=createAgentDescriptionRouteArgs(()=>resolveNitroCompiledArtifactsSource(i)),v=attachRouteSessionCreator(attachHomeRouteMetadata(attachRouteChannelName(attachAgentInfoRouteResponse({attachSession:h,...m,..._.args,invokeTool:createRouteInvokeTool({agentName:t.agentName,config:i,origin:{adapter:f,agentName:t.agentName,channelName:n},requestUrl:e.req.url}),params:u,requestIp:s,to:g,waitUntil},async()=>{let{handleAgentInfoRequest:e}=await import(`#internal/nitro/routes/info.js`);return await e(i)}),n),{agentName:t.agentName}),async e=>await t.runtime.createSession({...e,adapter:f,channelName:n,continuationToken:e.continuationToken===void 0?void 0:`${n}:${e.continuationToken}`,delivery:createChannelDeliveryMetadata(p),requestId:o}));return attachSkillFileSource(v,_.skillFiles),t.resolveRemoteAgentStreamHeaders!==void 0&&attachRemoteAgentStreamHeadersResolver(v,t.resolveRemoteAgentStreamHeaders),{args:v,backgroundTasks:c}}async function resolveAcceptedDeploymentId(e){let t=process.env.VERCEL_DEPLOYMENT_ID?.trim();if(t!==void 0&&t.length>0)return validateDeploymentId(t);if(e.kind!==`development`||process.env[DEVELOPMENT_WORKFLOW_SECRET_ENV]!==void 0)return validateDeploymentId(await(await getWorld()).getDeploymentId())}function validateDeploymentId(e){if(e.length===0||e===`latest`)throw Error(`Channel ingress could not resolve an exact deployment id.`);return e}function readVercelRequestId(e){let t=e.get(`x-vercel-id`)?.trim();return t===``?void 0:t}function rejectWebSocketUpgrade(e,t){return{upgrade(){throw Response.json(e,{status:t})}}}function flushBackgroundTasks(e,t,n,r){t.length!==0&&e.waitUntil(Promise.allSettled(t).then(e=>{for(let t of e)t.status===`rejected`&&logError(log,`channel background task failed`,t.reason,{routeKey:n,channel:r})}))}function extractRequestIp(e,t){if(t.kind===`development`){let t=readTrustedDevelopmentClientAddress(e.req.headers,process.env[DEVELOPMENT_WORKFLOW_SECRET_ENV]);if(t!==void 0)return t}return extractSocketIp(e)}function extractSocketIp(e){let t=e.req.ip;return typeof t==`string`&&t.length>0?t:null}export{dispatchChannelRequest,dispatchChannelWebSocketRequest};
|
|
@@ -1,33 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export interface ChannelRequestTrace {
|
|
2
|
+
readonly reference: import("@opentelemetry/api").SpanContext;
|
|
3
|
+
channel(input: {
|
|
4
|
+
channelName?: string;
|
|
5
|
+
channelKind?: string;
|
|
6
|
+
}): void;
|
|
7
|
+
}
|
|
8
|
+
/** The request lifetime ends at handler return, not response-body consumption. */
|
|
9
|
+
export declare function traceChannelRequest<T extends Response>(input: {
|
|
4
10
|
readonly request: Request;
|
|
5
11
|
readonly routeKey: string;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Wraps one inbound channel HTTP request in an OTel `SERVER` span.
|
|
9
|
-
*
|
|
10
|
-
* The span is named for the low-cardinality registered `routeKey`
|
|
11
|
-
* (`"POST /eve/v1/session/:sessionId"`), never the concrete URL, while the
|
|
12
|
-
* `http.route` attribute carries only the path template and
|
|
13
|
-
* `http.request.method` carries the method. It starts from context extracted
|
|
14
|
-
* off the incoming request headers so an upstream `traceparent` becomes its
|
|
15
|
-
* parent and nested channel operations become its descendants.
|
|
16
|
-
*
|
|
17
|
-
* The handler runs inside the span's active context. When it returns, the
|
|
18
|
-
* response status is recorded and a `>= 500` status marks the span as an
|
|
19
|
-
* error. A thrown handler marks failure status and is rethrown; request
|
|
20
|
-
* spans never record exception content. The span always ends in `finally`, without
|
|
21
|
-
* waiting for `event.waitUntil()` work or streamed response bodies.
|
|
22
|
-
*
|
|
23
|
-
* Emitting these spans is opt-in: unless authored instrumentation enables it
|
|
24
|
-
* via `traceChannelRequests: true`, the handler runs with no span (`undefined`)
|
|
25
|
-
* and performs no header extraction. The channel dispatcher can still use an
|
|
26
|
-
* already-active platform span for the activation's cross-trace link.
|
|
27
|
-
*
|
|
28
|
-
* This is observability-only: it never changes the response and performs no
|
|
29
|
-
* synchronous span export in the request path, adding only minimal in-process
|
|
30
|
-
* tracing overhead.
|
|
31
|
-
*/
|
|
32
|
-
export declare function traceChannelRequest<T extends Response>(input: TraceChannelRequestInput, handler: (span: Span | undefined) => Promise<T>): Promise<T>;
|
|
33
|
-
export {};
|
|
12
|
+
}, handler: (operation: ChannelRequestTrace | undefined) => Promise<T>): Promise<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{SpanKind,SpanStatusCode,context,propagation,trace}from"#compiled/@opentelemetry/api/index.js";import{getInstrumentationRuntime}from"#instrumentation/runtime.js";import{markAgentTraceContext}from"#tracing/eve/agent-trace-context.js";import{withErrorContent}from"#compiled/@eve/tracing/otel.js";const headersGetter={get:(e,t)=>e.get(t)??void 0,keys:e=>[...e.keys()]};async function traceChannelRequest(e,t){if(getInstrumentationRuntime()?.otelSettings?.traceChannelRequests!==!0)return t(void 0);let{request:n,routeKey:r}=e,i=propagation.extract(context.active(),n.headers,headersGetter),a=r.indexOf(` `),o;try{o=new URL(n.url)}catch{}let s=trace.getTracer(`eve.channel`).startSpan(`agent.channel.request`,{kind:SpanKind.SERVER,attributes:{"operation.name":`agent.channel.request`,"resource.name":`agent.channel.request`,"http.request.method":n.method,"http.route":a===-1?r:r.slice(a+1),"url.scheme":o?.protocol.replace(/:$/,``),"server.address":o?.hostname}},i),c={reference:s.spanContext(),channel(e){e.channelName!==void 0&&s.setAttribute(`agent.channel.name`,e.channelName),e.channelName!==void 0&&s.setAttribute(`eve.channel.name`,e.channelName),e.channelKind!==void 0&&s.setAttribute(`agent.channel.kind`,e.channelKind),e.channelKind!==void 0&&s.setAttribute(`eve.channel.kind`,e.channelKind)}};try{let e=await context.with(markAgentTraceContext(withErrorContent(trace.setSpan(i,s),!1)),()=>t(c));return s.setAttribute(`http.response.status_code`,e.status),e.status>=500&&s.setStatus({code:SpanStatusCode.ERROR}),e}catch(e){throw s.setStatus({code:SpanStatusCode.ERROR}),e}finally{s.end()}}export{traceChannelRequest};
|
|
@@ -2,7 +2,7 @@ import type { InvokeToolFn } from "#channel/invoke-tool.js";
|
|
|
2
2
|
import { type InvokeToolRuntime } from "#execution/invoke-tool.js";
|
|
3
3
|
import { type NitroArtifactsConfig } from "#internal/nitro/routes/runtime-artifacts.js";
|
|
4
4
|
import type { RuntimeCompiledArtifactsSource } from "#runtime/compiled-artifacts-source.js";
|
|
5
|
-
import type { InvokeToolTraceOrigin } from "#tracing/invoke-tool-span.js";
|
|
5
|
+
import type { InvokeToolTraceOrigin } from "#tracing/eve/invoke-tool-span.js";
|
|
6
6
|
/**
|
|
7
7
|
* Builds the route's `invokeTool`. The agent's static tools and sandbox load on
|
|
8
8
|
* the first call, so routes that never invoke a tool pay nothing.
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
+
/** The run's data passed the World's retention; retrying cannot bring it back. */
|
|
2
|
+
export declare function isExpiredWorkflowRunError(error: unknown): boolean;
|
|
1
3
|
export declare function isMissingWorkflowRunError(error: unknown): boolean;
|
|
2
4
|
export declare function isInactiveWorkflowRunError(error: unknown): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{walkCauseChain}from"#shared/errors.js";import{EntityConflictError,RunExpiredError,WorkflowRunNotFoundError}from"#compiled/@workflow/errors/index.js";function isMissingWorkflowRunError(e){return[...walkCauseChain(e)].some(e=>WorkflowRunNotFoundError.is(e)||RunExpiredError.is(e))}function isInactiveWorkflowRunError(e){return isMissingWorkflowRunError(e)||[...walkCauseChain(e)].some(e=>EntityConflictError.is(e))}export{isInactiveWorkflowRunError,isMissingWorkflowRunError};
|
|
1
|
+
import{walkCauseChain}from"#shared/errors.js";import{EntityConflictError,RunExpiredError,StreamExpiredError,WorkflowRunNotFoundError}from"#compiled/@workflow/errors/index.js";function isExpiredWorkflowRunError(e){return[...walkCauseChain(e)].some(e=>RunExpiredError.is(e)||StreamExpiredError.is(e))}function isMissingWorkflowRunError(e){return[...walkCauseChain(e)].some(e=>WorkflowRunNotFoundError.is(e)||RunExpiredError.is(e))}function isInactiveWorkflowRunError(e){return isMissingWorkflowRunError(e)||[...walkCauseChain(e)].some(e=>EntityConflictError.is(e))}export{isExpiredWorkflowRunError,isInactiveWorkflowRunError,isMissingWorkflowRunError};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{parseWithNitroRolldownAst}from"#internal/bundler/nitro-rolldown.js";import{collectFreeVariables,collectPatternNames,extractParamNames,findEveImportAliases,findProperty,isAstNode,isFunction,readDefinerName,walkNode}from"#internal/workflow-bundle/dynamic-tool-ast-references.js";async function transformDynamicToolExecute(e,t,n=NO_WORKFLOW_FUNCTIONS){if(!t.includes(`defineTool`)&&!t.includes(`defineWorkflowTool`))return null;let r=await parseWithNitroRolldownAst(e,t),i=findEveImportAliases(r,[`defineTool`,`defineWorkflowTool`]);if(i.size===0)return null;let a=[];return walkForCallbacks(t,r,a,[],{defineToolAliases:i,workflowFunctions:n,durableSchemaAliases:findEveImportAliases(r,[`defineDurableSchema`])}),a.length===0?null:applyTransform(t,a)}const NO_WORKFLOW_FUNCTIONS=new Set;function walkForCallbacks(e,t,n,r,i){if(t){if(isFunction(t)){let a=t.body;if(!a)return;walkForCallbacks(e,a,n,[...r,{params:extractParamNames(t),vars:collectScopeVarDeclarations(a)}],i);return}if(t.type===`CallExpression`&&i.defineToolAliases.has(readDefinerName(t.callee)??``)&&t.arguments?.length===1&&t.arguments[0]?.type===`ObjectExpression`){collectToolCallbacks(e,t.arguments[0],n,r,i);return}for(let a of Object.values(t))if(Array.isArray(a))for(let t of a)isAstNode(t)&&walkForCallbacks(e,t,n,r,i);else isAstNode(a)&&walkForCallbacks(e,a,n,r,i)}}function isWorkflowExecute(e,t){let n=e?.value;return n?.type===`Identifier`&&n.name!==void 0&&t.workflowFunctions.has(n.name)}function collectToolCallbacks(e,t,n,r,i){let a=findProperty(t,`execute`);isWorkflowExecute(a,i)||collectCallbackProperty(e,a,`execute`,`execute`,n,r),collectCallbackProperty(e,findProperty(t,`approvalKey`),`approvalKey`,`approvalKey`,n,r);let o=findProperty(t,`label`)?.value;o?.type===`ObjectExpression`&&(collectCallbackProperty(e,findProperty(o,`start`),`labelStart`,`start`,n,r),collectCallbackProperty(e,findProperty(o,`complete`),`labelComplete`,`complete`,n,r),collectCallbackProperty(e,findProperty(o,`delta`),`labelDelta`,`delta`,n,r)),collectCallbackProperty(e,findProperty(t,`toModelOutput`),`toModelOutput`,`toModelOutput`,n,r);for(let a of[`inputSchema`,`outputSchema`]){let o=findProperty(t,a),s=o?.value;o?.start!==void 0&&o.end!==void 0&&s?.start!==void 0&&s.end!==void 0&&(s.type!==`ObjectExpression`||findProperty(s,`~standard`))&&(s.type!==`CallExpression`||s.callee?.name!==`__eveDefineDurableSchema`&&!i.durableSchemaAliases.has(readDefinerName(s.callee)??``))&&n.push({body:`{ return ${e.slice(s.start,s.end)}; }`,captureNode:s,isAsync:!1,isGenerator:!1,isReference:!1,nestedScopes:r,params:``,phase:a,propertyName:a,propEnd:o.end,propStart:o.start})}let s=findProperty(t,`approval`),c=s?.value;c?.type===`ObjectExpression`?(collectCallbackProperty(e,findProperty(c,`request`),`approvalRequest`,`request`,n,r),collectCallbackProperty(e,findProperty(c,`response`),`approvalResponse`,`response`,n,r)):collectCallbackProperty(e,s,`approvalRequest`,`approval`,n,r)}function collectCallbackProperty(e,t,n,r,i,a){if(t?.type!==`Property`||t.start===void 0||t.end===void 0)return;let o=t.value;if(o&&o.start!==void 0&&o.end!==void 0){if(isFunction(o)||t.method===!0){if(!o.body)return;i.push({body:extractFnBody(e,o),captureNode:o,isAsync:o.async===!0,isGenerator:o.generator===!0,isReference:!1,nestedScopes:a,params:extractFnParams(e,o),phase:n,propertyName:r,propEnd:t.end,propStart:t.start});return}o.type===`Identifier`&&i.push({body:`{ return ${e.slice(o.start,o.end)}(...__args); }`,captureNode:o,isAsync:!1,isGenerator:!1,isReference:!0,nestedScopes:a,params:`...__args`,phase:n,propertyName:r,propEnd:t.end,propStart:t.start})}}function applyTransform(e,t){let n=[],r=[];for(let[e,i]of t.entries()){let t=collectFreeVariables(i.captureNode),a=dedupeShadowed(i.nestedScopes.flatMap(e=>[...e.params,...e.vars])).filter(e=>t.has(e)),o=a.length>0?`{ ${a.join(`, `)} }`:`{}`,s=i.phase.replace(/[A-Z]/g,e=>`_${e.toLowerCase()}`),c=i.phase===`execute`?`__eve_dynamic_exec_${e}`:`__eve_dynamic_${s}_${e}`,l=[a.length>0?o:`__vars`,i.params].filter(Boolean).join(`, `),u=i.body.slice(1,-1).trim(),d=i.isAsync?`async `:``,f=i.isGenerator?`*`:``;r.push(`${d}function${f} ${c}(${l}) {\n ${u}\n}`);let p=createLiveWrapper(i,c,o),m=i.phase===`inputSchema`||i.phase===`outputSchema`?`__eveDefineDurableSchema({ schema: ${c}, closure: ${o} })`:`__eveStampDynamicCallback(${p}, ${c}, ${o})`;n.push({end:i.propEnd,start:i.propStart,text:`${i.propertyName}: ${m}`})}let i=e;for(let e of n.sort((e,t)=>t.start-e.start))i=i.slice(0,e.start)+e.text+i.slice(e.end);return{code:`${[...t.some(e=>e.phase===`inputSchema`||e.phase===`outputSchema`)?[`import { defineDurableSchema as __eveDefineDurableSchema } from "eve/tools";`]:[],`var __eveDurableCallbackSym = Symbol.for("eve:durable-dynamic-callback");`,`function __eveStampDynamicCallback(callback, impl, closure) {`,` Object.defineProperty(callback, __eveDurableCallbackSym, { configurable: true, value: { callback: impl, closure } });`,` return callback;`,`}`].join(`
|
|
1
|
+
import{parseWithNitroRolldownAst}from"#internal/bundler/nitro-rolldown.js";import{collectFreeVariables,collectPatternNames,extractParamNames,findEveImportAliases,findProperty,isAstNode,isFunction,readDefinerName,walkNode}from"#internal/workflow-bundle/dynamic-tool-ast-references.js";async function transformDynamicToolExecute(e,t,n=NO_WORKFLOW_FUNCTIONS){if(!t.includes(`defineTool`)&&!t.includes(`defineWorkflowTool`))return null;let r=await parseWithNitroRolldownAst(e,t),i=findEveImportAliases(r,[`defineTool`,`defineWorkflowTool`]);if(i.size===0)return null;let a=[];return walkForCallbacks(t,r,a,[],{defineToolAliases:i,workflowFunctions:n,durableSchemaAliases:findEveImportAliases(r,[`defineDurableSchema`])}),a.length===0?null:applyTransform(t,a)}const NO_WORKFLOW_FUNCTIONS=new Set;function walkForCallbacks(e,t,n,r,i){if(t){if(isFunction(t)){let a=t.body;if(!a)return;walkForCallbacks(e,a,n,[...r,{params:extractParamNames(t),vars:collectScopeVarDeclarations(a)}],i);return}if(t.type===`CallExpression`&&i.defineToolAliases.has(readDefinerName(t.callee)??``)&&t.arguments?.length===1&&t.arguments[0]?.type===`ObjectExpression`){collectToolCallbacks(e,t.arguments[0],n,r,i);return}for(let a of Object.values(t))if(Array.isArray(a))for(let t of a)isAstNode(t)&&walkForCallbacks(e,t,n,r,i);else isAstNode(a)&&walkForCallbacks(e,a,n,r,i)}}function isWorkflowExecute(e,t){let n=e?.value;return n?.type===`Identifier`&&n.name!==void 0&&t.workflowFunctions.has(n.name)}function collectToolCallbacks(e,t,n,r,i){let a=findProperty(t,`execute`);isWorkflowExecute(a,i)||collectCallbackProperty(e,a,`execute`,`execute`,n,r),collectCallbackProperty(e,findProperty(t,`approvalKey`),`approvalKey`,`approvalKey`,n,r);let o=findProperty(t,`label`)?.value;o?.type===`ObjectExpression`&&(collectCallbackProperty(e,findProperty(o,`start`),`labelStart`,`start`,n,r),collectCallbackProperty(e,findProperty(o,`complete`),`labelComplete`,`complete`,n,r),collectCallbackProperty(e,findProperty(o,`delta`),`labelDelta`,`delta`,n,r)),collectCallbackProperty(e,findProperty(t,`toModelOutput`),`toModelOutput`,`toModelOutput`,n,r);for(let a of[`inputSchema`,`outputSchema`]){let o=findProperty(t,a),s=o?.value;o?.start!==void 0&&o.end!==void 0&&s?.start!==void 0&&s.end!==void 0&&(s.type!==`ObjectExpression`||findProperty(s,`~standard`))&&(s.type!==`CallExpression`||s.callee?.name!==`__eveDefineDurableSchema`&&!i.durableSchemaAliases.has(readDefinerName(s.callee)??``))&&n.push({body:`{ return ${e.slice(s.start,s.end)}; }`,captureNode:s,isAsync:!1,isGenerator:!1,isReference:!1,nestedScopes:r,params:``,phase:a,propertyName:a,propEnd:o.end,propStart:o.start})}let s=findProperty(t,`approval`),c=s?.value;c?.type===`ObjectExpression`?(collectCallbackProperty(e,findProperty(c,`request`),`approvalRequest`,`request`,n,r),collectCallbackProperty(e,findProperty(c,`prompt`),`approvalPrompt`,`prompt`,n,r),collectCallbackProperty(e,findProperty(c,`response`),`approvalResponse`,`response`,n,r)):collectCallbackProperty(e,s,`approvalRequest`,`approval`,n,r)}function collectCallbackProperty(e,t,n,r,i,a){if(t?.type!==`Property`||t.start===void 0||t.end===void 0)return;let o=t.value;if(o&&o.start!==void 0&&o.end!==void 0){if(isFunction(o)||t.method===!0){if(!o.body)return;i.push({body:extractFnBody(e,o),captureNode:o,isAsync:o.async===!0,isGenerator:o.generator===!0,isReference:!1,nestedScopes:a,params:extractFnParams(e,o),phase:n,propertyName:r,propEnd:t.end,propStart:t.start});return}o.type===`Identifier`&&i.push({body:`{ return ${e.slice(o.start,o.end)}(...__args); }`,captureNode:o,isAsync:!1,isGenerator:!1,isReference:!0,nestedScopes:a,params:`...__args`,phase:n,propertyName:r,propEnd:t.end,propStart:t.start})}}function applyTransform(e,t){let n=[],r=[];for(let[e,i]of t.entries()){let t=collectFreeVariables(i.captureNode),a=dedupeShadowed(i.nestedScopes.flatMap(e=>[...e.params,...e.vars])).filter(e=>t.has(e)),o=a.length>0?`{ ${a.join(`, `)} }`:`{}`,s=i.phase.replace(/[A-Z]/g,e=>`_${e.toLowerCase()}`),c=i.phase===`execute`?`__eve_dynamic_exec_${e}`:`__eve_dynamic_${s}_${e}`,l=[a.length>0?o:`__vars`,i.params].filter(Boolean).join(`, `),u=i.body.slice(1,-1).trim(),d=i.isAsync?`async `:``,f=i.isGenerator?`*`:``;r.push(`${d}function${f} ${c}(${l}) {\n ${u}\n}`);let p=createLiveWrapper(i,c,o),m=i.phase===`inputSchema`||i.phase===`outputSchema`?`__eveDefineDurableSchema({ schema: ${c}, closure: ${o} })`:`__eveStampDynamicCallback(${p}, ${c}, ${o})`;n.push({end:i.propEnd,start:i.propStart,text:`${i.propertyName}: ${m}`})}let i=e;for(let e of n.sort((e,t)=>t.start-e.start))i=i.slice(0,e.start)+e.text+i.slice(e.end);return{code:`${[...t.some(e=>e.phase===`inputSchema`||e.phase===`outputSchema`)?[`import { defineDurableSchema as __eveDefineDurableSchema } from "eve/tools";`]:[],`var __eveDurableCallbackSym = Symbol.for("eve:durable-dynamic-callback");`,`function __eveStampDynamicCallback(callback, impl, closure) {`,` Object.defineProperty(callback, __eveDurableCallbackSym, { configurable: true, value: { callback: impl, closure } });`,` return callback;`,`}`].join(`
|
|
2
2
|
`)}\n${i}\n\n${r.join(`
|
|
3
3
|
`)}\n`}}function createLiveWrapper(e,t,n){if(e.isReference)return`(...__args) => ${t}(${n}, ...__args)`;let r=e.isAsync?`async `:``;return e.isGenerator?`${r}function* (...__args) { yield* ${t}(${n}, ...__args); }`:`${r}(...__args) => ${e.isAsync?`await `:``}${t}(${n}, ...__args)`}function dedupeShadowed(e){let t=new Set,n=[];for(let r=e.length-1;r>=0;r--){let i=e[r];t.has(i)||(t.add(i),n.unshift(i))}return n}function collectScopeVarDeclarations(e){let t=[];return walkNode(e,n=>n!==e&&isFunction(n)?!1:(n.type===`VariableDeclarator`&&collectPatternNames(n.id,t),n.type===`FunctionDeclaration`&&n.id?.name&&t.push(n.id.name),!0)),t}function extractFnParams(e,t){if(!t.params||t.params.length===0)return``;let n=t.params[0],r=t.params[t.params.length-1];return n.start===void 0||r.end===void 0?``:e.slice(n.start,r.end)}function extractFnBody(e,t){let n=t.body;if(!n||n.start===void 0||n.end===void 0)return`{}`;let r=e.slice(n.start,n.end);return t.type===`ArrowFunctionExpression`&&n.type!==`BlockStatement`?`{ return ${r}; }`:r}export{transformDynamicToolExecute};
|
|
@@ -18,6 +18,7 @@ export declare function writeForwardedParentSessionBaggage(value: string | undef
|
|
|
18
18
|
export declare function readForwardedAudienceBaggage(value: string | null): ForwardedTraceBaggage;
|
|
19
19
|
/** Replaces any authored eve audience member while preserving unrelated baggage entries. */
|
|
20
20
|
export declare function writeForwardedAudienceBaggage(value: string | undefined, assertion: ForwardedTraceAssertion | undefined): string | undefined;
|
|
21
|
+
export declare function stripEveTraceBaggage(carrier: Record<string, string>): void;
|
|
21
22
|
/** Recognized members are singular; malformed or oversized input fails closed. */
|
|
22
23
|
export declare function readBaggageMember(value: string | null, key: string): BaggageMember | "absent" | "malformed";
|
|
23
24
|
/** Replaces a member with an encoded value and optional properties; undefined removes it. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{formatTraceContentCeiling}from"#shared/forwarded-trace-policy.js";const EVE_AUDIENCE_KEY=`eve.audience`,EVE_PARENT_SESSION_KEY=`eve.parent_session`,CEILING_PROPERTY_KEY=`ceiling`,MAX_BAGGAGE_BYTES=8192,encoder=new TextEncoder,decoder=new TextDecoder(`utf-8`,{ignoreBOM:!0});function readForwardedParentSessionBaggage(e){let t=readBaggageMember(e,EVE_PARENT_SESSION_KEY);if(typeof t==`string`)return t;if(t.properties.length!==0)return`malformed`;let n;try{n=JSON.parse(t.value)}catch{return`malformed`}if(typeof n!=`object`||!n||Array.isArray(n))return`malformed`;let r=n,i=r.turn;return typeof r.callId!=`string`||r.callId.length===0||typeof r.rootSessionId!=`string`||r.rootSessionId.length===0||typeof r.sessionId!=`string`||r.sessionId.length===0||i===void 0||typeof i.id!=`string`||i.id.length===0||!Number.isSafeInteger(i.sequence)||i.sequence<0?`malformed`:{callId:r.callId,rootSessionId:r.rootSessionId,sessionId:r.sessionId,turn:{id:i.id,sequence:i.sequence}}}function writeForwardedParentSessionBaggage(e,t){return replaceBaggageMember(e,EVE_PARENT_SESSION_KEY,t===void 0?void 0:encodeURIComponent(JSON.stringify(t)))}function readForwardedAudienceBaggage(e){let t=readBaggageMember(e,EVE_AUDIENCE_KEY);if(typeof t==`string`)return t;let n=t.value;if(n!==`public`&&n!==`private`&&n!==`unknown`)return`malformed`;let r=t.properties[0];if(t.properties.length!==1||r?.key!==CEILING_PROPERTY_KEY)return`malformed`;let i=r.value===void 0?void 0:parseCeiling(r.value);return i===void 0?`malformed`:{ceiling:i,originAudience:n}}function writeForwardedAudienceBaggage(e,t){return replaceBaggageMember(e,EVE_AUDIENCE_KEY,t===void 0?void 0:`${t.originAudience};${CEILING_PROPERTY_KEY}=${formatTraceContentCeiling(t.ceiling)}`)}function readBaggageMember(e,t){if(e===null)return`absent`;if(e.length>MAX_BAGGAGE_BYTES||encoder.encode(e).byteLength>MAX_BAGGAGE_BYTES)return`malformed`;let n=baggageMembers(e).filter(e=>baggageKey(e)===t);if(n.length===0)return`absent`;if(n.length!==1)return`malformed`;let[r,...i]=n[0].split(`;`),a=parsePair(r);if(a?.value===void 0)return`malformed`;let o=[];for(let e of i){let t=parsePair(e);if(t===void 0)return`malformed`;o.push(t)}return{value:a.value,properties:o}}function replaceBaggageMember(e,t,n){let r=baggageMembers(e??``).filter(e=>baggageKey(e)!==t);if(n!==void 0){let e=[...r,`${t}=${n}`].join(`,`);if(encoder.encode(e).byteLength>MAX_BAGGAGE_BYTES)throw Error(`Cannot forward baggage: header exceeds 8192 bytes. Reduce remote.headers.baggage.`);return e}return r.join(`,`)||void 0}function baggageMembers(e){return e.split(`,`).map(trimOws).filter(Boolean)}function parsePair(e){let t=e.indexOf(`=`),n=trimOws(t<0?e:e.slice(0,t));if(!/^[!#$%&'*+\-.^_`|~\w]+$/u.test(n))return;if(t<0)return{key:n};let r=trimOws(e.slice(t+1));if(!/^[\x21\x23-\x2b\x2d-\x3a\x3c-\x5b\x5d-\x7e]*$/u.test(r)||/%(?![\da-f]{2})/iu.test(r))return;let i=Uint8Array.from(r.match(/%[\da-f]{2}|./giu)??[],e=>e.startsWith(`%`)?Number.parseInt(e.slice(1),16):e.charCodeAt(0));return{key:n,value:decoder.decode(i)}}function parseCeiling(e){let t=/^i([01])o([01])$/u.exec(e);return t===null?void 0:{recordInputs:t[1]===`1`,recordOutputs:t[2]===`1`}}function trimOws(e){return e.replace(/^[\t ]+|[\t ]+$/gu,``)}function baggageKey(e){let t=e.split(`;`,1)[0],n=t.indexOf(`=`);return(n<0?t:t.slice(0,n)).trim()}export{readBaggageMember,readForwardedAudienceBaggage,readForwardedParentSessionBaggage,replaceBaggageMember,writeForwardedAudienceBaggage,writeForwardedParentSessionBaggage};
|
|
1
|
+
import{formatTraceContentCeiling}from"#shared/forwarded-trace-policy.js";const EVE_AUDIENCE_KEY=`eve.audience`,EVE_PARENT_SESSION_KEY=`eve.parent_session`,EVE_TRACE_BAGGAGE_KEYS=[EVE_AUDIENCE_KEY,`eve.conversation.id`,EVE_PARENT_SESSION_KEY],CEILING_PROPERTY_KEY=`ceiling`,MAX_BAGGAGE_BYTES=8192,encoder=new TextEncoder,decoder=new TextDecoder(`utf-8`,{ignoreBOM:!0});function readForwardedParentSessionBaggage(e){let t=readBaggageMember(e,EVE_PARENT_SESSION_KEY);if(typeof t==`string`)return t;if(t.properties.length!==0)return`malformed`;let n;try{n=JSON.parse(t.value)}catch{return`malformed`}if(typeof n!=`object`||!n||Array.isArray(n))return`malformed`;let r=n,i=r.turn;return typeof r.callId!=`string`||r.callId.length===0||typeof r.rootSessionId!=`string`||r.rootSessionId.length===0||typeof r.sessionId!=`string`||r.sessionId.length===0||i===void 0||typeof i.id!=`string`||i.id.length===0||!Number.isSafeInteger(i.sequence)||i.sequence<0?`malformed`:{callId:r.callId,rootSessionId:r.rootSessionId,sessionId:r.sessionId,turn:{id:i.id,sequence:i.sequence}}}function writeForwardedParentSessionBaggage(e,t){return replaceBaggageMember(e,EVE_PARENT_SESSION_KEY,t===void 0?void 0:encodeURIComponent(JSON.stringify(t)))}function readForwardedAudienceBaggage(e){let t=readBaggageMember(e,EVE_AUDIENCE_KEY);if(typeof t==`string`)return t;let n=t.value;if(n!==`public`&&n!==`private`&&n!==`unknown`)return`malformed`;let r=t.properties[0];if(t.properties.length!==1||r?.key!==CEILING_PROPERTY_KEY)return`malformed`;let i=r.value===void 0?void 0:parseCeiling(r.value);return i===void 0?`malformed`:{ceiling:i,originAudience:n}}function writeForwardedAudienceBaggage(e,t){return replaceBaggageMember(e,EVE_AUDIENCE_KEY,t===void 0?void 0:`${t.originAudience};${CEILING_PROPERTY_KEY}=${formatTraceContentCeiling(t.ceiling)}`)}function stripEveTraceBaggage(e){let t=e.baggage;if(t!==void 0){for(let e of EVE_TRACE_BAGGAGE_KEYS)t=replaceBaggageMember(t,e,void 0);t===void 0||encoder.encode(t).byteLength>MAX_BAGGAGE_BYTES?delete e.baggage:e.baggage=t}}function readBaggageMember(e,t){if(e===null)return`absent`;if(e.length>MAX_BAGGAGE_BYTES||encoder.encode(e).byteLength>MAX_BAGGAGE_BYTES)return`malformed`;let n=baggageMembers(e).filter(e=>baggageKey(e)===t);if(n.length===0)return`absent`;if(n.length!==1)return`malformed`;let[r,...i]=n[0].split(`;`),a=parsePair(r);if(a?.value===void 0)return`malformed`;let o=[];for(let e of i){let t=parsePair(e);if(t===void 0)return`malformed`;o.push(t)}return{value:a.value,properties:o}}function replaceBaggageMember(e,t,n){let r=baggageMembers(e??``).filter(e=>baggageKey(e)!==t);if(n!==void 0){let e=[...r,`${t}=${n}`].join(`,`);if(encoder.encode(e).byteLength>MAX_BAGGAGE_BYTES)throw Error(`Cannot forward baggage: header exceeds 8192 bytes. Reduce remote.headers.baggage.`);return e}return r.join(`,`)||void 0}function baggageMembers(e){return e.split(`,`).map(trimOws).filter(Boolean)}function parsePair(e){let t=e.indexOf(`=`),n=trimOws(t<0?e:e.slice(0,t));if(!/^[!#$%&'*+\-.^_`|~\w]+$/u.test(n))return;if(t<0)return{key:n};let r=trimOws(e.slice(t+1));if(!/^[\x21\x23-\x2b\x2d-\x3a\x3c-\x5b\x5d-\x7e]*$/u.test(r)||/%(?![\da-f]{2})/iu.test(r))return;let i=Uint8Array.from(r.match(/%[\da-f]{2}|./giu)??[],e=>e.startsWith(`%`)?Number.parseInt(e.slice(1),16):e.charCodeAt(0));return{key:n,value:decoder.decode(i)}}function parseCeiling(e){let t=/^i([01])o([01])$/u.exec(e);return t===null?void 0:{recordInputs:t[1]===`1`,recordOutputs:t[2]===`1`}}function trimOws(e){return e.replace(/^[\t ]+|[\t ]+$/gu,``)}function baggageKey(e){let t=e.split(`;`,1)[0],n=t.indexOf(`=`);return(n<0?t:t.slice(0,n)).trim()}export{readBaggageMember,readForwardedAudienceBaggage,readForwardedParentSessionBaggage,replaceBaggageMember,stripEveTraceBaggage,writeForwardedAudienceBaggage,writeForwardedParentSessionBaggage};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{parseInputResponse}from"#shared/input.js";import{SLACK_SECTION_TEXT_MAX_LENGTH,truncateCardBodyText,truncateModalTitle,truncatePlainText,truncateSectionText}from"#public/channels/slack/limits.js";const HITL_ACTION_PREFIX=`eve_input:`,HITL_FREEFORM_ACTION_PREFIX=`eve_input_freeform:`,HITL_FREEFORM_MODAL_CALLBACK_ID=`eve_input_freeform_submit`,HITL_FREEFORM_MODAL_BLOCK_ID=`eve_freeform_block`,HITL_FREEFORM_MODAL_ACTION_ID=`eve_freeform_text`,HITL_ROUTE_PREFIX=`${HITL_ACTION_PREFIX}route:`,BUTTON_ACTION_ID_RE=/^(?:(?<kind>tool-approval):)?(?<requestId>.+):button:\d+$/u,TOOL_INPUT_SUFFIX="\n```",deriveHitlResponse=e=>decodeHitlResponse(e);function decodeHitlResponse(e){let t=decodeHitlActionId(e.actionId);if(t===null)return null;let n=e.selectedOptionValue??e.value;if(n===void 0||e.value!==void 0&&!t.button)return null;let r={response:parseInputResponse({optionId:n,requestId:t.requestId})};return t.kind!==void 0&&(r.kind=t.kind),t.route!==void 0&&(r.route=t.route),r}function splitEncodedRequest(e){return e.startsWith(`tool-approval:`)?{kind:`tool-approval`,requestId:e.slice(14)}:{requestId:e}}function isHitlAction(e){return e.startsWith(HITL_ACTION_PREFIX)}function decodeHitlActionId(e){if(!e.startsWith(`eve_input:`))return null;let t=e.slice(10),n;if(t.startsWith(`route:`)){t=t.slice(6);let e=t.indexOf(`:`),r=t.indexOf(`:`,e+1);if(e<=0||r<=e+1)return null;n={channelId:t.slice(0,e),threadTs:t.slice(e+1,r)},t=t.slice(r+1)}let r=BUTTON_ACTION_ID_RE.exec(t),i=splitEncodedRequest(r?.groups?.requestId??t);if(!i.requestId)return null;let a=r?.groups?.kind===`tool-approval`?`tool-approval`:i.kind,o={button:r!==null,requestId:i.requestId};return a!==void 0&&(o.kind=a),n!==void 0&&(o.route=n),o}function encodeHitlActionId(e,t){let n=`${e.kind===`tool-approval`?`tool-approval:`:``}${e.requestId}`;return t===void 0?`${HITL_ACTION_PREFIX}${n}`:`${HITL_ROUTE_PREFIX}${t.channelId}:${t.threadTs}:${n}`}function renderInputRequestBlocks(e,t){let n={text:{text:truncateSectionText(e.prompt),type:`mrkdwn`},type:`section`},r=renderInputRequestDetailBlocks(e),i=encodeHitlActionId(e,t),a=e.options,o=e.allowFreeform===!0||!a||a.length===0;if(a&&a.length>0&&e.display===`select`){let e=a.length<=6?{type:`radio_buttons`,action_id:i,options:a.map(buildOption)}:{type:`static_select`,action_id:i,options:a.map(buildOption),placeholder:{type:`plain_text`,text:`Choose an option`}};return[n,...r,{type:`actions`,elements:[e]}]}if(a&&a.length>0){let t=renderInputRequestCardBlock(e,i),n=renderToolInputContainerBlock(e);return n===void 0?[t]:[t,n]}if(o){let t=i.replace(HITL_ACTION_PREFIX,HITL_FREEFORM_ACTION_PREFIX);return[n,...r,{type:`actions`,elements:[{type:`button`,action_id:t,text:{type:`plain_text`,text:`Type your answer`},style:`primary`,value:e.requestId}]}]}return[n]}function renderInputRequestPostParts(e,t){let n=renderInputRequestBlocks(e,t),r=n[0];return!isApprovalRequest(e)||!isBlockType(r,`card`)||n.length===1?{controls:{blocks:n,text:formatInputRequestFallbackText(e)}}:{controls:{blocks:[r],text:e.prompt},details:{blocks:n.slice(1),text:formatInputRequestFallbackText(e)}}}function formatInputRequestFallbackText(e){let t=formatToolInputDetails(e);return t===void 0?e.prompt:`${e.prompt}\n${t}`}function buildFreeformModalView(e){let t=e.prompt?truncateModalTitle(e.prompt):`Your answer`,n=e.prompt?[{type:`section`,text:{type:`mrkdwn`,text:truncateSectionText(e.prompt)}}]:[];return{type:`modal`,callback_id:HITL_FREEFORM_MODAL_CALLBACK_ID,private_metadata:JSON.stringify(e.metadata),title:{type:`plain_text`,text:t},submit:{type:`plain_text`,text:`Submit`},close:{type:`plain_text`,text:`Cancel`},blocks:[...n,{type:`input`,block_id:HITL_FREEFORM_MODAL_BLOCK_ID,element:{type:`plain_text_input`,action_id:HITL_FREEFORM_MODAL_ACTION_ID,multiline:!0,placeholder:{type:`plain_text`,text:`Type your answer here...`}},label:{type:`plain_text`,text:`Answer`}}]}}function isFreeformAction(e){return e.startsWith(HITL_FREEFORM_ACTION_PREFIX)}function decodeFreeformHitlActionId(e){return isFreeformAction(e)?decodeHitlActionId(`${HITL_ACTION_PREFIX}${e.slice(19)}`):null}function buildCardButton(e,t,n){let r={type:`button`,text:{type:`plain_text`,text:truncatePlainText(e.label),emoji:!1},action_id:`${t}:button:${n}`,value:e.id};return(e.style===`primary`||e.style===`danger`)&&(r.style=e.style),r}function buildOption(e){let t={text:{text:truncatePlainText(e.label),type:`plain_text`},value:e.id},n=truncatePlainText(e.description);return n&&n.length>0&&(t.description={text:n,type:`plain_text`}),t}function renderInputRequestCardBlock(e,t){let n={type:`card`,body:{type:`mrkdwn`,text:truncateCardBodyText(`*${e.prompt}*`),verbatim:!1},actions:cardButtonOptions(e).map((e,n)=>buildCardButton(e,t,n))};return isApprovalRequest(e)&&(n.subtext={type:`mrkdwn`,text:`I've paused until someone approves or cancels.`}),n}function cardButtonOptions(e){let t=e.options??[];if(!isApprovalRequest(e))return t.map(toCardButtonOption);let n=t.find(e=>e.id===`approve`),r=t.find(e=>e.id===`cancel`);return!n||!r?t.map(toCardButtonOption):[{id:r.id,label:`Cancel`},{id:n.id,label:`Approve`,style:`primary`}]}function toCardButtonOption(e){let t={id:e.id,label:e.label};return e.style===`primary`||e.style===`danger`?{...t,style:e.style}:t}function buildAnsweredBlocks(e){let t=[];for(let n of e.promptBlocks)n!=null&&t.push(n);let n=truncateWithEllipsis(e.answerLabel,SLACK_SECTION_TEXT_MAX_LENGTH-20-1);return t.push({type:`section`,text:{type:`mrkdwn`,text:`:white_check_mark: *${n}*`}}),e.userId&&e.userId.length>0&&t.push({type:`context`,elements:[{type:`mrkdwn`,text:`Answered by <@${e.userId}>`}]}),t}function renderInputRequestDetailBlocks(e){let t=formatToolInputDetails(e);return t===void 0?[]:[{type:`section`,text:{type:`mrkdwn`,text:t}}]}function renderToolInputContainerBlock(e){let t=formatToolInputContainerText(e);if(t!==void 0)return{type:`container`,title:{type:`plain_text`,text:`Tool input`},is_collapsible:!0,default_collapsed:!
|
|
1
|
+
import{parseInputResponse}from"#shared/input.js";import{SLACK_SECTION_TEXT_MAX_LENGTH,truncateCardBodyText,truncateModalTitle,truncatePlainText,truncateSectionText}from"#public/channels/slack/limits.js";const HITL_ACTION_PREFIX=`eve_input:`,HITL_FREEFORM_ACTION_PREFIX=`eve_input_freeform:`,HITL_FREEFORM_MODAL_CALLBACK_ID=`eve_input_freeform_submit`,HITL_FREEFORM_MODAL_BLOCK_ID=`eve_freeform_block`,HITL_FREEFORM_MODAL_ACTION_ID=`eve_freeform_text`,HITL_ROUTE_PREFIX=`${HITL_ACTION_PREFIX}route:`,BUTTON_ACTION_ID_RE=/^(?:(?<kind>tool-approval):)?(?<requestId>.+):button:\d+$/u,TOOL_INPUT_SUFFIX="\n```",deriveHitlResponse=e=>decodeHitlResponse(e);function decodeHitlResponse(e){let t=decodeHitlActionId(e.actionId);if(t===null)return null;let n=e.selectedOptionValue??e.value;if(n===void 0||e.value!==void 0&&!t.button)return null;let r={response:parseInputResponse({optionId:n,requestId:t.requestId})};return t.kind!==void 0&&(r.kind=t.kind),t.route!==void 0&&(r.route=t.route),r}function splitEncodedRequest(e){return e.startsWith(`tool-approval:`)?{kind:`tool-approval`,requestId:e.slice(14)}:{requestId:e}}function isHitlAction(e){return e.startsWith(HITL_ACTION_PREFIX)}function decodeHitlActionId(e){if(!e.startsWith(`eve_input:`))return null;let t=e.slice(10),n;if(t.startsWith(`route:`)){t=t.slice(6);let e=t.indexOf(`:`),r=t.indexOf(`:`,e+1);if(e<=0||r<=e+1)return null;n={channelId:t.slice(0,e),threadTs:t.slice(e+1,r)},t=t.slice(r+1)}let r=BUTTON_ACTION_ID_RE.exec(t),i=splitEncodedRequest(r?.groups?.requestId??t);if(!i.requestId)return null;let a=r?.groups?.kind===`tool-approval`?`tool-approval`:i.kind,o={button:r!==null,requestId:i.requestId};return a!==void 0&&(o.kind=a),n!==void 0&&(o.route=n),o}function encodeHitlActionId(e,t){let n=`${e.kind===`tool-approval`?`tool-approval:`:``}${e.requestId}`;return t===void 0?`${HITL_ACTION_PREFIX}${n}`:`${HITL_ROUTE_PREFIX}${t.channelId}:${t.threadTs}:${n}`}function renderInputRequestBlocks(e,t){let n={text:{text:truncateSectionText(e.prompt),type:`mrkdwn`},type:`section`},r=renderInputRequestDetailBlocks(e),i=encodeHitlActionId(e,t),a=e.options,o=e.allowFreeform===!0||!a||a.length===0;if(a&&a.length>0&&e.display===`select`){let e=a.length<=6?{type:`radio_buttons`,action_id:i,options:a.map(buildOption)}:{type:`static_select`,action_id:i,options:a.map(buildOption),placeholder:{type:`plain_text`,text:`Choose an option`}};return[n,...r,{type:`actions`,elements:[e]}]}if(a&&a.length>0){let t=renderInputRequestCardBlock(e,i),n=renderToolInputContainerBlock(e);return n===void 0?[t]:[t,n]}if(o){let t=i.replace(HITL_ACTION_PREFIX,HITL_FREEFORM_ACTION_PREFIX);return[n,...r,{type:`actions`,elements:[{type:`button`,action_id:t,text:{type:`plain_text`,text:`Type your answer`},style:`primary`,value:e.requestId}]}]}return[n]}function renderInputRequestPostParts(e,t){let n=renderInputRequestBlocks(e,t),r=n[0];return!isApprovalRequest(e)||!isBlockType(r,`card`)||n.length===1?{controls:{blocks:n,text:formatInputRequestFallbackText(e)}}:{controls:{blocks:[r],text:e.prompt},details:{blocks:n.slice(1),text:formatInputRequestFallbackText(e)}}}function formatInputRequestFallbackText(e){let t=formatToolInputDetails(e);return t===void 0?e.prompt:`${e.prompt}\n${t}`}function buildFreeformModalView(e){let t=e.prompt?truncateModalTitle(e.prompt):`Your answer`,n=e.prompt?[{type:`section`,text:{type:`mrkdwn`,text:truncateSectionText(e.prompt)}}]:[];return{type:`modal`,callback_id:HITL_FREEFORM_MODAL_CALLBACK_ID,private_metadata:JSON.stringify(e.metadata),title:{type:`plain_text`,text:t},submit:{type:`plain_text`,text:`Submit`},close:{type:`plain_text`,text:`Cancel`},blocks:[...n,{type:`input`,block_id:HITL_FREEFORM_MODAL_BLOCK_ID,element:{type:`plain_text_input`,action_id:HITL_FREEFORM_MODAL_ACTION_ID,multiline:!0,placeholder:{type:`plain_text`,text:`Type your answer here...`}},label:{type:`plain_text`,text:`Answer`}}]}}function isFreeformAction(e){return e.startsWith(HITL_FREEFORM_ACTION_PREFIX)}function decodeFreeformHitlActionId(e){return isFreeformAction(e)?decodeHitlActionId(`${HITL_ACTION_PREFIX}${e.slice(19)}`):null}function buildCardButton(e,t,n){let r={type:`button`,text:{type:`plain_text`,text:truncatePlainText(e.label),emoji:!1},action_id:`${t}:button:${n}`,value:e.id};return(e.style===`primary`||e.style===`danger`)&&(r.style=e.style),r}function buildOption(e){let t={text:{text:truncatePlainText(e.label),type:`plain_text`},value:e.id},n=truncatePlainText(e.description);return n&&n.length>0&&(t.description={text:n,type:`plain_text`}),t}function renderInputRequestCardBlock(e,t){let n={type:`card`,body:{type:`mrkdwn`,text:truncateCardBodyText(`*${e.prompt}*`),verbatim:!1},actions:cardButtonOptions(e).map((e,n)=>buildCardButton(e,t,n))};return isApprovalRequest(e)&&(n.subtext={type:`mrkdwn`,text:`I've paused until someone approves or cancels.`}),n}function cardButtonOptions(e){let t=e.options??[];if(!isApprovalRequest(e))return t.map(toCardButtonOption);let n=t.find(e=>e.id===`approve`),r=t.find(e=>e.id===`cancel`);return!n||!r?t.map(toCardButtonOption):[{id:r.id,label:`Cancel`},{id:n.id,label:`Approve`,style:`primary`}]}function toCardButtonOption(e){let t={id:e.id,label:e.label};return e.style===`primary`||e.style===`danger`?{...t,style:e.style}:t}function buildAnsweredBlocks(e){let t=[];for(let n of e.promptBlocks)n!=null&&t.push(n);let n=truncateWithEllipsis(e.answerLabel,SLACK_SECTION_TEXT_MAX_LENGTH-20-1);return t.push({type:`section`,text:{type:`mrkdwn`,text:`:white_check_mark: *${n}*`}}),e.userId&&e.userId.length>0&&t.push({type:`context`,elements:[{type:`mrkdwn`,text:`Answered by <@${e.userId}>`}]}),t}function renderInputRequestDetailBlocks(e){let t=formatToolInputDetails(e);return t===void 0?[]:[{type:`section`,text:{type:`mrkdwn`,text:t}}]}function renderToolInputContainerBlock(e){let t=formatToolInputContainerText(e);if(t!==void 0)return{type:`container`,title:{type:`plain_text`,text:`Tool input`},is_collapsible:!0,default_collapsed:!0,child_blocks:[{type:`section`,text:{type:`mrkdwn`,text:t}}]}}function formatToolInputContainerText(e){if(!isApprovalRequest(e))return;let t=JSON.stringify(e.action.input,null,2);return t===`{}`?void 0:`\`\`\`
|
|
2
2
|
${truncateWithEllipsis(t,SLACK_SECTION_TEXT_MAX_LENGTH-4-4)}${TOOL_INPUT_SUFFIX}`}function formatToolInputDetails(e){if(!isApprovalRequest(e))return;let t=JSON.stringify(e.action.input,null,2);return t===`{}`?void 0:`*Tool input*
|
|
3
3
|
\`\`\`
|
|
4
4
|
${truncateWithEllipsis(t,SLACK_SECTION_TEXT_MAX_LENGTH-17-4)}${TOOL_INPUT_SUFFIX}`}function truncateWithEllipsis(e,t){if(e.length<=t)return e;let n=Math.max(0,t-3);return`${e.slice(0,n).trimEnd()}...`}function isBlockType(e,t){return typeof e==`object`&&!!e&&e.type===t}function isApprovalRequest(e){return e.kind===`tool-approval`}export{HITL_ACTION_PREFIX,HITL_FREEFORM_ACTION_PREFIX,HITL_FREEFORM_MODAL_ACTION_ID,HITL_FREEFORM_MODAL_BLOCK_ID,HITL_FREEFORM_MODAL_CALLBACK_ID,buildAnsweredBlocks,buildFreeformModalView,decodeFreeformHitlActionId,decodeHitlActionId,decodeHitlResponse,deriveHitlResponse,formatInputRequestFallbackText,isFreeformAction,isHitlAction,renderInputRequestBlocks,renderInputRequestPostParts};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type { Approval, ApprovalConfiguration, ApprovalContext, ApprovalPolicy, ApprovalRequest, ApprovalResponse, ApprovalResponseAuth, ApprovalResponseContext, ApprovalResponseDecision, ApprovalResponsePolicy, ApprovalResponseSession, ApprovalStatus, } from "#approval/definition.js";
|
|
1
|
+
export type { Approval, ApprovalConfiguration, ApprovalContext, ApprovalPolicy, ApprovalPrompt, ApprovalPromptContext, ApprovalRequest, ApprovalResponse, ApprovalResponseAuth, ApprovalResponseContext, ApprovalResponseDecision, ApprovalResponsePolicy, ApprovalResponseSession, ApprovalStatus, ConnectionToolAnnotations, ToolApproval, ToolApprovalConfiguration, } from "#approval/definition.js";
|
|
2
2
|
export { resolveApprovalPolicy } from "#approval/definition.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{stampConnectionProtocol}from"#public/definitions/connections/protocol.js";import{stampDefinitionKey}from"#internal/authored-definition/source-identity.js";import{normalizeAuthorizationSpec}from"#shared/validate-authorization.js";function defineMcpClientConnection(e){return e.auth!==void 0&&typeof e.auth!=`function`&&(e.auth=normalizeAuthorizationSpec(e.auth,`defineMcpClientConnection:`)),stampDefinitionKey(e
|
|
1
|
+
import{stampConnectionProtocol}from"#public/definitions/connections/protocol.js";import{connectionDefinitionKey,stampDefinitionKey}from"#internal/authored-definition/source-identity.js";import{normalizeAuthorizationSpec}from"#shared/validate-authorization.js";function defineMcpClientConnection(e){return e.auth!==void 0&&typeof e.auth!=`function`&&(e.auth=normalizeAuthorizationSpec(e.auth,`defineMcpClientConnection:`)),stampDefinitionKey(e,connectionDefinitionKey(e.url,e.description)),stampConnectionProtocol(e,`mcp`),e}export{defineMcpClientConnection};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{stampConnectionProtocol}from"#public/definitions/connections/protocol.js";import{stampDefinitionKey}from"#internal/authored-definition/source-identity.js";import{normalizeAuthorizationSpec}from"#shared/validate-authorization.js";function defineOpenAPIConnection(e){e.auth!==void 0&&typeof e.auth!=`function`&&(e.auth=normalizeAuthorizationSpec(e.auth,`defineOpenAPIConnection:`))
|
|
1
|
+
import{stampConnectionProtocol}from"#public/definitions/connections/protocol.js";import{connectionDefinitionKey,stampDefinitionKey}from"#internal/authored-definition/source-identity.js";import{normalizeAuthorizationSpec}from"#shared/validate-authorization.js";function defineOpenAPIConnection(e){return e.auth!==void 0&&typeof e.auth!=`function`&&(e.auth=normalizeAuthorizationSpec(e.auth,`defineOpenAPIConnection:`)),stampDefinitionKey(e,connectionDefinitionKey(e.baseUrl??``,e.description)),stampConnectionProtocol(e,`openapi`),e}export{defineOpenAPIConnection};
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Each destination is declared in its own path-named provider file.
|
|
9
9
|
*/
|
|
10
|
-
import { type ManagedTraceOptions, type OtelIntegration } from "#tracing/otel-declaration.js";
|
|
11
|
-
export { isOtelDeclaration, isOtelIntegration, otel, otelIntegration, type OtelDeclaration, type OtelIntegration, type OtelIntegrationOptions, type OtelOptions, type ManagedTraceOptions, type SpanAttributeDecision, type SpanExportAttributeValue, type SpanExportContext, type SpanExportDecision, type SpanExportPolicy, type TraceCaptureContext, type TraceCapturePolicy, type TracePolicyDecision, } from "#tracing/otel-declaration.js";
|
|
10
|
+
import { type ManagedTraceOptions, type OtelIntegration } from "#tracing/eve/otel-declaration.js";
|
|
11
|
+
export { isOtelDeclaration, isOtelIntegration, otel, otelIntegration, type OtelDeclaration, type OtelIntegration, type OtelIntegrationOptions, type OtelOptions, type ManagedTraceOptions, type SpanAttributeDecision, type SpanExportAttributeValue, type SpanExportContext, type SpanExportDecision, type SpanExportPolicy, type TraceCaptureContext, type TraceCapturePolicy, type TracePolicyDecision, } from "#tracing/eve/otel-declaration.js";
|
|
12
12
|
export type { SpanExporter, SpanProcessor } from "#compiled/@vercel/otel/index.js";
|
|
13
13
|
/**
|
|
14
14
|
* Vercel Agent Runs, enabled by default in preview and production deployments.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{agentRunsIntegration,isOtelDeclaration,isOtelIntegration,managedOtelIntegration,otel,otelIntegration}from"#tracing/otel-declaration.js";import{createLocalTracesProcessor,resolveLocalTracesExportPolicy}from"#tracing/local
|
|
1
|
+
import{agentRunsIntegration,isOtelDeclaration,isOtelIntegration,managedOtelIntegration,otel,otelIntegration}from"#tracing/eve/otel-declaration.js";import{createLocalTracesProcessor,resolveLocalTracesExportPolicy}from"#tracing/local/traces.js";function agentRuns(e={}){return agentRunsIntegration(e)}function localTraces(e={}){return managedOtelIntegration({...e,exportPolicy:resolveLocalTracesExportPolicy(e.exportPolicy),spanProcessors:[createLocalTracesProcessor()]})}export{agentRuns,isOtelDeclaration,isOtelIntegration,localTraces,otel,otelIntegration};
|
|
@@ -2,6 +2,8 @@ import type { SandboxNetworkPolicy } from "#shared/sandbox-network-policy.js";
|
|
|
2
2
|
import type { SandboxSession } from "#shared/sandbox-session.js";
|
|
3
3
|
/** Live sandbox capabilities exposed by a Vercel environment. */
|
|
4
4
|
export interface VercelSandboxSession extends SandboxSession {
|
|
5
|
+
/** Name of the live Vercel Sandbox (stable across stop/resume for the session). */
|
|
6
|
+
readonly name: string;
|
|
5
7
|
/** Applies a firewall policy to the live Vercel Sandbox. */
|
|
6
8
|
setNetworkPolicy(policy: SandboxNetworkPolicy): Promise<void>;
|
|
7
9
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Per-tool approval helpers used inside `agent/tools/*.ts` files.
|
|
3
3
|
*/
|
|
4
|
-
export type { Approval, ApprovalConfiguration, ApprovalContext, ApprovalPolicy, ApprovalRequest, ApprovalResponse, ApprovalResponseAuth, ApprovalResponseContext, ApprovalResponseDecision, ApprovalResponsePolicy, ApprovalResponseSession, ApprovalStatus, } from "#public/definitions/approval.js";
|
|
4
|
+
export type { Approval, ApprovalConfiguration, ApprovalContext, ApprovalPolicy, ApprovalPrompt, ApprovalPromptContext, ApprovalRequest, ApprovalResponse, ApprovalResponseAuth, ApprovalResponseContext, ApprovalResponseDecision, ApprovalResponsePolicy, ApprovalResponseSession, ApprovalStatus, ConnectionToolAnnotations, ToolApproval, ToolApprovalConfiguration, } from "#public/definitions/approval.js";
|
|
5
5
|
export type { AutoApprovalOptions } from "#tools/approval/policies.js";
|
|
6
6
|
export { always, auto, never, once } from "#tools/approval/policies.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tool authoring helpers for `agent/tools/*.ts` files.
|
|
3
3
|
*/
|
|
4
|
-
export { type DisabledToolSentinel, defineTool, disableTool, isDisabledToolSentinel, type ToolLabelDefinition, type ToolAuthOptions, type ToolAuthProvider, type ToolDefinition, type ToolContext, type ToolModelOutput, type ToolModelOutputPart, } from "#tools/definition.js";
|
|
4
|
+
export { type DisabledToolSentinel, defineTool, disableTool, isDisabledToolSentinel, type ApprovalResponder, type ApprovedCall, type ToolLabelDefinition, type ToolAuthOptions, type ToolAuthProvider, type ToolDefinition, type ToolContext, type ToolModelOutput, type ToolModelOutputPart, } from "#tools/definition.js";
|
|
5
5
|
export { defineDynamic } from "#dynamic/definition.js";
|
|
6
6
|
export { defineDurableSchema } from "#tools/durable-schema.js";
|
|
7
7
|
export { serializeModelInputSchema } from "#tools/schema.js";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { RuntimeActionResult } from "#shared/action-types.js";
|
|
2
2
|
import type { McpClientConnectionDefinition } from "#public/definitions/connections/mcp.js";
|
|
3
|
+
import type { OpenAPIConnectionDefinition } from "#public/definitions/connections/openapi.js";
|
|
3
4
|
import type { ToolDefinition } from "#tools/definition.js";
|
|
4
5
|
/**
|
|
5
6
|
* Narrowed tool result returned by {@link toolResultFrom} when the
|
|
@@ -14,10 +15,10 @@ export interface MatchedToolResult<TOutput> {
|
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
16
17
|
* Narrowed tool result returned by {@link toolResultFrom} when the
|
|
17
|
-
* action result matches an MCP connection.
|
|
18
|
+
* action result matches an MCP or OpenAPI connection.
|
|
18
19
|
*
|
|
19
|
-
* `output` stays `unknown` because
|
|
20
|
-
* `connectionToolName` is the unqualified
|
|
20
|
+
* `output` stays `unknown` because connection tool schemas are remote.
|
|
21
|
+
* `connectionToolName` is the unqualified connection tool name (e.g.
|
|
21
22
|
* `"list_issues"`) while `toolName` is the full qualified name
|
|
22
23
|
* (e.g. `"linear__list_issues"`).
|
|
23
24
|
*/
|
|
@@ -27,22 +28,24 @@ export interface MatchedConnectionResult {
|
|
|
27
28
|
readonly output: unknown;
|
|
28
29
|
readonly toolName: string;
|
|
29
30
|
}
|
|
31
|
+
type ConnectionDefinition = McpClientConnectionDefinition | OpenAPIConnectionDefinition;
|
|
30
32
|
/**
|
|
31
33
|
* Overloaded signature for {@link toolResultFrom}.
|
|
32
34
|
*/
|
|
33
35
|
export interface ToolResultFromFn {
|
|
34
36
|
<TInput, TOutput>(result: RuntimeActionResult, tool: ToolDefinition<TInput, TOutput>): MatchedToolResult<TOutput> | undefined;
|
|
35
|
-
(result: RuntimeActionResult, connection:
|
|
37
|
+
(result: RuntimeActionResult, connection: ConnectionDefinition): MatchedConnectionResult | undefined;
|
|
36
38
|
}
|
|
37
39
|
/**
|
|
38
40
|
* Narrows a {@link RuntimeActionResult} to a typed tool or connection
|
|
39
41
|
* result by matching against an authored definition object.
|
|
40
42
|
*
|
|
41
|
-
* Pass a `ToolDefinition` to get a typed `output`; pass
|
|
42
|
-
*
|
|
43
|
-
*
|
|
43
|
+
* Pass a `ToolDefinition` to get a typed `output`; pass an MCP or OpenAPI
|
|
44
|
+
* connection definition to match any tool from that connection (`output`
|
|
45
|
+
* stays `unknown`).
|
|
44
46
|
*
|
|
45
47
|
* Returns `undefined` when the result doesn't match, or when
|
|
46
48
|
* `isError` is `true`.
|
|
47
49
|
*/
|
|
48
50
|
export declare const toolResultFrom: ToolResultFromFn;
|
|
51
|
+
export {};
|
|
@@ -84,6 +84,12 @@ export interface UseEveAgentOptions<TData> extends EveAgentStoreCallbacks<TData>
|
|
|
84
84
|
readonly optimistic?: boolean;
|
|
85
85
|
/** Follow each subagent call's session into `conversation.agents` while mounted. @default false */
|
|
86
86
|
readonly followSubagents?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Keep the session stream open between turns to show events that arrive from schedules,
|
|
89
|
+
* channels, or other clients. Set to false to close it once the session is idle and reopen it
|
|
90
|
+
* on the next send, answer, or resume. @default true
|
|
91
|
+
*/
|
|
92
|
+
readonly followIdle?: boolean;
|
|
87
93
|
/**
|
|
88
94
|
* Prewarm an owned session when true. React observes this value across renders;
|
|
89
95
|
* changing it from false to true prepares the current session, and reset checks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{EveAgentStore,attachEveAgentStore,detachEveAgentStore}from"#client/eve-agent-store.js";import{conversationReducer}from"#client/conversation-reducer.js";import{useCallback,useEffect,useMemo,useRef,useState,useSyncExternalStore}from"react";import{resolveEveAgentHost}from"#client/agent-host.js";function useEveAgent(e={}){let t=useRef(void 0),n=useRef(!1),r=useRef(e.resume??!1),[i,a]=useState(r.current),[o,s]=useState(0),c=e.prewarm??!1;if(!t.current){if(r.current&&e.initialSession===void 0&&e.session===void 0)throw Error(`useEveAgent({ resume: true }) requires initialSession or session.`);let n=e.reducer??conversationReducer;t.current=new EveAgentStore({auth:e.auth,headers:e.headers,host:resolveEveAgentHost({agent:e.agent,host:e.host}),initialEvents:e.initialEvents,initialSession:e.initialSession,optimistic:e.optimistic,followSubagents:e.followSubagents,reducer:n,session:e.session})}let l=t.current;l.setCallbacks({onError:e.onError,onEvent:e.onEvent,onFinish:e.onFinish,onSessionChange:e.onSessionChange,prepareSend:e.prepareSend});let u=useCallback(e=>l.subscribe(e),[l]),d=useSyncExternalStore(u,()=>l.snapshot,()=>l.snapshot);useEffect(()=>{n.current=!0;let e=setTimeout(()=>attachEveAgentStore(l),0);return()=>{n.current=!1,clearTimeout(e),queueMicrotask(()=>{n.current||detachEveAgentStore(l)})}},[l]),useEffect(()=>{if(!c)return;let e=setTimeout(()=>void l.prewarm().catch(()=>{}),0);return()=>clearTimeout(e)},[o,c,l]),useEffect(()=>{if(!r.current)return;let e=!0,finish=()=>{e&&a(!1)},t=setTimeout(()=>void l.resume().then(finish,finish),0);return()=>{e=!1,clearTimeout(t)}},[l]);let f=useCallback(()=>l.cancel(),[l]),p=useCallback(()=>{l.reset(),s(e=>e+1)},[l]),m=useCallback(()=>l.prewarm(),[l]),h=useCallback(()=>l.resume(),[l]),g=useCallback((e,t)=>l.send({...t,message:e}),[l]),_=useCallback((e,t)=>l.send({...t,inputResponses:e}),[l]),v=i&&d.status===`ready`?{...d,status:`resuming`}:d;return useMemo(()=>({...v,cancel:f,prewarm:m,reset:p,respond:_,resume:h,send:g}),[f,m,p,_,h,g,v])}export{useEveAgent};
|
|
1
|
+
import{EveAgentStore,attachEveAgentStore,detachEveAgentStore}from"#client/eve-agent-store.js";import{conversationReducer}from"#client/conversation-reducer.js";import{useCallback,useEffect,useMemo,useRef,useState,useSyncExternalStore}from"react";import{resolveEveAgentHost}from"#client/agent-host.js";function useEveAgent(e={}){let t=useRef(void 0),n=useRef(!1),r=useRef(e.resume??!1),[i,a]=useState(r.current),[o,s]=useState(0),c=e.prewarm??!1;if(!t.current){if(r.current&&e.initialSession===void 0&&e.session===void 0)throw Error(`useEveAgent({ resume: true }) requires initialSession or session.`);let n=e.reducer??conversationReducer;t.current=new EveAgentStore({auth:e.auth,headers:e.headers,host:resolveEveAgentHost({agent:e.agent,host:e.host}),initialEvents:e.initialEvents,initialSession:e.initialSession,optimistic:e.optimistic,followSubagents:e.followSubagents,followIdle:e.followIdle,reducer:n,session:e.session})}let l=t.current;l.setCallbacks({onError:e.onError,onEvent:e.onEvent,onFinish:e.onFinish,onSessionChange:e.onSessionChange,prepareSend:e.prepareSend});let u=useCallback(e=>l.subscribe(e),[l]),d=useSyncExternalStore(u,()=>l.snapshot,()=>l.snapshot);useEffect(()=>{n.current=!0;let e=setTimeout(()=>attachEveAgentStore(l),0);return()=>{n.current=!1,clearTimeout(e),queueMicrotask(()=>{n.current||detachEveAgentStore(l)})}},[l]),useEffect(()=>{if(!c)return;let e=setTimeout(()=>void l.prewarm().catch(()=>{}),0);return()=>clearTimeout(e)},[o,c,l]),useEffect(()=>{if(!r.current)return;let e=!0,finish=()=>{e&&a(!1)},t=setTimeout(()=>void l.resume().then(finish,finish),0);return()=>{e=!1,clearTimeout(t)}},[l]);let f=useCallback(()=>l.cancel(),[l]),p=useCallback(()=>{l.reset(),s(e=>e+1)},[l]),m=useCallback(()=>l.prewarm(),[l]),h=useCallback(()=>l.resume(),[l]),g=useCallback((e,t)=>l.send({...t,message:e}),[l]),_=useCallback((e,t)=>l.send({...t,inputResponses:e}),[l]),v=i&&d.status===`ready`?{...d,status:`resuming`}:d;return useMemo(()=>({...v,cancel:f,prewarm:m,reset:p,respond:_,resume:h,send:g}),[f,m,p,_,h,g,v])}export{useEveAgent};
|
|
@@ -9,6 +9,11 @@ export declare function createAuthorizationContext(input: {
|
|
|
9
9
|
readonly completeAuthorization?: (scoped: ScopedAuthorization) => Promise<boolean>;
|
|
10
10
|
}): {
|
|
11
11
|
getToken(provider?: ToolAuthProvider, options?: ToolAuthOptions): Promise<TokenResult>;
|
|
12
|
+
/**
|
|
13
|
+
* The given responder's stored token, resolved through this execution's
|
|
14
|
+
* providers; never starts or completes a sign-in.
|
|
15
|
+
*/
|
|
16
|
+
getResponderToken(responder: SessionAuthContext, provider: ToolAuthProvider, options?: ToolAuthOptions): Promise<TokenResult>;
|
|
12
17
|
requireAuth(provider?: ToolAuthProvider, options?: ToolAuthOptions): never;
|
|
13
18
|
run: (execute: () => unknown) => Promise<unknown> | AsyncIterable<unknown>;
|
|
14
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createAuthorizationExecution}from"#runtime/connections/scoped-authorization.js";import{normalizeAuthorizationSpec}from"#shared/validate-authorization.js";function createAuthorizationContext(e){let t=createAuthorizationExecution(e),n={},resolve=(t,r)=>buildInlineScopedAuthorization({...e,inlineAuthState:n,provider:t,options:r});return{async getToken(e,n){if(e===void 0)throw missingProviderError(`ctx.getToken`);return await t.getToken(resolve(e,n))},requireAuth(e,n){if(e===void 0)throw missingProviderError(`ctx.requireAuth`);return t.requireAuth(resolve(e,n))},run:t.run}}function buildInlineScopedAuthorization(e){let t=normalizeInlineProvider(e.provider,e.options);return{authorization:t,boundResponder:e.boundResponder,connection:e.options?.connection??{url:``},scope:e.options?.authKey===void 0?deriveInlineScope({authorization:t,inlineAuthState:e.inlineAuthState,provider:e.provider,scope:e.scope}):validateInlineAuthKey(e.options.authKey)}}function normalizeInlineProvider(e,t){let n=normalizeAuthorizationSpec(e,`ctx.getToken:`,`provider`);if(t?.displayName===void 0)return n;if(t.displayName.length===0)throw Error(`ctx.getToken: The "options.displayName" field must be a non-empty string.`);return{...n,displayName:t.displayName}}function deriveInlineScope(e){let t=e.authorization.vercelConnect?.connector;if(t!==void 0)return`${e.scope}__${sanitizeScopeSegment(t)}`;if(e.inlineAuthState.anonymousProvider===void 0)e.inlineAuthState.anonymousProvider=e.provider;else if(e.inlineAuthState.anonymousProvider!==e.provider)throw Error(`ctx.getToken: Multiple inline auth providers without provider metadata need explicit auth keys. Pass options.authKey for each provider, for example ctx.getToken(auth, { authKey: "github" }).`);return`${e.scope}__inline_auth`}function validateInlineAuthKey(e){if(!/^[A-Za-z0-9_.:-]+$/u.test(e))throw Error(`ctx.getToken: The "options.authKey" field must contain only letters, digits, "_", "-", ".", or ":".`);return e}function sanitizeScopeSegment(e){let t=e.replace(/[^A-Za-z0-9_.:-]+/gu,`_`).replace(/^_+|_+$/gu,``);return t.length>0?t:`provider`}function missingProviderError(e){return Error(`${e}: Pass an auth provider, for example ${e}(connect("github/myagent")).`)}export{createAuthorizationContext};
|
|
1
|
+
import{createAuthorizationExecution}from"#runtime/connections/scoped-authorization.js";import{normalizeAuthorizationSpec}from"#shared/validate-authorization.js";function createAuthorizationContext(e){let t=createAuthorizationExecution(e),n={},resolve=(t,r)=>buildInlineScopedAuthorization({...e,inlineAuthState:n,provider:t,options:r});return{async getToken(e,n){if(e===void 0)throw missingProviderError(`ctx.getToken`);return await t.getToken(resolve(e,n))},async getResponderToken(e,n,r){return await t.getResponderToken({...resolve(n,r),boundResponder:e})},requireAuth(e,n){if(e===void 0)throw missingProviderError(`ctx.requireAuth`);return t.requireAuth(resolve(e,n))},run:t.run}}function buildInlineScopedAuthorization(e){let t=normalizeInlineProvider(e.provider,e.options);return{authorization:t,boundResponder:e.boundResponder,connection:e.options?.connection??{url:``},scope:e.options?.authKey===void 0?deriveInlineScope({authorization:t,inlineAuthState:e.inlineAuthState,provider:e.provider,scope:e.scope}):validateInlineAuthKey(e.options.authKey)}}function normalizeInlineProvider(e,t){let n=normalizeAuthorizationSpec(e,`ctx.getToken:`,`provider`);if(t?.displayName===void 0)return n;if(t.displayName.length===0)throw Error(`ctx.getToken: The "options.displayName" field must be a non-empty string.`);return{...n,displayName:t.displayName}}function deriveInlineScope(e){let t=e.authorization.vercelConnect?.connector;if(t!==void 0)return`${e.scope}__${sanitizeScopeSegment(t)}`;if(e.inlineAuthState.anonymousProvider===void 0)e.inlineAuthState.anonymousProvider=e.provider;else if(e.inlineAuthState.anonymousProvider!==e.provider)throw Error(`ctx.getToken: Multiple inline auth providers without provider metadata need explicit auth keys. Pass options.authKey for each provider, for example ctx.getToken(auth, { authKey: "github" }).`);return`${e.scope}__inline_auth`}function validateInlineAuthKey(e){if(!/^[A-Za-z0-9_.:-]+$/u.test(e))throw Error(`ctx.getToken: The "options.authKey" field must contain only letters, digits, "_", "-", ".", or ":".`);return e}function sanitizeScopeSegment(e){let t=e.replace(/[^A-Za-z0-9_.:-]+/gu,`_`).replace(/^_+|_+$/gu,``);return t.length>0?t:`provider`}function missingProviderError(e){return Error(`${e}: Pass an auth provider, for example ${e}(connect("github/myagent")).`)}export{createAuthorizationContext};
|
|
@@ -1,22 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function createMcpTraceFetch(input:
|
|
3
|
-
readonly connectionName: string;
|
|
4
|
-
readonly fetcher?: typeof fetch;
|
|
5
|
-
readonly getActiveContext?: () => Context;
|
|
6
|
-
readonly getProtocolVersion: () => string | undefined;
|
|
7
|
-
readonly injectContext?: McpTraceContextInjector;
|
|
8
|
-
}): typeof fetch;
|
|
1
|
+
import { createMcpTraceFetch as traceFetch } from "#tracing/eve/mcp.js";
|
|
2
|
+
export declare function createMcpTraceFetch(input: Parameters<typeof traceFetch>[0]): typeof fetch;
|
|
9
3
|
export declare function withMcpToolsListSpan<T>(input: {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
connectionName: string;
|
|
5
|
+
protocolVersion?: string;
|
|
6
|
+
execute: () => Promise<T>;
|
|
13
7
|
}): Promise<T>;
|
|
14
8
|
export declare function withMcpToolCallSpan<T>(input: {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
9
|
+
connectionName: string;
|
|
10
|
+
protocolVersion?: string;
|
|
11
|
+
toolName: string;
|
|
12
|
+
arguments: unknown;
|
|
13
|
+
execute: () => Promise<T>;
|
|
20
14
|
}): Promise<T>;
|
|
21
|
-
type McpTraceContextInjector = (context: Context, carrier: Record<string, string>) => void;
|
|
22
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{stripEveTraceBaggage}from"#protocol/baggage.js";import{createMcpTraceFetch as createMcpTraceFetch$1,createMcpTracing}from"#tracing/eve/mcp.js";function createMcpTraceFetch(e){return createMcpTraceFetch$1({...e,filterCarrier:stripEveTraceBaggage})}function withMcpToolsListSpan(e){return createMcpTracing().list(e)}function withMcpToolCallSpan(e){return createMcpTracing().call(e)}export{createMcpTraceFetch,withMcpToolCallSpan,withMcpToolsListSpan};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const HTTP_METHODS=[`get`,`put`,`post`,`delete`,`patch`,`head`,`options`];function operationName(e,t,n){if(typeof e.operationId==`string`&&e.operationId.length>0){let t=sanitizeToolName(e.operationId);if(t.length>0)return t}return sanitizeToolName(`${t}_${n.replace(/[{}]/g,``).replace(/[^a-zA-Z0-9]+/g,`_`).replace(/^_+|_+$/g,``)}`)}function sanitizeToolName(e){return e.replace(/[^a-zA-Z0-9_-]+/g,`_`).replace(/^[_-]+|[_-]+$/g,``).slice(0,64)}function uniqueName(e,t){let n=e,r=2;for(;t.has(n);)n=`${e}
|
|
1
|
+
const HTTP_METHODS=[`get`,`put`,`post`,`delete`,`patch`,`head`,`options`];function operationName(e,t,n){if(typeof e.operationId==`string`&&e.operationId.length>0){let t=sanitizeToolName(e.operationId);if(t.length>0)return t}return sanitizeToolName(`${t}_${n.replace(/[{}]/g,``).replace(/[^a-zA-Z0-9]+/g,`_`).replace(/^_+|_+$/g,``)}`)}function sanitizeToolName(e){return e.replace(/[^a-zA-Z0-9_-]+/g,`_`).replace(/^[_-]+|[_-]+$/g,``).slice(0,64)}function uniqueName(e,t){let n=e,r=2;for(;t.has(n);){let t=`_${r}`;n=`${e.slice(0,64-t.length)}${t}`,r+=1}return t.add(n),n}function operationDescription(e){return typeof e.summary==`string`&&e.summary.length>0?e.summary:typeof e.description==`string`?e.description:``}export{HTTP_METHODS,operationDescription,operationName,uniqueName};
|