@antseed/cli 0.1.148 → 0.1.150

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.
Files changed (94) hide show
  1. package/README.md +51 -17
  2. package/dist/cli/commands/buyer/activity.d.ts +3 -0
  3. package/dist/cli/commands/buyer/activity.d.ts.map +1 -0
  4. package/dist/cli/commands/buyer/activity.js +555 -0
  5. package/dist/cli/commands/buyer/activity.js.map +1 -0
  6. package/dist/cli/commands/buyer/daemon.d.ts +13 -0
  7. package/dist/cli/commands/buyer/daemon.d.ts.map +1 -0
  8. package/dist/cli/commands/buyer/daemon.js +39 -0
  9. package/dist/cli/commands/buyer/daemon.js.map +1 -0
  10. package/dist/cli/commands/buyer/deposit.d.ts +8 -0
  11. package/dist/cli/commands/buyer/deposit.d.ts.map +1 -1
  12. package/dist/cli/commands/buyer/deposit.js +338 -25
  13. package/dist/cli/commands/buyer/deposit.js.map +1 -1
  14. package/dist/cli/commands/buyer/index.d.ts.map +1 -1
  15. package/dist/cli/commands/buyer/index.js +2 -0
  16. package/dist/cli/commands/buyer/index.js.map +1 -1
  17. package/dist/cli/commands/buyer/start.d.ts +1 -0
  18. package/dist/cli/commands/buyer/start.d.ts.map +1 -1
  19. package/dist/cli/commands/buyer/start.js +53 -10
  20. package/dist/cli/commands/buyer/start.js.map +1 -1
  21. package/dist/cli/commands/buyer/start.test.js +30 -1
  22. package/dist/cli/commands/buyer/start.test.js.map +1 -1
  23. package/dist/cli/commands/buyer/sweep.d.ts.map +1 -1
  24. package/dist/cli/commands/buyer/sweep.js +17 -17
  25. package/dist/cli/commands/buyer/sweep.js.map +1 -1
  26. package/dist/cli/commands/network/browse.d.ts.map +1 -1
  27. package/dist/cli/commands/network/browse.js +65 -114
  28. package/dist/cli/commands/network/browse.js.map +1 -1
  29. package/dist/cli/commands/payments.d.ts.map +1 -1
  30. package/dist/cli/commands/payments.js +29 -34
  31. package/dist/cli/commands/payments.js.map +1 -1
  32. package/dist/cli/commands/seller/start.d.ts.map +1 -1
  33. package/dist/cli/commands/seller/start.js +4 -1
  34. package/dist/cli/commands/seller/start.js.map +1 -1
  35. package/dist/cli/commands/seller/start.test.js +15 -0
  36. package/dist/cli/commands/seller/start.test.js.map +1 -1
  37. package/dist/cli/index.js +2 -0
  38. package/dist/cli/index.js.map +1 -1
  39. package/dist/config/defaults.d.ts.map +1 -1
  40. package/dist/config/defaults.js +7 -0
  41. package/dist/config/defaults.js.map +1 -1
  42. package/dist/config/loader.d.ts.map +1 -1
  43. package/dist/config/loader.js +41 -0
  44. package/dist/config/loader.js.map +1 -1
  45. package/dist/config/loader.test.js +52 -0
  46. package/dist/config/loader.test.js.map +1 -1
  47. package/dist/config/types.d.ts +10 -0
  48. package/dist/config/types.d.ts.map +1 -1
  49. package/dist/config/validation.d.ts.map +1 -1
  50. package/dist/config/validation.js +17 -0
  51. package/dist/config/validation.js.map +1 -1
  52. package/dist/generated/baked-defaults.d.ts +15 -0
  53. package/dist/generated/baked-defaults.d.ts.map +1 -0
  54. package/dist/generated/baked-defaults.js +15 -0
  55. package/dist/generated/baked-defaults.js.map +1 -0
  56. package/dist/plugins/manager.d.ts +1 -0
  57. package/dist/plugins/manager.d.ts.map +1 -1
  58. package/dist/plugins/manager.js +15 -4
  59. package/dist/plugins/manager.js.map +1 -1
  60. package/dist/plugins/manager.test.d.ts +2 -0
  61. package/dist/plugins/manager.test.d.ts.map +1 -0
  62. package/dist/plugins/manager.test.js +15 -0
  63. package/dist/plugins/manager.test.js.map +1 -0
  64. package/dist/proxy/buyer-proxy.d.ts +31 -2
  65. package/dist/proxy/buyer-proxy.d.ts.map +1 -1
  66. package/dist/proxy/buyer-proxy.js +481 -59
  67. package/dist/proxy/buyer-proxy.js.map +1 -1
  68. package/dist/proxy/buyer-proxy.test.js +894 -56
  69. package/dist/proxy/buyer-proxy.test.js.map +1 -1
  70. package/dist/proxy/conversation-store.d.ts +6 -6
  71. package/dist/proxy/conversation-store.d.ts.map +1 -1
  72. package/dist/proxy/conversation-store.js +16 -0
  73. package/dist/proxy/conversation-store.js.map +1 -1
  74. package/dist/proxy/deposit-watcher.d.ts +125 -0
  75. package/dist/proxy/deposit-watcher.d.ts.map +1 -0
  76. package/dist/proxy/deposit-watcher.js +306 -0
  77. package/dist/proxy/deposit-watcher.js.map +1 -0
  78. package/dist/proxy/deposit-watcher.test.d.ts +2 -0
  79. package/dist/proxy/deposit-watcher.test.d.ts.map +1 -0
  80. package/dist/proxy/deposit-watcher.test.js +173 -0
  81. package/dist/proxy/deposit-watcher.test.js.map +1 -0
  82. package/dist/proxy/network-models.d.ts +76 -0
  83. package/dist/proxy/network-models.d.ts.map +1 -0
  84. package/dist/proxy/network-models.js +229 -0
  85. package/dist/proxy/network-models.js.map +1 -0
  86. package/dist/proxy/network-models.test.d.ts +2 -0
  87. package/dist/proxy/network-models.test.d.ts.map +1 -0
  88. package/dist/proxy/network-models.test.js +734 -0
  89. package/dist/proxy/network-models.test.js.map +1 -0
  90. package/dist/proxy/routing.d.ts +3 -1
  91. package/dist/proxy/routing.d.ts.map +1 -1
  92. package/dist/proxy/routing.js +69 -16
  93. package/dist/proxy/routing.js.map +1 -1
  94. package/package.json +6 -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=network-models.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-models.test.d.ts","sourceRoot":"","sources":["../../src/proxy/network-models.test.ts"],"names":[],"mappings":""}