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 parameter | Constraint | Default type |
|---|---|---|
Protocol | — | — |
Constructor
ts
new ProtocolRegistry<Protocol>(definitions?: Iterable<readonly [string, Protocol]>): ProtocolRegistry<Protocol>| Parameter | Type | Passing | Description |
|---|---|---|---|
definitions | Iterable<readonly [string, Protocol]> | Optional | — |
Returns: ProtocolRegistry<Protocol>.
Member index
| Member | Purpose |
|---|---|
ids | See the overload below for full inputs and outputs. |
require | Look up a protocol that must exist. |
set | Register 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): ProtocolLook up a protocol that must exist.
| Parameter | Type | Passing | Description |
|---|---|---|---|
id | string | Required | — |
Returns: Protocol.
Awaited value: Awaited<Protocol>.
set
Instance method.
Register a protocol.
ts
set(id: string, protocol: Protocol): ProtocolRegistry<Protocol>Register a protocol.
| Parameter | Type | Passing | Description |
|---|---|---|---|
id | string | Required | — |
protocol | Protocol | Required | — |
Returns: ProtocolRegistry<Protocol>.
Examples
- Protocol registry: one list drives matching and validation: Register specifications under the App's own protocol IDs; Core has no built-in business stage names.
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);