Skip to content

@codesoul-co/hypha-harness / message-bus

模块用法

用于使用该功能边界的公共契约与操作。Message bus 模块公开 1 类、9 接口、2 类型。

从包入口导入

ts
import {
  InMemoryMessageBus,
} from '@codesoul-co/hypha-harness';

import type {
  InMemoryMessageBusOptions,
  MessageAckInput,
  MessageAddress,
  MessageBus,
  MessageFailInput,
  MessageListFilter,
  PublishMessageInput,
  PullMessageFilter,
} from '@codesoul-co/hypha-harness';

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

使用要点

  • 11 个类型/接口用于应用代码、Adapter 或测试中的静态契约;请使用 import type,运行时不应依赖它们。
  • 1 个类提供可实例化的运行时实现;构造参数与公开方法在各自条目中完整列出。

公共导出

Symbol种类签名说明
InMemoryMessageBusnew InMemoryMessageBus(options?: InMemoryMessageBusOptions): InMemoryMessageBusIn Memory Message Bus 类,共公开 6 个构造函数或成员;精确签名见本条目的声明与成员表。
InMemoryMessageBusOptions接口interface InMemoryMessageBusOptionsIn Memory Message Bus Options 接口,共包含 6 个公开字段或方法。
MessageAckInput接口interface MessageAckInputMessage Ack Input 接口,共包含 7 个公开字段或方法。
MessageAddress接口interface MessageAddressMessage Address 接口,共包含 2 个公开字段或方法。
MessageBus接口interface MessageBusMessage Bus 接口,共包含 5 个公开字段或方法。
MessageFailInput接口interface MessageFailInput extends MessageAckInputMessage Fail Input 接口,共包含 11 个公开字段或方法。
MessageListFilter接口interface MessageListFilterMessage List Filter 接口,共包含 5 个公开字段或方法。
PublishMessageInput接口interface PublishMessageInputPublish Message Input 接口,共包含 16 个公开字段或方法。
PullMessageFilter接口interface PullMessageFilterPull Message Filter 接口,共包含 6 个公开字段或方法。
RuntimeMessage接口interface RuntimeMessageRuntime Message 接口,共包含 20 个公开字段或方法。
MessageAddressKind类型type MessageAddressKind = 'runtime' | 'session' | 'workflow' | 'agent' | 'tool' | 'human'Message Address Kind 公共类型别名;完整类型表达式见声明。
MessageStatus类型type MessageStatus = 'queued' | 'delivered' | 'acknowledged' | 'failed' | 'dead_lettered'Message Status 公共类型别名;完整类型表达式见声明。

InMemoryMessageBus

In Memory Message Bus 类,共公开 6 个构造函数或成员;精确签名见本条目的声明与成员表。

  • 种类: 类
  • 导入: import { InMemoryMessageBus } from '@codesoul-co/hypha-harness';
  • 源码模块: message-bus

声明

text
export declare class InMemoryMessageBus implements MessageBus {
    constructor(options?: InMemoryMessageBusOptions);
    publish<TPayload = unknown>(input: PublishMessageInput<TPayload>): Promise<RuntimeMessage<TPayload>>;
    pull<TPayload = unknown>(filter: PullMessageFilter): Promise<RuntimeMessage<TPayload> | null>;
    acknowledge(input: MessageAckInput): Promise<RuntimeMessage | null>;
    fail(input: MessageFailInput): Promise<RuntimeMessage | null>;
    list(filter?: MessageListFilter): Promise<RuntimeMessage[]>;
}

公开成员

成员种类签名说明
acknowledge方法acknowledge(input: MessageAckInput): Promise<RuntimeMessage | null>公开方法;参数与返回类型以签名列为准。
constructor构造函数(options?: InMemoryMessageBusOptions): InMemoryMessageBus创建该类的实例。
fail方法fail(input: MessageFailInput): Promise<RuntimeMessage | null>公开方法;参数与返回类型以签名列为准。
list方法list(filter?: MessageListFilter): Promise<RuntimeMessage[]>公开方法;参数与返回类型以签名列为准。
publish方法publish<TPayload = unknown>(input: PublishMessageInput<TPayload>): Promise<RuntimeMessage<TPayload>>公开方法;参数与返回类型以签名列为准。
pull方法pull<TPayload = unknown>(filter: PullMessageFilter): Promise<RuntimeMessage<TPayload> | null>公开方法;参数与返回类型以签名列为准。

InMemoryMessageBusOptions

In Memory Message Bus Options 接口,共包含 6 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { InMemoryMessageBusOptions } from '@codesoul-co/hypha-harness';
  • 源码模块: message-bus

声明

text
export interface InMemoryMessageBusOptions {
    trace?: TraceRecorder;
    now?: () => string;
    maxDeliveryAttempts?: number;
    initialRetryDelayMs?: number;
    maxRetryDelayMs?: number;
    retryMultiplier?: number;
}

契约成员

成员种类签名说明
initialRetryDelayMs属性initialRetryDelayMs?: number公开属性;类型、只读和可选状态以签名列为准。
maxDeliveryAttempts属性maxDeliveryAttempts?: number公开属性;类型、只读和可选状态以签名列为准。
maxRetryDelayMs属性maxRetryDelayMs?: number公开属性;类型、只读和可选状态以签名列为准。
now方法now?(): string公开方法;参数与返回类型以签名列为准。
retryMultiplier属性retryMultiplier?: number公开属性;类型、只读和可选状态以签名列为准。
trace属性trace?: TraceRecorder公开属性;类型、只读和可选状态以签名列为准。

MessageAckInput

Message Ack Input 接口,共包含 7 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { MessageAckInput } from '@codesoul-co/hypha-harness';
  • 源码模块: message-bus

声明

text
export interface MessageAckInput {
    id: string;
    userId: string;
    sessionId: string;
    runId?: string;
    handledBy?: MessageAddress;
    timestamp?: string;
    metadata?: Record<string, unknown>;
}

契约成员

成员种类签名说明
handledBy属性handledBy?: MessageAddress公开属性;类型、只读和可选状态以签名列为准。
id属性id: string公开属性;类型、只读和可选状态以签名列为准。
metadata属性metadata?: Record<string, unknown>公开属性;类型、只读和可选状态以签名列为准。
runId属性runId?: string公开属性;类型、只读和可选状态以签名列为准。
sessionId属性sessionId: string公开属性;类型、只读和可选状态以签名列为准。
timestamp属性timestamp?: string公开属性;类型、只读和可选状态以签名列为准。
userId属性userId: string公开属性;类型、只读和可选状态以签名列为准。

MessageAddress

Message Address 接口,共包含 2 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { MessageAddress } from '@codesoul-co/hypha-harness';
  • 源码模块: message-bus

声明

text
export interface MessageAddress {
    kind: MessageAddressKind;
    id: string;
}

契约成员

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

MessageBus

Message Bus 接口,共包含 5 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { MessageBus } from '@codesoul-co/hypha-harness';
  • 源码模块: message-bus

声明

text
export interface MessageBus {
    publish<TPayload = unknown>(input: PublishMessageInput<TPayload>): Promise<RuntimeMessage<TPayload>>;
    pull<TPayload = unknown>(filter: PullMessageFilter): Promise<RuntimeMessage<TPayload> | null>;
    acknowledge(input: MessageAckInput): Promise<RuntimeMessage | null>;
    fail(input: MessageFailInput): Promise<RuntimeMessage | null>;
    list(filter?: MessageListFilter): Promise<RuntimeMessage[]>;
}

契约成员

成员种类签名说明
acknowledge方法acknowledge(input: MessageAckInput): Promise<RuntimeMessage | null>公开方法;参数与返回类型以签名列为准。
fail方法fail(input: MessageFailInput): Promise<RuntimeMessage | null>公开方法;参数与返回类型以签名列为准。
list方法list(filter?: MessageListFilter): Promise<RuntimeMessage[]>公开方法;参数与返回类型以签名列为准。
publish方法publish<TPayload = unknown>(input: PublishMessageInput<TPayload>): Promise<RuntimeMessage<TPayload>>公开方法;参数与返回类型以签名列为准。
pull方法pull<TPayload = unknown>(filter: PullMessageFilter): Promise<RuntimeMessage<TPayload> | null>公开方法;参数与返回类型以签名列为准。

MessageFailInput

Message Fail Input 接口,共包含 11 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { MessageFailInput } from '@codesoul-co/hypha-harness';
  • 源码模块: message-bus

声明

text
export interface MessageFailInput extends MessageAckInput {
    reason?: string;
    deadLetter?: boolean;
    retry?: boolean;
    retryAfterMs?: number;
}

契约成员

成员种类签名说明
deadLetter属性deadLetter?: boolean公开属性;类型、只读和可选状态以签名列为准。
handledBy属性handledBy?: MessageAddress公开属性;类型、只读和可选状态以签名列为准。
id属性id: string公开属性;类型、只读和可选状态以签名列为准。
metadata属性metadata?: Record<string, unknown>公开属性;类型、只读和可选状态以签名列为准。
reason属性reason?: string公开属性;类型、只读和可选状态以签名列为准。
retry属性retry?: boolean公开属性;类型、只读和可选状态以签名列为准。
retryAfterMs属性retryAfterMs?: number公开属性;类型、只读和可选状态以签名列为准。
runId属性runId?: string公开属性;类型、只读和可选状态以签名列为准。
sessionId属性sessionId: string公开属性;类型、只读和可选状态以签名列为准。
timestamp属性timestamp?: string公开属性;类型、只读和可选状态以签名列为准。
userId属性userId: string公开属性;类型、只读和可选状态以签名列为准。

MessageListFilter

Message List Filter 接口,共包含 5 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { MessageListFilter } from '@codesoul-co/hypha-harness';
  • 源码模块: message-bus

声明

text
export interface MessageListFilter {
    userId?: string;
    sessionId?: string;
    runId?: string;
    to?: MessageAddress;
    status?: MessageStatus;
}

契约成员

成员种类签名说明
runId属性runId?: string公开属性;类型、只读和可选状态以签名列为准。
sessionId属性sessionId?: string公开属性;类型、只读和可选状态以签名列为准。
status属性status?: MessageStatus公开属性;类型、只读和可选状态以签名列为准。
to属性to?: MessageAddress公开属性;类型、只读和可选状态以签名列为准。
userId属性userId?: string公开属性;类型、只读和可选状态以签名列为准。

PublishMessageInput

Publish Message Input 接口,共包含 16 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { PublishMessageInput } from '@codesoul-co/hypha-harness';
  • 源码模块: message-bus

声明

text
export interface PublishMessageInput<TPayload = unknown> {
    id: string;
    type: string;
    userId: string;
    sessionId: string;
    runId: string;
    from: MessageAddress;
    to: MessageAddress;
    payload: TPayload;
    stepId?: string;
    agentId?: string;
    fsmState?: string;
    correlationId?: string;
    causationId?: string;
    availableAt?: string;
    expiresAt?: string;
    metadata?: Record<string, unknown>;
}

契约成员

成员种类签名说明
agentId属性agentId?: string公开属性;类型、只读和可选状态以签名列为准。
availableAt属性availableAt?: string公开属性;类型、只读和可选状态以签名列为准。
causationId属性causationId?: string公开属性;类型、只读和可选状态以签名列为准。
correlationId属性correlationId?: string公开属性;类型、只读和可选状态以签名列为准。
expiresAt属性expiresAt?: string公开属性;类型、只读和可选状态以签名列为准。
from属性from: MessageAddress公开属性;类型、只读和可选状态以签名列为准。
fsmState属性fsmState?: string公开属性;类型、只读和可选状态以签名列为准。
id属性id: string公开属性;类型、只读和可选状态以签名列为准。
metadata属性metadata?: Record<string, unknown>公开属性;类型、只读和可选状态以签名列为准。
payload属性payload: TPayload公开属性;类型、只读和可选状态以签名列为准。
runId属性runId: string公开属性;类型、只读和可选状态以签名列为准。
sessionId属性sessionId: string公开属性;类型、只读和可选状态以签名列为准。
stepId属性stepId?: string公开属性;类型、只读和可选状态以签名列为准。
to属性to: MessageAddress公开属性;类型、只读和可选状态以签名列为准。
type属性type: string公开属性;类型、只读和可选状态以签名列为准。
userId属性userId: string公开属性;类型、只读和可选状态以签名列为准。

PullMessageFilter

Pull Message Filter 接口,共包含 6 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { PullMessageFilter } from '@codesoul-co/hypha-harness';
  • 源码模块: message-bus

声明

text
export interface PullMessageFilter {
    userId: string;
    sessionId: string;
    to: MessageAddress;
    runId?: string;
    fsmState?: string;
    now?: string;
}

契约成员

成员种类签名说明
fsmState属性fsmState?: string公开属性;类型、只读和可选状态以签名列为准。
now属性now?: string公开属性;类型、只读和可选状态以签名列为准。
runId属性runId?: string公开属性;类型、只读和可选状态以签名列为准。
sessionId属性sessionId: string公开属性;类型、只读和可选状态以签名列为准。
to属性to: MessageAddress公开属性;类型、只读和可选状态以签名列为准。
userId属性userId: string公开属性;类型、只读和可选状态以签名列为准。

RuntimeMessage

Runtime Message 接口,共包含 20 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { RuntimeMessage } from '@codesoul-co/hypha-harness';
  • 源码模块: message-bus

声明

text
export interface RuntimeMessage<TPayload = unknown> {
    id: string;
    type: string;
    userId: string;
    sessionId: string;
    runId: string;
    from: MessageAddress;
    to: MessageAddress;
    payload: TPayload;
    status: MessageStatus;
    createdAt: string;
    updatedAt: string;
    stepId?: string;
    agentId?: string;
    fsmState?: string;
    correlationId?: string;
    causationId?: string;
    availableAt?: string;
    expiresAt?: string;
    attemptCount: number;
    metadata?: Record<string, unknown>;
}

契约成员

成员种类签名说明
agentId属性agentId?: string公开属性;类型、只读和可选状态以签名列为准。
attemptCount属性attemptCount: number公开属性;类型、只读和可选状态以签名列为准。
availableAt属性availableAt?: string公开属性;类型、只读和可选状态以签名列为准。
causationId属性causationId?: string公开属性;类型、只读和可选状态以签名列为准。
correlationId属性correlationId?: string公开属性;类型、只读和可选状态以签名列为准。
createdAt属性createdAt: string公开属性;类型、只读和可选状态以签名列为准。
expiresAt属性expiresAt?: string公开属性;类型、只读和可选状态以签名列为准。
from属性from: MessageAddress公开属性;类型、只读和可选状态以签名列为准。
fsmState属性fsmState?: string公开属性;类型、只读和可选状态以签名列为准。
id属性id: string公开属性;类型、只读和可选状态以签名列为准。
metadata属性metadata?: Record<string, unknown>公开属性;类型、只读和可选状态以签名列为准。
payload属性payload: TPayload公开属性;类型、只读和可选状态以签名列为准。
runId属性runId: string公开属性;类型、只读和可选状态以签名列为准。
sessionId属性sessionId: string公开属性;类型、只读和可选状态以签名列为准。
status属性status: MessageStatus公开属性;类型、只读和可选状态以签名列为准。
stepId属性stepId?: string公开属性;类型、只读和可选状态以签名列为准。
to属性to: MessageAddress公开属性;类型、只读和可选状态以签名列为准。
type属性type: string公开属性;类型、只读和可选状态以签名列为准。
updatedAt属性updatedAt: string公开属性;类型、只读和可选状态以签名列为准。
userId属性userId: string公开属性;类型、只读和可选状态以签名列为准。

MessageAddressKind

Message Address Kind 公共类型别名;完整类型表达式见声明。

  • 种类: 类型
  • 导入: import type { MessageAddressKind } from '@codesoul-co/hypha-harness';
  • 源码模块: message-bus

声明

text
export type MessageAddressKind = 'runtime' | 'session' | 'workflow' | 'agent' | 'tool' | 'human';

MessageStatus

Message Status 公共类型别名;完整类型表达式见声明。

  • 种类: 类型
  • 导入: import type { MessageStatus } from '@codesoul-co/hypha-harness';
  • 源码模块: message-bus

声明

text
export type MessageStatus = 'queued' | 'delivered' | 'acknowledged' | 'failed' | 'dead_lettered';