@antseed/node 0.1.3 → 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.
Files changed (49) hide show
  1. package/README.md +8 -0
  2. package/dist/discovery/announcer.d.ts +3 -0
  3. package/dist/discovery/announcer.d.ts.map +1 -1
  4. package/dist/discovery/announcer.js +28 -1
  5. package/dist/discovery/announcer.js.map +1 -1
  6. package/dist/discovery/metadata-codec.d.ts +3 -0
  7. package/dist/discovery/metadata-codec.d.ts.map +1 -1
  8. package/dist/discovery/metadata-codec.js +62 -0
  9. package/dist/discovery/metadata-codec.js.map +1 -1
  10. package/dist/discovery/metadata-validator.d.ts +1 -0
  11. package/dist/discovery/metadata-validator.d.ts.map +1 -1
  12. package/dist/discovery/metadata-validator.js +71 -2
  13. package/dist/discovery/metadata-validator.js.map +1 -1
  14. package/dist/discovery/peer-metadata.d.ts +6 -1
  15. package/dist/discovery/peer-metadata.d.ts.map +1 -1
  16. package/dist/discovery/peer-metadata.js +3 -1
  17. package/dist/discovery/peer-metadata.js.map +1 -1
  18. package/dist/index.d.ts +2 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +2 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/interfaces/seller-provider.d.ts +3 -0
  23. package/dist/interfaces/seller-provider.d.ts.map +1 -1
  24. package/dist/node.d.ts +1 -0
  25. package/dist/node.d.ts.map +1 -1
  26. package/dist/node.js +28 -3
  27. package/dist/node.js.map +1 -1
  28. package/dist/proxy/index.d.ts +1 -0
  29. package/dist/proxy/index.d.ts.map +1 -1
  30. package/dist/proxy/index.js +1 -0
  31. package/dist/proxy/index.js.map +1 -1
  32. package/dist/proxy/model-api-adapter.d.ts +20 -0
  33. package/dist/proxy/model-api-adapter.d.ts.map +1 -0
  34. package/dist/proxy/model-api-adapter.js +514 -0
  35. package/dist/proxy/model-api-adapter.js.map +1 -0
  36. package/dist/types/index.d.ts +1 -0
  37. package/dist/types/index.d.ts.map +1 -1
  38. package/dist/types/index.js +1 -0
  39. package/dist/types/index.js.map +1 -1
  40. package/dist/types/model-api.d.ts +4 -0
  41. package/dist/types/model-api.d.ts.map +1 -0
  42. package/dist/types/model-api.js +10 -0
  43. package/dist/types/model-api.js.map +1 -0
  44. package/dist/types/peer.d.ts +6 -0
  45. package/dist/types/peer.d.ts.map +1 -1
  46. package/dist/types/peer.js.map +1 -1
  47. package/dist/types/plugin-config.d.ts +1 -1
  48. package/dist/types/plugin-config.d.ts.map +1 -1
  49. package/package.json +1 -1
@@ -0,0 +1,514 @@
1
+ const ANTHROPIC_PROVIDER_NAMES = new Set(['anthropic', 'claude-code', 'claude-oauth']);
2
+ const OPENAI_CHAT_PROVIDER_NAMES = new Set(['openai', 'local-llm']);
3
+ function parseJsonObject(body) {
4
+ try {
5
+ const parsed = JSON.parse(new TextDecoder().decode(body));
6
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
7
+ return null;
8
+ }
9
+ return parsed;
10
+ }
11
+ catch {
12
+ return null;
13
+ }
14
+ }
15
+ function encodeJson(value) {
16
+ return new TextEncoder().encode(JSON.stringify(value));
17
+ }
18
+ function toStringContent(value) {
19
+ if (typeof value === 'string') {
20
+ return value;
21
+ }
22
+ if (Array.isArray(value)) {
23
+ return value
24
+ .map((entry) => {
25
+ if (!entry || typeof entry !== 'object') {
26
+ return '';
27
+ }
28
+ const block = entry;
29
+ if (block.type === 'text' && typeof block.text === 'string') {
30
+ return block.text;
31
+ }
32
+ if (block.type === 'tool_result') {
33
+ return toStringContent(block.content);
34
+ }
35
+ return '';
36
+ })
37
+ .filter((entry) => entry.length > 0)
38
+ .join('\n');
39
+ }
40
+ if (value === null || value === undefined) {
41
+ return '';
42
+ }
43
+ return String(value);
44
+ }
45
+ function parseJsonSafe(raw) {
46
+ try {
47
+ return JSON.parse(raw);
48
+ }
49
+ catch {
50
+ return raw;
51
+ }
52
+ }
53
+ function mapFinishReasonToAnthropicStopReason(value) {
54
+ if (typeof value !== 'string' || value.length === 0) {
55
+ return null;
56
+ }
57
+ if (value === 'stop')
58
+ return 'end_turn';
59
+ if (value === 'length')
60
+ return 'max_tokens';
61
+ if (value === 'tool_calls' || value === 'function_call')
62
+ return 'tool_use';
63
+ return value;
64
+ }
65
+ function toNonNegativeInt(value) {
66
+ const parsed = Number(value);
67
+ if (!Number.isFinite(parsed) || parsed <= 0) {
68
+ return 0;
69
+ }
70
+ return Math.floor(parsed);
71
+ }
72
+ function convertAnthropicMessagesToOpenAI(body) {
73
+ const out = [];
74
+ if (body.system !== undefined) {
75
+ const systemText = toStringContent(body.system);
76
+ if (systemText.length > 0) {
77
+ out.push({ role: 'system', content: systemText });
78
+ }
79
+ }
80
+ const messagesRaw = body.messages;
81
+ if (!Array.isArray(messagesRaw)) {
82
+ return out;
83
+ }
84
+ for (const messageRaw of messagesRaw) {
85
+ if (!messageRaw || typeof messageRaw !== 'object') {
86
+ continue;
87
+ }
88
+ const message = messageRaw;
89
+ const role = typeof message.role === 'string' ? message.role : 'user';
90
+ const content = message.content;
91
+ if (role === 'assistant' && Array.isArray(content)) {
92
+ const textParts = [];
93
+ const toolCalls = [];
94
+ for (const blockRaw of content) {
95
+ if (!blockRaw || typeof blockRaw !== 'object') {
96
+ continue;
97
+ }
98
+ const block = blockRaw;
99
+ const blockType = typeof block.type === 'string' ? block.type : '';
100
+ if (blockType === 'tool_use') {
101
+ const callName = typeof block.name === 'string' && block.name.length > 0 ? block.name : 'tool';
102
+ const callId = typeof block.id === 'string' && block.id.length > 0
103
+ ? block.id
104
+ : `call_${toolCalls.length + 1}`;
105
+ const input = block.input && typeof block.input === 'object' ? block.input : {};
106
+ toolCalls.push({
107
+ id: callId,
108
+ type: 'function',
109
+ function: {
110
+ name: callName,
111
+ arguments: JSON.stringify(input),
112
+ },
113
+ });
114
+ continue;
115
+ }
116
+ const text = toStringContent(block);
117
+ if (text.length > 0) {
118
+ textParts.push(text);
119
+ }
120
+ }
121
+ const assistantMessage = {
122
+ role: 'assistant',
123
+ content: textParts.join('\n'),
124
+ };
125
+ if (toolCalls.length > 0) {
126
+ assistantMessage.tool_calls = toolCalls;
127
+ }
128
+ out.push(assistantMessage);
129
+ continue;
130
+ }
131
+ if (role === 'user' && Array.isArray(content)) {
132
+ const textParts = [];
133
+ const toolResults = [];
134
+ for (const blockRaw of content) {
135
+ if (!blockRaw || typeof blockRaw !== 'object') {
136
+ continue;
137
+ }
138
+ const block = blockRaw;
139
+ const blockType = typeof block.type === 'string' ? block.type : '';
140
+ if (blockType === 'tool_result') {
141
+ const toolCallId = typeof block.tool_use_id === 'string' ? block.tool_use_id : '';
142
+ if (toolCallId.length > 0) {
143
+ toolResults.push({
144
+ role: 'tool',
145
+ tool_call_id: toolCallId,
146
+ content: toStringContent(block.content),
147
+ });
148
+ continue;
149
+ }
150
+ }
151
+ const text = toStringContent(block);
152
+ if (text.length > 0) {
153
+ textParts.push(text);
154
+ }
155
+ }
156
+ if (textParts.length > 0) {
157
+ out.push({
158
+ role: 'user',
159
+ content: textParts.join('\n'),
160
+ });
161
+ }
162
+ out.push(...toolResults);
163
+ continue;
164
+ }
165
+ out.push({
166
+ role,
167
+ content: toStringContent(content),
168
+ });
169
+ }
170
+ return out;
171
+ }
172
+ function convertAnthropicToolsToOpenAI(toolsRaw) {
173
+ if (!Array.isArray(toolsRaw) || toolsRaw.length === 0) {
174
+ return undefined;
175
+ }
176
+ const out = [];
177
+ for (const toolRaw of toolsRaw) {
178
+ if (!toolRaw || typeof toolRaw !== 'object') {
179
+ continue;
180
+ }
181
+ const tool = toolRaw;
182
+ if (typeof tool.name !== 'string' || tool.name.length === 0) {
183
+ continue;
184
+ }
185
+ out.push({
186
+ type: 'function',
187
+ function: {
188
+ name: tool.name,
189
+ ...(typeof tool.description === 'string' && tool.description.length > 0
190
+ ? { description: tool.description }
191
+ : {}),
192
+ parameters: tool.input_schema && typeof tool.input_schema === 'object'
193
+ ? tool.input_schema
194
+ : { type: 'object', properties: {} },
195
+ },
196
+ });
197
+ }
198
+ return out.length > 0 ? out : undefined;
199
+ }
200
+ function convertAnthropicToolChoiceToOpenAI(toolChoice) {
201
+ if (typeof toolChoice === 'string') {
202
+ if (toolChoice === 'auto' || toolChoice === 'none' || toolChoice === 'required') {
203
+ return toolChoice;
204
+ }
205
+ return undefined;
206
+ }
207
+ if (!toolChoice || typeof toolChoice !== 'object') {
208
+ return undefined;
209
+ }
210
+ const choice = toolChoice;
211
+ const type = typeof choice.type === 'string' ? choice.type : '';
212
+ if (type === 'auto') {
213
+ return 'auto';
214
+ }
215
+ if (type === 'any') {
216
+ return 'required';
217
+ }
218
+ if (type === 'tool' && typeof choice.name === 'string' && choice.name.length > 0) {
219
+ return {
220
+ type: 'function',
221
+ function: {
222
+ name: choice.name,
223
+ },
224
+ };
225
+ }
226
+ return undefined;
227
+ }
228
+ function buildAnthropicStreamFromMessage(message) {
229
+ const chunks = [];
230
+ const pushEvent = (event, data) => {
231
+ chunks.push(`event: ${event}\n`);
232
+ chunks.push(`data: ${JSON.stringify(data)}\n\n`);
233
+ };
234
+ pushEvent('message_start', {
235
+ type: 'message_start',
236
+ message: {
237
+ id: message.id,
238
+ type: 'message',
239
+ role: 'assistant',
240
+ model: message.model,
241
+ content: [],
242
+ stop_reason: null,
243
+ stop_sequence: null,
244
+ usage: {
245
+ input_tokens: message.usage.inputTokens,
246
+ output_tokens: 0,
247
+ },
248
+ },
249
+ });
250
+ message.content.forEach((block, index) => {
251
+ pushEvent('content_block_start', {
252
+ type: 'content_block_start',
253
+ index,
254
+ content_block: block.type === 'text'
255
+ ? { type: 'text', text: '' }
256
+ : { type: 'tool_use', id: block.id, name: block.name, input: block.input },
257
+ });
258
+ if (block.type === 'text' && block.text.length > 0) {
259
+ pushEvent('content_block_delta', {
260
+ type: 'content_block_delta',
261
+ index,
262
+ delta: {
263
+ type: 'text_delta',
264
+ text: block.text,
265
+ },
266
+ });
267
+ }
268
+ pushEvent('content_block_stop', {
269
+ type: 'content_block_stop',
270
+ index,
271
+ });
272
+ });
273
+ pushEvent('message_delta', {
274
+ type: 'message_delta',
275
+ delta: {
276
+ stop_reason: message.stopReason,
277
+ stop_sequence: null,
278
+ },
279
+ usage: {
280
+ output_tokens: message.usage.outputTokens,
281
+ },
282
+ });
283
+ pushEvent('message_stop', {
284
+ type: 'message_stop',
285
+ });
286
+ return new TextEncoder().encode(chunks.join(''));
287
+ }
288
+ export function detectRequestModelApiProtocol(request) {
289
+ const normalizedPath = request.path.toLowerCase();
290
+ if (normalizedPath.startsWith('/v1/messages') || normalizedPath.startsWith('/v1/complete')) {
291
+ return 'anthropic-messages';
292
+ }
293
+ if (normalizedPath.startsWith('/v1/chat/completions')) {
294
+ return 'openai-chat-completions';
295
+ }
296
+ if (normalizedPath.startsWith('/v1/completions')) {
297
+ return 'openai-completions';
298
+ }
299
+ const hasAnthropicVersionHeader = Object.keys(request.headers)
300
+ .some((key) => key.toLowerCase() === 'anthropic-version');
301
+ if (hasAnthropicVersionHeader) {
302
+ return 'anthropic-messages';
303
+ }
304
+ return null;
305
+ }
306
+ export function inferProviderDefaultModelApiProtocols(providerName) {
307
+ const normalized = providerName.trim().toLowerCase();
308
+ if (normalized.length === 0) {
309
+ return [];
310
+ }
311
+ if (ANTHROPIC_PROVIDER_NAMES.has(normalized)) {
312
+ return ['anthropic-messages'];
313
+ }
314
+ if (OPENAI_CHAT_PROVIDER_NAMES.has(normalized)) {
315
+ return ['openai-chat-completions'];
316
+ }
317
+ return [];
318
+ }
319
+ export function selectTargetProtocolForRequest(requestProtocol, supportedProtocols) {
320
+ if (!requestProtocol) {
321
+ return null;
322
+ }
323
+ if (supportedProtocols.includes(requestProtocol)) {
324
+ return { targetProtocol: requestProtocol, requiresTransform: false };
325
+ }
326
+ if (requestProtocol === 'anthropic-messages' && supportedProtocols.includes('openai-chat-completions')) {
327
+ return { targetProtocol: 'openai-chat-completions', requiresTransform: true };
328
+ }
329
+ return null;
330
+ }
331
+ export function transformAnthropicMessagesRequestToOpenAIChat(request) {
332
+ if (!request.path.toLowerCase().startsWith('/v1/messages')) {
333
+ return null;
334
+ }
335
+ const body = parseJsonObject(request.body);
336
+ if (!body) {
337
+ return null;
338
+ }
339
+ const streamRequested = body.stream === true;
340
+ const requestedModel = typeof body.model === 'string' && body.model.trim().length > 0
341
+ ? body.model.trim()
342
+ : null;
343
+ const mappedMessages = convertAnthropicMessagesToOpenAI(body);
344
+ const mappedTools = convertAnthropicToolsToOpenAI(body.tools);
345
+ const mappedToolChoice = convertAnthropicToolChoiceToOpenAI(body.tool_choice);
346
+ const transformedBody = {
347
+ ...(requestedModel ? { model: requestedModel } : {}),
348
+ messages: mappedMessages,
349
+ stream: false,
350
+ };
351
+ if (typeof body.max_tokens === 'number') {
352
+ transformedBody.max_tokens = body.max_tokens;
353
+ }
354
+ if (typeof body.temperature === 'number') {
355
+ transformedBody.temperature = body.temperature;
356
+ }
357
+ if (typeof body.top_p === 'number') {
358
+ transformedBody.top_p = body.top_p;
359
+ }
360
+ if (Array.isArray(body.stop_sequences)) {
361
+ transformedBody.stop = body.stop_sequences;
362
+ }
363
+ if (mappedTools) {
364
+ transformedBody.tools = mappedTools;
365
+ }
366
+ if (mappedToolChoice !== undefined) {
367
+ transformedBody.tool_choice = mappedToolChoice;
368
+ }
369
+ if (body.metadata && typeof body.metadata === 'object' && !Array.isArray(body.metadata)) {
370
+ transformedBody.metadata = body.metadata;
371
+ }
372
+ if (typeof body.user === 'string') {
373
+ transformedBody.user = body.user;
374
+ }
375
+ const transformedHeaders = { ...request.headers };
376
+ for (const headerName of Object.keys(transformedHeaders)) {
377
+ const lower = headerName.toLowerCase();
378
+ if (lower === 'anthropic-version' || lower === 'anthropic-beta') {
379
+ delete transformedHeaders[headerName];
380
+ }
381
+ }
382
+ transformedHeaders['content-type'] = 'application/json';
383
+ return {
384
+ request: {
385
+ ...request,
386
+ path: '/v1/chat/completions',
387
+ headers: transformedHeaders,
388
+ body: encodeJson(transformedBody),
389
+ },
390
+ streamRequested,
391
+ requestedModel,
392
+ };
393
+ }
394
+ export function transformOpenAIChatResponseToAnthropicMessage(response, options) {
395
+ const parsed = parseJsonObject(response.body);
396
+ if (!parsed) {
397
+ return response;
398
+ }
399
+ if (response.statusCode >= 400) {
400
+ const openaiError = parsed.error && typeof parsed.error === 'object'
401
+ ? parsed.error
402
+ : null;
403
+ const message = openaiError && typeof openaiError.message === 'string'
404
+ ? openaiError.message
405
+ : 'Upstream error';
406
+ const anthropicError = {
407
+ type: 'error',
408
+ error: {
409
+ type: 'api_error',
410
+ message,
411
+ },
412
+ };
413
+ return {
414
+ ...response,
415
+ headers: {
416
+ ...response.headers,
417
+ 'content-type': options.streamRequested ? 'text/event-stream' : 'application/json',
418
+ },
419
+ body: options.streamRequested
420
+ ? new TextEncoder().encode(`event: error\ndata: ${JSON.stringify(anthropicError)}\n\n`)
421
+ : encodeJson(anthropicError),
422
+ };
423
+ }
424
+ const choices = Array.isArray(parsed.choices) ? parsed.choices : [];
425
+ const firstChoice = choices[0] && typeof choices[0] === 'object'
426
+ ? choices[0]
427
+ : null;
428
+ const message = firstChoice?.message && typeof firstChoice.message === 'object'
429
+ ? firstChoice.message
430
+ : null;
431
+ const finishReason = mapFinishReasonToAnthropicStopReason(firstChoice?.finish_reason);
432
+ const contentBlocks = [];
433
+ const textContent = toStringContent(message?.content);
434
+ if (textContent.length > 0) {
435
+ contentBlocks.push({ type: 'text', text: textContent });
436
+ }
437
+ const toolCalls = Array.isArray(message?.tool_calls) ? message.tool_calls : [];
438
+ for (const [index, toolCallRaw] of toolCalls.entries()) {
439
+ if (!toolCallRaw || typeof toolCallRaw !== 'object') {
440
+ continue;
441
+ }
442
+ const toolCall = toolCallRaw;
443
+ const functionPayload = toolCall.function && typeof toolCall.function === 'object'
444
+ ? toolCall.function
445
+ : {};
446
+ const id = typeof toolCall.id === 'string' && toolCall.id.length > 0
447
+ ? toolCall.id
448
+ : `toolu_${index + 1}`;
449
+ const name = typeof functionPayload.name === 'string' && functionPayload.name.length > 0
450
+ ? functionPayload.name
451
+ : 'tool';
452
+ const argsRaw = typeof functionPayload.arguments === 'string' ? functionPayload.arguments : '{}';
453
+ const parsedArgs = parseJsonSafe(argsRaw);
454
+ contentBlocks.push({
455
+ type: 'tool_use',
456
+ id,
457
+ name,
458
+ input: parsedArgs && typeof parsedArgs === 'object' && !Array.isArray(parsedArgs)
459
+ ? parsedArgs
460
+ : { raw: argsRaw },
461
+ });
462
+ }
463
+ const usage = parsed.usage && typeof parsed.usage === 'object'
464
+ ? parsed.usage
465
+ : {};
466
+ const inputTokens = toNonNegativeInt(usage.prompt_tokens ?? usage.input_tokens);
467
+ const outputTokens = toNonNegativeInt(usage.completion_tokens ?? usage.output_tokens);
468
+ const id = typeof parsed.id === 'string' && parsed.id.length > 0 ? parsed.id : `msg_${response.requestId}`;
469
+ const model = typeof parsed.model === 'string' && parsed.model.length > 0
470
+ ? parsed.model
471
+ : (options.fallbackModel ?? 'unknown');
472
+ const anthropicMessage = {
473
+ id,
474
+ type: 'message',
475
+ role: 'assistant',
476
+ model,
477
+ content: contentBlocks,
478
+ stop_reason: finishReason,
479
+ stop_sequence: null,
480
+ usage: {
481
+ input_tokens: inputTokens,
482
+ output_tokens: outputTokens,
483
+ },
484
+ };
485
+ if (options.streamRequested) {
486
+ return {
487
+ ...response,
488
+ headers: {
489
+ ...response.headers,
490
+ 'content-type': 'text/event-stream',
491
+ 'cache-control': 'no-cache',
492
+ },
493
+ body: buildAnthropicStreamFromMessage({
494
+ id,
495
+ model,
496
+ content: contentBlocks,
497
+ stopReason: finishReason,
498
+ usage: {
499
+ inputTokens,
500
+ outputTokens,
501
+ },
502
+ }),
503
+ };
504
+ }
505
+ return {
506
+ ...response,
507
+ headers: {
508
+ ...response.headers,
509
+ 'content-type': 'application/json',
510
+ },
511
+ body: encodeJson(anthropicMessage),
512
+ };
513
+ }
514
+ //# sourceMappingURL=model-api-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-api-adapter.js","sourceRoot":"","sources":["../../src/proxy/model-api-adapter.ts"],"names":[],"mappings":"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"}
@@ -12,4 +12,5 @@ export * from './staking.js';
12
12
  export * from './report.js';
13
13
  export * from './rating.js';
14
14
  export * from './plugin-config.js';
15
+ export * from './model-api.js';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC"}
@@ -12,4 +12,5 @@ export * from './staking.js';
12
12
  export * from './report.js';
13
13
  export * from './rating.js';
14
14
  export * from './plugin-config.js';
15
+ export * from './model-api.js';
15
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const WELL_KNOWN_MODEL_API_PROTOCOLS: readonly ["anthropic-messages", "openai-chat-completions", "openai-completions"];
2
+ export type ModelApiProtocol = (typeof WELL_KNOWN_MODEL_API_PROTOCOLS)[number];
3
+ export declare function isKnownModelApiProtocol(value: string): value is ModelApiProtocol;
4
+ //# sourceMappingURL=model-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-api.d.ts","sourceRoot":"","sources":["../../src/types/model-api.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,kFAIjC,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AAI/E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,gBAAgB,CAEhF"}
@@ -0,0 +1,10 @@
1
+ export const WELL_KNOWN_MODEL_API_PROTOCOLS = [
2
+ 'anthropic-messages',
3
+ 'openai-chat-completions',
4
+ 'openai-completions',
5
+ ];
6
+ const MODEL_API_PROTOCOL_SET = new Set(WELL_KNOWN_MODEL_API_PROTOCOLS);
7
+ export function isKnownModelApiProtocol(value) {
8
+ return MODEL_API_PROTOCOL_SET.has(value);
9
+ }
10
+ //# sourceMappingURL=model-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-api.js","sourceRoot":"","sources":["../../src/types/model-api.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,oBAAoB;IACpB,yBAAyB;IACzB,oBAAoB;CACZ,CAAC;AAIX,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAS,8BAA8B,CAAC,CAAC;AAE/E,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,OAAO,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { ModelApiProtocol } from "./model-api.js";
1
2
  /**
2
3
  * A PeerId is the hex-encoded Ed25519 public key (64 hex chars = 32 bytes).
3
4
  * This is the canonical identifier for any peer in the network.
@@ -21,6 +22,9 @@ export interface ProviderPricingMatrixEntry {
21
22
  export interface ProviderModelCategoryMatrixEntry {
22
23
  models: Record<string, string[]>;
23
24
  }
25
+ export interface ProviderModelApiProtocolMatrixEntry {
26
+ models: Record<string, ModelApiProtocol[]>;
27
+ }
24
28
  /** Information about a known peer. */
25
29
  export interface PeerInfo {
26
30
  /** Unique peer identifier (Ed25519 public key hex). */
@@ -39,6 +43,8 @@ export interface PeerInfo {
39
43
  providerPricing?: Record<string, ProviderPricingMatrixEntry>;
40
44
  /** Provider/model category tags announced by seller. */
41
45
  providerModelCategories?: Record<string, ProviderModelCategoryMatrixEntry>;
46
+ /** Provider/model API protocols announced by seller. */
47
+ providerModelApiProtocols?: Record<string, ProviderModelApiProtocolMatrixEntry>;
42
48
  /** Deterministic fallback default input price (USD per 1M tokens). */
43
49
  defaultInputUsdPerMillion?: number;
44
50
  /** Deterministic fallback default output price (USD per 1M tokens). */
@@ -1 +1 @@
1
- {"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../src/types/peer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED,MAAM,WAAW,yBAAyB;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,yBAAyB,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAClC;AAED,sCAAsC;AACtC,MAAM,WAAW,QAAQ;IACvB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gCAAgC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IAC7D,wDAAwD;IACxD,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;IAC3E,sEAAsE;IACtE,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,uEAAuE;IACvE,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B"}
1
+ {"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../src/types/peer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED,MAAM,WAAW,yBAAyB;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,yBAAyB,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,mCAAmC;IAClD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;CAC5C;AAED,sCAAsC;AACtC,MAAM,WAAW,QAAQ;IACvB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gCAAgC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IAC7D,wDAAwD;IACxD,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;IAC3E,wDAAwD;IACxD,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mCAAmC,CAAC,CAAC;IAChF,sEAAsE;IACtE,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,uEAAuE;IACvE,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"peer.js","sourceRoot":"","sources":["../../src/types/peer.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,+CAA+C,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,GAAa,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"peer.js","sourceRoot":"","sources":["../../src/types/peer.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,+CAA+C,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,GAAa,CAAC;AACvB,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Plugin instance configuration stored in ~/.antseed/config.json.
3
3
  */
4
4
  export interface PluginInstanceConfig {
5
- /** Unique instance ID (e.g., "my-anthropic", "cheap-openrouter") */
5
+ /** Unique instance ID (e.g., "my-anthropic", "cheap-openai") */
6
6
  id: string;
7
7
  /** npm package name (e.g., "@antseed/provider-anthropic") */
8
8
  package: string;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-config.d.ts","sourceRoot":"","sources":["../../src/types/plugin-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,EAAE,EAAE,MAAM,CAAA;IACV,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAA;IACf,kBAAkB;IAClB,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAA;IAC3B,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,SAAS,EAAE,oBAAoB,EAAE,CAAA;IACjC,0BAA0B;IAC1B,UAAU,CAAC,EAAE;QACX,SAAS,EAAE,MAAM,CAAA;QACjB,GAAG,EAAE,MAAM,CAAA;QACX,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;CACF"}
1
+ {"version":3,"file":"plugin-config.d.ts","sourceRoot":"","sources":["../../src/types/plugin-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAA;IACV,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAA;IACf,kBAAkB;IAClB,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAA;IAC3B,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,SAAS,EAAE,oBAAoB,EAAE,CAAA;IACjC,0BAA0B;IAC1B,UAAU,CAAC,EAAE;QACX,SAAS,EAAE,MAAM,CAAA;QACjB,GAAG,EAAE,MAAM,CAAA;QACX,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antseed/node",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Antseed Network protocol SDK — P2P inference marketplace",
5
5
  "type": "module",
6
6
  "files": [