@antseed/node 0.2.106 → 0.2.108

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 (216) hide show
  1. package/dist/billing/index.d.ts +2 -0
  2. package/dist/billing/index.d.ts.map +1 -0
  3. package/dist/billing/index.js +2 -0
  4. package/dist/billing/index.js.map +1 -0
  5. package/dist/billing/unit.d.ts +3 -0
  6. package/dist/billing/unit.d.ts.map +1 -0
  7. package/dist/billing/unit.js +3 -0
  8. package/dist/billing/unit.js.map +1 -0
  9. package/dist/buyer-request-handler.d.ts +1 -54
  10. package/dist/buyer-request-handler.d.ts.map +1 -1
  11. package/dist/buyer-request-handler.js +2 -379
  12. package/dist/buyer-request-handler.js.map +1 -1
  13. package/dist/discovery/announcer.d.ts +7 -1
  14. package/dist/discovery/announcer.d.ts.map +1 -1
  15. package/dist/discovery/announcer.js +84 -33
  16. package/dist/discovery/announcer.js.map +1 -1
  17. package/dist/discovery/http-metadata-resolver.d.ts +4 -0
  18. package/dist/discovery/http-metadata-resolver.d.ts.map +1 -1
  19. package/dist/discovery/http-metadata-resolver.js +42 -2
  20. package/dist/discovery/http-metadata-resolver.js.map +1 -1
  21. package/dist/discovery/index.d.ts +1 -1
  22. package/dist/discovery/index.d.ts.map +1 -1
  23. package/dist/discovery/index.js +1 -1
  24. package/dist/discovery/index.js.map +1 -1
  25. package/dist/discovery/metadata-codec.d.ts +4 -4
  26. package/dist/discovery/metadata-codec.d.ts.map +1 -1
  27. package/dist/discovery/metadata-codec.js +339 -23
  28. package/dist/discovery/metadata-codec.js.map +1 -1
  29. package/dist/discovery/metadata-validator.d.ts +7 -3
  30. package/dist/discovery/metadata-validator.d.ts.map +1 -1
  31. package/dist/discovery/metadata-validator.js +139 -8
  32. package/dist/discovery/metadata-validator.js.map +1 -1
  33. package/dist/discovery/peer-lookup.d.ts +1 -0
  34. package/dist/discovery/peer-lookup.d.ts.map +1 -1
  35. package/dist/discovery/peer-lookup.js +23 -5
  36. package/dist/discovery/peer-lookup.js.map +1 -1
  37. package/dist/discovery/peer-metadata.d.ts +2 -90
  38. package/dist/discovery/peer-metadata.d.ts.map +1 -1
  39. package/dist/discovery/peer-metadata.js +3 -11
  40. package/dist/discovery/peer-metadata.js.map +1 -1
  41. package/dist/discovery/seller-address-resolver.d.ts +1 -49
  42. package/dist/discovery/seller-address-resolver.d.ts.map +1 -1
  43. package/dist/discovery/seller-address-resolver.js +2 -114
  44. package/dist/discovery/seller-address-resolver.js.map +1 -1
  45. package/dist/errors.d.ts +2 -0
  46. package/dist/errors.d.ts.map +1 -0
  47. package/dist/errors.js +2 -0
  48. package/dist/errors.js.map +1 -0
  49. package/dist/health/model-health-checker.d.ts +6 -5
  50. package/dist/health/model-health-checker.d.ts.map +1 -1
  51. package/dist/health/model-health-checker.js +22 -10
  52. package/dist/health/model-health-checker.js.map +1 -1
  53. package/dist/index.d.ts +4 -1
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +5 -1
  56. package/dist/index.js.map +1 -1
  57. package/dist/interfaces/seller-provider.d.ts +6 -0
  58. package/dist/interfaces/seller-provider.d.ts.map +1 -1
  59. package/dist/node.d.ts.map +1 -1
  60. package/dist/node.js +34 -5
  61. package/dist/node.js.map +1 -1
  62. package/dist/p2p/connection-auth.d.ts +3 -8
  63. package/dist/p2p/connection-auth.d.ts.map +1 -1
  64. package/dist/p2p/connection-auth.js +4 -6
  65. package/dist/p2p/connection-auth.js.map +1 -1
  66. package/dist/p2p/connection-manager.d.ts +3 -1
  67. package/dist/p2p/connection-manager.d.ts.map +1 -1
  68. package/dist/p2p/connection-manager.js.map +1 -1
  69. package/dist/p2p/identity.d.ts +1 -21
  70. package/dist/p2p/identity.d.ts.map +1 -1
  71. package/dist/p2p/identity.js +3 -62
  72. package/dist/p2p/identity.js.map +1 -1
  73. package/dist/p2p/message-protocol.d.ts +1 -49
  74. package/dist/p2p/message-protocol.d.ts.map +1 -1
  75. package/dist/p2p/message-protocol.js +2 -125
  76. package/dist/p2p/message-protocol.js.map +1 -1
  77. package/dist/p2p/payment-codec.d.ts +1 -21
  78. package/dist/p2p/payment-codec.d.ts.map +1 -1
  79. package/dist/p2p/payment-codec.js +2 -220
  80. package/dist/p2p/payment-codec.js.map +1 -1
  81. package/dist/p2p/payment-mux.d.ts +1 -51
  82. package/dist/p2p/payment-mux.d.ts.map +1 -1
  83. package/dist/p2p/payment-mux.js +2 -159
  84. package/dist/p2p/payment-mux.js.map +1 -1
  85. package/dist/payments/buyer-free-usage-manager.d.ts +1 -43
  86. package/dist/payments/buyer-free-usage-manager.d.ts.map +1 -1
  87. package/dist/payments/buyer-free-usage-manager.js +2 -298
  88. package/dist/payments/buyer-free-usage-manager.js.map +1 -1
  89. package/dist/payments/buyer-payment-manager.d.ts +1 -277
  90. package/dist/payments/buyer-payment-manager.d.ts.map +1 -1
  91. package/dist/payments/buyer-payment-manager.js +2 -1039
  92. package/dist/payments/buyer-payment-manager.js.map +1 -1
  93. package/dist/payments/buyer-payment-negotiator.d.ts +1 -130
  94. package/dist/payments/buyer-payment-negotiator.d.ts.map +1 -1
  95. package/dist/payments/buyer-payment-negotiator.js +2 -950
  96. package/dist/payments/buyer-payment-negotiator.js.map +1 -1
  97. package/dist/payments/chain-config.d.ts.map +1 -1
  98. package/dist/payments/chain-config.js +13 -2
  99. package/dist/payments/chain-config.js.map +1 -1
  100. package/dist/payments/channel-session-state.d.ts +1 -13
  101. package/dist/payments/channel-session-state.d.ts.map +1 -1
  102. package/dist/payments/channel-session-state.js +2 -25
  103. package/dist/payments/channel-session-state.js.map +1 -1
  104. package/dist/payments/channel-store.d.ts +2 -51
  105. package/dist/payments/channel-store.d.ts.map +1 -1
  106. package/dist/payments/channel-store.js +3 -14
  107. package/dist/payments/channel-store.js.map +1 -1
  108. package/dist/payments/channel-usage-accounting.d.ts +1 -17
  109. package/dist/payments/channel-usage-accounting.d.ts.map +1 -1
  110. package/dist/payments/channel-usage-accounting.js +2 -65
  111. package/dist/payments/channel-usage-accounting.js.map +1 -1
  112. package/dist/payments/evm/base-evm-client.d.ts +1 -26
  113. package/dist/payments/evm/base-evm-client.d.ts.map +1 -1
  114. package/dist/payments/evm/base-evm-client.js +2 -115
  115. package/dist/payments/evm/base-evm-client.js.map +1 -1
  116. package/dist/payments/evm/channels-client.d.ts +1 -85
  117. package/dist/payments/evm/channels-client.d.ts.map +1 -1
  118. package/dist/payments/evm/channels-client.js +2 -193
  119. package/dist/payments/evm/channels-client.js.map +1 -1
  120. package/dist/payments/evm/deposits-client.d.ts +1 -29
  121. package/dist/payments/evm/deposits-client.d.ts.map +1 -1
  122. package/dist/payments/evm/deposits-client.js +2 -67
  123. package/dist/payments/evm/deposits-client.js.map +1 -1
  124. package/dist/payments/evm/signatures.d.ts +1 -203
  125. package/dist/payments/evm/signatures.d.ts.map +1 -1
  126. package/dist/payments/evm/signatures.js +2 -236
  127. package/dist/payments/evm/signatures.js.map +1 -1
  128. package/dist/payments/evm/subpool-client.d.ts +32 -0
  129. package/dist/payments/evm/subpool-client.d.ts.map +1 -0
  130. package/dist/payments/evm/subpool-client.js +158 -0
  131. package/dist/payments/evm/subpool-client.js.map +1 -0
  132. package/dist/payments/index.d.ts +1 -1
  133. package/dist/payments/index.d.ts.map +1 -1
  134. package/dist/payments/index.js +1 -1
  135. package/dist/payments/index.js.map +1 -1
  136. package/dist/payments/pricing.d.ts +1 -26
  137. package/dist/payments/pricing.d.ts.map +1 -1
  138. package/dist/payments/pricing.js +2 -36
  139. package/dist/payments/pricing.js.map +1 -1
  140. package/dist/payments/usdc-utils.d.ts +1 -8
  141. package/dist/payments/usdc-utils.d.ts.map +1 -1
  142. package/dist/payments/usdc-utils.js +2 -16
  143. package/dist/payments/usdc-utils.js.map +1 -1
  144. package/dist/proxy/proxy-mux.d.ts +1 -69
  145. package/dist/proxy/proxy-mux.d.ts.map +1 -1
  146. package/dist/proxy/proxy-mux.js +2 -346
  147. package/dist/proxy/proxy-mux.js.map +1 -1
  148. package/dist/proxy/request-codec.d.ts +1 -41
  149. package/dist/proxy/request-codec.d.ts.map +1 -1
  150. package/dist/proxy/request-codec.js +2 -280
  151. package/dist/proxy/request-codec.js.map +1 -1
  152. package/dist/seller-request-handler.d.ts +10 -3
  153. package/dist/seller-request-handler.d.ts.map +1 -1
  154. package/dist/seller-request-handler.js +112 -17
  155. package/dist/seller-request-handler.js.map +1 -1
  156. package/dist/types/billing.d.ts +2 -0
  157. package/dist/types/billing.d.ts.map +1 -0
  158. package/dist/types/billing.js +2 -0
  159. package/dist/types/billing.js.map +1 -0
  160. package/dist/types/capability.d.ts +1 -25
  161. package/dist/types/capability.d.ts.map +1 -1
  162. package/dist/types/capability.js +2 -1
  163. package/dist/types/capability.js.map +1 -1
  164. package/dist/types/connection.d.ts +1 -26
  165. package/dist/types/connection.d.ts.map +1 -1
  166. package/dist/types/connection.js +2 -10
  167. package/dist/types/connection.js.map +1 -1
  168. package/dist/types/http.d.ts +1 -39
  169. package/dist/types/http.d.ts.map +1 -1
  170. package/dist/types/http.js +2 -16
  171. package/dist/types/http.js.map +1 -1
  172. package/dist/types/index.d.ts +1 -0
  173. package/dist/types/index.d.ts.map +1 -1
  174. package/dist/types/index.js +1 -0
  175. package/dist/types/index.js.map +1 -1
  176. package/dist/types/peer.d.ts +9 -31
  177. package/dist/types/peer.d.ts.map +1 -1
  178. package/dist/types/peer.js +2 -14
  179. package/dist/types/peer.js.map +1 -1
  180. package/dist/types/protocol.d.ts +1 -306
  181. package/dist/types/protocol.d.ts.map +1 -1
  182. package/dist/types/protocol.js +2 -81
  183. package/dist/types/protocol.js.map +1 -1
  184. package/dist/types/service-api.d.ts +1 -5
  185. package/dist/types/service-api.d.ts.map +1 -1
  186. package/dist/types/service-api.js +2 -12
  187. package/dist/types/service-api.js.map +1 -1
  188. package/dist/utils/debug.d.ts +1 -5
  189. package/dist/utils/debug.d.ts.map +1 -1
  190. package/dist/utils/debug.js +2 -52
  191. package/dist/utils/debug.js.map +1 -1
  192. package/dist/utils/hex.d.ts +1 -2
  193. package/dist/utils/hex.d.ts.map +1 -1
  194. package/dist/utils/hex.js +2 -14
  195. package/dist/utils/hex.js.map +1 -1
  196. package/dist/utils/json-codec.d.ts +1 -9
  197. package/dist/utils/json-codec.d.ts.map +1 -1
  198. package/dist/utils/json-codec.js +2 -51
  199. package/dist/utils/json-codec.js.map +1 -1
  200. package/dist/utils/response-usage.d.ts +1 -9
  201. package/dist/utils/response-usage.d.ts.map +1 -1
  202. package/dist/utils/response-usage.js +2 -39
  203. package/dist/utils/response-usage.js.map +1 -1
  204. package/dist/verification/codec.d.ts +1 -3
  205. package/dist/verification/codec.d.ts.map +1 -1
  206. package/dist/verification/codec.js +2 -37
  207. package/dist/verification/codec.js.map +1 -1
  208. package/dist/verification/response-auth.d.ts +1 -30
  209. package/dist/verification/response-auth.d.ts.map +1 -1
  210. package/dist/verification/response-auth.js +2 -110
  211. package/dist/verification/response-auth.js.map +1 -1
  212. package/dist/verification/verification-mux.d.ts +1 -19
  213. package/dist/verification/verification-mux.d.ts.map +1 -1
  214. package/dist/verification/verification-mux.js +2 -99
  215. package/dist/verification/verification-mux.js.map +1 -1
  216. package/package.json +4 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subpool-client.js","sourceRoot":"","sources":["../../../src/payments/evm/subpool-client.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ export { BuyerPaymentNegotiator } from './buyer-payment-negotiator.js';
30
30
  export type { BuyerNegotiatorConfig, Handle402Result, NegotiationEmitter } from './buyer-payment-negotiator.js';
31
31
  export { SellerPaymentManager, DEFAULT_MIN_SETTLE_DELTA_STR } from './seller-payment-manager.js';
32
32
  export type { SellerPaymentConfig } from './seller-payment-manager.js';
33
- export { computeCostUsdc, estimateCostFromBytes, estimateTokensFromBytes } from './pricing.js';
33
+ export { computeCostUsdc, estimateCostFromBytes, estimateTokensFromBytes, isFreeUnitBillingModel, validateUnitBillingModelV1, } from './pricing.js';
34
34
  export type { ServicePricing } from './pricing.js';
35
35
  export { checkSellerReadiness, checkBuyerReadiness } from './readiness.js';
36
36
  export type { ReadinessCheck } from './readiness.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ export { BuyerPaymentNegotiator } from './buyer-payment-negotiator.js';
29
29
  // Seller payment manager
30
30
  export { SellerPaymentManager, DEFAULT_MIN_SETTLE_DELTA_STR } from './seller-payment-manager.js';
31
31
  // Pricing utilities
32
- export { computeCostUsdc, estimateCostFromBytes, estimateTokensFromBytes } from './pricing.js';
32
+ export { computeCostUsdc, estimateCostFromBytes, estimateTokensFromBytes, isFreeUnitBillingModel, validateUnitBillingModelV1, } from './pricing.js';
33
33
  // Readiness checks
34
34
  export { checkSellerReadiness, checkBuyerReadiness } from './readiness.js';
35
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"AAWA,+CAA+C;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,kBAAkB;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,oDAAoD;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,6CAA6C;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,8CAA8C;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,8CAA8C;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAa7B,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5D,sBAAsB;AACtB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG9F,wBAAwB;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,sBAAsB;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,4EAA4E;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,yBAAyB;AACzB,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAGjG,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAG/F,mBAAmB;AACnB,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"AAWA,+CAA+C;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,kBAAkB;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,oDAAoD;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,6CAA6C;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,8CAA8C;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,8CAA8C;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAa7B,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5D,sBAAsB;AACtB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG9F,wBAAwB;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,sBAAsB;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,4EAA4E;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,yBAAyB;AACzB,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAGjG,oBAAoB;AACpB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAGtB,mBAAmB;AACnB,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,27 +1,2 @@
1
- /** Token pricing for a service (USDC per million tokens). */
2
- export interface ServicePricing {
3
- inputUsdPerMillion: number;
4
- outputUsdPerMillion: number;
5
- /** Price per million cached input tokens. Defaults to inputUsdPerMillion (no discount) if not set. */
6
- cachedInputUsdPerMillion?: number;
7
- }
8
- /** Estimate token count from raw bytes using tokenx (~95-98% accuracy). */
9
- export declare function estimateTokensFromBytes(bytes: Uint8Array): number;
10
- /** Estimate token count from a string using tokenx. */
11
- export declare function estimateTokensFromText(text: string): number;
12
- /**
13
- * Compute USDC cost in base units (6 decimals) from token counts and pricing.
14
- * freshInputTokens and cachedInputTokens are independent counts (never overlapping),
15
- * so they are additive — no subtraction needed. This handles both OpenAI (where the
16
- * extraction layer splits prompt_tokens) and Anthropic (where input_tokens is fresh-only).
17
- */
18
- export declare function computeCostUsdc(freshInputTokens: number, outputTokens: number, pricing: ServicePricing, cachedInputTokens?: number): bigint;
19
- /**
20
- * Estimate USDC cost from raw content bytes using tokenx token estimation.
21
- */
22
- export declare function estimateCostFromBytes(inputBytes: Uint8Array, outputBytes: Uint8Array, pricing: ServicePricing): {
23
- cost: bigint;
24
- inputTokens: number;
25
- outputTokens: number;
26
- };
1
+ export * from '@antseed/buyer-core/pricing';
27
2
  //# sourceMappingURL=pricing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/payments/pricing.ts"],"names":[],"mappings":"AAIA,6DAA6D;AAC7D,MAAM,WAAW,cAAc;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sGAAsG;IACtG,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAID,2EAA2E;AAC3E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAGjE;AAED,uDAAuD;AACvD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,cAAc,EACvB,iBAAiB,SAAI,GACpB,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,UAAU,EACvB,OAAO,EAAE,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAK7D"}
1
+ {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/payments/pricing.ts"],"names":[],"mappings":"AACA,cAAc,6BAA6B,CAAC"}
@@ -1,37 +1,3 @@
1
- // ── Buyer-side cost estimation using tokenx ──────────────────────────
2
- import { estimateTokenCount } from 'tokenx';
3
- const textDecoder = new TextDecoder();
4
- /** Estimate token count from raw bytes using tokenx (~95-98% accuracy). */
5
- export function estimateTokensFromBytes(bytes) {
6
- const text = textDecoder.decode(bytes);
7
- return estimateTokenCount(text);
8
- }
9
- /** Estimate token count from a string using tokenx. */
10
- export function estimateTokensFromText(text) {
11
- return estimateTokenCount(text);
12
- }
13
- /**
14
- * Compute USDC cost in base units (6 decimals) from token counts and pricing.
15
- * freshInputTokens and cachedInputTokens are independent counts (never overlapping),
16
- * so they are additive — no subtraction needed. This handles both OpenAI (where the
17
- * extraction layer splits prompt_tokens) and Anthropic (where input_tokens is fresh-only).
18
- */
19
- export function computeCostUsdc(freshInputTokens, outputTokens, pricing, cachedInputTokens = 0) {
20
- const cachedPrice = pricing.cachedInputUsdPerMillion ?? pricing.inputUsdPerMillion;
21
- const freshCost = freshInputTokens * pricing.inputUsdPerMillion;
22
- const cachedCost = cachedInputTokens * cachedPrice;
23
- const outputCost = outputTokens * pricing.outputUsdPerMillion;
24
- const costUsd = (freshCost + cachedCost + outputCost) / 1_000_000;
25
- const costBaseUnits = Math.max(0, Math.round(costUsd * 1_000_000));
26
- return BigInt(costBaseUnits);
27
- }
28
- /**
29
- * Estimate USDC cost from raw content bytes using tokenx token estimation.
30
- */
31
- export function estimateCostFromBytes(inputBytes, outputBytes, pricing) {
32
- const inputTokens = estimateTokensFromBytes(inputBytes);
33
- const outputTokens = estimateTokensFromBytes(outputBytes);
34
- const cost = computeCostUsdc(inputTokens, outputTokens, pricing);
35
- return { cost, inputTokens, outputTokens };
36
- }
1
+ // Moved to @antseed/buyer-core; re-exported for compatibility.
2
+ export * from '@antseed/buyer-core/pricing';
37
3
  //# sourceMappingURL=pricing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/payments/pricing.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAU5C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,2EAA2E;AAC3E,MAAM,UAAU,uBAAuB,CAAC,KAAiB;IACvD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,gBAAwB,EACxB,YAAoB,EACpB,OAAuB,EACvB,iBAAiB,GAAG,CAAC;IAErB,MAAM,WAAW,GAAG,OAAO,CAAC,wBAAwB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IACnF,MAAM,SAAS,GAAG,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAChE,MAAM,UAAU,GAAG,iBAAiB,GAAG,WAAW,CAAC;IACnD,MAAM,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAC9D,MAAM,OAAO,GAAG,CAAC,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC,GAAG,SAAS,CAAC;IAClE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAsB,EACtB,WAAuB,EACvB,OAAuB;IAEvB,MAAM,WAAW,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IACjE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/payments/pricing.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,cAAc,6BAA6B,CAAC"}
@@ -1,9 +1,2 @@
1
- /**
2
- * Shared USDC formatting and parsing utilities.
3
- * USDC uses 6 decimal places (1 USDC = 1,000,000 base units).
4
- */
5
- /** Format USDC base units (bigint) to human-readable string (e.g., "10.5"). */
6
- export declare function formatUsdc(baseUnits: bigint): string;
7
- /** Parse a decimal USDC string to base units (6 decimals) without floating-point. */
8
- export declare function parseUsdc(s: string): bigint;
1
+ export * from '@antseed/buyer-core/usdc-utils';
9
2
  //# sourceMappingURL=usdc-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usdc-utils.d.ts","sourceRoot":"","sources":["../../src/payments/usdc-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI3C"}
1
+ {"version":3,"file":"usdc-utils.d.ts","sourceRoot":"","sources":["../../src/payments/usdc-utils.ts"],"names":[],"mappings":"AACA,cAAc,gCAAgC,CAAC"}
@@ -1,17 +1,3 @@
1
- /**
2
- * Shared USDC formatting and parsing utilities.
3
- * USDC uses 6 decimal places (1 USDC = 1,000,000 base units).
4
- */
5
- /** Format USDC base units (bigint) to human-readable string (e.g., "10.5"). */
6
- export function formatUsdc(baseUnits) {
7
- const whole = baseUnits / 1000000n;
8
- const frac = (baseUnits % 1000000n).toString().padStart(6, '0').replace(/0+$/, '') || '0';
9
- return `${whole}.${frac}`;
10
- }
11
- /** Parse a decimal USDC string to base units (6 decimals) without floating-point. */
12
- export function parseUsdc(s) {
13
- const [whole = '0', frac = ''] = s.split('.');
14
- const fracPadded = frac.slice(0, 6).padEnd(6, '0');
15
- return BigInt(whole) * 1000000n + BigInt(fracPadded);
16
- }
1
+ // Moved to @antseed/buyer-core; re-exported for compatibility.
2
+ export * from '@antseed/buyer-core/usdc-utils';
17
3
  //# sourceMappingURL=usdc-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usdc-utils.js","sourceRoot":"","sources":["../../src/payments/usdc-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+EAA+E;AAC/E,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,MAAM,KAAK,GAAG,SAAS,GAAG,QAAU,CAAC;IACrC,MAAM,IAAI,GAAG,CAAC,SAAS,GAAG,QAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IAC5F,OAAO,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,MAAM,CAAC,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,QAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"usdc-utils.js","sourceRoot":"","sources":["../../src/payments/usdc-utils.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,cAAc,gCAAgC,CAAC"}
@@ -1,70 +1,2 @@
1
- import { type FramedMessage } from "../types/protocol.js";
2
- import type { PeerConnection } from "../p2p/connection-manager.js";
3
- import type { SerializedHttpRequest, SerializedHttpResponse, SerializedHttpResponseChunk } from "../types/http.js";
4
- type ResponseHandler = (response: SerializedHttpResponse, metadata: {
5
- streamingStart: boolean;
6
- }) => void;
7
- type ChunkHandler = (chunk: SerializedHttpResponseChunk) => void;
8
- type RequestHandler = (request: SerializedHttpRequest) => void | Promise<void>;
9
- /** Per-request upload size cap, total budget, and stall timeout. */
10
- export interface ProxyMuxUploadLimits {
11
- /** Max body bytes for a single upload. Default: 64 MiB. Buyer receives 413 on violation. */
12
- maxUploadBodyBytes?: number;
13
- /** Max bytes across ALL concurrent in-progress uploads. Default: 256 MiB. */
14
- maxTotalPendingUploadBytes?: number;
15
- /** Max ms between the header frame and HttpRequestEnd. Default: 120_000 ms. */
16
- uploadTimeoutMs?: number;
17
- }
18
- export declare const DEFAULT_MAX_UPLOAD_BODY_BYTES: number;
19
- /**
20
- * Request/response multiplexer over DataChannel.
21
- * Handles both buyer-side and seller-side proxy communication.
22
- */
23
- export declare class ProxyMux {
24
- private readonly _connection;
25
- private _messageIdCounter;
26
- private readonly _responseHandlers;
27
- private readonly _chunkHandlers;
28
- private _requestHandler;
29
- private readonly _pendingUploads;
30
- private _totalPendingUploadBytes;
31
- private readonly _maxUploadBodyBytes;
32
- private readonly _maxTotalPendingUploadBytes;
33
- private readonly _uploadTimeoutMs;
34
- constructor(connection: PeerConnection, uploadLimits?: ProxyMuxUploadLimits);
35
- /** Buyer side: send a proxy request and register response/chunk handlers. */
36
- sendProxyRequest(request: SerializedHttpRequest, onResponse: ResponseHandler, onChunk: ChunkHandler): void;
37
- /** Buyer side: split a large request body into HttpRequest + HttpRequestChunk* + HttpRequestEnd. */
38
- private _sendChunkedRequest;
39
- /** Buyer side: cancel handlers for an in-flight request. */
40
- cancelProxyRequest(requestId: string): void;
41
- /** Seller side: register a handler for incoming proxy requests. */
42
- onProxyRequest(handler: RequestHandler): void;
43
- /** Seller side: send a complete proxy response. */
44
- sendProxyResponse(response: SerializedHttpResponse): void;
45
- /** Seller side: send a proxy response chunk. */
46
- sendProxyChunk(chunk: SerializedHttpResponseChunk): void;
47
- /** Route an incoming frame to the correct handler based on message type. */
48
- handleFrame(frame: FramedMessage): Promise<void>;
49
- /** Number of in-flight requests (buyer side). */
50
- activeRequestCount(): number;
51
- /** Number of in-progress chunked uploads buffered on the seller side. */
52
- pendingUploadCount(): number;
53
- /** Total bytes currently buffered across all in-progress uploads. */
54
- pendingUploadBytes(): number;
55
- /**
56
- * Seller side: abort and discard all buffered chunked-upload state.
57
- * Call on connection close or session end to prevent memory leaks.
58
- * Zeros all buffered chunk data before discarding.
59
- */
60
- abortPendingUploads(): void;
61
- /**
62
- * Abort a single in-progress upload, zero its buffers, and send an error
63
- * response to the buyer.
64
- */
65
- private _abortUpload;
66
- private _safeSendFrame;
67
- private _nextMessageId;
68
- }
69
- export {};
1
+ export * from '@antseed/buyer-core/proxy-mux';
70
2
  //# sourceMappingURL=proxy-mux.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-mux.d.ts","sourceRoot":"","sources":["../../src/proxy/proxy-mux.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAmBnE,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC5B,MAAM,kBAAkB,CAAC;AAE1B,KAAK,eAAe,GAAG,CACrB,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,EAAE;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,KAClC,IAAI,CAAC;AACV,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;AACjE,KAAK,cAAc,GAAG,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE/E,oEAAoE;AACpE,MAAM,WAAW,oBAAoB;IACnC,4FAA4F;IAC5F,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6EAA6E;IAC7E,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,eAAO,MAAM,6BAA6B,QAAoB,CAAC;AAW/D;;;GAGG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,iBAAiB,CAAK;IAG9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsC;IACxE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmC;IAGlE,OAAO,CAAC,eAAe,CAA+B;IAGtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;IACpE,OAAO,CAAC,wBAAwB,CAAK;IAErC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAS;IACrD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,oBAAoB;IAO3E,6EAA6E;IAC7E,gBAAgB,CACd,OAAO,EAAE,qBAAqB,EAC9B,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,YAAY,GACpB,IAAI;IAoBP,oGAAoG;IACpG,OAAO,CAAC,mBAAmB;IAiC3B,4DAA4D;IAC5D,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAM3C,mEAAmE;IACnE,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAI7C,mDAAmD;IACnD,iBAAiB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAWzD,gDAAgD;IAChD,cAAc,CAAC,KAAK,EAAE,2BAA2B,GAAG,IAAI;IAexD,4EAA4E;IACtE,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAqKtD,iDAAiD;IACjD,kBAAkB,IAAI,MAAM;IAI5B,yEAAyE;IACzE,kBAAkB,IAAI,MAAM;IAI5B,qEAAqE;IACrE,kBAAkB,IAAI,MAAM;IAI5B;;;;OAIG;IACH,mBAAmB,IAAI,IAAI;IAS3B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,cAAc;CAKvB"}
1
+ {"version":3,"file":"proxy-mux.d.ts","sourceRoot":"","sources":["../../src/proxy/proxy-mux.ts"],"names":[],"mappings":"AACA,cAAc,+BAA+B,CAAC"}
@@ -1,347 +1,3 @@
1
- import { MessageType } from "../types/protocol.js";
2
- import { encodeFrame } from "../p2p/message-protocol.js";
3
- import { encodeHttpRequest, decodeHttpRequest, encodeHttpResponse, decodeHttpResponse, encodeHttpResponseChunk, decodeHttpResponseChunk, encodeHttpRequestChunk, decodeHttpRequestChunk, } from "./request-codec.js";
4
- import { ANTSEED_STREAMING_RESPONSE_HEADER, ANTSEED_UPLOAD_CHUNK_HEADER, ANTSEED_UPLOAD_THRESHOLD_BYTES, ANTSEED_UPLOAD_CHUNK_SIZE, } from "../types/http.js";
5
- import { debugLog } from "../utils/debug.js";
6
- // Codex-style /v1/responses requests can include large repository context.
7
- // Raising the per-request cap to 64 MiB accommodates those requests while the
8
- // separate 256 MiB aggregate pending-upload budget continues to bound seller
9
- // memory exposure across concurrent uploads.
10
- export const DEFAULT_MAX_UPLOAD_BODY_BYTES = 64 * 1024 * 1024; // 64 MiB
11
- const DEFAULT_MAX_TOTAL_PENDING_BYTES = 256 * 1024 * 1024; // 256 MiB
12
- const DEFAULT_UPLOAD_TIMEOUT_MS = 120_000; // 2 min
13
- /**
14
- * Request/response multiplexer over DataChannel.
15
- * Handles both buyer-side and seller-side proxy communication.
16
- */
17
- export class ProxyMux {
18
- _connection;
19
- _messageIdCounter = 0;
20
- // Buyer side: pending requests awaiting responses
21
- _responseHandlers = new Map();
22
- _chunkHandlers = new Map();
23
- // Seller side: handler for incoming proxy requests
24
- _requestHandler = null;
25
- // Seller side: in-progress chunked uploads with size tracking and timeouts
26
- _pendingUploads = new Map();
27
- _totalPendingUploadBytes = 0;
28
- _maxUploadBodyBytes;
29
- _maxTotalPendingUploadBytes;
30
- _uploadTimeoutMs;
31
- constructor(connection, uploadLimits) {
32
- this._connection = connection;
33
- this._maxUploadBodyBytes = uploadLimits?.maxUploadBodyBytes ?? DEFAULT_MAX_UPLOAD_BODY_BYTES;
34
- this._maxTotalPendingUploadBytes = uploadLimits?.maxTotalPendingUploadBytes ?? DEFAULT_MAX_TOTAL_PENDING_BYTES;
35
- this._uploadTimeoutMs = uploadLimits?.uploadTimeoutMs ?? DEFAULT_UPLOAD_TIMEOUT_MS;
36
- }
37
- /** Buyer side: send a proxy request and register response/chunk handlers. */
38
- sendProxyRequest(request, onResponse, onChunk) {
39
- const useChunkedUpload = request.body.length > ANTSEED_UPLOAD_THRESHOLD_BYTES;
40
- debugLog(`[ProxyMux] send request reqId=${request.requestId.slice(0, 8)} bytes=${request.body.length} chunked=${useChunkedUpload ? "true" : "false"}`);
41
- this._responseHandlers.set(request.requestId, onResponse);
42
- this._chunkHandlers.set(request.requestId, onChunk);
43
- if (useChunkedUpload) {
44
- this._sendChunkedRequest(request);
45
- }
46
- else {
47
- const payload = encodeHttpRequest(request);
48
- this._connection.send(encodeFrame({
49
- type: MessageType.HttpRequest,
50
- messageId: this._nextMessageId(),
51
- payload,
52
- }));
53
- }
54
- }
55
- /** Buyer side: split a large request body into HttpRequest + HttpRequestChunk* + HttpRequestEnd. */
56
- _sendChunkedRequest(request) {
57
- // Header frame: metadata only, empty body, upload marker
58
- const headerRequest = {
59
- ...request,
60
- headers: { ...request.headers, [ANTSEED_UPLOAD_CHUNK_HEADER]: 'chunked' },
61
- body: new Uint8Array(0),
62
- };
63
- this._connection.send(encodeFrame({
64
- type: MessageType.HttpRequest,
65
- messageId: this._nextMessageId(),
66
- payload: encodeHttpRequest(headerRequest),
67
- }));
68
- // Stream body in ANTSEED_UPLOAD_CHUNK_SIZE slices
69
- const body = request.body;
70
- let offset = 0;
71
- while (offset < body.length) {
72
- const end = Math.min(offset + ANTSEED_UPLOAD_CHUNK_SIZE, body.length);
73
- const isLast = end >= body.length;
74
- const payload = encodeHttpRequestChunk({
75
- requestId: request.requestId,
76
- data: body.slice(offset, end),
77
- done: isLast,
78
- });
79
- this._connection.send(encodeFrame({
80
- type: isLast ? MessageType.HttpRequestEnd : MessageType.HttpRequestChunk,
81
- messageId: this._nextMessageId(),
82
- payload,
83
- }));
84
- offset = end;
85
- }
86
- }
87
- /** Buyer side: cancel handlers for an in-flight request. */
88
- cancelProxyRequest(requestId) {
89
- debugLog(`[ProxyMux] cancel request reqId=${requestId.slice(0, 8)}`);
90
- this._responseHandlers.delete(requestId);
91
- this._chunkHandlers.delete(requestId);
92
- }
93
- /** Seller side: register a handler for incoming proxy requests. */
94
- onProxyRequest(handler) {
95
- this._requestHandler = handler;
96
- }
97
- /** Seller side: send a complete proxy response. */
98
- sendProxyResponse(response) {
99
- const payload = encodeHttpResponse(response);
100
- const frame = encodeFrame({
101
- type: MessageType.HttpResponse,
102
- messageId: this._nextMessageId(),
103
- payload,
104
- });
105
- this._safeSendFrame(frame, 'response', response.requestId);
106
- }
107
- /** Seller side: send a proxy response chunk. */
108
- sendProxyChunk(chunk) {
109
- const type = chunk.done
110
- ? MessageType.HttpResponseEnd
111
- : MessageType.HttpResponseChunk;
112
- const payload = encodeHttpResponseChunk(chunk);
113
- const frame = encodeFrame({
114
- type,
115
- messageId: this._nextMessageId(),
116
- payload,
117
- });
118
- this._safeSendFrame(frame, chunk.done ? 'response-end' : 'response-chunk', chunk.requestId);
119
- }
120
- /** Route an incoming frame to the correct handler based on message type. */
121
- async handleFrame(frame) {
122
- try {
123
- debugLog(`[ProxyMux] handleFrame type=${frame.type} (0x${frame.type.toString(16)}) payloadLen=${frame.payload?.length ?? 0}`);
124
- switch (frame.type) {
125
- case MessageType.HttpRequest: {
126
- // Seller side: incoming request from buyer
127
- const request = decodeHttpRequest(frame.payload);
128
- debugLog(`[ProxyMux] recv request reqId=${request.requestId.slice(0, 8)} chunked=${request.headers[ANTSEED_UPLOAD_CHUNK_HEADER] === 'chunked' ? "true" : "false"} bodyBytes=${request.body?.length ?? 0} bodyType=${typeof request.body}`);
129
- if (request.headers[ANTSEED_UPLOAD_CHUNK_HEADER] === 'chunked') {
130
- // Body will arrive via HttpRequestChunk/HttpRequestEnd — start buffering.
131
- // If a duplicate header frame arrives for the same requestId, evict the
132
- // existing entry first to prevent timer leaks and accounting drift.
133
- const existing = this._pendingUploads.get(request.requestId);
134
- if (existing) {
135
- clearTimeout(existing.timer);
136
- this._totalPendingUploadBytes -= existing.byteCount;
137
- for (const c of existing.chunks)
138
- c.fill(0);
139
- }
140
- const timer = setTimeout(() => this._abortUpload(request.requestId, 408, 'Upload timed out'), this._uploadTimeoutMs);
141
- this._pendingUploads.set(request.requestId, {
142
- headerReq: request,
143
- chunks: [],
144
- byteCount: 0,
145
- timer,
146
- });
147
- }
148
- else if (this._requestHandler) {
149
- await this._requestHandler(request);
150
- }
151
- break;
152
- }
153
- case MessageType.HttpRequestChunk: {
154
- // Seller side: non-final body chunk of a chunked upload
155
- const chunk = decodeHttpRequestChunk(frame.payload);
156
- const entry = this._pendingUploads.get(chunk.requestId);
157
- if (!entry || chunk.data.length === 0)
158
- break;
159
- debugLog(`[ProxyMux] recv request chunk reqId=${chunk.requestId.slice(0, 8)} bytes=${chunk.data.length} pending=${entry.byteCount + chunk.data.length}`);
160
- // Per-request size guard
161
- if (entry.byteCount + chunk.data.length > this._maxUploadBodyBytes) {
162
- this._abortUpload(chunk.requestId, 413, 'Upload body exceeds per-request limit');
163
- break;
164
- }
165
- // Global budget guard
166
- if (this._totalPendingUploadBytes + chunk.data.length > this._maxTotalPendingUploadBytes) {
167
- this._abortUpload(chunk.requestId, 413, 'Server upload capacity exceeded');
168
- break;
169
- }
170
- entry.chunks.push(chunk.data);
171
- entry.byteCount += chunk.data.length;
172
- this._totalPendingUploadBytes += chunk.data.length;
173
- break;
174
- }
175
- case MessageType.HttpRequestEnd: {
176
- // Seller side: final body chunk — reassemble, zero intermediates, dispatch
177
- const chunk = decodeHttpRequestChunk(frame.payload);
178
- const entry = this._pendingUploads.get(chunk.requestId);
179
- if (!entry)
180
- break;
181
- debugLog(`[ProxyMux] recv request end reqId=${chunk.requestId.slice(0, 8)} finalBytes=${chunk.data.length} pendingBefore=${entry.byteCount}`);
182
- // Check final chunk against limits
183
- const finalLen = chunk.data.length;
184
- if (finalLen > 0) {
185
- if (entry.byteCount + finalLen > this._maxUploadBodyBytes) {
186
- this._abortUpload(chunk.requestId, 413, 'Upload body exceeds per-request limit');
187
- break;
188
- }
189
- if (this._totalPendingUploadBytes + finalLen > this._maxTotalPendingUploadBytes) {
190
- this._abortUpload(chunk.requestId, 413, 'Server upload capacity exceeded');
191
- break;
192
- }
193
- entry.chunks.push(chunk.data);
194
- entry.byteCount += finalLen;
195
- this._totalPendingUploadBytes += finalLen;
196
- }
197
- // Clean up tracking state
198
- clearTimeout(entry.timer);
199
- this._pendingUploads.delete(chunk.requestId);
200
- this._totalPendingUploadBytes -= entry.byteCount;
201
- if (this._requestHandler) {
202
- const body = _concatChunks(entry.chunks);
203
- // Zero intermediates — reduces the window for sensitive data in RAM
204
- for (const c of entry.chunks)
205
- c.fill(0);
206
- entry.chunks.length = 0;
207
- const { [ANTSEED_UPLOAD_CHUNK_HEADER]: _marker, ...cleanHeaders } = entry.headerReq.headers;
208
- await this._requestHandler({ ...entry.headerReq, headers: cleanHeaders, body });
209
- }
210
- break;
211
- }
212
- case MessageType.HttpResponse: {
213
- // Buyer side: response from seller (start frame for streams).
214
- const response = decodeHttpResponse(frame.payload);
215
- debugLog(`[ProxyMux] recv response reqId=${response.requestId.slice(0, 8)} status=${response.statusCode} bytes=${response.body?.length ?? 0} streamingStart=${response.headers[ANTSEED_STREAMING_RESPONSE_HEADER] === '1' ? "true" : "false"}`);
216
- const handler = this._responseHandlers.get(response.requestId);
217
- if (handler) {
218
- const streamingStart = response.headers[ANTSEED_STREAMING_RESPONSE_HEADER] === '1';
219
- if (!streamingStart) {
220
- this._responseHandlers.delete(response.requestId);
221
- this._chunkHandlers.delete(response.requestId);
222
- }
223
- handler(response, { streamingStart });
224
- }
225
- break;
226
- }
227
- case MessageType.HttpResponseChunk: {
228
- // Buyer side: streaming chunk from seller
229
- const chunk = decodeHttpResponseChunk(frame.payload);
230
- debugLog(`[ProxyMux] recv response chunk reqId=${chunk.requestId.slice(0, 8)} bytes=${chunk.data.length} done=${chunk.done ? "true" : "false"}`);
231
- const chunkHandler = this._chunkHandlers.get(chunk.requestId);
232
- if (chunkHandler) {
233
- chunkHandler(chunk);
234
- }
235
- break;
236
- }
237
- case MessageType.HttpResponseEnd: {
238
- // Buyer side: final chunk (done=true) from seller
239
- const endChunk = decodeHttpResponseChunk(frame.payload);
240
- debugLog(`[ProxyMux] recv response end reqId=${endChunk.requestId.slice(0, 8)} bytes=${endChunk.data.length}`);
241
- const endHandler = this._chunkHandlers.get(endChunk.requestId);
242
- if (endHandler) {
243
- endHandler(endChunk);
244
- this._responseHandlers.delete(endChunk.requestId);
245
- this._chunkHandlers.delete(endChunk.requestId);
246
- }
247
- break;
248
- }
249
- case MessageType.HttpResponseError: {
250
- // Buyer side: error response from seller
251
- const errorResponse = decodeHttpResponse(frame.payload);
252
- const errorHandler = this._responseHandlers.get(errorResponse.requestId);
253
- if (errorHandler) {
254
- this._responseHandlers.delete(errorResponse.requestId);
255
- this._chunkHandlers.delete(errorResponse.requestId);
256
- errorHandler(errorResponse, { streamingStart: false });
257
- }
258
- break;
259
- }
260
- default:
261
- // Unknown message type — ignore
262
- break;
263
- }
264
- }
265
- catch (err) {
266
- const message = err instanceof Error ? err.message : String(err);
267
- throw new Error(`Failed to handle proxy frame type ${frame.type}: ${message}`);
268
- }
269
- }
270
- /** Number of in-flight requests (buyer side). */
271
- activeRequestCount() {
272
- return this._responseHandlers.size;
273
- }
274
- /** Number of in-progress chunked uploads buffered on the seller side. */
275
- pendingUploadCount() {
276
- return this._pendingUploads.size;
277
- }
278
- /** Total bytes currently buffered across all in-progress uploads. */
279
- pendingUploadBytes() {
280
- return this._totalPendingUploadBytes;
281
- }
282
- /**
283
- * Seller side: abort and discard all buffered chunked-upload state.
284
- * Call on connection close or session end to prevent memory leaks.
285
- * Zeros all buffered chunk data before discarding.
286
- */
287
- abortPendingUploads() {
288
- for (const entry of this._pendingUploads.values()) {
289
- clearTimeout(entry.timer);
290
- for (const c of entry.chunks)
291
- c.fill(0);
292
- }
293
- this._pendingUploads.clear();
294
- this._totalPendingUploadBytes = 0;
295
- }
296
- /**
297
- * Abort a single in-progress upload, zero its buffers, and send an error
298
- * response to the buyer.
299
- */
300
- _abortUpload(requestId, statusCode, reason) {
301
- const entry = this._pendingUploads.get(requestId);
302
- if (!entry)
303
- return;
304
- clearTimeout(entry.timer);
305
- this._totalPendingUploadBytes -= entry.byteCount;
306
- for (const c of entry.chunks)
307
- c.fill(0);
308
- this._pendingUploads.delete(requestId);
309
- this.sendProxyResponse({
310
- requestId,
311
- statusCode,
312
- headers: {
313
- 'content-type': 'text/plain',
314
- ...(statusCode === 413 ? { 'x-antseed-max-upload-body-bytes': String(this._maxUploadBodyBytes) } : {}),
315
- },
316
- body: new TextEncoder().encode(reason),
317
- });
318
- }
319
- _safeSendFrame(frame, kind, requestId) {
320
- try {
321
- this._connection.send(frame);
322
- }
323
- catch (err) {
324
- debugLog(`[ProxyMux] drop ${kind} reqId=${requestId.slice(0, 8)} because connection closed: ${err instanceof Error ? err.message : err}`);
325
- }
326
- }
327
- _nextMessageId() {
328
- const id = this._messageIdCounter;
329
- this._messageIdCounter = (this._messageIdCounter + 1) & 0xFFFFFFFF;
330
- return id;
331
- }
332
- }
333
- function _concatChunks(chunks) {
334
- if (chunks.length === 0)
335
- return new Uint8Array(0);
336
- if (chunks.length === 1)
337
- return chunks[0].slice();
338
- const total = chunks.reduce((n, c) => n + c.length, 0);
339
- const out = new Uint8Array(total);
340
- let offset = 0;
341
- for (const c of chunks) {
342
- out.set(c, offset);
343
- offset += c.length;
344
- }
345
- return out;
346
- }
1
+ // Moved to @antseed/buyer-core; re-exported for compatibility.
2
+ export * from '@antseed/buyer-core/proxy-mux';
347
3
  //# sourceMappingURL=proxy-mux.js.map