@antseed/node 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/discovery/announcer.d.ts +14 -0
- package/dist/discovery/announcer.d.ts.map +1 -1
- package/dist/discovery/announcer.js +128 -68
- package/dist/discovery/announcer.js.map +1 -1
- package/dist/discovery/index.d.ts +1 -1
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +1 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/metadata-codec.d.ts +7 -0
- package/dist/discovery/metadata-codec.d.ts.map +1 -1
- package/dist/discovery/metadata-codec.js +151 -0
- package/dist/discovery/metadata-codec.js.map +1 -1
- package/dist/discovery/metadata-validator.d.ts +4 -0
- package/dist/discovery/metadata-validator.d.ts.map +1 -1
- package/dist/discovery/metadata-validator.js +142 -1
- package/dist/discovery/metadata-validator.js.map +1 -1
- package/dist/discovery/peer-metadata.d.ts +9 -1
- package/dist/discovery/peer-metadata.d.ts.map +1 -1
- package/dist/discovery/peer-metadata.js +11 -1
- package/dist/discovery/peer-metadata.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/seller-provider.d.ts +5 -0
- package/dist/interfaces/seller-provider.d.ts.map +1 -1
- package/dist/node.d.ts +12 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +175 -59
- package/dist/node.js.map +1 -1
- package/dist/p2p/message-protocol.js +3 -3
- package/dist/p2p/message-protocol.js.map +1 -1
- package/dist/proxy/index.d.ts +1 -0
- package/dist/proxy/index.d.ts.map +1 -1
- package/dist/proxy/index.js +1 -0
- package/dist/proxy/index.js.map +1 -1
- package/dist/proxy/model-api-adapter.d.ts +20 -0
- package/dist/proxy/model-api-adapter.d.ts.map +1 -0
- package/dist/proxy/model-api-adapter.js +514 -0
- package/dist/proxy/model-api-adapter.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/model-api.d.ts +4 -0
- package/dist/types/model-api.d.ts.map +1 -0
- package/dist/types/model-api.js +10 -0
- package/dist/types/model-api.js.map +1 -0
- package/dist/types/peer.d.ts +11 -0
- package/dist/types/peer.d.ts.map +1 -1
- package/dist/types/peer.js.map +1 -1
- package/dist/types/plugin-config.d.ts +1 -1
- package/dist/types/plugin-config.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -34,6 +34,9 @@ const myProvider: Provider = {
|
|
|
34
34
|
outputUsdPerMillion: 10,
|
|
35
35
|
},
|
|
36
36
|
},
|
|
37
|
+
modelCategories: {
|
|
38
|
+
'my-model-v1': ['coding', 'privacy'],
|
|
39
|
+
},
|
|
37
40
|
maxConcurrency: 10,
|
|
38
41
|
async handleRequest(req: SerializedHttpRequest): Promise<SerializedHttpResponse> {
|
|
39
42
|
// Forward the request to your LLM backend and return the response
|
|
@@ -96,6 +99,7 @@ if (peers.length > 0) {
|
|
|
96
99
|
```ts
|
|
97
100
|
interface NodeConfig {
|
|
98
101
|
role: 'seller' | 'buyer';
|
|
102
|
+
displayName?: string; // Optional human-readable name announced in metadata
|
|
99
103
|
dataDir?: string; // Default: ~/.antseed
|
|
100
104
|
dhtPort?: number; // Default: 6881 for seller, 0 (OS-assigned) for buyer
|
|
101
105
|
signalingPort?: number; // Default: 6882 for seller
|
|
@@ -115,6 +119,7 @@ interface NodeConfig {
|
|
|
115
119
|
| Option | Default | Description |
|
|
116
120
|
|---|---|---|
|
|
117
121
|
| `role` | (required) | `'seller'` to serve requests, `'buyer'` to consume them |
|
|
122
|
+
| `displayName` | unset | Optional node label included in discovery metadata |
|
|
118
123
|
| `dataDir` | `~/.antseed` | Directory for identity keys, metering DB, and config |
|
|
119
124
|
| `dhtPort` | `6881` / `0` | UDP port for DHT. Seller defaults to 6881, buyer uses OS-assigned |
|
|
120
125
|
| `signalingPort` | `6882` | TCP port for P2P signaling and incoming connections (seller only) |
|
|
@@ -225,6 +230,9 @@ interface Provider {
|
|
|
225
230
|
models?: Record<string, { inputUsdPerMillion: number; outputUsdPerMillion: number }>;
|
|
226
231
|
};
|
|
227
232
|
|
|
233
|
+
/** Optional per-model discovery tags (e.g., coding/privacy/legal) */
|
|
234
|
+
modelCategories?: Record<string, string[]>;
|
|
235
|
+
|
|
228
236
|
/** Maximum concurrent requests this provider can handle */
|
|
229
237
|
maxConcurrency: number;
|
|
230
238
|
|
|
@@ -2,6 +2,7 @@ import type { Identity } from "../p2p/identity.js";
|
|
|
2
2
|
import type { DHTNode } from "./dht-node.js";
|
|
3
3
|
import type { PeerOffering } from "../types/capability.js";
|
|
4
4
|
import type { PeerMetadata } from "./peer-metadata.js";
|
|
5
|
+
import type { ModelApiProtocol } from "../types/model-api.js";
|
|
5
6
|
import type { BaseEscrowClient } from "../payments/evm/escrow-client.js";
|
|
6
7
|
export interface AnnouncerConfig {
|
|
7
8
|
identity: Identity;
|
|
@@ -9,8 +10,11 @@ export interface AnnouncerConfig {
|
|
|
9
10
|
providers: Array<{
|
|
10
11
|
provider: string;
|
|
11
12
|
models: string[];
|
|
13
|
+
modelCategories?: Record<string, string[]>;
|
|
14
|
+
modelApiProtocols?: Record<string, ModelApiProtocol[]>;
|
|
12
15
|
maxConcurrency: number;
|
|
13
16
|
}>;
|
|
17
|
+
displayName?: string;
|
|
14
18
|
region: string;
|
|
15
19
|
pricing: Map<string, {
|
|
16
20
|
defaults: {
|
|
@@ -36,9 +40,19 @@ export declare class PeerAnnouncer {
|
|
|
36
40
|
private _latestMetadata;
|
|
37
41
|
constructor(config: AnnouncerConfig);
|
|
38
42
|
announce(): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Refresh signed metadata snapshot without announcing to DHT.
|
|
45
|
+
* Useful for high-frequency fields like current provider load.
|
|
46
|
+
*/
|
|
47
|
+
refreshMetadata(): Promise<void>;
|
|
39
48
|
startPeriodicAnnounce(): void;
|
|
40
49
|
stopPeriodicAnnounce(): void;
|
|
41
50
|
updateLoad(providerName: string, currentLoad: number): void;
|
|
42
51
|
getLatestMetadata(): PeerMetadata | null;
|
|
52
|
+
private _buildSignedMetadata;
|
|
53
|
+
private _announceTopics;
|
|
54
|
+
private _tryAnnounceTopic;
|
|
55
|
+
private _normalizeModelCategories;
|
|
56
|
+
private _normalizeModelApiProtocols;
|
|
43
57
|
}
|
|
44
58
|
//# sourceMappingURL=announcer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announcer.d.ts","sourceRoot":"","sources":["../../src/discovery/announcer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"announcer.d.ts","sourceRoot":"","sources":["../../src/discovery/announcer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,oBAAoB,CAAC;AAE7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,KAAK,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACvD,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,GAAG,CACV,MAAM,EACN;QACE,QAAQ,EAAE;YAAE,kBAAkB,EAAE,MAAM,CAAC;YAAC,mBAAmB,EAAE,MAAM,CAAA;SAAE,CAAC;QACtE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,kBAAkB,EAAE,MAAM,CAAC;YAAC,mBAAmB,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACtF,CACF,CAAC;IACF,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,eAAe,CAA6B;gBAExC,MAAM,EAAE,eAAe;IAI7B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/B;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC,qBAAqB,IAAI,IAAI;IAe7B,oBAAoB,IAAI,IAAI;IAO5B,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAI3D,iBAAiB,IAAI,YAAY,GAAG,IAAI;YAI1B,oBAAoB;YA0EpB,eAAe;YAcf,iBAAiB;IAS/B,OAAO,CAAC,yBAAyB;IA+BjC,OAAO,CAAC,2BAA2B;CA8BpC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { signData } from "../p2p/identity.js";
|
|
2
2
|
import { providerTopic, capabilityTopic, topicToInfoHash } from "./dht-node.js";
|
|
3
3
|
import { METADATA_VERSION } from "./peer-metadata.js";
|
|
4
|
+
import { isKnownModelApiProtocol } from "../types/model-api.js";
|
|
4
5
|
import { encodeMetadataForSigning } from "./metadata-codec.js";
|
|
5
6
|
import { debugWarn } from "../utils/debug.js";
|
|
6
7
|
import { bytesToHex } from "../utils/hex.js";
|
|
@@ -14,6 +15,44 @@ export class PeerAnnouncer {
|
|
|
14
15
|
this.config = config;
|
|
15
16
|
}
|
|
16
17
|
async announce() {
|
|
18
|
+
const metadata = await this._buildSignedMetadata(true);
|
|
19
|
+
this._latestMetadata = metadata;
|
|
20
|
+
await this._announceTopics(metadata.providers);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Refresh signed metadata snapshot without announcing to DHT.
|
|
24
|
+
* Useful for high-frequency fields like current provider load.
|
|
25
|
+
*/
|
|
26
|
+
async refreshMetadata() {
|
|
27
|
+
this._latestMetadata = await this._buildSignedMetadata(false);
|
|
28
|
+
}
|
|
29
|
+
startPeriodicAnnounce() {
|
|
30
|
+
if (this.intervalHandle) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
// Announce immediately, then on interval
|
|
34
|
+
void this.announce().catch((err) => {
|
|
35
|
+
debugWarn(`[Announcer] Initial announce failed: ${err instanceof Error ? err.message : err}`);
|
|
36
|
+
});
|
|
37
|
+
this.intervalHandle = setInterval(() => {
|
|
38
|
+
void this.announce().catch((err) => {
|
|
39
|
+
debugWarn(`[Announcer] Periodic announce failed: ${err instanceof Error ? err.message : err}`);
|
|
40
|
+
});
|
|
41
|
+
}, this.config.reannounceIntervalMs);
|
|
42
|
+
}
|
|
43
|
+
stopPeriodicAnnounce() {
|
|
44
|
+
if (this.intervalHandle) {
|
|
45
|
+
clearInterval(this.intervalHandle);
|
|
46
|
+
this.intervalHandle = null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
updateLoad(providerName, currentLoad) {
|
|
50
|
+
this.loadMap.set(providerName, currentLoad);
|
|
51
|
+
}
|
|
52
|
+
getLatestMetadata() {
|
|
53
|
+
return this._latestMetadata;
|
|
54
|
+
}
|
|
55
|
+
async _buildSignedMetadata(includeOnChainReputation = true) {
|
|
17
56
|
const providers = this.config.providers.map((p) => {
|
|
18
57
|
const pricing = this.config.pricing.get(p.provider) ?? {
|
|
19
58
|
defaults: {
|
|
@@ -21,109 +60,130 @@ export class PeerAnnouncer {
|
|
|
21
60
|
outputUsdPerMillion: 0,
|
|
22
61
|
},
|
|
23
62
|
};
|
|
24
|
-
|
|
63
|
+
const providerAnnouncement = {
|
|
25
64
|
provider: p.provider,
|
|
26
65
|
models: p.models,
|
|
27
66
|
defaultPricing: pricing.defaults,
|
|
28
|
-
...(pricing.models ? { modelPricing: pricing.models } : {}),
|
|
29
67
|
maxConcurrency: p.maxConcurrency,
|
|
30
68
|
currentLoad: this.loadMap.get(p.provider) ?? 0,
|
|
31
69
|
};
|
|
70
|
+
if (pricing.models) {
|
|
71
|
+
providerAnnouncement.modelPricing = pricing.models;
|
|
72
|
+
}
|
|
73
|
+
const normalizedModelCategories = this._normalizeModelCategories(p.modelCategories, p.models);
|
|
74
|
+
if (normalizedModelCategories) {
|
|
75
|
+
providerAnnouncement.modelCategories = normalizedModelCategories;
|
|
76
|
+
}
|
|
77
|
+
const normalizedModelApiProtocols = this._normalizeModelApiProtocols(p.modelApiProtocols, p.models);
|
|
78
|
+
if (normalizedModelApiProtocols) {
|
|
79
|
+
providerAnnouncement.modelApiProtocols = normalizedModelApiProtocols;
|
|
80
|
+
}
|
|
81
|
+
return providerAnnouncement;
|
|
32
82
|
});
|
|
33
83
|
const metadata = {
|
|
34
84
|
peerId: this.config.identity.peerId,
|
|
35
85
|
version: METADATA_VERSION,
|
|
86
|
+
...(this.config.displayName ? { displayName: this.config.displayName } : {}),
|
|
36
87
|
providers,
|
|
37
|
-
...(this.config.offerings && this.config.offerings.length > 0
|
|
38
|
-
? { offerings: this.config.offerings }
|
|
39
|
-
: {}),
|
|
40
|
-
...(this.config.stakeAmountUSDC != null
|
|
41
|
-
? { stakeAmountUSDC: this.config.stakeAmountUSDC }
|
|
42
|
-
: {}),
|
|
43
|
-
...(this.config.trustScore != null
|
|
44
|
-
? { trustScore: this.config.trustScore }
|
|
45
|
-
: {}),
|
|
46
88
|
region: this.config.region,
|
|
47
89
|
timestamp: Date.now(),
|
|
48
90
|
signature: "",
|
|
49
91
|
};
|
|
50
|
-
|
|
92
|
+
if (this.config.offerings && this.config.offerings.length > 0) {
|
|
93
|
+
metadata.offerings = this.config.offerings;
|
|
94
|
+
}
|
|
95
|
+
if (this.config.stakeAmountUSDC != null) {
|
|
96
|
+
metadata.stakeAmountUSDC = this.config.stakeAmountUSDC;
|
|
97
|
+
}
|
|
98
|
+
if (this.config.trustScore != null) {
|
|
99
|
+
metadata.trustScore = this.config.trustScore;
|
|
100
|
+
}
|
|
51
101
|
if (this.config.escrowClient) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
102
|
+
const evmAddress = identityToEvmAddress(this.config.identity);
|
|
103
|
+
metadata.evmAddress = evmAddress;
|
|
104
|
+
if (includeOnChainReputation) {
|
|
105
|
+
try {
|
|
106
|
+
const reputation = await this.config.escrowClient.getReputation(evmAddress);
|
|
107
|
+
metadata.onChainReputation = reputation.weightedAverage;
|
|
108
|
+
metadata.onChainSessionCount = reputation.sessionCount;
|
|
109
|
+
metadata.onChainDisputeCount = reputation.disputeCount;
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
// Silently continue without reputation data
|
|
113
|
+
}
|
|
59
114
|
}
|
|
60
|
-
|
|
61
|
-
|
|
115
|
+
else if (this._latestMetadata) {
|
|
116
|
+
metadata.onChainReputation = this._latestMetadata.onChainReputation;
|
|
117
|
+
metadata.onChainSessionCount = this._latestMetadata.onChainSessionCount;
|
|
118
|
+
metadata.onChainDisputeCount = this._latestMetadata.onChainDisputeCount;
|
|
62
119
|
}
|
|
63
120
|
}
|
|
64
|
-
// Sign metadata
|
|
65
121
|
const dataToSign = encodeMetadataForSigning(metadata);
|
|
66
122
|
const signature = await signData(this.config.identity.privateKey, dataToSign);
|
|
67
123
|
metadata.signature = bytesToHex(signature);
|
|
68
|
-
|
|
69
|
-
|
|
124
|
+
return metadata;
|
|
125
|
+
}
|
|
126
|
+
async _announceTopics(providers) {
|
|
70
127
|
for (const p of providers) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
// DHT may not have peers yet — will retry on next cycle
|
|
128
|
+
await this._tryAnnounceTopic(providerTopic(p.provider));
|
|
129
|
+
}
|
|
130
|
+
await this._tryAnnounceTopic(providerTopic("*"));
|
|
131
|
+
if (this.config.offerings) {
|
|
132
|
+
for (const offering of this.config.offerings) {
|
|
133
|
+
await this._tryAnnounceTopic(capabilityTopic(offering.capability, offering.name));
|
|
78
134
|
}
|
|
79
135
|
}
|
|
80
|
-
|
|
136
|
+
}
|
|
137
|
+
async _tryAnnounceTopic(topic) {
|
|
81
138
|
try {
|
|
82
|
-
const
|
|
83
|
-
await this.config.dht.announce(
|
|
139
|
+
const infoHash = topicToInfoHash(topic);
|
|
140
|
+
await this.config.dht.announce(infoHash, this.config.signalingPort);
|
|
84
141
|
}
|
|
85
142
|
catch {
|
|
86
143
|
// DHT may not have peers yet — will retry on next cycle
|
|
87
144
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
145
|
+
}
|
|
146
|
+
_normalizeModelCategories(modelCategories, supportedModels) {
|
|
147
|
+
if (!modelCategories) {
|
|
148
|
+
return undefined;
|
|
149
|
+
}
|
|
150
|
+
const hasWildcardModels = supportedModels.length === 0;
|
|
151
|
+
const supportedModelSet = new Set(supportedModels);
|
|
152
|
+
const normalized = {};
|
|
153
|
+
for (const [model, categories] of Object.entries(modelCategories)) {
|
|
154
|
+
if (!hasWildcardModels && !supportedModelSet.has(model)) {
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
const deduped = Array.from(new Set(categories
|
|
158
|
+
.map((category) => category.trim().toLowerCase())
|
|
159
|
+
.filter((category) => category.length > 0)));
|
|
160
|
+
if (deduped.length === 0) {
|
|
161
|
+
continue;
|
|
99
162
|
}
|
|
163
|
+
normalized[model] = deduped;
|
|
100
164
|
}
|
|
165
|
+
return Object.keys(normalized).length > 0 ? normalized : undefined;
|
|
101
166
|
}
|
|
102
|
-
|
|
103
|
-
if (
|
|
104
|
-
return;
|
|
167
|
+
_normalizeModelApiProtocols(modelApiProtocols, supportedModels) {
|
|
168
|
+
if (!modelApiProtocols) {
|
|
169
|
+
return undefined;
|
|
105
170
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
171
|
+
const hasWildcardModels = supportedModels.length === 0;
|
|
172
|
+
const supportedModelSet = new Set(supportedModels);
|
|
173
|
+
const normalized = {};
|
|
174
|
+
for (const [model, protocols] of Object.entries(modelApiProtocols)) {
|
|
175
|
+
if (!hasWildcardModels && !supportedModelSet.has(model)) {
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
const deduped = Array.from(new Set(protocols
|
|
179
|
+
.map((protocol) => protocol.trim().toLowerCase())
|
|
180
|
+
.filter((protocol) => isKnownModelApiProtocol(protocol))));
|
|
181
|
+
if (deduped.length === 0) {
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
normalized[model] = deduped;
|
|
120
185
|
}
|
|
121
|
-
|
|
122
|
-
updateLoad(providerName, currentLoad) {
|
|
123
|
-
this.loadMap.set(providerName, currentLoad);
|
|
124
|
-
}
|
|
125
|
-
getLatestMetadata() {
|
|
126
|
-
return this._latestMetadata;
|
|
186
|
+
return Object.keys(normalized).length > 0 ? normalized : undefined;
|
|
127
187
|
}
|
|
128
188
|
}
|
|
129
189
|
//# sourceMappingURL=announcer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announcer.js","sourceRoot":"","sources":["../../src/discovery/announcer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"announcer.js","sourceRoot":"","sources":["../../src/discovery/announcer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AA6BlE,MAAM,OAAO,aAAa;IACP,MAAM,CAAkB;IACjC,cAAc,GAA0C,IAAI,CAAC;IACpD,OAAO,GAAwB,IAAI,GAAG,EAAE,CAAC;IAClD,eAAe,GAAwB,IAAI,CAAC;IAEpD,YAAY,MAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAEhC,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,qBAAqB;QACnB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,yCAAyC;QACzC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,SAAS,CAAC,wCAAwC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YACrC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACjC,SAAS,CAAC,yCAAyC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjG,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACvC,CAAC;IAED,oBAAoB;QAClB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,UAAU,CAAC,YAAoB,EAAE,WAAmB;QAClD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,wBAAwB,GAAG,IAAI;QAChE,MAAM,SAAS,GAA2B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACxE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI;gBACrD,QAAQ,EAAE;oBACR,kBAAkB,EAAE,CAAC;oBACrB,mBAAmB,EAAE,CAAC;iBACvB;aACF,CAAC;YACF,MAAM,oBAAoB,GAAyB;gBACjD,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,cAAc,EAAE,OAAO,CAAC,QAAQ;gBAChC,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;aAC/C,CAAC;YACF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,oBAAoB,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;YACrD,CAAC;YACD,MAAM,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YAC9F,IAAI,yBAAyB,EAAE,CAAC;gBAC9B,oBAAoB,CAAC,eAAe,GAAG,yBAAyB,CAAC;YACnE,CAAC;YACD,MAAM,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YACpG,IAAI,2BAA2B,EAAE,CAAC;gBAChC,oBAAoB,CAAC,iBAAiB,GAAG,2BAA2B,CAAC;YACvE,CAAC;YACD,OAAO,oBAAoB,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAiB;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;YACnC,OAAO,EAAE,gBAAgB;YACzB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,SAAS;YACT,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,SAAS,EAAE,EAAE;SACd,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9D,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7C,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;YACxC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;QACzD,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YACnC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAC/C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9D,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;YAEjC,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC5E,QAAQ,CAAC,iBAAiB,GAAG,UAAU,CAAC,eAAe,CAAC;oBACxD,QAAQ,CAAC,mBAAmB,GAAG,UAAU,CAAC,YAAY,CAAC;oBACvD,QAAQ,CAAC,mBAAmB,GAAG,UAAU,CAAC,YAAY,CAAC;gBACzD,CAAC;gBAAC,MAAM,CAAC;oBACP,4CAA4C;gBAC9C,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAChC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;gBACpE,QAAQ,CAAC,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC;gBACxE,QAAQ,CAAC,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC9E,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,SAAiC;QAC7D,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QAEjD,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC7C,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,KAAa;QAC3C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;QAC1D,CAAC;IACH,CAAC;IAEO,yBAAyB,CAC/B,eAAqD,EACrD,eAAyB;QAEzB,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC;QACvD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,UAAU,GAA6B,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACxB,IAAI,GAAG,CACL,UAAU;iBACP,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;iBAChD,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAC7C,CACF,CAAC;YACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,SAAS;YACX,CAAC;YACD,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;QAC9B,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,CAAC;IAEO,2BAA2B,CACjC,iBAAiE,EACjE,eAAyB;QAEzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC;QACvD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,UAAU,GAAuC,EAAE,CAAC;QAC1D,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACxB,IAAI,GAAG,CACL,SAAS;iBACN,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;iBAChD,MAAM,CAAC,CAAC,QAAQ,EAAgC,EAAE,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CACzF,CACF,CAAC;YACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,SAAS;YACX,CAAC;YACD,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;QAC9B,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,CAAC;CACF"}
|
|
@@ -5,7 +5,7 @@ export { scorePeer, rankPeers, selectBestPeer, selectDiversePeers, DEFAULT_SCORI
|
|
|
5
5
|
export { OFFICIAL_BOOTSTRAP_NODES, parseBootstrapList, mergeBootstrapNodes, toBootstrapConfig, type BootstrapNode } from './bootstrap.js';
|
|
6
6
|
export { encodeMetadata, encodeMetadataForSigning, decodeMetadata } from './metadata-codec.js';
|
|
7
7
|
export { validateMetadata, MAX_METADATA_SIZE, MAX_PROVIDERS, type ValidationError } from './metadata-validator.js';
|
|
8
|
-
export { METADATA_VERSION, type PeerMetadata, type ProviderAnnouncement } from './peer-metadata.js';
|
|
8
|
+
export { METADATA_VERSION, WELL_KNOWN_MODEL_CATEGORIES, type PeerMetadata, type ProviderAnnouncement } from './peer-metadata.js';
|
|
9
9
|
export { type MetadataResolver, type PeerEndpoint } from './metadata-resolver.js';
|
|
10
10
|
export { DefaultMetadataResolver } from './default-metadata-resolver.js';
|
|
11
11
|
export { HttpMetadataResolver, type HttpMetadataResolverConfig } from './http-metadata-resolver.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAChH,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjL,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAChH,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjL,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACjI,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,KAAK,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC7H,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC5G,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/discovery/index.js
CHANGED
|
@@ -5,7 +5,7 @@ export { scorePeer, rankPeers, selectBestPeer, selectDiversePeers, DEFAULT_SCORI
|
|
|
5
5
|
export { OFFICIAL_BOOTSTRAP_NODES, parseBootstrapList, mergeBootstrapNodes, toBootstrapConfig } from './bootstrap.js';
|
|
6
6
|
export { encodeMetadata, encodeMetadataForSigning, decodeMetadata } from './metadata-codec.js';
|
|
7
7
|
export { validateMetadata, MAX_METADATA_SIZE, MAX_PROVIDERS } from './metadata-validator.js';
|
|
8
|
-
export { METADATA_VERSION } from './peer-metadata.js';
|
|
8
|
+
export { METADATA_VERSION, WELL_KNOWN_MODEL_CATEGORIES } from './peer-metadata.js';
|
|
9
9
|
export { DefaultMetadataResolver } from './default-metadata-resolver.js';
|
|
10
10
|
export { HttpMetadataResolver } from './http-metadata-resolver.js';
|
|
11
11
|
export { DHTHealthMonitor, DEFAULT_HEALTH_THRESHOLDS } from './dht-health.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAsB,MAAM,eAAe,CAAC;AAChH,OAAO,EAAE,aAAa,EAAwB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAwC,MAAM,kBAAkB,CAAC;AAC3G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAA4D,MAAM,oBAAoB,CAAC;AACjL,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAsB,MAAM,gBAAgB,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAwB,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAgD,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAsB,MAAM,eAAe,CAAC;AAChH,OAAO,EAAE,aAAa,EAAwB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAwC,MAAM,kBAAkB,CAAC;AAC3G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAA4D,MAAM,oBAAoB,CAAC;AACjL,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAsB,MAAM,gBAAgB,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAwB,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAgD,MAAM,oBAAoB,CAAC;AAEjI,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAmC,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAiD,MAAM,iBAAiB,CAAC;AAC7H,OAAO,EAAE,cAAc,EAA6B,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAqD,MAAM,qBAAqB,CAAC;AAC5G,OAAO,EAAE,gBAAgB,EAA+B,MAAM,0BAA0B,CAAC"}
|
|
@@ -6,8 +6,15 @@ import type { PeerMetadata } from "./peer-metadata.js";
|
|
|
6
6
|
* [providerLen:1][provider:N][modelCount:1][models...]
|
|
7
7
|
* [defaultInputPrice:4][defaultOutputPrice:4]
|
|
8
8
|
* [modelPricingCount:1][modelPricingEntries...]
|
|
9
|
+
* [modelCategoryCount:1][modelCategoryEntries...] (v3+ only)
|
|
10
|
+
* [modelApiProtocolCount:1][modelApiProtocolEntries...] (v4+ only)
|
|
9
11
|
* [maxConcurrency:2][currentLoad:2]
|
|
10
12
|
* modelPricingEntry: [modelLen:1][model:N][inputPrice:4][outputPrice:4]
|
|
13
|
+
* modelCategoryEntry(v3+): [modelLen:1][model:N][categoryCount:1][categories...]
|
|
14
|
+
* category(v3+): [categoryLen:1][category:N]
|
|
15
|
+
* modelApiProtocolEntry(v4+): [modelLen:1][model:N][protocolCount:1][protocols...]
|
|
16
|
+
* protocol(v4+): [protocolLen:1][protocol:N]
|
|
17
|
+
* [displayNameFlag:1][displayNameLen:1][displayName:N] (v3+ only)
|
|
11
18
|
* [signature:64]
|
|
12
19
|
*/
|
|
13
20
|
export declare function encodeMetadata(metadata: PeerMetadata): Uint8Array;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-codec.d.ts","sourceRoot":"","sources":["../../src/discovery/metadata-codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata-codec.d.ts","sourceRoot":"","sources":["../../src/discovery/metadata-codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAUvD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,UAAU,CAQjE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,YAAY,GAAG,UAAU,CAE3E;AA0OD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAsV7D"}
|