@antseed/cli 0.1.60 → 0.1.61

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 (209) hide show
  1. package/package.json +3 -3
  2. package/dist/cli/commands/agent.d.ts +0 -3
  3. package/dist/cli/commands/agent.d.ts.map +0 -1
  4. package/dist/cli/commands/agent.js +0 -165
  5. package/dist/cli/commands/agent.js.map +0 -1
  6. package/dist/cli/commands/balance.d.ts +0 -3
  7. package/dist/cli/commands/balance.d.ts.map +0 -1
  8. package/dist/cli/commands/balance.js +0 -62
  9. package/dist/cli/commands/balance.js.map +0 -1
  10. package/dist/cli/commands/bootstrap.d.ts +0 -3
  11. package/dist/cli/commands/bootstrap.d.ts.map +0 -1
  12. package/dist/cli/commands/bootstrap.js +0 -46
  13. package/dist/cli/commands/bootstrap.js.map +0 -1
  14. package/dist/cli/commands/browse.d.ts +0 -7
  15. package/dist/cli/commands/browse.d.ts.map +0 -1
  16. package/dist/cli/commands/browse.js +0 -103
  17. package/dist/cli/commands/browse.js.map +0 -1
  18. package/dist/cli/commands/channels.d.ts +0 -3
  19. package/dist/cli/commands/channels.d.ts.map +0 -1
  20. package/dist/cli/commands/channels.js +0 -79
  21. package/dist/cli/commands/channels.js.map +0 -1
  22. package/dist/cli/commands/config.d.ts +0 -20
  23. package/dist/cli/commands/config.d.ts.map +0 -1
  24. package/dist/cli/commands/config.js +0 -239
  25. package/dist/cli/commands/config.js.map +0 -1
  26. package/dist/cli/commands/connect.d.ts +0 -13
  27. package/dist/cli/commands/connect.d.ts.map +0 -1
  28. package/dist/cli/commands/connect.js +0 -402
  29. package/dist/cli/commands/connect.js.map +0 -1
  30. package/dist/cli/commands/connect.test.d.ts +0 -2
  31. package/dist/cli/commands/connect.test.d.ts.map +0 -1
  32. package/dist/cli/commands/connect.test.js +0 -52
  33. package/dist/cli/commands/connect.test.js.map +0 -1
  34. package/dist/cli/commands/connection.d.ts +0 -3
  35. package/dist/cli/commands/connection.d.ts.map +0 -1
  36. package/dist/cli/commands/connection.js +0 -128
  37. package/dist/cli/commands/connection.js.map +0 -1
  38. package/dist/cli/commands/dashboard.d.ts +0 -6
  39. package/dist/cli/commands/dashboard.d.ts.map +0 -1
  40. package/dist/cli/commands/dashboard.js +0 -48
  41. package/dist/cli/commands/dashboard.js.map +0 -1
  42. package/dist/cli/commands/deposit.d.ts +0 -3
  43. package/dist/cli/commands/deposit.d.ts.map +0 -1
  44. package/dist/cli/commands/deposit.js +0 -38
  45. package/dist/cli/commands/deposit.js.map +0 -1
  46. package/dist/cli/commands/dev.d.ts +0 -3
  47. package/dist/cli/commands/dev.d.ts.map +0 -1
  48. package/dist/cli/commands/dev.js +0 -94
  49. package/dist/cli/commands/dev.js.map +0 -1
  50. package/dist/cli/commands/emissions.d.ts +0 -3
  51. package/dist/cli/commands/emissions.d.ts.map +0 -1
  52. package/dist/cli/commands/emissions.js +0 -80
  53. package/dist/cli/commands/emissions.js.map +0 -1
  54. package/dist/cli/commands/init.d.ts +0 -3
  55. package/dist/cli/commands/init.d.ts.map +0 -1
  56. package/dist/cli/commands/init.js +0 -90
  57. package/dist/cli/commands/init.js.map +0 -1
  58. package/dist/cli/commands/payments.d.ts +0 -3
  59. package/dist/cli/commands/payments.d.ts.map +0 -1
  60. package/dist/cli/commands/payments.js +0 -26
  61. package/dist/cli/commands/payments.js.map +0 -1
  62. package/dist/cli/commands/plugin-create.d.ts +0 -11
  63. package/dist/cli/commands/plugin-create.d.ts.map +0 -1
  64. package/dist/cli/commands/plugin-create.js +0 -201
  65. package/dist/cli/commands/plugin-create.js.map +0 -1
  66. package/dist/cli/commands/plugin-create.test.d.ts +0 -2
  67. package/dist/cli/commands/plugin-create.test.d.ts.map +0 -1
  68. package/dist/cli/commands/plugin-create.test.js +0 -53
  69. package/dist/cli/commands/plugin-create.test.js.map +0 -1
  70. package/dist/cli/commands/plugin.d.ts +0 -3
  71. package/dist/cli/commands/plugin.d.ts.map +0 -1
  72. package/dist/cli/commands/plugin.js +0 -279
  73. package/dist/cli/commands/plugin.js.map +0 -1
  74. package/dist/cli/commands/plugin.test.d.ts +0 -2
  75. package/dist/cli/commands/plugin.test.d.ts.map +0 -1
  76. package/dist/cli/commands/plugin.test.js +0 -54
  77. package/dist/cli/commands/plugin.test.js.map +0 -1
  78. package/dist/cli/commands/profile.d.ts +0 -10
  79. package/dist/cli/commands/profile.d.ts.map +0 -1
  80. package/dist/cli/commands/profile.js +0 -89
  81. package/dist/cli/commands/profile.js.map +0 -1
  82. package/dist/cli/commands/register.d.ts +0 -3
  83. package/dist/cli/commands/register.d.ts.map +0 -1
  84. package/dist/cli/commands/register.js +0 -35
  85. package/dist/cli/commands/register.js.map +0 -1
  86. package/dist/cli/commands/seed.d.ts +0 -14
  87. package/dist/cli/commands/seed.d.ts.map +0 -1
  88. package/dist/cli/commands/seed.js +0 -500
  89. package/dist/cli/commands/seed.js.map +0 -1
  90. package/dist/cli/commands/seed.test.d.ts +0 -2
  91. package/dist/cli/commands/seed.test.d.ts.map +0 -1
  92. package/dist/cli/commands/seed.test.js +0 -92
  93. package/dist/cli/commands/seed.test.js.map +0 -1
  94. package/dist/cli/commands/setup.d.ts +0 -3
  95. package/dist/cli/commands/setup.d.ts.map +0 -1
  96. package/dist/cli/commands/setup.js +0 -84
  97. package/dist/cli/commands/setup.js.map +0 -1
  98. package/dist/cli/commands/stake.d.ts +0 -3
  99. package/dist/cli/commands/stake.d.ts.map +0 -1
  100. package/dist/cli/commands/stake.js +0 -83
  101. package/dist/cli/commands/stake.js.map +0 -1
  102. package/dist/cli/commands/status.d.ts +0 -8
  103. package/dist/cli/commands/status.d.ts.map +0 -1
  104. package/dist/cli/commands/status.js +0 -55
  105. package/dist/cli/commands/status.js.map +0 -1
  106. package/dist/cli/commands/subscribe.d.ts +0 -3
  107. package/dist/cli/commands/subscribe.d.ts.map +0 -1
  108. package/dist/cli/commands/subscribe.js +0 -96
  109. package/dist/cli/commands/subscribe.js.map +0 -1
  110. package/dist/cli/commands/types.d.ts +0 -14
  111. package/dist/cli/commands/types.d.ts.map +0 -1
  112. package/dist/cli/commands/types.js +0 -41
  113. package/dist/cli/commands/types.js.map +0 -1
  114. package/dist/cli/commands/withdraw.d.ts +0 -3
  115. package/dist/cli/commands/withdraw.d.ts.map +0 -1
  116. package/dist/cli/commands/withdraw.js +0 -48
  117. package/dist/cli/commands/withdraw.js.map +0 -1
  118. package/dist/cli/formatters.d.ts +0 -29
  119. package/dist/cli/formatters.d.ts.map +0 -1
  120. package/dist/cli/formatters.js +0 -67
  121. package/dist/cli/formatters.js.map +0 -1
  122. package/dist/cli/index.d.ts +0 -3
  123. package/dist/cli/index.d.ts.map +0 -1
  124. package/dist/cli/index.js +0 -63
  125. package/dist/cli/index.js.map +0 -1
  126. package/dist/cli/payment-utils.d.ts +0 -53
  127. package/dist/cli/payment-utils.d.ts.map +0 -1
  128. package/dist/cli/payment-utils.js +0 -137
  129. package/dist/cli/payment-utils.js.map +0 -1
  130. package/dist/cli/shutdown.d.ts +0 -11
  131. package/dist/cli/shutdown.d.ts.map +0 -1
  132. package/dist/cli/shutdown.js +0 -34
  133. package/dist/cli/shutdown.js.map +0 -1
  134. package/dist/config/defaults.d.ts +0 -6
  135. package/dist/config/defaults.d.ts.map +0 -1
  136. package/dist/config/defaults.js +0 -53
  137. package/dist/config/defaults.js.map +0 -1
  138. package/dist/config/effective.d.ts +0 -25
  139. package/dist/config/effective.d.ts.map +0 -1
  140. package/dist/config/effective.js +0 -67
  141. package/dist/config/effective.js.map +0 -1
  142. package/dist/config/effective.test.d.ts +0 -2
  143. package/dist/config/effective.test.d.ts.map +0 -1
  144. package/dist/config/effective.test.js +0 -62
  145. package/dist/config/effective.test.js.map +0 -1
  146. package/dist/config/loader.d.ts +0 -12
  147. package/dist/config/loader.d.ts.map +0 -1
  148. package/dist/config/loader.js +0 -269
  149. package/dist/config/loader.js.map +0 -1
  150. package/dist/config/loader.test.d.ts +0 -2
  151. package/dist/config/loader.test.d.ts.map +0 -1
  152. package/dist/config/loader.test.js +0 -124
  153. package/dist/config/loader.test.js.map +0 -1
  154. package/dist/config/types.d.ts +0 -167
  155. package/dist/config/types.d.ts.map +0 -1
  156. package/dist/config/types.js +0 -2
  157. package/dist/config/types.js.map +0 -1
  158. package/dist/config/validation.d.ts +0 -10
  159. package/dist/config/validation.d.ts.map +0 -1
  160. package/dist/config/validation.js +0 -130
  161. package/dist/config/validation.js.map +0 -1
  162. package/dist/env/load-env.d.ts +0 -6
  163. package/dist/env/load-env.d.ts.map +0 -1
  164. package/dist/env/load-env.js +0 -18
  165. package/dist/env/load-env.js.map +0 -1
  166. package/dist/plugins/loader.d.ts +0 -12
  167. package/dist/plugins/loader.d.ts.map +0 -1
  168. package/dist/plugins/loader.js +0 -111
  169. package/dist/plugins/loader.js.map +0 -1
  170. package/dist/plugins/manager.d.ts +0 -11
  171. package/dist/plugins/manager.d.ts.map +0 -1
  172. package/dist/plugins/manager.js +0 -52
  173. package/dist/plugins/manager.js.map +0 -1
  174. package/dist/plugins/registry.d.ts +0 -8
  175. package/dist/plugins/registry.d.ts.map +0 -1
  176. package/dist/plugins/registry.js +0 -45
  177. package/dist/plugins/registry.js.map +0 -1
  178. package/dist/proxy/buyer-proxy.d.ts +0 -82
  179. package/dist/proxy/buyer-proxy.d.ts.map +0 -1
  180. package/dist/proxy/buyer-proxy.js +0 -1056
  181. package/dist/proxy/buyer-proxy.js.map +0 -1
  182. package/dist/proxy/buyer-proxy.test.d.ts +0 -2
  183. package/dist/proxy/buyer-proxy.test.d.ts.map +0 -1
  184. package/dist/proxy/buyer-proxy.test.js +0 -124
  185. package/dist/proxy/buyer-proxy.test.js.map +0 -1
  186. package/dist/proxy/request-utils.d.ts +0 -21
  187. package/dist/proxy/request-utils.d.ts.map +0 -1
  188. package/dist/proxy/request-utils.js +0 -237
  189. package/dist/proxy/request-utils.js.map +0 -1
  190. package/dist/proxy/routing.d.ts +0 -17
  191. package/dist/proxy/routing.d.ts.map +0 -1
  192. package/dist/proxy/routing.js +0 -115
  193. package/dist/proxy/routing.js.map +0 -1
  194. package/dist/proxy/service-api-adapter.d.ts +0 -3
  195. package/dist/proxy/service-api-adapter.d.ts.map +0 -1
  196. package/dist/proxy/service-api-adapter.js +0 -2
  197. package/dist/proxy/service-api-adapter.js.map +0 -1
  198. package/dist/proxy/service-api-adapter.test.d.ts +0 -2
  199. package/dist/proxy/service-api-adapter.test.d.ts.map +0 -1
  200. package/dist/proxy/service-api-adapter.test.js +0 -121
  201. package/dist/proxy/service-api-adapter.test.js.map +0 -1
  202. package/dist/proxy/telemetry.d.ts +0 -23
  203. package/dist/proxy/telemetry.d.ts.map +0 -1
  204. package/dist/proxy/telemetry.js +0 -227
  205. package/dist/proxy/telemetry.js.map +0 -1
  206. package/dist/status/node-status.d.ts +0 -22
  207. package/dist/status/node-status.d.ts.map +0 -1
  208. package/dist/status/node-status.js +0 -83
  209. package/dist/status/node-status.js.map +0 -1
@@ -1,115 +0,0 @@
1
- import { inferProviderDefaultServiceApiProtocols, selectTargetProtocolForRequest, } from './service-api-adapter.js';
2
- import { log } from './request-utils.js';
3
- export function getExplicitProviderOverride(request) {
4
- const provider = request.headers['x-antseed-provider']?.trim().toLowerCase();
5
- return provider && provider.length > 0 ? provider : null;
6
- }
7
- export function getExplicitPeerIdOverride(request, sessionPinnedPeerId) {
8
- // Per-request header takes priority over session pin
9
- const header = request.headers['x-antseed-pin-peer']?.trim().toLowerCase();
10
- if (header && header.length > 0)
11
- return header;
12
- return sessionPinnedPeerId?.toLowerCase() ?? null;
13
- }
14
- export function getPreferredPeerIdHint(request) {
15
- const header = request.headers['x-antseed-prefer-peer']?.trim().toLowerCase();
16
- if (!header || header.length === 0) {
17
- return null;
18
- }
19
- return header;
20
- }
21
- function getPeerProviderProtocols(peer, provider, requestedService) {
22
- const normalizedRequestedService = requestedService?.trim();
23
- const fromMetadata = peer.providerServiceApiProtocols?.[provider]?.services;
24
- if (fromMetadata) {
25
- if (normalizedRequestedService) {
26
- const directMatchKey = Object.keys(fromMetadata).find((key) => key.toLowerCase() === normalizedRequestedService.toLowerCase());
27
- if (directMatchKey && fromMetadata[directMatchKey]?.length) {
28
- log(`Service match: peer ${peer.peerId.slice(0, 8)} provider=${provider} service="${normalizedRequestedService}" `
29
- + `→ [${fromMetadata[directMatchKey].join(',')}]`);
30
- return Array.from(new Set(fromMetadata[directMatchKey]));
31
- }
32
- if (Object.keys(fromMetadata).length > 0) {
33
- log(`Service strict-miss: peer ${peer.peerId.slice(0, 8)} provider=${provider} service="${normalizedRequestedService}" `
34
- + 'not in metadata; excluding from route candidates.');
35
- return [];
36
- }
37
- }
38
- const merged = Object.values(fromMetadata).flat();
39
- if (merged.length > 0) {
40
- if (requestedService) {
41
- log(`Service hint miss: peer ${peer.peerId.slice(0, 8)} provider=${provider} service="${requestedService}" not in metadata; falling back to provider protocol set [${Array.from(new Set(merged)).join(',')}]`);
42
- }
43
- return Array.from(new Set(merged));
44
- }
45
- }
46
- const inferred = inferProviderDefaultServiceApiProtocols(provider);
47
- log(`No metadata: peer ${peer.peerId.slice(0, 8)} provider=${provider} → inferred [${inferred.join(',')}]`);
48
- return inferred;
49
- }
50
- export function resolvePeerRoutePlan(peer, requestProtocol, requestedService, explicitProvider) {
51
- const providers = peer.providers
52
- .map((provider) => provider.trim().toLowerCase())
53
- .filter((provider) => provider.length > 0);
54
- if (providers.length === 0) {
55
- return null;
56
- }
57
- if (explicitProvider && !providers.includes(explicitProvider)) {
58
- return null;
59
- }
60
- const candidates = explicitProvider ? [explicitProvider] : providers;
61
- if (!requestProtocol) {
62
- const provider = candidates[0];
63
- return provider ? { provider, selection: null } : null;
64
- }
65
- let transformedFallback = null;
66
- for (const provider of candidates) {
67
- const supportedProtocols = getPeerProviderProtocols(peer, provider, requestedService);
68
- const selection = selectTargetProtocolForRequest(requestProtocol, supportedProtocols);
69
- if (!selection) {
70
- continue;
71
- }
72
- if (!selection.requiresTransform) {
73
- return { provider, selection };
74
- }
75
- if (!transformedFallback) {
76
- transformedFallback = { provider, selection };
77
- }
78
- }
79
- return transformedFallback;
80
- }
81
- export function selectCandidatePeersForRouting(peers, requestProtocol, requestedService, explicitProvider) {
82
- const routePlanByPeerId = new Map();
83
- if (!requestProtocol && !explicitProvider) {
84
- return {
85
- candidatePeers: peers,
86
- routePlanByPeerId,
87
- };
88
- }
89
- const candidatePeers = peers.filter((peer) => {
90
- const plan = resolvePeerRoutePlan(peer, requestProtocol, requestedService, explicitProvider);
91
- if (!plan)
92
- return false;
93
- routePlanByPeerId.set(peer.peerId, plan);
94
- return true;
95
- });
96
- return {
97
- candidatePeers,
98
- routePlanByPeerId,
99
- };
100
- }
101
- export function pickProviderForPeer(peer, request) {
102
- const explicit = getExplicitProviderOverride(request);
103
- if (explicit) {
104
- return explicit;
105
- }
106
- if (request.path.startsWith('/v1/messages') && peer.providers.includes('anthropic')) {
107
- return 'anthropic';
108
- }
109
- const first = peer.providers[0]?.trim();
110
- if (first && first.length > 0) {
111
- return first.toLowerCase();
112
- }
113
- return 'unknown';
114
- }
115
- //# sourceMappingURL=routing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routing.js","sourceRoot":"","sources":["../../src/proxy/routing.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export { createOpenAIChatToAnthropicStreamingAdapter, createOpenAIChatToResponsesStreamingAdapter, createOpenAIResponsesToChatStreamingAdapter, detectRequestServiceApiProtocol, inferProviderDefaultServiceApiProtocols, selectTargetProtocolForRequest, transformAnthropicMessagesRequestToOpenAIChat, transformOpenAIChatRequestToOpenAIResponses, transformOpenAIChatResponseToAnthropicMessage, transformOpenAIChatResponseToOpenAIResponses, transformOpenAIResponsesRequestToOpenAIChat, transformOpenAIResponsesResponseToOpenAIChat, } from '@antseed/api-adapter';
2
- export type { AnthropicToOpenAIRequestTransformResult, ChatToResponsesRequestTransformResult, ResponsesToOpenAIRequestTransformResult, SerializedHttpResponse, SerializedHttpResponseChunk, ServiceApiProtocol, StreamingResponseAdapter, TargetProtocolSelection, } from '@antseed/api-adapter';
3
- //# sourceMappingURL=service-api-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-api-adapter.d.ts","sourceRoot":"","sources":["../../src/proxy/service-api-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2CAA2C,EAC3C,2CAA2C,EAC3C,2CAA2C,EAC3C,+BAA+B,EAC/B,uCAAuC,EACvC,8BAA8B,EAC9B,6CAA6C,EAC7C,2CAA2C,EAC3C,6CAA6C,EAC7C,4CAA4C,EAC5C,2CAA2C,EAC3C,4CAA4C,GAC7C,MAAM,sBAAsB,CAAA;AAE7B,YAAY,EACV,uCAAuC,EACvC,qCAAqC,EACrC,uCAAuC,EACvC,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,sBAAsB,CAAA"}
@@ -1,2 +0,0 @@
1
- export { createOpenAIChatToAnthropicStreamingAdapter, createOpenAIChatToResponsesStreamingAdapter, createOpenAIResponsesToChatStreamingAdapter, detectRequestServiceApiProtocol, inferProviderDefaultServiceApiProtocols, selectTargetProtocolForRequest, transformAnthropicMessagesRequestToOpenAIChat, transformOpenAIChatRequestToOpenAIResponses, transformOpenAIChatResponseToAnthropicMessage, transformOpenAIChatResponseToOpenAIResponses, transformOpenAIResponsesRequestToOpenAIChat, transformOpenAIResponsesResponseToOpenAIChat, } from '@antseed/api-adapter';
2
- //# sourceMappingURL=service-api-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-api-adapter.js","sourceRoot":"","sources":["../../src/proxy/service-api-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2CAA2C,EAC3C,2CAA2C,EAC3C,2CAA2C,EAC3C,+BAA+B,EAC/B,uCAAuC,EACvC,8BAA8B,EAC9B,6CAA6C,EAC7C,2CAA2C,EAC3C,6CAA6C,EAC7C,4CAA4C,EAC5C,2CAA2C,EAC3C,4CAA4C,GAC7C,MAAM,sBAAsB,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=service-api-adapter.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-api-adapter.test.d.ts","sourceRoot":"","sources":["../../src/proxy/service-api-adapter.test.ts"],"names":[],"mappings":""}
@@ -1,121 +0,0 @@
1
- import assert from 'node:assert/strict';
2
- import test from 'node:test';
3
- import { transformAnthropicMessagesRequestToOpenAIChat, transformOpenAIChatResponseToAnthropicMessage, } from './service-api-adapter.js';
4
- const enc = new TextEncoder();
5
- const dec = new TextDecoder();
6
- function makeRequest(body, path = '/v1/messages') {
7
- return {
8
- requestId: 'r1',
9
- method: 'POST',
10
- path,
11
- headers: { 'content-type': 'application/json', 'anthropic-version': '2023-06-01' },
12
- body: enc.encode(JSON.stringify(body)),
13
- };
14
- }
15
- test('preserves plain string message content', () => {
16
- const result = transformAnthropicMessagesRequestToOpenAIChat(makeRequest({ model: 'claude-3-5-haiku-20241022', messages: [{ role: 'user', content: 'Hello' }], max_tokens: 100 }));
17
- assert.notEqual(result, null);
18
- const body = JSON.parse(dec.decode(result.request.body));
19
- assert.equal(body.messages[0].content, 'Hello');
20
- });
21
- test('does NOT produce [object Object] for array content blocks', () => {
22
- // Regression: Claude Code sends content as [{type:'text', text:'...'}]
23
- const result = transformAnthropicMessagesRequestToOpenAIChat(makeRequest({
24
- model: 'claude-3-5-haiku-20241022',
25
- messages: [
26
- { role: 'user', content: [{ type: 'text', text: 'What is 2+2?' }] },
27
- ],
28
- max_tokens: 100,
29
- }));
30
- assert.notEqual(result, null);
31
- const body = JSON.parse(dec.decode(result.request.body));
32
- const userMsg = body.messages.find((m) => m.role === 'user');
33
- assert.equal(userMsg.content, 'What is 2+2?');
34
- assert.notEqual(userMsg.content, '[object Object]');
35
- });
36
- test('does NOT produce [object Object] for multi-block user messages', () => {
37
- const result = transformAnthropicMessagesRequestToOpenAIChat(makeRequest({
38
- model: 'claude-3-5-haiku-20241022',
39
- messages: [
40
- {
41
- role: 'user',
42
- content: [
43
- { type: 'text', text: 'Line one' },
44
- { type: 'text', text: 'Line two' },
45
- ],
46
- },
47
- ],
48
- max_tokens: 100,
49
- }));
50
- assert.notEqual(result, null);
51
- const body = JSON.parse(dec.decode(result.request.body));
52
- const userMsg = body.messages.find((m) => m.role === 'user');
53
- assert.equal(userMsg.content, 'Line one\nLine two');
54
- assert.equal(userMsg.content.includes('[object Object]'), false);
55
- });
56
- test('does NOT produce [object Object] for assistant array content blocks', () => {
57
- const result = transformAnthropicMessagesRequestToOpenAIChat(makeRequest({
58
- model: 'claude-3-5-haiku-20241022',
59
- messages: [
60
- { role: 'user', content: 'Hi' },
61
- { role: 'assistant', content: [{ type: 'text', text: 'Hello there!' }] },
62
- { role: 'user', content: 'Good' },
63
- ],
64
- max_tokens: 100,
65
- }));
66
- assert.notEqual(result, null);
67
- const body = JSON.parse(dec.decode(result.request.body));
68
- const assistantMsg = body.messages.find((m) => m.role === 'assistant');
69
- assert.equal(assistantMsg.content, 'Hello there!');
70
- assert.notEqual(assistantMsg.content, '[object Object]');
71
- });
72
- test('removes anthropic-version header', () => {
73
- const result = transformAnthropicMessagesRequestToOpenAIChat(makeRequest({ messages: [{ role: 'user', content: 'hi' }], max_tokens: 10 }));
74
- assert.notEqual(result, null);
75
- assert.equal(result.request.headers['anthropic-version'], undefined);
76
- });
77
- test('rewrites path to /v1/chat/completions', () => {
78
- const result = transformAnthropicMessagesRequestToOpenAIChat(makeRequest({ messages: [{ role: 'user', content: 'hi' }], max_tokens: 10 }));
79
- assert.equal(result.request.path, '/v1/chat/completions');
80
- });
81
- test('returns null for non-messages paths', () => {
82
- const req = makeRequest({ messages: [] }, '/v1/embeddings');
83
- assert.equal(transformAnthropicMessagesRequestToOpenAIChat(req), null);
84
- });
85
- test('converts a basic OpenAI response to Anthropic format', () => {
86
- const oaiBody = {
87
- id: 'chatcmpl-abc',
88
- model: 'gpt-4o',
89
- choices: [{ message: { role: 'assistant', content: 'Hello!' }, finish_reason: 'stop' }],
90
- usage: { prompt_tokens: 10, completion_tokens: 5 },
91
- };
92
- const resp = {
93
- requestId: 'r1',
94
- statusCode: 200,
95
- headers: { 'content-type': 'application/json' },
96
- body: enc.encode(JSON.stringify(oaiBody)),
97
- };
98
- const result = transformOpenAIChatResponseToAnthropicMessage(resp, { streamRequested: false });
99
- const body = JSON.parse(dec.decode(result.body));
100
- assert.equal(body.type, 'message');
101
- assert.equal(body.content[0].type, 'text');
102
- assert.equal(body.content[0].text, 'Hello!');
103
- });
104
- test('maps finish_reason stop → end_turn', () => {
105
- const oaiBody = {
106
- id: 'x',
107
- model: 'gpt-4o',
108
- choices: [{ message: { role: 'assistant', content: 'Hi' }, finish_reason: 'stop' }],
109
- usage: { prompt_tokens: 1, completion_tokens: 1 },
110
- };
111
- const resp = {
112
- requestId: 'r1',
113
- statusCode: 200,
114
- headers: { 'content-type': 'application/json' },
115
- body: enc.encode(JSON.stringify(oaiBody)),
116
- };
117
- const result = transformOpenAIChatResponseToAnthropicMessage(resp, { streamRequested: false });
118
- const body = JSON.parse(dec.decode(result.body));
119
- assert.equal(body.stop_reason, 'end_turn');
120
- });
121
- //# sourceMappingURL=service-api-adapter.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-api-adapter.test.js","sourceRoot":"","sources":["../../src/proxy/service-api-adapter.test.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import type { PeerInfo, SerializedHttpRequest } from '@antseed/node';
2
- export type TokenUsageSummary = {
3
- inputTokens: number;
4
- outputTokens: number;
5
- totalTokens: number;
6
- source: 'usage' | 'estimated';
7
- };
8
- type RoutingPricing = {
9
- provider: string;
10
- service: string | null;
11
- inputUsdPerMillion: number | null;
12
- outputUsdPerMillion: number | null;
13
- };
14
- export type ResponseTelemetry = {
15
- usage: TokenUsageSummary;
16
- pricing: RoutingPricing;
17
- estimatedCostUsd: number | null;
18
- };
19
- export declare function computeResponseTelemetry(request: SerializedHttpRequest, responseHeaders: Record<string, string>, responseBody: Uint8Array, selectedPeer: PeerInfo): ResponseTelemetry;
20
- export declare function attachAntseedTelemetryHeaders(upstreamHeaders: Record<string, string>, selectedPeer: PeerInfo, telemetry: ResponseTelemetry, requestId: string, latencyMs: number): Record<string, string>;
21
- export declare function attachStreamingAntseedHeaders(upstreamHeaders: Record<string, string>, selectedPeer: PeerInfo, requestId: string): Record<string, string>;
22
- export {};
23
- //# sourceMappingURL=telemetry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/proxy/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAOpE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,OAAO,GAAG,WAAW,CAAA;CAC9B,CAAA;AAED,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,iBAAiB,CAAA;IACxB,OAAO,EAAE,cAAc,CAAA;IACvB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC,CAAA;AAoLD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,qBAAqB,EAC9B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,YAAY,EAAE,UAAU,EACxB,YAAY,EAAE,QAAQ,GACrB,iBAAiB,CA2CnB;AAED,wBAAgB,6BAA6B,CAC3C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,YAAY,EAAE,QAAQ,EACtB,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAuBxB;AAED,wBAAgB,6BAA6B,CAC3C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,YAAY,EAAE,QAAQ,EACtB,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKxB"}
@@ -1,227 +0,0 @@
1
- import { toNonNegativeInt } from '@antseed/api-adapter';
2
- import { pickProviderForPeer } from './routing.js';
3
- import { extractRequestedService } from './request-utils.js';
4
- const decoder = new TextDecoder();
5
- function parseUsageObject(value) {
6
- if (!value || typeof value !== 'object') {
7
- return { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
8
- }
9
- const usage = value;
10
- const total = toNonNegativeInt(usage.totalTokens ?? usage.total_tokens ?? usage.total_token_count);
11
- let input = toNonNegativeInt(usage.inputTokens
12
- ?? usage.input_tokens
13
- ?? usage.promptTokens
14
- ?? usage.prompt_tokens
15
- ?? usage.input_token_count
16
- ?? usage.prompt_token_count
17
- ?? usage.cache_creation_input_tokens
18
- ?? usage.cache_read_input_tokens);
19
- let output = toNonNegativeInt(usage.outputTokens
20
- ?? usage.output_tokens
21
- ?? usage.completionTokens
22
- ?? usage.completion_tokens
23
- ?? usage.output_token_count
24
- ?? usage.completion_token_count);
25
- if (total > 0) {
26
- if (input === 0 && output === 0) {
27
- output = total;
28
- }
29
- else if (output === 0 && input > 0 && total >= input) {
30
- output = total - input;
31
- }
32
- else if (input === 0 && output > 0 && total >= output) {
33
- input = total - output;
34
- }
35
- }
36
- return {
37
- inputTokens: input,
38
- outputTokens: output,
39
- totalTokens: input + output,
40
- };
41
- }
42
- /** Average ~4 bytes per token for English text; used when providers don't return usage counts. */
43
- const BYTES_PER_TOKEN_ESTIMATE = 4;
44
- function estimateTokensFromBytes(inputBytes, outputBytes) {
45
- const inputTokens = Math.max(1, Math.round(Math.max(0, inputBytes) / BYTES_PER_TOKEN_ESTIMATE));
46
- const outputTokens = Math.max(1, Math.round(Math.max(0, outputBytes) / BYTES_PER_TOKEN_ESTIMATE));
47
- return {
48
- inputTokens,
49
- outputTokens,
50
- totalTokens: inputTokens + outputTokens,
51
- source: 'estimated',
52
- };
53
- }
54
- function parseSseUsage(body) {
55
- const text = decoder.decode(body);
56
- const lines = text.split('\n');
57
- let inputTokens = 0;
58
- let outputTokens = 0;
59
- let totalTokens = 0;
60
- for (const line of lines) {
61
- const trimmed = line.trim();
62
- if (!trimmed.startsWith('data:'))
63
- continue;
64
- const payload = trimmed.slice(5).trim();
65
- if (payload.length === 0 || payload === '[DONE]')
66
- continue;
67
- let parsed;
68
- try {
69
- parsed = JSON.parse(payload);
70
- }
71
- catch {
72
- continue;
73
- }
74
- const directUsage = parseUsageObject(parsed.usage);
75
- if (directUsage.totalTokens > 0) {
76
- inputTokens = Math.max(inputTokens, directUsage.inputTokens);
77
- outputTokens = Math.max(outputTokens, directUsage.outputTokens);
78
- totalTokens = Math.max(totalTokens, directUsage.totalTokens);
79
- }
80
- const message = parsed.message;
81
- const messageUsage = parseUsageObject(message && typeof message === 'object' ? message.usage : undefined);
82
- if (messageUsage.totalTokens > 0) {
83
- inputTokens = Math.max(inputTokens, messageUsage.inputTokens);
84
- outputTokens = Math.max(outputTokens, messageUsage.outputTokens);
85
- totalTokens = Math.max(totalTokens, messageUsage.totalTokens);
86
- }
87
- }
88
- if (totalTokens <= 0) {
89
- totalTokens = inputTokens + outputTokens;
90
- }
91
- return { inputTokens, outputTokens, totalTokens };
92
- }
93
- function parseJsonUsage(body) {
94
- try {
95
- const parsed = JSON.parse(decoder.decode(body));
96
- const direct = parseUsageObject(parsed.usage);
97
- if (direct.totalTokens > 0) {
98
- return direct;
99
- }
100
- const message = parsed.message;
101
- if (message && typeof message === 'object') {
102
- const nested = parseUsageObject(message.usage);
103
- if (nested.totalTokens > 0) {
104
- return nested;
105
- }
106
- }
107
- const result = parsed.result;
108
- if (result && typeof result === 'object') {
109
- const nested = parseUsageObject(result.usage);
110
- if (nested.totalTokens > 0) {
111
- return nested;
112
- }
113
- }
114
- return { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
115
- }
116
- catch {
117
- return { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
118
- }
119
- }
120
- function toFiniteNumberOrNull(value) {
121
- return typeof value === 'number' && Number.isFinite(value) ? value : null;
122
- }
123
- function setFiniteNumberHeader(headers, name, value) {
124
- const finite = toFiniteNumberOrNull(value);
125
- if (finite !== null) {
126
- headers[name] = String(finite);
127
- }
128
- }
129
- function setPeerIdentityHeaders(headers, selectedPeer) {
130
- headers['x-antseed-peer-id'] = selectedPeer.peerId;
131
- if (selectedPeer.publicAddress) {
132
- headers['x-antseed-peer-address'] = selectedPeer.publicAddress;
133
- }
134
- if (selectedPeer.providers.length > 0) {
135
- headers['x-antseed-peer-providers'] = selectedPeer.providers.join(',');
136
- }
137
- }
138
- function resolvePeerPricing(peer, provider, service) {
139
- const providerPricing = peer.providerPricing?.[provider];
140
- if (providerPricing) {
141
- const servicePricing = service ? providerPricing.services?.[service] : undefined;
142
- if (servicePricing) {
143
- return {
144
- inputUsdPerMillion: toFiniteNumberOrNull(servicePricing.inputUsdPerMillion),
145
- outputUsdPerMillion: toFiniteNumberOrNull(servicePricing.outputUsdPerMillion),
146
- };
147
- }
148
- return {
149
- inputUsdPerMillion: toFiniteNumberOrNull(providerPricing.defaults.inputUsdPerMillion),
150
- outputUsdPerMillion: toFiniteNumberOrNull(providerPricing.defaults.outputUsdPerMillion),
151
- };
152
- }
153
- return {
154
- inputUsdPerMillion: toFiniteNumberOrNull(peer.defaultInputUsdPerMillion),
155
- outputUsdPerMillion: toFiniteNumberOrNull(peer.defaultOutputUsdPerMillion),
156
- };
157
- }
158
- export function computeResponseTelemetry(request, responseHeaders, responseBody, selectedPeer) {
159
- const provider = pickProviderForPeer(selectedPeer, request);
160
- const service = extractRequestedService(request);
161
- const pricing = resolvePeerPricing(selectedPeer, provider, service);
162
- const contentType = (responseHeaders['content-type'] ?? '').toLowerCase();
163
- const usageFromBody = contentType.includes('text/event-stream')
164
- ? parseSseUsage(responseBody)
165
- : parseJsonUsage(responseBody);
166
- let usage;
167
- if (usageFromBody.totalTokens > 0) {
168
- usage = {
169
- inputTokens: usageFromBody.inputTokens,
170
- outputTokens: usageFromBody.outputTokens,
171
- totalTokens: usageFromBody.totalTokens,
172
- source: 'usage',
173
- };
174
- }
175
- else {
176
- usage = estimateTokensFromBytes(request.body.length, responseBody.length);
177
- }
178
- let estimatedCostUsd = null;
179
- if (pricing.inputUsdPerMillion !== null &&
180
- pricing.outputUsdPerMillion !== null &&
181
- Number.isFinite(pricing.inputUsdPerMillion) &&
182
- Number.isFinite(pricing.outputUsdPerMillion)) {
183
- estimatedCostUsd =
184
- (usage.inputTokens * pricing.inputUsdPerMillion + usage.outputTokens * pricing.outputUsdPerMillion) / 1_000_000;
185
- }
186
- return {
187
- usage,
188
- pricing: {
189
- provider,
190
- service,
191
- inputUsdPerMillion: pricing.inputUsdPerMillion,
192
- outputUsdPerMillion: pricing.outputUsdPerMillion,
193
- },
194
- estimatedCostUsd,
195
- };
196
- }
197
- export function attachAntseedTelemetryHeaders(upstreamHeaders, selectedPeer, telemetry, requestId, latencyMs) {
198
- const headers = { ...upstreamHeaders };
199
- headers['x-antseed-request-id'] = requestId;
200
- headers['x-antseed-latency-ms'] = String(Math.max(0, Math.floor(latencyMs)));
201
- setPeerIdentityHeaders(headers, selectedPeer);
202
- setFiniteNumberHeader(headers, 'x-antseed-peer-reputation', selectedPeer.reputationScore);
203
- setFiniteNumberHeader(headers, 'x-antseed-peer-trust-score', selectedPeer.trustScore);
204
- setFiniteNumberHeader(headers, 'x-antseed-peer-current-load', selectedPeer.currentLoad);
205
- setFiniteNumberHeader(headers, 'x-antseed-peer-max-concurrency', selectedPeer.maxConcurrency);
206
- headers['x-antseed-provider'] = telemetry.pricing.provider;
207
- if (telemetry.pricing.service) {
208
- headers['x-antseed-service'] = telemetry.pricing.service;
209
- }
210
- setFiniteNumberHeader(headers, 'x-antseed-input-usd-per-million', telemetry.pricing.inputUsdPerMillion);
211
- setFiniteNumberHeader(headers, 'x-antseed-output-usd-per-million', telemetry.pricing.outputUsdPerMillion);
212
- headers['x-antseed-token-source'] = telemetry.usage.source;
213
- headers['x-antseed-input-tokens'] = String(telemetry.usage.inputTokens);
214
- headers['x-antseed-output-tokens'] = String(telemetry.usage.outputTokens);
215
- headers['x-antseed-total-tokens'] = String(telemetry.usage.totalTokens);
216
- if (telemetry.estimatedCostUsd !== null && Number.isFinite(telemetry.estimatedCostUsd)) {
217
- headers['x-antseed-estimated-cost-usd'] = telemetry.estimatedCostUsd.toFixed(6);
218
- }
219
- return headers;
220
- }
221
- export function attachStreamingAntseedHeaders(upstreamHeaders, selectedPeer, requestId) {
222
- const headers = { ...upstreamHeaders };
223
- headers['x-antseed-request-id'] = requestId;
224
- setPeerIdentityHeaders(headers, selectedPeer);
225
- return headers;
226
- }
227
- //# sourceMappingURL=telemetry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/proxy/telemetry.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import type { AntseedConfig } from '../config/types.js';
2
- export interface NodeStatus {
3
- state: 'seeding' | 'connected' | 'idle';
4
- peerCount: number;
5
- earningsToday: string;
6
- tokensToday: number;
7
- activeChannels: number;
8
- uptime: string;
9
- walletAddress: string | null;
10
- proxyPort: number | null;
11
- capacityUsedPercent: number;
12
- daemonPid: number | null;
13
- daemonAlive: boolean;
14
- }
15
- /**
16
- * Query the current node status.
17
- * Reads from the running daemon's state file at ~/.antseed/daemon.state.json.
18
- * Uses PID-based liveness check first, falls back to 30s stale threshold.
19
- * Returns idle state with zeroed metrics if no daemon is running or the state file is stale.
20
- */
21
- export declare function getNodeStatus(config: AntseedConfig): Promise<NodeStatus>;
22
- //# sourceMappingURL=node-status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-status.d.ts","sourceRoot":"","sources":["../../src/status/node-status.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACtB;AAkBD;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CA+C9E"}