niceeval 0.14.2 → 0.14.3-canary.53
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/INDEX.md +13 -6
- package/dist/agents/sdk-streams.cjs +6 -1
- package/dist/agents/sdk-streams.cjs.map +1 -1
- package/dist/agents/sdk-streams.d.cts +3 -2
- package/dist/agents/sdk-streams.d.mts +3 -2
- package/dist/agents/sdk-streams.d.ts +3 -2
- package/dist/agents/ui-message-stream.cjs +3 -1
- package/dist/agents/ui-message-stream.cjs.map +1 -1
- package/dist/experiment/host/cli/debug-protocol.cjs +257 -0
- package/dist/experiment/host/cli/debug-protocol.cjs.map +1 -0
- package/dist/experiment/host/cli/debug-protocol.d.cts +13 -0
- package/dist/experiment/host/cli/debug-protocol.d.mts +13 -0
- package/dist/experiment/host/cli/debug-protocol.d.ts +13 -0
- package/dist/experiment/host/cli/debug-protocol.js +8 -0
- package/dist/experiment/host/cli/debug-protocol.js.map +1 -0
- package/dist/experiment/host/cli/session-protocol.cjs +78 -0
- package/dist/experiment/host/cli/session-protocol.cjs.map +1 -0
- package/dist/experiment/host/cli/session-protocol.d.cts +10 -0
- package/dist/experiment/host/cli/session-protocol.d.mts +10 -0
- package/dist/experiment/host/cli/session-protocol.d.ts +10 -0
- package/dist/experiment/host/cli/session-protocol.js +12 -0
- package/dist/experiment/host/cli/session-protocol.js.map +1 -0
- package/dist/experiment/host/index.cjs +9 -1
- package/dist/experiment/host/index.cjs.map +1 -1
- package/dist/experiment/host/index.d.cts +2 -0
- package/dist/experiment/host/index.d.mts +2 -0
- package/dist/experiment/host/index.d.ts +2 -0
- package/dist/experiment/host/index.js +28 -16
- package/dist/experiment/host/index.mjs +28 -16
- package/dist/run/cli/contribution.cjs +5 -5
- package/dist/run/cli/contribution.cjs.map +1 -1
- package/dist/run/host/index.cjs +14 -3
- package/dist/run/host/index.cjs.map +1 -1
- package/dist/run/host/index.d.cts +2 -2
- package/dist/run/host/index.d.mts +2 -2
- package/dist/run/host/index.d.ts +2 -2
- package/dist/run/host/lifecycle-adapter.cjs +12 -12
- package/dist/run/host/lifecycle-adapter.cjs.map +1 -1
- package/dist/run/host/runtime.cjs +22 -22
- package/dist/run/host/runtime.cjs.map +1 -1
- package/dist/run/host/runtime.d.cts +11 -2
- package/dist/run/host/runtime.d.mts +11 -2
- package/dist/run/host/runtime.d.ts +11 -2
- package/dist/run/host/runtime.js +2 -2
- package/dist/run/host/types.cjs.map +1 -1
- package/dist/run/host/types.d.cts +4 -5
- package/dist/run/host/types.d.mts +4 -5
- package/dist/run/host/types.d.ts +4 -5
- package/dist/runner/assert-first-bridge.cjs +78 -3
- package/dist/runner/assert-first-bridge.cjs.map +1 -1
- package/dist/runner/assert-first-bridge.d.cts +11 -1
- package/dist/runner/assert-first-bridge.d.mts +11 -1
- package/dist/runner/assert-first-bridge.d.ts +11 -1
- package/dist/runner/attempt.cjs +77 -67
- package/dist/runner/attempt.cjs.map +1 -1
- package/dist/sandbox/backend.cjs.map +1 -1
- package/dist/sandbox/backend.d.cts +2 -2
- package/dist/sandbox/backend.d.mts +2 -2
- package/dist/sandbox/backend.d.ts +2 -2
- package/dist/sandbox/index.cjs.map +1 -1
- package/dist/sandbox/index.d.cts +1 -0
- package/dist/sandbox/index.d.mts +1 -0
- package/dist/sandbox/index.d.ts +1 -0
- package/dist/sandbox/layer.cjs.map +1 -1
- package/dist/sandbox/layer.d.cts +3 -3
- package/dist/sandbox/layer.d.mts +3 -3
- package/dist/sandbox/layer.d.ts +3 -3
- package/dist/sandbox/runtime.cjs.map +1 -1
- package/dist/sandbox/types.cjs.map +1 -1
- package/dist/sandbox/types.d.cts +2 -0
- package/dist/sandbox/types.d.mts +2 -0
- package/dist/sandbox/types.d.ts +2 -0
- package/dist/show/render.cjs +1 -0
- package/dist/show/render.cjs.map +1 -1
- package/dist/terminal/blocks.cjs +3 -5
- package/dist/terminal/blocks.cjs.map +1 -1
- package/dist/view/app-dist/.vite/manifest.json +3 -76
- package/dist/view/app-dist/assets/index-C6GQwHEF.js +63 -0
- package/dist/view/app-dist/assets/{quality-cost-scatter-B5wDa_F1.js → quality-cost-scatter-CSiMLelf.js} +5 -5
- package/dist/view/app-dist/index.html +1 -2
- package/dist/view/server.cjs +4 -3
- package/dist/view/server.cjs.map +1 -1
- package/docs-site/zh/README.md +2 -2
- package/docs-site/zh/tutorials/agent-feedback-loop.mdx +8 -5
- package/docs-site/zh/tutorials/agent-onboarding.mdx +5 -3
- package/package.json +1 -1
- package/dist/view/app-dist/assets/AttemptDialog-76dX1VQq.js +0 -41
- package/dist/view/app-dist/assets/AttemptRoute-DRHVh2JA.js +0 -4
- package/dist/view/app-dist/assets/ResultsPage-9CSI8dvZ.js +0 -2
- package/dist/view/app-dist/assets/RunPage-BUF0REv7.js +0 -1
- package/dist/view/app-dist/assets/TableContentView-_Sbg5wDr.js +0 -3
- package/dist/view/app-dist/assets/index-BGr_6pGY.js +0 -19
- package/dist/view/app-dist/assets/jsx-runtime-BnHLaUks.js +0 -1
- package/dist/view/app-dist/assets/useSuspenseQuery-D3W8Uy33.js +0 -1
package/dist/sandbox/layer.d.cts
CHANGED
|
@@ -2,7 +2,7 @@ import { Effect, Option, type Scope } from "effect";
|
|
|
2
2
|
import type { JsonValue } from "../shared/types.cjs";
|
|
3
3
|
import type { ScopedFeedback } from "../shared/types.cjs";
|
|
4
4
|
import type { MaterializedSandboxCase, SandboxMaterializeContext, SandboxResourceGroup, ServiceController } from "./case-types.cjs";
|
|
5
|
-
import type {
|
|
5
|
+
import type { CustomProviderSandbox, SandboxHook, SandboxRuntime } from "./types.cjs";
|
|
6
6
|
import type { SandboxCleanupCommand, SandboxCommand, SandboxCommandDeclaration } from "./commands.cjs";
|
|
7
7
|
import { type SandboxAction, type SandboxActionState, type SandboxAfterAction } from "./action.cjs";
|
|
8
8
|
import { type ComposeBuildCollection } from "./compose.cjs";
|
|
@@ -196,7 +196,7 @@ export interface CustomProviderSandboxOptions {
|
|
|
196
196
|
readonly targetPlatform: SandboxTargetPlatform;
|
|
197
197
|
readonly recommendedConcurrency?: number;
|
|
198
198
|
readonly exclusive?: boolean;
|
|
199
|
-
readonly create: (context: CustomProviderMaterializeContext) => Effect.Effect<
|
|
199
|
+
readonly create: (context: CustomProviderMaterializeContext) => Effect.Effect<CustomProviderSandbox, CustomSandboxMaterializationError>;
|
|
200
200
|
}
|
|
201
201
|
declare const CustomSandboxMaterializationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
202
202
|
readonly _tag: "CustomSandboxMaterializationError";
|
|
@@ -224,7 +224,7 @@ export type CustomCaseMaterializedServices = {
|
|
|
224
224
|
readonly value: ServiceController;
|
|
225
225
|
};
|
|
226
226
|
export interface CustomCaseMaterializeResult {
|
|
227
|
-
readonly sandbox:
|
|
227
|
+
readonly sandbox: CustomProviderSandbox;
|
|
228
228
|
readonly group: SandboxResourceGroup;
|
|
229
229
|
readonly services: CustomCaseMaterializedServices;
|
|
230
230
|
readonly facts: JsonValue;
|
package/dist/sandbox/layer.d.mts
CHANGED
|
@@ -2,7 +2,7 @@ import { Effect, Option, type Scope } from "effect";
|
|
|
2
2
|
import type { JsonValue } from "../shared/types.mjs";
|
|
3
3
|
import type { ScopedFeedback } from "../shared/types.mjs";
|
|
4
4
|
import type { MaterializedSandboxCase, SandboxMaterializeContext, SandboxResourceGroup, ServiceController } from "./case-types.mjs";
|
|
5
|
-
import type {
|
|
5
|
+
import type { CustomProviderSandbox, SandboxHook, SandboxRuntime } from "./types.mjs";
|
|
6
6
|
import type { SandboxCleanupCommand, SandboxCommand, SandboxCommandDeclaration } from "./commands.mjs";
|
|
7
7
|
import { type SandboxAction, type SandboxActionState, type SandboxAfterAction } from "./action.mjs";
|
|
8
8
|
import { type ComposeBuildCollection } from "./compose.mjs";
|
|
@@ -196,7 +196,7 @@ export interface CustomProviderSandboxOptions {
|
|
|
196
196
|
readonly targetPlatform: SandboxTargetPlatform;
|
|
197
197
|
readonly recommendedConcurrency?: number;
|
|
198
198
|
readonly exclusive?: boolean;
|
|
199
|
-
readonly create: (context: CustomProviderMaterializeContext) => Effect.Effect<
|
|
199
|
+
readonly create: (context: CustomProviderMaterializeContext) => Effect.Effect<CustomProviderSandbox, CustomSandboxMaterializationError>;
|
|
200
200
|
}
|
|
201
201
|
declare const CustomSandboxMaterializationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
202
202
|
readonly _tag: "CustomSandboxMaterializationError";
|
|
@@ -224,7 +224,7 @@ export type CustomCaseMaterializedServices = {
|
|
|
224
224
|
readonly value: ServiceController;
|
|
225
225
|
};
|
|
226
226
|
export interface CustomCaseMaterializeResult {
|
|
227
|
-
readonly sandbox:
|
|
227
|
+
readonly sandbox: CustomProviderSandbox;
|
|
228
228
|
readonly group: SandboxResourceGroup;
|
|
229
229
|
readonly services: CustomCaseMaterializedServices;
|
|
230
230
|
readonly facts: JsonValue;
|
package/dist/sandbox/layer.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Effect, Option, type Scope } from "effect";
|
|
|
2
2
|
import type { JsonValue } from "../shared/types.js";
|
|
3
3
|
import type { ScopedFeedback } from "../shared/types.js";
|
|
4
4
|
import type { MaterializedSandboxCase, SandboxMaterializeContext, SandboxResourceGroup, ServiceController } from "./case-types.js";
|
|
5
|
-
import type {
|
|
5
|
+
import type { CustomProviderSandbox, SandboxHook, SandboxRuntime } from "./types.js";
|
|
6
6
|
import type { SandboxCleanupCommand, SandboxCommand, SandboxCommandDeclaration } from "./commands.js";
|
|
7
7
|
import { type SandboxAction, type SandboxActionState, type SandboxAfterAction } from "./action.js";
|
|
8
8
|
import { type ComposeBuildCollection } from "./compose.js";
|
|
@@ -196,7 +196,7 @@ export interface CustomProviderSandboxOptions {
|
|
|
196
196
|
readonly targetPlatform: SandboxTargetPlatform;
|
|
197
197
|
readonly recommendedConcurrency?: number;
|
|
198
198
|
readonly exclusive?: boolean;
|
|
199
|
-
readonly create: (context: CustomProviderMaterializeContext) => Effect.Effect<
|
|
199
|
+
readonly create: (context: CustomProviderMaterializeContext) => Effect.Effect<CustomProviderSandbox, CustomSandboxMaterializationError>;
|
|
200
200
|
}
|
|
201
201
|
declare const CustomSandboxMaterializationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
202
202
|
readonly _tag: "CustomSandboxMaterializationError";
|
|
@@ -224,7 +224,7 @@ export type CustomCaseMaterializedServices = {
|
|
|
224
224
|
readonly value: ServiceController;
|
|
225
225
|
};
|
|
226
226
|
export interface CustomCaseMaterializeResult {
|
|
227
|
-
readonly sandbox:
|
|
227
|
+
readonly sandbox: CustomProviderSandbox;
|
|
228
228
|
readonly group: SandboxResourceGroup;
|
|
229
229
|
readonly services: CustomCaseMaterializedServices;
|
|
230
230
|
readonly facts: JsonValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["runtime.ts"],"names":[],"mappings":"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","sourcesContent":["// ProviderModule 的唯一运行入口:core 只调用 plan 私绑的闭包,不解释 adapter 名或 JSON runtime input。\nimport { randomUUID } from \"node:crypto\";\nimport { relative, sep } from \"node:path\";\nimport { Data, Effect, Option, Scope } from \"effect\";\nimport type { ProvisionSlot } from \"./retry.ts\";\nimport { withProvisionRetry } from \"./retry.ts\";\nimport type { MaterializedSandboxCase, SandboxResourceGroup, ServiceController, } from \"./case-types.ts\";\nimport { collectComposeBuilds, composeCollectionIdentity, dockerComposeBuildProvider, materializeDockerComposeProviderCase, normalizeBuildPlatform, } from \"./compose.ts\";\nimport { collectDockerfileBuildFromIdentity, dockerfileBuildProvider, packDockerfileBuildContext, } from \"./dockerfile-build.ts\";\nimport { DockerfileAgentImageCoordinator, isDockerfileAgentCacheSafeInstaller, type DockerfileAgentCacheRequest, type DockerfileAgentDerivedImageBuildInput, } from \"./dockerfile-agent-cache.ts\";\nimport type { SandboxBuildProvider, SandboxBuildWork } from \"./build-coordinator.ts\";\nimport { customSandboxBackend, providerBoundaryEffect, type SandboxProviderBackend, } from \"./backend.ts\";\nimport { normalizeSandboxPaths } from \"./paths.ts\";\nimport { registerSandbox, unregisterSandbox } from \"./registry.ts\";\nimport { currentRunIdentity } from \"./run-identity.ts\";\nimport { sandboxProviderBindingOf, type SandboxProviderBinding, type CustomCaseProviderPlan, type CustomCaseMaterializeResult, type CustomCaseSandboxOptions, type CustomCaseServices, type CustomProviderPlan, type CustomProviderSandboxOptions, type DockerComposeProviderPlan, type DockerfileProviderPlan, type DockerImageProviderPlan, type E2BProviderPlan, type SandboxProviderCapabilities, type SandboxProviderLifetime, type SandboxProviderPlan, type SandboxRuntimeDeadlineDeclaration, type VercelProviderPlan, } from \"./layer.ts\";\nimport { digestOf, isPureDataIdentity, type BuildKey } from \"./identity.ts\";\nimport type { LinkedRunPlan } from \"./plan.ts\";\nimport { ArtifactPrepareCoordinator, platformKey, runAgentEnsure } from \"../agents/provisioner.ts\";\nimport { CLEANUP_TIMEOUT_MS, cleanupCallback } from \"../runner/cleanup-timeout.ts\";\nimport type { JsonValue, Sandbox, SandboxHook, SandboxHookContext, ScopedFeedback } from \"../types.ts\";\nimport type { AgentIdentity, SandboxAgent } from \"../agents/types.ts\";\nimport type { DockerSandbox } from \"./docker.ts\";\nimport type { E2BSandboxLifetime } from \"./e2b.ts\";\nimport { acquireDockerProfileReservation, acquireDockerProfileReservationEffect, createDockerProfileBuild, createDockerProfileContainer, createDockerProfileLease, lookupDockerProfileBuild, releaseDockerProfileReservation, type DockerProfileLease, type DockerProfileRuntimeBinding, } from \"./docker-profile/runtime.ts\";\nexport type SandboxRuntimeDeadline = SandboxRuntimeDeadlineDeclaration;\n/** Stable public reason for an Attempt that has reached a provider admission queue. */\nexport type SandboxRuntimeQueueReason = \"provider-capacity\";\nexport interface SandboxRuntimeAdmission {\n readonly queued: (reason: SandboxRuntimeQueueReason) => Effect.Effect<void>;\n readonly granted: Effect.Effect<void>;\n readonly slot?: ProvisionSlot;\n}\n/** Scope 退出时的唯一释放协议;不以 optional callback 或 boolean 表达所有权。 */\nexport type SandboxRuntimeRelease = {\n readonly _tag: \"Stop\";\n} | {\n readonly _tag: \"Managed\";\n readonly run: (owned: MaterializedSandboxCase) => Effect.Effect<void>;\n};\nexport interface SandboxRuntimeMaterializeInput {\n readonly plan: Extract<LinkedRunPlan, {\n readonly _tag: \"Sandbox\";\n }>;\n readonly evalId: string;\n readonly deadline: SandboxRuntimeDeadline;\n readonly feedback: ScopedFeedback;\n readonly signal: AbortSignal;\n /** 物理实例 hook 的完成态上下文;由 fresh attempt 或 reuse pool 在创建边界绑定。 */\n readonly hookContext: SandboxHookContext;\n readonly buildLocators: ReadonlyMap<BuildKey, JsonValue>;\n /** Committed provider-native setup artifact selected by the Run-level coordinator. */\n readonly setupPrefixArtifact?: JsonValue;\n readonly provisionSlot: {\n readonly _tag: \"Detached\";\n } | {\n readonly _tag: \"Bound\";\n readonly value: ProvisionSlot;\n };\n /** Runner projection of provider admission. Detached physical owners remain valid. */\n readonly admission: {\n readonly _tag: \"Detached\";\n } | {\n readonly _tag: \"Bound\";\n readonly value: SandboxRuntimeAdmission;\n };\n readonly services: SandboxRuntimeServices;\n /** Internal runner input; only Dockerfile provider consumes the staged cache opt-in. */\n readonly agent?: SandboxAgent;\n /** Invocation-level timing tree for derived Dockerfile Agent image lookup/build. */\n readonly runTiming?: import(\"../runner/timing.ts\").RunTimingRecorder;\n readonly release: SandboxRuntimeRelease;\n}\n/** ProviderModule 闭包收到的完整上下文;公开 plan 只提供中性 identity/scheduling 元数据。 */\nexport type SandboxRuntimeMaterializeContext = Omit<SandboxRuntimeMaterializeInput, \"release\">;\nexport type SandboxRuntimeServices = {\n readonly _tag: \"Live\";\n} | {\n readonly _tag: \"Test\";\n readonly materializeCompose: typeof materializeDockerComposeProviderCase;\n};\nexport const liveSandboxRuntimeServices: SandboxRuntimeServices = Object.freeze({ _tag: \"Live\" });\nconst dockerfileAgentImageCoordinator = new DockerfileAgentImageCoordinator({\n imageExists: defaultDockerImageExists,\n});\nexport interface SandboxRuntimeCapabilities {\n readonly provider: string;\n readonly schedulingLane: string;\n readonly admission: \"Shared\" | \"Exclusive\";\n readonly retention: SandboxProviderCapabilities[\"retention\"];\n readonly reuse: SandboxProviderCapabilities[\"reuse\"];\n readonly setupPrefix: SandboxProviderCapabilities[\"setupPrefix\"];\n readonly sessionLimit: SandboxProviderCapabilities[\"sessionLimit\"];\n}\nexport interface SandboxRuntimeBuildPreparation {\n readonly works: readonly SandboxBuildWork[];\n readonly provider: SandboxBuildProvider;\n}\nexport class SandboxRuntimeMaterializationError extends Data.TaggedError(\"SandboxRuntimeMaterializationError\")<{\n readonly code: \"sandbox.provider-binding-missing\" | \"sandbox.build-input-drift\" | \"sandbox.build-locator-missing\" | \"sandbox.materialization-failed\";\n readonly provider: string;\n readonly message: string;\n readonly cause: Error;\n}> {\n}\nfunction runtimeFailure(context: SandboxRuntimeMaterializeContext, code: SandboxRuntimeMaterializationError[\"code\"], cause: unknown): SandboxRuntimeMaterializationError {\n const error = cause instanceof Error ? cause : new Error(String(cause));\n return new SandboxRuntimeMaterializationError({\n code,\n provider: context.plan.providerPlan.provider,\n message: error.message,\n cause: error,\n });\n}\nfunction buildFailure(plan: SandboxProviderPlan, code: SandboxRuntimeMaterializationError[\"code\"], cause: unknown): SandboxRuntimeMaterializationError {\n const error = cause instanceof Error ? cause : new Error(String(cause));\n return new SandboxRuntimeMaterializationError({\n code,\n provider: plan.provider,\n message: error.message,\n cause: error,\n });\n}\nfunction providerBinding(plan: Extract<LinkedRunPlan, {\n readonly _tag: \"Sandbox\";\n}>): Effect.Effect<SandboxProviderBinding, SandboxRuntimeMaterializationError> {\n const binding = sandboxProviderBindingOf(plan.providerPlan);\n return Option.match(binding, {\n onNone: () => Effect.fail(new SandboxRuntimeMaterializationError({\n code: \"sandbox.provider-binding-missing\",\n provider: plan.providerPlan.provider,\n message: `Sandbox provider plan ${JSON.stringify(plan.providerPlan.provider)} was not created by its bound ProviderModule.`,\n cause: new Error(\"provider module binding missing\"),\n })),\n onSome: Effect.succeed,\n });\n}\nfunction deadlineOptions(deadline: SandboxRuntimeDeadline): {\n readonly timeout?: number;\n readonly deadlineAt?: number;\n} {\n return deadline._tag === \"Unlimited\"\n ? {}\n : { timeout: deadline.timeoutMs, deadlineAt: deadline.deadlineAt };\n}\nfunction configuredLifetime(value: SandboxProviderLifetime): number | undefined {\n return value._tag === \"Configured\" ? value.milliseconds : undefined;\n}\nfunction managedContainerSession(binding: DockerProfileRuntimeBinding, resources: Readonly<import(\"./layer.ts\").DockerSandboxResources>, context: SandboxRuntimeMaterializeContext): Effect.Effect<{\n readonly lease: DockerProfileLease;\n readonly reservation: import(\"./docker-profile/runtime.ts\").DockerProfileReservation;\n readonly labels: Readonly<Record<string, string>>;\n readonly replaceReservation: Effect.Effect<import(\"./docker-profile/runtime.ts\").DockerProfileReservation, Error>;\n readonly finish: () => Promise<void>;\n}, Error, Scope.Scope> {\n return Effect.gen(function* () {\n const scope = yield* Effect.scope;\n const lease = yield* Effect.acquireRelease(providerBoundaryEffect(() => createDockerProfileLease(binding)), (owned) => providerBoundaryEffect(() => owned.stopHeartbeat()).pipe(Effect.orDie));\n const requestedResources = {\n cpus: resources.cpus ?? 0,\n memoryBytes: resources.memoryBytes ?? 0,\n pids: resources.pidsLimit ?? 0,\n ephemeralDiskBytes: resources.dockerDataBytes ?? 0,\n containers: 1,\n } as const;\n const admission = dockerProfileAdmission(context);\n let owner = yield* acquireDockerProfileReservationEffect(lease, \"container\", requestedResources, admission, context.signal);\n const replaceReservation = Effect.uninterruptibleMask((restore) => Effect.gen(function* () {\n // The host must scrub/retire the current slot before another private slot can\n // be granted. Release is uninterruptible; the new scoped acquisition remains\n // interruptible while queued and owns its finalizer before it can be observed.\n yield* providerBoundaryEffect(() => owner.release());\n const replacement = yield* restore(acquireDockerProfileReservationEffect(lease, \"container\", requestedResources, admission, context.signal).pipe(Effect.provideService(Scope.Scope, scope)));\n owner = replacement;\n return replacement.reservation;\n }));\n return {\n lease,\n get reservation() { return owner.reservation; },\n get labels() {\n return Object.freeze({\n \"niceeval.profile-id\": binding.profile.profileId,\n \"niceeval.invocation-id\": lease.invocationId,\n \"niceeval.reservation-id\": owner.reservation.reservationId,\n \"niceeval.provision-token\": owner.reservation.provisionToken,\n });\n },\n replaceReservation,\n finish: async () => {\n // Do not stop the heartbeat here: cancellation can land after a new\n // owner registered its Scope finalizer but before the mutable current\n // pointer advances. Scope closes every reservation owner (newest first)\n // and only then runs the older lease finalizer.\n await owner.release();\n },\n };\n });\n}\n/**\n * E2B 的 SDK 默认 TTL 不是 attempt 时限的一个来源。bounded attempt 在创建时必须把\n * deadline 加收尾预留写进 provider;作者另有声明时,它是上限承诺而不是可被静默加长的 hint。\n */\nexport function e2bLifetimeRequest(lifetime: SandboxProviderLifetime, deadline: SandboxRuntimeDeadline): E2BSandboxLifetime {\n const declared = configuredLifetime(lifetime);\n if (deadline._tag === \"Unlimited\") {\n return declared === undefined\n ? { _tag: \"ProviderDefault\" }\n : { _tag: \"Requested\", milliseconds: declared, source: \"explicit\" };\n }\n const required = deadline.timeoutMs + CLEANUP_TIMEOUT_MS;\n if (declared !== undefined) {\n if (declared < required) {\n throw new Error(`e2bSandbox lifetimeMs=${declared}ms is shorter than this attempt's required ${required}ms ` +\n `(timeoutMs=${deadline.timeoutMs}ms plus cleanup reserve ${CLEANUP_TIMEOUT_MS}ms). ` +\n \"Increase lifetimeMs or lower timeoutMs; niceeval will not silently lengthen a declared sandbox lifetime.\");\n }\n return { _tag: \"Requested\", milliseconds: declared, source: \"explicit\" };\n }\n return { _tag: \"Requested\", milliseconds: required, source: \"attempt-deadline\" };\n}\nfunction boundProvisionSlot(context: SandboxRuntimeMaterializeContext): ProvisionSlot | undefined {\n return context.provisionSlot._tag === \"Bound\" ? context.provisionSlot.value : undefined;\n}\nfunction boundAdmission(context: SandboxRuntimeMaterializeContext): SandboxRuntimeAdmission | undefined {\n return context.admission._tag === \"Bound\" ? context.admission.value : undefined;\n}\nfunction admitImmediately(context: SandboxRuntimeMaterializeContext): Effect.Effect<void> {\n return boundAdmission(context)?.granted ?? Effect.void;\n}\nfunction dockerProfileAdmission(context: SandboxRuntimeMaterializeContext): import(\"./docker-profile/runtime.ts\").DockerProfileReservationAdmission {\n const admission = boundAdmission(context);\n return {\n queued: admission?.queued(\"provider-capacity\") ?? Effect.void,\n granted: admission?.granted ?? Effect.void,\n ...(admission?.slot === undefined ? {} : { slot: admission.slot }),\n };\n}\nfunction wrapSingleSandbox(backend: SandboxProviderBackend, context: SandboxRuntimeMaterializeContext, facts: JsonValue): MaterializedSandboxCase {\n const provider = context.plan.providerPlan.provider;\n const sandbox = normalizeSandboxPaths(backend, provider);\n registerSandbox(sandbox);\n let stopped = false;\n let stopping: Promise<void> | undefined;\n const group: SandboxResourceGroup = {\n get primary() {\n return { sandboxId: backend.sandboxId, provider };\n },\n get resources() {\n return { kind: \"single\", provider, sandboxId: backend.sandboxId };\n },\n async stop() {\n if (stopped)\n return;\n if (stopping !== undefined)\n return stopping;\n const pending = (async () => {\n // runtime 的 finalizer 通过 providerBoundaryEffect(group.stop) 执行这条 provider Promise;\n // 不要从内部反向启动 Sandbox 的外层运行时。\n await backend.stop();\n stopped = true;\n unregisterSandbox(sandbox);\n })();\n stopping = pending;\n try {\n await pending;\n }\n finally {\n // stop 失败回到 Open,保留 registry 所有权;成功则进入不可逆的 Stopped。\n if (stopping === pending)\n stopping = undefined;\n }\n },\n };\n return Object.freeze({\n sandbox,\n authorBackend: backend,\n group,\n caseKind: context.plan.providerPlan.caseKind,\n caseKey: context.plan.providerPlan.build.caseKey,\n buildKeys: context.plan.providerPlan.build.buildKeys,\n identity: context.plan.providerPlan.identity,\n facts,\n });\n}\nfunction normalizeMaterialized(materialized: MaterializedSandboxCase, context: SandboxRuntimeMaterializeContext): MaterializedSandboxCase {\n const sandbox = normalizeSandboxPaths(customSandboxBackend(materialized.sandbox), context.plan.providerPlan.provider);\n registerSandbox(sandbox);\n let stopped = false;\n let stopping: Promise<void> | undefined;\n const group: SandboxResourceGroup = {\n get primary() {\n return {\n ...materialized.group.primary,\n sandboxId: sandbox.sandboxId,\n };\n },\n get resources() {\n return materialized.group.resources;\n },\n ...(materialized.group.entry === undefined ? {} : { entry: materialized.group.entry }),\n async stop() {\n if (stopped)\n return;\n if (stopping !== undefined)\n return stopping;\n const pending = (async () => {\n await materialized.group.stop();\n stopped = true;\n unregisterSandbox(sandbox);\n })();\n stopping = pending;\n try {\n await pending;\n }\n finally {\n // 失败回 Open 并保留 registry 所有权,让同轮强清或 orphan 恢复链真正重试。\n if (stopping === pending)\n stopping = undefined;\n }\n },\n };\n return Object.freeze({ ...materialized, sandbox, group });\n}\nfunction materializationEffect<R>(context: SandboxRuntimeMaterializeContext, acquire: Effect.Effect<MaterializedSandboxCase, unknown, R>): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, R> {\n return acquire.pipe(Effect.mapError((cause) => runtimeFailure(context, \"sandbox.materialization-failed\", cause)));\n}\nexport function materializeDockerComposeProviderPlan(plan: DockerComposeProviderPlan, context: SandboxRuntimeMaterializeContext): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, Scope.Scope> {\n const materialize = context.services._tag === \"Live\"\n ? materializeDockerComposeProviderCase\n : context.services.materializeCompose;\n return materializationEffect(context, Effect.andThen(admitImmediately(context), materialize({\n evalId: context.evalId,\n profile: context.evalId,\n mainService: plan.workspaceService,\n ...(plan.user._tag === \"Configured\" ? { user: plan.user.value } : {}),\n env: plan.env,\n pathPrepend: plan.pathPrepend,\n collection: plan.collection,\n caseKey: context.plan.providerPlan.build.caseKey,\n identity: context.plan.providerPlan.identity,\n }, {\n ctx: {\n evalId: context.evalId,\n profile: context.evalId,\n signal: context.signal,\n buildLocators: context.buildLocators,\n },\n ...deadlineOptions(context.deadline),\n feedback: context.feedback,\n provisionSlot: boundProvisionSlot(context),\n lifetimeMs: configuredLifetime(plan.lifetime),\n }).pipe(Effect.map((materialized) => normalizeMaterialized(materialized, context)))));\n}\nexport function materializeDockerfileProviderPlan(plan: DockerfileProviderPlan, context: SandboxRuntimeMaterializeContext): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, Scope.Scope> {\n return Option.match(Option.fromNullishOr(context.buildLocators.get(plan.buildKey)), {\n onNone: () => Effect.fail(runtimeFailure(context, \"sandbox.build-locator-missing\", new Error(`Dockerfile build ${plan.buildKey} has no prepared locator.`))),\n onSome: (locator) => typeof locator !== \"string\"\n ? Effect.fail(runtimeFailure(context, \"sandbox.materialization-failed\", new TypeError(`Dockerfile build locator for ${plan.buildKey} must be a string.`)))\n : Effect.andThen(plan.profileBinding === undefined ? admitImmediately(context) : Effect.void, Effect.flatMap(resolveDockerfileAgentImage(plan, context, locator).pipe(Effect.mapError((cause) => runtimeFailure(context, \"sandbox.materialization-failed\", cause))), (resolved) => materializationEffect(context, Effect.gen(function* () {\n const { DockerSandbox, classifyProvisionError, reconcileProvision } = yield* providerBoundaryEffect(() => __niceevalDynamicImport(\"./docker.cjs\"));\n const managed = plan.profileBinding === undefined\n ? undefined\n : yield* managedContainerSession(plan.profileBinding!, plan.resources, context);\n const provisionToken = managed?.reservation.provisionToken ?? randomUUID();\n return yield* Effect.gen(function* () {\n const createOptions: Parameters<typeof DockerSandbox.create>[0] = {\n ...deadlineOptions(context.deadline),\n runtime: \"node24\",\n image: resolved.locator,\n ...(plan.user._tag === \"Configured\" ? { user: plan.user.value } : {}),\n privileged: plan.privileged,\n ...(plan.dockerAccess === undefined ? {} : { dockerAccess: plan.dockerAccess }),\n resources: plan.resources,\n ...(plan.readiness === undefined ? {} : { readiness: plan.readiness }),\n lifetimeMs: configuredLifetime(plan.lifetime),\n pathPrepend: plan.pathPrepend,\n feedback: context.feedback,\n provisionToken,\n runIdentity: currentRunIdentity(),\n ...(plan.profileBinding === undefined ? {} : {\n dockerSocketPath: plan.profileBinding.dockerSocketPath,\n ...(plan.profileBinding.profile.policy.level === \"managed-rootless/v1\"\n ? { dns: plan.profileBinding.profile.policy.network.dns.servers }\n : {}),\n managedLabels: managed?.labels,\n rootlessAttestation: {\n daemonId: plan.profileBinding.daemonId,\n dataRoot: plan.profileBinding.profile.backend.filesystem.dockerRootDir,\n },\n profileSetupPrefix: {\n lease: managed!.lease,\n currentReservation: () => managed!.reservation,\n replaceReservation: managed!.replaceReservation,\n },\n afterStop: managed?.finish,\n }),\n };\n const backend = yield* withProvisionRetry(managed === undefined\n ? DockerSandbox.createEffect(createOptions)\n : providerBoundaryEffect(() => DockerSandbox.createControlled(createOptions, (create, signal) => createDockerProfileContainer(managed.lease, managed.reservation.reservationId, { ...create, attemptId: context.evalId }, signal))), classifyProvisionError, boundProvisionSlot(context), context.feedback, managed === undefined\n ? providerBoundaryEffect(() => reconcileProvision(provisionToken, plan.profileBinding?.dockerSocketPath))\n : Effect.void);\n return wrapSingleSandbox(backend, context, { image: resolved.locator });\n }).pipe(Effect.onError(() => managed === undefined\n ? Effect.void\n : providerBoundaryEffect(() => managed.finish()).pipe(Effect.ignore)));\n })))),\n });\n}\nfunction defaultDockerImageExists(locator: string): Effect.Effect<boolean> {\n // dockerode 是 optional peer;只在 Dockerfile Agent 缓存路径真查镜像时加载。\n // 缺少 peer、daemon 不可用和镜像不存在在此 lookup 的语义里都只是 cache miss。\n return providerBoundaryEffect(async () => {\n const { default: Docker } = await __niceevalDynamicImport(\"dockerode\");\n await new Docker().getImage(locator).inspect();\n return true;\n }).pipe(Effect.catch(() => Effect.succeed(false)));\n}\nfunction resolveDockerfileAgentImage(plan: DockerfileProviderPlan, context: SandboxRuntimeMaterializeContext, taskLocator: string): Effect.Effect<{\n readonly status: \"hit\" | \"built\" | \"unsupported\";\n readonly locator: string;\n}, Error> {\n // Derived Agent image coordination is still bound to the default Docker endpoint.\n // A profile Dockerfile must never cross daemons, so consume the task image directly.\n if (plan.profileBinding !== undefined || plan.dockerAccess !== undefined) {\n return Effect.succeed({ status: \"unsupported\", locator: taskLocator });\n }\n const request = dockerfileAgentCacheRequest(plan, context.agent, taskLocator, context.plan.providerPlan.target.platform);\n if (request === undefined)\n return Effect.succeed({ status: \"unsupported\", locator: taskLocator });\n return dockerfileAgentImageCoordinator.resolve(request, context.signal, (input, signal) => buildDockerfileAgentImage(input, request, context.plan.providerPlan.target.platform, signal), context.runTiming);\n}\nfunction dockerfileAgentCacheRequest(plan: DockerfileProviderPlan, agent: SandboxAgent | undefined, taskLocator: string, targetPlatform: import(\"../agents/types.ts\").AgentArtifactPlatform): DockerfileAgentCacheRequest | undefined {\n if (agent === undefined || agent.ensure.length !== 1)\n return undefined;\n const ensure = agent.ensure[0];\n if (ensure === undefined)\n return undefined;\n const installer = agent.installers.find((candidate) => candidate.installMode === \"staged\" &&\n isDockerfileAgentCacheSafeInstaller(candidate) &&\n sameAgentIdentity(candidate.identity, ensure.identity));\n if (installer === undefined)\n return undefined;\n return {\n taskLocator,\n platform: `${plan.platform}|${platformKey(targetPlatform)}`,\n ensure,\n installer,\n };\n}\nfunction sameAgentIdentity(a: AgentIdentity, b: AgentIdentity): boolean {\n return a.agent === b.agent && a.version === b.version && a.revision === b.revision;\n}\nfunction buildDockerfileAgentImage(input: DockerfileAgentDerivedImageBuildInput, request: DockerfileAgentCacheRequest, targetPlatform: import(\"../agents/types.ts\").AgentArtifactPlatform, signal: AbortSignal): Effect.Effect<void, Error> {\n return buildDockerfileAgentImageWithServices(input, request, targetPlatform, signal);\n}\nexport interface DockerfileAgentImageProvisionSandbox {\n readonly operations: import(\"./types.ts\").SandboxOperations & Pick<import(\"./types.ts\").Sandbox, \"sandboxId\">;\n readonly sandboxId: string;\n stop(): Promise<void>;\n}\nexport interface DockerfileAgentImageProvisionServices {\n readonly create: (taskLocator: string) => Effect.Effect<DockerfileAgentImageProvisionSandbox, Error>;\n readonly commit: (sandboxId: string, derivedLocator: string) => Effect.Effect<void, Error>;\n}\nconst liveDockerfileAgentImageProvisionServices: DockerfileAgentImageProvisionServices = Object.freeze({\n create: (taskLocator: string) => providerBoundaryEffect(async () => {\n const { DockerSandbox } = await __niceevalDynamicImport(\"./docker.cjs\");\n const sandbox = await DockerSandbox.create({ image: taskLocator, runtime: \"node24\" });\n return { operations: sandbox, sandboxId: sandbox.sandboxId, stop: () => sandbox.stop() };\n }),\n commit: (sandboxId: string, derivedLocator: string) => providerBoundaryEffect(async () => {\n // dockerode 是 optional peer;commit 派生镜像时才加载(与 keep/orphans 同模式)。\n const { default: Docker } = await __niceevalDynamicImport(\"dockerode\");\n await new Docker().getContainer(sandboxId).commit(dockerCommitReference(derivedLocator));\n }),\n});\n/** Dockerode 的 commit 参数把仓库与 tag 分开;不能把 `repo:tag` 整串塞进 repo。 */\nexport function dockerCommitReference(locator: string): {\n readonly repo: string;\n readonly tag?: string;\n} {\n const slash = locator.lastIndexOf(\"/\");\n const colon = locator.lastIndexOf(\":\");\n if (colon > slash) {\n return { repo: locator.slice(0, colon), tag: locator.slice(colon + 1) };\n }\n return { repo: locator };\n}\nexport function buildDockerfileAgentImageWithServices(input: DockerfileAgentDerivedImageBuildInput, request: DockerfileAgentCacheRequest, targetPlatform: import(\"../agents/types.ts\").AgentArtifactPlatform, signal: AbortSignal, services: DockerfileAgentImageProvisionServices = liveDockerfileAgentImageProvisionServices): Effect.Effect<void, Error> {\n return Effect.scoped(Effect.gen(function* () {\n // AbortSignal 属于外层 invocation 的中断语义;绝不伪造为一个 typed provisioning error。\n if (signal.aborted)\n return yield* Effect.interrupt;\n const provisioned = yield* Effect.acquireRelease(services.create(input.taskLocator), \n // acquireRelease finalizer 必须是 never-fail。这里仍尝试真实 stop;它失败时保留原有\n // build cause,而不是在 cleanup 路径把 interruption/defect 改写成 typed failure。\n (sandbox) => providerBoundaryEffect(() => sandbox.stop()).pipe(Effect.catch(() => Effect.void)));\n yield* runAgentEnsure([request.ensure], [request.installer], provisioned.operations, {\n coordinator: Option.some(new ArtifactPrepareCoordinator()),\n targetPlatform,\n signal,\n progress: () => { },\n });\n yield* services.commit(provisioned.sandboxId, input.derivedLocator);\n }));\n}\nexport function materializeDockerImageProviderPlan(plan: DockerImageProviderPlan, context: SandboxRuntimeMaterializeContext): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, Scope.Scope> {\n return materializationEffect(context, Effect.gen(function* () {\n if (plan.profileBinding === undefined)\n yield* admitImmediately(context);\n const { DockerSandbox, classifyProvisionError, reconcileProvision } = yield* providerBoundaryEffect(() => __niceevalDynamicImport(\"./docker.cjs\"));\n const managed = plan.profileBinding === undefined\n ? undefined\n : yield* managedContainerSession(plan.profileBinding!, plan.resources, context);\n const provisionToken = managed?.reservation.provisionToken ?? randomUUID();\n return yield* Effect.gen(function* () {\n const createOptions: Parameters<typeof DockerSandbox.create>[0] = {\n ...deadlineOptions(context.deadline),\n runtime: \"node24\",\n image: plan.image,\n ...(plan.user._tag === \"Configured\" ? { user: plan.user.value } : {}),\n privileged: plan.privileged,\n ...(plan.dockerAccess === undefined ? {} : { dockerAccess: plan.dockerAccess }),\n resources: plan.resources,\n ...(plan.readiness === undefined ? {} : { readiness: plan.readiness }),\n lifetimeMs: configuredLifetime(plan.lifetime),\n pathPrepend: plan.pathPrepend,\n feedback: context.feedback,\n provisionToken,\n runIdentity: currentRunIdentity(),\n ...(plan.profileBinding === undefined ? {} : {\n dockerSocketPath: plan.profileBinding.dockerSocketPath,\n ...(plan.profileBinding.profile.policy.level === \"managed-rootless/v1\"\n ? { dns: plan.profileBinding.profile.policy.network.dns.servers }\n : {}),\n managedLabels: managed?.labels,\n rootlessAttestation: {\n daemonId: plan.profileBinding.daemonId,\n dataRoot: plan.profileBinding.profile.backend.filesystem.dockerRootDir,\n },\n profileSetupPrefix: {\n lease: managed!.lease,\n currentReservation: () => managed!.reservation,\n replaceReservation: managed!.replaceReservation,\n },\n afterStop: managed?.finish,\n }),\n };\n const backend = yield* withProvisionRetry(managed === undefined\n ? DockerSandbox.createEffect(createOptions)\n : providerBoundaryEffect(() => DockerSandbox.createControlled(createOptions, (create, signal) => createDockerProfileContainer(managed.lease, managed.reservation.reservationId, { ...create, attemptId: context.evalId }, signal))), classifyProvisionError, boundProvisionSlot(context), context.feedback, managed === undefined\n ? providerBoundaryEffect(() => reconcileProvision(provisionToken, plan.profileBinding?.dockerSocketPath))\n : Effect.void);\n return wrapSingleSandbox(backend, context, { image: plan.image });\n }).pipe(Effect.onError(() => managed === undefined\n ? Effect.void\n : providerBoundaryEffect(() => managed.finish()).pipe(Effect.ignore)));\n }));\n}\nexport function materializeE2BProviderPlan(plan: E2BProviderPlan, context: SandboxRuntimeMaterializeContext): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError> {\n return materializationEffect(context, Effect.gen(function* () {\n yield* admitImmediately(context);\n const lifetime = e2bLifetimeRequest(plan.lifetime, context.deadline);\n const { E2BSandbox, classifyProvisionError, reconcileProvision } = yield* providerBoundaryEffect(() => __niceevalDynamicImport(\"./e2b.cjs\"));\n const provisionToken = randomUUID();\n const backend = yield* withProvisionRetry(providerBoundaryEffect(() => E2BSandbox.create({\n ...deadlineOptions(context.deadline),\n runtime: \"node24\",\n template: plan.template,\n ...(plan.user._tag === \"Configured\" ? { user: plan.user.value } : {}),\n lifetime,\n pathPrepend: plan.pathPrepend,\n provisionToken,\n runIdentity: currentRunIdentity(),\n })), classifyProvisionError, boundProvisionSlot(context), context.feedback, providerBoundaryEffect(() => reconcileProvision(provisionToken)));\n return wrapSingleSandbox(backend, context, { template: plan.template });\n }));\n}\nexport function materializeVercelProviderPlan(plan: VercelProviderPlan, context: SandboxRuntimeMaterializeContext): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError> {\n return materializationEffect(context, Effect.gen(function* () {\n yield* admitImmediately(context);\n const { VercelSandbox, classifyProvisionError } = yield* providerBoundaryEffect(() => __niceevalDynamicImport(\"./vercel.cjs\"));\n const backend = yield* withProvisionRetry(providerBoundaryEffect(() => VercelSandbox.create({\n ...deadlineOptions(context.deadline),\n runtime: \"node24\",\n snapshotId: plan.snapshotId,\n lifetimeMs: configuredLifetime(plan.lifetime),\n pathPrepend: plan.pathPrepend,\n feedback: context.feedback,\n })), classifyProvisionError, boundProvisionSlot(context), context.feedback);\n return wrapSingleSandbox(backend, context, { snapshotId: plan.snapshotId });\n }));\n}\nexport function materializeCustomProviderPlan(plan: CustomProviderPlan, context: SandboxRuntimeMaterializeContext, create: CustomProviderSandboxOptions[\"create\"]): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError> {\n return Effect.flatMap(Effect.andThen(admitImmediately(context), create({ deadline: context.deadline, runtime: \"node24\", feedback: context.feedback })).pipe(Effect.mapError((cause) => runtimeFailure(context, \"sandbox.materialization-failed\", cause))), (sandbox) => Effect.try({\n try: () => wrapSingleSandbox(customSandboxBackend(sandbox), context, { provider: plan.name }),\n catch: (cause) => runtimeFailure(context, \"sandbox.materialization-failed\", cause),\n }).pipe(\n // create 已经交出真实资源,但 acquireRelease 只有在本 Effect 成功后才会登记 finalizer。\n // facade 归一化若在这个窄窗口失败,必须原地 stop,不能让裸资源逃出 Scope。\n Effect.tapError(() => Effect.tryPromise({\n try: () => sandbox.stop(),\n catch: () => undefined,\n }).pipe(Effect.ignore))));\n}\nexport function materializeCustomCaseProviderPlan(plan: CustomCaseProviderPlan, context: SandboxRuntimeMaterializeContext, materialize: CustomCaseSandboxOptions[\"materialize\"]): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError> {\n return Effect.flatMap(Effect.andThen(admitImmediately(context), materialize({\n evalId: context.evalId,\n profile: context.evalId,\n signal: context.signal,\n buildLocators: context.buildLocators,\n })).pipe(Effect.mapError((cause) => runtimeFailure(context, \"sandbox.materialization-failed\", cause))), (rawResult) => Effect.try({\n try: () => {\n const result = validateCustomCaseMaterializeResult(rawResult, plan.services);\n return normalizeMaterialized({\n sandbox: result.sandbox,\n // 自定义 case 的显式适配点:author 返回的公共 Sandbox 在这里降成 provider backend,\n // 供 attempt-scope author facade 使用;resource facade 仍由 normalizeMaterialized 归一。\n authorBackend: customSandboxBackend(result.sandbox),\n ...(result.services._tag === \"Available\" ? { services: result.services.value } : {}),\n group: result.group,\n caseKind: \"custom\",\n caseKey: context.plan.providerPlan.build.caseKey,\n buildKeys: context.plan.providerPlan.build.buildKeys,\n identity: context.plan.providerPlan.identity,\n facts: result.facts,\n }, context);\n },\n catch: (cause) => runtimeFailure(context, \"sandbox.materialization-failed\", cause),\n }).pipe(Effect.catch((failure) => Effect.andThen(stopInvalidCustomCaseResult(rawResult), Effect.fail(failure)))));\n}\nfunction validateCustomCaseMaterializeResult(value: unknown, declaredServices: CustomCaseServices): CustomCaseMaterializeResult {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n throw new TypeError(\"defineSandboxCase materialize() must return an object\");\n }\n const result = value as globalThis.Record<string, unknown>;\n const extra = Object.keys(result).filter((key) => key !== \"sandbox\" && key !== \"group\" && key !== \"services\" && key !== \"facts\");\n if (extra.length > 0) {\n throw new TypeError(`defineSandboxCase materialize() returned unsupported field(s): ${extra.join(\", \")}`);\n }\n if (result.sandbox === null || typeof result.sandbox !== \"object\") {\n throw new TypeError(\"defineSandboxCase materialize() must return sandbox\");\n }\n const group = validateCustomCaseResourceGroup(result.group);\n const services = validateCustomCaseServices(result.services, declaredServices);\n if (!isPureDataIdentity(result.facts)) {\n throw new TypeError(\"defineSandboxCase materialize() facts must be pure JSON data\");\n }\n return {\n sandbox: result.sandbox as Sandbox,\n group,\n services,\n facts: result.facts,\n };\n}\nfunction validateCustomCaseResourceGroup(value: unknown): SandboxResourceGroup {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n throw new TypeError(\"defineSandboxCase materialize() must return group\");\n }\n const group = value as globalThis.Record<string, unknown>;\n const extra = Object.keys(group).filter((key) => key !== \"primary\" && key !== \"resources\" && key !== \"stop\");\n if (extra.length > 0) {\n throw new TypeError(`defineSandboxCase materialize() group returned unsupported field(s): ${extra.join(\", \")}`);\n }\n if (group.primary === null || typeof group.primary !== \"object\" || Array.isArray(group.primary)) {\n throw new TypeError(\"defineSandboxCase materialize() group.primary must be a SandboxLocator\");\n }\n const primary = group.primary as globalThis.Record<string, unknown>;\n if (typeof primary.sandboxId !== \"string\" || primary.sandboxId.length === 0) {\n throw new TypeError(\"defineSandboxCase materialize() group.primary.sandboxId must be a non-empty string\");\n }\n if (primary.provider !== undefined && typeof primary.provider !== \"string\") {\n throw new TypeError(\"defineSandboxCase materialize() group.primary.provider must be a string\");\n }\n if (!isPureDataIdentity(group.resources)) {\n throw new TypeError(\"defineSandboxCase materialize() group.resources must be pure JSON data\");\n }\n if (typeof group.stop !== \"function\") {\n throw new TypeError(\"defineSandboxCase materialize() group.stop must be a function\");\n }\n return value as SandboxResourceGroup;\n}\nfunction validateCustomCaseServices(value: unknown, declared: CustomCaseServices): CustomCaseMaterializeResult[\"services\"] {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n throw new TypeError(\"defineSandboxCase materialize() services must be a tagged value\");\n }\n const services = value as globalThis.Record<string, unknown>;\n if (services._tag === \"None\") {\n if (Object.keys(services).some((key) => key !== \"_tag\")) {\n throw new TypeError('defineSandboxCase materialize() services \"None\" cannot contain a value');\n }\n if (declared._tag === \"Supported\") {\n throw new TypeError('defineSandboxCase declared services \"Supported\" but materialize() returned \"None\"');\n }\n return { _tag: \"None\" };\n }\n if (services._tag !== \"Available\") {\n throw new TypeError('defineSandboxCase materialize() services must be { _tag: \"None\" } or { _tag: \"Available\", value }');\n }\n if (Object.keys(services).some((key) => key !== \"_tag\" && key !== \"value\")) {\n throw new TypeError('defineSandboxCase materialize() services \"Available\" has unsupported fields');\n }\n if (declared._tag === \"Unsupported\") {\n throw new TypeError('defineSandboxCase declared services \"Unsupported\" but materialize() returned \"Available\"');\n }\n if (services.value === null || typeof services.value !== \"object\") {\n throw new TypeError('defineSandboxCase materialize() services \"Available\" needs a ServiceController');\n }\n const controller = services.value as globalThis.Record<string, unknown>;\n if (typeof controller.exec !== \"function\" ||\n typeof controller.collectLogs !== \"function\" ||\n typeof controller.stop !== \"function\") {\n throw new TypeError('defineSandboxCase materialize() services \"Available\" needs exec, collectLogs, and stop functions');\n }\n return { _tag: \"Available\", value: services.value as ServiceController };\n}\nfunction stopInvalidCustomCaseResult(value: unknown): Effect.Effect<void> {\n if (value === null || typeof value !== \"object\")\n return Effect.void;\n const group = (value as globalThis.Record<string, unknown>).group;\n if (group === null || typeof group !== \"object\")\n return Effect.void;\n const stop = (group as globalThis.Record<string, unknown>).stop;\n if (typeof stop !== \"function\")\n return Effect.void;\n return Effect.tryPromise({\n try: async () => {\n await stop.call(group);\n },\n catch: () => undefined,\n }).pipe(Effect.ignore);\n}\nexport function collectDockerComposeProviderBuildPreparation(plan: DockerComposeProviderPlan, published: SandboxProviderPlan, evalId: string): Effect.Effect<Option.Option<SandboxRuntimeBuildPreparation>, SandboxRuntimeMaterializationError> {\n return Effect.gen(function* () {\n const file = plan.file._tag === \"Url\" ? new URL(plan.file.value) : plan.file.value;\n const collection = yield* collectComposeBuilds({\n file,\n mainService: plan.workspaceService,\n platform: plan.collection.platform,\n env: plan.env,\n }).pipe(Effect.mapError((cause) => buildFailure(published, \"sandbox.build-input-drift\", cause)));\n return yield* Effect.try({\n try: () => {\n assertSameBuildKeys(plan.collection.buildKeys, collection.buildKeys, \"Compose\");\n if (digestOf(composeCollectionIdentity(plan.collection)) !== digestOf(composeCollectionIdentity(collection))) {\n throw new Error(\"Compose case inputs changed after physical planning. Restart the Run to plan the new inputs.\");\n }\n return Option.some({\n works: collection.works,\n provider: dockerComposeBuildProvider({ env: plan.env }),\n });\n },\n catch: (cause) => buildFailure(published, \"sandbox.build-input-drift\", cause),\n });\n });\n}\nexport function collectDockerfileProviderBuildPreparation(plan: DockerfileProviderPlan, published: SandboxProviderPlan, evalId: string): Effect.Effect<Option.Option<SandboxRuntimeBuildPreparation>, SandboxRuntimeMaterializationError> {\n return Effect.gen(function* () {\n const collection = yield* collectDockerfileBuildFromIdentity({\n provider: \"docker\",\n profile: evalId,\n context: plan.context,\n dockerfile: plan.dockerfile,\n buildArgs: plan.buildArgs,\n ...(plan.target === undefined ? {} : { target: plan.target }),\n platform: plan.platform,\n expected: plan.build,\n ...(plan.profileBinding === undefined ? {} : { dockerSocketPath: plan.profileBinding.dockerSocketPath }),\n }).pipe(Effect.mapError((cause) => buildFailure(published, \"sandbox.build-input-drift\", cause)));\n return yield* Effect.try({\n try: () => {\n if (collection.buildKey !== plan.buildKey) {\n throw new Error(\"Dockerfile build inputs changed after physical planning. Restart the Run to plan the new inputs.\");\n }\n const provider = dockerfileBuildProvider([collection]);\n const managedSource = (locator: string, source: \"cache\" | \"build\") => ({\n locator,\n source,\n acquireUse: async () => ({ locator, release() { } }),\n release() { },\n });\n const managedProvider: SandboxBuildProvider = plan.profileBinding === undefined ? provider : {\n async lookup(work) {\n const result = await lookupDockerProfileBuild(plan.profileBinding!, work.buildKey);\n return result.hit\n ? { _tag: \"Hit\", source: managedSource(result.locator, \"cache\") }\n : { _tag: \"Miss\" };\n },\n async build(work, buildContext) {\n const lease = await createDockerProfileLease(plan.profileBinding!);\n let reservation: import(\"./docker-profile/runtime.ts\").DockerProfileReservation | undefined;\n try {\n reservation = await acquireDockerProfileReservation(lease, \"build\", {\n cpus: 0, memoryBytes: 0, pids: 0, containers: 0, ephemeralDiskBytes: 0,\n }, buildContext.signal);\n const dockerfile = relative(collection.details.contextDir, collection.details.dockerfilePath)\n .split(sep).join(\"/\");\n const result = await createDockerProfileBuild(lease, reservation.reservationId, {\n buildKey: work.buildKey,\n platform: collection.details.platform,\n dockerfile,\n ...(collection.details.buildArgs === undefined ? {} : { buildArgs: collection.details.buildArgs }),\n ...(collection.details.target === undefined ? {} : { target: collection.details.target }),\n }, packDockerfileBuildContext(collection.details), buildContext.signal);\n await releaseDockerProfileReservation(lease, reservation.reservationId);\n reservation = undefined;\n return managedSource(result.locator, \"build\");\n }\n finally {\n if (reservation !== undefined) {\n await releaseDockerProfileReservation(lease, reservation.reservationId).catch(() => undefined);\n }\n await lease.stopHeartbeat().catch(() => undefined);\n }\n },\n };\n return Option.some({\n works: [collection.work],\n provider: managedProvider,\n });\n },\n catch: (cause) => buildFailure(published, \"sandbox.build-input-drift\", cause),\n });\n });\n}\nfunction assertSameBuildKeys(planned: readonly string[], collected: readonly string[], label: string): void {\n const expected = [...planned].sort();\n const actual = [...collected].sort();\n if (expected.length === actual.length && expected.every((key, index) => key === actual[index]))\n return;\n throw new Error(`${label} build inputs changed after physical planning; planned ${expected.join(\", \") || \"none\"}, ` +\n `collected ${actual.join(\", \") || \"none\"}. Restart the Run to plan the new inputs.`);\n}\n/** Public hook callbacks are an outer Promise boundary; runtime composition stays Effect-native. */\nfunction runSetupHooks(hooks: readonly SandboxHook[], sandbox: Sandbox, context: SandboxHookContext): Effect.Effect<void, unknown> {\n return Effect.forEach(hooks, (hook) => Effect.tryPromise({\n try: () => Promise.resolve(hook(sandbox, context)),\n catch: (cause) => cause,\n }), { discard: true });\n}\n/** Teardown remains LIFO and diagnostic-only, but a teardown defect cannot skip the case finalizer. */\nfunction runTeardownHooks(hooks: readonly SandboxHook[], sandbox: Sandbox, context: SandboxHookContext): Effect.Effect<void> {\n return Effect.forEach([...hooks].reverse(), (hook) => {\n const cleanupContext = { ...context, signal: AbortSignal.timeout(CLEANUP_TIMEOUT_MS) };\n return cleanupCallback(() => hook(sandbox, cleanupContext)).pipe(Effect.catch((cause) => Effect.sync(() => {\n context.diagnostic({\n code: \"sandbox-teardown-failed\",\n level: \"warning\",\n message: cause instanceof Error ? cause.message : String(cause),\n });\n })));\n }, { discard: true });\n}\nconst activatedSandboxPluginCounts = new WeakMap<object, number>();\nfunction runSandboxPluginSetups(input: SandboxRuntimeMaterializeInput, owned: MaterializedSandboxCase): Effect.Effect<void, unknown> {\n return Effect.forEach(input.plan.pair.pluginLifecycles, (entry, index) => {\n activatedSandboxPluginCounts.set(owned, index + 1);\n const setup = entry.lifecycle.setup;\n if (setup === undefined)\n return Effect.void;\n return Effect.tryPromise({\n try: () => Promise.resolve((setup as (sandbox: Sandbox, context: SandboxHookContext) => void | Promise<void>)(owned.sandbox, input.hookContext)),\n catch: (cause) => cause,\n });\n }, { discard: true });\n}\nfunction runSandboxPluginTeardowns(input: SandboxRuntimeMaterializeInput, owned: MaterializedSandboxCase): Effect.Effect<void> {\n const count = activatedSandboxPluginCounts.get(owned) ?? 0;\n return Effect.forEach(input.plan.pair.pluginLifecycles.slice(0, count).reverse(), (entry) => {\n const teardown = entry.lifecycle.teardown;\n if (teardown === undefined)\n return Effect.void;\n const cleanupContext = { ...input.hookContext, signal: AbortSignal.timeout(CLEANUP_TIMEOUT_MS) };\n return cleanupCallback(() => (teardown as (sandbox: Sandbox, context: SandboxHookContext) => void | Promise<void>)(owned.sandbox, cleanupContext)).pipe(Effect.catch((cause) => Effect.sync(() => input.feedback.diagnostic({\n code: \"plugin-lifecycle-teardown-failed\",\n level: \"warning\",\n message: cause instanceof Error ? cause.message : String(cause),\n }))));\n }, { discard: true });\n}\nfunction reportReleaseFailure(input: SandboxRuntimeMaterializeInput, owned: MaterializedSandboxCase, cause: Error): Effect.Effect<void> {\n return Effect.sync(() => {\n const resources = owned.group.resources;\n const projectName = resources !== null && typeof resources === \"object\" && !Array.isArray(resources) &&\n typeof (resources as globalThis.Record<string, JsonValue>).projectName === \"string\"\n ? (resources as globalThis.Record<string, JsonValue>).projectName as string\n : undefined;\n input.feedback.diagnostic({\n code: \"sandbox-stop-failed\",\n level: \"warning\",\n message: `Sandbox ${owned.sandbox.sandboxId} provider cleanup failed: ${cause.message}.` +\n (projectName === undefined\n ? \"\"\n : ` Compose project ${projectName} remains recoverable with \\`niceeval sandbox list --orphans\\` / \\`niceeval sandbox prune\\`.`),\n data: {\n provider: input.plan.providerPlan.provider,\n sandboxId: owned.sandbox.sandboxId,\n ...(projectName !== undefined ? { projectName } : {}),\n },\n dedupeKey: projectName === undefined\n ? `sandbox-stop-failed:${owned.sandbox.sandboxId}`\n : `sandbox-stop-failed:${projectName}`,\n });\n });\n}\nfunction releaseOwned(input: SandboxRuntimeMaterializeInput, owned: MaterializedSandboxCase): Effect.Effect<void> {\n const release = input.release._tag === \"Stop\"\n ? providerBoundaryEffect(() => owned.group.stop())\n : input.release.run(owned);\n // catchAll only handles the provider's typed failure. Defects and interruption remain in their\n // original Cause, while ensuring guarantees the resource group release even if a hook defects.\n const releaseWithDiagnostic = release.pipe(Effect.catch((cause) => reportReleaseFailure(input, owned, cause)));\n return runSandboxPluginTeardowns(input, owned).pipe(Effect.andThen(runTeardownHooks(input.plan.pair.teardownHooks, owned.sandbox, input.hookContext)), Effect.ensuring(releaseWithDiagnostic));\n}\nfunction sortedBuildKeys(keys: Iterable<BuildKey>): readonly BuildKey[] {\n return Object.freeze([...keys].sort());\n}\n/** 动态 locator 只负责把已规划 BuildKey 绑定到产物;不能在物化时改写 physical plan。 */\nfunction verifyBuildLocators(context: SandboxRuntimeMaterializeContext): Effect.Effect<void, SandboxRuntimeMaterializationError> {\n const planned = sortedBuildKeys(context.plan.providerPlan.build.buildKeys);\n const provided = sortedBuildKeys(context.buildLocators.keys());\n const missing = planned.filter((key) => !context.buildLocators.has(key));\n if (missing.length > 0) {\n return Effect.fail(runtimeFailure(context, \"sandbox.build-locator-missing\", new Error(`Missing build locators for planned BuildKey(s): ${missing.join(\", \")}`)));\n }\n if (planned.length !== provided.length || planned.some((key, index) => key !== provided[index])) {\n return Effect.fail(runtimeFailure(context, \"sandbox.build-input-drift\", new Error(\"Runtime build locator keys differ from the physical plan.\")));\n }\n return Effect.void;\n}\n/** Provider 产物是动态边界;出来即核验,不能把新的 CaseKey / BuildKey 带入领域态。 */\nfunction verifyMaterializedIdentity(context: SandboxRuntimeMaterializeContext, owned: MaterializedSandboxCase): Effect.Effect<void, SandboxRuntimeMaterializationError> {\n const planned = context.plan.providerPlan.build;\n const actualKeys = sortedBuildKeys(owned.buildKeys);\n const plannedKeys = sortedBuildKeys(planned.buildKeys);\n if (owned.caseKey !== planned.caseKey ||\n actualKeys.length !== plannedKeys.length ||\n plannedKeys.some((key, index) => key !== actualKeys[index])) {\n return Effect.fail(runtimeFailure(context, \"sandbox.build-input-drift\", new Error(\"Materialized CaseKey or BuildKey set differs from the physical plan.\")));\n }\n return Effect.void;\n}\n/** Base acquisition only. Scope exit still owns release; author/plugin preparation is a separate boundary. */\nexport function acquireSandboxRunPlan(input: SandboxRuntimeMaterializeInput): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, Scope.Scope> {\n const context: SandboxRuntimeMaterializeContext = {\n plan: input.plan,\n evalId: input.evalId,\n deadline: input.deadline,\n feedback: input.feedback,\n signal: input.signal,\n hookContext: input.hookContext,\n buildLocators: input.buildLocators,\n ...(input.setupPrefixArtifact === undefined ? {} : { setupPrefixArtifact: input.setupPrefixArtifact }),\n provisionSlot: input.provisionSlot,\n admission: input.admission,\n services: input.services,\n ...(input.agent !== undefined ? { agent: input.agent } : {}),\n ...(input.runTiming !== undefined ? { runTiming: input.runTiming } : {}),\n };\n return Effect.andThen(verifyBuildLocators(context), Effect.flatMap(providerBinding(input.plan), (binding) => {\n const acquire = binding.materialize(context);\n const release = (owned: MaterializedSandboxCase) => releaseOwned(input, owned);\n // Profile admission registers its reservation owner before queueing. Its\n // queue/reacquire segment must remain interruptible so an Attempt deadline\n // can release a granted reservation while scheduler permits are unavailable.\n // Other providers keep the conservative uninterruptible acquisition gate.\n let acquired: MaterializedSandboxCase | undefined;\n const owned = binding.interruptibleAcquisition\n ? Effect.acquireRelease(acquire.pipe(Effect.tap((value) => Effect.sync(() => { acquired = value; }))), () => acquired === undefined ? Effect.void : release(acquired))\n : Effect.acquireRelease(acquire, release);\n return owned.pipe(Effect.tap((value) => verifyMaterializedIdentity(context, value)));\n }));\n}\n/** Legacy author/plugin lifecycle is an opaque preparation barrier outside provider admission. */\nexport function prepareMaterializedSandboxRunPlan(input: SandboxRuntimeMaterializeInput, owned: MaterializedSandboxCase): Effect.Effect<void, SandboxRuntimeMaterializationError> {\n const context: SandboxRuntimeMaterializeContext = {\n plan: input.plan,\n evalId: input.evalId,\n deadline: input.deadline,\n feedback: input.feedback,\n signal: input.signal,\n hookContext: input.hookContext,\n buildLocators: input.buildLocators,\n ...(input.setupPrefixArtifact === undefined ? {} : { setupPrefixArtifact: input.setupPrefixArtifact }),\n provisionSlot: input.provisionSlot,\n admission: input.admission,\n services: input.services,\n ...(input.agent !== undefined ? { agent: input.agent } : {}),\n ...(input.runTiming !== undefined ? { runTiming: input.runTiming } : {}),\n };\n return runSetupHooks(input.plan.pair.setupHooks, owned.sandbox, input.hookContext).pipe(Effect.andThen(runSandboxPluginSetups(input, owned)), Effect.mapError((cause) => runtimeFailure(context, \"sandbox.materialization-failed\", cause)));\n}\n/** Compatibility entry for physical-instance owners that still acquire and prepare as one Effect. */\nexport function materializeSandboxRunPlan(input: SandboxRuntimeMaterializeInput): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, Scope.Scope> {\n return acquireSandboxRunPlan(input).pipe(Effect.tap((owned) => prepareMaterializedSandboxRunPlan(input, owned)));\n}\n/** Build preparation 同样只调用 private binding,不按 provider/module id 分支。 */\nexport function collectSandboxRuntimeBuildPreparation(plan: Extract<LinkedRunPlan, {\n readonly _tag: \"Sandbox\";\n}>, evalId: string): Effect.Effect<Option.Option<SandboxRuntimeBuildPreparation>, SandboxRuntimeMaterializationError> {\n return Effect.flatMap(providerBinding(plan), (binding) => binding.collectBuildPreparation(evalId));\n}\n/** 调度能力来自完成态 ProviderModule binding;core 不从 provider 名推导。 */\nexport function sandboxRuntimeCapabilities(plan: Extract<LinkedRunPlan, {\n readonly _tag: \"Sandbox\";\n}>): SandboxRuntimeCapabilities {\n const capabilities = plan.providerPlan.capabilities;\n return Object.freeze({\n provider: plan.providerPlan.provider,\n schedulingLane: plan.providerPlan.scheduling.lane.key,\n admission: plan.providerPlan.scheduling.admission._tag,\n retention: capabilities.retention,\n reuse: capabilities.reuse,\n setupPrefix: capabilities.setupPrefix,\n sessionLimit: capabilities.sessionLimit,\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["runtime.ts"],"names":[],"mappings":"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","sourcesContent":["// ProviderModule 的唯一运行入口:core 只调用 plan 私绑的闭包,不解释 adapter 名或 JSON runtime input。\nimport { randomUUID } from \"node:crypto\";\nimport { relative, sep } from \"node:path\";\nimport { Data, Effect, Option, Scope } from \"effect\";\nimport type { ProvisionSlot } from \"./retry.ts\";\nimport { withProvisionRetry } from \"./retry.ts\";\nimport type { MaterializedSandboxCase, SandboxResourceGroup, ServiceController, } from \"./case-types.ts\";\nimport { collectComposeBuilds, composeCollectionIdentity, dockerComposeBuildProvider, materializeDockerComposeProviderCase, normalizeBuildPlatform, } from \"./compose.ts\";\nimport { collectDockerfileBuildFromIdentity, dockerfileBuildProvider, packDockerfileBuildContext, } from \"./dockerfile-build.ts\";\nimport { DockerfileAgentImageCoordinator, isDockerfileAgentCacheSafeInstaller, type DockerfileAgentCacheRequest, type DockerfileAgentDerivedImageBuildInput, } from \"./dockerfile-agent-cache.ts\";\nimport type { SandboxBuildProvider, SandboxBuildWork } from \"./build-coordinator.ts\";\nimport { customSandboxBackend, providerBoundaryEffect, type SandboxProviderBackend, } from \"./backend.ts\";\nimport { normalizeSandboxPaths } from \"./paths.ts\";\nimport { registerSandbox, unregisterSandbox } from \"./registry.ts\";\nimport { currentRunIdentity } from \"./run-identity.ts\";\nimport { sandboxProviderBindingOf, type SandboxProviderBinding, type CustomCaseProviderPlan, type CustomCaseMaterializeResult, type CustomCaseSandboxOptions, type CustomCaseServices, type CustomProviderPlan, type CustomProviderSandboxOptions, type DockerComposeProviderPlan, type DockerfileProviderPlan, type DockerImageProviderPlan, type E2BProviderPlan, type SandboxProviderCapabilities, type SandboxProviderLifetime, type SandboxProviderPlan, type SandboxRuntimeDeadlineDeclaration, type VercelProviderPlan, } from \"./layer.ts\";\nimport { digestOf, isPureDataIdentity, type BuildKey } from \"./identity.ts\";\nimport type { LinkedRunPlan } from \"./plan.ts\";\nimport { ArtifactPrepareCoordinator, platformKey, runAgentEnsure } from \"../agents/provisioner.ts\";\nimport { CLEANUP_TIMEOUT_MS, cleanupCallback } from \"../runner/cleanup-timeout.ts\";\nimport type { JsonValue, Sandbox, SandboxHook, SandboxHookContext, ScopedFeedback } from \"../types.ts\";\nimport type { CustomProviderSandbox } from \"./types.ts\";\nimport type { AgentIdentity, SandboxAgent } from \"../agents/types.ts\";\nimport type { DockerSandbox } from \"./docker.ts\";\nimport type { E2BSandboxLifetime } from \"./e2b.ts\";\nimport { acquireDockerProfileReservation, acquireDockerProfileReservationEffect, createDockerProfileBuild, createDockerProfileContainer, createDockerProfileLease, lookupDockerProfileBuild, releaseDockerProfileReservation, type DockerProfileLease, type DockerProfileRuntimeBinding, } from \"./docker-profile/runtime.ts\";\nexport type SandboxRuntimeDeadline = SandboxRuntimeDeadlineDeclaration;\n/** Stable public reason for an Attempt that has reached a provider admission queue. */\nexport type SandboxRuntimeQueueReason = \"provider-capacity\";\nexport interface SandboxRuntimeAdmission {\n readonly queued: (reason: SandboxRuntimeQueueReason) => Effect.Effect<void>;\n readonly granted: Effect.Effect<void>;\n readonly slot?: ProvisionSlot;\n}\n/** Scope 退出时的唯一释放协议;不以 optional callback 或 boolean 表达所有权。 */\nexport type SandboxRuntimeRelease = {\n readonly _tag: \"Stop\";\n} | {\n readonly _tag: \"Managed\";\n readonly run: (owned: MaterializedSandboxCase) => Effect.Effect<void>;\n};\nexport interface SandboxRuntimeMaterializeInput {\n readonly plan: Extract<LinkedRunPlan, {\n readonly _tag: \"Sandbox\";\n }>;\n readonly evalId: string;\n readonly deadline: SandboxRuntimeDeadline;\n readonly feedback: ScopedFeedback;\n readonly signal: AbortSignal;\n /** 物理实例 hook 的完成态上下文;由 fresh attempt 或 reuse pool 在创建边界绑定。 */\n readonly hookContext: SandboxHookContext;\n readonly buildLocators: ReadonlyMap<BuildKey, JsonValue>;\n /** Committed provider-native setup artifact selected by the Run-level coordinator. */\n readonly setupPrefixArtifact?: JsonValue;\n readonly provisionSlot: {\n readonly _tag: \"Detached\";\n } | {\n readonly _tag: \"Bound\";\n readonly value: ProvisionSlot;\n };\n /** Runner projection of provider admission. Detached physical owners remain valid. */\n readonly admission: {\n readonly _tag: \"Detached\";\n } | {\n readonly _tag: \"Bound\";\n readonly value: SandboxRuntimeAdmission;\n };\n readonly services: SandboxRuntimeServices;\n /** Internal runner input; only Dockerfile provider consumes the staged cache opt-in. */\n readonly agent?: SandboxAgent;\n /** Invocation-level timing tree for derived Dockerfile Agent image lookup/build. */\n readonly runTiming?: import(\"../runner/timing.ts\").RunTimingRecorder;\n readonly release: SandboxRuntimeRelease;\n}\n/** ProviderModule 闭包收到的完整上下文;公开 plan 只提供中性 identity/scheduling 元数据。 */\nexport type SandboxRuntimeMaterializeContext = Omit<SandboxRuntimeMaterializeInput, \"release\">;\nexport type SandboxRuntimeServices = {\n readonly _tag: \"Live\";\n} | {\n readonly _tag: \"Test\";\n readonly materializeCompose: typeof materializeDockerComposeProviderCase;\n};\nexport const liveSandboxRuntimeServices: SandboxRuntimeServices = Object.freeze({ _tag: \"Live\" });\nconst dockerfileAgentImageCoordinator = new DockerfileAgentImageCoordinator({\n imageExists: defaultDockerImageExists,\n});\nexport interface SandboxRuntimeCapabilities {\n readonly provider: string;\n readonly schedulingLane: string;\n readonly admission: \"Shared\" | \"Exclusive\";\n readonly retention: SandboxProviderCapabilities[\"retention\"];\n readonly reuse: SandboxProviderCapabilities[\"reuse\"];\n readonly setupPrefix: SandboxProviderCapabilities[\"setupPrefix\"];\n readonly sessionLimit: SandboxProviderCapabilities[\"sessionLimit\"];\n}\nexport interface SandboxRuntimeBuildPreparation {\n readonly works: readonly SandboxBuildWork[];\n readonly provider: SandboxBuildProvider;\n}\nexport class SandboxRuntimeMaterializationError extends Data.TaggedError(\"SandboxRuntimeMaterializationError\")<{\n readonly code: \"sandbox.provider-binding-missing\" | \"sandbox.build-input-drift\" | \"sandbox.build-locator-missing\" | \"sandbox.materialization-failed\";\n readonly provider: string;\n readonly message: string;\n readonly cause: Error;\n}> {\n}\nfunction runtimeFailure(context: SandboxRuntimeMaterializeContext, code: SandboxRuntimeMaterializationError[\"code\"], cause: unknown): SandboxRuntimeMaterializationError {\n const error = cause instanceof Error ? cause : new Error(String(cause));\n return new SandboxRuntimeMaterializationError({\n code,\n provider: context.plan.providerPlan.provider,\n message: error.message,\n cause: error,\n });\n}\nfunction buildFailure(plan: SandboxProviderPlan, code: SandboxRuntimeMaterializationError[\"code\"], cause: unknown): SandboxRuntimeMaterializationError {\n const error = cause instanceof Error ? cause : new Error(String(cause));\n return new SandboxRuntimeMaterializationError({\n code,\n provider: plan.provider,\n message: error.message,\n cause: error,\n });\n}\nfunction providerBinding(plan: Extract<LinkedRunPlan, {\n readonly _tag: \"Sandbox\";\n}>): Effect.Effect<SandboxProviderBinding, SandboxRuntimeMaterializationError> {\n const binding = sandboxProviderBindingOf(plan.providerPlan);\n return Option.match(binding, {\n onNone: () => Effect.fail(new SandboxRuntimeMaterializationError({\n code: \"sandbox.provider-binding-missing\",\n provider: plan.providerPlan.provider,\n message: `Sandbox provider plan ${JSON.stringify(plan.providerPlan.provider)} was not created by its bound ProviderModule.`,\n cause: new Error(\"provider module binding missing\"),\n })),\n onSome: Effect.succeed,\n });\n}\nfunction deadlineOptions(deadline: SandboxRuntimeDeadline): {\n readonly timeout?: number;\n readonly deadlineAt?: number;\n} {\n return deadline._tag === \"Unlimited\"\n ? {}\n : { timeout: deadline.timeoutMs, deadlineAt: deadline.deadlineAt };\n}\nfunction configuredLifetime(value: SandboxProviderLifetime): number | undefined {\n return value._tag === \"Configured\" ? value.milliseconds : undefined;\n}\nfunction managedContainerSession(binding: DockerProfileRuntimeBinding, resources: Readonly<import(\"./layer.ts\").DockerSandboxResources>, context: SandboxRuntimeMaterializeContext): Effect.Effect<{\n readonly lease: DockerProfileLease;\n readonly reservation: import(\"./docker-profile/runtime.ts\").DockerProfileReservation;\n readonly labels: Readonly<Record<string, string>>;\n readonly replaceReservation: Effect.Effect<import(\"./docker-profile/runtime.ts\").DockerProfileReservation, Error>;\n readonly finish: () => Promise<void>;\n}, Error, Scope.Scope> {\n return Effect.gen(function* () {\n const scope = yield* Effect.scope;\n const lease = yield* Effect.acquireRelease(providerBoundaryEffect(() => createDockerProfileLease(binding)), (owned) => providerBoundaryEffect(() => owned.stopHeartbeat()).pipe(Effect.orDie));\n const requestedResources = {\n cpus: resources.cpus ?? 0,\n memoryBytes: resources.memoryBytes ?? 0,\n pids: resources.pidsLimit ?? 0,\n ephemeralDiskBytes: resources.dockerDataBytes ?? 0,\n containers: 1,\n } as const;\n const admission = dockerProfileAdmission(context);\n let owner = yield* acquireDockerProfileReservationEffect(lease, \"container\", requestedResources, admission, context.signal);\n const replaceReservation = Effect.uninterruptibleMask((restore) => Effect.gen(function* () {\n // The host must scrub/retire the current slot before another private slot can\n // be granted. Release is uninterruptible; the new scoped acquisition remains\n // interruptible while queued and owns its finalizer before it can be observed.\n yield* providerBoundaryEffect(() => owner.release());\n const replacement = yield* restore(acquireDockerProfileReservationEffect(lease, \"container\", requestedResources, admission, context.signal).pipe(Effect.provideService(Scope.Scope, scope)));\n owner = replacement;\n return replacement.reservation;\n }));\n return {\n lease,\n get reservation() { return owner.reservation; },\n get labels() {\n return Object.freeze({\n \"niceeval.profile-id\": binding.profile.profileId,\n \"niceeval.invocation-id\": lease.invocationId,\n \"niceeval.reservation-id\": owner.reservation.reservationId,\n \"niceeval.provision-token\": owner.reservation.provisionToken,\n });\n },\n replaceReservation,\n finish: async () => {\n // Do not stop the heartbeat here: cancellation can land after a new\n // owner registered its Scope finalizer but before the mutable current\n // pointer advances. Scope closes every reservation owner (newest first)\n // and only then runs the older lease finalizer.\n await owner.release();\n },\n };\n });\n}\n/**\n * E2B 的 SDK 默认 TTL 不是 attempt 时限的一个来源。bounded attempt 在创建时必须把\n * deadline 加收尾预留写进 provider;作者另有声明时,它是上限承诺而不是可被静默加长的 hint。\n */\nexport function e2bLifetimeRequest(lifetime: SandboxProviderLifetime, deadline: SandboxRuntimeDeadline): E2BSandboxLifetime {\n const declared = configuredLifetime(lifetime);\n if (deadline._tag === \"Unlimited\") {\n return declared === undefined\n ? { _tag: \"ProviderDefault\" }\n : { _tag: \"Requested\", milliseconds: declared, source: \"explicit\" };\n }\n const required = deadline.timeoutMs + CLEANUP_TIMEOUT_MS;\n if (declared !== undefined) {\n if (declared < required) {\n throw new Error(`e2bSandbox lifetimeMs=${declared}ms is shorter than this attempt's required ${required}ms ` +\n `(timeoutMs=${deadline.timeoutMs}ms plus cleanup reserve ${CLEANUP_TIMEOUT_MS}ms). ` +\n \"Increase lifetimeMs or lower timeoutMs; niceeval will not silently lengthen a declared sandbox lifetime.\");\n }\n return { _tag: \"Requested\", milliseconds: declared, source: \"explicit\" };\n }\n return { _tag: \"Requested\", milliseconds: required, source: \"attempt-deadline\" };\n}\nfunction boundProvisionSlot(context: SandboxRuntimeMaterializeContext): ProvisionSlot | undefined {\n return context.provisionSlot._tag === \"Bound\" ? context.provisionSlot.value : undefined;\n}\nfunction boundAdmission(context: SandboxRuntimeMaterializeContext): SandboxRuntimeAdmission | undefined {\n return context.admission._tag === \"Bound\" ? context.admission.value : undefined;\n}\nfunction admitImmediately(context: SandboxRuntimeMaterializeContext): Effect.Effect<void> {\n return boundAdmission(context)?.granted ?? Effect.void;\n}\nfunction dockerProfileAdmission(context: SandboxRuntimeMaterializeContext): import(\"./docker-profile/runtime.ts\").DockerProfileReservationAdmission {\n const admission = boundAdmission(context);\n return {\n queued: admission?.queued(\"provider-capacity\") ?? Effect.void,\n granted: admission?.granted ?? Effect.void,\n ...(admission?.slot === undefined ? {} : { slot: admission.slot }),\n };\n}\nfunction wrapSingleSandbox(backend: SandboxProviderBackend, context: SandboxRuntimeMaterializeContext, facts: JsonValue): MaterializedSandboxCase {\n const provider = context.plan.providerPlan.provider;\n const sandbox = normalizeSandboxPaths(backend, provider);\n registerSandbox(sandbox);\n let stopped = false;\n let stopping: Promise<void> | undefined;\n const group: SandboxResourceGroup = {\n get primary() {\n return { sandboxId: backend.sandboxId, provider };\n },\n get resources() {\n return { kind: \"single\", provider, sandboxId: backend.sandboxId };\n },\n async stop() {\n if (stopped)\n return;\n if (stopping !== undefined)\n return stopping;\n const pending = (async () => {\n // runtime 的 finalizer 通过 providerBoundaryEffect(group.stop) 执行这条 provider Promise;\n // 不要从内部反向启动 Sandbox 的外层运行时。\n await backend.stop();\n stopped = true;\n unregisterSandbox(sandbox);\n })();\n stopping = pending;\n try {\n await pending;\n }\n finally {\n // stop 失败回到 Open,保留 registry 所有权;成功则进入不可逆的 Stopped。\n if (stopping === pending)\n stopping = undefined;\n }\n },\n };\n return Object.freeze({\n sandbox,\n authorBackend: backend,\n group,\n caseKind: context.plan.providerPlan.caseKind,\n caseKey: context.plan.providerPlan.build.caseKey,\n buildKeys: context.plan.providerPlan.build.buildKeys,\n identity: context.plan.providerPlan.identity,\n facts,\n });\n}\nfunction normalizeMaterialized(materialized: Omit<MaterializedSandboxCase, \"sandbox\"> & {\n readonly sandbox: CustomProviderSandbox;\n}, context: SandboxRuntimeMaterializeContext): MaterializedSandboxCase {\n const sandbox = normalizeSandboxPaths(customSandboxBackend(materialized.sandbox), context.plan.providerPlan.provider);\n registerSandbox(sandbox);\n let stopped = false;\n let stopping: Promise<void> | undefined;\n const group: SandboxResourceGroup = {\n get primary() {\n return {\n ...materialized.group.primary,\n sandboxId: sandbox.sandboxId,\n };\n },\n get resources() {\n return materialized.group.resources;\n },\n ...(materialized.group.entry === undefined ? {} : { entry: materialized.group.entry }),\n async stop() {\n if (stopped)\n return;\n if (stopping !== undefined)\n return stopping;\n const pending = (async () => {\n await materialized.group.stop();\n stopped = true;\n unregisterSandbox(sandbox);\n })();\n stopping = pending;\n try {\n await pending;\n }\n finally {\n // 失败回 Open 并保留 registry 所有权,让同轮强清或 orphan 恢复链真正重试。\n if (stopping === pending)\n stopping = undefined;\n }\n },\n };\n return Object.freeze({ ...materialized, sandbox, group });\n}\nfunction materializationEffect<R>(context: SandboxRuntimeMaterializeContext, acquire: Effect.Effect<MaterializedSandboxCase, unknown, R>): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, R> {\n return acquire.pipe(Effect.mapError((cause) => runtimeFailure(context, \"sandbox.materialization-failed\", cause)));\n}\nexport function materializeDockerComposeProviderPlan(plan: DockerComposeProviderPlan, context: SandboxRuntimeMaterializeContext): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, Scope.Scope> {\n const materialize = context.services._tag === \"Live\"\n ? materializeDockerComposeProviderCase\n : context.services.materializeCompose;\n return materializationEffect(context, Effect.andThen(admitImmediately(context), materialize({\n evalId: context.evalId,\n profile: context.evalId,\n mainService: plan.workspaceService,\n ...(plan.user._tag === \"Configured\" ? { user: plan.user.value } : {}),\n env: plan.env,\n pathPrepend: plan.pathPrepend,\n collection: plan.collection,\n caseKey: context.plan.providerPlan.build.caseKey,\n identity: context.plan.providerPlan.identity,\n }, {\n ctx: {\n evalId: context.evalId,\n profile: context.evalId,\n signal: context.signal,\n buildLocators: context.buildLocators,\n },\n ...deadlineOptions(context.deadline),\n feedback: context.feedback,\n provisionSlot: boundProvisionSlot(context),\n lifetimeMs: configuredLifetime(plan.lifetime),\n }).pipe(Effect.map((materialized) => normalizeMaterialized(materialized, context)))));\n}\nexport function materializeDockerfileProviderPlan(plan: DockerfileProviderPlan, context: SandboxRuntimeMaterializeContext): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, Scope.Scope> {\n return Option.match(Option.fromNullishOr(context.buildLocators.get(plan.buildKey)), {\n onNone: () => Effect.fail(runtimeFailure(context, \"sandbox.build-locator-missing\", new Error(`Dockerfile build ${plan.buildKey} has no prepared locator.`))),\n onSome: (locator) => typeof locator !== \"string\"\n ? Effect.fail(runtimeFailure(context, \"sandbox.materialization-failed\", new TypeError(`Dockerfile build locator for ${plan.buildKey} must be a string.`)))\n : Effect.andThen(plan.profileBinding === undefined ? admitImmediately(context) : Effect.void, Effect.flatMap(resolveDockerfileAgentImage(plan, context, locator).pipe(Effect.mapError((cause) => runtimeFailure(context, \"sandbox.materialization-failed\", cause))), (resolved) => materializationEffect(context, Effect.gen(function* () {\n const { DockerSandbox, classifyProvisionError, reconcileProvision } = yield* providerBoundaryEffect(() => __niceevalDynamicImport(\"./docker.cjs\"));\n const managed = plan.profileBinding === undefined\n ? undefined\n : yield* managedContainerSession(plan.profileBinding!, plan.resources, context);\n const provisionToken = managed?.reservation.provisionToken ?? randomUUID();\n return yield* Effect.gen(function* () {\n const createOptions: Parameters<typeof DockerSandbox.create>[0] = {\n ...deadlineOptions(context.deadline),\n runtime: \"node24\",\n image: resolved.locator,\n ...(plan.user._tag === \"Configured\" ? { user: plan.user.value } : {}),\n privileged: plan.privileged,\n ...(plan.dockerAccess === undefined ? {} : { dockerAccess: plan.dockerAccess }),\n resources: plan.resources,\n ...(plan.readiness === undefined ? {} : { readiness: plan.readiness }),\n lifetimeMs: configuredLifetime(plan.lifetime),\n pathPrepend: plan.pathPrepend,\n feedback: context.feedback,\n provisionToken,\n runIdentity: currentRunIdentity(),\n ...(plan.profileBinding === undefined ? {} : {\n dockerSocketPath: plan.profileBinding.dockerSocketPath,\n ...(plan.profileBinding.profile.policy.level === \"managed-rootless/v1\"\n ? { dns: plan.profileBinding.profile.policy.network.dns.servers }\n : {}),\n managedLabels: managed?.labels,\n rootlessAttestation: {\n daemonId: plan.profileBinding.daemonId,\n dataRoot: plan.profileBinding.profile.backend.filesystem.dockerRootDir,\n },\n profileSetupPrefix: {\n lease: managed!.lease,\n currentReservation: () => managed!.reservation,\n replaceReservation: managed!.replaceReservation,\n },\n afterStop: managed?.finish,\n }),\n };\n const backend = yield* withProvisionRetry(managed === undefined\n ? DockerSandbox.createEffect(createOptions)\n : providerBoundaryEffect(() => DockerSandbox.createControlled(createOptions, (create, signal) => createDockerProfileContainer(managed.lease, managed.reservation.reservationId, { ...create, attemptId: context.evalId }, signal))), classifyProvisionError, boundProvisionSlot(context), context.feedback, managed === undefined\n ? providerBoundaryEffect(() => reconcileProvision(provisionToken, plan.profileBinding?.dockerSocketPath))\n : Effect.void);\n return wrapSingleSandbox(backend, context, { image: resolved.locator });\n }).pipe(Effect.onError(() => managed === undefined\n ? Effect.void\n : providerBoundaryEffect(() => managed.finish()).pipe(Effect.ignore)));\n })))),\n });\n}\nfunction defaultDockerImageExists(locator: string): Effect.Effect<boolean> {\n // dockerode 是 optional peer;只在 Dockerfile Agent 缓存路径真查镜像时加载。\n // 缺少 peer、daemon 不可用和镜像不存在在此 lookup 的语义里都只是 cache miss。\n return providerBoundaryEffect(async () => {\n const { default: Docker } = await __niceevalDynamicImport(\"dockerode\");\n await new Docker().getImage(locator).inspect();\n return true;\n }).pipe(Effect.catch(() => Effect.succeed(false)));\n}\nfunction resolveDockerfileAgentImage(plan: DockerfileProviderPlan, context: SandboxRuntimeMaterializeContext, taskLocator: string): Effect.Effect<{\n readonly status: \"hit\" | \"built\" | \"unsupported\";\n readonly locator: string;\n}, Error> {\n // Derived Agent image coordination is still bound to the default Docker endpoint.\n // A profile Dockerfile must never cross daemons, so consume the task image directly.\n if (plan.profileBinding !== undefined || plan.dockerAccess !== undefined) {\n return Effect.succeed({ status: \"unsupported\", locator: taskLocator });\n }\n const request = dockerfileAgentCacheRequest(plan, context.agent, taskLocator, context.plan.providerPlan.target.platform);\n if (request === undefined)\n return Effect.succeed({ status: \"unsupported\", locator: taskLocator });\n return dockerfileAgentImageCoordinator.resolve(request, context.signal, (input, signal) => buildDockerfileAgentImage(input, request, context.plan.providerPlan.target.platform, signal), context.runTiming);\n}\nfunction dockerfileAgentCacheRequest(plan: DockerfileProviderPlan, agent: SandboxAgent | undefined, taskLocator: string, targetPlatform: import(\"../agents/types.ts\").AgentArtifactPlatform): DockerfileAgentCacheRequest | undefined {\n if (agent === undefined || agent.ensure.length !== 1)\n return undefined;\n const ensure = agent.ensure[0];\n if (ensure === undefined)\n return undefined;\n const installer = agent.installers.find((candidate) => candidate.installMode === \"staged\" &&\n isDockerfileAgentCacheSafeInstaller(candidate) &&\n sameAgentIdentity(candidate.identity, ensure.identity));\n if (installer === undefined)\n return undefined;\n return {\n taskLocator,\n platform: `${plan.platform}|${platformKey(targetPlatform)}`,\n ensure,\n installer,\n };\n}\nfunction sameAgentIdentity(a: AgentIdentity, b: AgentIdentity): boolean {\n return a.agent === b.agent && a.version === b.version && a.revision === b.revision;\n}\nfunction buildDockerfileAgentImage(input: DockerfileAgentDerivedImageBuildInput, request: DockerfileAgentCacheRequest, targetPlatform: import(\"../agents/types.ts\").AgentArtifactPlatform, signal: AbortSignal): Effect.Effect<void, Error> {\n return buildDockerfileAgentImageWithServices(input, request, targetPlatform, signal);\n}\nexport interface DockerfileAgentImageProvisionSandbox {\n readonly operations: import(\"./types.ts\").SandboxOperations & Pick<import(\"./types.ts\").Sandbox, \"sandboxId\">;\n readonly sandboxId: string;\n stop(): Promise<void>;\n}\nexport interface DockerfileAgentImageProvisionServices {\n readonly create: (taskLocator: string) => Effect.Effect<DockerfileAgentImageProvisionSandbox, Error>;\n readonly commit: (sandboxId: string, derivedLocator: string) => Effect.Effect<void, Error>;\n}\nconst liveDockerfileAgentImageProvisionServices: DockerfileAgentImageProvisionServices = Object.freeze({\n create: (taskLocator: string) => providerBoundaryEffect(async () => {\n const { DockerSandbox } = await __niceevalDynamicImport(\"./docker.cjs\");\n const sandbox = await DockerSandbox.create({ image: taskLocator, runtime: \"node24\" });\n return { operations: sandbox, sandboxId: sandbox.sandboxId, stop: () => sandbox.stop() };\n }),\n commit: (sandboxId: string, derivedLocator: string) => providerBoundaryEffect(async () => {\n // dockerode 是 optional peer;commit 派生镜像时才加载(与 keep/orphans 同模式)。\n const { default: Docker } = await __niceevalDynamicImport(\"dockerode\");\n await new Docker().getContainer(sandboxId).commit(dockerCommitReference(derivedLocator));\n }),\n});\n/** Dockerode 的 commit 参数把仓库与 tag 分开;不能把 `repo:tag` 整串塞进 repo。 */\nexport function dockerCommitReference(locator: string): {\n readonly repo: string;\n readonly tag?: string;\n} {\n const slash = locator.lastIndexOf(\"/\");\n const colon = locator.lastIndexOf(\":\");\n if (colon > slash) {\n return { repo: locator.slice(0, colon), tag: locator.slice(colon + 1) };\n }\n return { repo: locator };\n}\nexport function buildDockerfileAgentImageWithServices(input: DockerfileAgentDerivedImageBuildInput, request: DockerfileAgentCacheRequest, targetPlatform: import(\"../agents/types.ts\").AgentArtifactPlatform, signal: AbortSignal, services: DockerfileAgentImageProvisionServices = liveDockerfileAgentImageProvisionServices): Effect.Effect<void, Error> {\n return Effect.scoped(Effect.gen(function* () {\n // AbortSignal 属于外层 invocation 的中断语义;绝不伪造为一个 typed provisioning error。\n if (signal.aborted)\n return yield* Effect.interrupt;\n const provisioned = yield* Effect.acquireRelease(services.create(input.taskLocator), \n // acquireRelease finalizer 必须是 never-fail。这里仍尝试真实 stop;它失败时保留原有\n // build cause,而不是在 cleanup 路径把 interruption/defect 改写成 typed failure。\n (sandbox) => providerBoundaryEffect(() => sandbox.stop()).pipe(Effect.catch(() => Effect.void)));\n yield* runAgentEnsure([request.ensure], [request.installer], provisioned.operations, {\n coordinator: Option.some(new ArtifactPrepareCoordinator()),\n targetPlatform,\n signal,\n progress: () => { },\n });\n yield* services.commit(provisioned.sandboxId, input.derivedLocator);\n }));\n}\nexport function materializeDockerImageProviderPlan(plan: DockerImageProviderPlan, context: SandboxRuntimeMaterializeContext): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, Scope.Scope> {\n return materializationEffect(context, Effect.gen(function* () {\n if (plan.profileBinding === undefined)\n yield* admitImmediately(context);\n const { DockerSandbox, classifyProvisionError, reconcileProvision } = yield* providerBoundaryEffect(() => __niceevalDynamicImport(\"./docker.cjs\"));\n const managed = plan.profileBinding === undefined\n ? undefined\n : yield* managedContainerSession(plan.profileBinding!, plan.resources, context);\n const provisionToken = managed?.reservation.provisionToken ?? randomUUID();\n return yield* Effect.gen(function* () {\n const createOptions: Parameters<typeof DockerSandbox.create>[0] = {\n ...deadlineOptions(context.deadline),\n runtime: \"node24\",\n image: plan.image,\n ...(plan.user._tag === \"Configured\" ? { user: plan.user.value } : {}),\n privileged: plan.privileged,\n ...(plan.dockerAccess === undefined ? {} : { dockerAccess: plan.dockerAccess }),\n resources: plan.resources,\n ...(plan.readiness === undefined ? {} : { readiness: plan.readiness }),\n lifetimeMs: configuredLifetime(plan.lifetime),\n pathPrepend: plan.pathPrepend,\n feedback: context.feedback,\n provisionToken,\n runIdentity: currentRunIdentity(),\n ...(plan.profileBinding === undefined ? {} : {\n dockerSocketPath: plan.profileBinding.dockerSocketPath,\n ...(plan.profileBinding.profile.policy.level === \"managed-rootless/v1\"\n ? { dns: plan.profileBinding.profile.policy.network.dns.servers }\n : {}),\n managedLabels: managed?.labels,\n rootlessAttestation: {\n daemonId: plan.profileBinding.daemonId,\n dataRoot: plan.profileBinding.profile.backend.filesystem.dockerRootDir,\n },\n profileSetupPrefix: {\n lease: managed!.lease,\n currentReservation: () => managed!.reservation,\n replaceReservation: managed!.replaceReservation,\n },\n afterStop: managed?.finish,\n }),\n };\n const backend = yield* withProvisionRetry(managed === undefined\n ? DockerSandbox.createEffect(createOptions)\n : providerBoundaryEffect(() => DockerSandbox.createControlled(createOptions, (create, signal) => createDockerProfileContainer(managed.lease, managed.reservation.reservationId, { ...create, attemptId: context.evalId }, signal))), classifyProvisionError, boundProvisionSlot(context), context.feedback, managed === undefined\n ? providerBoundaryEffect(() => reconcileProvision(provisionToken, plan.profileBinding?.dockerSocketPath))\n : Effect.void);\n return wrapSingleSandbox(backend, context, { image: plan.image });\n }).pipe(Effect.onError(() => managed === undefined\n ? Effect.void\n : providerBoundaryEffect(() => managed.finish()).pipe(Effect.ignore)));\n }));\n}\nexport function materializeE2BProviderPlan(plan: E2BProviderPlan, context: SandboxRuntimeMaterializeContext): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError> {\n return materializationEffect(context, Effect.gen(function* () {\n yield* admitImmediately(context);\n const lifetime = e2bLifetimeRequest(plan.lifetime, context.deadline);\n const { E2BSandbox, classifyProvisionError, reconcileProvision } = yield* providerBoundaryEffect(() => __niceevalDynamicImport(\"./e2b.cjs\"));\n const provisionToken = randomUUID();\n const backend = yield* withProvisionRetry(providerBoundaryEffect(() => E2BSandbox.create({\n ...deadlineOptions(context.deadline),\n runtime: \"node24\",\n template: plan.template,\n ...(plan.user._tag === \"Configured\" ? { user: plan.user.value } : {}),\n lifetime,\n pathPrepend: plan.pathPrepend,\n provisionToken,\n runIdentity: currentRunIdentity(),\n })), classifyProvisionError, boundProvisionSlot(context), context.feedback, providerBoundaryEffect(() => reconcileProvision(provisionToken)));\n return wrapSingleSandbox(backend, context, { template: plan.template });\n }));\n}\nexport function materializeVercelProviderPlan(plan: VercelProviderPlan, context: SandboxRuntimeMaterializeContext): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError> {\n return materializationEffect(context, Effect.gen(function* () {\n yield* admitImmediately(context);\n const { VercelSandbox, classifyProvisionError } = yield* providerBoundaryEffect(() => __niceevalDynamicImport(\"./vercel.cjs\"));\n const backend = yield* withProvisionRetry(providerBoundaryEffect(() => VercelSandbox.create({\n ...deadlineOptions(context.deadline),\n runtime: \"node24\",\n snapshotId: plan.snapshotId,\n lifetimeMs: configuredLifetime(plan.lifetime),\n pathPrepend: plan.pathPrepend,\n feedback: context.feedback,\n })), classifyProvisionError, boundProvisionSlot(context), context.feedback);\n return wrapSingleSandbox(backend, context, { snapshotId: plan.snapshotId });\n }));\n}\nexport function materializeCustomProviderPlan(plan: CustomProviderPlan, context: SandboxRuntimeMaterializeContext, create: CustomProviderSandboxOptions[\"create\"]): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError> {\n return Effect.flatMap(Effect.andThen(admitImmediately(context), create({ deadline: context.deadline, runtime: \"node24\", feedback: context.feedback })).pipe(Effect.mapError((cause) => runtimeFailure(context, \"sandbox.materialization-failed\", cause))), (sandbox) => Effect.try({\n try: () => wrapSingleSandbox(customSandboxBackend(sandbox), context, { provider: plan.name }),\n catch: (cause) => runtimeFailure(context, \"sandbox.materialization-failed\", cause),\n }).pipe(\n // create 已经交出真实资源,但 acquireRelease 只有在本 Effect 成功后才会登记 finalizer。\n // facade 归一化若在这个窄窗口失败,必须原地 stop,不能让裸资源逃出 Scope。\n Effect.tapError(() => Effect.tryPromise({\n try: () => sandbox.stop(),\n catch: () => undefined,\n }).pipe(Effect.ignore))));\n}\nexport function materializeCustomCaseProviderPlan(plan: CustomCaseProviderPlan, context: SandboxRuntimeMaterializeContext, materialize: CustomCaseSandboxOptions[\"materialize\"]): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError> {\n return Effect.flatMap(Effect.andThen(admitImmediately(context), materialize({\n evalId: context.evalId,\n profile: context.evalId,\n signal: context.signal,\n buildLocators: context.buildLocators,\n })).pipe(Effect.mapError((cause) => runtimeFailure(context, \"sandbox.materialization-failed\", cause))), (rawResult) => Effect.try({\n try: () => {\n const result = validateCustomCaseMaterializeResult(rawResult, plan.services);\n return normalizeMaterialized({\n sandbox: result.sandbox,\n // 自定义 case 的显式适配点:author 返回的公共 Sandbox 在这里降成 provider backend,\n // 供 attempt-scope author facade 使用;resource facade 仍由 normalizeMaterialized 归一。\n authorBackend: customSandboxBackend(result.sandbox),\n ...(result.services._tag === \"Available\" ? { services: result.services.value } : {}),\n group: result.group,\n caseKind: \"custom\",\n caseKey: context.plan.providerPlan.build.caseKey,\n buildKeys: context.plan.providerPlan.build.buildKeys,\n identity: context.plan.providerPlan.identity,\n facts: result.facts,\n }, context);\n },\n catch: (cause) => runtimeFailure(context, \"sandbox.materialization-failed\", cause),\n }).pipe(Effect.catch((failure) => Effect.andThen(stopInvalidCustomCaseResult(rawResult), Effect.fail(failure)))));\n}\nfunction validateCustomCaseMaterializeResult(value: unknown, declaredServices: CustomCaseServices): CustomCaseMaterializeResult {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n throw new TypeError(\"defineSandboxCase materialize() must return an object\");\n }\n const result = value as globalThis.Record<string, unknown>;\n const extra = Object.keys(result).filter((key) => key !== \"sandbox\" && key !== \"group\" && key !== \"services\" && key !== \"facts\");\n if (extra.length > 0) {\n throw new TypeError(`defineSandboxCase materialize() returned unsupported field(s): ${extra.join(\", \")}`);\n }\n if (result.sandbox === null || typeof result.sandbox !== \"object\") {\n throw new TypeError(\"defineSandboxCase materialize() must return sandbox\");\n }\n const group = validateCustomCaseResourceGroup(result.group);\n const services = validateCustomCaseServices(result.services, declaredServices);\n if (!isPureDataIdentity(result.facts)) {\n throw new TypeError(\"defineSandboxCase materialize() facts must be pure JSON data\");\n }\n return {\n sandbox: result.sandbox as CustomProviderSandbox,\n group,\n services,\n facts: result.facts,\n };\n}\nfunction validateCustomCaseResourceGroup(value: unknown): SandboxResourceGroup {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n throw new TypeError(\"defineSandboxCase materialize() must return group\");\n }\n const group = value as globalThis.Record<string, unknown>;\n const extra = Object.keys(group).filter((key) => key !== \"primary\" && key !== \"resources\" && key !== \"stop\");\n if (extra.length > 0) {\n throw new TypeError(`defineSandboxCase materialize() group returned unsupported field(s): ${extra.join(\", \")}`);\n }\n if (group.primary === null || typeof group.primary !== \"object\" || Array.isArray(group.primary)) {\n throw new TypeError(\"defineSandboxCase materialize() group.primary must be a SandboxLocator\");\n }\n const primary = group.primary as globalThis.Record<string, unknown>;\n if (typeof primary.sandboxId !== \"string\" || primary.sandboxId.length === 0) {\n throw new TypeError(\"defineSandboxCase materialize() group.primary.sandboxId must be a non-empty string\");\n }\n if (primary.provider !== undefined && typeof primary.provider !== \"string\") {\n throw new TypeError(\"defineSandboxCase materialize() group.primary.provider must be a string\");\n }\n if (!isPureDataIdentity(group.resources)) {\n throw new TypeError(\"defineSandboxCase materialize() group.resources must be pure JSON data\");\n }\n if (typeof group.stop !== \"function\") {\n throw new TypeError(\"defineSandboxCase materialize() group.stop must be a function\");\n }\n return value as SandboxResourceGroup;\n}\nfunction validateCustomCaseServices(value: unknown, declared: CustomCaseServices): CustomCaseMaterializeResult[\"services\"] {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n throw new TypeError(\"defineSandboxCase materialize() services must be a tagged value\");\n }\n const services = value as globalThis.Record<string, unknown>;\n if (services._tag === \"None\") {\n if (Object.keys(services).some((key) => key !== \"_tag\")) {\n throw new TypeError('defineSandboxCase materialize() services \"None\" cannot contain a value');\n }\n if (declared._tag === \"Supported\") {\n throw new TypeError('defineSandboxCase declared services \"Supported\" but materialize() returned \"None\"');\n }\n return { _tag: \"None\" };\n }\n if (services._tag !== \"Available\") {\n throw new TypeError('defineSandboxCase materialize() services must be { _tag: \"None\" } or { _tag: \"Available\", value }');\n }\n if (Object.keys(services).some((key) => key !== \"_tag\" && key !== \"value\")) {\n throw new TypeError('defineSandboxCase materialize() services \"Available\" has unsupported fields');\n }\n if (declared._tag === \"Unsupported\") {\n throw new TypeError('defineSandboxCase declared services \"Unsupported\" but materialize() returned \"Available\"');\n }\n if (services.value === null || typeof services.value !== \"object\") {\n throw new TypeError('defineSandboxCase materialize() services \"Available\" needs a ServiceController');\n }\n const controller = services.value as globalThis.Record<string, unknown>;\n if (typeof controller.exec !== \"function\" ||\n typeof controller.collectLogs !== \"function\" ||\n typeof controller.stop !== \"function\") {\n throw new TypeError('defineSandboxCase materialize() services \"Available\" needs exec, collectLogs, and stop functions');\n }\n return { _tag: \"Available\", value: services.value as ServiceController };\n}\nfunction stopInvalidCustomCaseResult(value: unknown): Effect.Effect<void> {\n if (value === null || typeof value !== \"object\")\n return Effect.void;\n const group = (value as globalThis.Record<string, unknown>).group;\n if (group === null || typeof group !== \"object\")\n return Effect.void;\n const stop = (group as globalThis.Record<string, unknown>).stop;\n if (typeof stop !== \"function\")\n return Effect.void;\n return Effect.tryPromise({\n try: async () => {\n await stop.call(group);\n },\n catch: () => undefined,\n }).pipe(Effect.ignore);\n}\nexport function collectDockerComposeProviderBuildPreparation(plan: DockerComposeProviderPlan, published: SandboxProviderPlan, evalId: string): Effect.Effect<Option.Option<SandboxRuntimeBuildPreparation>, SandboxRuntimeMaterializationError> {\n return Effect.gen(function* () {\n const file = plan.file._tag === \"Url\" ? new URL(plan.file.value) : plan.file.value;\n const collection = yield* collectComposeBuilds({\n file,\n mainService: plan.workspaceService,\n platform: plan.collection.platform,\n env: plan.env,\n }).pipe(Effect.mapError((cause) => buildFailure(published, \"sandbox.build-input-drift\", cause)));\n return yield* Effect.try({\n try: () => {\n assertSameBuildKeys(plan.collection.buildKeys, collection.buildKeys, \"Compose\");\n if (digestOf(composeCollectionIdentity(plan.collection)) !== digestOf(composeCollectionIdentity(collection))) {\n throw new Error(\"Compose case inputs changed after physical planning. Restart the Run to plan the new inputs.\");\n }\n return Option.some({\n works: collection.works,\n provider: dockerComposeBuildProvider({ env: plan.env }),\n });\n },\n catch: (cause) => buildFailure(published, \"sandbox.build-input-drift\", cause),\n });\n });\n}\nexport function collectDockerfileProviderBuildPreparation(plan: DockerfileProviderPlan, published: SandboxProviderPlan, evalId: string): Effect.Effect<Option.Option<SandboxRuntimeBuildPreparation>, SandboxRuntimeMaterializationError> {\n return Effect.gen(function* () {\n const collection = yield* collectDockerfileBuildFromIdentity({\n provider: \"docker\",\n profile: evalId,\n context: plan.context,\n dockerfile: plan.dockerfile,\n buildArgs: plan.buildArgs,\n ...(plan.target === undefined ? {} : { target: plan.target }),\n platform: plan.platform,\n expected: plan.build,\n ...(plan.profileBinding === undefined ? {} : { dockerSocketPath: plan.profileBinding.dockerSocketPath }),\n }).pipe(Effect.mapError((cause) => buildFailure(published, \"sandbox.build-input-drift\", cause)));\n return yield* Effect.try({\n try: () => {\n if (collection.buildKey !== plan.buildKey) {\n throw new Error(\"Dockerfile build inputs changed after physical planning. Restart the Run to plan the new inputs.\");\n }\n const provider = dockerfileBuildProvider([collection]);\n const managedSource = (locator: string, source: \"cache\" | \"build\") => ({\n locator,\n source,\n acquireUse: async () => ({ locator, release() { } }),\n release() { },\n });\n const managedProvider: SandboxBuildProvider = plan.profileBinding === undefined ? provider : {\n async lookup(work) {\n const result = await lookupDockerProfileBuild(plan.profileBinding!, work.buildKey);\n return result.hit\n ? { _tag: \"Hit\", source: managedSource(result.locator, \"cache\") }\n : { _tag: \"Miss\" };\n },\n async build(work, buildContext) {\n const lease = await createDockerProfileLease(plan.profileBinding!);\n let reservation: import(\"./docker-profile/runtime.ts\").DockerProfileReservation | undefined;\n try {\n reservation = await acquireDockerProfileReservation(lease, \"build\", {\n cpus: 0, memoryBytes: 0, pids: 0, containers: 0, ephemeralDiskBytes: 0,\n }, buildContext.signal);\n const dockerfile = relative(collection.details.contextDir, collection.details.dockerfilePath)\n .split(sep).join(\"/\");\n const result = await createDockerProfileBuild(lease, reservation.reservationId, {\n buildKey: work.buildKey,\n platform: collection.details.platform,\n dockerfile,\n ...(collection.details.buildArgs === undefined ? {} : { buildArgs: collection.details.buildArgs }),\n ...(collection.details.target === undefined ? {} : { target: collection.details.target }),\n }, packDockerfileBuildContext(collection.details), buildContext.signal);\n await releaseDockerProfileReservation(lease, reservation.reservationId);\n reservation = undefined;\n return managedSource(result.locator, \"build\");\n }\n finally {\n if (reservation !== undefined) {\n await releaseDockerProfileReservation(lease, reservation.reservationId).catch(() => undefined);\n }\n await lease.stopHeartbeat().catch(() => undefined);\n }\n },\n };\n return Option.some({\n works: [collection.work],\n provider: managedProvider,\n });\n },\n catch: (cause) => buildFailure(published, \"sandbox.build-input-drift\", cause),\n });\n });\n}\nfunction assertSameBuildKeys(planned: readonly string[], collected: readonly string[], label: string): void {\n const expected = [...planned].sort();\n const actual = [...collected].sort();\n if (expected.length === actual.length && expected.every((key, index) => key === actual[index]))\n return;\n throw new Error(`${label} build inputs changed after physical planning; planned ${expected.join(\", \") || \"none\"}, ` +\n `collected ${actual.join(\", \") || \"none\"}. Restart the Run to plan the new inputs.`);\n}\n/** Public hook callbacks are an outer Promise boundary; runtime composition stays Effect-native. */\nfunction runSetupHooks(hooks: readonly SandboxHook[], sandbox: Sandbox, context: SandboxHookContext): Effect.Effect<void, unknown> {\n return Effect.forEach(hooks, (hook) => Effect.tryPromise({\n try: () => Promise.resolve(hook(sandbox, context)),\n catch: (cause) => cause,\n }), { discard: true });\n}\n/** Teardown remains LIFO and diagnostic-only, but a teardown defect cannot skip the case finalizer. */\nfunction runTeardownHooks(hooks: readonly SandboxHook[], sandbox: Sandbox, context: SandboxHookContext): Effect.Effect<void> {\n return Effect.forEach([...hooks].reverse(), (hook) => {\n const cleanupContext = { ...context, signal: AbortSignal.timeout(CLEANUP_TIMEOUT_MS) };\n return cleanupCallback(() => hook(sandbox, cleanupContext)).pipe(Effect.catch((cause) => Effect.sync(() => {\n context.diagnostic({\n code: \"sandbox-teardown-failed\",\n level: \"warning\",\n message: cause instanceof Error ? cause.message : String(cause),\n });\n })));\n }, { discard: true });\n}\nconst activatedSandboxPluginCounts = new WeakMap<object, number>();\nfunction runSandboxPluginSetups(input: SandboxRuntimeMaterializeInput, owned: MaterializedSandboxCase): Effect.Effect<void, unknown> {\n return Effect.forEach(input.plan.pair.pluginLifecycles, (entry, index) => {\n activatedSandboxPluginCounts.set(owned, index + 1);\n const setup = entry.lifecycle.setup;\n if (setup === undefined)\n return Effect.void;\n return Effect.tryPromise({\n try: () => Promise.resolve((setup as (sandbox: Sandbox, context: SandboxHookContext) => void | Promise<void>)(owned.sandbox, input.hookContext)),\n catch: (cause) => cause,\n });\n }, { discard: true });\n}\nfunction runSandboxPluginTeardowns(input: SandboxRuntimeMaterializeInput, owned: MaterializedSandboxCase): Effect.Effect<void> {\n const count = activatedSandboxPluginCounts.get(owned) ?? 0;\n return Effect.forEach(input.plan.pair.pluginLifecycles.slice(0, count).reverse(), (entry) => {\n const teardown = entry.lifecycle.teardown;\n if (teardown === undefined)\n return Effect.void;\n const cleanupContext = { ...input.hookContext, signal: AbortSignal.timeout(CLEANUP_TIMEOUT_MS) };\n return cleanupCallback(() => (teardown as (sandbox: Sandbox, context: SandboxHookContext) => void | Promise<void>)(owned.sandbox, cleanupContext)).pipe(Effect.catch((cause) => Effect.sync(() => input.feedback.diagnostic({\n code: \"plugin-lifecycle-teardown-failed\",\n level: \"warning\",\n message: cause instanceof Error ? cause.message : String(cause),\n }))));\n }, { discard: true });\n}\nfunction reportReleaseFailure(input: SandboxRuntimeMaterializeInput, owned: MaterializedSandboxCase, cause: Error): Effect.Effect<void> {\n return Effect.sync(() => {\n const resources = owned.group.resources;\n const projectName = resources !== null && typeof resources === \"object\" && !Array.isArray(resources) &&\n typeof (resources as globalThis.Record<string, JsonValue>).projectName === \"string\"\n ? (resources as globalThis.Record<string, JsonValue>).projectName as string\n : undefined;\n input.feedback.diagnostic({\n code: \"sandbox-stop-failed\",\n level: \"warning\",\n message: `Sandbox ${owned.sandbox.sandboxId} provider cleanup failed: ${cause.message}.` +\n (projectName === undefined\n ? \"\"\n : ` Compose project ${projectName} remains recoverable with \\`niceeval sandbox list --orphans\\` / \\`niceeval sandbox prune\\`.`),\n data: {\n provider: input.plan.providerPlan.provider,\n sandboxId: owned.sandbox.sandboxId,\n ...(projectName !== undefined ? { projectName } : {}),\n },\n dedupeKey: projectName === undefined\n ? `sandbox-stop-failed:${owned.sandbox.sandboxId}`\n : `sandbox-stop-failed:${projectName}`,\n });\n });\n}\nfunction releaseOwned(input: SandboxRuntimeMaterializeInput, owned: MaterializedSandboxCase): Effect.Effect<void> {\n const release = input.release._tag === \"Stop\"\n ? providerBoundaryEffect(() => owned.group.stop())\n : input.release.run(owned);\n // catchAll only handles the provider's typed failure. Defects and interruption remain in their\n // original Cause, while ensuring guarantees the resource group release even if a hook defects.\n const releaseWithDiagnostic = release.pipe(Effect.catch((cause) => reportReleaseFailure(input, owned, cause)));\n return runSandboxPluginTeardowns(input, owned).pipe(Effect.andThen(runTeardownHooks(input.plan.pair.teardownHooks, owned.sandbox, input.hookContext)), Effect.ensuring(releaseWithDiagnostic));\n}\nfunction sortedBuildKeys(keys: Iterable<BuildKey>): readonly BuildKey[] {\n return Object.freeze([...keys].sort());\n}\n/** 动态 locator 只负责把已规划 BuildKey 绑定到产物;不能在物化时改写 physical plan。 */\nfunction verifyBuildLocators(context: SandboxRuntimeMaterializeContext): Effect.Effect<void, SandboxRuntimeMaterializationError> {\n const planned = sortedBuildKeys(context.plan.providerPlan.build.buildKeys);\n const provided = sortedBuildKeys(context.buildLocators.keys());\n const missing = planned.filter((key) => !context.buildLocators.has(key));\n if (missing.length > 0) {\n return Effect.fail(runtimeFailure(context, \"sandbox.build-locator-missing\", new Error(`Missing build locators for planned BuildKey(s): ${missing.join(\", \")}`)));\n }\n if (planned.length !== provided.length || planned.some((key, index) => key !== provided[index])) {\n return Effect.fail(runtimeFailure(context, \"sandbox.build-input-drift\", new Error(\"Runtime build locator keys differ from the physical plan.\")));\n }\n return Effect.void;\n}\n/** Provider 产物是动态边界;出来即核验,不能把新的 CaseKey / BuildKey 带入领域态。 */\nfunction verifyMaterializedIdentity(context: SandboxRuntimeMaterializeContext, owned: MaterializedSandboxCase): Effect.Effect<void, SandboxRuntimeMaterializationError> {\n const planned = context.plan.providerPlan.build;\n const actualKeys = sortedBuildKeys(owned.buildKeys);\n const plannedKeys = sortedBuildKeys(planned.buildKeys);\n if (owned.caseKey !== planned.caseKey ||\n actualKeys.length !== plannedKeys.length ||\n plannedKeys.some((key, index) => key !== actualKeys[index])) {\n return Effect.fail(runtimeFailure(context, \"sandbox.build-input-drift\", new Error(\"Materialized CaseKey or BuildKey set differs from the physical plan.\")));\n }\n return Effect.void;\n}\n/** Base acquisition only. Scope exit still owns release; author/plugin preparation is a separate boundary. */\nexport function acquireSandboxRunPlan(input: SandboxRuntimeMaterializeInput): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, Scope.Scope> {\n const context: SandboxRuntimeMaterializeContext = {\n plan: input.plan,\n evalId: input.evalId,\n deadline: input.deadline,\n feedback: input.feedback,\n signal: input.signal,\n hookContext: input.hookContext,\n buildLocators: input.buildLocators,\n ...(input.setupPrefixArtifact === undefined ? {} : { setupPrefixArtifact: input.setupPrefixArtifact }),\n provisionSlot: input.provisionSlot,\n admission: input.admission,\n services: input.services,\n ...(input.agent !== undefined ? { agent: input.agent } : {}),\n ...(input.runTiming !== undefined ? { runTiming: input.runTiming } : {}),\n };\n return Effect.andThen(verifyBuildLocators(context), Effect.flatMap(providerBinding(input.plan), (binding) => {\n const acquire = binding.materialize(context);\n const release = (owned: MaterializedSandboxCase) => releaseOwned(input, owned);\n // Profile admission registers its reservation owner before queueing. Its\n // queue/reacquire segment must remain interruptible so an Attempt deadline\n // can release a granted reservation while scheduler permits are unavailable.\n // Other providers keep the conservative uninterruptible acquisition gate.\n let acquired: MaterializedSandboxCase | undefined;\n const owned = binding.interruptibleAcquisition\n ? Effect.acquireRelease(acquire.pipe(Effect.tap((value) => Effect.sync(() => { acquired = value; }))), () => acquired === undefined ? Effect.void : release(acquired))\n : Effect.acquireRelease(acquire, release);\n return owned.pipe(Effect.tap((value) => verifyMaterializedIdentity(context, value)));\n }));\n}\n/** Legacy author/plugin lifecycle is an opaque preparation barrier outside provider admission. */\nexport function prepareMaterializedSandboxRunPlan(input: SandboxRuntimeMaterializeInput, owned: MaterializedSandboxCase): Effect.Effect<void, SandboxRuntimeMaterializationError> {\n const context: SandboxRuntimeMaterializeContext = {\n plan: input.plan,\n evalId: input.evalId,\n deadline: input.deadline,\n feedback: input.feedback,\n signal: input.signal,\n hookContext: input.hookContext,\n buildLocators: input.buildLocators,\n ...(input.setupPrefixArtifact === undefined ? {} : { setupPrefixArtifact: input.setupPrefixArtifact }),\n provisionSlot: input.provisionSlot,\n admission: input.admission,\n services: input.services,\n ...(input.agent !== undefined ? { agent: input.agent } : {}),\n ...(input.runTiming !== undefined ? { runTiming: input.runTiming } : {}),\n };\n return runSetupHooks(input.plan.pair.setupHooks, owned.sandbox, input.hookContext).pipe(Effect.andThen(runSandboxPluginSetups(input, owned)), Effect.mapError((cause) => runtimeFailure(context, \"sandbox.materialization-failed\", cause)));\n}\n/** Compatibility entry for physical-instance owners that still acquire and prepare as one Effect. */\nexport function materializeSandboxRunPlan(input: SandboxRuntimeMaterializeInput): Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, Scope.Scope> {\n return acquireSandboxRunPlan(input).pipe(Effect.tap((owned) => prepareMaterializedSandboxRunPlan(input, owned)));\n}\n/** Build preparation 同样只调用 private binding,不按 provider/module id 分支。 */\nexport function collectSandboxRuntimeBuildPreparation(plan: Extract<LinkedRunPlan, {\n readonly _tag: \"Sandbox\";\n}>, evalId: string): Effect.Effect<Option.Option<SandboxRuntimeBuildPreparation>, SandboxRuntimeMaterializationError> {\n return Effect.flatMap(providerBinding(plan), (binding) => binding.collectBuildPreparation(evalId));\n}\n/** 调度能力来自完成态 ProviderModule binding;core 不从 provider 名推导。 */\nexport function sandboxRuntimeCapabilities(plan: Extract<LinkedRunPlan, {\n readonly _tag: \"Sandbox\";\n}>): SandboxRuntimeCapabilities {\n const capabilities = plan.providerPlan.capabilities;\n return Object.freeze({\n provider: plan.providerPlan.provider,\n schedulingLane: plan.providerPlan.scheduling.lane.key,\n admission: plan.providerPlan.scheduling.admission._tag,\n retention: capabilities.retention,\n reuse: capabilities.reuse,\n setupPrefix: capabilities.setupPrefix,\n sessionLimit: capabilities.sessionLimit,\n });\n}\n"]}
|