ProtocolRegistry
CORE · class · 运行时值
Append-only protocol registry.
Extending Map keeps lookup semantics familiar while set rejects every invalid registration, which makes the instance effectively immutable after wiring.
导入
ts
import { ProtocolRegistry } from '@jangts/agent-core/protocols';js
import { ProtocolRegistry } from '@jangts/agent-core/protocols';其他公开入口:@jangts/agent-core、@jangts/agent-core/types、@jangts/agent-core/protocols。
定义
ts
class ProtocolRegistry<Protocol>继承或实现: Map<string, Protocol>。
泛型参数
| 类型参数 | 约束 | 默认类型 |
|---|---|---|
Protocol | — | — |
构造函数
ts
new ProtocolRegistry<Protocol>(definitions?: Iterable<readonly [string, Protocol]>): ProtocolRegistry<Protocol>| 参数 | 类型 | 传递 | 说明 |
|---|---|---|---|
definitions | Iterable<readonly [string, Protocol]> | 可省略 | — |
返回: ProtocolRegistry<Protocol>。
成员目录
| 成员 | 用途 |
|---|---|
ids | 完整输入输出见下方重载。 |
require | Look up a protocol that must exist. |
set | Register a protocol. |
成员详情
ids
实例方法。
ts
ids(): readonly string[]无调用参数。
返回: readonly string[]。
require
实例方法。
Look up a protocol that must exist.
ts
require(id: string): ProtocolLook up a protocol that must exist.
| 参数 | 类型 | 传递 | 说明 |
|---|---|---|---|
id | string | 必需 | — |
返回: Protocol。
等待后的值: Awaited<Protocol>。
set
实例方法。
Register a protocol.
ts
set(id: string, protocol: Protocol): ProtocolRegistry<Protocol>Register a protocol.
| 参数 | 类型 | 传递 | 说明 |
|---|---|---|---|
id | string | 必需 | — |
protocol | Protocol | 必需 | — |
返回: ProtocolRegistry<Protocol>。
使用示例
- 协议目录:同一清单驱动匹配和校验:按 App 自己的协议 ID 登记规范;Core 不内置业务阶段名称。
一个可查的协议清单
入门 · Node.js
ts
import { ProtocolRegistry } from '@jangts/agent-core/protocols';
const protocols = new ProtocolRegistry([['reply', { description: '最终正文', terminal: true }]]);
console.log(protocols.require('reply'), protocols.ids());js
import { ProtocolRegistry } from '@jangts/agent-core/protocols';
const protocols = new ProtocolRegistry([['reply', { description: '最终正文', terminal: true }]]);
console.log(protocols.require('reply'), protocols.ids());从类型化声明生成同一目录
配置 · Node.js
ts
import { ProtocolRegistry } from '@jangts/agent-core/protocols';
const definitions = [
{ id: 'reply', terminal: true },
{ id: 'lookup', terminal: false },
];
const protocols = new ProtocolRegistry(definitions.map(definition => [definition.id, definition] as const));
console.log(protocols.require('lookup').terminal);js
import { ProtocolRegistry } from '@jangts/agent-core/protocols';
const definitions = [
{ id: 'reply', terminal: true },
{ id: 'lookup', terminal: false },
];
const protocols = new ProtocolRegistry(definitions.map(definition => [definition.id, definition]));
console.log(protocols.require('lookup').terminal);