@antseed/cli 0.1.147 → 0.1.149
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 +18 -3
- package/dist/cli/commands/buyer/start.d.ts +1 -0
- package/dist/cli/commands/buyer/start.d.ts.map +1 -1
- package/dist/cli/commands/buyer/start.js +10 -9
- package/dist/cli/commands/buyer/start.js.map +1 -1
- package/dist/cli/commands/buyer/start.test.js +30 -1
- package/dist/cli/commands/buyer/start.test.js.map +1 -1
- package/dist/cli/commands/network/browse.d.ts.map +1 -1
- package/dist/cli/commands/network/browse.js +65 -114
- package/dist/cli/commands/network/browse.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +6 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +39 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/loader.test.js +34 -0
- package/dist/config/loader.test.js.map +1 -1
- package/dist/config/types.d.ts +3 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +17 -0
- package/dist/config/validation.js.map +1 -1
- package/dist/proxy/buyer-proxy.d.ts +20 -2
- package/dist/proxy/buyer-proxy.d.ts.map +1 -1
- package/dist/proxy/buyer-proxy.js +408 -58
- package/dist/proxy/buyer-proxy.js.map +1 -1
- package/dist/proxy/buyer-proxy.test.js +828 -56
- package/dist/proxy/buyer-proxy.test.js.map +1 -1
- package/dist/proxy/conversation-store.d.ts +6 -6
- package/dist/proxy/conversation-store.d.ts.map +1 -1
- package/dist/proxy/conversation-store.js +16 -0
- package/dist/proxy/conversation-store.js.map +1 -1
- package/dist/proxy/network-models.d.ts +76 -0
- package/dist/proxy/network-models.d.ts.map +1 -0
- package/dist/proxy/network-models.js +229 -0
- package/dist/proxy/network-models.js.map +1 -0
- package/dist/proxy/network-models.test.d.ts +2 -0
- package/dist/proxy/network-models.test.d.ts.map +1 -0
- package/dist/proxy/network-models.test.js +734 -0
- package/dist/proxy/network-models.test.js.map +1 -0
- package/dist/proxy/routing.d.ts +3 -1
- package/dist/proxy/routing.d.ts.map +1 -1
- package/dist/proxy/routing.js +69 -16
- package/dist/proxy/routing.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type CatalogServiceCapabilities, type CatalogServiceProtocol, type ModelRoutingPreferences, type PeerInfo } from '@antseed/node';
|
|
2
|
+
export { effectiveModelReputationScore } from '@antseed/node';
|
|
3
|
+
export type NetworkModelType = 'text' | 'image';
|
|
4
|
+
export type NetworkModelPeerOffer = {
|
|
5
|
+
peerId: string;
|
|
6
|
+
displayName?: string;
|
|
7
|
+
provider: string;
|
|
8
|
+
serviceId: string;
|
|
9
|
+
protocol: CatalogServiceProtocol | null;
|
|
10
|
+
protocols: string[];
|
|
11
|
+
type: NetworkModelType;
|
|
12
|
+
capabilities?: CatalogServiceCapabilities;
|
|
13
|
+
categories?: string[];
|
|
14
|
+
reputationScore: number | null;
|
|
15
|
+
effectiveReputationScore: number | null;
|
|
16
|
+
onChainTrustScore: number | null;
|
|
17
|
+
onChainReputationScore: number | null;
|
|
18
|
+
inputUsdPerMillion?: number;
|
|
19
|
+
outputUsdPerMillion?: number;
|
|
20
|
+
cachedInputUsdPerMillion?: number;
|
|
21
|
+
minImageUsdPerImage?: number;
|
|
22
|
+
maxImageUsdPerImage?: number;
|
|
23
|
+
};
|
|
24
|
+
export type NetworkModelCapabilityCoverage = {
|
|
25
|
+
total_offers: number;
|
|
26
|
+
context_length: number;
|
|
27
|
+
max_output_tokens: number;
|
|
28
|
+
input_modalities: number;
|
|
29
|
+
output_modalities: number;
|
|
30
|
+
reasoning: number;
|
|
31
|
+
tool_use: number;
|
|
32
|
+
structured_output: number;
|
|
33
|
+
supported_parameters: number;
|
|
34
|
+
};
|
|
35
|
+
export type NetworkModelEntry = {
|
|
36
|
+
id: string;
|
|
37
|
+
name: string;
|
|
38
|
+
aliases: string[];
|
|
39
|
+
object: 'model';
|
|
40
|
+
created: number;
|
|
41
|
+
owned_by: 'antseed';
|
|
42
|
+
type: NetworkModelType;
|
|
43
|
+
supported_protocols: string[];
|
|
44
|
+
context_length?: number;
|
|
45
|
+
max_output_tokens?: number;
|
|
46
|
+
architecture?: {
|
|
47
|
+
input_modalities?: string[];
|
|
48
|
+
output_modalities?: string[];
|
|
49
|
+
};
|
|
50
|
+
capabilities?: {
|
|
51
|
+
reasoning?: boolean;
|
|
52
|
+
tool_use?: boolean;
|
|
53
|
+
structured_output?: boolean;
|
|
54
|
+
};
|
|
55
|
+
supported_parameters?: string[];
|
|
56
|
+
capability_coverage: NetworkModelCapabilityCoverage;
|
|
57
|
+
peers: NetworkModelPeerOffer[];
|
|
58
|
+
};
|
|
59
|
+
export type ModelTypeFilter = 'all' | NetworkModelType | 'invalid';
|
|
60
|
+
export type NetworkModelBuildOptions = {
|
|
61
|
+
routingPreferences?: ModelRoutingPreferences | null;
|
|
62
|
+
peerHealth?: ReadonlyMap<string, {
|
|
63
|
+
cooldownUntil?: number | null;
|
|
64
|
+
failureStreak?: number | null;
|
|
65
|
+
}>;
|
|
66
|
+
};
|
|
67
|
+
export declare function normalizedModelReputationScore(peer: PeerInfo, nowMs?: number): number | null;
|
|
68
|
+
/** Maps a `?type=` query value to a filter; absent/empty means "all". */
|
|
69
|
+
export declare function parseModelTypeFilter(raw: string | null): ModelTypeFilter;
|
|
70
|
+
/**
|
|
71
|
+
* One entry per canonical model across all discovered peers. Cosmetic naming
|
|
72
|
+
* variants and conservative family aliases are grouped together, while each
|
|
73
|
+
* peer offer retains its actual advertised service id for explicit routing.
|
|
74
|
+
*/
|
|
75
|
+
export declare function buildNetworkModels(peers: PeerInfo[], nowMs: number, options?: NetworkModelBuildOptions): NetworkModelEntry[];
|
|
76
|
+
//# sourceMappingURL=network-models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-models.d.ts","sourceRoot":"","sources":["../../src/proxy/network-models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
// ── Network model catalog ──
|
|
2
|
+
// Aggregates the buyer's discovered-peer cache into an OpenAI-style
|
|
3
|
+
// /v1/models payload that covers the whole network instead of a single
|
|
4
|
+
// pinned seller. Each model id appears once, with the peers that serve it
|
|
5
|
+
// (and their pricing) listed under `peers`. Each peer retains its actual
|
|
6
|
+
// advertised `serviceId`, which callers use to pin `<peerId>@<serviceId>`.
|
|
7
|
+
import { buildNetworkServiceOffers, compareEffectiveModelReputation, computeOnChainReputationScore, effectiveModelReputationScore, normalizedModelReputationScore as normalizeModelReputationScore, rankModelRoutes, selectLowestPricedCanonicalOffers, } from '@antseed/node';
|
|
8
|
+
import { canonicalModelKey, preferredModelDisplayName } from '@antseed/node/model-identity';
|
|
9
|
+
export { effectiveModelReputationScore } from '@antseed/node';
|
|
10
|
+
function normalizedModelAlias(serviceId) {
|
|
11
|
+
let value = serviceId.trim().toLowerCase();
|
|
12
|
+
const slash = value.lastIndexOf('/');
|
|
13
|
+
if (slash >= 0)
|
|
14
|
+
value = value.slice(slash + 1);
|
|
15
|
+
return value.replace(/[^a-z0-9.]+/g, '-').replace(/^-+|-+$/g, '');
|
|
16
|
+
}
|
|
17
|
+
function onChainReputationScore(peer, nowMs) {
|
|
18
|
+
if (!peer)
|
|
19
|
+
return null;
|
|
20
|
+
const score = peer.onChainReputationScore ?? computeOnChainReputationScore(peer, nowMs);
|
|
21
|
+
return typeof score === 'number' && Number.isFinite(score) ? score : null;
|
|
22
|
+
}
|
|
23
|
+
function legacyPeerReputationScore(peer, nowMs) {
|
|
24
|
+
const score = peer.onChainTrustScore ?? peer.onChainReputationScore ?? computeOnChainReputationScore(peer, nowMs);
|
|
25
|
+
return typeof score === 'number' && Number.isFinite(score) ? score : null;
|
|
26
|
+
}
|
|
27
|
+
export function normalizedModelReputationScore(peer, nowMs = Date.now()) {
|
|
28
|
+
return normalizeModelReputationScore({
|
|
29
|
+
...peer,
|
|
30
|
+
onChainReputationScore: peer.onChainReputationScore ?? computeOnChainReputationScore(peer, nowMs),
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function countReported(values) {
|
|
34
|
+
return values.filter((value) => value !== undefined).length;
|
|
35
|
+
}
|
|
36
|
+
function guaranteedMinimum(values) {
|
|
37
|
+
return values.every((value) => value !== undefined) ? Math.min(...values) : undefined;
|
|
38
|
+
}
|
|
39
|
+
function guaranteedBoolean(values) {
|
|
40
|
+
return values.every((value) => value !== undefined) ? values.every(Boolean) : undefined;
|
|
41
|
+
}
|
|
42
|
+
function guaranteedIntersection(values) {
|
|
43
|
+
if (!values.every((value) => value !== undefined))
|
|
44
|
+
return undefined;
|
|
45
|
+
const [first = [], ...rest] = values;
|
|
46
|
+
return [...new Set(first)].filter((value) => rest.every((items) => items.includes(value))).sort((a, b) => a.localeCompare(b));
|
|
47
|
+
}
|
|
48
|
+
function aggregateModelCapabilities(entry) {
|
|
49
|
+
const capabilities = entry.peers.map((peer) => peer.capabilities);
|
|
50
|
+
const contextWindows = capabilities.map((value) => value?.contextWindow);
|
|
51
|
+
const maxOutputTokens = capabilities.map((value) => value?.maxOutputTokens);
|
|
52
|
+
const inputModalities = capabilities.map((value) => value?.inputs);
|
|
53
|
+
const outputModalities = capabilities.map((value) => value?.outputs);
|
|
54
|
+
const reasoning = capabilities.map((value) => value?.reasoning);
|
|
55
|
+
const toolUse = capabilities.map((value) => value?.toolUse);
|
|
56
|
+
const structuredOutput = capabilities.map((value) => value?.structuredOutput);
|
|
57
|
+
const supportedParameters = capabilities.map((value) => value?.supportedParameters);
|
|
58
|
+
entry.supported_protocols = [...new Set(entry.peers.flatMap((peer) => [peer.protocol, ...peer.protocols]))]
|
|
59
|
+
.filter((protocol) => Boolean(protocol))
|
|
60
|
+
.sort((a, b) => a.localeCompare(b));
|
|
61
|
+
entry.capability_coverage = {
|
|
62
|
+
total_offers: entry.peers.length,
|
|
63
|
+
context_length: countReported(contextWindows),
|
|
64
|
+
max_output_tokens: countReported(maxOutputTokens),
|
|
65
|
+
input_modalities: countReported(inputModalities),
|
|
66
|
+
output_modalities: countReported(outputModalities),
|
|
67
|
+
reasoning: countReported(reasoning),
|
|
68
|
+
tool_use: countReported(toolUse),
|
|
69
|
+
structured_output: countReported(structuredOutput),
|
|
70
|
+
supported_parameters: countReported(supportedParameters),
|
|
71
|
+
};
|
|
72
|
+
const contextLength = guaranteedMinimum(contextWindows);
|
|
73
|
+
const maxOutput = guaranteedMinimum(maxOutputTokens);
|
|
74
|
+
const inputs = guaranteedIntersection(inputModalities);
|
|
75
|
+
const outputs = guaranteedIntersection(outputModalities);
|
|
76
|
+
const guaranteedReasoning = guaranteedBoolean(reasoning);
|
|
77
|
+
const guaranteedToolUse = guaranteedBoolean(toolUse);
|
|
78
|
+
const guaranteedStructuredOutput = guaranteedBoolean(structuredOutput);
|
|
79
|
+
const parameters = guaranteedIntersection(supportedParameters);
|
|
80
|
+
if (contextLength !== undefined)
|
|
81
|
+
entry.context_length = contextLength;
|
|
82
|
+
if (maxOutput !== undefined)
|
|
83
|
+
entry.max_output_tokens = maxOutput;
|
|
84
|
+
if (inputs !== undefined || outputs !== undefined) {
|
|
85
|
+
entry.architecture = {
|
|
86
|
+
...(inputs !== undefined ? { input_modalities: inputs } : {}),
|
|
87
|
+
...(outputs !== undefined ? { output_modalities: outputs } : {}),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
if (guaranteedReasoning !== undefined || guaranteedToolUse !== undefined || guaranteedStructuredOutput !== undefined) {
|
|
91
|
+
entry.capabilities = {
|
|
92
|
+
...(guaranteedReasoning !== undefined ? { reasoning: guaranteedReasoning } : {}),
|
|
93
|
+
...(guaranteedToolUse !== undefined ? { tool_use: guaranteedToolUse } : {}),
|
|
94
|
+
...(guaranteedStructuredOutput !== undefined ? { structured_output: guaranteedStructuredOutput } : {}),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
if (parameters !== undefined)
|
|
98
|
+
entry.supported_parameters = parameters;
|
|
99
|
+
}
|
|
100
|
+
/** Maps a `?type=` query value to a filter; absent/empty means "all". */
|
|
101
|
+
export function parseModelTypeFilter(raw) {
|
|
102
|
+
const value = raw?.trim().toLowerCase() ?? '';
|
|
103
|
+
if (value === '')
|
|
104
|
+
return 'all';
|
|
105
|
+
if (value === 'image' || value === 'images')
|
|
106
|
+
return 'image';
|
|
107
|
+
if (value === 'text')
|
|
108
|
+
return 'text';
|
|
109
|
+
return 'invalid';
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* One entry per canonical model across all discovered peers. Cosmetic naming
|
|
113
|
+
* variants and conservative family aliases are grouped together, while each
|
|
114
|
+
* peer offer retains its actual advertised service id for explicit routing.
|
|
115
|
+
*/
|
|
116
|
+
export function buildNetworkModels(peers, nowMs, options = {}) {
|
|
117
|
+
const created = Math.floor(nowMs / 1000);
|
|
118
|
+
const byModelKey = new Map();
|
|
119
|
+
const legacyReputationByPeerId = new Map();
|
|
120
|
+
const normalizedReputationByPeerId = new Map();
|
|
121
|
+
const peerById = new Map(peers.map((peer) => [peer.peerId, peer]));
|
|
122
|
+
for (const peer of peers) {
|
|
123
|
+
legacyReputationByPeerId.set(peer.peerId, legacyPeerReputationScore(peer, nowMs));
|
|
124
|
+
normalizedReputationByPeerId.set(peer.peerId, normalizedModelReputationScore(peer, nowMs));
|
|
125
|
+
}
|
|
126
|
+
const allOffers = buildNetworkServiceOffers(peers);
|
|
127
|
+
const offersByPeerModel = new Map();
|
|
128
|
+
for (const offer of allOffers) {
|
|
129
|
+
const key = canonicalModelKey(offer.serviceId);
|
|
130
|
+
if (!key)
|
|
131
|
+
continue;
|
|
132
|
+
const peerModelKey = `${offer.peerId}\u0000${key}`;
|
|
133
|
+
const duplicateOffers = offersByPeerModel.get(peerModelKey) ?? [];
|
|
134
|
+
duplicateOffers.push(offer);
|
|
135
|
+
offersByPeerModel.set(peerModelKey, duplicateOffers);
|
|
136
|
+
}
|
|
137
|
+
const selectedOffers = new Set(selectLowestPricedCanonicalOffers(allOffers));
|
|
138
|
+
for (const duplicateOffers of offersByPeerModel.values()) {
|
|
139
|
+
const offer = duplicateOffers.find((candidate) => selectedOffers.has(candidate));
|
|
140
|
+
if (!offer)
|
|
141
|
+
continue;
|
|
142
|
+
const key = canonicalModelKey(offer.serviceId);
|
|
143
|
+
if (!key)
|
|
144
|
+
continue;
|
|
145
|
+
let entry = byModelKey.get(key);
|
|
146
|
+
if (!entry) {
|
|
147
|
+
entry = {
|
|
148
|
+
id: offer.serviceId,
|
|
149
|
+
name: preferredModelDisplayName(offer.serviceId),
|
|
150
|
+
aliases: [],
|
|
151
|
+
object: 'model',
|
|
152
|
+
created,
|
|
153
|
+
owned_by: 'antseed',
|
|
154
|
+
type: offer.type,
|
|
155
|
+
supported_protocols: [],
|
|
156
|
+
capability_coverage: {
|
|
157
|
+
total_offers: 0,
|
|
158
|
+
context_length: 0,
|
|
159
|
+
max_output_tokens: 0,
|
|
160
|
+
input_modalities: 0,
|
|
161
|
+
output_modalities: 0,
|
|
162
|
+
reasoning: 0,
|
|
163
|
+
tool_use: 0,
|
|
164
|
+
structured_output: 0,
|
|
165
|
+
supported_parameters: 0,
|
|
166
|
+
},
|
|
167
|
+
peers: [],
|
|
168
|
+
};
|
|
169
|
+
byModelKey.set(key, entry);
|
|
170
|
+
}
|
|
171
|
+
for (const duplicate of duplicateOffers) {
|
|
172
|
+
entry.aliases.push(normalizedModelAlias(duplicate.serviceId), key);
|
|
173
|
+
}
|
|
174
|
+
if (offer.type === 'text')
|
|
175
|
+
entry.type = 'text';
|
|
176
|
+
const peer = peerById.get(offer.peerId);
|
|
177
|
+
entry.peers.push({
|
|
178
|
+
peerId: offer.peerId,
|
|
179
|
+
...(offer.displayName ? { displayName: offer.displayName } : {}),
|
|
180
|
+
provider: offer.provider,
|
|
181
|
+
serviceId: offer.serviceId,
|
|
182
|
+
protocol: offer.protocol,
|
|
183
|
+
protocols: offer.protocols,
|
|
184
|
+
type: offer.type,
|
|
185
|
+
...(offer.capabilities ? { capabilities: offer.capabilities } : {}),
|
|
186
|
+
...(offer.categories ? { categories: offer.categories } : {}),
|
|
187
|
+
reputationScore: legacyReputationByPeerId.get(offer.peerId) ?? null,
|
|
188
|
+
effectiveReputationScore: normalizedReputationByPeerId.get(offer.peerId) ?? null,
|
|
189
|
+
onChainTrustScore: peer?.onChainTrustScore ?? null,
|
|
190
|
+
onChainReputationScore: onChainReputationScore(peer, nowMs),
|
|
191
|
+
...(offer.inputUsdPerMillion !== undefined ? { inputUsdPerMillion: offer.inputUsdPerMillion } : {}),
|
|
192
|
+
...(offer.outputUsdPerMillion !== undefined ? { outputUsdPerMillion: offer.outputUsdPerMillion } : {}),
|
|
193
|
+
...(offer.cachedInputUsdPerMillion !== undefined ? { cachedInputUsdPerMillion: offer.cachedInputUsdPerMillion } : {}),
|
|
194
|
+
...(offer.minImageUsdPerImage !== undefined ? { minImageUsdPerImage: offer.minImageUsdPerImage } : {}),
|
|
195
|
+
...(offer.maxImageUsdPerImage !== undefined ? { maxImageUsdPerImage: offer.maxImageUsdPerImage } : {}),
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
const entries = [...byModelKey.values()];
|
|
199
|
+
for (const entry of entries) {
|
|
200
|
+
entry.aliases = [...new Set(entry.aliases.filter(Boolean))].sort((a, b) => a.localeCompare(b));
|
|
201
|
+
const modelHasCachedInputPricing = entry.peers.some((peer) => peer.cachedInputUsdPerMillion !== undefined);
|
|
202
|
+
for (const peer of entry.peers) {
|
|
203
|
+
const sourcePeer = peerById.get(peer.peerId);
|
|
204
|
+
peer.effectiveReputationScore = modelHasCachedInputPricing
|
|
205
|
+
? effectiveModelReputationScore(sourcePeer ? normalizedModelReputationScore(sourcePeer, nowMs) : peer.onChainReputationScore, peer.cachedInputUsdPerMillion !== undefined, true)
|
|
206
|
+
: normalizedReputationByPeerId.get(peer.peerId) ?? null;
|
|
207
|
+
}
|
|
208
|
+
if (options.routingPreferences) {
|
|
209
|
+
const ranked = rankModelRoutes(entry.peers.map((offer) => {
|
|
210
|
+
const health = options.peerHealth?.get(offer.peerId)
|
|
211
|
+
?? options.peerHealth?.get(offer.peerId.toLowerCase());
|
|
212
|
+
return {
|
|
213
|
+
...offer,
|
|
214
|
+
sourceOffer: offer,
|
|
215
|
+
peerCooldownUntil: health?.cooldownUntil ?? null,
|
|
216
|
+
peerFailureStreak: health?.failureStreak ?? 0,
|
|
217
|
+
};
|
|
218
|
+
}), options.routingPreferences, nowMs);
|
|
219
|
+
entry.peers = ranked.map(({ sourceOffer }) => sourceOffer);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
entry.peers.sort(compareEffectiveModelReputation);
|
|
223
|
+
}
|
|
224
|
+
aggregateModelCapabilities(entry);
|
|
225
|
+
}
|
|
226
|
+
entries.sort((a, b) => a.id.localeCompare(b.id));
|
|
227
|
+
return entries;
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=network-models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-models.js","sourceRoot":"","sources":["../../src/proxy/network-models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-models.test.d.ts","sourceRoot":"","sources":["../../src/proxy/network-models.test.ts"],"names":[],"mappings":""}
|