Skip to content
中文

ProtocolRegistry ​

CORE · class · Runtime value

Append-only protocol registry.

Extending Map keeps lookup semantics familiar while set rejects every invalid registration, which makes the instance effectively immutable after wiring.

Import ​

ts
import { ProtocolRegistry } from '@jangts/agent-core/protocols';
js
import { ProtocolRegistry } from '@jangts/agent-core/protocols';

Other public entry points:@jangts/agent-core, @jangts/agent-core/types, @jangts/agent-core/protocols.

Definition ​

ts
class ProtocolRegistry<Protocol>

Extends or implements: Map<string, Protocol>.

Type parameters ​

Type parameterConstraintDefault type
Protocol——

Constructor ​

ts
new ProtocolRegistry<Protocol>(definitions?: Iterable<readonly [string, Protocol]>): ProtocolRegistry<Protocol>
ParameterTypePassingDescription
definitionsIterable<readonly [string, Protocol]>Optional—

Returns: ProtocolRegistry<Protocol>.

Member index ​

MemberPurpose
idsSee the overload below for full inputs and outputs.
requireLook up a protocol that must exist.
setRegister a protocol.

Member details ​

ids ​

Instance method.

ts
ids(): readonly string[]

No call parameters.

Returns: readonly string[].

require ​

Instance method.

Look up a protocol that must exist.

ts
require(id: string): Protocol

Look up a protocol that must exist.

ParameterTypePassingDescription
idstringRequired—

Returns: Protocol.

Awaited value: Awaited<Protocol>.

set ​

Instance method.

Register a protocol.

ts
set(id: string, protocol: Protocol): ProtocolRegistry<Protocol>

Register a protocol.

ParameterTypePassingDescription
idstringRequired—
protocolProtocolRequired—

Returns: ProtocolRegistry<Protocol>.

Examples ​

A queryable protocol list ​

Beginner · 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());

Generate the same catalog from typed declarations ​

Configuration · 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);

API reference, usage examples and developer guides.