Skip to content

@codesoul-co/hypha-core / contracts/execution-store

模块用法

用于声明并运行时校验契约。Execution store 模块公开 14 接口、2 类型。

从包入口导入

ts
import type {
  ExecutionIdempotencyQuery,
  ExecutionLease,
  ExecutionLeaseAcquireRequest,
  ExecutionLeaseGuard,
  ExecutionLeaseReleaseRequest,
  ExecutionLeaseRenewRequest,
  ExecutionRecord,
  ExecutionRecordCompareAndSetRequest,
} from '@codesoul-co/hypha-core';

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

使用要点

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

公共导出

Symbol种类签名说明
ExecutionIdempotencyQuery接口interface ExecutionIdempotencyQueryExecution Idempotency Query 接口,共包含 5 个公开字段或方法。
ExecutionLease接口interface ExecutionLeaseExecution Lease 接口,共包含 7 个公开字段或方法。
ExecutionLeaseAcquireRequest接口interface ExecutionLeaseAcquireRequestExecution Lease Acquire Request 接口,共包含 8 个公开字段或方法。
ExecutionLeaseGuard接口interface ExecutionLeaseGuardExecution Lease Guard 接口,共包含 3 个公开字段或方法。
ExecutionLeaseReleaseRequest接口interface ExecutionLeaseReleaseRequestExecution Lease Release Request 接口,共包含 7 个公开字段或方法。
ExecutionLeaseRenewRequest接口interface ExecutionLeaseRenewRequestExecution Lease Renew Request 接口,共包含 7 个公开字段或方法。
ExecutionRecord接口interface ExecutionRecordExecution Record 接口,共包含 14 个公开字段或方法。
ExecutionRecordCompareAndSetRequest接口interface ExecutionRecordCompareAndSetRequestExecution Record Compare And Set Request 接口,共包含 6 个公开字段或方法。
ExecutionRecordCreateRequest接口interface ExecutionRecordCreateRequestExecution Record Create Request 接口,共包含 3 个公开字段或方法。
ExecutionRecordPage接口interface ExecutionRecordPageExecution Record Page 接口,共包含 2 个公开字段或方法。
ExecutionRecordQuery接口interface ExecutionRecordQueryExecution Record Query 接口,共包含 10 个公开字段或方法。
ExecutionRecoveryAssessment接口interface ExecutionRecoveryAssessmentExecution Recovery Assessment 接口,共包含 6 个公开字段或方法。
ExecutionStore接口interface ExecutionStoreExecution Store 接口,共包含 10 个公开字段或方法。
ExecutionStoreFactory接口interface ExecutionStoreFactoryExecution Store Factory 接口,共包含 2 个公开字段或方法。
ExecutionIdempotencyResolution类型type ExecutionIdempotencyResolution = { status: 'miss'; } | { status: 'match'; record: ExecutionRecord; } | { status: 'conflict'; recordId: string; existingFingerprint: string; }Execution Idempotency Resolution 公共类型别名;完整类型表达式见声明。
ExecutionRecoveryDisposition类型type ExecutionRecoveryDisposition = 'not_started' | 'provider_queryable' | 'provider_completed_result_missing' | 'provider_state_unknown'Execution Recovery Disposition 公共类型别名;完整类型表达式见声明。

ExecutionIdempotencyQuery

Execution Idempotency Query 接口,共包含 5 个公开字段或方法。

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

声明

text
export interface ExecutionIdempotencyQuery {
    tenantId?: string;
    userId: string;
    workspaceId: string;
    idempotencyKey: string;
    fingerprint: string;
}

契约成员

成员种类签名说明
fingerprint属性fingerprint: string公开属性;类型、只读和可选状态以签名列为准。
idempotencyKey属性idempotencyKey: string公开属性;类型、只读和可选状态以签名列为准。
tenantId属性tenantId?: string公开属性;类型、只读和可选状态以签名列为准。
userId属性userId: string公开属性;类型、只读和可选状态以签名列为准。
workspaceId属性workspaceId: string公开属性;类型、只读和可选状态以签名列为准。

ExecutionLease

Execution Lease 接口,共包含 7 个公开字段或方法。

声明

text
export interface ExecutionLease {
    id: string;
    executionId: string;
    ownerId: string;
    fencingToken: number;
    acquiredAt: string;
    expiresAt: string;
    heartbeatAt: string;
}

契约成员

成员种类签名说明
acquiredAt属性acquiredAt: string公开属性;类型、只读和可选状态以签名列为准。
executionId属性executionId: string公开属性;类型、只读和可选状态以签名列为准。
expiresAt属性expiresAt: string公开属性;类型、只读和可选状态以签名列为准。
fencingToken属性fencingToken: number公开属性;类型、只读和可选状态以签名列为准。
heartbeatAt属性heartbeatAt: string公开属性;类型、只读和可选状态以签名列为准。
id属性id: string公开属性;类型、只读和可选状态以签名列为准。
ownerId属性ownerId: string公开属性;类型、只读和可选状态以签名列为准。

ExecutionLeaseAcquireRequest

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

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

声明

text
export interface ExecutionLeaseAcquireRequest {
    operationId: string;
    executionId: string;
    expectedRevision: number;
    requestedLeaseId: string;
    ownerId: string;
    ttlMs: number;
    acquiredAt: string;
    idempotencyKey?: string;
}

契约成员

成员种类签名说明
acquiredAt属性acquiredAt: string公开属性;类型、只读和可选状态以签名列为准。
executionId属性executionId: string公开属性;类型、只读和可选状态以签名列为准。
expectedRevision属性expectedRevision: number公开属性;类型、只读和可选状态以签名列为准。
idempotencyKey属性idempotencyKey?: string公开属性;类型、只读和可选状态以签名列为准。
operationId属性operationId: string公开属性;类型、只读和可选状态以签名列为准。
ownerId属性ownerId: string公开属性;类型、只读和可选状态以签名列为准。
requestedLeaseId属性requestedLeaseId: string公开属性;类型、只读和可选状态以签名列为准。
ttlMs属性ttlMs: number公开属性;类型、只读和可选状态以签名列为准。

ExecutionLeaseGuard

Execution Lease Guard 接口,共包含 3 个公开字段或方法。

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

声明

text
export interface ExecutionLeaseGuard {
    leaseId: string;
    ownerId: string;
    fencingToken: number;
}

契约成员

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

ExecutionLeaseReleaseRequest

Execution Lease Release Request 接口,共包含 7 个公开字段或方法。

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

声明

text
export interface ExecutionLeaseReleaseRequest {
    operationId: string;
    executionId: string;
    expectedRevision: number;
    leaseGuard: ExecutionLeaseGuard;
    releasedAt: string;
    reason?: string;
    idempotencyKey?: string;
}

契约成员

成员种类签名说明
executionId属性executionId: string公开属性;类型、只读和可选状态以签名列为准。
expectedRevision属性expectedRevision: number公开属性;类型、只读和可选状态以签名列为准。
idempotencyKey属性idempotencyKey?: string公开属性;类型、只读和可选状态以签名列为准。
leaseGuard属性leaseGuard: ExecutionLeaseGuard公开属性;类型、只读和可选状态以签名列为准。
operationId属性operationId: string公开属性;类型、只读和可选状态以签名列为准。
reason属性reason?: string公开属性;类型、只读和可选状态以签名列为准。
releasedAt属性releasedAt: string公开属性;类型、只读和可选状态以签名列为准。

ExecutionLeaseRenewRequest

Execution Lease Renew Request 接口,共包含 7 个公开字段或方法。

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

声明

text
export interface ExecutionLeaseRenewRequest {
    operationId: string;
    executionId: string;
    expectedRevision: number;
    leaseGuard: ExecutionLeaseGuard;
    ttlMs: number;
    heartbeatAt: string;
    idempotencyKey?: string;
}

契约成员

成员种类签名说明
executionId属性executionId: string公开属性;类型、只读和可选状态以签名列为准。
expectedRevision属性expectedRevision: number公开属性;类型、只读和可选状态以签名列为准。
heartbeatAt属性heartbeatAt: string公开属性;类型、只读和可选状态以签名列为准。
idempotencyKey属性idempotencyKey?: string公开属性;类型、只读和可选状态以签名列为准。
leaseGuard属性leaseGuard: ExecutionLeaseGuard公开属性;类型、只读和可选状态以签名列为准。
operationId属性operationId: string公开属性;类型、只读和可选状态以签名列为准。
ttlMs属性ttlMs: number公开属性;类型、只读和可选状态以签名列为准。

ExecutionRecord

Execution Record 接口,共包含 14 个公开字段或方法。

声明

text
export interface ExecutionRecord {
    id: string;
    revision: number;
    request: CommandExecutionRequest;
    status: CommandExecutionStatus;
    providerId: string;
    providerExecutionRef?: string;
    sandboxId?: string;
    attempt: number;
    idempotencyFingerprint?: string;
    /**
     * Immutable Provider terminal evidence persisted before Artifact finalization and terminal CAS.
     * Once present, Store implementations must reject removal or replacement.
     */
    terminalReceipt?: ExecutionReceipt;
    result?: CommandExecutionResult;
    lease?: ExecutionLease;
    createdAt: string;
    updatedAt: string;
}

契约成员

成员种类签名说明
attempt属性attempt: number公开属性;类型、只读和可选状态以签名列为准。
createdAt属性createdAt: string公开属性;类型、只读和可选状态以签名列为准。
id属性id: string公开属性;类型、只读和可选状态以签名列为准。
idempotencyFingerprint属性idempotencyFingerprint?: string公开属性;类型、只读和可选状态以签名列为准。
lease属性lease?: ExecutionLease公开属性;类型、只读和可选状态以签名列为准。
providerExecutionRef属性providerExecutionRef?: string公开属性;类型、只读和可选状态以签名列为准。
providerId属性providerId: string公开属性;类型、只读和可选状态以签名列为准。
request属性request: CommandExecutionRequest公开属性;类型、只读和可选状态以签名列为准。
result属性result?: CommandExecutionResult公开属性;类型、只读和可选状态以签名列为准。
revision属性revision: number公开属性;类型、只读和可选状态以签名列为准。
sandboxId属性sandboxId?: string公开属性;类型、只读和可选状态以签名列为准。
status属性status: CommandExecutionStatus公开属性;类型、只读和可选状态以签名列为准。
terminalReceipt属性terminalReceipt?: ExecutionReceiptImmutable Provider terminal evidence persisted before Artifact finalization and terminal CAS. Once present, Store implementations must reject removal or replacement.
updatedAt属性updatedAt: string公开属性;类型、只读和可选状态以签名列为准。

ExecutionRecordCompareAndSetRequest

Execution Record Compare And Set Request 接口,共包含 6 个公开字段或方法。

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

声明

text
export interface ExecutionRecordCompareAndSetRequest {
    operationId: string;
    executionId: string;
    expectedRevision: number;
    leaseGuard?: ExecutionLeaseGuard;
    next: ExecutionRecord;
    idempotencyKey?: string;
}

契约成员

成员种类签名说明
executionId属性executionId: string公开属性;类型、只读和可选状态以签名列为准。
expectedRevision属性expectedRevision: number公开属性;类型、只读和可选状态以签名列为准。
idempotencyKey属性idempotencyKey?: string公开属性;类型、只读和可选状态以签名列为准。
leaseGuard属性leaseGuard?: ExecutionLeaseGuard公开属性;类型、只读和可选状态以签名列为准。
next属性next: ExecutionRecord公开属性;类型、只读和可选状态以签名列为准。
operationId属性operationId: string公开属性;类型、只读和可选状态以签名列为准。

ExecutionRecordCreateRequest

Execution Record Create Request 接口,共包含 3 个公开字段或方法。

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

声明

text
export interface ExecutionRecordCreateRequest {
    operationId: string;
    record: ExecutionRecord;
    idempotencyKey?: string;
}

契约成员

成员种类签名说明
idempotencyKey属性idempotencyKey?: string公开属性;类型、只读和可选状态以签名列为准。
operationId属性operationId: string公开属性;类型、只读和可选状态以签名列为准。
record属性record: ExecutionRecord公开属性;类型、只读和可选状态以签名列为准。

ExecutionRecordPage

Execution Record Page 接口,共包含 2 个公开字段或方法。

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

声明

text
export interface ExecutionRecordPage {
    records: ExecutionRecord[];
    cursor?: string;
}

契约成员

成员种类签名说明
cursor属性cursor?: string公开属性;类型、只读和可选状态以签名列为准。
records属性records: ExecutionRecord[]公开属性;类型、只读和可选状态以签名列为准。

ExecutionRecordQuery

Execution Record Query 接口,共包含 10 个公开字段或方法。

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

声明

text
export interface ExecutionRecordQuery {
    tenantId?: string;
    userId?: string;
    workspaceId?: string;
    runId?: string;
    providerId?: string;
    statuses?: CommandExecutionStatus[];
    leaseExpiresBefore?: string;
    updatedBefore?: string;
    limit?: number;
    cursor?: string;
}

契约成员

成员种类签名说明
cursor属性cursor?: string公开属性;类型、只读和可选状态以签名列为准。
leaseExpiresBefore属性leaseExpiresBefore?: string公开属性;类型、只读和可选状态以签名列为准。
limit属性limit?: number公开属性;类型、只读和可选状态以签名列为准。
providerId属性providerId?: string公开属性;类型、只读和可选状态以签名列为准。
runId属性runId?: string公开属性;类型、只读和可选状态以签名列为准。
statuses属性statuses?: CommandExecutionStatus[]公开属性;类型、只读和可选状态以签名列为准。
tenantId属性tenantId?: string公开属性;类型、只读和可选状态以签名列为准。
updatedBefore属性updatedBefore?: string公开属性;类型、只读和可选状态以签名列为准。
userId属性userId?: string公开属性;类型、只读和可选状态以签名列为准。
workspaceId属性workspaceId?: string公开属性;类型、只读和可选状态以签名列为准。

ExecutionRecoveryAssessment

Execution Recovery Assessment 接口,共包含 6 个公开字段或方法。

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

声明

text
export interface ExecutionRecoveryAssessment {
    executionId: string;
    recordRevision: number;
    disposition: ExecutionRecoveryDisposition;
    assessedAt: string;
    providerStatusRef?: string;
    reason?: string;
}

契约成员

成员种类签名说明
assessedAt属性assessedAt: string公开属性;类型、只读和可选状态以签名列为准。
disposition属性disposition: ExecutionRecoveryDisposition公开属性;类型、只读和可选状态以签名列为准。
executionId属性executionId: string公开属性;类型、只读和可选状态以签名列为准。
providerStatusRef属性providerStatusRef?: string公开属性;类型、只读和可选状态以签名列为准。
reason属性reason?: string公开属性;类型、只读和可选状态以签名列为准。
recordRevision属性recordRevision: number公开属性;类型、只读和可选状态以签名列为准。

ExecutionStore

Execution Store 接口,共包含 10 个公开字段或方法。

声明

text
export interface ExecutionStore {
    create(request: ExecutionRecordCreateRequest): Promise<ExecutionRecord>;
    get(executionId: string): Promise<ExecutionRecord | null>;
    list(query?: ExecutionRecordQuery): Promise<ExecutionRecordPage>;
    resolveIdempotency(query: ExecutionIdempotencyQuery): Promise<ExecutionIdempotencyResolution>;
    compareAndSet(request: ExecutionRecordCompareAndSetRequest): Promise<ExecutionRecord>;
    acquireLease(request: ExecutionLeaseAcquireRequest): Promise<ExecutionRecord>;
    renewLease(request: ExecutionLeaseRenewRequest): Promise<ExecutionRecord>;
    releaseLease(request: ExecutionLeaseReleaseRequest): Promise<ExecutionRecord>;
    health(): Promise<ProviderHealth>;
    close?(): Promise<void>;
}

契约成员

成员种类签名说明
acquireLease方法acquireLease(request: ExecutionLeaseAcquireRequest): Promise<ExecutionRecord>公开方法;参数与返回类型以签名列为准。
close方法close?(): Promise<void>公开方法;参数与返回类型以签名列为准。
compareAndSet方法compareAndSet(request: ExecutionRecordCompareAndSetRequest): Promise<ExecutionRecord>公开方法;参数与返回类型以签名列为准。
create方法create(request: ExecutionRecordCreateRequest): Promise<ExecutionRecord>公开方法;参数与返回类型以签名列为准。
get方法get(executionId: string): Promise<ExecutionRecord | null>公开方法;参数与返回类型以签名列为准。
health方法health(): Promise<ProviderHealth>公开方法;参数与返回类型以签名列为准。
list方法list(query?: ExecutionRecordQuery): Promise<ExecutionRecordPage>公开方法;参数与返回类型以签名列为准。
releaseLease方法releaseLease(request: ExecutionLeaseReleaseRequest): Promise<ExecutionRecord>公开方法;参数与返回类型以签名列为准。
renewLease方法renewLease(request: ExecutionLeaseRenewRequest): Promise<ExecutionRecord>公开方法;参数与返回类型以签名列为准。
resolveIdempotency方法resolveIdempotency(query: ExecutionIdempotencyQuery): Promise<ExecutionIdempotencyResolution>公开方法;参数与返回类型以签名列为准。

ExecutionStoreFactory

Execution Store Factory 接口,共包含 2 个公开字段或方法。

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

声明

text
export interface ExecutionStoreFactory {
    readonly storeId: string;
    create(): Promise<ExecutionStore>;
}

契约成员

成员种类签名说明
create方法create(): Promise<ExecutionStore>公开方法;参数与返回类型以签名列为准。
storeId属性readonly storeId: string公开属性;类型、只读和可选状态以签名列为准。

ExecutionIdempotencyResolution

Execution Idempotency Resolution 公共类型别名;完整类型表达式见声明。

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

声明

text
export type ExecutionIdempotencyResolution = {
    status: 'miss';
} | {
    status: 'match';
    record: ExecutionRecord;
} | {
    status: 'conflict';
    recordId: string;
    existingFingerprint: string;
};

ExecutionRecoveryDisposition

Execution Recovery Disposition 公共类型别名;完整类型表达式见声明。

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

声明

text
export type ExecutionRecoveryDisposition = 'not_started' | 'provider_queryable' | 'provider_completed_result_missing' | 'provider_state_unknown';