Skip to content

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

模块用法

用于声明并运行时校验契约。Remote sandbox provider 模块公开 10 接口、1 类型。

从包入口导入

ts
import type {
  RemoteArtifactChunk,
  RemoteArtifactChunkSequenceExpectation,
  RemoteArtifactDownloadRequest,
  RemoteArtifactTransferReceipt,
  RemoteArtifactUploadRequest,
  RemoteExecutionReconciliationRequest,
  RemoteExecutionReconciliationResult,
  RemoteOutputStreamRequest,
} from '@codesoul-co/hypha-core';

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

使用要点

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

公共导出

Symbol种类签名说明
RemoteArtifactChunk接口interface RemoteArtifactChunkRemote Artifact Chunk 接口,共包含 9 个公开字段或方法。
RemoteArtifactChunkSequenceExpectation接口interface RemoteArtifactChunkSequenceExpectationRemote Artifact Chunk Sequence Expectation 接口,共包含 3 个公开字段或方法。
RemoteArtifactDownloadRequest接口interface RemoteArtifactDownloadRequestRemote Artifact Download Request 接口,共包含 9 个公开字段或方法。
RemoteArtifactTransferReceipt接口interface RemoteArtifactTransferReceiptRemote Artifact Transfer Receipt 接口,共包含 12 个公开字段或方法。
RemoteArtifactUploadRequest接口interface RemoteArtifactUploadRequestRemote Artifact Upload Request 接口,共包含 12 个公开字段或方法。
RemoteExecutionReconciliationRequest接口interface RemoteExecutionReconciliationRequestRemote Execution Reconciliation Request 接口,共包含 8 个公开字段或方法。
RemoteExecutionReconciliationResult接口interface RemoteExecutionReconciliationResultRemote Execution Reconciliation Result 接口,共包含 8 个公开字段或方法。
RemoteOutputStreamRequest接口interface RemoteOutputStreamRequestRemote Output Stream Request 接口,共包含 8 个公开字段或方法。
RemoteSandboxProvider接口interface RemoteSandboxProvider extends SandboxProviderRemote Sandbox Provider 接口,共包含 15 个公开字段或方法。
RemoteSandboxProviderCapabilities接口interface RemoteSandboxProviderCapabilities extends SandboxProviderCapabilitiesRemote Sandbox Provider Capabilities 接口,共包含 12 个公开字段或方法。
RemoteExecutionReconciliationState类型type RemoteExecutionReconciliationState = 'not_found' | 'accepted' | 'running' | 'completed' | 'failed' | 'cancelled' | 'unknown'Remote Execution Reconciliation State 公共类型别名;完整类型表达式见声明。

RemoteArtifactChunk

Remote Artifact Chunk 接口,共包含 9 个公开字段或方法。

声明

text
export interface RemoteArtifactChunk {
    transferId: string;
    artifactRef: string;
    sequence: number;
    offsetBytes: number;
    encoding: 'base64';
    content: string;
    byteLength: number;
    contentHash: string;
    final: boolean;
}

契约成员

成员种类签名说明
artifactRef属性artifactRef: string公开属性;类型、只读和可选状态以签名列为准。
byteLength属性byteLength: number公开属性;类型、只读和可选状态以签名列为准。
content属性content: string公开属性;类型、只读和可选状态以签名列为准。
contentHash属性contentHash: string公开属性;类型、只读和可选状态以签名列为准。
encoding属性encoding: "base64"公开属性;类型、只读和可选状态以签名列为准。
final属性final: boolean公开属性;类型、只读和可选状态以签名列为准。
offsetBytes属性offsetBytes: number公开属性;类型、只读和可选状态以签名列为准。
sequence属性sequence: number公开属性;类型、只读和可选状态以签名列为准。
transferId属性transferId: string公开属性;类型、只读和可选状态以签名列为准。

RemoteArtifactChunkSequenceExpectation

Remote Artifact Chunk Sequence Expectation 接口,共包含 3 个公开字段或方法。

声明

text
export interface RemoteArtifactChunkSequenceExpectation {
    transferId: string;
    artifactRef: string;
    sizeBytes: number;
}

契约成员

成员种类签名说明
artifactRef属性artifactRef: string公开属性;类型、只读和可选状态以签名列为准。
sizeBytes属性sizeBytes: number公开属性;类型、只读和可选状态以签名列为准。
transferId属性transferId: string公开属性;类型、只读和可选状态以签名列为准。

RemoteArtifactDownloadRequest

Remote Artifact Download Request 接口,共包含 9 个公开字段或方法。

声明

text
export interface RemoteArtifactDownloadRequest {
    operationId: string;
    sandboxId: string;
    principal: ExecutionPrincipal;
    artifactRef: string;
    maxBytes: number;
    expectedContentHash?: string;
    correlationId?: string;
    causationId?: string;
    metadata?: Record<string, unknown>;
}

契约成员

成员种类签名说明
artifactRef属性artifactRef: string公开属性;类型、只读和可选状态以签名列为准。
causationId属性causationId?: string公开属性;类型、只读和可选状态以签名列为准。
correlationId属性correlationId?: string公开属性;类型、只读和可选状态以签名列为准。
expectedContentHash属性expectedContentHash?: string公开属性;类型、只读和可选状态以签名列为准。
maxBytes属性maxBytes: number公开属性;类型、只读和可选状态以签名列为准。
metadata属性metadata?: Record<string, unknown>公开属性;类型、只读和可选状态以签名列为准。
operationId属性operationId: string公开属性;类型、只读和可选状态以签名列为准。
principal属性principal: ExecutionPrincipal公开属性;类型、只读和可选状态以签名列为准。
sandboxId属性sandboxId: string公开属性;类型、只读和可选状态以签名列为准。

RemoteArtifactTransferReceipt

Remote Artifact Transfer Receipt 接口,共包含 12 个公开字段或方法。

声明

text
export interface RemoteArtifactTransferReceipt {
    id: string;
    providerId: string;
    sandboxId: string;
    artifactRef: string;
    direction: 'upload' | 'download';
    status: 'accepted' | 'completed' | 'rejected' | 'unknown';
    sizeBytes: number;
    contentHash?: string;
    providerTransferRef?: string;
    issuedAt: string;
    receiptHash: string;
    metadata?: Record<string, unknown>;
}

契约成员

成员种类签名说明
artifactRef属性artifactRef: string公开属性;类型、只读和可选状态以签名列为准。
contentHash属性contentHash?: string公开属性;类型、只读和可选状态以签名列为准。
direction属性direction: "upload" | "download"公开属性;类型、只读和可选状态以签名列为准。
id属性id: string公开属性;类型、只读和可选状态以签名列为准。
issuedAt属性issuedAt: string公开属性;类型、只读和可选状态以签名列为准。
metadata属性metadata?: Record<string, unknown>公开属性;类型、只读和可选状态以签名列为准。
providerId属性providerId: string公开属性;类型、只读和可选状态以签名列为准。
providerTransferRef属性providerTransferRef?: string公开属性;类型、只读和可选状态以签名列为准。
receiptHash属性receiptHash: string公开属性;类型、只读和可选状态以签名列为准。
sandboxId属性sandboxId: string公开属性;类型、只读和可选状态以签名列为准。
sizeBytes属性sizeBytes: number公开属性;类型、只读和可选状态以签名列为准。
status属性status: "unknown" | "accepted" | "completed" | "rejected"公开属性;类型、只读和可选状态以签名列为准。

RemoteArtifactUploadRequest

Remote Artifact Upload Request 接口,共包含 12 个公开字段或方法。

声明

text
export interface RemoteArtifactUploadRequest {
    operationId: string;
    sandboxId: string;
    principal: ExecutionPrincipal;
    expectedSandboxRevision: number;
    artifactRef: string;
    sizeBytes: number;
    contentHash: string;
    mediaType?: string;
    idempotencyKey: string;
    correlationId?: string;
    causationId?: string;
    metadata?: Record<string, unknown>;
}

契约成员

成员种类签名说明
artifactRef属性artifactRef: string公开属性;类型、只读和可选状态以签名列为准。
causationId属性causationId?: string公开属性;类型、只读和可选状态以签名列为准。
contentHash属性contentHash: string公开属性;类型、只读和可选状态以签名列为准。
correlationId属性correlationId?: string公开属性;类型、只读和可选状态以签名列为准。
expectedSandboxRevision属性expectedSandboxRevision: number公开属性;类型、只读和可选状态以签名列为准。
idempotencyKey属性idempotencyKey: string公开属性;类型、只读和可选状态以签名列为准。
mediaType属性mediaType?: string公开属性;类型、只读和可选状态以签名列为准。
metadata属性metadata?: Record<string, unknown>公开属性;类型、只读和可选状态以签名列为准。
operationId属性operationId: string公开属性;类型、只读和可选状态以签名列为准。
principal属性principal: ExecutionPrincipal公开属性;类型、只读和可选状态以签名列为准。
sandboxId属性sandboxId: string公开属性;类型、只读和可选状态以签名列为准。
sizeBytes属性sizeBytes: number公开属性;类型、只读和可选状态以签名列为准。

RemoteExecutionReconciliationRequest

Remote Execution Reconciliation Request 接口,共包含 8 个公开字段或方法。

声明

text
export interface RemoteExecutionReconciliationRequest {
    operationId: string;
    executionId: string;
    sandboxId: string;
    principal: ExecutionPrincipal;
    providerExecutionRef?: string;
    idempotencyKey?: string;
    correlationId?: string;
    causationId?: string;
}

契约成员

成员种类签名说明
causationId属性causationId?: string公开属性;类型、只读和可选状态以签名列为准。
correlationId属性correlationId?: string公开属性;类型、只读和可选状态以签名列为准。
executionId属性executionId: string公开属性;类型、只读和可选状态以签名列为准。
idempotencyKey属性idempotencyKey?: string公开属性;类型、只读和可选状态以签名列为准。
operationId属性operationId: string公开属性;类型、只读和可选状态以签名列为准。
principal属性principal: ExecutionPrincipal公开属性;类型、只读和可选状态以签名列为准。
providerExecutionRef属性providerExecutionRef?: string公开属性;类型、只读和可选状态以签名列为准。
sandboxId属性sandboxId: string公开属性;类型、只读和可选状态以签名列为准。

RemoteExecutionReconciliationResult

Remote Execution Reconciliation Result 接口,共包含 8 个公开字段或方法。

声明

text
export interface RemoteExecutionReconciliationResult {
    executionId: string;
    sandboxId: string;
    state: RemoteExecutionReconciliationState;
    providerExecutionRef?: string;
    observedAt: string;
    result?: CommandExecutionResult;
    receipt?: ExecutionReceipt;
    metadata?: Record<string, unknown>;
}

契约成员

成员种类签名说明
executionId属性executionId: string公开属性;类型、只读和可选状态以签名列为准。
metadata属性metadata?: Record<string, unknown>公开属性;类型、只读和可选状态以签名列为准。
observedAt属性observedAt: string公开属性;类型、只读和可选状态以签名列为准。
providerExecutionRef属性providerExecutionRef?: string公开属性;类型、只读和可选状态以签名列为准。
receipt属性receipt?: ExecutionReceipt公开属性;类型、只读和可选状态以签名列为准。
result属性result?: CommandExecutionResult公开属性;类型、只读和可选状态以签名列为准。
sandboxId属性sandboxId: string公开属性;类型、只读和可选状态以签名列为准。
state属性state: RemoteExecutionReconciliationState公开属性;类型、只读和可选状态以签名列为准。

RemoteOutputStreamRequest

Remote Output Stream Request 接口,共包含 8 个公开字段或方法。

声明

text
export interface RemoteOutputStreamRequest {
    operationId: string;
    executionId: string;
    principal: ExecutionPrincipal;
    fromSequence?: number;
    maxChunks?: number;
    follow?: boolean;
    correlationId?: string;
    causationId?: string;
}

契约成员

成员种类签名说明
causationId属性causationId?: string公开属性;类型、只读和可选状态以签名列为准。
correlationId属性correlationId?: string公开属性;类型、只读和可选状态以签名列为准。
executionId属性executionId: string公开属性;类型、只读和可选状态以签名列为准。
follow属性follow?: boolean公开属性;类型、只读和可选状态以签名列为准。
fromSequence属性fromSequence?: number公开属性;类型、只读和可选状态以签名列为准。
maxChunks属性maxChunks?: number公开属性;类型、只读和可选状态以签名列为准。
operationId属性operationId: string公开属性;类型、只读和可选状态以签名列为准。
principal属性principal: ExecutionPrincipal公开属性;类型、只读和可选状态以签名列为准。

RemoteSandboxProvider

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

声明

text
export interface RemoteSandboxProvider extends SandboxProvider {
    capabilities(): Promise<RemoteSandboxProviderCapabilities>;
    reconcileExecution(request: RemoteExecutionReconciliationRequest): Promise<RemoteExecutionReconciliationResult>;
    streamOutput(request: RemoteOutputStreamRequest): AsyncIterable<CommandOutputChunk>;
    uploadArtifact(request: RemoteArtifactUploadRequest, chunks: AsyncIterable<RemoteArtifactChunk>): Promise<RemoteArtifactTransferReceipt>;
    downloadArtifact(request: RemoteArtifactDownloadRequest): AsyncIterable<RemoteArtifactChunk>;
}

契约成员

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

RemoteSandboxProviderCapabilities

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

声明

text
export interface RemoteSandboxProviderCapabilities extends SandboxProviderCapabilities {
    remoteExecution: true;
}

契约成员

成员种类签名说明
cancellation属性cancellation: boolean公开属性;类型、只读和可选状态以签名列为准。
cpuLimits属性cpuLimits: boolean公开属性;类型、只读和可选状态以签名列为准。
diskLimits属性diskLimits: boolean公开属性;类型、只读和可选状态以签名列为准。
filesystemIsolation属性filesystemIsolation: boolean公开属性;类型、只读和可选状态以签名列为准。
imageDigestPinning属性imageDigestPinning: boolean公开属性;类型、只读和可选状态以签名列为准。
memoryLimits属性memoryLimits: boolean公开属性;类型、只读和可选状态以签名列为准。
networkIsolation属性networkIsolation: boolean公开属性;类型、只读和可选状态以签名列为准。
pidsLimit属性pidsLimit: boolean公开属性;类型、只读和可选状态以签名列为准。
processIsolation属性processIsolation: boolean公开属性;类型、只读和可选状态以签名列为准。
processTreeKill属性processTreeKill: boolean公开属性;类型、只读和可选状态以签名列为准。
remoteExecution属性remoteExecution: true公开属性;类型、只读和可选状态以签名列为准。
snapshots属性snapshots: boolean公开属性;类型、只读和可选状态以签名列为准。

RemoteExecutionReconciliationState

Remote Execution Reconciliation State 公共类型别名;完整类型表达式见声明。

声明

text
export type RemoteExecutionReconciliationState = 'not_found' | 'accepted' | 'running' | 'completed' | 'failed' | 'cancelled' | 'unknown';