@hachej/boring-agent 0.1.53 → 0.1.55

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.
@@ -477,4 +477,4 @@ interface CommandNotifyPayload {
477
477
  command?: string;
478
478
  }
479
479
 
480
- export { type AgentTool as A, type CommandNotifyPayload as C, type Entry as E, type FileSearch as F, type IsolatedCodeInput as I, type JSONSchema as J, type PluginRestartWarning as P, type RunContext as R, type Sandbox as S, type TelemetryEvent as T, type Workspace as W, type AgentHarness as a, type ExecOptions as b, type ExecResult as c, type IsolatedCodeOutput as d, type SandboxCapability as e, type SandboxHandleRecord as f, type SandboxHandleStore as g, type SendMessageInput as h, type Stat as i, type TelemetrySink as j, type ToolExecContext as k, type ToolResult as l, WORKSPACE_AGENT_PLUGINS_RELOADED_EVENT as m, WORKSPACE_COMMAND_NOTIFY_EVENT as n, type WorkspaceRuntimeContext as o, noopTelemetry as p, type WorkspaceChangeEvent as q, type AgentHarnessFactory as r, safeCapture as s, type AgentHarnessFactoryInput as t };
480
+ export { type AgentTool as A, type CommandNotifyPayload as C, type Entry as E, type FileSearch as F, type IsolatedCodeInput as I, type JSONSchema as J, type PluginRestartWarning as P, type RunContext as R, type Sandbox as S, type TelemetryEvent as T, type Workspace as W, type AgentHarness as a, type ExecOptions as b, type ExecResult as c, type IsolatedCodeOutput as d, type SandboxCapability as e, type SandboxHandleRecord as f, type SandboxHandleStore as g, type SendMessageInput as h, type Stat as i, type TelemetrySink as j, type ToolExecContext as k, type ToolResult as l, WORKSPACE_AGENT_PLUGINS_RELOADED_EVENT as m, WORKSPACE_COMMAND_NOTIFY_EVENT as n, type WorkspaceRuntimeContext as o, noopTelemetry as p, type ToolReadinessRequirement as q, type WorkspaceChangeEvent as r, safeCapture as s, type AgentHarnessFactory as t, type AgentHarnessFactoryInput as u };
@@ -5687,7 +5687,7 @@ var ConversationScrollButton = ({
5687
5687
  };
5688
5688
 
5689
5689
  // src/front/chat/components/ChatNotices.tsx
5690
- import { AlertCircleIcon, ListRestartIcon, Loader2 } from "lucide-react";
5690
+ import { AlertCircleIcon, ExternalLinkIcon as ExternalLinkIcon2, ListRestartIcon, Loader2, XIcon as XIcon3 } from "lucide-react";
5691
5691
  import { IconButton as IconButton2 } from "@hachej/boring-ui-kit";
5692
5692
 
5693
5693
  // src/front/chat/components/noticeStyles.ts
@@ -5847,20 +5847,41 @@ function ComposerBlockerNotice({
5847
5847
  className: noticeSurfaceClass("info", "mx-auto mb-2 w-full max-w-3xl text-xs"),
5848
5848
  children: [
5849
5849
  /* @__PURE__ */ jsx16("span", { children: label }),
5850
- blocker?.actions?.map((action) => /* @__PURE__ */ jsx16(
5851
- "button",
5852
- {
5853
- type: "button",
5854
- className: "ml-2 rounded border border-primary/30 px-2 py-0.5 text-[11px] font-medium hover:bg-primary/10",
5855
- onClick: () => onAction?.(blocker, action.id),
5856
- children: action.label
5857
- },
5858
- action.id
5859
- ))
5850
+ blocker?.actions?.map((action) => {
5851
+ const icon = composerBlockerActionIcon(action.id);
5852
+ return icon ? /* @__PURE__ */ jsx16(
5853
+ IconButton2,
5854
+ {
5855
+ type: "button",
5856
+ variant: "ghost",
5857
+ size: "icon-sm",
5858
+ className: "ml-1.5 h-6 w-6 rounded-md border border-primary/25 text-muted-foreground hover:bg-primary/10 hover:text-foreground",
5859
+ onClick: () => onAction?.(blocker, action.id),
5860
+ "aria-label": action.label,
5861
+ title: action.label,
5862
+ children: icon
5863
+ },
5864
+ action.id
5865
+ ) : /* @__PURE__ */ jsx16(
5866
+ "button",
5867
+ {
5868
+ type: "button",
5869
+ className: "ml-2 rounded border border-primary/30 px-2 py-0.5 text-[11px] font-medium hover:bg-primary/10",
5870
+ onClick: () => onAction?.(blocker, action.id),
5871
+ children: action.label
5872
+ },
5873
+ action.id
5874
+ );
5875
+ })
5860
5876
  ]
5861
5877
  }
5862
5878
  );
5863
5879
  }
5880
+ function composerBlockerActionIcon(actionId) {
5881
+ if (actionId === "open") return /* @__PURE__ */ jsx16(ExternalLinkIcon2, { className: "size-3.5", "aria-hidden": "true" });
5882
+ if (actionId === "cancel") return /* @__PURE__ */ jsx16(XIcon3, { className: "size-3.5", "aria-hidden": "true" });
5883
+ return null;
5884
+ }
5864
5885
  function QueuedComposerNotice({ followUps, onEdit }) {
5865
5886
  return /* @__PURE__ */ jsxs15(
5866
5887
  "div",
@@ -5911,7 +5932,7 @@ import {
5911
5932
  Music2Icon,
5912
5933
  PaperclipIcon,
5913
5934
  VideoIcon,
5914
- XIcon as XIcon3
5935
+ XIcon as XIcon4
5915
5936
  } from "lucide-react";
5916
5937
  import { createContext as createContext3, useCallback as useCallback9, useContext as useContext3, useMemo as useMemo5 } from "react";
5917
5938
  import { jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
@@ -6125,7 +6146,7 @@ var AttachmentRemove = ({
6125
6146
  variant: "ghost",
6126
6147
  ...props,
6127
6148
  children: [
6128
- children ?? /* @__PURE__ */ jsx17(XIcon3, {}),
6149
+ children ?? /* @__PURE__ */ jsx17(XIcon4, {}),
6129
6150
  /* @__PURE__ */ jsx17("span", { className: "sr-only", children: label })
6130
6151
  ]
6131
6152
  }
@@ -8026,7 +8047,7 @@ import {
8026
8047
  Monitor,
8027
8048
  PlusIcon as PlusIcon2,
8028
8049
  SquareIcon,
8029
- XIcon as XIcon4
8050
+ XIcon as XIcon5
8030
8051
  } from "lucide-react";
8031
8052
  import { nanoid } from "nanoid";
8032
8053
  import { useCallback as useCallback15, useEffect as useEffect18, useMemo as useMemo10, useRef as useRef14, useState as useState17 } from "react";
@@ -8560,7 +8581,7 @@ var PromptInputSubmit = ({
8560
8581
  } else if (status === "streaming") {
8561
8582
  Icon = /* @__PURE__ */ jsx29(SquareIcon, { className: "size-4" });
8562
8583
  } else if (status === "error") {
8563
- Icon = /* @__PURE__ */ jsx29(XIcon4, { className: "size-4" });
8584
+ Icon = /* @__PURE__ */ jsx29(XIcon5, { className: "size-4" });
8564
8585
  }
8565
8586
  const handleClick = useCallback15(
8566
8587
  (e) => {
@@ -9539,7 +9560,10 @@ function PiChatPanel({
9539
9560
  const runtimeDependenciesNotice = composerNoticeForRuntimeDependencies(workspaceWarmupStatus);
9540
9561
  const workspaceWarmupBlocked = Boolean(warmupNotice);
9541
9562
  const activeBlockers = useMemo12(
9542
- () => composerBlockers.filter((blocker) => !blocker.sessionId || blocker.sessionId === activeSessionId),
9563
+ // A missing active session id means a single/sessionless chat host. In that
9564
+ // mode, keep scoped blockers visible instead of hiding the only attention UI.
9565
+ // Multi-session hosts should pass a session id so unrelated blockers filter out.
9566
+ () => composerBlockers.filter((blocker) => !blocker.sessionId || !activeSessionId || blocker.sessionId === activeSessionId),
9543
9567
  [activeSessionId, composerBlockers]
9544
9568
  );
9545
9569
  const canonicalMessages = selectedChatState ? selectMessagesForRender(selectedChatState) : [];
@@ -889,6 +889,12 @@
889
889
  border-color: color-mix(in oklab, var(--input) 60%, transparent);
890
890
  }
891
891
  }
892
+ .border-primary\/25 {
893
+ border-color: var(--primary);
894
+ @supports (color: color-mix(in lab, red, red)) {
895
+ border-color: color-mix(in oklab, var(--primary) 25%, transparent);
896
+ }
897
+ }
892
898
  .border-primary\/30 {
893
899
  border-color: var(--primary);
894
900
  @supports (color: color-mix(in lab, red, red)) {
@@ -1,5 +1,5 @@
1
- import { o as WorkspaceRuntimeContext, S as Sandbox, g as SandboxHandleStore, f as SandboxHandleRecord, W as Workspace, j as TelemetrySink, F as FileSearch, i as Stat, E as Entry, c as ExecResult, q as WorkspaceChangeEvent, b as ExecOptions, P as PluginRestartWarning, A as AgentTool, r as AgentHarnessFactory } from '../agentPluginEvents-Dgm57gEU.js';
2
- export { t as AgentHarnessFactoryInput } from '../agentPluginEvents-Dgm57gEU.js';
1
+ import { o as WorkspaceRuntimeContext, S as Sandbox, g as SandboxHandleStore, f as SandboxHandleRecord, W as Workspace, j as TelemetrySink, q as ToolReadinessRequirement, F as FileSearch, i as Stat, E as Entry, c as ExecResult, r as WorkspaceChangeEvent, b as ExecOptions, P as PluginRestartWarning, A as AgentTool, t as AgentHarnessFactory } from '../agentPluginEvents-BBqEQ_rc.js';
2
+ export { u as AgentHarnessFactoryInput } from '../agentPluginEvents-BBqEQ_rc.js';
3
3
  import { Sandbox as Sandbox$1 } from '@vercel/sandbox';
4
4
  import { FastifyInstance, FastifyRequest, FastifyPluginAsync } from 'fastify';
5
5
  import { PackageSource, ExtensionFactory, SettingsManager } from '@mariozechner/pi-coding-agent';
@@ -317,8 +317,107 @@ interface ProvisionWorkspaceRuntimeOptions {
317
317
 
318
318
  declare function provisionWorkspaceRuntime(opts: ProvisionWorkspaceRuntimeOptions): Promise<WorkspaceProvisioningResult>;
319
319
 
320
+ type ReadyState = 'provisioning' | 'ready' | 'degraded';
321
+ type CapabilityState = 'not-started' | 'preparing' | 'ready' | 'failed';
322
+ interface CapabilityReadinessDetail {
323
+ state: CapabilityState;
324
+ requirement?: ToolReadinessRequirement;
325
+ startedAt?: string;
326
+ completedAt?: string;
327
+ errorCode?: string;
328
+ causeCode?: string;
329
+ retryable?: boolean;
330
+ message?: string;
331
+ }
332
+ interface AgentCapabilityReadiness {
333
+ chat: CapabilityReadinessDetail;
334
+ workspace: CapabilityReadinessDetail;
335
+ runtimeDependencies: CapabilityReadinessDetail;
336
+ }
337
+ interface ReadyStatusEvent {
338
+ state: ReadyState;
339
+ sandboxReady: boolean;
340
+ harnessReady: boolean;
341
+ capabilities: AgentCapabilityReadiness;
342
+ message?: string;
343
+ timestamp: string;
344
+ }
345
+ interface ReadinessSnapshot {
346
+ sandboxReady: boolean;
347
+ harnessReady: boolean;
348
+ capabilities: AgentCapabilityReadiness;
349
+ degradedReason?: string;
350
+ }
351
+ type StatusHandler = (event: ReadyStatusEvent) => void;
352
+ declare class ReadyStatusTracker {
353
+ private _sandboxReady;
354
+ private _harnessReady;
355
+ private _degradedReason?;
356
+ private _capabilities;
357
+ private subscribers;
358
+ constructor(opts?: {
359
+ sandboxReady?: boolean;
360
+ harnessReady?: boolean;
361
+ capabilities?: Partial<AgentCapabilityReadiness>;
362
+ });
363
+ get state(): ReadyState;
364
+ isReady(): boolean;
365
+ getReadiness(): ReadinessSnapshot;
366
+ getCapabilities(): AgentCapabilityReadiness;
367
+ updateCapability(name: keyof AgentCapabilityReadiness, detail: CapabilityReadinessDetail): void;
368
+ updateRuntimeDependencies(detail: CapabilityReadinessDetail): void;
369
+ markSandboxReady(): void;
370
+ markHarnessReady(): void;
371
+ markDegraded(reason: string): void;
372
+ clearDegraded(): void;
373
+ subscribe(handler: StatusHandler): () => void;
374
+ private emit;
375
+ private snapshot;
376
+ }
377
+
320
378
  type BuiltinRuntimeModeId = 'direct' | 'local' | 'vercel-sandbox';
321
379
  type RuntimeModeId = BuiltinRuntimeModeId | (string & {});
380
+ interface RuntimeModeReadinessHooks {
381
+ initialSandboxReady?: boolean;
382
+ initialWorkspaceReadiness?: CapabilityReadinessDetail;
383
+ onTrackerCreated?: (tracker: ReadyStatusTracker) => void;
384
+ }
385
+ type RuntimeCachedBindingHealthCheckResult = {
386
+ state: 'ok';
387
+ } | {
388
+ state: 'recreate';
389
+ message?: string;
390
+ error?: unknown;
391
+ };
392
+ interface RuntimeCachedBindingHealthCheck {
393
+ intervalMs?: number;
394
+ check(ctx: {
395
+ runtimeBundle: RuntimeBundle;
396
+ workspaceId: string;
397
+ }): Promise<RuntimeCachedBindingHealthCheckResult>;
398
+ }
399
+ type RuntimeBashStrategy = {
400
+ kind: 'host';
401
+ preserveHostHome?: boolean;
402
+ } | {
403
+ kind: 'local-sandbox';
404
+ sandboxRoot: string;
405
+ } | {
406
+ kind: 'remote';
407
+ defaultPath?: string;
408
+ };
409
+ interface RuntimeRemoteWorkspacePathOptions {
410
+ rootAliases?: string[];
411
+ toRemotePath?: (value: string) => string;
412
+ toRuntimePath?: (value: string) => string;
413
+ sanitizeErrorText?: (value: string) => string;
414
+ }
415
+ type RuntimeFilesystemStrategy = {
416
+ kind: 'host';
417
+ } | {
418
+ kind: 'remote-workspace';
419
+ pathOptions?: RuntimeRemoteWorkspacePathOptions;
420
+ };
322
421
  interface RuntimeModeAdapter {
323
422
  readonly id: RuntimeModeId;
324
423
  /**
@@ -327,8 +426,14 @@ interface RuntimeModeAdapter {
327
426
  * host-side fs checks/prompts are safe without hard-coding sandbox IDs.
328
427
  */
329
428
  readonly workspaceFsCapability?: Workspace['fsCapability'];
429
+ readonly readiness?: RuntimeModeReadinessHooks;
430
+ readonly cachedBindingHealthCheck?: RuntimeCachedBindingHealthCheck;
330
431
  create(ctx: ModeContext): Promise<RuntimeBundle>;
331
432
  createProvisioningAdapter?(runtimeLayout: BoringAgentRuntimePaths, ctx?: ModeContext): WorkspaceProvisioningAdapter;
433
+ getRuntimeLayoutRoot?(ctx: ModeContext): string;
434
+ evictCachedRuntime?(ctx: {
435
+ workspaceId: string;
436
+ }): void;
332
437
  dispose?(): Promise<void>;
333
438
  }
334
439
  interface ModeContext {
@@ -350,6 +455,12 @@ interface RuntimeBundle {
350
455
  workspace: Workspace;
351
456
  sandbox: Sandbox;
352
457
  fileSearch: FileSearch;
458
+ /** Optional per-execution runtime env provider for local/direct operations that do not call Sandbox.exec. */
459
+ getRuntimeEnv?: () => Promise<Record<string, string>>;
460
+ /** Runtime-owned bash execution strategy, consumed by the agent bash tool builder. */
461
+ bash?: RuntimeBashStrategy;
462
+ /** Runtime-owned filesystem strategy, consumed by the agent filesystem tool builder. */
463
+ filesystem?: RuntimeFilesystemStrategy;
353
464
  }
354
465
 
355
466
  declare const REMOTE_WORKER_RUNTIME_CWD = "/workspace";
@@ -578,7 +689,10 @@ declare function createVercelProvisioningAdapter(options: CreateVercelProvisioni
578
689
 
579
690
  declare function hasBwrap(): boolean;
580
691
  declare function autoDetectMode(): RuntimeModeId;
581
- declare function resolveMode(mode?: RuntimeModeId): RuntimeModeAdapter;
692
+ interface ResolveModeOptions {
693
+ sandboxHandleStore?: SandboxHandleStore;
694
+ }
695
+ declare function resolveMode(mode?: RuntimeModeId, opts?: ResolveModeOptions): RuntimeModeAdapter;
582
696
 
583
697
  interface ReloadHookDiagnostic {
584
698
  source: string;
@@ -597,6 +711,17 @@ interface ReloadHookResult {
597
711
  diagnostics?: ReadonlyArray<ReloadHookDiagnostic>;
598
712
  }
599
713
 
714
+ interface RuntimeEnvContributionContext {
715
+ workspaceId: string;
716
+ workspaceRoot: string;
717
+ runtimeMode: RuntimeModeId;
718
+ runtimeBundle: RuntimeBundle;
719
+ }
720
+ interface RuntimeEnvContribution {
721
+ id: string;
722
+ getEnv(ctx: RuntimeEnvContributionContext): Record<string, string> | Promise<Record<string, string>>;
723
+ }
724
+
600
725
  type PiPackageSource = PackageSource;
601
726
  declare const PI_PACKAGE_RESOURCE_FILTERS: readonly ["extensions", "skills", "prompts", "themes"];
602
727
  declare function piPackageSourceKey(source: PiPackageSource): string;
@@ -768,6 +893,14 @@ interface CreateAgentAppOptions {
768
893
  telemetry?: TelemetrySink;
769
894
  /** Optional billing sink for native Pi usage (see AgentMeteringSink). */
770
895
  metering?: AgentMeteringSink;
896
+ /** Generic runtime env contributors. Agent stays workspace-neutral; hosts decide env names/values. */
897
+ runtimeEnvContributions?: RuntimeEnvContribution[];
898
+ /** Runtime-aware provisioning hook. Runs after Workspace/Sandbox creation and before tools/harness. */
899
+ runtimeProvisioner?: (ctx: {
900
+ workspaceRoot: string;
901
+ runtimeMode: RuntimeModeId;
902
+ runtimeBundle: RuntimeBundle;
903
+ }) => Promise<void>;
771
904
  /** Optional explicit file-backed session directory. Mostly for tests/hosts. */
772
905
  sessionDir?: string;
773
906
  /**
@@ -873,6 +1006,8 @@ interface RegisterAgentRoutesOptions {
873
1006
  sandboxHandleStore?: SandboxHandleStore;
874
1007
  getWorkspaceId?: (request: FastifyRequest) => string | Promise<string>;
875
1008
  getWorkspaceRoot?: (workspaceId: string, request: FastifyRequest) => string | Promise<string>;
1009
+ /** Generic runtime env contributors. Agent stays workspace-neutral; hosts decide env names/values. */
1010
+ runtimeEnvContributions?: RuntimeEnvContribution[];
876
1011
  /**
877
1012
  * Optional runtime reconciliation hook. Callers own plugin discovery and may
878
1013
  * call provisionWorkspaceRuntime() with the normalized structural inputs.
@@ -927,4 +1062,4 @@ interface Logger {
927
1062
  }
928
1063
  declare function createLogger(prefix: string): Logger;
929
1064
 
930
- export { AgentHarnessFactory, type AgentMeteringSink, type BoringAgentRuntimePaths, type BuiltinRuntimeModeId, type BwrapResourceLimits, type CreateAgentAppOptions, type CreateBwrapSandboxOptions, type CreateVercelProvisioningAdapterOptions, type DeploymentSnapshotProvider, type DeploymentSnapshotRecipe, type DeploymentSnapshotResult, type DeploymentSnapshotStatus, FileHandleStore, type LogFields, type Logger, type MeteringErrorLogger, type MeteringReleaseInput, type MeteringReleaseReason, type MeteringReservationResult, type MeteringReserveInput, type MeteringRunKind, type MeteringRunScope, type MeteringRunStatus, type MeteringSettleInput, type MeteringUsage, type MeteringUsageInput, type ModeContext, PI_PACKAGE_RESOURCE_FILTERS, type PiExtensionFactory, type PiHarnessOptions, type PiPackageSource, type PluginSkillSource, type ProvisionRuntimeWorkspaceOptions, type ProvisionWorkspaceRuntimeOptions, type ProvisioningArtifactRequest, REMOTE_WORKER_PROVIDER, REMOTE_WORKER_RUNTIME_CWD, type RegisterAgentRoutesOptions, RemoteWorkerClient, RemoteWorkerClientError, type RemoteWorkerClientOptions, type RemoteWorkerErrorPayload, type RemoteWorkerExecRequest, type RemoteWorkerExecResponse, type RemoteWorkerFsEventEnvelope, type RemoteWorkerModeAdapterOptions, type RemoteWorkerWorkspaceOp, type RemoteWorkerWorkspaceResult, type RuntimeBundle, type RuntimeModeAdapter, type RuntimeModeId, type RuntimeNodePackageSpec$1 as RuntimeNodePackageSpec, type RuntimeProvisioningContribution$1 as RuntimeProvisioningContribution, type RuntimePythonSpec$1 as RuntimePythonSpec, type RuntimeTemplateContribution$1 as RuntimeTemplateContribution, type RuntimeWorkspaceProvisioningResult, type SnapshotBakeOptions, type SnapshotBakeResult, UV_SETUP_COMMANDS, VERCEL_PROVISIONING_CACHE_ROOT, VERCEL_SANDBOX_WORKSPACE_ROOT, UV_SETUP_COMMANDS as VERCEL_UV_SETUP_COMMANDS, type VercelBakeClient, type VercelBakeSandbox, type VercelDeploymentSnapshotOptions, WORKER_INTERNAL_TOKEN_HEADER, WORKER_REQUEST_ID_HEADER, WORKER_WORKSPACE_ID_HEADER, type WorkspaceProvisioningAdapter, type WorkspaceProvisioningExecResult, type WorkspaceProvisioningResult, applyCspHeaders, autoDetectMode, bakeSnapshotIfNeeded, buildDeploymentSnapshotRecipe, buildPackageHash, buildSnapshotRecipeHash, compactPiPackages, constantTimeTokenEqual, createAgentApp, createBwrapSandbox, createDirectSandbox, createLogger, createNodeWorkspace, createRemoteWorkerModeAdapter, createRemoteWorkerSandbox, createRemoteWorkerWorkspace, createResourceSettingsManager, createVercelDeploymentSnapshotProvider, createVercelProvisioningAdapter, createVercelSandboxWorkspace, decodeBytesFromWorker, encodeBytesForWorker, fileRoutes, getBoringAgentPathEntries, getBoringAgentRuntimeEnv, getBoringAgentRuntimePaths, hasBwrap, mergePiPackageSources, normalizeMeteringUsage, piPackageSourceKey, prepareDeploymentSnapshot, prepareVercelDeploymentSnapshot, provisionRuntimeWorkspace, provisionWorkspaceRuntime, registerAgentRoutes, resolveMode, resolveSandboxHandle };
1065
+ export { AgentHarnessFactory, type AgentMeteringSink, type BoringAgentRuntimePaths, type BuiltinRuntimeModeId, type BwrapResourceLimits, type CreateAgentAppOptions, type CreateBwrapSandboxOptions, type CreateVercelProvisioningAdapterOptions, type DeploymentSnapshotProvider, type DeploymentSnapshotRecipe, type DeploymentSnapshotResult, type DeploymentSnapshotStatus, FileHandleStore, type LogFields, type Logger, type MeteringErrorLogger, type MeteringReleaseInput, type MeteringReleaseReason, type MeteringReservationResult, type MeteringReserveInput, type MeteringRunKind, type MeteringRunScope, type MeteringRunStatus, type MeteringSettleInput, type MeteringUsage, type MeteringUsageInput, type ModeContext, PI_PACKAGE_RESOURCE_FILTERS, type PiExtensionFactory, type PiHarnessOptions, type PiPackageSource, type PluginSkillSource, type ProvisionRuntimeWorkspaceOptions, type ProvisionWorkspaceRuntimeOptions, type ProvisioningArtifactRequest, REMOTE_WORKER_PROVIDER, REMOTE_WORKER_RUNTIME_CWD, type RegisterAgentRoutesOptions, RemoteWorkerClient, RemoteWorkerClientError, type RemoteWorkerClientOptions, type RemoteWorkerErrorPayload, type RemoteWorkerExecRequest, type RemoteWorkerExecResponse, type RemoteWorkerFsEventEnvelope, type RemoteWorkerModeAdapterOptions, type RemoteWorkerWorkspaceOp, type RemoteWorkerWorkspaceResult, type RuntimeBundle, type RuntimeEnvContribution, type RuntimeEnvContributionContext, type RuntimeModeAdapter, type RuntimeModeId, type RuntimeNodePackageSpec$1 as RuntimeNodePackageSpec, type RuntimeProvisioningContribution$1 as RuntimeProvisioningContribution, type RuntimePythonSpec$1 as RuntimePythonSpec, type RuntimeTemplateContribution$1 as RuntimeTemplateContribution, type RuntimeWorkspaceProvisioningResult, type SnapshotBakeOptions, type SnapshotBakeResult, UV_SETUP_COMMANDS, VERCEL_PROVISIONING_CACHE_ROOT, VERCEL_SANDBOX_WORKSPACE_ROOT, UV_SETUP_COMMANDS as VERCEL_UV_SETUP_COMMANDS, type VercelBakeClient, type VercelBakeSandbox, type VercelDeploymentSnapshotOptions, WORKER_INTERNAL_TOKEN_HEADER, WORKER_REQUEST_ID_HEADER, WORKER_WORKSPACE_ID_HEADER, type WorkspaceProvisioningAdapter, type WorkspaceProvisioningExecResult, type WorkspaceProvisioningResult, applyCspHeaders, autoDetectMode, bakeSnapshotIfNeeded, buildDeploymentSnapshotRecipe, buildPackageHash, buildSnapshotRecipeHash, compactPiPackages, constantTimeTokenEqual, createAgentApp, createBwrapSandbox, createDirectSandbox, createLogger, createNodeWorkspace, createRemoteWorkerModeAdapter, createRemoteWorkerSandbox, createRemoteWorkerWorkspace, createResourceSettingsManager, createVercelDeploymentSnapshotProvider, createVercelProvisioningAdapter, createVercelSandboxWorkspace, decodeBytesFromWorker, encodeBytesForWorker, fileRoutes, getBoringAgentPathEntries, getBoringAgentRuntimeEnv, getBoringAgentRuntimePaths, hasBwrap, mergePiPackageSources, normalizeMeteringUsage, piPackageSourceKey, prepareDeploymentSnapshot, prepareVercelDeploymentSnapshot, provisionRuntimeWorkspace, provisionWorkspaceRuntime, registerAgentRoutes, resolveMode, resolveSandboxHandle };