eve 0.27.0 → 0.27.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 +18 -0
- package/dist/src/channel/resolve-active-session.d.ts +4 -0
- package/dist/src/channel/resolve-active-session.js +1 -0
- package/dist/src/channel/routes.d.ts +11 -0
- package/dist/src/cli/dev/tui/vercel-trusted-sources-policy.d.ts +1 -1
- package/dist/src/cli/dev/tui/vercel-trusted-sources.js +1 -1
- package/dist/src/compiled/.vendor-stamp.json +16 -16
- package/dist/src/compiled/@ai-sdk/anthropic/index.js +2 -2
- package/dist/src/compiled/@ai-sdk/google/index.d.ts +9 -2
- package/dist/src/compiled/@ai-sdk/google/index.js +6 -6
- package/dist/src/compiled/@ai-sdk/mcp/index.d.ts +18 -3
- package/dist/src/compiled/@ai-sdk/mcp/index.js +1 -1
- package/dist/src/compiled/@ai-sdk/openai/index.d.ts +285 -24
- package/dist/src/compiled/@ai-sdk/openai/index.js +2 -2
- package/dist/src/compiled/@ai-sdk/otel/index.js +1 -1
- package/dist/src/compiled/@ai-sdk/provider-utils/index.d.ts +7 -3
- package/dist/src/compiled/@vercel/oidc/index.js +28 -2
- package/dist/src/compiled/@vercel/sandbox/api-client/api-client.d.ts +11 -0
- package/dist/src/compiled/@vercel/sandbox/api-client/validators.d.ts +7 -0
- package/dist/src/compiled/@vercel/sandbox/command.d.ts +8 -0
- package/dist/src/compiled/@vercel/sandbox/execution-context.d.ts +116 -0
- package/dist/src/compiled/@vercel/sandbox/index.d.ts +3 -1
- package/dist/src/compiled/@vercel/sandbox/index.js +20 -19
- package/dist/src/compiled/@vercel/sandbox/network-policy.d.ts +13 -5
- package/dist/src/compiled/@vercel/sandbox/sandbox-user.d.ts +212 -0
- package/dist/src/compiled/@vercel/sandbox/sandbox.d.ts +133 -2
- package/dist/src/compiled/@vercel/sandbox/session.d.ts +2 -1
- package/dist/src/compiled/@vercel/sandbox/snapshot.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/create-hook.d.ts +41 -22
- package/dist/src/compiled/@workflow/core/flushable-stream.d.ts +29 -0
- package/dist/src/compiled/@workflow/core/global.d.ts +2 -0
- package/dist/src/compiled/@workflow/core/index.js +2 -2
- package/dist/src/compiled/@workflow/core/private.d.ts +6 -17
- package/dist/src/compiled/@workflow/core/private.js +1 -1
- package/dist/src/compiled/@workflow/core/replay-payload-cache.d.ts +56 -0
- package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +11 -0
- package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +6 -4
- package/dist/src/compiled/@workflow/core/runtime/resume-hook.d.ts +4 -1
- package/dist/src/compiled/@workflow/core/runtime/step-executor.d.ts +39 -0
- package/dist/src/compiled/@workflow/core/runtime.js +3 -3
- package/dist/src/compiled/@workflow/core/serialization.d.ts +44 -4
- package/dist/src/compiled/@workflow/core/symbols.d.ts +13 -0
- package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/workflow.js +1 -1
- package/dist/src/compiled/@workflow/errors/error-codes.d.ts +2 -0
- package/dist/src/compiled/@workflow/errors/index.d.ts +14 -0
- package/dist/src/compiled/@workflow/errors/index.js +1 -1
- package/dist/src/compiled/@workflow/world/events.d.ts +15 -0
- package/dist/src/compiled/@workflow/world/hooks.d.ts +2 -1
- package/dist/src/compiled/@workflow/world/interfaces.d.ts +77 -4
- package/dist/src/compiled/@workflow/world-local/index.js +4 -4
- package/dist/src/compiled/@workflow/world-vercel/index.js +16 -16
- package/dist/src/compiled/_chunks/node/{auth-BuQkq4Gr.js → auth-l7F2PF2b.js} +2 -2
- package/dist/src/compiled/_chunks/node/{version-DD-FX9rK.js → version-CjHTLx2a.js} +1 -1
- package/dist/src/compiled/_chunks/node/virtual-loader-Cwgujv7l.js +1 -0
- package/dist/src/compiled/_chunks/workflow/attribute-changes-Dk1fP6vt.js +20 -0
- package/dist/src/compiled/_chunks/workflow/{chunk-BHKSVoKr.js → chunk-BTyA9uPd.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/dist-B3qkUnLJ.js +3 -0
- package/dist/src/compiled/_chunks/workflow/{dist-CSfKNxQW.js → dist-BX517Nmz.js} +2 -2
- package/dist/src/compiled/_chunks/workflow/{dist-zLevmMyU.js → dist-C_VDTghO.js} +10 -10
- package/dist/src/compiled/_chunks/workflow/{dist-CttsoN4D.js → dist-CrxV2rsR.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{functions-PT9ri9Hu.js → functions-Dv8dc_-I.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/resume-hook-czpG5xnP.js +1 -0
- package/dist/src/compiled/_chunks/workflow/run-6zaMjFY6.js +1 -0
- package/dist/src/compiled/_chunks/workflow/sleep-B2u06FWc.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{src-CQuMexnO.js → src-D1EltLDA.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{token-CaY0nA5J.js → token-Cz223z3C.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/token-DWqA5-DA.js +1 -0
- package/dist/src/compiled/_chunks/workflow/token-util-B6qBs3-0.js +27 -0
- package/dist/src/compiled/_chunks/workflow/{undici-fb54XL8i.js → undici-C2ZhYnV9.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/wrapper-Cc2otuUR.js +6 -0
- package/dist/src/compiled/env-runner/index.js +1 -1
- package/dist/src/compiled/env-runner/node-worker.js +1 -1
- package/dist/src/compiled/eventsource-parser/stream/index.d.ts +16 -3
- package/dist/src/compiled/jose/index.js +1 -1
- package/dist/src/compiler/compile-from-memory.d.ts +5 -0
- package/dist/src/compiler/compile-from-memory.js +1 -1
- package/dist/src/compiler/extension-compatibility.d.ts +10 -10
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/execution/deliver-payloads.d.ts +1 -1
- package/dist/src/execution/deliver-payloads.js +1 -1
- package/dist/src/execution/workflow-entry.js +1 -1
- package/dist/src/execution/workflow-steps.js +1 -1
- package/dist/src/harness/session-limit-continuation.d.ts +8 -0
- package/dist/src/harness/session-limit-continuation.js +1 -1
- package/dist/src/harness/session-limit-enforcement.d.ts +9 -6
- package/dist/src/harness/session-limit-enforcement.js +1 -1
- package/dist/src/harness/stale-input-responses.d.ts +21 -3
- package/dist/src/harness/stale-input-responses.js +2 -2
- package/dist/src/harness/tool-loop.js +2 -2
- package/dist/src/harness/turn-cancellation.d.ts +13 -0
- package/dist/src/harness/turn-cancellation.js +1 -1
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
- package/dist/src/internal/workflow-bundle/vercel-workflow-output.js +1 -1
- package/dist/src/node_modules/.pnpm/@vercel_sdk@1.28.8/node_modules/@vercel/sdk/esm/models/updateprojectblock.js +1 -0
- package/dist/src/node_modules/.pnpm/@vercel_sdk@1.28.8/node_modules/@vercel/sdk/esm/models/updateprojectprojectsbranchmatcher.js +1 -0
- package/dist/src/packages/eve-catalog/src/index.js +1 -1
- package/dist/src/public/channels/discord/defaults.js +1 -1
- package/dist/src/public/channels/linear/api.d.ts +2 -0
- package/dist/src/public/channels/linear/api.js +3 -1
- package/dist/src/public/channels/linear/defaults.js +2 -2
- package/dist/src/public/channels/linear/hitl.d.ts +8 -13
- package/dist/src/public/channels/linear/hitl.js +3 -3
- package/dist/src/public/channels/linear/index.d.ts +1 -1
- package/dist/src/public/channels/linear/index.js +1 -1
- package/dist/src/public/channels/linear/linearChannel.js +1 -1
- package/dist/src/public/channels/slack/api.d.ts +20 -0
- package/dist/src/public/channels/slack/api.js +1 -1
- package/dist/src/public/channels/slack/defaults.js +1 -1
- package/dist/src/public/channels/slack/inbound.d.ts +31 -0
- package/dist/src/public/channels/slack/inbound.js +1 -1
- package/dist/src/public/channels/slack/index.d.ts +2 -2
- package/dist/src/public/channels/slack/slackChannel.d.ts +72 -4
- package/dist/src/public/channels/slack/slackChannel.js +1 -1
- package/dist/src/public/channels/teams/defaults.js +2 -2
- package/dist/src/public/channels/teams/index.d.ts +1 -1
- package/dist/src/public/channels/teams/teamsChannel.d.ts +7 -2
- package/dist/src/public/channels/teams/teamsChannel.js +1 -1
- package/dist/src/public/channels/telegram/defaults.js +1 -1
- package/dist/src/public/definitions/channel.d.ts +1 -1
- package/dist/src/runtime/framework-tools/connection-search-dynamic.js +2 -1
- package/dist/src/setup/scaffold/create/add-to-project.js +1 -1
- package/dist/src/setup/scaffold/create/project.js +2 -2
- package/dist/src/setup/scaffold/create/web-template.d.ts +1 -1
- package/dist/src/setup/scaffold/create/web-template.js +90 -5
- package/dist/src/setup/scaffold/update/channels.js +2 -2
- package/dist/src/setup/scaffold/update/connections.js +1 -1
- package/docs/agent-config.md +10 -5
- package/docs/channels/slack.mdx +76 -10
- package/docs/channels/teams.mdx +10 -3
- package/docs/guides/deployment/vercel.mdx +1 -1
- package/docs/guides/frontend/overview.mdx +2 -0
- package/package.json +22 -22
- package/dist/src/compiled/@workflow/core/step-hydration-cache.d.ts +0 -148
- package/dist/src/compiled/_chunks/node/virtual-loader-B8K8w9cr.js +0 -1
- package/dist/src/compiled/_chunks/workflow/attribute-changes-CXiYB8h9.js +0 -20
- package/dist/src/compiled/_chunks/workflow/dist-BYo8Gno2.js +0 -3
- package/dist/src/compiled/_chunks/workflow/resume-hook-CHXbXuRZ.js +0 -1
- package/dist/src/compiled/_chunks/workflow/run-BjtAGa3_.js +0 -1
- package/dist/src/compiled/_chunks/workflow/sleep-BJAv0MFP.js +0 -1
- package/dist/src/compiled/_chunks/workflow/token-D4VIwGlD.js +0 -1
- package/dist/src/compiled/_chunks/workflow/wrapper-ulTvoTdW.js +0 -6
- package/dist/src/node_modules/.pnpm/@vercel_sdk@1.28.1/node_modules/@vercel/sdk/esm/models/updateprojectprojectsaction.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_sdk@1.28.1/node_modules/@vercel/sdk/esm/models/updateprojectprojectsoptionsallowlist.js +0 -1
- /package/dist/src/node_modules/.pnpm/{@vercel_sdk@1.28.1 → @vercel_sdk@1.28.8}/node_modules/@vercel/sdk/esm/lib/primitives.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_sdk@1.28.1 → @vercel_sdk@1.28.8}/node_modules/@vercel/sdk/esm/lib/schemas.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_sdk@1.28.1 → @vercel_sdk@1.28.8}/node_modules/@vercel/sdk/esm/models/aclaction.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_sdk@1.28.1 → @vercel_sdk@1.28.8}/node_modules/@vercel/sdk/esm/models/sdkvalidationerror.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_sdk@1.28.1 → @vercel_sdk@1.28.8}/node_modules/@vercel/sdk/esm/types/defaultToZeroValue.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_sdk@1.28.1 → @vercel_sdk@1.28.8}/node_modules/@vercel/sdk/esm/types/fp.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_sdk@1.28.1 → @vercel_sdk@1.28.8}/node_modules/@vercel/sdk/esm/types/primitives.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_sdk@1.28.1 → @vercel_sdk@1.28.8}/node_modules/@vercel/sdk/esm/types/rfcdate.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_sdk@1.28.1 → @vercel_sdk@1.28.8}/node_modules/@vercel/sdk/esm/types/smartUnion.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_sdk@1.28.1 → @vercel_sdk@1.28.8}/node_modules/@vercel/sdk/esm/types/unrecognized.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{createErrorId,createLogger,formatError,logError,recordErrorOnSpan}from"#internal/logging.js";import{isScheduleAppAuth}from"#channel/schedule-auth.js";import{AuthKey,ParentSessionKey}from"#context/keys.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{toErrorMessage}from"#shared/errors.js";import{createActionResultEvent,createAuthorizationRequiredEvent,createCompactionCompletedEvent,createCompactionRequestedEvent,createInputRequestedEvent,createResultCompletedEvent,createStepStartedEvent}from"#protocol/message.js";import{summarizeKnownError}from"#harness/semantic-errors/index.js";import{resolveProviderHeaders}from"#internal/gateway.js";import{formatLanguageModelGatewayId}from"#internal/runtime-model.js";import{contextStorage}from"#context/container.js";import{advanceStep,emitFailedStep,emitRecoverableFailedTurn,emitStepStarted,emitStreamContent,emitTurnEpilogue,emitTurnPreamble,getHarnessEmissionState,setHarnessEmissionState}from"#harness/emission.js";import{ToolLoopAgent,isStepCount}from"ai";import{createRuntimeActionRequestFromToolCall,resolvePendingRuntimeActions,setPendingRuntimeActionBatch}from"#harness/runtime-actions.js";import{clearPendingWorkflowInterrupt,getPendingWorkflowInterrupt,setPendingWorkflowInterrupt}from"#harness/workflow-interrupt-state.js";import{getWorkflowRuntimeActionInterrupts,isWorkflowRuntimeActionInterrupt}from"#harness/workflow-runtime-action-state.js";import{getActiveDynamicModelSelection}from"#context/dynamic-model-lifecycle.js";import{context,trace}from"#compiled/@opentelemetry/api/index.js";import{isAuthorizationSignal,setPendingAuthorization}from"#harness/authorization.js";import{throwIfTurnAborted}from"#harness/turn-cancellation.js";import{
|
|
1
|
+
import{createErrorId,createLogger,formatError,logError,recordErrorOnSpan}from"#internal/logging.js";import{isScheduleAppAuth}from"#channel/schedule-auth.js";import{AuthKey,ParentSessionKey}from"#context/keys.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{toErrorMessage}from"#shared/errors.js";import{createActionResultEvent,createAuthorizationRequiredEvent,createCompactionCompletedEvent,createCompactionRequestedEvent,createInputRequestedEvent,createResultCompletedEvent,createStepStartedEvent}from"#protocol/message.js";import{summarizeKnownError}from"#harness/semantic-errors/index.js";import{resolveProviderHeaders}from"#internal/gateway.js";import{formatLanguageModelGatewayId}from"#internal/runtime-model.js";import{contextStorage}from"#context/container.js";import{advanceStep,emitFailedStep,emitRecoverableFailedTurn,emitStepStarted,emitStreamContent,emitTurnEpilogue,emitTurnPreamble,getHarnessEmissionState,setHarnessEmissionState}from"#harness/emission.js";import{ToolLoopAgent,isStepCount}from"ai";import{createRuntimeActionRequestFromToolCall,resolvePendingRuntimeActions,setPendingRuntimeActionBatch}from"#harness/runtime-actions.js";import{normalizeUserContent,resolveAssistantStepText}from"#harness/messages.js";import{clearPendingWorkflowInterrupt,getPendingWorkflowInterrupt,setPendingWorkflowInterrupt}from"#harness/workflow-interrupt-state.js";import{getWorkflowRuntimeActionInterrupts,isWorkflowRuntimeActionInterrupt}from"#harness/workflow-runtime-action-state.js";import{getActiveDynamicModelSelection}from"#context/dynamic-model-lifecycle.js";import{context,trace}from"#compiled/@opentelemetry/api/index.js";import{isAuthorizationSignal,setPendingAuthorization}from"#harness/authorization.js";import{throwIfTurnAborted}from"#harness/turn-cancellation.js";import{buildDynamicInstructionMessages}from"#context/dynamic-instruction-lifecycle.js";import{PendingSkillAnnouncementKey}from"#context/dynamic-skill-lifecycle.js";import{consumeDeferredStepInput,getApprovedTools,getPendingInputRequestIds,hasDeferredStepInput,hasStepInput,resolvePendingInput,setPendingInputBatch}from"#harness/input-requests.js";import{accumulateTurnUsage,getTurnUsageState,setTurnUsageState}from"#harness/turn-tag-state.js";import{getWorkflowContinuationSecurity,readWorkflowContinuationSecurity}from"#harness/workflow-continuation-security.js";import{buildWorkflowHostTools,resolveWorkflowSandboxBridgeRequestLimit}from"#harness/workflow-sandbox.js";import{CONDITIONAL_DELIVERY_INSTRUCTION,EMPTY_DELIVERY_SENTINEL,hasEmptyDeliverySentinel}from"#shared/empty-delivery.js";import{createToolResultMessagePartFromToolError}from"#harness/action-result-helpers.js";import{getInvalidToolCallInputError,isInvalidToolCall}from"#harness/tool-call-input-errors.js";import{EmptyModelResponseError,classifyModelCallError,extractModelCallErrorDetails,extractUnsupportedProviderToolTypes,extractUpstreamRejectionMessage,isNoOutputGeneratedError}from"#harness/model-call-error.js";import{readToolInterrupt}from"#harness/tool-interrupts.js";import{ASK_QUESTION_TOOL_NAME}from"#runtime/framework-tools/ask-question.js";import{extractQuestionInputRequests,extractToolApprovalInputRequests}from"#harness/input-extraction.js";import{applyLastToolCacheBreakpoint,applySystemCacheBreakpoint,detectPromptCachePath,getAnthropicCacheMarker}from"#harness/prompt-cache.js";import{buildDynamicTools}from"#context/build-dynamic-tools.js";import{hydrateSandboxAttachments,stageAttachmentsToSandbox}from"#harness/attachment-staging.js";import{createWorkflowLifecycle}from"#harness/workflow-lifecycle.js";import{compactMessages,getInputTokenCount,resolveCompactionModel,shouldCompact}from"#harness/compaction.js";import{applySessionLimitContinuation,enforceSessionTokenLimit}from"#harness/session-limit-enforcement.js";import{setEveAttributes}from"#runtime/attributes/emit.js";import{buildTelemetryRuntimeContext}from"#harness/instrumentation-runtime-context.js";import{convertStaleResponsesToUserMessage,dropStaleSessionLimitContinuationResponses}from"#harness/stale-input-responses.js";import{getInstrumentationConfig}from"#harness/instrumentation-config.js";import{normalizeProviderToolHistory}from"#harness/provider-tool-history.js";import{extractWorkflowStreamWriteErrorDetails}from"#harness/workflow-stream-error.js";import{ensureOtelIntegration}from"#harness/otel-integration.js";import{getAdvertisedTools}from"#harness/advertised-tools.js";import{resolveFrameworkToolFromUpstreamType}from"#harness/provider-tools.js";import{buildStepHooks,emitStepActions}from"#harness/step-hooks.js";import{buildToolApproval,buildToolSetFromDefinitions,buildToolSetWithProviderTools}from"#harness/tools.js";import{continueWorkflowSandboxInterrupt,getWorkflowSandboxInterrupt,unwrapWorkflowSandboxResult}from"#shared/workflow-sandbox.js";import{FINAL_OUTPUT_TOOL_NAME,buildFinalOutputTool}from"#runtime/framework-tools/final-output.js";const environment=process.env.NODE_ENV??`unknown`,eveVersion=resolveInstalledPackageInfo().version,log=createLogger(`harness.tool-loop`);function logToolExecutionError(e){e.toolOutput.type===`tool-error`&&logError(log,`tool execution failed`,e.toolOutput.error,{toolName:e.toolCall.toolName,toolCallId:e.toolCall.toolCallId})}function enrichTelemetry(e,t,n){if(e===void 0)return;let r={};for(let e of Object.keys(n??{}))r[e]=!0;return{functionId:e.functionId??t,includeRuntimeContext:r,isEnabled:!0,recordInputs:e.recordInputs??!0,recordOutputs:e.recordOutputs??!0}}function mergeSystemInstructions(e){if(e.length===0)return;if(e.length===1)return{...e[0]};let t;for(let n of e)n.providerOptions!==void 0&&(t={...t,...n.providerOptions});let n={role:`system`,content:e.map(e=>e.content).join(`
|
|
2
2
|
|
|
3
|
-
`)};return t!==void 0&&(n.providerOptions=t),n}function buildGatewayAttributionHeaders(e,t){let n=resolveProviderHeaders(e);if(n===void 0)return;let r=t?.agentName??t?.agentId,i=process.env.VERCEL_PROJECT_PRODUCTION_URL||process.env.VERCEL_URL,a=i?`https://${i}`:void 0,o={...n};return r&&(o[`x-title`]=r),a&&(o[`http-referer`]=a),o}async function resolveActiveRuntimeModel(e){if(e.ctx===void 0)return{model:await e.config.resolveModel(e.session.agent.modelReference),session:e.session};let t=e.session.agent.dynamicModelDefaultReference??e.session.agent.modelReference,n=getActiveDynamicModelSelection(e.ctx);return n===null?{model:await e.config.resolveModel(t),session:updateSessionModelReference(e.session,t)}:{model:n.model===void 0?await e.config.resolveModel(n.reference):n.model,session:updateSessionModelReference(e.session,n.reference)}}function updateSessionModelReference(e,t){let n=e.agent.modelReference;return{...e,agent:{...e.agent,modelReference:t},compaction:updateCompactionThresholdForModelReference({compaction:e.compaction,modelReference:t,priorReference:n})}}function updateCompactionThresholdForModelReference(e){if(e.modelReference.contextWindowTokens===void 0||e.priorReference.contextWindowTokens===void 0)return e.compaction;let t=e.compaction.threshold/e.priorReference.contextWindowTokens;return{...e.compaction,threshold:Math.max(1,Math.floor(e.modelReference.contextWindowTokens*t))}}const TURN_TRACE_STATE_KEY=`eve.harness.turnTrace`;function getTurnTraceState(e){return e.state?.[TURN_TRACE_STATE_KEY]}function setTurnTraceState(e,t){let n={traceId:t.traceId,spanId:t.spanId,traceFlags:t.traceFlags};return{...e,state:{...e.state,[TURN_TRACE_STATE_KEY]:n}}}function resolveStepOtelContext(e,t,n){if(t)return trace.setSpan(context.active(),t);if(e){let e=getTurnTraceState(n);if(e){let t=trace.wrapSpanContext({traceId:e.traceId,spanId:e.spanId,traceFlags:e.traceFlags});return trace.setSpan(context.active(),t)}}}function createToolLoopHarness(t){let n=t.handleEvent,c=getInstrumentationConfig();c!==void 0&&ensureOtelIntegration();let d=c===void 0?void 0:trace.getTracer(`eve`),f=t.runtimeIdentity?.agentName;async function runStep(e,t){let n;if(d&&hasStepInput(t)){let t=c?.functionId??f,r={"eve.version":eveVersion,"eve.environment":environment,"eve.session.id":e.sessionId};t&&(r[`ai.telemetry.functionId`]=t),n=d.startSpan(`ai.eve.turn`,{attributes:r})}let r=resolveStepOtelContext(d,n,e),executeStep=()=>executeStepBody(e,t,n);try{return r?await context.with(r,executeStep):await executeStep()}finally{n?.end()}}async function executeStepBody(d,p,m){let h=d;m&&(h=setTurnTraceState(h,m.spanContext()));let v=getHarnessEmissionState(h.state),x=consumeDeferredStepInput({input:p,session:h});h=x.session;let O=await resolvePendingRuntimeActions({emit:n,session:h,stepInput:x.input});if(O.outcome===`unresolved`)return{next:null,session:O.session};h=O.session;let A=convertStaleResponsesToUserMessage({history:O.messages,pendingRequestIds:getPendingInputRequestIds(h.state),stepInput:x.input}),j=A.stepInput,M=A.kind===`converted`?{...j,message:A.displayMessage}:j,N=resolvePendingInput({history:O.messages,resolveApprovalKey:resolveApprovalKeyFromTools(t.tools),session:h,stepInput:j});if(N.outcome===`unresolved`)return n&&N.deferredMessage===!0&&hasStepInput(p)?(v=await emitTurnPreamble(n,M??{},v,t.runtimeIdentity),v=await emitTurnEpilogue(n,v,t.mode,N.session.continuationToken),{next:null,session:setHarnessEmissionState(N.session,v)}):{next:null,session:N.session};if(n&&N.rejectedActions)for(let e of N.rejectedActions.results)await n(createActionResultEvent({rejected:!0,result:e,sequence:N.rejectedActions.event.sequence,stepIndex:N.rejectedActions.event.stepIndex,turnId:N.rejectedActions.event.turnId}));n&&hasStepInput(p)&&(v=await emitTurnPreamble(n,M??{},v,t.runtimeIdentity),h=setHarnessEmissionState(h,v),m&&m.setAttribute(`eve.turn.id`,v.turnId)),h=N.session;let P=N.messages,F=await applySessionLimitContinuation({config:t,emit:n,emissionState:v,limitContinuation:N.limitContinuation,session:h});if(F.result!==null)return F.result;if(h=F.session,j?.context!==void 0&&N.deferredContext!==!0)for(let e of j.context)P.push({content:e,role:`user`});let I=normalizeUserContent(j?.message);if(I!==void 0&&!N.deferredMessage&&!N.consumedMessage){let e=await stageAttachmentsToSandbox(I);P.push({content:e,role:`user`})}let L=contextStorage.getStore();L!==void 0&&t.dispatchDynamicModelEvent!==void 0&&await t.dispatchDynamicModelEvent({ctx:L,event:createStepStartedEvent({sequence:v.sequence,stepIndex:v.stepIndex,turnId:v.turnId}),fallback:h.agent.dynamicModelDefaultReference??h.agent.modelReference,messages:P});let R=await resolveActiveRuntimeModel({config:t,ctx:L,session:h});h=R.session;let z=R.model,B=detectPromptCachePath(z),V=B.kind===`anthropic-direct`?getAnthropicCacheMarker():void 0,H=buildGatewayAttributionHeaders(z,t.runtimeIdentity);({messages:P,session:h}=await maybeCompact({abortSignal:t.abortSignal,emit:n,emissionState:v,messages:P,model:z,onCompaction:t.onCompaction,resolveModel:t.resolveModel,runtimeIdentity:t.runtimeIdentity,session:h,telemetry:enrichTelemetry(c,f)??void 0}));let U=getApprovedTools(h),W=h.outputSchema===void 0&&L!==void 0&&isScheduleAppAuth(L.get(AuthKey))&&L.get(ParentSessionKey)===void 0,G=await hydrateSandboxAttachments(P),K=[],q=[];for(let e of G)e.role===`system`?K.push(e):q.push(e);if(L!==void 0){K.push(...buildDynamicInstructionMessages(L));let e=L.get(PendingSkillAnnouncementKey);e!==void 0&&e.length>0&&K.push({role:`system`,content:e})}W&&K.push({role:`system`,content:CONDITIONAL_DELIVERY_INSTRUCTION});let J=q,prepareModelCallInput=e=>{let t=e?[{role:`system`,content:e}]:[],n=h.agent.system?[{role:`system`,content:h.agent.system}]:[],r=K.length>0||t.length>0?[...t,...n,...K]:void 0,i=r!==void 0&&V?applySystemCacheBreakpoint(r,V):r,a=i===void 0?h.agent.system??void 0:mergeSystemInstructions(i);return{instructions:a,telemetryRuntimeContext:buildTelemetryRuntimeContext({eveVersion,authored:c,emissionState:v,environment,modelInput:{instructions:a,messages:J},session:h})}},runSingleModelCall=async e=>{let{instructions:i,telemetryRuntimeContext:a={}}=e.preparedInput??prepareModelCallInput(e.extraSystemNote);e.retryReason&&(a[`eve.retry.reason`]=e.retryReason);let o=e.trailingUserNote?[...J,{role:`user`,content:e.trailingUserNote}]:J,s=getAdvertisedTools({session:h,tools:t.tools}),l=await buildToolSetWithProviderTools({approvedTools:U,capabilities:t.capabilities,disabledProviderTools:e.disabledProviderTools,modelReference:h.agent.modelReference,tools:s});if(L!==void 0){let n=getAdvertisedTools({session:h,tools:buildDynamicTools(L)}),r=buildToolSetFromDefinitions({approvedTools:U,capabilities:t.capabilities,disabledProviderTools:e.disabledProviderTools,tools:n});for(let[e,t]of Object.entries(r))l[e]=t}h.outputSchema!==void 0&&(l[FINAL_OUTPUT_TOOL_NAME]=buildFinalOutputTool(h.outputSchema));let u=n===void 0?void 0:({tools:e})=>createWorkflowLifecycle({emit:n,emissionState:v,tools:e}),d=t.workflow===!0?{lifecycle:u,maxSubagents:t.workflowMaxSubagents}:void 0,p=await getAdvertisedTools({modelTools:l,session:h,tools:s,workflow:d});h=p.session;let m=p.modelTools,g=V?applyLastToolCacheBreakpoint(m,V):m,y=buildStepHooks({cachePath:B,emit:n,emissionState:v,emitStepStarted:e.suppressStepStartedEmission!==!0,marker:V,session:h}),b=new ToolLoopAgent({headers:H,instructions:i,model:z,onToolExecutionEnd:logToolExecutionError,onError(e){summarizeKnownError(e.error)?.tags.includes(`config`)!==!0&&logError(log,`tool-loop stream error`,e.error)},onStepFinish:y.onStepFinish,prepareStep:y.prepareStep,reasoning:h.agent.reasoning,runtimeContext:a,stopWhen:isStepCount(1),telemetry:enrichTelemetry(c,f,a),toolApproval:buildToolApproval(m),tools:g});return(async()=>{if(n){let e=[...t.tools].filter(([e,t])=>t.runtimeAction!==void 0&&s.get(e)===void 0).map(([e])=>e),r=new Set([ASK_QUESTION_TOOL_NAME,FINAL_OUTPUT_TOOL_NAME,...e]),i=await b.stream({abortSignal:t.abortSignal,messages:o}),{emittedActionCallIds:a,handledInlineToolResultCallIds:c,invalidInputToolCallIds:l,inlineAuthorizationResults:u,trailingInlineToolResultParts:d}=await emitStreamContent(n,v,i.fullStream,{excludedActionToolNames:r,tools:t.tools});throwIfTurnAborted(t.abortSignal);let[f,p]=await Promise.all([y.stepResult,i.responseMessages]);if(isEmptyModelResponse(f)&&extractToolResultCallIds(p).size===0&&u.length===0&&d.length===0)throw new EmptyModelResponseError;await emitStepActions(n,v,f,{emittedActionCallIds:a,excludedActionCallIds:l,excludedActionToolNames:r,handledInlineToolResultCallIds:c,tools:s});let m=f.toolResults,h=new Map(m.map(e=>[e.toolCallId,e]));for(let e of u)h.set(e.toolCallId,e);return withAccumulatedResponseMessages({invalidInputToolCallIds:l,responseMessages:appendMissingToolResultMessages({append:d,responseMessages:p}),stepResult:f,toolResults:[...h.values()]})}let e=await b.generate({abortSignal:t.abortSignal,messages:o});throwIfTurnAborted(t.abortSignal);let r=await y.stepResult;if(isEmptyModelResponse(r)&&extractToolResultCallIds(e.responseMessages).size===0)throw new EmptyModelResponseError;return withAccumulatedResponseMessages({responseMessages:e.responseMessages,stepResult:r})})().catch(rethrowNoOutputAsEmptyResponse)},runOneModelCall=async e=>runModelCallWithRetries(t=>runSingleModelCall({...e,preparedInput:t===1?e.preparedInput:void 0,suppressStepStartedEmission:t===1?e.suppressStepStartedEmission:!0}),{sessionId:h.sessionId,turnId:v.turnId},t.abortSignal),ne=prepareModelCallInput();n&&await emitStepStarted(n,v,P);let Y=await continuePendingWorkflowInterrupt({childResults:j?.runtimeActionResults,config:t,emit:n,emissionState:v,runStep,session:h});if(Y!==null)return Y;let X=await enforceSessionTokenLimit({config:t,emit:n,emissionState:v,messages:P,session:h});if(X!==null)return X;let Z;try{Z=await runOneModelCall({preparedInput:ne,suppressStepStartedEmission:!0})}catch(r){throwIfTurnAborted(t.abortSignal);let a=await runModelCallRecoveryPipeline({error:r,stages:[e=>attemptUnsupportedProviderToolRecovery({error:e.error,runOneModelCall,sessionId:h.sessionId,turnId:v.turnId}),e=>attemptEmptyResponseRecovery({emptyDeliveryEnabled:W,error:e.error,retryCallOptions:e.retryCallOptions,runOneModelCall,sessionId:h.sessionId,turnId:v.turnId})]});if(throwIfTurnAborted(t.abortSignal),a.outcome===`recovered`)Z=a.result;else{let r=a.error;if(m&&recordErrorOnSpan(m,r),!n)throw r;let o=extractWorkflowStreamWriteErrorDetails(r);if(o!==null){let t=createErrorId();return log.error(`workflow stream write failed — parking session for retry by the user`,{...o,errorId:t,error:r,sessionId:h.sessionId,turnId:v.turnId}),v=await emitRecoverableFailedTurn(n,v,{code:`WORKFLOW_STREAM_WRITE_FAILED`,continuationToken:h.continuationToken,details:{...o,errorId:t},message:toErrorMessage(r)}),{next:null,session:setHarnessEmissionState(h,v)}}let s=classifyModelCallError(r),c=createErrorId(),u=summarizeKnownError(r),d=u===null?extractUpstreamRejectionMessage(r):null,f=u?.message??d?.message??toErrorMessage(r),p=u?.hint===void 0?f:`${f} ${u.hint}`,g=extractModelCallErrorDetails(r),y=buildModelCallFailureDetails({catalogSummary:u,error:r,errorId:c,modelCallDetails:g,upstreamRejection:d}),b=buildModelCallFailureLogFields({error:r,errorId:c,modelCallDetails:g,recognized:u!==null||d!==null,sessionId:h.sessionId,turnId:v.turnId});if(s===`terminal`)return u===null?log.error(d?.message??`model call failed terminally`,b):log.error(`${u.name}: ${u.message}`,{errorId:c,hint:u.hint,sessionId:h.sessionId,turnId:v.turnId}),await emitFailedStep(n,v,{code:`MODEL_CALL_FAILED`,details:y,message:f,sessionId:h.sessionId}),{next:t.mode===`task`?{done:!0,isError:!0,output:p}:{done:!0,output:``},session:h};if(t.mode===`task`){if(s===`recoverable`&&!(r instanceof EmptyModelResponseError))throw log.warn(d?.message??`model call failed recoverably in task mode — rethrowing for durable step retry`,b),r;return log.error(d?.message??`model call failed; failing the task run`,b),await emitFailedStep(n,v,{code:`MODEL_CALL_FAILED`,details:y,message:f,sessionId:h.sessionId}),{next:{done:!0,isError:!0,output:p},session:h}}return log.error(d?.message??`model call failed — parking session for retry by the user`,b),v=await emitRecoverableFailedTurn(n,v,{code:`MODEL_CALL_FAILED`,continuationToken:h.continuationToken,details:y,message:f}),{next:null,session:setHarnessEmissionState(h,v)}}}let Q=accumulateTurnUsage({previous:getTurnUsageState(h.state),turnId:v.turnId,usage:extractTokenUsageDelta({costUsd:extractGatewayCostUsd(Z.providerMetadata),usage:Z.usage})});h=setTurnUsageState(h,Q);let $;try{$=formatLanguageModelGatewayId(z)}catch{$=void 0}return await setEveAttributes({"$eve.model":$,"$eve.input_tokens":Q.inputTokens,"$eve.output_tokens":Q.outputTokens,"$eve.cache_read_tokens":Q.cacheReadTokens,"$eve.cache_write_tokens":Q.cacheWriteTokens,"$eve.cost_usd":Q.sawCost?Q.costUsd:void 0,"$eve.tool_count":t.tools.size}),handleStepResult({config:t,emit:n,emissionState:v,promptMessages:P,result:Z,runStep,session:h})}return runStep}function extractTokenUsageDelta(e){let t=e.usage;if(!(t===void 0&&e.costUsd===void 0))return{cacheReadTokens:t?.inputTokenDetails?.cacheReadTokens,cacheWriteTokens:t?.inputTokenDetails?.cacheWriteTokens,costUsd:e.costUsd,inputTokens:t?.inputTokens,outputTokens:t?.outputTokens}}function extractGatewayCostUsd(e){let t=readGatewayMetadata(e)?.cost;if(typeof t==`number`&&Number.isFinite(t))return t;if(typeof t==`string`){let e=Number(t);return Number.isFinite(e)?e:void 0}}function readGatewayMetadata(e){let t=e?.gateway;return t&&typeof t==`object`&&!Array.isArray(t)?t:void 0}function buildModelCallFailureDetails(e){let{catalogSummary:t,error:r,errorId:i,modelCallDetails:a,upstreamRejection:o}=e;if(t!==null){let e={errorId:i,message:t.message,name:t.name,semanticErrorId:t.id,...a};return t.hint!==void 0&&(e.hint=t.hint),e}return o===null?{...formatError(r,i),...a}:{errorId:i,message:toErrorMessage(r),name:o.name,...a}}function buildModelCallFailureLogFields(e){let t={errorId:e.errorId,sessionId:e.sessionId,turnId:e.turnId};return e.recognized?{...t,details:e.modelCallDetails}:{...t,error:e.error}}async function runModelCallRecoveryPipeline(e){let t=e.error,n;for(let r of e.stages){let e=await r({error:t,retryCallOptions:n});if(e.outcome===`recovered`)return e;e.outcome===`failed`&&(t=e.error,n=e.retryCallOptions)}return{outcome:`failed`,error:t}}function withAccumulatedResponseMessages(e){let{stepResult:t}=e;return{content:t.content,finishReason:t.finishReason,...e.invalidInputToolCallIds===void 0?{}:{invalidInputToolCallIds:e.invalidInputToolCallIds},providerMetadata:t.providerMetadata,response:{...t.response,messages:[...e.responseMessages]},text:t.text,toolCalls:t.toolCalls,toolResults:e.toolResults===void 0?t.toolResults:[...e.toolResults],usage:t.usage}}function appendMissingToolResultMessages(e){let t=extractToolResultCallIds(e.responseMessages),n=e.append.filter(e=>!t.has(e.toolCallId));return[...e.responseMessages,...n.length>0?[{role:`tool`,content:[...n]}]:[]]}function getInvalidToolCallInputErrors(e){let t=[];for(let n of e.toolCalls){if(n.toolName===FINAL_OUTPUT_TOOL_NAME)continue;let e=getInvalidToolCallInputError({toolCall:n});e!==void 0&&t.push(e)}return t}function extractToolResultCallIds(e){let t=new Set;for(let n of e)if(!(n.role!==`tool`||!Array.isArray(n.content)))for(let e of n.content)e.type===`tool-result`&&t.add(e.toolCallId);return t}async function attemptUnsupportedProviderToolRecovery(e){let t=extractUnsupportedProviderToolTypes(e.error);if(t.length===0)return{outcome:`skipped`};let n=[];for(let e of t){let t=resolveFrameworkToolFromUpstreamType(e);t!==null&&!n.includes(t)&&n.push(t)}if(n.length===0)return{outcome:`skipped`};log.warn(`disabling unsupported provider tool(s); retrying step once`,{disabled:n,sessionId:e.sessionId,turnId:e.turnId,upstreamTypes:t});let r={disabledProviderTools:new Set(n),extraSystemNote:buildDisabledToolNote(n)};try{return{outcome:`recovered`,result:await e.runOneModelCall({...r,suppressStepStartedEmission:!0})}}catch(e){return{outcome:`failed`,error:e,retryCallOptions:r}}}function buildDisabledToolNote(e){let t=e.join(`, `);return`The following ${e.length===1?`tool is`:`tools are`} not available with the current model and has been removed: ${t}. Proceed using the remaining tools or your training knowledge.`}function isEmptyModelResponse(e){return e.toolCalls.length===0&&e.toolResults.length===0&&resolveAssistantStepText(e.response.messages,e.text)===null}function rethrowNoOutputAsEmptyResponse(e){throw isNoOutputGeneratedError(e)?new EmptyModelResponseError({cause:e}):e}const EMPTY_RESPONSE_NUDGE=`Your previous reply was empty and was not delivered. Answer now from the tool results above; do not re-run tools or mention this notice.`;function buildEmptyResponseNudge(e){return e?`${EMPTY_RESPONSE_NUDGE} If the current task explicitly requires conditional delivery and there is nothing to report, reply with exactly ${EMPTY_DELIVERY_SENTINEL}.`:EMPTY_RESPONSE_NUDGE}async function attemptEmptyResponseRecovery(e){if(!(e.error instanceof EmptyModelResponseError))return{outcome:`skipped`};log.warn(`empty model response; reissuing the model call once`,{sessionId:e.sessionId,turnId:e.turnId});try{return{outcome:`recovered`,result:await e.runOneModelCall({...e.retryCallOptions,retryReason:`empty-response`,suppressStepStartedEmission:!0,trailingUserNote:buildEmptyResponseNudge(e.emptyDeliveryEnabled)})}}catch(t){return{outcome:`failed`,error:t,retryCallOptions:e.retryCallOptions}}}async function handleStepResult(e){let{config:t,emit:n,promptMessages:r,result:i,runStep:a}=e,{emissionState:o,session:s}=e,c=resolveAssistantStepText(i.response.messages,i.text),l=i.finishReason!==`tool-calls`&&i.toolCalls.length===0&&hasEmptyDeliverySentinel(c),u=getInvalidToolCallInputErrors({toolCalls:i.toolCalls}),f=new Set([...i.invalidInputToolCallIds??[],...i.toolCalls.filter(isInvalidToolCall).map(e=>e.toolCallId),...u.map(e=>e.toolCallId)]),p=l?[]:appendMissingToolResultMessages({append:u.map(e=>createToolResultMessagePartFromToolError(e)),responseMessages:i.response.messages}),h=l?null:c,g=new Set;for(let e of[...i.content??[],...i.toolResults??[]])(e.type===`tool-result`||e.type===`tool-error`)&&e.providerExecuted===!0&&g.add(e.toolCallId);let _=normalizeProviderToolHistory({messages:p,providerExecutedOutcomeIds:g}),v=_.messages,y={...s,compaction:createNextCompactionConfig(s.compaction,r,i)},b=t.workflow===!0?readWorkflowContinuationSecurity(y):void 0;if(b!==void 0){let e=await getWorkflowSandboxInterrupt(i,b);if(e!==void 0){if(!isWorkflowRuntimeActionInterrupt(e))throw Error(`Unsupported Workflow interrupt kind "${e.payload.kind}".`);return parkOnWorkflowInterrupt({baseSession:y,emissionState:o,interrupt:e,promptMessages:r,responseMessages:v})}}let S=extractToolApprovalInputRequests({content:i.content??[],excludedCallIds:f}),ee=new Set(S.map(e=>e.action.callId)),te=extractQuestionInputRequests({toolCalls:i.toolCalls,excludedCallIds:new Set([...f,...ee])}),C=[...S,...te],w=getAdvertisedTools({session:y,tools:t.tools}),T=(i.toolCalls??[]).filter(e=>!f.has(e.toolCallId)).filter(e=>t.tools.get(e.toolName)?.runtimeAction!==void 0).filter(e=>w.get(e.toolName)?.runtimeAction===void 0?(log.warn(`runtime action tool call blocked because tool is not advertised`,{callId:e.toolCallId,sessionId:y.sessionId,toolName:e.toolName}),!1):!0).map(e=>createRuntimeActionRequestFromToolCall({toolCall:e,tools:w}));if(T.length>0)return{next:null,session:setHarnessEmissionState(setPendingRuntimeActionBatch({actions:T,event:{sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId},responseMessages:v,session:{...y,history:[...r]}}),o)};if(C.length>0){let e=setPendingInputBatch({event:{sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId},requests:C,responseMessages:v,session:{...y,history:[...r]}});return n&&(await n(createInputRequestedEvent({requests:C,sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId})),t.mode===`conversation`&&(o=await emitTurnEpilogue(n,o,t.mode,e.continuationToken),e=setHarnessEmissionState(e,o))),{next:null,session:e}}let E=findAuthorizationSignalFromToolResults(i.toolResults);if(E){let{challenges:e}=E;if(n)for(let t of e)await n(createAuthorizationRequiredEvent({authorization:t.challenge,name:t.name,description:t.challenge.instructions??`Authorization required for ${t.name}`,webhookUrl:t.hookUrl,sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId}));return{next:null,session:setHarnessEmissionState({...y,history:[...r],state:setPendingAuthorization(y.state,{challenges:e})},o)}}let D=v,k=[...r,...D],j={...y,history:k};return!(j.outputSchema!==void 0&&extractFinalOutput(i)!==void 0)&&(D.at(-1)?.role===`tool`||_.outcomeEndsResponse||hasDeferredStepInput(j))?(n&&(o=advanceStep(o),j=setHarnessEmissionState(j,o)),{next:a,session:j}):t.mode===`task`?finishTaskTurn({emissionState:o,emit:n,history:r,result:i,schema:j.outputSchema,session:j,stepOutput:h}):finishConversationTurn({emissionState:o,emit:n,history:r,result:i,schema:j.outputSchema,session:j})}const OUTPUT_SCHEMA_NOT_FULFILLED={code:`OUTPUT_SCHEMA_NOT_FULFILLED`,message:`The agent could not produce a result matching the requested schema.`};function extractFinalOutput(e){return(e.toolCalls??[]).find(e=>e.toolName===FINAL_OUTPUT_TOOL_NAME&&!isInvalidToolCall(e))?.input}function persistStructuredAssistantTurn(e,t,n){return{...e,history:[...t,{content:JSON.stringify(n),role:`assistant`}],outputSchema:void 0}}async function emitStructuredResult(e,t,n,r,i){return await e(createResultCompletedEvent({result:n,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),emitTurnEpilogue(e,t,r,i)}async function finishTaskTurn(e){let{emit:t,history:n,result:r,schema:i,stepOutput:a}=e,{emissionState:o,session:s}=e;if(i===void 0)return t&&(o=await emitTurnEpilogue(t,o,`task`,s.continuationToken),s=setHarnessEmissionState(s,o)),{next:{done:!0,output:a??``},session:s};let c=extractFinalOutput(r);return c===void 0?(t&&await emitFailedStep(t,o,{...OUTPUT_SCHEMA_NOT_FULFILLED,sessionId:s.sessionId}),{next:{done:!0,isError:!0,output:OUTPUT_SCHEMA_NOT_FULFILLED.message},session:s}):(s=persistStructuredAssistantTurn(s,n,c),t&&(o=await emitStructuredResult(t,o,c,`task`,s.continuationToken),s=setHarnessEmissionState(s,o)),{next:{done:!0,output:c},session:s})}async function finishConversationTurn(e){let{emit:t,history:n,result:r,schema:i}=e,{emissionState:a,session:o}=e;if(i===void 0)return t&&(a=await emitTurnEpilogue(t,a,`conversation`,o.continuationToken),o=setHarnessEmissionState(o,a)),{next:null,session:o};let s=extractFinalOutput(r);return s===void 0?(t&&(a=await emitRecoverableFailedTurn(t,a,{...OUTPUT_SCHEMA_NOT_FULFILLED,continuationToken:o.continuationToken}),o=setHarnessEmissionState(o,a)),{next:null,session:o}):(o=persistStructuredAssistantTurn(o,n,s),t&&(a=await emitStructuredResult(t,a,s,`conversation`,o.continuationToken),o=setHarnessEmissionState(o,a)),{next:null,session:o})}async function continuePendingWorkflowInterrupt(e){let t=getPendingWorkflowInterrupt(e.session.state);if(t===void 0)return null;let n=t.interrupt;if(!isWorkflowRuntimeActionInterrupt(n))throw Error(`Unsupported Workflow interrupt kind "${n.payload.kind}".`);let i=e.emit===void 0?void 0:createWorkflowLifecycle({emit:e.emit,emissionState:e.emissionState,skipReplayed:!0,tools:e.config.tools}),a=getWorkflowContinuationSecurity(e.session),o;try{let t=buildWorkflowHostTools({tools:e.config.tools}),r=e.childResults??[],s=n,c=0;for(;;){o=await continueWorkflowSandboxInterrupt({bridgeRequestLimit:resolveWorkflowSandboxBridgeRequestLimit(e.config.workflowMaxSubagents),continuationSecurity:a,interrupt:s,lifecycle:i,resolution:r[c]?.output,tools:t});let n=await unwrapWorkflowSandboxResult(o,a);if(n.status!==`interrupted`||!isWorkflowRuntimeActionInterrupt(n.interrupt)||c+1>=r.length)break;let l=getWorkflowRuntimeActionInterrupts(n.interrupt)[0];if(l===void 0)throw Error(`Workflow continuation contains no pending runtime-action interrupt.`);c++,s=l}}catch(e){logError(log,`Workflow interrupt continuation failed`,e),o={error:`workflow_continuation_failed`,message:toErrorMessage(e),retryable:!1}}let s=await unwrapWorkflowSandboxResult(o,a),c=s.status===`interrupted`?s.interrupt:s.output,u=replaceWorkflowToolResult([...e.session.history,...t.responseMessages],n.outerToolCallId,c),d=clearPendingWorkflowInterrupt({...e.session,history:u});if(s.status===`interrupted`){if(!isWorkflowRuntimeActionInterrupt(s.interrupt))throw Error(`Unsupported Workflow interrupt kind "${s.interrupt.payload.kind}".`);let t=e.session.history.length,n=u.slice(0,t),r=u.slice(t);return d={...d,history:n},parkOnWorkflowInterrupt({baseSession:d,emissionState:e.emissionState,interrupt:s.interrupt,promptMessages:n,responseMessages:r})}return{next:e.runStep,session:d}}function replaceWorkflowToolResult(e,t,n){if(t===void 0)return[...e];let r=typeof n==`string`?{type:`text`,value:n}:{type:`json`,value:n};return e.map(e=>{if(e.role!==`tool`)return e;let n=e.content.map(e=>e.type!==`tool-result`||e.toolCallId!==t?e:{...e,output:r});return{...e,content:n}})}function parkOnWorkflowInterrupt(e){let t=getWorkflowRuntimeActionInterrupts(e.interrupt)[0];if(t===void 0)throw Error(`Workflow continuation contains no pending runtime-action interrupt.`);let n={...e.baseSession,history:[...e.promptMessages]};return{next:null,session:setHarnessEmissionState(setPendingWorkflowInterrupt({interrupt:t,responseMessages:e.responseMessages,session:n}),e.emissionState)}}function createNextCompactionConfig(e,t,n){let r={recentWindowSize:e.recentWindowSize,threshold:e.threshold};return n.usage?.inputTokens!==void 0&&(r.lastKnownInputTokens=n.usage.inputTokens,r.lastKnownPromptMessageCount=t.length),r}async function maybeCompact(e){let{emit:t,emissionState:n}=e,r=e.messages,i=e.session;if(!shouldCompact(r,i.compaction))return{messages:r,session:i};let a=await resolveCompactionModel({compactionModelReference:i.agent.compactionModelReference,model:e.model,modelReference:i.agent.modelReference,resolveModel:e.resolveModel});if(t&&await t(createCompactionRequestedEvent({modelId:formatLanguageModelGatewayId(a.model),sequence:n.sequence,sessionId:i.sessionId,turnId:n.turnId,usageInputTokens:getInputTokenCount(r,i.compaction)})),r=await compactMessages(r,a.model,i.compaction,a.providerOptions,e.telemetry,buildGatewayAttributionHeaders(a.model,e.runtimeIdentity),e.abortSignal),e.onCompaction)for(let t of e.onCompaction())r.push(t);return t&&await t(createCompactionCompletedEvent({modelId:formatLanguageModelGatewayId(a.model),sequence:n.sequence,sessionId:i.sessionId,turnId:n.turnId})),{messages:r,session:i}}function resolveApprovalKeyFromTools(e){return t=>{let n=e.get(t.action.toolName);if(n?.approvalKey!==void 0)return n.approvalKey(t.action.input)}}async function runModelCallWithRetries(e,t,n){for(let r=1;;r++){throwIfTurnAborted(n);try{return await e(r)}catch(e){if(throwIfTurnAborted(n),r===3||classifyModelCallError(e)!==`retry`)throw e;let i=500*2**(r-1)+Math.floor(Math.random()*250);log.warn(`model call failed transiently — retrying`,{attempt:r,delayMs:i,sessionId:t.sessionId,turnId:t.turnId,error:e}),await new Promise(e=>setTimeout(e,i))}}}function findAuthorizationSignalFromToolResults(e){let t=contextStorage.getStore();if(t!==void 0)for(let n of e??[]){let e=readToolInterrupt(t,n.toolCallId);if(e!==void 0&&isAuthorizationSignal(e))return e}for(let t of e??[])if(isAuthorizationSignal(t.output))return t.output}export{createToolLoopHarness};
|
|
3
|
+
`)};return t!==void 0&&(n.providerOptions=t),n}function buildGatewayAttributionHeaders(e,t){let n=resolveProviderHeaders(e);if(n===void 0)return;let r=t?.agentName??t?.agentId,i=process.env.VERCEL_PROJECT_PRODUCTION_URL||process.env.VERCEL_URL,a=i?`https://${i}`:void 0,o={...n};return r&&(o[`x-title`]=r),a&&(o[`http-referer`]=a),o}async function resolveActiveRuntimeModel(e){if(e.ctx===void 0)return{model:await e.config.resolveModel(e.session.agent.modelReference),session:e.session};let t=e.session.agent.dynamicModelDefaultReference??e.session.agent.modelReference,n=getActiveDynamicModelSelection(e.ctx);return n===null?{model:await e.config.resolveModel(t),session:updateSessionModelReference(e.session,t)}:{model:n.model===void 0?await e.config.resolveModel(n.reference):n.model,session:updateSessionModelReference(e.session,n.reference)}}function updateSessionModelReference(e,t){let n=e.agent.modelReference;return{...e,agent:{...e.agent,modelReference:t},compaction:updateCompactionThresholdForModelReference({compaction:e.compaction,modelReference:t,priorReference:n})}}function updateCompactionThresholdForModelReference(e){if(e.modelReference.contextWindowTokens===void 0||e.priorReference.contextWindowTokens===void 0)return e.compaction;let t=e.compaction.threshold/e.priorReference.contextWindowTokens;return{...e.compaction,threshold:Math.max(1,Math.floor(e.modelReference.contextWindowTokens*t))}}const TURN_TRACE_STATE_KEY=`eve.harness.turnTrace`;function getTurnTraceState(e){return e.state?.[TURN_TRACE_STATE_KEY]}function setTurnTraceState(e,t){let n={traceId:t.traceId,spanId:t.spanId,traceFlags:t.traceFlags};return{...e,state:{...e.state,[TURN_TRACE_STATE_KEY]:n}}}function resolveStepOtelContext(e,t,n){if(t)return trace.setSpan(context.active(),t);if(e){let e=getTurnTraceState(n);if(e){let t=trace.wrapSpanContext({traceId:e.traceId,spanId:e.spanId,traceFlags:e.traceFlags});return trace.setSpan(context.active(),t)}}}function createToolLoopHarness(t){let n=t.handleEvent,c=getInstrumentationConfig();c!==void 0&&ensureOtelIntegration();let d=c===void 0?void 0:trace.getTracer(`eve`),f=t.runtimeIdentity?.agentName;async function runStep(e,t){let n;if(d&&hasStepInput(t)){let t=c?.functionId??f,r={"eve.version":eveVersion,"eve.environment":environment,"eve.session.id":e.sessionId};t&&(r[`ai.telemetry.functionId`]=t),n=d.startSpan(`ai.eve.turn`,{attributes:r})}let r=resolveStepOtelContext(d,n,e),executeStep=()=>executeStepBody(e,t,n);try{return r?await context.with(r,executeStep):await executeStep()}finally{n?.end()}}async function executeStepBody(d,p,m){let h=d;m&&(h=setTurnTraceState(h,m.spanContext()));let v=getHarnessEmissionState(h.state),x=consumeDeferredStepInput({input:p,session:h});h=x.session;let k=await resolvePendingRuntimeActions({emit:n,session:h,stepInput:x.input});if(k.outcome===`unresolved`)return{next:null,session:k.session};h=k.session;let A=getPendingInputRequestIds(h.state),M=convertStaleResponsesToUserMessage({history:k.messages,pendingRequestIds:A,stepInput:dropStaleSessionLimitContinuationResponses({pendingRequestIds:A,stepInput:x.input})}),N=M.stepInput,P=M.kind===`converted`?{...N,message:M.displayMessage}:N,F=resolvePendingInput({history:k.messages,resolveApprovalKey:resolveApprovalKeyFromTools(t.tools),session:h,stepInput:N});if(F.outcome===`unresolved`)return n&&F.deferredMessage===!0&&hasStepInput(p)?(v=await emitTurnPreamble(n,P??{},v,t.runtimeIdentity),v=await emitTurnEpilogue(n,v,t.mode,F.session.continuationToken),{next:null,session:setHarnessEmissionState(F.session,v)}):{next:null,session:F.session};if(n&&F.rejectedActions)for(let e of F.rejectedActions.results)await n(createActionResultEvent({rejected:!0,result:e,sequence:F.rejectedActions.event.sequence,stepIndex:F.rejectedActions.event.stepIndex,turnId:F.rejectedActions.event.turnId}));n&&hasStepInput(p)&&(v=await emitTurnPreamble(n,P??{},v,t.runtimeIdentity),h=setHarnessEmissionState(h,v),m&&m.setAttribute(`eve.turn.id`,v.turnId)),h=F.session;let I=F.messages,L=await applySessionLimitContinuation({config:t,emit:n,emissionState:v,limitContinuation:F.limitContinuation,session:h});if(L.result!==null)return L.result;if(h=L.session,N?.context!==void 0&&F.deferredContext!==!0)for(let e of N.context)I.push({content:e,role:`user`});let R=normalizeUserContent(N?.message);if(R!==void 0&&!F.deferredMessage&&!F.consumedMessage){let e=await stageAttachmentsToSandbox(R);I.push({content:e,role:`user`})}let z=contextStorage.getStore();z!==void 0&&t.dispatchDynamicModelEvent!==void 0&&await t.dispatchDynamicModelEvent({ctx:z,event:createStepStartedEvent({sequence:v.sequence,stepIndex:v.stepIndex,turnId:v.turnId}),fallback:h.agent.dynamicModelDefaultReference??h.agent.modelReference,messages:I});let B=await resolveActiveRuntimeModel({config:t,ctx:z,session:h});h=B.session;let V=B.model,H=detectPromptCachePath(V),U=H.kind===`anthropic-direct`?getAnthropicCacheMarker():void 0,ne=buildGatewayAttributionHeaders(V,t.runtimeIdentity);({messages:I,session:h}=await maybeCompact({abortSignal:t.abortSignal,emit:n,emissionState:v,messages:I,model:V,onCompaction:t.onCompaction,resolveModel:t.resolveModel,runtimeIdentity:t.runtimeIdentity,session:h,telemetry:enrichTelemetry(c,f)??void 0}));let W=getApprovedTools(h),G=h.outputSchema===void 0&&z!==void 0&&isScheduleAppAuth(z.get(AuthKey))&&z.get(ParentSessionKey)===void 0,re=await hydrateSandboxAttachments(I),K=[],q=[];for(let e of re)e.role===`system`?K.push(e):q.push(e);if(z!==void 0){K.push(...buildDynamicInstructionMessages(z));let e=z.get(PendingSkillAnnouncementKey);e!==void 0&&e.length>0&&K.push({role:`system`,content:e})}G&&K.push({role:`system`,content:CONDITIONAL_DELIVERY_INSTRUCTION});let J=q,prepareModelCallInput=e=>{let t=e?[{role:`system`,content:e}]:[],n=h.agent.system?[{role:`system`,content:h.agent.system}]:[],r=K.length>0||t.length>0?[...t,...n,...K]:void 0,i=r!==void 0&&U?applySystemCacheBreakpoint(r,U):r,a=i===void 0?h.agent.system??void 0:mergeSystemInstructions(i);return{instructions:a,telemetryRuntimeContext:buildTelemetryRuntimeContext({eveVersion,authored:c,emissionState:v,environment,modelInput:{instructions:a,messages:J},session:h})}},runSingleModelCall=async e=>{let{instructions:i,telemetryRuntimeContext:a={}}=e.preparedInput??prepareModelCallInput(e.extraSystemNote);e.retryReason&&(a[`eve.retry.reason`]=e.retryReason);let o=e.trailingUserNote?[...J,{role:`user`,content:e.trailingUserNote}]:J,s=getAdvertisedTools({session:h,tools:t.tools}),l=await buildToolSetWithProviderTools({approvedTools:W,capabilities:t.capabilities,disabledProviderTools:e.disabledProviderTools,modelReference:h.agent.modelReference,tools:s});if(z!==void 0){let n=getAdvertisedTools({session:h,tools:buildDynamicTools(z)}),r=buildToolSetFromDefinitions({approvedTools:W,capabilities:t.capabilities,disabledProviderTools:e.disabledProviderTools,tools:n});for(let[e,t]of Object.entries(r))l[e]=t}h.outputSchema!==void 0&&(l[FINAL_OUTPUT_TOOL_NAME]=buildFinalOutputTool(h.outputSchema));let u=n===void 0?void 0:({tools:e})=>createWorkflowLifecycle({emit:n,emissionState:v,tools:e}),d=t.workflow===!0?{lifecycle:u,maxSubagents:t.workflowMaxSubagents}:void 0,p=await getAdvertisedTools({modelTools:l,session:h,tools:s,workflow:d});h=p.session;let m=p.modelTools,g=U?applyLastToolCacheBreakpoint(m,U):m,y=buildStepHooks({cachePath:H,emit:n,emissionState:v,emitStepStarted:e.suppressStepStartedEmission!==!0,marker:U,session:h}),b=new ToolLoopAgent({headers:ne,instructions:i,model:V,onToolExecutionEnd:logToolExecutionError,onError(e){summarizeKnownError(e.error)?.tags.includes(`config`)!==!0&&logError(log,`tool-loop stream error`,e.error)},onStepFinish:y.onStepFinish,prepareStep:y.prepareStep,reasoning:h.agent.reasoning,runtimeContext:a,stopWhen:isStepCount(1),telemetry:enrichTelemetry(c,f,a),toolApproval:buildToolApproval(m),tools:g});return(async()=>{if(n){let e=[...t.tools].filter(([e,t])=>t.runtimeAction!==void 0&&s.get(e)===void 0).map(([e])=>e),r=new Set([ASK_QUESTION_TOOL_NAME,FINAL_OUTPUT_TOOL_NAME,...e]),i=await b.stream({abortSignal:t.abortSignal,messages:o}),{emittedActionCallIds:a,handledInlineToolResultCallIds:c,invalidInputToolCallIds:l,inlineAuthorizationResults:u,trailingInlineToolResultParts:d}=await emitStreamContent(n,v,i.fullStream,{excludedActionToolNames:r,tools:t.tools});throwIfTurnAborted(t.abortSignal);let[f,p]=await Promise.all([y.stepResult,i.responseMessages]);if(isEmptyModelResponse(f)&&extractToolResultCallIds(p).size===0&&u.length===0&&d.length===0)throw new EmptyModelResponseError;await emitStepActions(n,v,f,{emittedActionCallIds:a,excludedActionCallIds:l,excludedActionToolNames:r,handledInlineToolResultCallIds:c,tools:s});let m=f.toolResults,h=new Map(m.map(e=>[e.toolCallId,e]));for(let e of u)h.set(e.toolCallId,e);return withAccumulatedResponseMessages({invalidInputToolCallIds:l,responseMessages:appendMissingToolResultMessages({append:d,responseMessages:p}),stepResult:f,toolResults:[...h.values()]})}let e=await b.generate({abortSignal:t.abortSignal,messages:o});throwIfTurnAborted(t.abortSignal);let r=await y.stepResult;if(isEmptyModelResponse(r)&&extractToolResultCallIds(e.responseMessages).size===0)throw new EmptyModelResponseError;return withAccumulatedResponseMessages({responseMessages:e.responseMessages,stepResult:r})})().catch(rethrowNoOutputAsEmptyResponse)},runOneModelCall=async e=>runModelCallWithRetries(t=>runSingleModelCall({...e,preparedInput:t===1?e.preparedInput:void 0,suppressStepStartedEmission:t===1?e.suppressStepStartedEmission:!0}),{sessionId:h.sessionId,turnId:v.turnId},t.abortSignal),ie=prepareModelCallInput();n&&await emitStepStarted(n,v,I);let Y=await continuePendingWorkflowInterrupt({childResults:N?.runtimeActionResults,config:t,emit:n,emissionState:v,runStep,session:h});if(Y!==null)return Y;let X=await enforceSessionTokenLimit({config:t,emit:n,emissionState:v,messages:I,session:h});if(X!==null)return X;let Z;try{Z=await runOneModelCall({preparedInput:ie,suppressStepStartedEmission:!0})}catch(r){throwIfTurnAborted(t.abortSignal);let a=await runModelCallRecoveryPipeline({error:r,stages:[e=>attemptUnsupportedProviderToolRecovery({error:e.error,runOneModelCall,sessionId:h.sessionId,turnId:v.turnId}),e=>attemptEmptyResponseRecovery({emptyDeliveryEnabled:G,error:e.error,retryCallOptions:e.retryCallOptions,runOneModelCall,sessionId:h.sessionId,turnId:v.turnId})]});if(throwIfTurnAborted(t.abortSignal),a.outcome===`recovered`)Z=a.result;else{let r=a.error;if(m&&recordErrorOnSpan(m,r),!n)throw r;let o=extractWorkflowStreamWriteErrorDetails(r);if(o!==null){let t=createErrorId();return log.error(`workflow stream write failed — parking session for retry by the user`,{...o,errorId:t,error:r,sessionId:h.sessionId,turnId:v.turnId}),v=await emitRecoverableFailedTurn(n,v,{code:`WORKFLOW_STREAM_WRITE_FAILED`,continuationToken:h.continuationToken,details:{...o,errorId:t},message:toErrorMessage(r)}),{next:null,session:setHarnessEmissionState(h,v)}}let s=classifyModelCallError(r),c=createErrorId(),u=summarizeKnownError(r),d=u===null?extractUpstreamRejectionMessage(r):null,f=u?.message??d?.message??toErrorMessage(r),p=u?.hint===void 0?f:`${f} ${u.hint}`,g=extractModelCallErrorDetails(r),y=buildModelCallFailureDetails({catalogSummary:u,error:r,errorId:c,modelCallDetails:g,upstreamRejection:d}),b=buildModelCallFailureLogFields({error:r,errorId:c,modelCallDetails:g,recognized:u!==null||d!==null,sessionId:h.sessionId,turnId:v.turnId});if(s===`terminal`)return u===null?log.error(d?.message??`model call failed terminally`,b):log.error(`${u.name}: ${u.message}`,{errorId:c,hint:u.hint,sessionId:h.sessionId,turnId:v.turnId}),await emitFailedStep(n,v,{code:`MODEL_CALL_FAILED`,details:y,message:f,sessionId:h.sessionId}),{next:t.mode===`task`?{done:!0,isError:!0,output:p}:{done:!0,output:``},session:h};if(t.mode===`task`){if(s===`recoverable`&&!(r instanceof EmptyModelResponseError))throw log.warn(d?.message??`model call failed recoverably in task mode — rethrowing for durable step retry`,b),r;return log.error(d?.message??`model call failed; failing the task run`,b),await emitFailedStep(n,v,{code:`MODEL_CALL_FAILED`,details:y,message:f,sessionId:h.sessionId}),{next:{done:!0,isError:!0,output:p},session:h}}return log.error(d?.message??`model call failed — parking session for retry by the user`,b),v=await emitRecoverableFailedTurn(n,v,{code:`MODEL_CALL_FAILED`,continuationToken:h.continuationToken,details:y,message:f}),{next:null,session:setHarnessEmissionState(h,v)}}}let Q=accumulateTurnUsage({previous:getTurnUsageState(h.state),turnId:v.turnId,usage:extractTokenUsageDelta({costUsd:extractGatewayCostUsd(Z.providerMetadata),usage:Z.usage})});h=setTurnUsageState(h,Q);let $;try{$=formatLanguageModelGatewayId(V)}catch{$=void 0}return await setEveAttributes({"$eve.model":$,"$eve.input_tokens":Q.inputTokens,"$eve.output_tokens":Q.outputTokens,"$eve.cache_read_tokens":Q.cacheReadTokens,"$eve.cache_write_tokens":Q.cacheWriteTokens,"$eve.cost_usd":Q.sawCost?Q.costUsd:void 0,"$eve.tool_count":t.tools.size}),handleStepResult({config:t,emit:n,emissionState:v,promptMessages:I,result:Z,runStep,session:h})}return runStep}function extractTokenUsageDelta(e){let t=e.usage;if(!(t===void 0&&e.costUsd===void 0))return{cacheReadTokens:t?.inputTokenDetails?.cacheReadTokens,cacheWriteTokens:t?.inputTokenDetails?.cacheWriteTokens,costUsd:e.costUsd,inputTokens:t?.inputTokens,outputTokens:t?.outputTokens}}function extractGatewayCostUsd(e){let t=readGatewayMetadata(e)?.cost;if(typeof t==`number`&&Number.isFinite(t))return t;if(typeof t==`string`){let e=Number(t);return Number.isFinite(e)?e:void 0}}function readGatewayMetadata(e){let t=e?.gateway;return t&&typeof t==`object`&&!Array.isArray(t)?t:void 0}function buildModelCallFailureDetails(e){let{catalogSummary:t,error:r,errorId:i,modelCallDetails:a,upstreamRejection:o}=e;if(t!==null){let e={errorId:i,message:t.message,name:t.name,semanticErrorId:t.id,...a};return t.hint!==void 0&&(e.hint=t.hint),e}return o===null?{...formatError(r,i),...a}:{errorId:i,message:toErrorMessage(r),name:o.name,...a}}function buildModelCallFailureLogFields(e){let t={errorId:e.errorId,sessionId:e.sessionId,turnId:e.turnId};return e.recognized?{...t,details:e.modelCallDetails}:{...t,error:e.error}}async function runModelCallRecoveryPipeline(e){let t=e.error,n;for(let r of e.stages){let e=await r({error:t,retryCallOptions:n});if(e.outcome===`recovered`)return e;e.outcome===`failed`&&(t=e.error,n=e.retryCallOptions)}return{outcome:`failed`,error:t}}function withAccumulatedResponseMessages(e){let{stepResult:t}=e;return{content:t.content,finishReason:t.finishReason,...e.invalidInputToolCallIds===void 0?{}:{invalidInputToolCallIds:e.invalidInputToolCallIds},providerMetadata:t.providerMetadata,response:{...t.response,messages:[...e.responseMessages]},text:t.text,toolCalls:t.toolCalls,toolResults:e.toolResults===void 0?t.toolResults:[...e.toolResults],usage:t.usage}}function appendMissingToolResultMessages(e){let t=extractToolResultCallIds(e.responseMessages),n=e.append.filter(e=>!t.has(e.toolCallId));return[...e.responseMessages,...n.length>0?[{role:`tool`,content:[...n]}]:[]]}function getInvalidToolCallInputErrors(e){let t=[];for(let n of e.toolCalls){if(n.toolName===FINAL_OUTPUT_TOOL_NAME)continue;let e=getInvalidToolCallInputError({toolCall:n});e!==void 0&&t.push(e)}return t}function extractToolResultCallIds(e){let t=new Set;for(let n of e)if(!(n.role!==`tool`||!Array.isArray(n.content)))for(let e of n.content)e.type===`tool-result`&&t.add(e.toolCallId);return t}async function attemptUnsupportedProviderToolRecovery(e){let t=extractUnsupportedProviderToolTypes(e.error);if(t.length===0)return{outcome:`skipped`};let n=[];for(let e of t){let t=resolveFrameworkToolFromUpstreamType(e);t!==null&&!n.includes(t)&&n.push(t)}if(n.length===0)return{outcome:`skipped`};log.warn(`disabling unsupported provider tool(s); retrying step once`,{disabled:n,sessionId:e.sessionId,turnId:e.turnId,upstreamTypes:t});let r={disabledProviderTools:new Set(n),extraSystemNote:buildDisabledToolNote(n)};try{return{outcome:`recovered`,result:await e.runOneModelCall({...r,suppressStepStartedEmission:!0})}}catch(e){return{outcome:`failed`,error:e,retryCallOptions:r}}}function buildDisabledToolNote(e){let t=e.join(`, `);return`The following ${e.length===1?`tool is`:`tools are`} not available with the current model and has been removed: ${t}. Proceed using the remaining tools or your training knowledge.`}function isEmptyModelResponse(e){return e.toolCalls.length===0&&e.toolResults.length===0&&resolveAssistantStepText(e.response.messages,e.text)===null}function rethrowNoOutputAsEmptyResponse(e){throw isNoOutputGeneratedError(e)?new EmptyModelResponseError({cause:e}):e}const EMPTY_RESPONSE_NUDGE=`Your previous reply was empty and was not delivered. Answer now from the tool results above; do not re-run tools or mention this notice.`;function buildEmptyResponseNudge(e){return e?`${EMPTY_RESPONSE_NUDGE} If the current task explicitly requires conditional delivery and there is nothing to report, reply with exactly ${EMPTY_DELIVERY_SENTINEL}.`:EMPTY_RESPONSE_NUDGE}async function attemptEmptyResponseRecovery(e){if(!(e.error instanceof EmptyModelResponseError))return{outcome:`skipped`};log.warn(`empty model response; reissuing the model call once`,{sessionId:e.sessionId,turnId:e.turnId});try{return{outcome:`recovered`,result:await e.runOneModelCall({...e.retryCallOptions,retryReason:`empty-response`,suppressStepStartedEmission:!0,trailingUserNote:buildEmptyResponseNudge(e.emptyDeliveryEnabled)})}}catch(t){return{outcome:`failed`,error:t,retryCallOptions:e.retryCallOptions}}}async function handleStepResult(e){let{config:t,emit:n,promptMessages:r,result:i,runStep:a}=e,{emissionState:o,session:s}=e,c=resolveAssistantStepText(i.response.messages,i.text),l=i.finishReason!==`tool-calls`&&i.toolCalls.length===0&&hasEmptyDeliverySentinel(c),u=getInvalidToolCallInputErrors({toolCalls:i.toolCalls}),f=new Set([...i.invalidInputToolCallIds??[],...i.toolCalls.filter(isInvalidToolCall).map(e=>e.toolCallId),...u.map(e=>e.toolCallId)]),p=l?[]:appendMissingToolResultMessages({append:u.map(e=>createToolResultMessagePartFromToolError(e)),responseMessages:i.response.messages}),h=l?null:c,g=new Set;for(let e of[...i.content??[],...i.toolResults??[]])(e.type===`tool-result`||e.type===`tool-error`)&&e.providerExecuted===!0&&g.add(e.toolCallId);let _=normalizeProviderToolHistory({messages:p,providerExecutedOutcomeIds:g}),v=_.messages,y={...s,compaction:createNextCompactionConfig(s.compaction,r,i)},b=t.workflow===!0?readWorkflowContinuationSecurity(y):void 0;if(b!==void 0){let e=await getWorkflowSandboxInterrupt(i,b);if(e!==void 0){if(!isWorkflowRuntimeActionInterrupt(e))throw Error(`Unsupported Workflow interrupt kind "${e.payload.kind}".`);return parkOnWorkflowInterrupt({baseSession:y,emissionState:o,interrupt:e,promptMessages:r,responseMessages:v})}}let S=extractToolApprovalInputRequests({content:i.content??[],excludedCallIds:f}),C=new Set(S.map(e=>e.action.callId)),ee=extractQuestionInputRequests({toolCalls:i.toolCalls,excludedCallIds:new Set([...f,...C])}),w=[...S,...ee],T=getAdvertisedTools({session:y,tools:t.tools}),E=(i.toolCalls??[]).filter(e=>!f.has(e.toolCallId)).filter(e=>t.tools.get(e.toolName)?.runtimeAction!==void 0).filter(e=>T.get(e.toolName)?.runtimeAction===void 0?(log.warn(`runtime action tool call blocked because tool is not advertised`,{callId:e.toolCallId,sessionId:y.sessionId,toolName:e.toolName}),!1):!0).map(e=>createRuntimeActionRequestFromToolCall({toolCall:e,tools:T}));if(E.length>0)return{next:null,session:setHarnessEmissionState(setPendingRuntimeActionBatch({actions:E,event:{sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId},responseMessages:v,session:{...y,history:[...r]}}),o)};if(w.length>0){let e=setPendingInputBatch({event:{sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId},requests:w,responseMessages:v,session:{...y,history:[...r]}});return n&&(await n(createInputRequestedEvent({requests:w,sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId})),t.mode===`conversation`&&(o=await emitTurnEpilogue(n,o,t.mode,e.continuationToken),e=setHarnessEmissionState(e,o))),{next:null,session:e}}let D=findAuthorizationSignalFromToolResults(i.toolResults);if(D){let{challenges:e}=D;if(n)for(let t of e)await n(createAuthorizationRequiredEvent({authorization:t.challenge,name:t.name,description:t.challenge.instructions??`Authorization required for ${t.name}`,webhookUrl:t.hookUrl,sequence:o.sequence,stepIndex:o.stepIndex,turnId:o.turnId}));return{next:null,session:setHarnessEmissionState({...y,history:[...r],state:setPendingAuthorization(y.state,{challenges:e})},o)}}let O=v,te=[...r,...O],j={...y,history:te};return!(j.outputSchema!==void 0&&extractFinalOutput(i)!==void 0)&&(O.at(-1)?.role===`tool`||_.outcomeEndsResponse||hasDeferredStepInput(j))?(n&&(o=advanceStep(o),j=setHarnessEmissionState(j,o)),{next:a,session:j}):t.mode===`task`?finishTaskTurn({emissionState:o,emit:n,history:r,result:i,schema:j.outputSchema,session:j,stepOutput:h}):finishConversationTurn({emissionState:o,emit:n,history:r,result:i,schema:j.outputSchema,session:j})}const OUTPUT_SCHEMA_NOT_FULFILLED={code:`OUTPUT_SCHEMA_NOT_FULFILLED`,message:`The agent could not produce a result matching the requested schema.`};function extractFinalOutput(e){return(e.toolCalls??[]).find(e=>e.toolName===FINAL_OUTPUT_TOOL_NAME&&!isInvalidToolCall(e))?.input}function persistStructuredAssistantTurn(e,t,n){return{...e,history:[...t,{content:JSON.stringify(n),role:`assistant`}],outputSchema:void 0}}async function emitStructuredResult(e,t,n,r,i){return await e(createResultCompletedEvent({result:n,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),emitTurnEpilogue(e,t,r,i)}async function finishTaskTurn(e){let{emit:t,history:n,result:r,schema:i,stepOutput:a}=e,{emissionState:o,session:s}=e;if(i===void 0)return t&&(o=await emitTurnEpilogue(t,o,`task`,s.continuationToken),s=setHarnessEmissionState(s,o)),{next:{done:!0,output:a??``},session:s};let c=extractFinalOutput(r);return c===void 0?(t&&await emitFailedStep(t,o,{...OUTPUT_SCHEMA_NOT_FULFILLED,sessionId:s.sessionId}),{next:{done:!0,isError:!0,output:OUTPUT_SCHEMA_NOT_FULFILLED.message},session:s}):(s=persistStructuredAssistantTurn(s,n,c),t&&(o=await emitStructuredResult(t,o,c,`task`,s.continuationToken),s=setHarnessEmissionState(s,o)),{next:{done:!0,output:c},session:s})}async function finishConversationTurn(e){let{emit:t,history:n,result:r,schema:i}=e,{emissionState:a,session:o}=e;if(i===void 0)return t&&(a=await emitTurnEpilogue(t,a,`conversation`,o.continuationToken),o=setHarnessEmissionState(o,a)),{next:null,session:o};let s=extractFinalOutput(r);return s===void 0?(t&&(a=await emitRecoverableFailedTurn(t,a,{...OUTPUT_SCHEMA_NOT_FULFILLED,continuationToken:o.continuationToken}),o=setHarnessEmissionState(o,a)),{next:null,session:o}):(o=persistStructuredAssistantTurn(o,n,s),t&&(a=await emitStructuredResult(t,a,s,`conversation`,o.continuationToken),o=setHarnessEmissionState(o,a)),{next:null,session:o})}async function continuePendingWorkflowInterrupt(e){let t=getPendingWorkflowInterrupt(e.session.state);if(t===void 0)return null;let n=t.interrupt;if(!isWorkflowRuntimeActionInterrupt(n))throw Error(`Unsupported Workflow interrupt kind "${n.payload.kind}".`);let i=e.emit===void 0?void 0:createWorkflowLifecycle({emit:e.emit,emissionState:e.emissionState,skipReplayed:!0,tools:e.config.tools}),a=getWorkflowContinuationSecurity(e.session),o;try{let t=buildWorkflowHostTools({tools:e.config.tools}),r=e.childResults??[],s=n,c=0;for(;;){o=await continueWorkflowSandboxInterrupt({bridgeRequestLimit:resolveWorkflowSandboxBridgeRequestLimit(e.config.workflowMaxSubagents),continuationSecurity:a,interrupt:s,lifecycle:i,resolution:r[c]?.output,tools:t});let n=await unwrapWorkflowSandboxResult(o,a);if(n.status!==`interrupted`||!isWorkflowRuntimeActionInterrupt(n.interrupt)||c+1>=r.length)break;let l=getWorkflowRuntimeActionInterrupts(n.interrupt)[0];if(l===void 0)throw Error(`Workflow continuation contains no pending runtime-action interrupt.`);c++,s=l}}catch(e){logError(log,`Workflow interrupt continuation failed`,e),o={error:`workflow_continuation_failed`,message:toErrorMessage(e),retryable:!1}}let s=await unwrapWorkflowSandboxResult(o,a),c=s.status===`interrupted`?s.interrupt:s.output,u=replaceWorkflowToolResult([...e.session.history,...t.responseMessages],n.outerToolCallId,c),d=clearPendingWorkflowInterrupt({...e.session,history:u});if(s.status===`interrupted`){if(!isWorkflowRuntimeActionInterrupt(s.interrupt))throw Error(`Unsupported Workflow interrupt kind "${s.interrupt.payload.kind}".`);let t=e.session.history.length,n=u.slice(0,t),r=u.slice(t);return d={...d,history:n},parkOnWorkflowInterrupt({baseSession:d,emissionState:e.emissionState,interrupt:s.interrupt,promptMessages:n,responseMessages:r})}return{next:e.runStep,session:d}}function replaceWorkflowToolResult(e,t,n){if(t===void 0)return[...e];let r=typeof n==`string`?{type:`text`,value:n}:{type:`json`,value:n};return e.map(e=>{if(e.role!==`tool`)return e;let n=e.content.map(e=>e.type!==`tool-result`||e.toolCallId!==t?e:{...e,output:r});return{...e,content:n}})}function parkOnWorkflowInterrupt(e){let t=getWorkflowRuntimeActionInterrupts(e.interrupt)[0];if(t===void 0)throw Error(`Workflow continuation contains no pending runtime-action interrupt.`);let n={...e.baseSession,history:[...e.promptMessages]};return{next:null,session:setHarnessEmissionState(setPendingWorkflowInterrupt({interrupt:t,responseMessages:e.responseMessages,session:n}),e.emissionState)}}function createNextCompactionConfig(e,t,n){let r={recentWindowSize:e.recentWindowSize,threshold:e.threshold};return n.usage?.inputTokens!==void 0&&(r.lastKnownInputTokens=n.usage.inputTokens,r.lastKnownPromptMessageCount=t.length),r}async function maybeCompact(e){let{emit:t,emissionState:n}=e,r=e.messages,i=e.session;if(!shouldCompact(r,i.compaction))return{messages:r,session:i};let a=await resolveCompactionModel({compactionModelReference:i.agent.compactionModelReference,model:e.model,modelReference:i.agent.modelReference,resolveModel:e.resolveModel});if(t&&await t(createCompactionRequestedEvent({modelId:formatLanguageModelGatewayId(a.model),sequence:n.sequence,sessionId:i.sessionId,turnId:n.turnId,usageInputTokens:getInputTokenCount(r,i.compaction)})),r=await compactMessages(r,a.model,i.compaction,a.providerOptions,e.telemetry,buildGatewayAttributionHeaders(a.model,e.runtimeIdentity),e.abortSignal),e.onCompaction)for(let t of e.onCompaction())r.push(t);return t&&await t(createCompactionCompletedEvent({modelId:formatLanguageModelGatewayId(a.model),sequence:n.sequence,sessionId:i.sessionId,turnId:n.turnId})),{messages:r,session:i}}function resolveApprovalKeyFromTools(e){return t=>{let n=e.get(t.action.toolName);if(n?.approvalKey!==void 0)return n.approvalKey(t.action.input)}}async function runModelCallWithRetries(e,t,n){for(let r=1;;r++){throwIfTurnAborted(n);try{return await e(r)}catch(e){if(throwIfTurnAborted(n),r===3||classifyModelCallError(e)!==`retry`)throw e;let i=500*2**(r-1)+Math.floor(Math.random()*250);log.warn(`model call failed transiently — retrying`,{attempt:r,delayMs:i,sessionId:t.sessionId,turnId:t.turnId,error:e}),await new Promise(e=>setTimeout(e,i))}}}function findAuthorizationSignalFromToolResults(e){let t=contextStorage.getStore();if(t!==void 0)for(let n of e??[]){let e=readToolInterrupt(t,n.toolCallId);if(e!==void 0&&isAuthorizationSignal(e))return e}for(let t of e??[])if(isAuthorizationSignal(t.output))return t.output}export{createToolLoopHarness};
|
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
export declare class TurnCancelledError extends Error {
|
|
3
3
|
constructor(message?: string);
|
|
4
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* A turn cancellation raised when the user declines a session-limit
|
|
7
|
+
* continuation prompt. Carries intent only — the execution layer detects it
|
|
8
|
+
* at the step boundary and cancels the root turn, so a delegated child's
|
|
9
|
+
* decline stops the whole delegation tree. Keeps the harness free of
|
|
10
|
+
* cross-session cancellation authority.
|
|
11
|
+
*/
|
|
12
|
+
export declare class SessionLimitDeclinedError extends TurnCancelledError {
|
|
13
|
+
readonly sessionLimitDeclined = true;
|
|
14
|
+
constructor();
|
|
15
|
+
}
|
|
16
|
+
/** True when the error, or one of its causes, marks a session-limit decline. */
|
|
17
|
+
export declare function isSessionLimitDecline(error: unknown): boolean;
|
|
5
18
|
/** True when the error, or one of its causes, is a {@link TurnCancelledError}. */
|
|
6
19
|
export declare function isTurnCancellation(error: unknown): boolean;
|
|
7
20
|
/** Throws when the turn signal has aborted. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const TURN_CANCELLED_ERROR_NAME=`TurnCancelledError`;var TurnCancelledError=class extends Error{constructor(t=`The turn was cancelled.`){super(t),this.name=TURN_CANCELLED_ERROR_NAME}};function isTurnCancellation(t){let n=t,r=new Set;for(;typeof n==`object`&&n&&!r.has(n);){if(r.add(n),n.name===TURN_CANCELLED_ERROR_NAME)return!0;n=n.cause}return!1}function throwIfTurnAborted(e){if(e?.aborted===!0)throw isTurnCancellation(e.reason)?e.reason:new TurnCancelledError}export{TurnCancelledError,isTurnCancellation,throwIfTurnAborted};
|
|
1
|
+
const TURN_CANCELLED_ERROR_NAME=`TurnCancelledError`;var TurnCancelledError=class extends Error{constructor(t=`The turn was cancelled.`){super(t),this.name=TURN_CANCELLED_ERROR_NAME}},SessionLimitDeclinedError=class extends TurnCancelledError{sessionLimitDeclined=!0;constructor(){super(`The user declined a fresh session token budget.`)}};function isSessionLimitDecline(e){let t=e,n=new Set;for(;typeof t==`object`&&t&&!n.has(t);){if(n.add(t),t.sessionLimitDeclined===!0)return!0;t=t.cause}return!1}function isTurnCancellation(t){let n=t,r=new Set;for(;typeof n==`object`&&n&&!r.has(n);){if(r.add(n),n.name===TURN_CANCELLED_ERROR_NAME)return!0;n=n.cause}return!1}function throwIfTurnAborted(e){if(e?.aborted===!0)throw isTurnCancellation(e.reason)?e.reason:new TurnCancelledError}export{SessionLimitDeclinedError,TurnCancelledError,isSessionLimitDecline,isTurnCancellation,throwIfTurnAborted};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createRequire}from"node:module";import{existsSync,readFileSync,realpathSync}from"node:fs";import{basename,dirname,join}from"node:path";import{EVE_PACKAGE_NAME}from"#internal/package-name.js";import{fileURLToPath}from"node:url";let cachedPackageInfo;const BUNDLED_FALLBACK_PACKAGE_VERSION=`0.27.
|
|
1
|
+
import{createRequire}from"node:module";import{existsSync,readFileSync,realpathSync}from"node:fs";import{basename,dirname,join}from"node:path";import{EVE_PACKAGE_NAME}from"#internal/package-name.js";import{fileURLToPath}from"node:url";let cachedPackageInfo;const BUNDLED_FALLBACK_PACKAGE_VERSION=`0.27.1`,WORKFLOW_MODULE_ALIASES={"workflow/errors":`src/compiled/@workflow/errors/index.js`,"workflow/internal/private":`src/compiled/@workflow/core/private.js`};function resolveFallbackPackageVersion(){return BUNDLED_FALLBACK_PACKAGE_VERSION.startsWith(`__`)?`0.0.0`:BUNDLED_FALLBACK_PACKAGE_VERSION}const FALLBACK_PACKAGE_INFO={name:EVE_PACKAGE_NAME,version:resolveFallbackPackageVersion()};function resolveCurrentModulePath(){return typeof __filename==`string`?__filename:resolveCurrentModulePathFromStack()}function resolveCurrentModulePathFromStack(){let e=Error.prepareStackTrace;try{Error.prepareStackTrace=(e,t)=>t;let e=Error().stack?.[0]?.getFileName();if(typeof e!=`string`||e.length===0)throw Error(`Failed to resolve the current module path from the stack trace.`);return e.startsWith(`file:`)?fileURLToPath(e):e}finally{Error.prepareStackTrace=e}}const require=createRequire(resolveCurrentModulePath());function isBuildOutputPackageRoot(e){return basename(e)===`dist`&&existsSync(join(dirname(e),`package.json`))}function resolvePackageBuildRoot(){let e=dirname(realpathSync(resolveCurrentModulePath()));for(;;){if(isBuildOutputPackageRoot(e))return e;let t=dirname(e);if(t===e)return null;e=t}}function findNearestPackageRoot(e){let n=e;for(;;){if(existsSync(join(n,`package.json`))&&!isBuildOutputPackageRoot(n))return n;let r=dirname(n);if(r===n)throw Error(`Failed to resolve package root from "${e}".`);n=r}}function resolvePackageRoot(){return findNearestPackageRoot(dirname(realpathSync(resolveCurrentModulePath())))}function tryResolvePackageRoot(){try{return resolvePackageRoot()}catch{return}}function rewriteSourceFilePathForBuild(e){return e.replace(/\.[cm]?tsx?$/,`.js`)}function resolvePackageSourceFilePath(e){let t=resolvePackageBuildRoot();return t===null?join(resolvePackageRoot(),e):join(t,rewriteSourceFilePathForBuild(e))}function resolvePackageSourceDirectoryPath(e){let t=resolvePackageBuildRoot();return join(t===null?resolvePackageRoot():t,e)}function resolvePackageDependencyPath(e){return require.resolve(e)}function resolvePackageCompiledFilePath(e){let t=resolvePackageBuildRoot();return t===null?join(resolvePackageRoot(),`.generated`,`compiled`,e.replace(/^src\/compiled\//,``)):join(t,e)}function normalizeInstalledPackageInfo(e){let t=e;if(!(typeof t.name!=`string`||typeof t.version!=`string`))return{name:t.name,version:t.version}}function tryReadInstalledPackageInfo(e,t){let r=normalizeInstalledPackageInfo(JSON.parse(readFileSync(e,`utf8`)));if(r?.name===t)return r}function resolveInstalledPackageInfo(){if(cachedPackageInfo)return cachedPackageInfo;let e=tryResolvePackageRoot(),t=e===void 0?void 0:tryReadInstalledPackageInfo(join(e,`package.json`),EVE_PACKAGE_NAME);if(t)return cachedPackageInfo=t,cachedPackageInfo;try{let e=tryReadInstalledPackageInfo(require.resolve(`${EVE_PACKAGE_NAME}/package.json`),EVE_PACKAGE_NAME);if(e)return cachedPackageInfo=e,cachedPackageInfo}catch{}return cachedPackageInfo={...FALLBACK_PACKAGE_INFO},cachedPackageInfo}function readWorkflowVersionFromManifest(e){let t=e;for(let e of[t.devDependencies,t.dependencies,t.peerDependencies]){let t=e?.[`@workflow/core`];if(typeof t==`string`&&t.trim().length>0)return t}}function resolveExpectedWorkflowVersion(){let e=tryResolvePackageRoot();if(e!==void 0)try{return readWorkflowVersionFromManifest(JSON.parse(readFileSync(join(e,`package.json`),`utf8`)))}catch{}try{return readWorkflowVersionFromManifest(JSON.parse(readFileSync(require.resolve(`${EVE_PACKAGE_NAME}/package.json`),`utf8`)))}catch{return}}function resolveWorkflowModulePath(e){if(e===`workflow`)return resolvePackageSourceFilePath(`src/internal/workflow/index.ts`);if(e===`workflow/api`||e===`workflow/runtime`)return resolvePackageSourceFilePath(`src/internal/workflow/runtime.ts`);if(e===`workflow/internal/builtins`)return resolvePackageSourceFilePath(`src/internal/workflow/builtins.ts`);let t=WORKFLOW_MODULE_ALIASES[e];return t===void 0?require.resolve(e):resolvePackageCompiledFilePath(t)}export{resolveExpectedWorkflowVersion,resolveInstalledPackageInfo,resolvePackageCompiledFilePath,resolvePackageDependencyPath,resolvePackageRoot,resolvePackageSourceDirectoryPath,resolvePackageSourceFilePath,resolveWorkflowModulePath};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createGetSessionFn}from"#channel/session.js";import{createLogger,logError}from"#internal/logging.js";import{createSendFn}from"#channel/send.js";import{createCrossChannelReceiveFn,toCrossChannelTargets}from"#channel/cross-channel-receive.js";import{DEVELOPMENT_WORKFLOW_SECRET_ENV}from"#internal/workflow/development-world-protocol.js";import{readTrustedDevelopmentClientAddress}from"#internal/nitro/dev-client-address.js";import{createCancelFn}from"#channel/cancel.js";import{attachAgentInfoRouteResponse,attachRouteAgent}from"#internal/nitro/routes/channel-route-context.js";import{resolveNitroChannelRuntimeBundle}from"#internal/nitro/routes/runtime-stack.js";import{readVercelProjectLink}from"#internal/vercel/project-link.js";import{withVercelOidcProjectResolver}from"#runtime/governance/auth/vercel-oidc-project.js";const log=createLogger(`channel.dispatch`);async function dispatchChannelRequest(e,t,r){let i=await resolveNitroChannelRuntimeBundle(r),a=i.channels.find(e=>`${e.method.toUpperCase()} ${e.urlPath}`===t);if(a===void 0)return Response.json({error:`No matching channel for this request.`,ok:!1},{status:404});let o=buildRouteArgs(e,i,a.name,r),s;try{s=await withDevelopmentVercelOidcContext(r,e.req,async()=>{if(a.handler)return await a.handler(e.req,o.args);let t={agent:o.agent,waitUntil:o.args.waitUntil,params:o.args.params,requestIp:o.args.requestIp};return await a.fetch(e.req,t)})}catch(r){let i=logError(log,`channel handler threw`,r,{routeKey:t,channel:a.name});return flushBackgroundTasks(e,o.backgroundTasks,t,a.name),Response.json({error:`Channel handler failed.`,errorId:i,ok:!1},{status:500})}return flushBackgroundTasks(e,o.backgroundTasks,t,a.name),s}async function dispatchChannelWebSocketRequest(e,t,r){let i=await resolveNitroChannelRuntimeBundle(r),a=i.channels.find(e=>`${e.method.toUpperCase()} ${e.urlPath}`===t);if(a===void 0||a.websocket===void 0)return rejectWebSocketUpgrade({error:`No matching websocket channel for this request.`,ok:!1},404);let o=a.websocket,s=buildRouteArgs(e,i,a.name,r);try{let n=await withDevelopmentVercelOidcContext(r,e.req,async()=>await o(e.req,s.args));return flushBackgroundTasks(e,s.backgroundTasks,t,a.name),n}catch(r){let i=logError(log,`channel websocket handler threw`,r,{routeKey:t,channel:a.name});return flushBackgroundTasks(e,s.backgroundTasks,t,a.name),rejectWebSocketUpgrade({error:`Channel websocket handler failed.`,errorId:i,ok:!1},500)}}async function withDevelopmentVercelOidcContext(e,t,n){return e.kind===`development`?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()}function buildRouteArgs(t,n,o,s){let c=readVercelRequestId(t.req.headers),l=extractRequestIp(t,s),u=[],d=t.context.params??{},f={};for(let[e,t]of Object.entries(d))f[e]=decodeURIComponent(t);let waitUntil=e=>{u.push(e)},p=n.channels.find(e=>e.name===o)?.adapter??{kind:`channel`},m=createRouteAgent(n.runtime,c);return{agent:m,args:attachRouteAgent(attachAgentInfoRouteResponse({send:createSendFn(n.runtime,p,o,{requestId:c}),cancel:createCancelFn(n.runtime,o),getSession:createGetSessionFn(n.runtime),receive:createCrossChannelReceiveFn(n.runtime,toCrossChannelTargets(n.channels)),params:f,waitUntil,requestIp:l},async()=>{let{handleAgentInfoRequest:e}=await import(`#internal/nitro/routes/info.js`);return await e(s)}),m),backgroundTasks:u}}function createRouteAgent(e,t){return{async cancelTurn(t){return await e.cancelTurn(t)},async deliver(n){let r={...n,requestId:t};return await e.deliver(r)},async getEventStream(t,n){return await e.getEventStream(t,n)},async run(n){let r={...n,requestId:t};return await e.run(r)}}}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,r,i){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:r,channel:i})}))}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
|
+
import{createGetSessionFn}from"#channel/session.js";import{createLogger,logError}from"#internal/logging.js";import{createSendFn}from"#channel/send.js";import{createCrossChannelReceiveFn,toCrossChannelTargets}from"#channel/cross-channel-receive.js";import{DEVELOPMENT_WORKFLOW_SECRET_ENV}from"#internal/workflow/development-world-protocol.js";import{readTrustedDevelopmentClientAddress}from"#internal/nitro/dev-client-address.js";import{createCancelFn}from"#channel/cancel.js";import{createResolveActiveSessionFn}from"#channel/resolve-active-session.js";import{attachAgentInfoRouteResponse,attachRouteAgent}from"#internal/nitro/routes/channel-route-context.js";import{resolveNitroChannelRuntimeBundle}from"#internal/nitro/routes/runtime-stack.js";import{readVercelProjectLink}from"#internal/vercel/project-link.js";import{withVercelOidcProjectResolver}from"#runtime/governance/auth/vercel-oidc-project.js";const log=createLogger(`channel.dispatch`);async function dispatchChannelRequest(e,t,r){let i=await resolveNitroChannelRuntimeBundle(r),a=i.channels.find(e=>`${e.method.toUpperCase()} ${e.urlPath}`===t);if(a===void 0)return Response.json({error:`No matching channel for this request.`,ok:!1},{status:404});let o=buildRouteArgs(e,i,a.name,r),s;try{s=await withDevelopmentVercelOidcContext(r,e.req,async()=>{if(a.handler)return await a.handler(e.req,o.args);let t={agent:o.agent,waitUntil:o.args.waitUntil,params:o.args.params,requestIp:o.args.requestIp};return await a.fetch(e.req,t)})}catch(r){let i=logError(log,`channel handler threw`,r,{routeKey:t,channel:a.name});return flushBackgroundTasks(e,o.backgroundTasks,t,a.name),Response.json({error:`Channel handler failed.`,errorId:i,ok:!1},{status:500})}return flushBackgroundTasks(e,o.backgroundTasks,t,a.name),s}async function dispatchChannelWebSocketRequest(e,t,r){let i=await resolveNitroChannelRuntimeBundle(r),a=i.channels.find(e=>`${e.method.toUpperCase()} ${e.urlPath}`===t);if(a===void 0||a.websocket===void 0)return rejectWebSocketUpgrade({error:`No matching websocket channel for this request.`,ok:!1},404);let o=a.websocket,s=buildRouteArgs(e,i,a.name,r);try{let n=await withDevelopmentVercelOidcContext(r,e.req,async()=>await o(e.req,s.args));return flushBackgroundTasks(e,s.backgroundTasks,t,a.name),n}catch(r){let i=logError(log,`channel websocket handler threw`,r,{routeKey:t,channel:a.name});return flushBackgroundTasks(e,s.backgroundTasks,t,a.name),rejectWebSocketUpgrade({error:`Channel websocket handler failed.`,errorId:i,ok:!1},500)}}async function withDevelopmentVercelOidcContext(e,t,n){return e.kind===`development`?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()}function buildRouteArgs(t,n,o,s){let c=readVercelRequestId(t.req.headers),l=extractRequestIp(t,s),u=[],d=t.context.params??{},f={};for(let[e,t]of Object.entries(d))f[e]=decodeURIComponent(t);let waitUntil=e=>{u.push(e)},p=n.channels.find(e=>e.name===o)?.adapter??{kind:`channel`},m=createRouteAgent(n.runtime,c);return{agent:m,args:attachRouteAgent(attachAgentInfoRouteResponse({send:createSendFn(n.runtime,p,o,{requestId:c}),resolveActiveSession:createResolveActiveSessionFn(n.runtime,o),cancel:createCancelFn(n.runtime,o),getSession:createGetSessionFn(n.runtime),receive:createCrossChannelReceiveFn(n.runtime,toCrossChannelTargets(n.channels)),params:f,waitUntil,requestIp:l},async()=>{let{handleAgentInfoRequest:e}=await import(`#internal/nitro/routes/info.js`);return await e(s)}),m),backgroundTasks:u}}function createRouteAgent(e,t){return{async cancelTurn(t){return await e.cancelTurn(t)},async deliver(n){let r={...n,requestId:t};return await e.deliver(r)},async getEventStream(t,n){return await e.getEventStream(t,n)},async run(n){let r={...n,requestId:t};return await e.run(r)}}}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,r,i){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:r,channel:i})}))}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,3 +1,3 @@
|
|
|
1
|
-
import{basename,dirname,extname,join,relative}from"node:path";import{cp,mkdir,readFile,readdir,realpath,rename,rm,symlink,writeFile}from"node:fs/promises";import{buildSingleRolldownChunk}from"#internal/bundler/nitro-rolldown.js";import{EVE_SHARED_SERVER_FUNCTION_PATH,isEveVercelFunctionPath,normalizeEveVercelRoutes}from"#internal/workflow-bundle/eve-service-route-output.js";const WORKFLOW_STEP_EXTERNAL_PACKAGES=[`@mongodb-js/zstd`,`just-bash`,`microsandbox`,`node-liblzma`],WORKFLOW_BUILDER_DEFERRED_PACKAGES=[`@chat-adapter/slack`,`chat`];function createWorkflowFunctionEnvironment(e){let t={};return isRecord(e)&&Object.assign(t,e),t.NODE_OPTIONS=`--experimental-require-module`,t}function isRecord(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function prepareVercelFunctionDirectory(e){await rm(e,{force:!0,recursive:!0}),await mkdir(e,{recursive:!0})}async function resolveNitroFunctionDirectory(e){try{return await realpath(e.sourcePath)}catch{return await realpath(e.fallbackPath)}}async function copyNitroFunctionDirectory(e){let t=await resolveNitroFunctionDirectory({fallbackPath:e.fallbackPath,sourcePath:e.sourcePath});await prepareVercelFunctionDirectory(e.targetPath),await cp(t,e.targetPath,{dereference:!0,recursive:!0})}async function normalizeEveVercelFunctionOutput(e,t={}){let n=join(e,`functions`),i=await prepareSharedEveServerFunction(n);i!==null&&await repointEveFunctionSymlinksInDirectory(n,i),await pruneNonEveFunctionEntries(n,n),await pruneNonEveVercelRoutes(e,t.servicePrefix)}async function prepareSharedEveServerFunction(e){let n=join(e,`__server.func`),i=join(e,EVE_SHARED_SERVER_FUNCTION_PATH),s;try{s=await realpath(n)}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return null;throw e}let c=`${i}.eve-staging`;return await mkdir(dirname(i),{recursive:!0}),await rm(c,{force:!0,recursive:!0}),await cp(s,c,{dereference:!0,recursive:!0}),await rm(i,{force:!0,recursive:!0}),await rename(c,i),i}async function repointEveFunctionSymlinksInDirectory(e,t,n=e){let a;try{a=await readdir(e,{withFileTypes:!0})}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return;throw e}await Promise.all(a.map(async a=>{let o=join(e,a.name),s=normalizeVercelOutputPath(relative(n,o));if(a.isSymbolicLink()){a.name.endsWith(`.func`)&&isEveVercelFunctionPath(s)&&await repointFunctionSymlink(o,t);return}a.isDirectory()&&!a.name.endsWith(`.func`)&&await repointEveFunctionSymlinksInDirectory(o,t,n)}))}async function repointFunctionSymlink(e,n){await rm(e,{force:!0,recursive:!0}),await symlink(normalizeVercelOutputPath(relative(dirname(e),n)),e,`dir`)}async function pruneNonEveFunctionEntries(e,t){let n;try{n=await readdir(t,{withFileTypes:!0})}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return;throw e}await Promise.all(n.map(async n=>{let a=join(t,n.name),o=normalizeVercelOutputPath(relative(e,a));if(n.name.endsWith(`.func`)){isEveVercelFunctionPath(o)||await rm(a,{force:!0,recursive:!0});return}n.isDirectory()&&await pruneNonEveFunctionEntries(e,a)}))}async function pruneNonEveVercelRoutes(e,t){let n=join(e,`config.json`),i;try{i=JSON.parse(await readFile(n,`utf8`))}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return;throw e}!isRecord(i)||!Array.isArray(i.routes)||(i.routes=normalizeEveVercelRoutes(i.routes,t),await writeFile(n,`${JSON.stringify(i,null,2)}\n`))}function normalizeVercelOutputPath(e){return e.replaceAll(`\\`,`/`)}async function emitBundledWorkflowFunctionDirectory(e){await prepareVercelFunctionDirectory(e.targetPath);let n=await emitBundledWorkflowPluginModules({pluginPaths:e.pluginPaths??[],targetPath:e.targetPath}),i=join(dirname(e.bundlePath),`__eve_workflow_function_entry.js`),a=await buildSingleRolldownChunk(`Vercel workflow function for "${e.bundlePath}"`,{cwd:dirname(e.bundlePath),input:i,platform:`node`,plugins:[createVirtualModulePlugin({id:i,moduleType:`js`,source:createWorkflowFunctionEntrypointSource({bundlePath:e.bundlePath,pluginModulePaths:n})})],output:{comments:!1,format:`cjs`,sourcemap:!1}});await Promise.all([writeFile(join(e.targetPath,`index.js`),a.code),writeFile(join(e.targetPath,`package.json`),`${JSON.stringify({type:`commonjs`},null,2)}\n`),writeFile(join(e.targetPath,`.vc-config.json`),`${JSON.stringify({environment:createWorkflowFunctionEnvironment(),handler:`index.js`,launcherType:`Nodejs`,supportsResponseStreaming:!0},null,2)}\n`)])}async function emitBundledWorkflowPluginModules(e){return await Promise.all(e.pluginPaths.map(async(t,n)=>{let i=await buildSingleRolldownChunk(`workflow plugin for "${t}"`,{input:t,platform:`node`,output:{comments:!1,format:`esm`,sourcemap:!1}}),a=`__eve_workflow_plugin_${n}.mjs`;return await writeFile(join(e.targetPath,a),i.code),`./${a}`}))}function createVirtualModulePlugin(e){return{name:`eve-virtual-module`,resolveId(t){return t===e.id?e.id:void 0},load(t){return t===e.id?{code:e.source,moduleType:e.moduleType}:void 0}}}function toRelativeImportPath(e){let t=relative(e.fromDirectoryPath,e.toFilePath).replaceAll(`\\`,`/`);return t.startsWith(`.`)?t:`./${t}`}function normalizeImportSpecifierPath(e){return e.replaceAll(`\\`,`/`)}function createWorkflowFunctionEntrypointSource(t){let n=t.pluginModulePaths.map(e=>normalizeImportSpecifierPath(e)),r=n.length>0;return[`const { POST } = require(${JSON.stringify(`./${basename(t.bundlePath)}`)});`,...r?[`const workflowPluginModulePaths = ${JSON.stringify(n)};`,``,`let workflowPluginPromise;`,``,`async function loadWorkflowPlugins() {`,` if (workflowPluginPromise == null) {`,` workflowPluginPromise = (async () => {`,` for (const pluginPath of workflowPluginModulePaths) {`,` await import(pluginPath);`,` }`,` })();`,` }`,` return await workflowPluginPromise;`,`}`]:[],``,`const DEFAULT_WORKFLOW_REQUEST_ORIGIN = "https://workflow.invalid";`,``,`function getHeader(headers, name) {`,` if (headers === null || headers === undefined) {`,` return undefined;`,` }`,` if (typeof headers.get === "function") {`,` const value = headers.get(name);`,` return typeof value === "string" && value.length > 0 ? value : undefined;`,` }`,` if (typeof headers !== "object") {`,` return undefined;`,` }`,` const record = headers;`,` const lowerName = name.toLowerCase();`,` for (const [key, value] of Object.entries(record)) {`,` if (key.toLowerCase() !== lowerName || value === undefined) {`,` continue;`,` }`,` if (Array.isArray(value)) {`,` return value.find((item) => typeof item === "string" && item.length > 0);`,` }`,` return typeof value === "string" && value.length > 0 ? value : undefined;`,` }`,` return undefined;`,`}`,``,`function createHeaders(headers) {`,` const normalized = new Headers();`,` if (headers === null || headers === undefined) {`,` return normalized;`,` }`,` if (headers instanceof Headers) {`,` return headers;`,` }`,` if (typeof headers.forEach === "function" && typeof headers.entries === "function") {`,` for (const [key, value] of headers.entries()) {`,` normalized.append(key, value);`,` }`,` return normalized;`,` }`,` for (const [key, value] of Object.entries(headers)) {`,` if (value === undefined) {`,` continue;`,` }`,` if (Array.isArray(value)) {`,` for (const item of value) {`,` normalized.append(key, String(item));`,` }`,` continue;`,` }`,` normalized.set(key, String(value));`,` }`,` return normalized;`,`}`,``,`function toAbsoluteWorkflowUrl(request) {`,` const url = typeof request?.url === "string" ? request.url : "/";`,` if (/^https?:\\/\\//.test(url)) {`,` return url;`,` }`,` const host = getHeader(request?.headers, "x-forwarded-host") ?? getHeader(request?.headers, "host");`,` const protocolHeader = getHeader(request?.headers, "x-forwarded-proto");`,` const protocol = protocolHeader === "http" || protocolHeader === "https" ? protocolHeader : "https";`,` const origin = typeof host === "string" && host.length > 0 ? protocol + "://" + host : DEFAULT_WORKFLOW_REQUEST_ORIGIN;`,` return new URL(url, origin).toString();`,`}`,``,`function normalizeWorkflowRequest(request) {`,` if (request instanceof Request) {`,` if (/^https?:\\/\\//.test(request.url)) {`,` return request;`,` }`,` return new Request(toAbsoluteWorkflowUrl(request), request);`,` }`,` const method = typeof request?.method === "string" ? request.method : "GET";`,` const headers = createHeaders(request?.headers);`,` const init = {`,` headers,`,` method,`,` };`,` if (method !== "GET" && method !== "HEAD") {`,` const body = request?.body ?? (request !== null && typeof request === "object" && typeof request.pipe === "function" ? request : undefined);`,` if (body !== undefined) {`,` init.body = body;`,` init.duplex = "half";`,` }`,` }`,` return new Request(toAbsoluteWorkflowUrl(request), init);`,`}`,``,`module.exports = async function handleWorkflowFunctionRequest(requestContext) {`,` const request =`,` requestContext !== null && typeof requestContext === "object" && "req" in requestContext`,` ? requestContext.req`,` : requestContext;`,...r?[` await loadWorkflowPlugins();`]:[],` return await POST(normalizeWorkflowRequest(request));`,`};`,``].join(`
|
|
1
|
+
import{basename,dirname,extname,join,relative}from"node:path";import{cp,mkdir,readFile,readdir,realpath,rename,rm,symlink,writeFile}from"node:fs/promises";import{buildSingleRolldownChunk}from"#internal/bundler/nitro-rolldown.js";import{EVE_SHARED_SERVER_FUNCTION_PATH,isEveVercelFunctionPath,normalizeEveVercelRoutes}from"#internal/workflow-bundle/eve-service-route-output.js";const WORKFLOW_STEP_EXTERNAL_PACKAGES=[`@mongodb-js/zstd`,`just-bash`,`microsandbox`,`node-liblzma`],WORKFLOW_BUILDER_DEFERRED_PACKAGES=[`@chat-adapter/slack`,`chat`];function createWorkflowFunctionEnvironment(e){let t={};return isRecord(e)&&Object.assign(t,e),t.WORKFLOW_PRECONDITION_GUARD=`1`,t.NODE_OPTIONS=`--experimental-require-module`,t}function isRecord(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function prepareVercelFunctionDirectory(e){await rm(e,{force:!0,recursive:!0}),await mkdir(e,{recursive:!0})}async function resolveNitroFunctionDirectory(e){try{return await realpath(e.sourcePath)}catch{return await realpath(e.fallbackPath)}}async function copyNitroFunctionDirectory(e){let t=await resolveNitroFunctionDirectory({fallbackPath:e.fallbackPath,sourcePath:e.sourcePath});await prepareVercelFunctionDirectory(e.targetPath),await cp(t,e.targetPath,{dereference:!0,recursive:!0})}async function normalizeEveVercelFunctionOutput(e,t={}){let n=join(e,`functions`),i=await prepareSharedEveServerFunction(n);i!==null&&await repointEveFunctionSymlinksInDirectory(n,i),await pruneNonEveFunctionEntries(n,n),await pruneNonEveVercelRoutes(e,t.servicePrefix)}async function prepareSharedEveServerFunction(e){let n=join(e,`__server.func`),i=join(e,EVE_SHARED_SERVER_FUNCTION_PATH),s;try{s=await realpath(n)}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return null;throw e}let c=`${i}.eve-staging`;return await mkdir(dirname(i),{recursive:!0}),await rm(c,{force:!0,recursive:!0}),await cp(s,c,{dereference:!0,recursive:!0}),await rm(i,{force:!0,recursive:!0}),await rename(c,i),i}async function repointEveFunctionSymlinksInDirectory(e,t,n=e){let a;try{a=await readdir(e,{withFileTypes:!0})}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return;throw e}await Promise.all(a.map(async a=>{let o=join(e,a.name),s=normalizeVercelOutputPath(relative(n,o));if(a.isSymbolicLink()){a.name.endsWith(`.func`)&&isEveVercelFunctionPath(s)&&await repointFunctionSymlink(o,t);return}a.isDirectory()&&!a.name.endsWith(`.func`)&&await repointEveFunctionSymlinksInDirectory(o,t,n)}))}async function repointFunctionSymlink(e,n){await rm(e,{force:!0,recursive:!0}),await symlink(normalizeVercelOutputPath(relative(dirname(e),n)),e,`dir`)}async function pruneNonEveFunctionEntries(e,t){let n;try{n=await readdir(t,{withFileTypes:!0})}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return;throw e}await Promise.all(n.map(async n=>{let a=join(t,n.name),o=normalizeVercelOutputPath(relative(e,a));if(n.name.endsWith(`.func`)){isEveVercelFunctionPath(o)||await rm(a,{force:!0,recursive:!0});return}n.isDirectory()&&await pruneNonEveFunctionEntries(e,a)}))}async function pruneNonEveVercelRoutes(e,t){let n=join(e,`config.json`),i;try{i=JSON.parse(await readFile(n,`utf8`))}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return;throw e}!isRecord(i)||!Array.isArray(i.routes)||(i.routes=normalizeEveVercelRoutes(i.routes,t),await writeFile(n,`${JSON.stringify(i,null,2)}\n`))}function normalizeVercelOutputPath(e){return e.replaceAll(`\\`,`/`)}async function emitBundledWorkflowFunctionDirectory(e){await prepareVercelFunctionDirectory(e.targetPath);let n=await emitBundledWorkflowPluginModules({pluginPaths:e.pluginPaths??[],targetPath:e.targetPath}),i=join(dirname(e.bundlePath),`__eve_workflow_function_entry.js`),a=await buildSingleRolldownChunk(`Vercel workflow function for "${e.bundlePath}"`,{cwd:dirname(e.bundlePath),input:i,platform:`node`,plugins:[createVirtualModulePlugin({id:i,moduleType:`js`,source:createWorkflowFunctionEntrypointSource({bundlePath:e.bundlePath,pluginModulePaths:n})})],output:{comments:!1,format:`cjs`,sourcemap:!1}});await Promise.all([writeFile(join(e.targetPath,`index.js`),a.code),writeFile(join(e.targetPath,`package.json`),`${JSON.stringify({type:`commonjs`},null,2)}\n`),writeFile(join(e.targetPath,`.vc-config.json`),`${JSON.stringify({environment:createWorkflowFunctionEnvironment(),handler:`index.js`,launcherType:`Nodejs`,supportsResponseStreaming:!0},null,2)}\n`)])}async function emitBundledWorkflowPluginModules(e){return await Promise.all(e.pluginPaths.map(async(t,n)=>{let i=await buildSingleRolldownChunk(`workflow plugin for "${t}"`,{input:t,platform:`node`,output:{comments:!1,format:`esm`,sourcemap:!1}}),a=`__eve_workflow_plugin_${n}.mjs`;return await writeFile(join(e.targetPath,a),i.code),`./${a}`}))}function createVirtualModulePlugin(e){return{name:`eve-virtual-module`,resolveId(t){return t===e.id?e.id:void 0},load(t){return t===e.id?{code:e.source,moduleType:e.moduleType}:void 0}}}function toRelativeImportPath(e){let t=relative(e.fromDirectoryPath,e.toFilePath).replaceAll(`\\`,`/`);return t.startsWith(`.`)?t:`./${t}`}function normalizeImportSpecifierPath(e){return e.replaceAll(`\\`,`/`)}function createWorkflowFunctionEntrypointSource(t){let n=t.pluginModulePaths.map(e=>normalizeImportSpecifierPath(e)),r=n.length>0;return[`const { POST } = require(${JSON.stringify(`./${basename(t.bundlePath)}`)});`,...r?[`const workflowPluginModulePaths = ${JSON.stringify(n)};`,``,`let workflowPluginPromise;`,``,`async function loadWorkflowPlugins() {`,` if (workflowPluginPromise == null) {`,` workflowPluginPromise = (async () => {`,` for (const pluginPath of workflowPluginModulePaths) {`,` await import(pluginPath);`,` }`,` })();`,` }`,` return await workflowPluginPromise;`,`}`]:[],``,`const DEFAULT_WORKFLOW_REQUEST_ORIGIN = "https://workflow.invalid";`,``,`function getHeader(headers, name) {`,` if (headers === null || headers === undefined) {`,` return undefined;`,` }`,` if (typeof headers.get === "function") {`,` const value = headers.get(name);`,` return typeof value === "string" && value.length > 0 ? value : undefined;`,` }`,` if (typeof headers !== "object") {`,` return undefined;`,` }`,` const record = headers;`,` const lowerName = name.toLowerCase();`,` for (const [key, value] of Object.entries(record)) {`,` if (key.toLowerCase() !== lowerName || value === undefined) {`,` continue;`,` }`,` if (Array.isArray(value)) {`,` return value.find((item) => typeof item === "string" && item.length > 0);`,` }`,` return typeof value === "string" && value.length > 0 ? value : undefined;`,` }`,` return undefined;`,`}`,``,`function createHeaders(headers) {`,` const normalized = new Headers();`,` if (headers === null || headers === undefined) {`,` return normalized;`,` }`,` if (headers instanceof Headers) {`,` return headers;`,` }`,` if (typeof headers.forEach === "function" && typeof headers.entries === "function") {`,` for (const [key, value] of headers.entries()) {`,` normalized.append(key, value);`,` }`,` return normalized;`,` }`,` for (const [key, value] of Object.entries(headers)) {`,` if (value === undefined) {`,` continue;`,` }`,` if (Array.isArray(value)) {`,` for (const item of value) {`,` normalized.append(key, String(item));`,` }`,` continue;`,` }`,` normalized.set(key, String(value));`,` }`,` return normalized;`,`}`,``,`function toAbsoluteWorkflowUrl(request) {`,` const url = typeof request?.url === "string" ? request.url : "/";`,` if (/^https?:\\/\\//.test(url)) {`,` return url;`,` }`,` const host = getHeader(request?.headers, "x-forwarded-host") ?? getHeader(request?.headers, "host");`,` const protocolHeader = getHeader(request?.headers, "x-forwarded-proto");`,` const protocol = protocolHeader === "http" || protocolHeader === "https" ? protocolHeader : "https";`,` const origin = typeof host === "string" && host.length > 0 ? protocol + "://" + host : DEFAULT_WORKFLOW_REQUEST_ORIGIN;`,` return new URL(url, origin).toString();`,`}`,``,`function normalizeWorkflowRequest(request) {`,` if (request instanceof Request) {`,` if (/^https?:\\/\\//.test(request.url)) {`,` return request;`,` }`,` return new Request(toAbsoluteWorkflowUrl(request), request);`,` }`,` const method = typeof request?.method === "string" ? request.method : "GET";`,` const headers = createHeaders(request?.headers);`,` const init = {`,` headers,`,` method,`,` };`,` if (method !== "GET" && method !== "HEAD") {`,` const body = request?.body ?? (request !== null && typeof request === "object" && typeof request.pipe === "function" ? request : undefined);`,` if (body !== undefined) {`,` init.body = body;`,` init.duplex = "half";`,` }`,` }`,` return new Request(toAbsoluteWorkflowUrl(request), init);`,`}`,``,`module.exports = async function handleWorkflowFunctionRequest(requestContext) {`,` const request =`,` requestContext !== null && typeof requestContext === "object" && "req" in requestContext`,` ? requestContext.req`,` : requestContext;`,...r?[` await loadWorkflowPlugins();`]:[],` return await POST(normalizeWorkflowRequest(request));`,`};`,``].join(`
|
|
2
2
|
`)}function createRoutedNitroEntrypoint(e){return[`import nitroHandler from ${JSON.stringify(e.delegateImportPath)};`,``,`function invokeNitroHandler(request, context) {`,` if (typeof nitroHandler === "function") {`,` return nitroHandler(request, context);`,` }`,``,` if (nitroHandler !== null && typeof nitroHandler === "object" && "fetch" in nitroHandler) {`,` const fetch = nitroHandler.fetch;`,` if (typeof fetch === "function") {`,` return fetch.call(nitroHandler, request, context);`,` }`,` }`,``,` throw new TypeError("Expected Nitro handler to export a function or an object with fetch(request, context).");`,`}`,``,`const workflowRoutePath = ${JSON.stringify(e.workflowRoutePath)};`,``,`function rewriteRequestToWorkflowRoute(request) {`,` const sourceUrl = new URL(request.url);`,` const routedUrl = new URL(workflowRoutePath, sourceUrl);`,` routedUrl.search = sourceUrl.search;`,` return new Request(routedUrl, request);`,`}`,``,`export default {`,` fetch(request, context) {`,` return invokeNitroHandler(rewriteRequestToWorkflowRoute(request), context);`,` },`,`};`,``].join(`
|
|
3
3
|
`)}async function readVercelHandlerPath(e){try{let t=JSON.parse(await readFile(join(e,`.vc-config.json`),`utf8`));if(typeof t.handler==`string`&&t.handler.length>0)return t.handler}catch{}return`index.mjs`}async function retargetNitroFunctionDirectoryToWorkflowRoute(e){let i=await readVercelHandlerPath(e.functionDirectoryPath),a=join(e.functionDirectoryPath,i),o=dirname(a),s=extname(i),c=join(o,`__eve_nitro_handler__${s.length>0?s:`.mjs`}`),l=toRelativeImportPath({fromDirectoryPath:o,toFilePath:c});await rename(a,c),await writeFile(a,createRoutedNitroEntrypoint({delegateImportPath:l,workflowRoutePath:e.workflowRoutePath}))}export{WORKFLOW_BUILDER_DEFERRED_PACKAGES,WORKFLOW_STEP_EXTERNAL_PACKAGES,copyNitroFunctionDirectory,createWorkflowFunctionEnvironment,emitBundledWorkflowFunctionDirectory,normalizeEveVercelFunctionOutput,prepareVercelFunctionDirectory,retargetNitroFunctionDirectoryToWorkflowRoute};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{anyType,arrayType,lazyType,literalType,nativeEnumType,nullableType,objectType,recordType,unionType}from"../../../../../../zod@4.4.3/node_modules/zod/v3/types.js";import"../../../../../../zod@4.4.3/node_modules/zod/v3/index.js";import{remap}from"../lib/primitives.js";import{safeParse}from"../lib/schemas.js";import{boolean,literal,nullable,number,optional,string}from"../types/primitives.js";import{smartUnion}from"../types/smartUnion.js";import{ACLAction$inboundSchema}from"./aclaction.js";import{UpdateProjectAliasAssigned$inboundSchema,UpdateProjectAliasError$inboundSchema,UpdateProjectProjectsBranchMatcher$inboundSchema}from"./updateprojectprojectsbranchmatcher.js";const UpdateProjectChecksConclusion={Canceled:`canceled`,Failed:`failed`,Skipped:`skipped`,Succeeded:`succeeded`},UpdateProjectChecksState={Completed:`completed`,Registered:`registered`,Running:`running`},UpdateProjectPlan={Enterprise:`enterprise`,Hobby:`hobby`,Pro:`pro`},UpdateProjectReadyState={Blocked:`BLOCKED`,Building:`BUILDING`,Canceled:`CANCELED`,Error:`ERROR`,Initializing:`INITIALIZING`,Queued:`QUEUED`,Ready:`READY`},UpdateProjectReadySubstate={Promoted:`PROMOTED`,Rolling:`ROLLING`,Staged:`STAGED`},UpdateProjectProjectsResponseType={Lambdas:`LAMBDAS`},UpdateProjectProjectsNodeVersion={TenDotX:`10.x`,TwelveDotX:`12.x`,FourteenDotX:`14.x`,SixteenDotX:`16.x`,EighteenDotX:`18.x`,TwentyDotX:`20.x`,TwentyTwoDotX:`22.x`,TwentyFourDotX:`24.x`,EightDot10DotX:`8.10.x`},UpdateProjectProjectsResponseDeploymentType={All:`all`,AllExceptCustomDomains:`all_except_custom_domains`,Preview:`preview`,ProdDeploymentUrlsAndAllPreviews:`prod_deployment_urls_and_all_previews`},UpdateProjectProjectsFunctionDefaultMemoryType={Performance:`performance`,PerformanceXl:`performance_xl`,Standard:`standard`,StandardLegacy:`standard_legacy`},UpdateProjectProjectsBuildMachineType={Enhanced:`enhanced`,Standard:`standard`,Turbo:`turbo`},UpdateProjectProjectsBuildMachineSelection={Elastic:`elastic`,Fixed:`fixed`},UpdateProjectProjectsBuildMachineElasticReason={BuildTimeoutFailure:`build-timeout-failure`,EnospcFailure:`enospc-failure`,EnterpriseFloor:`enterprise-floor`,HighPeakDisk:`high-peak-disk`,HighPeakMemory:`high-peak-memory`,LongBuildDuration:`long-build-duration`,OomFailure:`oom-failure`,ShortBuildDuration:`short-build-duration`,SustainedHighCpu:`sustained-high-cpu`},UpdateProjectProjectsConfiguration={SkipNamespaceQueue:`SKIP_NAMESPACE_QUEUE`,WaitForNamespaceQueue:`WAIT_FOR_NAMESPACE_QUEUE`},UpdateProjectProjectsResponseFunctionDefaultMemoryType={Performance:`performance`,PerformanceXl:`performance_xl`,Standard:`standard`,StandardLegacy:`standard_legacy`},UpdateProjectProjectsResponseBuildMachineType={Enhanced:`enhanced`,Standard:`standard`,Turbo:`turbo`},UpdateProjectProjectsResponseBuildMachineSelection={Elastic:`elastic`,Fixed:`fixed`},UpdateProjectProjectsResponseBuildMachineElasticReason={BuildTimeoutFailure:`build-timeout-failure`,EnospcFailure:`enospc-failure`,EnterpriseFloor:`enterprise-floor`,HighPeakDisk:`high-peak-disk`,HighPeakMemory:`high-peak-memory`,LongBuildDuration:`long-build-duration`,OomFailure:`oom-failure`,ShortBuildDuration:`short-build-duration`,SustainedHighCpu:`sustained-high-cpu`},UpdateProjectProjectsResponseConfiguration={SkipNamespaceQueue:`SKIP_NAMESPACE_QUEUE`,WaitForNamespaceQueue:`WAIT_FOR_NAMESPACE_QUEUE`},UpdateProjectProjectsResponse200DeploymentType={All:`all`,AllExceptCustomDomains:`all_except_custom_domains`,Preview:`preview`,ProdDeploymentUrlsAndAllPreviews:`prod_deployment_urls_and_all_previews`},UpdateProjectCve55182MigrationAppliedFrom={All:`all`,AllExceptCustomDomains:`all_except_custom_domains`,Preview:`preview`,ProdDeploymentUrlsAndAllPreviews:`prod_deployment_urls_and_all_previews`},UpdateProjectApril2026SecurityIncidentMigrationAppliedFrom={All:`all`,AllExceptCustomDomains:`all_except_custom_domains`,Preview:`preview`,ProdDeploymentUrlsAndAllPreviews:`prod_deployment_urls_and_all_previews`},UpdateProjectProjectsResponse200ApplicationJSONResponseBodyTargetsType={EndsWith:`endsWith`,Equals:`equals`,StartsWith:`startsWith`},UpdateProjectProjectsChecksConclusion={Canceled:`canceled`,Failed:`failed`,Skipped:`skipped`,Succeeded:`succeeded`},UpdateProjectProjectsChecksState={Completed:`completed`,Registered:`registered`,Running:`running`},UpdateProjectProjectsPlan={Enterprise:`enterprise`,Hobby:`hobby`,Pro:`pro`},UpdateProjectProjectsReadyState={Blocked:`BLOCKED`,Building:`BUILDING`,Canceled:`CANCELED`,Error:`ERROR`,Initializing:`INITIALIZING`,Queued:`QUEUED`,Ready:`READY`},UpdateProjectProjectsReadySubstate={Promoted:`PROMOTED`,Rolling:`ROLLING`,Staged:`STAGED`},UpdateProjectProjectsResponse200Type={Lambdas:`LAMBDAS`},UpdateProjectJobStatus={Failed:`failed`,InProgress:`in-progress`,Pending:`pending`,Skipped:`skipped`,Succeeded:`succeeded`},UpdateProjectProjectsResponse200ApplicationJSONType={Promote:`promote`,Rollback:`rollback`},UpdateProjectTrustedIpsProjectsDeploymentType={All:`all`,AllExceptCustomDomains:`all_except_custom_domains`,Preview:`preview`,ProdDeploymentUrlsAndAllPreviews:`prod_deployment_urls_and_all_previews`,Production:`production`},UpdateProjectTrustedIpsDeploymentType={All:`all`,AllExceptCustomDomains:`all_except_custom_domains`,Preview:`preview`,ProdDeploymentUrlsAndAllPreviews:`prod_deployment_urls_and_all_previews`,Production:`production`},UpdateProjectTrustedIpsProtectionMode={Additional:`additional`,Exclusive:`exclusive`},UpdateProjectFromProjectsResponsePreset={AllCustom:`all-custom`},UpdateProjectFromProjectsPreset={AllCustom:`all-custom`},UpdateProjectToProjectsResponse200ApplicationJSONResponseBodyPreset={AllCustom:`all-custom`},UpdateProjectToProjectsResponse200ApplicationJSONPreset={AllCustom:`all-custom`},UpdateProjectToProjectsResponse200Preset={AllCustom:`all-custom`},UpdateProjectToProjectsResponsePreset={AllCustom:`all-custom`},UpdateProjectCreateDeployments={Disabled:`disabled`,Enabled:`enabled`},UpdateProjectProjectsResponse200ApplicationJSONResponseBodySecurityAction={Challenge:`challenge`,Deny:`deny`,Log:`log`},UpdateProjectProjectsResponse200ApplicationJSONResponseBodySecurityManagedRulesAction={Challenge:`challenge`,Deny:`deny`,Log:`log`},UpdateProjectProjectsResponse200ApplicationJSONResponseBodySecurityManagedRulesBotFilterAction={Challenge:`challenge`,Deny:`deny`,Log:`log`},UpdateProjectProjectsResponse200ApplicationJSONAction={Challenge:`challenge`,Deny:`deny`,Log:`log`},UpdateProjectProjectsResponse200ApplicationJSONResponseBodyAction={Challenge:`challenge`,Deny:`deny`,Log:`log`},UpdateProjectLogHeaders2={Wildcard:`*`},UpdateProjectProjectsIssuerMode={Global:`global`,Team:`team`},UpdateProjectSourcesProjectsResponse200Provider={Bitbucket:`bitbucket`,Github:`github`},UpdateProjectEnvironmentsProjectsResponse200Target={Preview:`preview`,Production:`production`},UpdateProjectProjectsSources={Cli:`cli`,DeployHook:`deploy-hook`,Git:`git`,Integration:`integration`,RestApi:`rest-api`,V0:`v0`},UpdateProjectEnvironmentsProjectsResponseTarget={Preview:`preview`,Production:`production`},UpdateProjectFlatRateTier={Advanced:`advanced`,Base:`base`,Critical:`critical`,Standard:`standard`},UpdateProjectKind={Flat:`flat`},UpdateProjectProjectsResponse200Action={Blocked:`blocked`},UpdateProjectBuilds$inboundSchema=objectType({use:string(),src:optional(string()),dest:optional(string())}),UpdateProjectChecksConclusion$inboundSchema=nativeEnumType(UpdateProjectChecksConclusion),UpdateProjectChecksState$inboundSchema=nativeEnumType(UpdateProjectChecksState),UpdateProjectCreator$inboundSchema=objectType({email:string(),githubLogin:optional(string()),gitlabLogin:optional(string()),uid:string(),username:string()}),UpdateProjectOidcTokenClaims$inboundSchema=objectType({iss:string(),sub:string(),scope:string(),aud:string(),owner:string(),owner_id:string(),project:string(),project_id:string(),environment:string(),custom_environment_id:optional(string()),plan:optional(string())}).transform(e=>remap(e,{owner_id:`ownerId`,project_id:`projectId`,custom_environment_id:`customEnvironmentId`})),UpdateProjectPlan$inboundSchema=nativeEnumType(UpdateProjectPlan),UpdateProjectReadyState$inboundSchema=nativeEnumType(UpdateProjectReadyState),UpdateProjectReadySubstate$inboundSchema=nativeEnumType(UpdateProjectReadySubstate),UpdateProjectProjectsResponseType$inboundSchema=nativeEnumType(UpdateProjectProjectsResponseType);objectType({id:string(),alias:optional(arrayType(string())),aliasAssigned:nullableType(UpdateProjectAliasAssigned$inboundSchema).optional(),aliasError:nullableType(UpdateProjectAliasError$inboundSchema).optional(),aliasFinal:nullableType(string()).optional(),automaticAliases:optional(arrayType(string())),branchMatcher:optional(UpdateProjectProjectsBranchMatcher$inboundSchema),buildingAt:optional(number()),builds:optional(arrayType(lazyType(()=>UpdateProjectBuilds$inboundSchema))),checksConclusion:optional(UpdateProjectChecksConclusion$inboundSchema),checksState:optional(UpdateProjectChecksState$inboundSchema),connectBuildsEnabled:optional(boolean()),connectConfigurationId:optional(string()),createdAt:number(),createdIn:string(),creator:nullable(lazyType(()=>UpdateProjectCreator$inboundSchema)),deletedAt:optional(number()),deploymentHostname:string(),forced:optional(boolean()),name:string(),meta:optional(recordType(string())),monorepoManager:nullableType(string()).optional(),oidcTokenClaims:optional(lazyType(()=>UpdateProjectOidcTokenClaims$inboundSchema)),plan:UpdateProjectPlan$inboundSchema,previewCommentsEnabled:optional(boolean()),private:boolean(),readyAt:optional(number()),readyState:UpdateProjectReadyState$inboundSchema,readySubstate:optional(UpdateProjectReadySubstate$inboundSchema),requestedAt:optional(number()),target:nullableType(string()).optional(),teamId:nullableType(string()).optional(),type:UpdateProjectProjectsResponseType$inboundSchema,url:string(),userId:string(),withCache:optional(boolean())});const UpdateProjectLinkProjectsResponse200ApplicationJSONResponseBodyDeployHooks$inboundSchema=objectType({createdAt:optional(number()),id:string(),name:string(),ref:string(),url:string()}),UpdateProjectLink6$inboundSchema=objectType({org:string(),repo:string(),type:literal(`vercel`),createdAt:optional(number()),deployHooks:arrayType(lazyType(()=>UpdateProjectLinkProjectsResponse200ApplicationJSONResponseBodyDeployHooks$inboundSchema)),gitCredentialId:string(),updatedAt:optional(number()),sourceless:optional(boolean()),productionBranch:string()}),UpdateProjectLinkProjectsResponse200ApplicationJSONDeployHooks$inboundSchema=objectType({createdAt:optional(number()),id:string(),name:string(),ref:string(),url:string()}),UpdateProjectLink5$inboundSchema=objectType({name:string(),slug:string(),owner:string(),type:literal(`bitbucket`),uuid:string(),workspaceUuid:string(),createdAt:optional(number()),deployHooks:arrayType(lazyType(()=>UpdateProjectLinkProjectsResponse200ApplicationJSONDeployHooks$inboundSchema)),gitCredentialId:string(),updatedAt:optional(number()),sourceless:optional(boolean()),productionBranch:string()}),UpdateProjectLinkProjectsResponse200DeployHooks$inboundSchema=objectType({createdAt:optional(number()),id:string(),name:string(),ref:string(),url:string()}),UpdateProjectLink4$inboundSchema=objectType({projectId:string(),projectName:string(),projectNameWithNamespace:string(),projectNamespace:string(),projectOwnerId:optional(number()),projectUrl:string(),type:literal(`gitlab`),createdAt:optional(number()),deployHooks:arrayType(lazyType(()=>UpdateProjectLinkProjectsResponse200DeployHooks$inboundSchema)),gitCredentialId:string(),updatedAt:optional(number()),sourceless:optional(boolean()),productionBranch:string()}),UpdateProjectLinkProjectsResponseDeployHooks$inboundSchema=objectType({createdAt:optional(number()),id:string(),name:string(),ref:string(),url:string()}),UpdateProjectLink3$inboundSchema=objectType({org:string(),repoOwnerId:optional(number()),repo:optional(string()),repoId:optional(number()),type:literal(`github-custom-host`),host:string(),createdAt:optional(number()),deployHooks:arrayType(lazyType(()=>UpdateProjectLinkProjectsResponseDeployHooks$inboundSchema)),gitCredentialId:string(),updatedAt:optional(number()),sourceless:optional(boolean()),productionBranch:string()}),UpdateProjectLinkProjectsDeployHooks$inboundSchema=objectType({createdAt:optional(number()),id:string(),name:string(),ref:string(),url:string()}),UpdateProjectLink2$inboundSchema=objectType({type:literal(`github-limited`),repo:optional(string()),repoId:optional(number()),createdAt:optional(number()),updatedAt:optional(number()),org:string(),repoOwnerId:optional(number()),deployHooks:arrayType(lazyType(()=>UpdateProjectLinkProjectsDeployHooks$inboundSchema)),gitCredentialId:string(),sourceless:optional(boolean()),productionBranch:string()}),UpdateProjectLinkDeployHooks$inboundSchema=objectType({createdAt:optional(number()),id:string(),name:string(),ref:string(),url:string()}),UpdateProjectLink1$inboundSchema=objectType({org:string(),repoOwnerId:optional(number()),repo:optional(string()),repoId:optional(number()),type:literal(`github`),createdAt:optional(number()),deployHooks:arrayType(lazyType(()=>UpdateProjectLinkDeployHooks$inboundSchema)),gitCredentialId:string(),updatedAt:optional(number()),sourceless:optional(boolean()),productionBranch:string()});unionType([lazyType(()=>UpdateProjectLink1$inboundSchema),lazyType(()=>UpdateProjectLink2$inboundSchema),lazyType(()=>UpdateProjectLink3$inboundSchema),lazyType(()=>UpdateProjectLink4$inboundSchema),lazyType(()=>UpdateProjectLink5$inboundSchema),lazyType(()=>UpdateProjectLink6$inboundSchema)]);const UpdateProjectMicrofrontends3$inboundSchema=objectType({updatedAt:number(),groupIds:arrayType(anyType()),enabled:literal(!1),freeProjectForLegacyLimits:optional(boolean())}),UpdateProjectMicrofrontends2$inboundSchema=objectType({isDefaultApp:optional(literal(!1)),routeObservabilityToThisProject:optional(boolean()),doNotRouteWithMicrofrontendsRouting:optional(boolean()),updatedAt:number(),groupIds:arrayType(string()),enabled:literal(!0),defaultRoute:optional(string()),freeProjectForLegacyLimits:optional(boolean())}),UpdateProjectMicrofrontends1$inboundSchema=objectType({isDefaultApp:literal(!0),updatedAt:number(),groupIds:arrayType(string()),enabled:literal(!0),defaultRoute:optional(string()),freeProjectForLegacyLimits:optional(boolean())});smartUnion([lazyType(()=>UpdateProjectMicrofrontends1$inboundSchema),lazyType(()=>UpdateProjectMicrofrontends2$inboundSchema),lazyType(()=>UpdateProjectMicrofrontends3$inboundSchema)]),nativeEnumType(UpdateProjectProjectsNodeVersion);const UpdateProjectProjectsPaths$inboundSchema=objectType({value:string()});objectType({paths:arrayType(lazyType(()=>UpdateProjectProjectsPaths$inboundSchema))}),objectType({}),objectType({deploymentType:nativeEnumType(UpdateProjectProjectsResponseDeploymentType),connectorId:string()});const UpdateProjectSandboxUrls$inboundSchema=objectType({inheritDeploymentProtection:optional(boolean())});objectType({sandboxUrls:optional(lazyType(()=>UpdateProjectSandboxUrls$inboundSchema))});const UpdateProjectProjectsFunctionDefaultMemoryType$inboundSchema=nativeEnumType(UpdateProjectProjectsFunctionDefaultMemoryType),UpdateProjectProjectsBuildMachineType$inboundSchema=nativeEnumType(UpdateProjectProjectsBuildMachineType),UpdateProjectProjectsBuildMachineSelection$inboundSchema=nativeEnumType(UpdateProjectProjectsBuildMachineSelection),UpdateProjectProjectsBuildMachineElasticReason$inboundSchema=nativeEnumType(UpdateProjectProjectsBuildMachineElasticReason),UpdateProjectProjectsBuildQueue$inboundSchema=objectType({configuration:optional(nativeEnumType(UpdateProjectProjectsConfiguration))});objectType({elasticConcurrencyEnabled:optional(boolean()),fluid:optional(boolean()),functionDefaultRegions:arrayType(string()),functionDefaultTimeout:optional(number()),functionDefaultMemoryType:optional(UpdateProjectProjectsFunctionDefaultMemoryType$inboundSchema),functionZeroConfigFailover:optional(boolean()),buildMachineType:optional(UpdateProjectProjectsBuildMachineType$inboundSchema),buildMachineSelection:optional(UpdateProjectProjectsBuildMachineSelection$inboundSchema),buildMachineElasticLastUpdated:optional(number()),buildMachineElasticReason:optional(UpdateProjectProjectsBuildMachineElasticReason$inboundSchema),isNSNBDisabled:optional(boolean()),buildQueue:optional(lazyType(()=>UpdateProjectProjectsBuildQueue$inboundSchema)),enableFunctionsBeta:optional(boolean())}),objectType({userId:string(),username:string(),description:string(),createdAt:number()});const UpdateProjectStages$inboundSchema=objectType({targetPercentage:number(),requireApproval:optional(boolean()),duration:optional(number()),linearShift:optional(boolean())});objectType({target:string(),stages:nullableType(arrayType(lazyType(()=>UpdateProjectStages$inboundSchema))).optional(),canaryResponseHeader:optional(boolean())});const UpdateProjectProjectsResponseFunctionDefaultMemoryType$inboundSchema=nativeEnumType(UpdateProjectProjectsResponseFunctionDefaultMemoryType),UpdateProjectProjectsResponseBuildMachineType$inboundSchema=nativeEnumType(UpdateProjectProjectsResponseBuildMachineType),UpdateProjectProjectsResponseBuildMachineSelection$inboundSchema=nativeEnumType(UpdateProjectProjectsResponseBuildMachineSelection),UpdateProjectProjectsResponseBuildMachineElasticReason$inboundSchema=nativeEnumType(UpdateProjectProjectsResponseBuildMachineElasticReason),UpdateProjectProjectsResponseBuildQueue$inboundSchema=objectType({configuration:optional(nativeEnumType(UpdateProjectProjectsResponseConfiguration))});objectType({elasticConcurrencyEnabled:optional(boolean()),fluid:optional(boolean()),functionDefaultRegions:arrayType(string()),functionDefaultTimeout:optional(number()),functionDefaultMemoryType:optional(UpdateProjectProjectsResponseFunctionDefaultMemoryType$inboundSchema),functionZeroConfigFailover:optional(boolean()),buildMachineType:optional(UpdateProjectProjectsResponseBuildMachineType$inboundSchema),buildMachineSelection:optional(UpdateProjectProjectsResponseBuildMachineSelection$inboundSchema),buildMachineElasticLastUpdated:optional(number()),buildMachineElasticReason:optional(UpdateProjectProjectsResponseBuildMachineElasticReason$inboundSchema),isNSNBDisabled:optional(boolean()),buildQueue:optional(lazyType(()=>UpdateProjectProjectsResponseBuildQueue$inboundSchema)),enableFunctionsBeta:optional(boolean())}),objectType({builds:boolean(),enabled:boolean(),regions:arrayType(string())});const UpdateProjectProjectsResponse200DeploymentType$inboundSchema=nativeEnumType(UpdateProjectProjectsResponse200DeploymentType),UpdateProjectCve55182MigrationAppliedFrom$inboundSchema=nativeEnumType(UpdateProjectCve55182MigrationAppliedFrom),UpdateProjectApril2026SecurityIncidentMigrationAppliedFrom$inboundSchema=nativeEnumType(UpdateProjectApril2026SecurityIncidentMigrationAppliedFrom);objectType({deploymentType:UpdateProjectProjectsResponse200DeploymentType$inboundSchema,cve55182MigrationAppliedFrom:nullableType(UpdateProjectCve55182MigrationAppliedFrom$inboundSchema).optional(),april2026SecurityIncidentMigrationAppliedFrom:nullableType(UpdateProjectApril2026SecurityIncidentMigrationAppliedFrom$inboundSchema).optional()}),smartUnion([number(),boolean()]);const UpdateProjectProjectsAliasError$inboundSchema=objectType({code:string(),message:string()}),UpdateProjectProjectsResponseBranchMatcher$inboundSchema=objectType({type:nativeEnumType(UpdateProjectProjectsResponse200ApplicationJSONResponseBodyTargetsType),pattern:string()}),UpdateProjectProjectsBuilds$inboundSchema=objectType({use:string(),src:optional(string()),dest:optional(string())}),UpdateProjectProjectsChecksConclusion$inboundSchema=nativeEnumType(UpdateProjectProjectsChecksConclusion),UpdateProjectProjectsChecksState$inboundSchema=nativeEnumType(UpdateProjectProjectsChecksState),UpdateProjectProjectsCreator$inboundSchema=objectType({email:string(),githubLogin:optional(string()),gitlabLogin:optional(string()),uid:string(),username:string()}),UpdateProjectProjectsOidcTokenClaims$inboundSchema=objectType({iss:string(),sub:string(),scope:string(),aud:string(),owner:string(),owner_id:string(),project:string(),project_id:string(),environment:string(),custom_environment_id:optional(string()),plan:optional(string())}).transform(e=>remap(e,{owner_id:`ownerId`,project_id:`projectId`,custom_environment_id:`customEnvironmentId`})),UpdateProjectProjectsPlan$inboundSchema=nativeEnumType(UpdateProjectProjectsPlan),UpdateProjectProjectsReadyState$inboundSchema=nativeEnumType(UpdateProjectProjectsReadyState),UpdateProjectProjectsReadySubstate$inboundSchema=nativeEnumType(UpdateProjectProjectsReadySubstate),UpdateProjectProjectsResponse200Type$inboundSchema=nativeEnumType(UpdateProjectProjectsResponse200Type);objectType({id:string(),alias:optional(arrayType(string())),aliasAssigned:nullableType(smartUnion([number(),boolean()])).optional(),aliasError:nullableType(lazyType(()=>UpdateProjectProjectsAliasError$inboundSchema)).optional(),aliasFinal:nullableType(string()).optional(),automaticAliases:optional(arrayType(string())),branchMatcher:optional(lazyType(()=>UpdateProjectProjectsResponseBranchMatcher$inboundSchema)),buildingAt:optional(number()),builds:optional(arrayType(lazyType(()=>UpdateProjectProjectsBuilds$inboundSchema))),checksConclusion:optional(UpdateProjectProjectsChecksConclusion$inboundSchema),checksState:optional(UpdateProjectProjectsChecksState$inboundSchema),connectBuildsEnabled:optional(boolean()),connectConfigurationId:optional(string()),createdAt:number(),createdIn:string(),creator:nullable(lazyType(()=>UpdateProjectProjectsCreator$inboundSchema)),deletedAt:optional(number()),deploymentHostname:string(),forced:optional(boolean()),name:string(),meta:optional(recordType(string())),monorepoManager:nullableType(string()).optional(),oidcTokenClaims:optional(lazyType(()=>UpdateProjectProjectsOidcTokenClaims$inboundSchema)),plan:UpdateProjectProjectsPlan$inboundSchema,previewCommentsEnabled:optional(boolean()),private:boolean(),readyAt:optional(number()),readyState:UpdateProjectProjectsReadyState$inboundSchema,readySubstate:optional(UpdateProjectProjectsReadySubstate$inboundSchema),requestedAt:optional(number()),target:nullableType(string()).optional(),teamId:nullableType(string()).optional(),type:UpdateProjectProjectsResponse200Type$inboundSchema,url:string(),userId:string(),withCache:optional(boolean())}),objectType({oauth2Connection:optional(arrayType(ACLAction$inboundSchema)),user:optional(arrayType(ACLAction$inboundSchema)),userConnection:optional(arrayType(ACLAction$inboundSchema)),userMfaConfiguration:optional(arrayType(ACLAction$inboundSchema)),userPreference:optional(arrayType(ACLAction$inboundSchema)),userSudo:optional(arrayType(ACLAction$inboundSchema)),webAuthn:optional(arrayType(ACLAction$inboundSchema)),accessGroup:optional(arrayType(ACLAction$inboundSchema)),agent:optional(arrayType(ACLAction$inboundSchema)),aiGatewayApiKey:optional(arrayType(ACLAction$inboundSchema)),aiGatewayApiKeyOwnedBySelf:optional(arrayType(ACLAction$inboundSchema)),aiGatewayCredits:optional(arrayType(ACLAction$inboundSchema)),aiGatewayPrivateModels:optional(arrayType(ACLAction$inboundSchema)),aiGatewayRules:optional(arrayType(ACLAction$inboundSchema)),aiGatewaySettings:optional(arrayType(ACLAction$inboundSchema)),aiGatewayUsage:optional(arrayType(ACLAction$inboundSchema)),alerts:optional(arrayType(ACLAction$inboundSchema)),alertRules:optional(arrayType(ACLAction$inboundSchema)),aliasGlobal:optional(arrayType(ACLAction$inboundSchema)),analyticsSampling:optional(arrayType(ACLAction$inboundSchema)),analyticsUsage:optional(arrayType(ACLAction$inboundSchema)),apiKey:optional(arrayType(ACLAction$inboundSchema)),apiKeyAiGateway:optional(arrayType(ACLAction$inboundSchema)),apiKeyOwnedBySelf:optional(arrayType(ACLAction$inboundSchema)),oauth2Application:optional(arrayType(ACLAction$inboundSchema)),vercelAppInstallation:optional(arrayType(ACLAction$inboundSchema)),vercelAppInstallationRequest:optional(arrayType(ACLAction$inboundSchema)),auditLog:optional(arrayType(ACLAction$inboundSchema)),billingAddress:optional(arrayType(ACLAction$inboundSchema)),billingInformation:optional(arrayType(ACLAction$inboundSchema)),billingInvoice:optional(arrayType(ACLAction$inboundSchema)),billingInvoiceEmailRecipient:optional(arrayType(ACLAction$inboundSchema)),billingInvoiceLanguage:optional(arrayType(ACLAction$inboundSchema)),billingPlan:optional(arrayType(ACLAction$inboundSchema)),billingPurchaseOrder:optional(arrayType(ACLAction$inboundSchema)),billingRefund:optional(arrayType(ACLAction$inboundSchema)),billingTaxId:optional(arrayType(ACLAction$inboundSchema)),blob:optional(arrayType(ACLAction$inboundSchema)),blobStoreTokenSet:optional(arrayType(ACLAction$inboundSchema)),budget:optional(arrayType(ACLAction$inboundSchema)),cacheArtifact:optional(arrayType(ACLAction$inboundSchema)),cacheArtifactUsageEvent:optional(arrayType(ACLAction$inboundSchema)),codeChecks:optional(arrayType(ACLAction$inboundSchema)),codeOwners:optional(arrayType(ACLAction$inboundSchema)),ciInvocations:optional(arrayType(ACLAction$inboundSchema)),ciLogs:optional(arrayType(ACLAction$inboundSchema)),concurrentBuilds:optional(arrayType(ACLAction$inboundSchema)),connect:optional(arrayType(ACLAction$inboundSchema)),connectConfiguration:optional(arrayType(ACLAction$inboundSchema)),connexClient:optional(arrayType(ACLAction$inboundSchema)),connexClientProject:optional(arrayType(ACLAction$inboundSchema)),connexToken:optional(arrayType(ACLAction$inboundSchema)),buildMachineDefault:optional(arrayType(ACLAction$inboundSchema)),dataCacheBillingSettings:optional(arrayType(ACLAction$inboundSchema)),defaultDeploymentProtection:optional(arrayType(ACLAction$inboundSchema)),deploymentPolicy:optional(arrayType(ACLAction$inboundSchema)),domain:optional(arrayType(ACLAction$inboundSchema)),domainAcceptDelegation:optional(arrayType(ACLAction$inboundSchema)),domainAuthCodes:optional(arrayType(ACLAction$inboundSchema)),domainCertificate:optional(arrayType(ACLAction$inboundSchema)),domainCheckConfig:optional(arrayType(ACLAction$inboundSchema)),domainMove:optional(arrayType(ACLAction$inboundSchema)),domainPurchase:optional(arrayType(ACLAction$inboundSchema)),domainRecord:optional(arrayType(ACLAction$inboundSchema)),domainTransferIn:optional(arrayType(ACLAction$inboundSchema)),drain:optional(arrayType(ACLAction$inboundSchema)),edgeConfig:optional(arrayType(ACLAction$inboundSchema)),edgeConfigItem:optional(arrayType(ACLAction$inboundSchema)),edgeConfigSchema:optional(arrayType(ACLAction$inboundSchema)),edgeConfigToken:optional(arrayType(ACLAction$inboundSchema)),endpointVerification:optional(arrayType(ACLAction$inboundSchema)),event:optional(arrayType(ACLAction$inboundSchema)),fileUpload:optional(arrayType(ACLAction$inboundSchema)),flagsExplorerSubscription:optional(arrayType(ACLAction$inboundSchema)),gitRepository:optional(arrayType(ACLAction$inboundSchema)),imageOptimizationNewPrice:optional(arrayType(ACLAction$inboundSchema)),integration:optional(arrayType(ACLAction$inboundSchema)),integrationAccount:optional(arrayType(ACLAction$inboundSchema)),integrationConfiguration:optional(arrayType(ACLAction$inboundSchema)),integrationConfigurationProjects:optional(arrayType(ACLAction$inboundSchema)),integrationConfigurationRole:optional(arrayType(ACLAction$inboundSchema)),integrationConfigurationTransfer:optional(arrayType(ACLAction$inboundSchema)),integrationDeploymentAction:optional(arrayType(ACLAction$inboundSchema)),integrationEvent:optional(arrayType(ACLAction$inboundSchema)),integrationLog:optional(arrayType(ACLAction$inboundSchema)),integrationResource:optional(arrayType(ACLAction$inboundSchema)),integrationResourceData:optional(arrayType(ACLAction$inboundSchema)),integrationResourceReplCommand:optional(arrayType(ACLAction$inboundSchema)),integrationResourceSecrets:optional(arrayType(ACLAction$inboundSchema)),integrationSSOSession:optional(arrayType(ACLAction$inboundSchema)),integrationStrict:optional(arrayType(ACLAction$inboundSchema)),integrationStoreTokenSet:optional(arrayType(ACLAction$inboundSchema)),integrationVercelConfigurationOverride:optional(arrayType(ACLAction$inboundSchema)),integrationPullRequest:optional(arrayType(ACLAction$inboundSchema)),ipBlocking:optional(arrayType(ACLAction$inboundSchema)),jobGlobal:optional(arrayType(ACLAction$inboundSchema)),kmsIssuer:optional(arrayType(ACLAction$inboundSchema)),kmsProjectGrant:optional(arrayType(ACLAction$inboundSchema)),logDrain:optional(arrayType(ACLAction$inboundSchema)),marketplaceBillingData:optional(arrayType(ACLAction$inboundSchema)),marketplaceExperimentationEdgeConfigData:optional(arrayType(ACLAction$inboundSchema)),marketplaceExperimentationItem:optional(arrayType(ACLAction$inboundSchema)),marketplaceInstallationMember:optional(arrayType(ACLAction$inboundSchema)),marketplaceInvoice:optional(arrayType(ACLAction$inboundSchema)),marketplaceSettings:optional(arrayType(ACLAction$inboundSchema)),Monitoring:optional(arrayType(ACLAction$inboundSchema)),monitoringAlert:optional(arrayType(ACLAction$inboundSchema)),monitoringChart:optional(arrayType(ACLAction$inboundSchema)),monitoringQuery:optional(arrayType(ACLAction$inboundSchema)),monitoringSettings:optional(arrayType(ACLAction$inboundSchema)),notificationCustomerBudget:optional(arrayType(ACLAction$inboundSchema)),notificationDeploymentFailed:optional(arrayType(ACLAction$inboundSchema)),notificationDomainConfiguration:optional(arrayType(ACLAction$inboundSchema)),notificationDomainExpire:optional(arrayType(ACLAction$inboundSchema)),notificationDomainMoved:optional(arrayType(ACLAction$inboundSchema)),notificationDomainPurchase:optional(arrayType(ACLAction$inboundSchema)),notificationDomainRenewal:optional(arrayType(ACLAction$inboundSchema)),notificationDomainTransfer:optional(arrayType(ACLAction$inboundSchema)),notificationDomainUnverified:optional(arrayType(ACLAction$inboundSchema)),NotificationMonitoringAlert:optional(arrayType(ACLAction$inboundSchema)),notificationPaymentFailed:optional(arrayType(ACLAction$inboundSchema)),notificationPreferences:optional(arrayType(ACLAction$inboundSchema)),notificationStatementOfReasons:optional(arrayType(ACLAction$inboundSchema)),notificationUsageAlert:optional(arrayType(ACLAction$inboundSchema)),oidcFederationPolicy:optional(arrayType(ACLAction$inboundSchema)),observabilityConfiguration:optional(arrayType(ACLAction$inboundSchema)),observabilityFunnel:optional(arrayType(ACLAction$inboundSchema)),observabilityNotebook:optional(arrayType(ACLAction$inboundSchema)),openTelemetryEndpoint:optional(arrayType(ACLAction$inboundSchema)),ownEvent:optional(arrayType(ACLAction$inboundSchema)),organization:optional(arrayType(ACLAction$inboundSchema)),organizationDomain:optional(arrayType(ACLAction$inboundSchema)),organizationTeam:optional(arrayType(ACLAction$inboundSchema)),passwordProtectionInvoiceItem:optional(arrayType(ACLAction$inboundSchema)),paymentMethod:optional(arrayType(ACLAction$inboundSchema)),permissions:optional(arrayType(ACLAction$inboundSchema)),postgres:optional(arrayType(ACLAction$inboundSchema)),postgresStoreTokenSet:optional(arrayType(ACLAction$inboundSchema)),previewDeploymentSuffix:optional(arrayType(ACLAction$inboundSchema)),privateCloudAccount:optional(arrayType(ACLAction$inboundSchema)),projectTransferIn:optional(arrayType(ACLAction$inboundSchema)),proTrialOnboarding:optional(arrayType(ACLAction$inboundSchema)),rateLimit:optional(arrayType(ACLAction$inboundSchema)),redis:optional(arrayType(ACLAction$inboundSchema)),redisStoreTokenSet:optional(arrayType(ACLAction$inboundSchema)),remoteCaching:optional(arrayType(ACLAction$inboundSchema)),repository:optional(arrayType(ACLAction$inboundSchema)),samlConfig:optional(arrayType(ACLAction$inboundSchema)),secret:optional(arrayType(ACLAction$inboundSchema)),securityConfig:optional(arrayType(ACLAction$inboundSchema)),sensitiveEnvironmentVariablePolicy:optional(arrayType(ACLAction$inboundSchema)),sharedEnvVars:optional(arrayType(ACLAction$inboundSchema)),sharedEnvVarsProduction:optional(arrayType(ACLAction$inboundSchema)),space:optional(arrayType(ACLAction$inboundSchema)),spaceRun:optional(arrayType(ACLAction$inboundSchema)),storeIsLocked:optional(arrayType(ACLAction$inboundSchema)),storeTokenSetSensitive:optional(arrayType(ACLAction$inboundSchema)),storeTransfer:optional(arrayType(ACLAction$inboundSchema)),supportCase:optional(arrayType(ACLAction$inboundSchema)),supportCaseComment:optional(arrayType(ACLAction$inboundSchema)),team:optional(arrayType(ACLAction$inboundSchema)),teamAccessRequest:optional(arrayType(ACLAction$inboundSchema)),teamFellowMembership:optional(arrayType(ACLAction$inboundSchema)),teamGitExclusivity:optional(arrayType(ACLAction$inboundSchema)),teamInvite:optional(arrayType(ACLAction$inboundSchema)),teamInviteCode:optional(arrayType(ACLAction$inboundSchema)),teamInviteLink:optional(arrayType(ACLAction$inboundSchema)),teamJoin:optional(arrayType(ACLAction$inboundSchema)),teamMemberMfaStatus:optional(arrayType(ACLAction$inboundSchema)),teamMicrofrontends:optional(arrayType(ACLAction$inboundSchema)),teamOwnMembership:optional(arrayType(ACLAction$inboundSchema)),teamOwnMembershipDisconnectSAML:optional(arrayType(ACLAction$inboundSchema)),teamSudo:optional(arrayType(ACLAction$inboundSchema)),teamTokenInvalidation:optional(arrayType(ACLAction$inboundSchema)),token:optional(arrayType(ACLAction$inboundSchema)),toolbarComment:optional(arrayType(ACLAction$inboundSchema)),usage:optional(arrayType(ACLAction$inboundSchema)),usageCycle:optional(arrayType(ACLAction$inboundSchema)),vcrRepository:optional(arrayType(ACLAction$inboundSchema)),vercelRun:optional(arrayType(ACLAction$inboundSchema)),vpcPeeringConnection:optional(arrayType(ACLAction$inboundSchema)),webAnalyticsPlan:optional(arrayType(ACLAction$inboundSchema)),webhook:optional(arrayType(ACLAction$inboundSchema)),"webhook-event":optional(arrayType(ACLAction$inboundSchema)),aliasProject:optional(arrayType(ACLAction$inboundSchema)),aliasProtectionBypass:optional(arrayType(ACLAction$inboundSchema)),bulkRedirects:optional(arrayType(ACLAction$inboundSchema)),buildMachine:optional(arrayType(ACLAction$inboundSchema)),connectConfigurationLink:optional(arrayType(ACLAction$inboundSchema)),dataCacheNamespace:optional(arrayType(ACLAction$inboundSchema)),deployment:optional(arrayType(ACLAction$inboundSchema)),deploymentBuildLogs:optional(arrayType(ACLAction$inboundSchema)),deploymentCheck:optional(arrayType(ACLAction$inboundSchema)),deploymentCheckPreview:optional(arrayType(ACLAction$inboundSchema)),deploymentCheckReRunFromProductionBranch:optional(arrayType(ACLAction$inboundSchema)),deploymentProductionGit:optional(arrayType(ACLAction$inboundSchema)),deploymentV0:optional(arrayType(ACLAction$inboundSchema)),deploymentPreview:optional(arrayType(ACLAction$inboundSchema)),deploymentPrivate:optional(arrayType(ACLAction$inboundSchema)),deploymentPromote:optional(arrayType(ACLAction$inboundSchema)),deploymentRollback:optional(arrayType(ACLAction$inboundSchema)),edgeCacheNamespace:optional(arrayType(ACLAction$inboundSchema)),environments:optional(arrayType(ACLAction$inboundSchema)),job:optional(arrayType(ACLAction$inboundSchema)),logs:optional(arrayType(ACLAction$inboundSchema)),logsPreset:optional(arrayType(ACLAction$inboundSchema)),observabilityData:optional(arrayType(ACLAction$inboundSchema)),onDemandBuild:optional(arrayType(ACLAction$inboundSchema)),onDemandConcurrency:optional(arrayType(ACLAction$inboundSchema)),optionsAllowlist:optional(arrayType(ACLAction$inboundSchema)),passwordProtection:optional(arrayType(ACLAction$inboundSchema)),privateLinkEndpoint:optional(arrayType(ACLAction$inboundSchema)),productionAliasProtectionBypass:optional(arrayType(ACLAction$inboundSchema)),project:optional(arrayType(ACLAction$inboundSchema)),projectAccessGroup:optional(arrayType(ACLAction$inboundSchema)),projectAnalyticsSampling:optional(arrayType(ACLAction$inboundSchema)),projectAnalyticsUsage:optional(arrayType(ACLAction$inboundSchema)),projectCheck:optional(arrayType(ACLAction$inboundSchema)),projectCheckRun:optional(arrayType(ACLAction$inboundSchema)),projectDeploymentExpiration:optional(arrayType(ACLAction$inboundSchema)),projectDeploymentHook:optional(arrayType(ACLAction$inboundSchema)),projectDeploymentProtectionStrict:optional(arrayType(ACLAction$inboundSchema)),projectDomain:optional(arrayType(ACLAction$inboundSchema)),projectDomainCheckConfig:optional(arrayType(ACLAction$inboundSchema)),projectDomainMove:optional(arrayType(ACLAction$inboundSchema)),projectEvent:optional(arrayType(ACLAction$inboundSchema)),projectEnvVars:optional(arrayType(ACLAction$inboundSchema)),projectEnvVarsProduction:optional(arrayType(ACLAction$inboundSchema)),projectEnvVarsUnownedByIntegration:optional(arrayType(ACLAction$inboundSchema)),projectFlags:optional(arrayType(ACLAction$inboundSchema)),projectFlagsProduction:optional(arrayType(ACLAction$inboundSchema)),projectFlagsSdkKey:optional(arrayType(ACLAction$inboundSchema)),projectFromV0:optional(arrayType(ACLAction$inboundSchema)),projectId:optional(arrayType(ACLAction$inboundSchema)),projectIntegrationConfiguration:optional(arrayType(ACLAction$inboundSchema)),projectLink:optional(arrayType(ACLAction$inboundSchema)),projectMember:optional(arrayType(ACLAction$inboundSchema)),projectMonitoring:optional(arrayType(ACLAction$inboundSchema)),projectOIDCToken:optional(arrayType(ACLAction$inboundSchema)),projectPermissions:optional(arrayType(ACLAction$inboundSchema)),projectProductionBranch:optional(arrayType(ACLAction$inboundSchema)),projectProtectionBypass:optional(arrayType(ACLAction$inboundSchema)),projectRollingRelease:optional(arrayType(ACLAction$inboundSchema)),projectRoutes:optional(arrayType(ACLAction$inboundSchema)),projectSupportCase:optional(arrayType(ACLAction$inboundSchema)),projectSupportCaseComment:optional(arrayType(ACLAction$inboundSchema)),projectTier:optional(arrayType(ACLAction$inboundSchema)),projectTransfer:optional(arrayType(ACLAction$inboundSchema)),projectTransferOut:optional(arrayType(ACLAction$inboundSchema)),projectUsage:optional(arrayType(ACLAction$inboundSchema)),pageIntegrity:optional(arrayType(ACLAction$inboundSchema)),seawallConfig:optional(arrayType(ACLAction$inboundSchema)),securityPlusConfiguration:optional(arrayType(ACLAction$inboundSchema)),shareableLinkStrict:optional(arrayType(ACLAction$inboundSchema)),sharedEnvVarConnection:optional(arrayType(ACLAction$inboundSchema)),skewProtection:optional(arrayType(ACLAction$inboundSchema)),analytics:optional(arrayType(ACLAction$inboundSchema)),trustedIps:optional(arrayType(ACLAction$inboundSchema)),trustedSources:optional(arrayType(ACLAction$inboundSchema)),v0Chat:optional(arrayType(ACLAction$inboundSchema)),webAnalytics:optional(arrayType(ACLAction$inboundSchema))}).transform(e=>remap(e,{Monitoring:`monitoring`,NotificationMonitoringAlert:`notificationMonitoringAlert`,"webhook-event":`webhookEvent`,projectFlagsSdkKey:`projectFlagsSDKKey`})),objectType({});const UpdateProjectJobStatus$inboundSchema=nativeEnumType(UpdateProjectJobStatus),UpdateProjectProjectsResponse200ApplicationJSONType$inboundSchema=nativeEnumType(UpdateProjectProjectsResponse200ApplicationJSONType);objectType({fromDeploymentId:nullable(string()),toDeploymentId:string(),fromRollingReleaseId:optional(string()),jobStatus:UpdateProjectJobStatus$inboundSchema,requestedAt:number(),type:UpdateProjectProjectsResponse200ApplicationJSONType$inboundSchema});const UpdateProjectProtectionBypass2$inboundSchema=objectType({createdAt:number(),createdBy:string(),scope:literal(`automation-bypass`),isEnvVar:optional(boolean()),note:optional(string())}),UpdateProjectProtectionBypass1$inboundSchema=objectType({createdAt:number(),createdBy:string(),scope:literal(`integration-automation-bypass`),integrationId:string(),configurationId:string()});unionType([lazyType(()=>UpdateProjectProtectionBypass1$inboundSchema),lazyType(()=>UpdateProjectProtectionBypass2$inboundSchema)]);const UpdateProjectTrustedIps2$inboundSchema=objectType({deploymentType:nativeEnumType(UpdateProjectTrustedIpsProjectsDeploymentType)}),UpdateProjectTrustedIpsDeploymentType$inboundSchema=nativeEnumType(UpdateProjectTrustedIpsDeploymentType),UpdateProjectTrustedIpsAddresses$inboundSchema=objectType({value:string(),note:optional(string())}),UpdateProjectTrustedIpsProtectionMode$inboundSchema=nativeEnumType(UpdateProjectTrustedIpsProtectionMode),UpdateProjectTrustedIps1$inboundSchema=objectType({deploymentType:UpdateProjectTrustedIpsDeploymentType$inboundSchema,addresses:arrayType(lazyType(()=>UpdateProjectTrustedIpsAddresses$inboundSchema)),protectionMode:UpdateProjectTrustedIpsProtectionMode$inboundSchema});smartUnion([lazyType(()=>UpdateProjectTrustedIps1$inboundSchema),lazyType(()=>UpdateProjectTrustedIps2$inboundSchema)]);const UpdateProjectFromProjectsResponsePreset$inboundSchema=nativeEnumType(UpdateProjectFromProjectsResponsePreset),UpdateProjectFrom2$inboundSchema=objectType({slugs:optional(arrayType(string())),preset:UpdateProjectFromProjectsResponsePreset$inboundSchema}),UpdateProjectFromProjectsPreset$inboundSchema=nativeEnumType(UpdateProjectFromProjectsPreset),UpdateProjectFrom1$inboundSchema=objectType({slugs:arrayType(string()),preset:optional(UpdateProjectFromProjectsPreset$inboundSchema)});smartUnion([lazyType(()=>UpdateProjectFrom1$inboundSchema),lazyType(()=>UpdateProjectFrom2$inboundSchema)]);const UpdateProjectToProjectsResponse200ApplicationJSONResponseBodyPreset$inboundSchema=nativeEnumType(UpdateProjectToProjectsResponse200ApplicationJSONResponseBodyPreset),UpdateProjectToProjectsResponse2$inboundSchema=objectType({slugs:optional(arrayType(string())),preset:UpdateProjectToProjectsResponse200ApplicationJSONResponseBodyPreset$inboundSchema}),UpdateProjectToProjectsResponse200ApplicationJSONPreset$inboundSchema=nativeEnumType(UpdateProjectToProjectsResponse200ApplicationJSONPreset),UpdateProjectToProjectsResponse1$inboundSchema=objectType({slugs:arrayType(string()),preset:optional(UpdateProjectToProjectsResponse200ApplicationJSONPreset$inboundSchema)});smartUnion([lazyType(()=>UpdateProjectToProjectsResponse1$inboundSchema),lazyType(()=>UpdateProjectToProjectsResponse2$inboundSchema)]);const UpdateProjectCustomAllow$inboundSchema=objectType({from:smartUnion([lazyType(()=>UpdateProjectFrom1$inboundSchema),lazyType(()=>UpdateProjectFrom2$inboundSchema)]),to:smartUnion([lazyType(()=>UpdateProjectToProjectsResponse1$inboundSchema),lazyType(()=>UpdateProjectToProjectsResponse2$inboundSchema)])}),UpdateProjectProjectsProjects$inboundSchema=objectType({label:optional(string()),customAllow:optional(arrayType(lazyType(()=>UpdateProjectCustomAllow$inboundSchema)))}),UpdateProjectToProjectsResponse200Preset$inboundSchema=nativeEnumType(UpdateProjectToProjectsResponse200Preset),UpdateProjectToProjects2$inboundSchema=objectType({slugs:optional(arrayType(string())),preset:UpdateProjectToProjectsResponse200Preset$inboundSchema}),UpdateProjectToProjectsResponsePreset$inboundSchema=nativeEnumType(UpdateProjectToProjectsResponsePreset),UpdateProjectToProjects1$inboundSchema=objectType({slugs:arrayType(string()),preset:optional(UpdateProjectToProjectsResponsePreset$inboundSchema)});smartUnion([lazyType(()=>UpdateProjectToProjects1$inboundSchema),lazyType(()=>UpdateProjectToProjects2$inboundSchema)]);const UpdateProjectOidcProviders$inboundSchema=objectType({to:smartUnion([lazyType(()=>UpdateProjectToProjects1$inboundSchema),lazyType(()=>UpdateProjectToProjects2$inboundSchema)]),label:optional(string()),claims:recordType(arrayType(string()))}),UpdateProjectTrustedSources$inboundSchema=objectType({projects:optional(recordType(lazyType(()=>UpdateProjectProjectsProjects$inboundSchema))),oidcProviders:optional(recordType(arrayType(lazyType(()=>UpdateProjectOidcProviders$inboundSchema))))});function updateProjectTrustedSourcesFromJSON(e){return safeParse(e,e=>UpdateProjectTrustedSources$inboundSchema.parse(JSON.parse(e)),`Failed to parse 'UpdateProjectTrustedSources' from JSON`)}objectType({onPullRequest:boolean(),onCommit:boolean()});const UpdateProjectCreateDeployments$inboundSchema=nativeEnumType(UpdateProjectCreateDeployments),UpdateProjectConsolidatedGitCommitStatus$inboundSchema=objectType({enabled:boolean(),propagateFailures:boolean()});objectType({createDeployments:UpdateProjectCreateDeployments$inboundSchema,disableRepositoryDispatchEvents:optional(boolean()),requireVerifiedCommits:optional(boolean()),gitCommitStatus:optional(boolean()),consolidatedGitCommitStatus:optional(lazyType(()=>UpdateProjectConsolidatedGitCommitStatus$inboundSchema))}),objectType({id:string(),disabledAt:optional(number()),canceledAt:optional(number()),enabledAt:optional(number()),hasData:optional(literal(!0))});const UpdateProjectProjectsResponse200ApplicationJSONResponseBodySecurityAction$inboundSchema=nativeEnumType(UpdateProjectProjectsResponse200ApplicationJSONResponseBodySecurityAction),UpdateProjectVercelRuleset$inboundSchema=objectType({active:boolean(),action:optional(UpdateProjectProjectsResponse200ApplicationJSONResponseBodySecurityAction$inboundSchema)}),UpdateProjectProjectsResponse200ApplicationJSONResponseBodySecurityManagedRulesAction$inboundSchema=nativeEnumType(UpdateProjectProjectsResponse200ApplicationJSONResponseBodySecurityManagedRulesAction),UpdateProjectTrafficSources$inboundSchema=objectType({active:boolean(),action:optional(UpdateProjectProjectsResponse200ApplicationJSONResponseBodySecurityManagedRulesAction$inboundSchema)}),UpdateProjectProjectsResponse200ApplicationJSONResponseBodySecurityManagedRulesBotFilterAction$inboundSchema=nativeEnumType(UpdateProjectProjectsResponse200ApplicationJSONResponseBodySecurityManagedRulesBotFilterAction),UpdateProjectBotFilter$inboundSchema=objectType({active:boolean(),action:optional(UpdateProjectProjectsResponse200ApplicationJSONResponseBodySecurityManagedRulesBotFilterAction$inboundSchema)}),UpdateProjectProjectsResponse200ApplicationJSONAction$inboundSchema=nativeEnumType(UpdateProjectProjectsResponse200ApplicationJSONAction),UpdateProjectAiBots$inboundSchema=objectType({active:boolean(),action:optional(UpdateProjectProjectsResponse200ApplicationJSONAction$inboundSchema)}),UpdateProjectProjectsResponse200ApplicationJSONResponseBodyAction$inboundSchema=nativeEnumType(UpdateProjectProjectsResponse200ApplicationJSONResponseBodyAction),UpdateProjectOwasp$inboundSchema=objectType({active:boolean(),action:optional(UpdateProjectProjectsResponse200ApplicationJSONResponseBodyAction$inboundSchema)}),UpdateProjectManagedRules$inboundSchema=objectType({vercel_ruleset:lazyType(()=>UpdateProjectVercelRuleset$inboundSchema),traffic_sources:lazyType(()=>UpdateProjectTrafficSources$inboundSchema),bot_filter:lazyType(()=>UpdateProjectBotFilter$inboundSchema),ai_bots:lazyType(()=>UpdateProjectAiBots$inboundSchema),owasp:lazyType(()=>UpdateProjectOwasp$inboundSchema)}).transform(e=>remap(e,{vercel_ruleset:`vercelRuleset`,traffic_sources:`trafficSources`,bot_filter:`botFilter`,ai_bots:`aiBots`})),UpdateProjectLogHeaders2$inboundSchema=nativeEnumType(UpdateProjectLogHeaders2);smartUnion([arrayType(string()),UpdateProjectLogHeaders2$inboundSchema]);const UpdateProjectSecurityPlusMetadata$inboundSchema=objectType({updatedAt:number(),firstEnabledAt:optional(number())});objectType({attackModeEnabled:optional(boolean()),attackModeUpdatedAt:optional(number()),firewallEnabled:optional(boolean()),firewallUpdatedAt:optional(number()),attackModeActiveUntil:nullableType(number()).optional(),firewallConfigVersion:optional(number()),firewallSeawallEnabled:optional(boolean()),ja3Enabled:optional(boolean()),ja4Enabled:optional(boolean()),firewallBypassIps:optional(arrayType(string())),managedRules:nullableType(lazyType(()=>UpdateProjectManagedRules$inboundSchema)).optional(),botIdEnabled:optional(boolean()),log_headers:optional(smartUnion([arrayType(string()),UpdateProjectLogHeaders2$inboundSchema])),securityPlus:optional(boolean()),securityPlusMetadata:optional(lazyType(()=>UpdateProjectSecurityPlusMetadata$inboundSchema)),pageIntegrityEnabled:optional(boolean())}).transform(e=>remap(e,{log_headers:`logHeaders`}));const UpdateProjectProjectsIssuerMode$inboundSchema=nativeEnumType(UpdateProjectProjectsIssuerMode);objectType({enabled:optional(boolean()),issuerMode:optional(UpdateProjectProjectsIssuerMode$inboundSchema)});const UpdateProjectSourcesProjects2$inboundSchema=objectType({provider:literal(`gitlab`),namespace:string(),project:optional(string())}),UpdateProjectSourcesProjects1$inboundSchema=objectType({provider:nativeEnumType(UpdateProjectSourcesProjectsResponse200Provider),org:string(),repo:optional(string())});unionType([lazyType(()=>UpdateProjectSourcesProjects1$inboundSchema).and(objectType({provider:literalType(`bitbucket`)})),lazyType(()=>UpdateProjectSourcesProjects1$inboundSchema).and(objectType({provider:literalType(`github`)})),lazyType(()=>UpdateProjectSourcesProjects2$inboundSchema)]);const UpdateProjectEnvironmentsProjectsResponse2002$inboundSchema=objectType({type:literal(`custom`),environmentId:string()}),UpdateProjectEnvironmentsProjectsResponse200Target$inboundSchema=nativeEnumType(UpdateProjectEnvironmentsProjectsResponse200Target),UpdateProjectEnvironmentsProjectsResponse2001$inboundSchema=objectType({type:literal(`system`),target:UpdateProjectEnvironmentsProjectsResponse200Target$inboundSchema});unionType([lazyType(()=>UpdateProjectEnvironmentsProjectsResponse2001$inboundSchema),lazyType(()=>UpdateProjectEnvironmentsProjectsResponse2002$inboundSchema)]);const UpdateProjectGitSources$inboundSchema=objectType({sources:arrayType(unionType([lazyType(()=>UpdateProjectSourcesProjects1$inboundSchema).and(objectType({provider:literalType(`bitbucket`)})),lazyType(()=>UpdateProjectSourcesProjects1$inboundSchema).and(objectType({provider:literalType(`github`)})),lazyType(()=>UpdateProjectSourcesProjects2$inboundSchema)])),enabled:boolean(),environments:arrayType(unionType([lazyType(()=>UpdateProjectEnvironmentsProjectsResponse2001$inboundSchema),lazyType(()=>UpdateProjectEnvironmentsProjectsResponse2002$inboundSchema)]))}),UpdateProjectProjectsSources$inboundSchema=nativeEnumType(UpdateProjectProjectsSources),UpdateProjectEnvironmentsProjectsResponse2$inboundSchema=objectType({type:literal(`custom`),environmentId:string()}),UpdateProjectEnvironmentsProjectsResponseTarget$inboundSchema=nativeEnumType(UpdateProjectEnvironmentsProjectsResponseTarget),UpdateProjectEnvironmentsProjectsResponse1$inboundSchema=objectType({type:literal(`system`),target:UpdateProjectEnvironmentsProjectsResponseTarget$inboundSchema});unionType([lazyType(()=>UpdateProjectEnvironmentsProjectsResponse1$inboundSchema),lazyType(()=>UpdateProjectEnvironmentsProjectsResponse2$inboundSchema)]);const UpdateProjectDeploymentSources$inboundSchema=objectType({sources:arrayType(UpdateProjectProjectsSources$inboundSchema),enabled:boolean(),environments:arrayType(unionType([lazyType(()=>UpdateProjectEnvironmentsProjectsResponse1$inboundSchema),lazyType(()=>UpdateProjectEnvironmentsProjectsResponse2$inboundSchema)]))});objectType({gitSources:nullableType(arrayType(lazyType(()=>UpdateProjectGitSources$inboundSchema))).optional(),deploymentSources:nullableType(arrayType(lazyType(()=>UpdateProjectDeploymentSources$inboundSchema))).optional()}),nativeEnumType(UpdateProjectFlatRateTier),objectType({kind:nativeEnumType(UpdateProjectKind),exceededAllowanceUntil:optional(number()),bypassThrottleUntil:optional(number()),throttled:optional(boolean())}),objectType({webAnalytics:optional(boolean())}),objectType({scanner:string(),reason:string(),by:string(),byId:string(),at:number()}),objectType({action:nativeEnumType(UpdateProjectProjectsResponse200Action),reason:string(),statusCode:number(),createdAt:number(),caseId:optional(string()),actor:optional(string()),comment:optional(string()),ineligibleForAppeal:optional(boolean()),isCascading:optional(boolean())});export{updateProjectTrustedSourcesFromJSON};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{anyType,arrayType,booleanType,lazyType,literalType,nativeEnumType,nullableType,numberType,objectType,recordType,stringType,unionType}from"../../../../../../zod@4.4.3/node_modules/zod/v3/types.js";import"../../../../../../zod@4.4.3/node_modules/zod/v3/index.js";import{remap}from"../lib/primitives.js";import"../lib/schemas.js";import{boolean,literal,nullable,number,optional,string}from"../types/primitives.js";import{smartUnion}from"../types/smartUnion.js";const UpdateProjectFramework={Container:`container`,Blitzjs:`blitzjs`,Nextjs:`nextjs`,Gatsby:`gatsby`,Remix:`remix`,ReactRouter:`react-router`,Astro:`astro`,Hexo:`hexo`,Eleventy:`eleventy`,Docusaurus2:`docusaurus-2`,Docusaurus:`docusaurus`,Preact:`preact`,Solidstart1:`solidstart-1`,Solidstart:`solidstart`,Dojo:`dojo`,Ember:`ember`,Vue:`vue`,Scully:`scully`,IonicAngular:`ionic-angular`,Angular:`angular`,Polymer:`polymer`,Svelte:`svelte`,Sveltekit:`sveltekit`,Sveltekit1:`sveltekit-1`,IonicReact:`ionic-react`,CreateReactApp:`create-react-app`,Gridsome:`gridsome`,Umijs:`umijs`,Sapper:`sapper`,Saber:`saber`,Stencil:`stencil`,Nuxtjs:`nuxtjs`,Redwoodjs:`redwoodjs`,Hugo:`hugo`,Jekyll:`jekyll`,Brunch:`brunch`,Middleman:`middleman`,Zola:`zola`,Hydrogen:`hydrogen`,Vite:`vite`,TanstackStart:`tanstack-start`,Vitepress:`vitepress`,Vuepress:`vuepress`,Parcel:`parcel`,Fastapi:`fastapi`,Flask:`flask`,Fasthtml:`fasthtml`,Django:`django`,Ash:`ash`,Eve:`eve`,Sanity:`sanity`,SanityV2:`sanity-v2`,Storybook:`storybook`,Nitro:`nitro`,Hono:`hono`,Express:`express`,H3:`h3`,Koa:`koa`,Nestjs:`nestjs`,Elysia:`elysia`,Fastify:`fastify`,Xmcp:`xmcp`,Python:`python`,Ruby:`ruby`,Rust:`rust`,Axum:`axum`,ActixWeb:`actix-web`,Bun:`bun`,Node:`node`,Go:`go`,Services:`services`,Mastra:`mastra`},UpdateProjectNodeVersion={TwentyFourDotX:`24.x`,TwentyTwoDotX:`22.x`,TwentyDotX:`20.x`,EighteenDotX:`18.x`,SixteenDotX:`16.x`,FourteenDotX:`14.x`,TwelveDotX:`12.x`,TenDotX:`10.x`},UpdateProjectBuildMachineType={Enhanced:`enhanced`,Turbo:`turbo`,Standard:`standard`,Elastic:`elastic`},UpdateProjectConfiguration={SkipNamespaceQueue:`SKIP_NAMESPACE_QUEUE`,WaitForNamespaceQueue:`WAIT_FOR_NAMESPACE_QUEUE`},UpdateProjectFunctionDefaultMemoryType={StandardLegacy:`standard_legacy`,Standard:`standard`,Performance:`performance`,PerformanceXl:`performance_xl`},UpdateProjectBuildMachineSelection={Elastic:`elastic`,Fixed:`fixed`},UpdateProjectBuildMachineElasticReason={OomFailure:`oom-failure`,EnospcFailure:`enospc-failure`,BuildTimeoutFailure:`build-timeout-failure`,HighPeakMemory:`high-peak-memory`,SustainedHighCpu:`sustained-high-cpu`,HighPeakDisk:`high-peak-disk`,LongBuildDuration:`long-build-duration`,ShortBuildDuration:`short-build-duration`,EnterpriseFloor:`enterprise-floor`},UpdateProjectEnv={Production:`production`,Preview:`preview`},Destination={Internal:`internal`,External:`external`},UpdateProjectIssuerMode={Team:`team`,Global:`global`},UpdateProjectDeploymentType={All:`all`,Preview:`preview`,ProdDeploymentUrlsAndAllPreviews:`prod_deployment_urls_and_all_previews`,AllExceptCustomDomains:`all_except_custom_domains`},UpdateProjectProjectsDeploymentType={All:`all`,Preview:`preview`,ProdDeploymentUrlsAndAllPreviews:`prod_deployment_urls_and_all_previews`,AllExceptCustomDomains:`all_except_custom_domains`},UpdateProjectProjectsRequestDeploymentType={All:`all`,Preview:`preview`,ProdDeploymentUrlsAndAllPreviews:`prod_deployment_urls_and_all_previews`,AllExceptCustomDomains:`all_except_custom_domains`},UpdateProjectProjectsRequestRequestBodyDeploymentType={All:`all`,Preview:`preview`,Production:`production`,ProdDeploymentUrlsAndAllPreviews:`prod_deployment_urls_and_all_previews`,AllExceptCustomDomains:`all_except_custom_domains`},ProtectionMode={Exclusive:`exclusive`,Additional:`additional`},ToPreset={AllCustom:`all-custom`},Preset={AllCustom:`all-custom`},UpdateProjectFromPreset={AllCustom:`all-custom`},FromPreset={AllCustom:`all-custom`},UpdateProjectToProjectsPreset={AllCustom:`all-custom`},UpdateProjectToPreset={AllCustom:`all-custom`},UpdateProjectEnvironmentsProjectsTarget={Production:`production`,Preview:`preview`},UpdateProjectSourcesProjectsProvider={Github:`github`,Bitbucket:`bitbucket`},UpdateProjectEnvironmentsTarget={Production:`production`,Preview:`preview`},DeploymentSourcesSources={Git:`git`,Cli:`cli`,RestApi:`rest-api`,DeployHook:`deploy-hook`,Integration:`integration`,V0:`v0`},UpdateProjectAction={Cancel:`cancel`,Accept:`accept`,Delete:`delete`},UpdateProjectConfiguredBy={A:`A`,Cname:`CNAME`,Dns01:`dns-01`,Http:`http`},UpdateProjectProjectsResponse200ApplicationJSONResponseBodyAliasDeploymentType={EndsWith:`endsWith`,Equals:`equals`,StartsWith:`startsWith`},UpdateProjectProjectsResponseChecksConclusion={Canceled:`canceled`,Failed:`failed`,Skipped:`skipped`,Succeeded:`succeeded`},UpdateProjectProjectsResponseChecksState={Completed:`completed`,Registered:`registered`,Running:`running`},UpdateProjectProjectsResponsePlan={Enterprise:`enterprise`,Hobby:`hobby`,Pro:`pro`},UpdateProjectProjectsResponseReadyState={Blocked:`BLOCKED`,Building:`BUILDING`,Canceled:`CANCELED`,Error:`ERROR`,Initializing:`INITIALIZING`,Queued:`QUEUED`,Ready:`READY`},UpdateProjectProjectsResponseReadySubstate={Promoted:`PROMOTED`,Rolling:`ROLLING`,Staged:`STAGED`},UpdateProjectProjectsResponse200ApplicationJSONResponseBodyAliasType={Lambdas:`LAMBDAS`},UpdateProjectEnvironment={Preview:`preview`,Production:`production`},UpdateProjectTarget={Preview:`PREVIEW`,Production:`PRODUCTION`,Staging:`STAGING`},UpdateProjectEnvId2={Preview:`preview`,Production:`production`},UpdateProjectSource={Api:`api`},UpdateProjectTarget2={Production:`production`,Preview:`preview`,Development:`development`},UpdateProjectType={Encrypted:`encrypted`,Plain:`plain`,Secret:`secret`,Sensitive:`sensitive`,System:`system`},UpdateProjectProjectsResponse200ApplicationJSONResponseBodyEnvType={FlagsSecret:`flags-secret`},UpdateProjectProjectsType={Development:`development`,Preview:`preview`,Production:`production`},UpdateProjectProjectsResponse200ApplicationJSONResponseBodyCustomEnvironmentsType={EndsWith:`endsWith`,Equals:`equals`,StartsWith:`startsWith`},UpdateProjectProjectsFramework={ActixWeb:`actix-web`,Angular:`angular`,Ash:`ash`,Astro:`astro`,Axum:`axum`,Blitzjs:`blitzjs`,Brunch:`brunch`,Bun:`bun`,Container:`container`,CreateReactApp:`create-react-app`,Django:`django`,Docusaurus:`docusaurus`,Docusaurus2:`docusaurus-2`,Dojo:`dojo`,Eleventy:`eleventy`,Elysia:`elysia`,Ember:`ember`,Eve:`eve`,Express:`express`,Fastapi:`fastapi`,Fasthtml:`fasthtml`,Fastify:`fastify`,Flask:`flask`,Gatsby:`gatsby`,Go:`go`,Gridsome:`gridsome`,H3:`h3`,Hexo:`hexo`,Hono:`hono`,Hugo:`hugo`,Hydrogen:`hydrogen`,IonicAngular:`ionic-angular`,IonicReact:`ionic-react`,Jekyll:`jekyll`,Koa:`koa`,Mastra:`mastra`,Middleman:`middleman`,Nestjs:`nestjs`,Nextjs:`nextjs`,Nitro:`nitro`,Node:`node`,Nuxtjs:`nuxtjs`,Parcel:`parcel`,Polymer:`polymer`,Preact:`preact`,Python:`python`,ReactRouter:`react-router`,Redwoodjs:`redwoodjs`,Remix:`remix`,Ruby:`ruby`,Rust:`rust`,Saber:`saber`,Sanity:`sanity`,SanityV2:`sanity-v2`,Sapper:`sapper`,Scully:`scully`,Services:`services`,Solidstart:`solidstart`,Solidstart1:`solidstart-1`,Stencil:`stencil`,Storybook:`storybook`,Svelte:`svelte`,Sveltekit:`sveltekit`,Sveltekit1:`sveltekit-1`,TanstackStart:`tanstack-start`,Umijs:`umijs`,Vite:`vite`,Vitepress:`vitepress`,Vue:`vue`,Vuepress:`vuepress`,Xmcp:`xmcp`,Zola:`zola`},UpdateProjectServiceType={Cron:`cron`,Job:`job`,Web:`web`,Worker:`worker`},UpdateProjectProjectsResponseFramework={ActixWeb:`actix-web`,Angular:`angular`,Ash:`ash`,Astro:`astro`,Axum:`axum`,Blitzjs:`blitzjs`,Brunch:`brunch`,Bun:`bun`,Container:`container`,CreateReactApp:`create-react-app`,Django:`django`,Docusaurus:`docusaurus`,Docusaurus2:`docusaurus-2`,Dojo:`dojo`,Eleventy:`eleventy`,Elysia:`elysia`,Ember:`ember`,Eve:`eve`,Express:`express`,Fastapi:`fastapi`,Fasthtml:`fasthtml`,Fastify:`fastify`,Flask:`flask`,Gatsby:`gatsby`,Go:`go`,Gridsome:`gridsome`,H3:`h3`,Hexo:`hexo`,Hono:`hono`,Hugo:`hugo`,Hydrogen:`hydrogen`,IonicAngular:`ionic-angular`,IonicReact:`ionic-react`,Jekyll:`jekyll`,Koa:`koa`,Mastra:`mastra`,Middleman:`middleman`,Nestjs:`nestjs`,Nextjs:`nextjs`,Nitro:`nitro`,Node:`node`,Nuxtjs:`nuxtjs`,Parcel:`parcel`,Polymer:`polymer`,Preact:`preact`,Python:`python`,ReactRouter:`react-router`,Redwoodjs:`redwoodjs`,Remix:`remix`,Ruby:`ruby`,Rust:`rust`,Saber:`saber`,Sanity:`sanity`,SanityV2:`sanity-v2`,Sapper:`sapper`,Scully:`scully`,Services:`services`,Solidstart:`solidstart`,Solidstart1:`solidstart-1`,Stencil:`stencil`,Storybook:`storybook`,Svelte:`svelte`,Sveltekit:`sveltekit`,Sveltekit1:`sveltekit-1`,TanstackStart:`tanstack-start`,Umijs:`umijs`,Vite:`vite`,Vitepress:`vitepress`,Vue:`vue`,Vuepress:`vuepress`,Xmcp:`xmcp`,Zola:`zola`},UpdateProjectProjectsResponse200ApplicationJSONResponseBodyType={EndsWith:`endsWith`,Equals:`equals`,StartsWith:`startsWith`},UpdateProjectFramework$outboundSchema=nativeEnumType(UpdateProjectFramework),UpdateProjectNodeVersion$outboundSchema=nativeEnumType(UpdateProjectNodeVersion),UpdateProjectBuildMachineType$outboundSchema=nativeEnumType(UpdateProjectBuildMachineType),UpdateProjectBuildQueue$outboundSchema=objectType({configuration:nativeEnumType(UpdateProjectConfiguration).optional()}),UpdateProjectFunctionDefaultMemoryType$outboundSchema=nativeEnumType(UpdateProjectFunctionDefaultMemoryType),UpdateProjectBuildMachineSelection$outboundSchema=nativeEnumType(UpdateProjectBuildMachineSelection),UpdateProjectBuildMachineElasticReason$outboundSchema=nativeEnumType(UpdateProjectBuildMachineElasticReason),UpdateProjectResourceConfig$outboundSchema=objectType({buildMachineType:UpdateProjectBuildMachineType$outboundSchema.optional(),buildQueue:lazyType(()=>UpdateProjectBuildQueue$outboundSchema).optional(),fluid:booleanType().optional(),functionDefaultRegions:arrayType(stringType()).optional(),functionDefaultTimeout:numberType().optional(),functionDefaultMemoryType:UpdateProjectFunctionDefaultMemoryType$outboundSchema.optional(),functionZeroConfigFailover:booleanType().optional(),elasticConcurrencyEnabled:booleanType().optional(),buildMachineSelection:UpdateProjectBuildMachineSelection$outboundSchema.optional(),buildMachineElasticLastUpdated:numberType().optional(),buildMachineElasticReason:UpdateProjectBuildMachineElasticReason$outboundSchema.optional(),isNSNBDisabled:booleanType().optional(),enableFunctionsBeta:booleanType().optional()}),UpdateProjectStaticIps$outboundSchema=objectType({enabled:booleanType()}),UpdateProjectEnv$outboundSchema=nativeEnumType(UpdateProjectEnv),Destination$outboundSchema=nativeEnumType(Destination),SamplingRules$outboundSchema=objectType({rate:numberType(),env:UpdateProjectEnv$outboundSchema.optional(),requestPath:stringType().optional(),destination:Destination$outboundSchema.optional()}),Tracing$outboundSchema=objectType({domains:stringType().optional(),ignorePaths:arrayType(stringType()).optional(),samplingRules:arrayType(lazyType(()=>SamplingRules$outboundSchema)).optional()}),UpdateProjectIssuerMode$outboundSchema=nativeEnumType(UpdateProjectIssuerMode),UpdateProjectOidcTokenConfig$outboundSchema=objectType({enabled:booleanType().default(!0),issuerMode:UpdateProjectIssuerMode$outboundSchema.default(`team`)}),UpdateProjectPasswordProtection$outboundSchema=objectType({deploymentType:nativeEnumType(UpdateProjectDeploymentType),password:nullableType(stringType()).optional()}),UpdateProjectProjectsDeploymentType$outboundSchema=nativeEnumType(UpdateProjectProjectsDeploymentType),UpdateProjectPassport$outboundSchema=objectType({connectorId:stringType(),deploymentType:UpdateProjectProjectsDeploymentType$outboundSchema.default(`all`)}),UpdateProjectSsoProtection$outboundSchema=objectType({deploymentType:nativeEnumType(UpdateProjectProjectsRequestDeploymentType).default(`preview`)}),UpdateProjectProjectsRequestRequestBodyDeploymentType$outboundSchema=nativeEnumType(UpdateProjectProjectsRequestRequestBodyDeploymentType),Addresses$outboundSchema=objectType({value:stringType(),note:stringType().optional()}),ProtectionMode$outboundSchema=nativeEnumType(ProtectionMode),UpdateProjectTrustedIps$outboundSchema=objectType({deploymentType:UpdateProjectProjectsRequestRequestBodyDeploymentType$outboundSchema,addresses:arrayType(lazyType(()=>Addresses$outboundSchema)),protectionMode:ProtectionMode$outboundSchema}),ToPreset$outboundSchema=nativeEnumType(ToPreset),To2$outboundSchema=objectType({slugs:arrayType(stringType()).optional(),preset:ToPreset$outboundSchema}),Preset$outboundSchema=nativeEnumType(Preset),To1$outboundSchema=objectType({slugs:arrayType(stringType()),preset:Preset$outboundSchema.optional()});smartUnion([lazyType(()=>To1$outboundSchema),lazyType(()=>To2$outboundSchema)]);const UpdateProjectFromPreset$outboundSchema=nativeEnumType(UpdateProjectFromPreset),From2$outboundSchema=objectType({slugs:arrayType(stringType()).optional(),preset:UpdateProjectFromPreset$outboundSchema}),FromPreset$outboundSchema=nativeEnumType(FromPreset),From1$outboundSchema=objectType({slugs:arrayType(stringType()),preset:FromPreset$outboundSchema.optional()});smartUnion([lazyType(()=>From1$outboundSchema),lazyType(()=>From2$outboundSchema)]);const CustomAllow$outboundSchema=objectType({to:smartUnion([lazyType(()=>To1$outboundSchema),lazyType(()=>To2$outboundSchema)]),from:smartUnion([lazyType(()=>From1$outboundSchema),lazyType(()=>From2$outboundSchema)])}),UpdateProjectProjects$outboundSchema=objectType({label:stringType().optional(),customAllow:arrayType(lazyType(()=>CustomAllow$outboundSchema)).optional()}),UpdateProjectToProjectsPreset$outboundSchema=nativeEnumType(UpdateProjectToProjectsPreset),UpdateProjectTo2$outboundSchema=objectType({slugs:arrayType(stringType()).optional(),preset:UpdateProjectToProjectsPreset$outboundSchema}),UpdateProjectToPreset$outboundSchema=nativeEnumType(UpdateProjectToPreset),UpdateProjectTo1$outboundSchema=objectType({slugs:arrayType(stringType()),preset:UpdateProjectToPreset$outboundSchema.optional()});smartUnion([lazyType(()=>UpdateProjectTo1$outboundSchema),lazyType(()=>UpdateProjectTo2$outboundSchema)]);const OidcProviders$outboundSchema=objectType({label:stringType().optional(),to:smartUnion([lazyType(()=>UpdateProjectTo1$outboundSchema),lazyType(()=>UpdateProjectTo2$outboundSchema)]),claims:recordType(arrayType(stringType()))}),TrustedSources$outboundSchema=objectType({projects:recordType(lazyType(()=>UpdateProjectProjects$outboundSchema)).optional(),oidcProviders:recordType(arrayType(lazyType(()=>OidcProviders$outboundSchema))).optional()});function trustedSourcesToJSON(e){return JSON.stringify(TrustedSources$outboundSchema.parse(e))}const UpdateProjectEnvironmentsProjects2$outboundSchema=objectType({type:literalType(`custom`),environmentId:stringType()}),UpdateProjectEnvironmentsProjectsTarget$outboundSchema=nativeEnumType(UpdateProjectEnvironmentsProjectsTarget),UpdateProjectEnvironmentsProjects1$outboundSchema=objectType({type:literalType(`system`),target:UpdateProjectEnvironmentsProjectsTarget$outboundSchema});unionType([lazyType(()=>UpdateProjectEnvironmentsProjects1$outboundSchema),lazyType(()=>UpdateProjectEnvironmentsProjects2$outboundSchema)]);const UpdateProjectSources2$outboundSchema=objectType({provider:literalType(`gitlab`),namespace:stringType(),project:stringType().optional()}),UpdateProjectSources1$outboundSchema=objectType({provider:nativeEnumType(UpdateProjectSourcesProjectsProvider),org:stringType(),repo:stringType().optional()});unionType([lazyType(()=>UpdateProjectSources1$outboundSchema).and(objectType({provider:literalType(`github`)})),lazyType(()=>UpdateProjectSources1$outboundSchema).and(objectType({provider:literalType(`bitbucket`)})),lazyType(()=>UpdateProjectSources2$outboundSchema)]);const GitSources1$outboundSchema=objectType({enabled:booleanType(),environments:arrayType(unionType([lazyType(()=>UpdateProjectEnvironmentsProjects1$outboundSchema),lazyType(()=>UpdateProjectEnvironmentsProjects2$outboundSchema)])),sources:arrayType(unionType([lazyType(()=>UpdateProjectSources1$outboundSchema).and(objectType({provider:literalType(`github`)})),lazyType(()=>UpdateProjectSources1$outboundSchema).and(objectType({provider:literalType(`bitbucket`)})),lazyType(()=>UpdateProjectSources2$outboundSchema)]))});smartUnion([arrayType(lazyType(()=>GitSources1$outboundSchema)),stringType()]);const UpdateProjectEnvironments2$outboundSchema=objectType({type:literalType(`custom`),environmentId:stringType()}),UpdateProjectEnvironmentsTarget$outboundSchema=nativeEnumType(UpdateProjectEnvironmentsTarget),UpdateProjectEnvironments1$outboundSchema=objectType({type:literalType(`system`),target:UpdateProjectEnvironmentsTarget$outboundSchema});unionType([lazyType(()=>UpdateProjectEnvironments1$outboundSchema),lazyType(()=>UpdateProjectEnvironments2$outboundSchema)]);const DeploymentSourcesSources$outboundSchema=nativeEnumType(DeploymentSourcesSources),DeploymentSources1$outboundSchema=objectType({enabled:booleanType(),environments:arrayType(unionType([lazyType(()=>UpdateProjectEnvironments1$outboundSchema),lazyType(()=>UpdateProjectEnvironments2$outboundSchema)])),sources:arrayType(DeploymentSourcesSources$outboundSchema)});smartUnion([arrayType(lazyType(()=>DeploymentSources1$outboundSchema)),stringType()]);const DeploymentPolicy1$outboundSchema=objectType({gitSources:smartUnion([arrayType(lazyType(()=>GitSources1$outboundSchema)),stringType()]).optional(),deploymentSources:smartUnion([arrayType(lazyType(()=>DeploymentSources1$outboundSchema)),stringType()]).optional()});smartUnion([lazyType(()=>DeploymentPolicy1$outboundSchema),stringType()]);const UpdateProjectPaths$outboundSchema=objectType({value:stringType()}),UpdateProjectOptionsAllowlist$outboundSchema=objectType({paths:arrayType(lazyType(()=>UpdateProjectPaths$outboundSchema))}),ConnectConfigurations1$outboundSchema=objectType({envId:stringType(),connectConfigurationId:stringType(),passive:booleanType(),buildsEnabled:booleanType()});lazyType(()=>ConnectConfigurations1$outboundSchema);const UpdateProjectAction$outboundSchema=nativeEnumType(UpdateProjectAction);smartUnion([numberType(),booleanType(),stringType()]),smartUnion([numberType(),booleanType(),stringType()]),objectType({previousValue:smartUnion([numberType(),booleanType(),stringType()]),currentValue:smartUnion([numberType(),booleanType(),stringType()])});const UpdateProjectDismissedToasts$outboundSchema=objectType({key:stringType(),dismissedAt:numberType(),action:UpdateProjectAction$outboundSchema,value:anyType().optional()}),UpdateProjectRequestBody$outboundSchema=objectType({autoExposeSystemEnvs:booleanType().optional(),autoAssignCustomDomains:booleanType().optional(),autoAssignCustomDomainsUpdatedBy:stringType().optional(),buildCommand:nullableType(stringType()).optional(),commandForIgnoringBuildStep:nullableType(stringType()).optional(),customerSupportCodeVisibility:booleanType().optional(),devCommand:nullableType(stringType()).optional(),directoryListing:booleanType().optional(),framework:nullableType(UpdateProjectFramework$outboundSchema).optional(),gitForkProtection:booleanType().optional(),gitLFS:booleanType().optional(),protectedSourcemaps:booleanType().optional(),installCommand:nullableType(stringType()).optional(),name:stringType().optional(),nodeVersion:UpdateProjectNodeVersion$outboundSchema.optional(),outputDirectory:nullableType(stringType()).optional(),previewDeploymentsDisabled:nullableType(booleanType()).optional(),previewDeploymentSuffix:nullableType(stringType()).optional(),resourceConfig:lazyType(()=>UpdateProjectResourceConfig$outboundSchema).optional(),publicSource:nullableType(booleanType()).optional(),rootDirectory:nullableType(stringType()).optional(),serverlessFunctionRegion:nullableType(stringType()).optional(),serverlessFunctionZeroConfigFailover:booleanType().optional(),skewProtectionBoundaryAt:numberType().int().optional(),skewProtectionMaxAge:numberType().int().optional(),skewProtectionAllowedDomains:arrayType(stringType()).optional(),skipGitConnectDuringLink:booleanType().optional(),sourceFilesOutsideRootDirectory:booleanType().optional(),enablePreviewFeedback:nullableType(booleanType()).optional(),enableProductionFeedback:nullableType(booleanType()).optional(),enableAffectedProjectsDeployments:booleanType().optional(),enableExternalRewriteCaching:booleanType().optional(),staticIps:lazyType(()=>UpdateProjectStaticIps$outboundSchema).optional(),tracing:nullableType(lazyType(()=>Tracing$outboundSchema)).optional(),oidcTokenConfig:lazyType(()=>UpdateProjectOidcTokenConfig$outboundSchema).optional(),passwordProtection:nullableType(lazyType(()=>UpdateProjectPasswordProtection$outboundSchema)).optional(),passport:nullableType(lazyType(()=>UpdateProjectPassport$outboundSchema)).optional(),ssoProtection:nullableType(lazyType(()=>UpdateProjectSsoProtection$outboundSchema)).optional(),trustedIps:nullableType(lazyType(()=>UpdateProjectTrustedIps$outboundSchema)).optional(),trustedSources:nullableType(lazyType(()=>TrustedSources$outboundSchema)).optional(),deploymentPolicy:smartUnion([lazyType(()=>DeploymentPolicy1$outboundSchema),stringType()]).optional(),optionsAllowlist:nullableType(lazyType(()=>UpdateProjectOptionsAllowlist$outboundSchema)).optional(),connectConfigurations:nullableType(arrayType(lazyType(()=>ConnectConfigurations1$outboundSchema))).optional(),dismissedToasts:arrayType(lazyType(()=>UpdateProjectDismissedToasts$outboundSchema)).optional()});objectType({idOrName:stringType(),teamId:stringType().optional(),slug:stringType().optional(),requestBody:lazyType(()=>UpdateProjectRequestBody$outboundSchema)}).transform(e=>remap(e,{requestBody:`RequestBody`}));const UpdateProjectConfiguredBy$inboundSchema=nativeEnumType(UpdateProjectConfiguredBy);smartUnion([number(),boolean()]);const UpdateProjectProjectsResponseAliasError$inboundSchema=objectType({code:string(),message:string()}),UpdateProjectProjectsResponse200BranchMatcher$inboundSchema=objectType({type:nativeEnumType(UpdateProjectProjectsResponse200ApplicationJSONResponseBodyAliasDeploymentType),pattern:string()}),UpdateProjectProjectsResponseBuilds$inboundSchema=objectType({use:string(),src:optional(string()),dest:optional(string())}),UpdateProjectProjectsResponseChecksConclusion$inboundSchema=nativeEnumType(UpdateProjectProjectsResponseChecksConclusion),UpdateProjectProjectsResponseChecksState$inboundSchema=nativeEnumType(UpdateProjectProjectsResponseChecksState),UpdateProjectProjectsResponseCreator$inboundSchema=objectType({email:string(),githubLogin:optional(string()),gitlabLogin:optional(string()),uid:string(),username:string()}),UpdateProjectProjectsResponseOidcTokenClaims$inboundSchema=objectType({iss:string(),sub:string(),scope:string(),aud:string(),owner:string(),owner_id:string(),project:string(),project_id:string(),environment:string(),custom_environment_id:optional(string()),plan:optional(string())}).transform(e=>remap(e,{owner_id:`ownerId`,project_id:`projectId`,custom_environment_id:`customEnvironmentId`})),UpdateProjectProjectsResponsePlan$inboundSchema=nativeEnumType(UpdateProjectProjectsResponsePlan),UpdateProjectProjectsResponseReadyState$inboundSchema=nativeEnumType(UpdateProjectProjectsResponseReadyState),UpdateProjectProjectsResponseReadySubstate$inboundSchema=nativeEnumType(UpdateProjectProjectsResponseReadySubstate),UpdateProjectProjectsResponse200ApplicationJSONResponseBodyAliasType$inboundSchema=nativeEnumType(UpdateProjectProjectsResponse200ApplicationJSONResponseBodyAliasType),UpdateProjectDeployment$inboundSchema=objectType({id:string(),alias:optional(arrayType(string())),aliasAssigned:nullableType(smartUnion([number(),boolean()])).optional(),aliasError:nullableType(lazyType(()=>UpdateProjectProjectsResponseAliasError$inboundSchema)).optional(),aliasFinal:nullableType(string()).optional(),automaticAliases:optional(arrayType(string())),branchMatcher:optional(lazyType(()=>UpdateProjectProjectsResponse200BranchMatcher$inboundSchema)),buildingAt:optional(number()),builds:optional(arrayType(lazyType(()=>UpdateProjectProjectsResponseBuilds$inboundSchema))),checksConclusion:optional(UpdateProjectProjectsResponseChecksConclusion$inboundSchema),checksState:optional(UpdateProjectProjectsResponseChecksState$inboundSchema),connectBuildsEnabled:optional(boolean()),connectConfigurationId:optional(string()),createdAt:number(),createdIn:string(),creator:nullable(lazyType(()=>UpdateProjectProjectsResponseCreator$inboundSchema)),deletedAt:optional(number()),deploymentHostname:string(),forced:optional(boolean()),name:string(),meta:optional(recordType(string())),monorepoManager:nullableType(string()).optional(),oidcTokenClaims:optional(lazyType(()=>UpdateProjectProjectsResponseOidcTokenClaims$inboundSchema)),plan:UpdateProjectProjectsResponsePlan$inboundSchema,previewCommentsEnabled:optional(boolean()),private:boolean(),readyAt:optional(number()),readyState:UpdateProjectProjectsResponseReadyState$inboundSchema,readySubstate:optional(UpdateProjectProjectsResponseReadySubstate$inboundSchema),requestedAt:optional(number()),target:nullableType(string()).optional(),teamId:nullableType(string()).optional(),type:UpdateProjectProjectsResponse200ApplicationJSONResponseBodyAliasType$inboundSchema,url:string(),userId:string(),withCache:optional(boolean())}),UpdateProjectEnvironment$inboundSchema=nativeEnumType(UpdateProjectEnvironment),UpdateProjectTarget$inboundSchema=nativeEnumType(UpdateProjectTarget);objectType({configuredBy:nullableType(UpdateProjectConfiguredBy$inboundSchema).optional(),configuredChangedAt:nullableType(number()).optional(),createdAt:nullableType(number()).optional(),deployment:nullable(lazyType(()=>UpdateProjectDeployment$inboundSchema)),domain:string(),environment:UpdateProjectEnvironment$inboundSchema,gitBranch:nullableType(string()).optional(),redirect:nullableType(string()).optional(),redirectStatusCode:nullableType(number()).optional(),target:UpdateProjectTarget$inboundSchema}),objectType({id:string(),canceledAt:nullableType(number()).optional(),disabledAt:number(),enabledAt:number(),paidAt:optional(number()),sampleRatePercent:nullableType(number()).optional(),spendLimitInDollars:nullableType(number()).optional()}),objectType({id:string(),enabledAt:optional(number()),disabledAt:optional(number()),canceledAt:optional(number()),hasData:optional(boolean()),paidAt:optional(number())});const UpdateProjectEnvId2$inboundSchema=nativeEnumType(UpdateProjectEnvId2);smartUnion([string(),UpdateProjectEnvId2$inboundSchema]);const UpdateProjectAws$inboundSchema=objectType({subnetIds:arrayType(string()),securityGroupId:optional(string())});objectType({envId:smartUnion([string(),UpdateProjectEnvId2$inboundSchema]),connectConfigurationId:string(),dc:optional(string()),passive:boolean(),buildsEnabled:boolean(),aws:optional(lazyType(()=>UpdateProjectAws$inboundSchema)),createdAt:number(),updatedAt:number()});const UpdateProjectSource$inboundSchema=nativeEnumType(UpdateProjectSource),UpdateProjectDefinitions$inboundSchema=objectType({host:string(),path:string(),schedule:string(),source:optional(UpdateProjectSource$inboundSchema),description:optional(string()),hostInferred:optional(boolean())});objectType({enabledAt:number(),disabledAt:nullable(number()),updatedAt:number(),deploymentId:nullable(string()),definitions:arrayType(lazyType(()=>UpdateProjectDefinitions$inboundSchema))}),objectType({userDisabled:boolean(),storageSizeBytes:nullableType(number()).optional(),unlimited:optional(boolean())}),objectType({expirationDays:optional(number()),expirationDaysProduction:optional(number()),expirationDaysCanceled:optional(number()),expirationDaysErrored:optional(number()),deploymentsToKeep:optional(number())});const UpdateProjectExpiration2$inboundSchema=objectType({lockedAt:number(),lockedBy:string()}),UpdateProjectExpiration1$inboundSchema=objectType({expiresAt:number()});smartUnion([lazyType(()=>UpdateProjectExpiration2$inboundSchema),lazyType(()=>UpdateProjectExpiration1$inboundSchema)]);const UpdateProjectTarget2$inboundSchema=nativeEnumType(UpdateProjectTarget2);smartUnion([arrayType(string()),UpdateProjectTarget2$inboundSchema]);const UpdateProjectType$inboundSchema=nativeEnumType(UpdateProjectType),UpdateProjectContentHint17$inboundSchema=objectType({type:literal(`flags-connection-string`),projectId:string()}),UpdateProjectContentHint16$inboundSchema=objectType({type:literal(`integration-store-secret`),storeId:string(),integrationId:string(),integrationProductId:string(),integrationConfigurationId:string()}),UpdateProjectContentHint15$inboundSchema=objectType({type:literal(`postgres-url-no-ssl`),storeId:string()}),UpdateProjectContentHint14$inboundSchema=objectType({type:literal(`postgres-database`),storeId:string()}),UpdateProjectContentHint13$inboundSchema=objectType({type:literal(`postgres-password`),storeId:string()}),UpdateProjectContentHint12$inboundSchema=objectType({type:literal(`postgres-host`),storeId:string()}),UpdateProjectContentHint11$inboundSchema=objectType({type:literal(`postgres-user`),storeId:string()}),UpdateProjectContentHint10$inboundSchema=objectType({type:literal(`postgres-prisma-url`),storeId:string()}),UpdateProjectContentHint9$inboundSchema=objectType({type:literal(`postgres-url-non-pooling`),storeId:string()}),UpdateProjectContentHint8$inboundSchema=objectType({type:literal(`postgres-url`),storeId:string()}),UpdateProjectContentHint7$inboundSchema=objectType({type:literal(`blob-webhook-public-key`),storeId:string()}),UpdateProjectContentHint6$inboundSchema=objectType({type:literal(`blob-store-id`),storeId:string()}),UpdateProjectContentHint5$inboundSchema=objectType({type:literal(`blob-read-write-token`),storeId:string()}),UpdateProjectContentHint4$inboundSchema=objectType({type:literal(`redis-rest-api-read-only-token`),storeId:string()}),UpdateProjectContentHint3$inboundSchema=objectType({type:literal(`redis-rest-api-token`),storeId:string()}),UpdateProjectContentHint2$inboundSchema=objectType({type:literal(`redis-rest-api-url`),storeId:string()}),UpdateProjectContentHint1$inboundSchema=objectType({type:literal(`redis-url`),storeId:string()});unionType([lazyType(()=>UpdateProjectContentHint1$inboundSchema),lazyType(()=>UpdateProjectContentHint2$inboundSchema),lazyType(()=>UpdateProjectContentHint3$inboundSchema),lazyType(()=>UpdateProjectContentHint4$inboundSchema),lazyType(()=>UpdateProjectContentHint5$inboundSchema),lazyType(()=>UpdateProjectContentHint6$inboundSchema),lazyType(()=>UpdateProjectContentHint7$inboundSchema),lazyType(()=>UpdateProjectContentHint8$inboundSchema),lazyType(()=>UpdateProjectContentHint9$inboundSchema),lazyType(()=>UpdateProjectContentHint10$inboundSchema),lazyType(()=>UpdateProjectContentHint11$inboundSchema),lazyType(()=>UpdateProjectContentHint12$inboundSchema),lazyType(()=>UpdateProjectContentHint13$inboundSchema),lazyType(()=>UpdateProjectContentHint14$inboundSchema),lazyType(()=>UpdateProjectContentHint15$inboundSchema),lazyType(()=>UpdateProjectContentHint16$inboundSchema),lazyType(()=>UpdateProjectContentHint17$inboundSchema)]);const UpdateProjectInternalContentHint$inboundSchema=objectType({type:nativeEnumType(UpdateProjectProjectsResponse200ApplicationJSONResponseBodyEnvType),encryptedValue:string()});objectType({target:optional(smartUnion([arrayType(string()),UpdateProjectTarget2$inboundSchema])),type:UpdateProjectType$inboundSchema,sunsetSecretId:optional(string()),legacyValue:optional(string()),decrypted:optional(boolean()),value:string(),vsmValue:optional(string()),id:optional(string()),key:string(),configurationId:nullableType(string()).optional(),createdAt:optional(number()),updatedAt:optional(number()),createdBy:nullableType(string()).optional(),updatedBy:nullableType(string()).optional(),gitBranch:optional(string()),edgeConfigId:nullableType(string()).optional(),edgeConfigTokenId:nullableType(string()).optional(),contentHint:nullableType(unionType([lazyType(()=>UpdateProjectContentHint1$inboundSchema),lazyType(()=>UpdateProjectContentHint2$inboundSchema),lazyType(()=>UpdateProjectContentHint3$inboundSchema),lazyType(()=>UpdateProjectContentHint4$inboundSchema),lazyType(()=>UpdateProjectContentHint5$inboundSchema),lazyType(()=>UpdateProjectContentHint6$inboundSchema),lazyType(()=>UpdateProjectContentHint7$inboundSchema),lazyType(()=>UpdateProjectContentHint8$inboundSchema),lazyType(()=>UpdateProjectContentHint9$inboundSchema),lazyType(()=>UpdateProjectContentHint10$inboundSchema),lazyType(()=>UpdateProjectContentHint11$inboundSchema),lazyType(()=>UpdateProjectContentHint12$inboundSchema),lazyType(()=>UpdateProjectContentHint13$inboundSchema),lazyType(()=>UpdateProjectContentHint14$inboundSchema),lazyType(()=>UpdateProjectContentHint15$inboundSchema),lazyType(()=>UpdateProjectContentHint16$inboundSchema),lazyType(()=>UpdateProjectContentHint17$inboundSchema)])).optional(),internalContentHint:nullableType(lazyType(()=>UpdateProjectInternalContentHint$inboundSchema)).optional(),comment:optional(string()),customEnvironmentIds:optional(arrayType(string()))});const UpdateProjectProjectsType$inboundSchema=nativeEnumType(UpdateProjectProjectsType),UpdateProjectBranchMatcher$inboundSchema=objectType({type:nativeEnumType(UpdateProjectProjectsResponse200ApplicationJSONResponseBodyCustomEnvironmentsType),pattern:string()}),UpdateProjectVerification$inboundSchema=objectType({type:string(),domain:string(),value:string(),reason:string()}),UpdateProjectDomains$inboundSchema=objectType({name:string(),apexName:string(),projectId:string(),redirect:nullableType(string()).optional(),redirectStatusCode:nullableType(number()).optional(),gitBranch:nullableType(string()).optional(),customEnvironmentId:nullableType(string()).optional(),updatedAt:optional(number()),createdAt:optional(number()),verified:boolean(),verification:optional(arrayType(lazyType(()=>UpdateProjectVerification$inboundSchema)))});objectType({id:string(),slug:string(),type:UpdateProjectProjectsType$inboundSchema,description:optional(string()),branchMatcher:optional(lazyType(()=>UpdateProjectBranchMatcher$inboundSchema)),domains:optional(arrayType(lazyType(()=>UpdateProjectDomains$inboundSchema))),currentDeploymentAliases:optional(arrayType(string())),createdAt:number(),updatedAt:number()}),nativeEnumType(UpdateProjectProjectsFramework);const UpdateProjectServiceType$inboundSchema=nativeEnumType(UpdateProjectServiceType),UpdateProjectProjectsResponseFramework$inboundSchema=nativeEnumType(UpdateProjectProjectsResponseFramework);objectType({serviceName:string(),serviceType:optional(UpdateProjectServiceType$inboundSchema),framework:optional(UpdateProjectProjectsResponseFramework$inboundSchema),runtime:optional(string())}),objectType({bucket:string(),default:optional(boolean()),supportUntil:optional(number())});const UpdateProjectLint$inboundSchema=objectType({targets:arrayType(string())}),UpdateProjectTypecheck$inboundSchema=objectType({targets:arrayType(string())}),UpdateProjectMfeConfigPresent$inboundSchema=objectType({targets:arrayType(string())});objectType({lint:optional(lazyType(()=>UpdateProjectLint$inboundSchema)),typecheck:optional(lazyType(()=>UpdateProjectTypecheck$inboundSchema)),"mfe-config-present":optional(lazyType(()=>UpdateProjectMfeConfigPresent$inboundSchema))}).transform(e=>remap(e,{"mfe-config-present":`mfeConfigPresent`}));const UpdateProjectAliasAssigned$inboundSchema=smartUnion([number(),boolean()]),UpdateProjectAliasError$inboundSchema=objectType({code:string(),message:string()}),UpdateProjectProjectsBranchMatcher$inboundSchema=objectType({type:nativeEnumType(UpdateProjectProjectsResponse200ApplicationJSONResponseBodyType),pattern:string()});export{UpdateProjectAliasAssigned$inboundSchema,UpdateProjectAliasError$inboundSchema,UpdateProjectProjectsBranchMatcher$inboundSchema,trustedSourcesToJSON};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function connectionProtocols(e){return[e.mcp?`mcp`:null,e.openapi?`openapi`:null].filter(e=>e!==null)}const INTEGRATIONS=[{slug:`slack`,name:`Slack`,kind:`channel`,tagline:`Mention your agent in channels and DMs, with Connect-managed auth.`,surfaces:{scaffoldable:!0,gallery:!0}},{slug:`discord`,name:`Discord`,kind:`channel`,tagline:`Run your agent as a Discord bot across servers and threads.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`teams`,name:`Microsoft Teams`,kind:`channel`,tagline:`Bring your agent into Teams chats and channels.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`telegram`,name:`Telegram`,kind:`channel`,tagline:`Connect your agent to a Telegram bot for 1:1 and group chats.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`twilio`,name:`Twilio`,kind:`channel`,tagline:`Put your agent on a phone number: SMS and speech-transcribed calls.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`github`,name:`GitHub`,kind:`channel`,tagline:`Drive your agent from issues, pull requests, and comments.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`linear-agent`,name:`Linear Agent`,kind:`channel`,tagline:`Delegate Linear issues and comments to your agent through Linear's Agent Sessions.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`eve`,name:`Web Chat`,kind:`channel`,tagline:`Embed a first-party web chat UI backed by your agent.`,surfaces:{scaffoldable:!0,gallery:!0}},{slug:`chat-sdk-gchat`,name:`Google Chat`,kind:`channel`,tagline:`Google Chat spaces and DMs via the Chat SDK.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`chat-sdk-whatsapp`,name:`WhatsApp`,kind:`channel`,tagline:`Customer messaging through WhatsApp Business Cloud via the Chat SDK.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`chat-sdk-x`,name:`X`,kind:`channel`,tagline:`Public mentions and DMs on X via the Chat SDK.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`chat-sdk-messenger`,name:`Messenger`,kind:`channel`,tagline:`Facebook Messenger bots with templates, buttons, and reactions via the Chat SDK.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`agent-browser`,name:`agent-browser`,kind:`extension`,tagline:`Add browser automation tools backed by agent-browser to an eve agent.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`kernel`,name:`Kernel`,kind:`connection`,tagline:`Launch cloud browsers and automate web interactions through Kernel's MCP server.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Kernel: launch and automate cloud browsers, run Playwright, and inspect replays.`,mcp:{url:`https://mcp.onkernel.com/mcp`}}},{slug:`browser-use`,name:`Browser Use`,kind:`connection`,tagline:`Run managed browser automation tasks through Browser Use's MCP server.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Browser Use: run browser automation tasks, inspect sessions, and manage browser profiles.`,mcp:{url:`https://api.browser-use.com/v3/mcp`}}},{slug:`linear`,name:`Linear`,kind:`connection`,tagline:`Issues, projects, cycles, and comments via Linear's MCP server.`,surfaces:{scaffoldable:!0,gallery:!0},connection:{description:`Linear workspace: issues, projects, cycles, and comments.`,mcp:{url:`https://mcp.linear.app/mcp`}}},{slug:`notion`,name:`Notion`,kind:`connection`,tagline:`Search and edit Notion pages and databases over MCP or OpenAPI.`,surfaces:{scaffoldable:!0,gallery:!0},connection:{description:`Notion workspace: search and edit pages and databases.`,mcp:{url:`https://mcp.notion.com/mcp`},openapi:{spec:`https://developers.notion.com/openapi.json`,baseUrl:`https://api.notion.com`,headers:{"Notion-Version":`2022-06-28`}}}},{slug:`datadog`,name:`Datadog`,kind:`connection`,tagline:`Query metrics, monitors, and logs through Datadog's MCP server.`,surfaces:{scaffoldable:!0,gallery:!0},connection:{description:`Datadog: query metrics, monitors, logs, and incidents.`,mcp:{url:`https://mcp.datadoghq.com/api/mcp`}}},{slug:`honeycomb`,name:`Honeycomb`,kind:`connection`,tagline:`Explore traces and run queries through Honeycomb's MCP server.`,surfaces:{scaffoldable:!0,gallery:!0},connection:{description:`Honeycomb: explore traces, run queries, and inspect datasets.`,mcp:{url:`https://mcp.honeycomb.io/mcp`}}},{slug:`airtable`,name:`Airtable`,kind:`connection`,tagline:`Bases, tables, and records through Airtable's MCP server.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Airtable: bases, tables, and records.`,mcp:{url:`https://mcp.airtable.com/mcp`}}},{slug:`bitly`,name:`Bitly`,kind:`connection`,tagline:`Shorten links, generate QR Codes, and track performance.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Bitly: shorten links, generate QR Codes, and track link performance.`,mcp:{url:`https://api-ssl.bitly.com/v4/mcp`}}},{slug:`brex`,name:`Brex`,kind:`connection`,tagline:`Expenses, cards, and cash through Brex's finance automation.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Brex: expenses, cards, budgets, and cash.`,mcp:{url:`https://api.brex.com/mcp`}}},{slug:`candid`,name:`Candid`,kind:`connection`,tagline:`Research nonprofits and funders using Candid's data.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Candid: research nonprofits, funders, and grants.`,mcp:{url:`https://mcp.candid.org/mcp`}}},{slug:`clickhouse`,name:`ClickHouse`,kind:`connection`,tagline:`Query and explore your ClickHouse Cloud data.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`ClickHouse Cloud: query and explore databases and tables.`,mcp:{url:`https://mcp.clickhouse.cloud/mcp`}}},{slug:`cloudinary`,name:`Cloudinary`,kind:`connection`,tagline:`Manage, transform, and deliver your images and videos.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Cloudinary: manage, transform, and deliver image and video assets.`,mcp:{url:`https://asset-management.mcp.cloudinary.com/sse`}}},{slug:`coda`,name:`Coda`,kind:`connection`,tagline:`Create, search, and update docs and tables.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Coda: create, search, and update docs and tables.`,mcp:{url:`https://coda.io/apis/mcp`}}},{slug:`egnyte`,name:`Egnyte`,kind:`connection`,tagline:`Securely access and analyze Egnyte content.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Egnyte: search, access, and analyze governed content.`,mcp:{url:`https://mcp-server.egnyte.com/mcp`}}},{slug:`embat`,name:`Embat`,kind:`connection`,tagline:`Ask Embat about cash, debt, payments, and accounting.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Embat: cash, debt, payments, and accounting.`,mcp:{url:`https://tellme.embat.io/mcp`}}},{slug:`hugging-face`,name:`Hugging Face`,kind:`connection`,tagline:`Access the Hugging Face Hub and thousands of Gradio apps.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Hugging Face: models, datasets, Spaces, and Gradio apps on the Hub.`,mcp:{url:`https://huggingface.co/mcp?login&gradio=none`}}},{slug:`local-falcon`,name:`Local Falcon`,kind:`connection`,tagline:`AI visibility and local search intelligence.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Local Falcon: local search rankings and AI visibility reports.`,mcp:{url:`https://mcp.localfalcon.com`}}},{slug:`make`,name:`Make`,kind:`connection`,tagline:`Run Make scenarios and manage your Make account.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Make: run scenarios and manage automations.`,mcp:{url:`https://mcp.make.com`}}},{slug:`manufact`,name:`Manufact`,kind:`connection`,tagline:`Deploy and monitor MCP servers with Manufact.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Manufact: deploy and monitor MCP servers.`,mcp:{url:`https://mcp.manufact.com/mcp`}}},{slug:`mem0`,name:`Mem0`,kind:`connection`,tagline:`Persistent memory for AI agents and assistants.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Mem0: store and retrieve persistent agent memory.`,mcp:{url:`https://mcp.mem0.ai/mcp`}}},{slug:`miro`,name:`Miro`,kind:`connection`,tagline:`Access and create content on Miro boards.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Miro: read and create content on boards.`,mcp:{url:`https://mcp.miro.com/`}}},{slug:`mixpanel`,name:`Mixpanel`,kind:`connection`,tagline:`Analyze, query, and manage your Mixpanel data.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Mixpanel: analyze, query, and manage analytics data.`,mcp:{url:`https://mcp.mixpanel.com/mcp`}}},{slug:`netlify`,name:`Netlify`,kind:`connection`,tagline:`Create, deploy, manage, and secure websites on Netlify.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Netlify: create, deploy, manage, and secure sites.`,mcp:{url:`https://netlify-mcp.netlify.app/mcp`}}},{slug:`oreilly`,name:`O'Reilly`,kind:`connection`,tagline:`Discover O'Reilly's expert learning content.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`O'Reilly: search books, courses, and learning content.`,mcp:{url:`https://api.oreilly.com/api/content-discovery/v1/mcp/`}}},{slug:`planetscale`,name:`PlanetScale`,kind:`connection`,tagline:`Authenticated access to your PlanetScale Postgres and MySQL databases.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`PlanetScale: query Postgres and MySQL databases.`,mcp:{url:`https://mcp.pscale.dev/mcp/planetscale`}}},{slug:`posthog`,name:`PostHog`,kind:`connection`,tagline:`Query, analyze, and manage your PostHog insights.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`PostHog: insights, events, and feature flags.`,mcp:{url:`https://mcp.posthog.com/mcp`}}},{slug:`postman`,name:`Postman`,kind:`connection`,tagline:`Give API context to your coding agents with Postman.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Postman: APIs, collections, and workspaces.`,mcp:{url:`https://mcp.postman.com/minimal`}}},{slug:`razorpay`,name:`Razorpay`,kind:`connection`,tagline:`Razorpay payments, settlements, and dashboard data.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Razorpay: payments, settlements, and dashboard data.`,mcp:{url:`https://mcp.razorpay.com/mcp`}}},{slug:`sentry`,name:`Sentry`,kind:`connection`,tagline:`Search, query, and debug errors intelligently.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Sentry: search, query, and debug errors and issues.`,mcp:{url:`https://mcp.sentry.dev/mcp`}}},{slug:`similarweb`,name:`Similarweb`,kind:`connection`,tagline:`Real-time web, mobile app, and market data.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Similarweb: web traffic, app, and market intelligence data.`,mcp:{url:`https://mcp.similarweb.com`}}},{slug:`stripe`,name:`Stripe`,kind:`connection`,tagline:`Payment processing and financial infrastructure tools.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Stripe: payments, customers, billing, and financial infrastructure.`,mcp:{url:`https://mcp.stripe.com`}}},{slug:`supabase`,name:`Supabase`,kind:`connection`,tagline:`Manage databases, authentication, and storage.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Supabase: databases, authentication, and storage.`,mcp:{url:`https://mcp.supabase.com/mcp`}}},{slug:`ticket-tailor`,name:`Ticket Tailor`,kind:`connection`,tagline:`Manage tickets, orders, and events with Ticket Tailor.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Ticket Tailor: events, tickets, and orders.`,mcp:{url:`https://mcp.tickettailor.ai/mcp`}}},{slug:`ticktick`,name:`TickTick`,kind:`connection`,tagline:`Search, create, and manage your tasks and habits in TickTick.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`TickTick: tasks, habits, and lists.`,mcp:{url:`https://mcp.ticktick.com`}}},{slug:`todoist`,name:`Todoist`,kind:`connection`,tagline:`Search, complete, and manage your tasks in Todoist.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Todoist: search, complete, and manage tasks.`,mcp:{url:`https://ai.todoist.net/mcp`}}},{slug:`webflow`,name:`Webflow`,kind:`connection`,tagline:`Manage Webflow CMS, pages, assets, and sites.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Webflow: CMS items, pages, assets, and sites.`,mcp:{url:`https://mcp.webflow.com/mcp`}}},{slug:`wix`,name:`Wix`,kind:`connection`,tagline:`Manage and build sites and apps on Wix.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Wix: manage and build sites and apps.`,mcp:{url:`https://mcp.wix.com/mcp`}}},{slug:`zapier`,name:`Zapier`,kind:`connection`,tagline:`Automate workflows across thousands of apps.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Zapier: run and manage automations across apps.`,mcp:{url:`https://mcp.zapier.com/api/v1/connect`}}},{slug:`zomato`,name:`Zomato`,kind:`connection`,tagline:`Online food ordering and delivery through Zomato.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Zomato: food ordering and delivery.`,mcp:{url:`https://mcp-server.zomato.com/mcp`}}}];new Map(INTEGRATIONS.map(e=>[e.slug,e]));function integrationsByKind(t){return INTEGRATIONS.filter(e=>e.kind===t)}function connectionEntries(){return integrationsByKind(`connection`)}function channelEntries(){return integrationsByKind(`channel`)}export{channelEntries,connectionEntries,connectionProtocols};
|
|
1
|
+
function connectionProtocols(e){return[e.mcp?`mcp`:null,e.openapi?`openapi`:null].filter(e=>e!==null)}const INTEGRATIONS=[{slug:`slack`,name:`Slack`,kind:`channel`,tagline:`Mention your agent in channels and DMs, with Connect-managed auth.`,surfaces:{scaffoldable:!0,gallery:!0}},{slug:`discord`,name:`Discord`,kind:`channel`,tagline:`Run your agent as a Discord bot across servers and threads.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`teams`,name:`Microsoft Teams`,kind:`channel`,tagline:`Bring your agent into Teams chats and channels.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`telegram`,name:`Telegram`,kind:`channel`,tagline:`Connect your agent to a Telegram bot for 1:1 and group chats.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`twilio`,name:`Twilio`,kind:`channel`,tagline:`Put your agent on a phone number: SMS and speech-transcribed calls.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`github`,name:`GitHub`,kind:`channel`,tagline:`Drive your agent from issues, pull requests, and comments.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`linear-agent`,name:`Linear Agent`,kind:`channel`,tagline:`Delegate Linear issues and comments to your agent through Linear's Agent Sessions.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`eve`,name:`Web Chat`,kind:`channel`,tagline:`Embed a first-party web chat UI backed by your agent.`,surfaces:{scaffoldable:!0,gallery:!0}},{slug:`chat-sdk-gchat`,name:`Google Chat`,kind:`channel`,tagline:`Google Chat spaces and DMs via the Chat SDK.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`chat-sdk-whatsapp`,name:`WhatsApp`,kind:`channel`,tagline:`Customer messaging through WhatsApp Business Cloud via the Chat SDK.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`chat-sdk-x`,name:`X`,kind:`channel`,tagline:`Public mentions and DMs on X via the Chat SDK.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`chat-sdk-messenger`,name:`Messenger`,kind:`channel`,tagline:`Facebook Messenger bots with templates, buttons, and reactions via the Chat SDK.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`agent-browser`,name:`agent-browser`,kind:`extension`,tagline:`Add browser automation tools backed by agent-browser to an eve agent.`,surfaces:{scaffoldable:!1,gallery:!0}},{slug:`kernel`,name:`Kernel`,kind:`connection`,tagline:`Launch cloud browsers and automate web interactions through Kernel's MCP server.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Kernel: launch and automate cloud browsers, run Playwright, and inspect replays.`,mcp:{url:`https://mcp.onkernel.com/mcp`}}},{slug:`browser-use`,name:`Browser Use`,kind:`connection`,tagline:`Run managed browser automation tasks through Browser Use's MCP server.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Browser Use: run browser automation tasks, inspect sessions, and manage browser profiles.`,mcp:{url:`https://api.browser-use.com/v3/mcp`}}},{slug:`vercel`,name:`Vercel`,kind:`connection`,tagline:`Manage Vercel projects, deployments, and logs through Vercel's MCP server.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Vercel: manage projects and deployments, inspect logs, and search documentation.`,mcp:{url:`https://mcp.vercel.com`}}},{slug:`linear`,name:`Linear`,kind:`connection`,tagline:`Issues, projects, cycles, and comments via Linear's MCP server.`,surfaces:{scaffoldable:!0,gallery:!0},connection:{description:`Linear workspace: issues, projects, cycles, and comments.`,mcp:{url:`https://mcp.linear.app/mcp`}}},{slug:`notion`,name:`Notion`,kind:`connection`,tagline:`Search and edit Notion pages and databases over MCP or OpenAPI.`,surfaces:{scaffoldable:!0,gallery:!0},connection:{description:`Notion workspace: search and edit pages and databases.`,mcp:{url:`https://mcp.notion.com/mcp`},openapi:{spec:`https://developers.notion.com/openapi.json`,baseUrl:`https://api.notion.com`,headers:{"Notion-Version":`2022-06-28`}}}},{slug:`datadog`,name:`Datadog`,kind:`connection`,tagline:`Query metrics, monitors, and logs through Datadog's MCP server.`,surfaces:{scaffoldable:!0,gallery:!0},connection:{description:`Datadog: query metrics, monitors, logs, and incidents.`,mcp:{url:`https://mcp.datadoghq.com/api/mcp`}}},{slug:`honeycomb`,name:`Honeycomb`,kind:`connection`,tagline:`Explore traces and run queries through Honeycomb's MCP server.`,surfaces:{scaffoldable:!0,gallery:!0},connection:{description:`Honeycomb: explore traces, run queries, and inspect datasets.`,mcp:{url:`https://mcp.honeycomb.io/mcp`}}},{slug:`airtable`,name:`Airtable`,kind:`connection`,tagline:`Bases, tables, and records through Airtable's MCP server.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Airtable: bases, tables, and records.`,mcp:{url:`https://mcp.airtable.com/mcp`}}},{slug:`bitly`,name:`Bitly`,kind:`connection`,tagline:`Shorten links, generate QR Codes, and track performance.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Bitly: shorten links, generate QR Codes, and track link performance.`,mcp:{url:`https://api-ssl.bitly.com/v4/mcp`}}},{slug:`brex`,name:`Brex`,kind:`connection`,tagline:`Expenses, cards, and cash through Brex's finance automation.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Brex: expenses, cards, budgets, and cash.`,mcp:{url:`https://api.brex.com/mcp`}}},{slug:`candid`,name:`Candid`,kind:`connection`,tagline:`Research nonprofits and funders using Candid's data.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Candid: research nonprofits, funders, and grants.`,mcp:{url:`https://mcp.candid.org/mcp`}}},{slug:`clickhouse`,name:`ClickHouse`,kind:`connection`,tagline:`Query and explore your ClickHouse Cloud data.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`ClickHouse Cloud: query and explore databases and tables.`,mcp:{url:`https://mcp.clickhouse.cloud/mcp`}}},{slug:`cloudinary`,name:`Cloudinary`,kind:`connection`,tagline:`Manage, transform, and deliver your images and videos.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Cloudinary: manage, transform, and deliver image and video assets.`,mcp:{url:`https://asset-management.mcp.cloudinary.com/sse`}}},{slug:`coda`,name:`Coda`,kind:`connection`,tagline:`Create, search, and update docs and tables.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Coda: create, search, and update docs and tables.`,mcp:{url:`https://coda.io/apis/mcp`}}},{slug:`egnyte`,name:`Egnyte`,kind:`connection`,tagline:`Securely access and analyze Egnyte content.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Egnyte: search, access, and analyze governed content.`,mcp:{url:`https://mcp-server.egnyte.com/mcp`}}},{slug:`embat`,name:`Embat`,kind:`connection`,tagline:`Ask Embat about cash, debt, payments, and accounting.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Embat: cash, debt, payments, and accounting.`,mcp:{url:`https://tellme.embat.io/mcp`}}},{slug:`hugging-face`,name:`Hugging Face`,kind:`connection`,tagline:`Access the Hugging Face Hub and thousands of Gradio apps.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Hugging Face: models, datasets, Spaces, and Gradio apps on the Hub.`,mcp:{url:`https://huggingface.co/mcp?login&gradio=none`}}},{slug:`local-falcon`,name:`Local Falcon`,kind:`connection`,tagline:`AI visibility and local search intelligence.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Local Falcon: local search rankings and AI visibility reports.`,mcp:{url:`https://mcp.localfalcon.com`}}},{slug:`make`,name:`Make`,kind:`connection`,tagline:`Run Make scenarios and manage your Make account.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Make: run scenarios and manage automations.`,mcp:{url:`https://mcp.make.com`}}},{slug:`manufact`,name:`Manufact`,kind:`connection`,tagline:`Deploy and monitor MCP servers with Manufact.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Manufact: deploy and monitor MCP servers.`,mcp:{url:`https://mcp.manufact.com/mcp`}}},{slug:`mem0`,name:`Mem0`,kind:`connection`,tagline:`Persistent memory for AI agents and assistants.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Mem0: store and retrieve persistent agent memory.`,mcp:{url:`https://mcp.mem0.ai/mcp`}}},{slug:`miro`,name:`Miro`,kind:`connection`,tagline:`Access and create content on Miro boards.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Miro: read and create content on boards.`,mcp:{url:`https://mcp.miro.com/`}}},{slug:`mixpanel`,name:`Mixpanel`,kind:`connection`,tagline:`Analyze, query, and manage your Mixpanel data.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Mixpanel: analyze, query, and manage analytics data.`,mcp:{url:`https://mcp.mixpanel.com/mcp`}}},{slug:`netlify`,name:`Netlify`,kind:`connection`,tagline:`Create, deploy, manage, and secure websites on Netlify.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Netlify: create, deploy, manage, and secure sites.`,mcp:{url:`https://netlify-mcp.netlify.app/mcp`}}},{slug:`oreilly`,name:`O'Reilly`,kind:`connection`,tagline:`Discover O'Reilly's expert learning content.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`O'Reilly: search books, courses, and learning content.`,mcp:{url:`https://api.oreilly.com/api/content-discovery/v1/mcp/`}}},{slug:`planetscale`,name:`PlanetScale`,kind:`connection`,tagline:`Authenticated access to your PlanetScale Postgres and MySQL databases.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`PlanetScale: query Postgres and MySQL databases.`,mcp:{url:`https://mcp.pscale.dev/mcp/planetscale`}}},{slug:`posthog`,name:`PostHog`,kind:`connection`,tagline:`Query, analyze, and manage your PostHog insights.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`PostHog: insights, events, and feature flags.`,mcp:{url:`https://mcp.posthog.com/mcp`}}},{slug:`postman`,name:`Postman`,kind:`connection`,tagline:`Give API context to your coding agents with Postman.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Postman: APIs, collections, and workspaces.`,mcp:{url:`https://mcp.postman.com/minimal`}}},{slug:`razorpay`,name:`Razorpay`,kind:`connection`,tagline:`Razorpay payments, settlements, and dashboard data.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Razorpay: payments, settlements, and dashboard data.`,mcp:{url:`https://mcp.razorpay.com/mcp`}}},{slug:`sentry`,name:`Sentry`,kind:`connection`,tagline:`Search, query, and debug errors intelligently.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Sentry: search, query, and debug errors and issues.`,mcp:{url:`https://mcp.sentry.dev/mcp`}}},{slug:`similarweb`,name:`Similarweb`,kind:`connection`,tagline:`Real-time web, mobile app, and market data.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Similarweb: web traffic, app, and market intelligence data.`,mcp:{url:`https://mcp.similarweb.com`}}},{slug:`stripe`,name:`Stripe`,kind:`connection`,tagline:`Payment processing and financial infrastructure tools.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Stripe: payments, customers, billing, and financial infrastructure.`,mcp:{url:`https://mcp.stripe.com`}}},{slug:`supabase`,name:`Supabase`,kind:`connection`,tagline:`Manage databases, authentication, and storage.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Supabase: databases, authentication, and storage.`,mcp:{url:`https://mcp.supabase.com/mcp`}}},{slug:`ticket-tailor`,name:`Ticket Tailor`,kind:`connection`,tagline:`Manage tickets, orders, and events with Ticket Tailor.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Ticket Tailor: events, tickets, and orders.`,mcp:{url:`https://mcp.tickettailor.ai/mcp`}}},{slug:`ticktick`,name:`TickTick`,kind:`connection`,tagline:`Search, create, and manage your tasks and habits in TickTick.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`TickTick: tasks, habits, and lists.`,mcp:{url:`https://mcp.ticktick.com`}}},{slug:`todoist`,name:`Todoist`,kind:`connection`,tagline:`Search, complete, and manage your tasks in Todoist.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Todoist: search, complete, and manage tasks.`,mcp:{url:`https://ai.todoist.net/mcp`}}},{slug:`webflow`,name:`Webflow`,kind:`connection`,tagline:`Manage Webflow CMS, pages, assets, and sites.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Webflow: CMS items, pages, assets, and sites.`,mcp:{url:`https://mcp.webflow.com/mcp`}}},{slug:`wix`,name:`Wix`,kind:`connection`,tagline:`Manage and build sites and apps on Wix.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Wix: manage and build sites and apps.`,mcp:{url:`https://mcp.wix.com/mcp`}}},{slug:`zapier`,name:`Zapier`,kind:`connection`,tagline:`Automate workflows across thousands of apps.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Zapier: run and manage automations across apps.`,mcp:{url:`https://mcp.zapier.com/api/v1/connect`}}},{slug:`zomato`,name:`Zomato`,kind:`connection`,tagline:`Online food ordering and delivery through Zomato.`,surfaces:{scaffoldable:!1,gallery:!0},connection:{description:`Zomato: food ordering and delivery.`,mcp:{url:`https://mcp-server.zomato.com/mcp`}}}];new Map(INTEGRATIONS.map(e=>[e.slug,e]));function integrationsByKind(t){return INTEGRATIONS.filter(e=>e.kind===t)}function connectionEntries(){return integrationsByKind(`connection`)}function channelEntries(){return integrationsByKind(`channel`)}export{channelEntries,connectionEntries,connectionProtocols};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{extractErrorId,formatErrorHint}from"#internal/logging.js";import{splitDiscordMessageContent}from"#public/channels/discord/api.js";import{renderInputRequestComponents}from"#public/channels/discord/hitl.js";function defaultDiscordAuth(e){let t={channel_id:e.channelId,interaction_id:e.id,user_id:e.user.id,username:e.user.username};return e.guildId!==void 0&&(t.guild_id=e.guildId),e.member?.nick!==void 0&&(t.member_nick=e.member.nick),{attributes:t,authenticator:`discord-interaction`,issuer:e.guildId?`discord:${e.guildId}`:`discord`,principalId:e.guildId?`discord:${e.guildId}:${e.user.id}`:`discord:${e.user.id}`,principalType:e.user.isBot?`service`:`user`}}function defaultOnCommand(e,t){return{auth:defaultDiscordAuth(t)}}const defaultEvents={async"turn.started"(e,t,n){await t.discord.startTyping()},async"actions.requested"(e,t,n){await t.discord.startTyping()},async"input.requested"(e,t,i){for(let i of e.requests){let e=splitDiscordMessageContent(i.prompt)[0]??i.prompt;await t.discord.post({components:renderInputRequestComponents(i),content:e})}},async"message.completed"(e,t,n){e.finishReason===`tool-calls`||!e.message||await t.discord.post(e.message)},async"session.failed"(n,r){let i=formatErrorHint(n),a=extractErrorId(n.details);await r.discord.post([`This session could not recover from an error${i}.`,``,`Start a new command to continue.`,...a?[``,`Error id: ${a}`]:[]].join(`
|
|
1
|
+
import{extractErrorId,formatErrorHint}from"#internal/logging.js";import{splitDiscordMessageContent}from"#public/channels/discord/api.js";import{renderInputRequestComponents}from"#public/channels/discord/hitl.js";function defaultDiscordAuth(e){let t={channel_id:e.channelId,interaction_id:e.id,user_id:e.user.id,username:e.user.username};return e.guildId!==void 0&&(t.guild_id=e.guildId),e.member?.nick!==void 0&&(t.member_nick=e.member.nick),{attributes:t,authenticator:`discord-interaction`,issuer:e.guildId?`discord:${e.guildId}`:`discord`,principalId:e.guildId?`discord:${e.guildId}:${e.user.id}`:`discord:${e.user.id}`,principalType:e.user.isBot?`service`:`user`}}function defaultOnCommand(e,t){return{auth:defaultDiscordAuth(t)}}const defaultEvents={async"turn.started"(e,t,n){await t.discord.startTyping()},async"authorization.completed"(e,t,n){e.outcome===`authorized`&&await t.discord.startTyping()},async"actions.requested"(e,t,n){await t.discord.startTyping()},async"input.requested"(e,t,i){for(let i of e.requests){let e=splitDiscordMessageContent(i.prompt)[0]??i.prompt;await t.discord.post({components:renderInputRequestComponents(i),content:e})}},async"message.completed"(e,t,n){e.finishReason===`tool-calls`||!e.message||await t.discord.post(e.message)},async"session.failed"(n,r){let i=formatErrorHint(n),a=extractErrorId(n.details);await r.discord.post([`This session could not recover from an error${i}.`,``,`Start a new command to continue.`,...a?[``,`Error id: ${a}`]:[]].join(`
|
|
2
2
|
`))},async"turn.failed"(n,r,i){let a=formatErrorHint(n),o=extractErrorId(n.details);await r.discord.post([`I hit an error while handling your request${a}.`,``,`Please try again, rephrase, or reach out if it keeps failing.`,...o?[``,`Error id: ${o}`]:[]].join(`
|
|
3
3
|
`))}};export{defaultDiscordAuth,defaultEvents,defaultOnCommand};
|