Skip to content

@codesoul-co/hypha-core / contracts/sandbox-provider

模块用法

用于声明并运行时校验契约。Sandbox provider 模块公开 6 接口、3 类型。

从包入口导入

ts
import type {
  SandboxCapabilityDerivationInput,
  SandboxCapabilityNegotiationRequest,
  SandboxCapabilityNegotiationResult,
  SandboxCapabilityRequirement,
  SandboxProvider,
  SandboxProviderFactory,
  SandboxCapabilityName,
  SandboxProviderSelection,
} from '@codesoul-co/hypha-core';

// 完整导出列表见下方。

使用要点

  • 9 个类型/接口用于应用代码、Adapter 或测试中的静态契约;请使用 import type,运行时不应依赖它们。

公共导出

Symbol种类签名说明
SandboxCapabilityDerivationInput接口interface SandboxCapabilityDerivationInputSandbox Capability Derivation Input 接口,共包含 3 个公开字段或方法。
SandboxCapabilityNegotiationRequest接口interface SandboxCapabilityNegotiationRequestSandbox Capability Negotiation Request 接口,共包含 4 个公开字段或方法。
SandboxCapabilityNegotiationResult接口interface SandboxCapabilityNegotiationResultSandbox Capability Negotiation Result 接口,共包含 6 个公开字段或方法。
SandboxCapabilityRequirement接口interface SandboxCapabilityRequirementSandbox Capability Requirement 接口,共包含 3 个公开字段或方法。
SandboxProvider接口interface SandboxProviderSandbox Provider 接口,共包含 11 个公开字段或方法。
SandboxProviderFactory接口interface SandboxProviderFactoryComposition-root contract for constructing a configured SandboxProvider. Concrete adapters own their options; core only knows the provider type and stable id.
SandboxCapabilityName类型type SandboxCapabilityName = keyof SandboxProviderCapabilitiesSandbox Capability Name 公共类型别名;完整类型表达式见声明。
SandboxProviderSelection类型type SandboxProviderSelection = Pick<ExecutionEnvironmentSpec, 'provider' | 'providerRef'>Sandbox Provider Selection 公共类型别名;完整类型表达式见声明。
SandboxProviderType类型type SandboxProviderType = ExecutionEnvironmentSpec['provider']Sandbox Provider Type 公共类型别名;完整类型表达式见声明。

SandboxCapabilityDerivationInput

Sandbox Capability Derivation Input 接口,共包含 3 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { SandboxCapabilityDerivationInput } from '@codesoul-co/hypha-core';
  • 源码模块: contracts/sandbox-provider

声明

text
export interface SandboxCapabilityDerivationInput {
    environment: ExecutionEnvironmentSpec;
    command?: Pick<CommandExecutionRequest, 'snapshotBefore' | 'snapshotAfter' | 'snapshotOnFailure'>;
    additionalRequirements?: SandboxCapabilityRequirement[];
}

契约成员

成员种类签名说明
additionalRequirements属性additionalRequirements?: SandboxCapabilityRequirement[]公开属性;类型、只读和可选状态以签名列为准。
command属性command?: Pick<CommandExecutionRequest, "snapshotBefore" | "snapshotAfter" | "snapshotOnFailure">公开属性;类型、只读和可选状态以签名列为准。
environment属性environment: ExecutionEnvironmentSpec公开属性;类型、只读和可选状态以签名列为准。

SandboxCapabilityNegotiationRequest

Sandbox Capability Negotiation Request 接口,共包含 4 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { SandboxCapabilityNegotiationRequest } from '@codesoul-co/hypha-core';
  • 源码模块: contracts/sandbox-provider

声明

text
export interface SandboxCapabilityNegotiationRequest {
    providerId: string;
    capabilities: SandboxProviderCapabilities;
    requirements: SandboxCapabilityRequirement[];
    evaluatedAt: string;
}

契约成员

成员种类签名说明
capabilities属性capabilities: SandboxProviderCapabilities公开属性;类型、只读和可选状态以签名列为准。
evaluatedAt属性evaluatedAt: string公开属性;类型、只读和可选状态以签名列为准。
providerId属性providerId: string公开属性;类型、只读和可选状态以签名列为准。
requirements属性requirements: SandboxCapabilityRequirement[]公开属性;类型、只读和可选状态以签名列为准。

SandboxCapabilityNegotiationResult

Sandbox Capability Negotiation Result 接口,共包含 6 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { SandboxCapabilityNegotiationResult } from '@codesoul-co/hypha-core';
  • 源码模块: contracts/sandbox-provider

声明

text
export interface SandboxCapabilityNegotiationResult {
    providerId: string;
    compatible: boolean;
    capabilities: SandboxProviderCapabilities;
    requirements: SandboxCapabilityRequirement[];
    missingCapabilities: SandboxCapabilityName[];
    evaluatedAt: string;
}

契约成员

成员种类签名说明
capabilities属性capabilities: SandboxProviderCapabilities公开属性;类型、只读和可选状态以签名列为准。
compatible属性compatible: boolean公开属性;类型、只读和可选状态以签名列为准。
evaluatedAt属性evaluatedAt: string公开属性;类型、只读和可选状态以签名列为准。
missingCapabilities属性missingCapabilities: (keyof SandboxProviderCapabilities)[]公开属性;类型、只读和可选状态以签名列为准。
providerId属性providerId: string公开属性;类型、只读和可选状态以签名列为准。
requirements属性requirements: SandboxCapabilityRequirement[]公开属性;类型、只读和可选状态以签名列为准。

SandboxCapabilityRequirement

Sandbox Capability Requirement 接口,共包含 3 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { SandboxCapabilityRequirement } from '@codesoul-co/hypha-core';
  • 源码模块: contracts/sandbox-provider

声明

text
export interface SandboxCapabilityRequirement {
    capability: SandboxCapabilityName;
    source: 'environment' | 'command' | 'policy' | 'runtime';
    reason: string;
}

契约成员

成员种类签名说明
capability属性capability: keyof SandboxProviderCapabilities公开属性;类型、只读和可选状态以签名列为准。
reason属性reason: string公开属性;类型、只读和可选状态以签名列为准。
source属性source: "policy" | "environment" | "command" | "runtime"公开属性;类型、只读和可选状态以签名列为准。

SandboxProvider

Sandbox Provider 接口,共包含 11 个公开字段或方法。

声明

text
export interface SandboxProvider {
    readonly id: string;
    capabilities(): Promise<SandboxProviderCapabilities>;
    create(request: SandboxCreateRequest): Promise<SandboxRecord>;
    start(request: SandboxStartRequest): Promise<SandboxRecord>;
    execute(request: CommandExecutionRequest): Promise<CommandExecutionResult>;
    cancel(request: ExecutionCancelRequest): Promise<void>;
    terminate(request: SandboxTerminateRequest): Promise<void>;
    status(request: SandboxStatusRequest): Promise<SandboxRecord | null>;
    cleanup(request: SandboxCleanupRequest): Promise<void>;
    health(): Promise<ProviderHealth>;
    close?(): Promise<void>;
}

契约成员

成员种类签名说明
cancel方法cancel(request: ExecutionCancelRequest): Promise<void>公开方法;参数与返回类型以签名列为准。
capabilities方法capabilities(): Promise<SandboxProviderCapabilities>公开方法;参数与返回类型以签名列为准。
cleanup方法cleanup(request: SandboxCleanupRequest): Promise<void>公开方法;参数与返回类型以签名列为准。
close方法close?(): Promise<void>公开方法;参数与返回类型以签名列为准。
create方法create(request: SandboxCreateRequest): Promise<SandboxRecord>公开方法;参数与返回类型以签名列为准。
execute方法execute(request: CommandExecutionRequest): Promise<CommandExecutionResult>公开方法;参数与返回类型以签名列为准。
health方法health(): Promise<ProviderHealth>公开方法;参数与返回类型以签名列为准。
id属性readonly id: string公开属性;类型、只读和可选状态以签名列为准。
start方法start(request: SandboxStartRequest): Promise<SandboxRecord>公开方法;参数与返回类型以签名列为准。
status方法status(request: SandboxStatusRequest): Promise<SandboxRecord | null>公开方法;参数与返回类型以签名列为准。
terminate方法terminate(request: SandboxTerminateRequest): Promise<void>公开方法;参数与返回类型以签名列为准。

SandboxProviderFactory

Composition-root contract for constructing a configured SandboxProvider. Concrete adapters own their options; core only knows the provider type and stable id.

  • 种类: 接口
  • 导入: import type { SandboxProviderFactory } from '@codesoul-co/hypha-core';
  • 源码模块: contracts/sandbox-provider

声明

text
export interface SandboxProviderFactory {
    readonly providerType: SandboxProviderType;
    readonly providerId: string;
    create(): SandboxProvider | Promise<SandboxProvider>;
}

契约成员

成员种类签名说明
create方法create(): SandboxProvider | Promise<SandboxProvider>公开方法;参数与返回类型以签名列为准。
providerId属性readonly providerId: string公开属性;类型、只读和可选状态以签名列为准。
providerType属性readonly providerType: "mock" | "local_process" | "docker" | "remote_sandbox" | "custom"公开属性;类型、只读和可选状态以签名列为准。

SandboxCapabilityName

Sandbox Capability Name 公共类型别名;完整类型表达式见声明。

  • 种类: 类型
  • 导入: import type { SandboxCapabilityName } from '@codesoul-co/hypha-core';
  • 源码模块: contracts/sandbox-provider

声明

text
export type SandboxCapabilityName = keyof SandboxProviderCapabilities;

SandboxProviderSelection

Sandbox Provider Selection 公共类型别名;完整类型表达式见声明。

  • 种类: 类型
  • 导入: import type { SandboxProviderSelection } from '@codesoul-co/hypha-core';
  • 源码模块: contracts/sandbox-provider

声明

text
export type SandboxProviderSelection = Pick<ExecutionEnvironmentSpec, 'provider' | 'providerRef'>;

SandboxProviderType

Sandbox Provider Type 公共类型别名;完整类型表达式见声明。

声明

text
export type SandboxProviderType = ExecutionEnvironmentSpec['provider'];