@leaflow/sdk 0.140.0 → 0.141.0

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 (412) hide show
  1. package/README.md +8 -2
  2. package/dist/canopy/v1/generated/functions.d.ts +97 -9
  3. package/dist/canopy/v1/generated/functions.js +100 -0
  4. package/dist/canopy/v1/generated/models.d.ts +77 -8
  5. package/dist/canopy/v1/generated/models.js +4 -0
  6. package/dist/canopy/v1/generated/schemas.zod.d.ts +42 -8
  7. package/dist/canopy/v1/generated/schemas.zod.js +28 -8
  8. package/dist/canopy/v1/generated/validators/aPIKeyResource.zod.d.ts +10 -8
  9. package/dist/canopy/v1/generated/validators/aPIKeyResource.zod.js +10 -8
  10. package/dist/canopy/v1/generated/validators/aPIKeyUsageListResponseBody.zod.d.ts +10 -8
  11. package/dist/canopy/v1/generated/validators/aPIKeyUsageListResponseBody.zod.js +10 -8
  12. package/dist/canopy/v1/generated/validators/aPIKeyUsageResource.zod.d.ts +10 -8
  13. package/dist/canopy/v1/generated/validators/aPIKeyUsageResource.zod.js +10 -8
  14. package/dist/canopy/v1/generated/validators/accountBalance.zod.d.ts +10 -8
  15. package/dist/canopy/v1/generated/validators/accountBalance.zod.js +10 -8
  16. package/dist/canopy/v1/generated/validators/accountIdentity.zod.d.ts +10 -8
  17. package/dist/canopy/v1/generated/validators/accountIdentity.zod.js +10 -8
  18. package/dist/canopy/v1/generated/validators/activeResource.zod.d.ts +10 -8
  19. package/dist/canopy/v1/generated/validators/activeResource.zod.js +10 -8
  20. package/dist/canopy/v1/generated/validators/activeResourceList.zod.d.ts +10 -8
  21. package/dist/canopy/v1/generated/validators/activeResourceList.zod.js +10 -8
  22. package/dist/canopy/v1/generated/validators/allowance.zod.d.ts +10 -8
  23. package/dist/canopy/v1/generated/validators/allowance.zod.js +10 -8
  24. package/dist/canopy/v1/generated/validators/allowanceList.zod.d.ts +10 -8
  25. package/dist/canopy/v1/generated/validators/allowanceList.zod.js +10 -8
  26. package/dist/canopy/v1/generated/validators/applicability.zod.d.ts +10 -8
  27. package/dist/canopy/v1/generated/validators/applicability.zod.js +10 -8
  28. package/dist/canopy/v1/generated/validators/applicablePlan.zod.d.ts +10 -8
  29. package/dist/canopy/v1/generated/validators/applicablePlan.zod.js +10 -8
  30. package/dist/canopy/v1/generated/validators/appliedCredit.zod.d.ts +10 -8
  31. package/dist/canopy/v1/generated/validators/appliedCredit.zod.js +10 -8
  32. package/dist/canopy/v1/generated/validators/autoRenewSet.zod.d.ts +10 -8
  33. package/dist/canopy/v1/generated/validators/autoRenewSet.zod.js +10 -8
  34. package/dist/canopy/v1/generated/validators/billingAccount.zod.d.ts +10 -8
  35. package/dist/canopy/v1/generated/validators/billingAccount.zod.js +10 -8
  36. package/dist/canopy/v1/generated/validators/billingAccountCreate.zod.d.ts +10 -8
  37. package/dist/canopy/v1/generated/validators/billingAccountCreate.zod.js +10 -8
  38. package/dist/canopy/v1/generated/validators/billingAccountList.zod.d.ts +10 -8
  39. package/dist/canopy/v1/generated/validators/billingAccountList.zod.js +10 -8
  40. package/dist/canopy/v1/generated/validators/billingAccountUpdate.zod.d.ts +10 -8
  41. package/dist/canopy/v1/generated/validators/billingAccountUpdate.zod.js +10 -8
  42. package/dist/canopy/v1/generated/validators/cancelSubscriptionRequest.zod.d.ts +10 -8
  43. package/dist/canopy/v1/generated/validators/cancelSubscriptionRequest.zod.js +10 -8
  44. package/dist/canopy/v1/generated/validators/cancellation.zod.d.ts +10 -8
  45. package/dist/canopy/v1/generated/validators/cancellation.zod.js +10 -8
  46. package/dist/canopy/v1/generated/validators/cancellationCreate.zod.d.ts +10 -8
  47. package/dist/canopy/v1/generated/validators/cancellationCreate.zod.js +10 -8
  48. package/dist/canopy/v1/generated/validators/cancellationItem.zod.d.ts +10 -8
  49. package/dist/canopy/v1/generated/validators/cancellationItem.zod.js +10 -8
  50. package/dist/canopy/v1/generated/validators/cancellationList.zod.d.ts +10 -8
  51. package/dist/canopy/v1/generated/validators/cancellationList.zod.js +10 -8
  52. package/dist/canopy/v1/generated/validators/cancellationRefundPreview.zod.d.ts +10 -8
  53. package/dist/canopy/v1/generated/validators/cancellationRefundPreview.zod.js +10 -8
  54. package/dist/canopy/v1/generated/validators/cancellationRefundPreviewItem.zod.d.ts +10 -8
  55. package/dist/canopy/v1/generated/validators/cancellationRefundPreviewItem.zod.js +10 -8
  56. package/dist/canopy/v1/generated/validators/chatCompletion.zod.d.ts +36 -0
  57. package/dist/canopy/v1/generated/validators/chatCompletion.zod.js +34 -0
  58. package/dist/canopy/v1/generated/validators/chatCompletionRequest.zod.d.ts +43 -0
  59. package/dist/canopy/v1/generated/validators/chatCompletionRequest.zod.js +41 -0
  60. package/dist/canopy/v1/generated/validators/checkoutMode.zod.d.ts +10 -8
  61. package/dist/canopy/v1/generated/validators/checkoutMode.zod.js +10 -8
  62. package/dist/canopy/v1/generated/validators/checkoutOptions.zod.d.ts +10 -8
  63. package/dist/canopy/v1/generated/validators/checkoutOptions.zod.js +10 -8
  64. package/dist/canopy/v1/generated/validators/contact.zod.d.ts +10 -8
  65. package/dist/canopy/v1/generated/validators/contact.zod.js +10 -8
  66. package/dist/canopy/v1/generated/validators/contactCreate.zod.d.ts +10 -8
  67. package/dist/canopy/v1/generated/validators/contactCreate.zod.js +10 -8
  68. package/dist/canopy/v1/generated/validators/contactList.zod.d.ts +10 -8
  69. package/dist/canopy/v1/generated/validators/contactList.zod.js +10 -8
  70. package/dist/canopy/v1/generated/validators/contactUpdate.zod.d.ts +10 -8
  71. package/dist/canopy/v1/generated/validators/contactUpdate.zod.js +10 -8
  72. package/dist/canopy/v1/generated/validators/createAPIKeyRequestBody.zod.d.ts +10 -8
  73. package/dist/canopy/v1/generated/validators/createAPIKeyRequestBody.zod.js +10 -8
  74. package/dist/canopy/v1/generated/validators/createServiceRequestBody.zod.d.ts +10 -8
  75. package/dist/canopy/v1/generated/validators/createServiceRequestBody.zod.js +10 -8
  76. package/dist/canopy/v1/generated/validators/createServiceResponseBody.zod.d.ts +10 -8
  77. package/dist/canopy/v1/generated/validators/createServiceResponseBody.zod.js +10 -8
  78. package/dist/canopy/v1/generated/validators/creditGrant.zod.d.ts +10 -8
  79. package/dist/canopy/v1/generated/validators/creditGrant.zod.js +10 -8
  80. package/dist/canopy/v1/generated/validators/creditGrantList.zod.d.ts +10 -8
  81. package/dist/canopy/v1/generated/validators/creditGrantList.zod.js +10 -8
  82. package/dist/canopy/v1/generated/validators/creditGroup.zod.d.ts +10 -8
  83. package/dist/canopy/v1/generated/validators/creditGroup.zod.js +10 -8
  84. package/dist/canopy/v1/generated/validators/creditNote.zod.d.ts +10 -8
  85. package/dist/canopy/v1/generated/validators/creditNote.zod.js +10 -8
  86. package/dist/canopy/v1/generated/validators/creditNoteItem.zod.d.ts +10 -8
  87. package/dist/canopy/v1/generated/validators/creditNoteItem.zod.js +10 -8
  88. package/dist/canopy/v1/generated/validators/creditNoteItemList.zod.d.ts +10 -8
  89. package/dist/canopy/v1/generated/validators/creditNoteItemList.zod.js +10 -8
  90. package/dist/canopy/v1/generated/validators/creditNoteList.zod.d.ts +10 -8
  91. package/dist/canopy/v1/generated/validators/creditNoteList.zod.js +10 -8
  92. package/dist/canopy/v1/generated/validators/currency.zod.d.ts +10 -8
  93. package/dist/canopy/v1/generated/validators/currency.zod.js +10 -8
  94. package/dist/canopy/v1/generated/validators/currencyList.zod.d.ts +10 -8
  95. package/dist/canopy/v1/generated/validators/currencyList.zod.js +10 -8
  96. package/dist/canopy/v1/generated/validators/cursorPageRequestResource.zod.d.ts +10 -8
  97. package/dist/canopy/v1/generated/validators/cursorPageRequestResource.zod.js +10 -8
  98. package/dist/canopy/v1/generated/validators/cursorPagination.zod.d.ts +10 -8
  99. package/dist/canopy/v1/generated/validators/cursorPagination.zod.js +10 -8
  100. package/dist/canopy/v1/generated/validators/discount.zod.d.ts +10 -8
  101. package/dist/canopy/v1/generated/validators/discount.zod.js +10 -8
  102. package/dist/canopy/v1/generated/validators/discountList.zod.d.ts +10 -8
  103. package/dist/canopy/v1/generated/validators/discountList.zod.js +10 -8
  104. package/dist/canopy/v1/generated/validators/embeddingRequest.zod.d.ts +45 -0
  105. package/dist/canopy/v1/generated/validators/embeddingRequest.zod.js +42 -0
  106. package/dist/canopy/v1/generated/validators/embeddingResponse.zod.d.ts +36 -0
  107. package/dist/canopy/v1/generated/validators/embeddingResponse.zod.js +34 -0
  108. package/dist/canopy/v1/generated/validators/entitlement.zod.d.ts +10 -8
  109. package/dist/canopy/v1/generated/validators/entitlement.zod.js +10 -8
  110. package/dist/canopy/v1/generated/validators/entitlementList.zod.d.ts +10 -8
  111. package/dist/canopy/v1/generated/validators/entitlementList.zod.js +10 -8
  112. package/dist/canopy/v1/generated/validators/error.zod.d.ts +10 -8
  113. package/dist/canopy/v1/generated/validators/error.zod.js +10 -8
  114. package/dist/canopy/v1/generated/validators/errorA200529.zod.d.ts +10 -8
  115. package/dist/canopy/v1/generated/validators/errorA200529.zod.js +10 -8
  116. package/dist/canopy/v1/generated/validators/featureGrant.zod.d.ts +10 -8
  117. package/dist/canopy/v1/generated/validators/featureGrant.zod.js +10 -8
  118. package/dist/canopy/v1/generated/validators/featureGrantList.zod.d.ts +10 -8
  119. package/dist/canopy/v1/generated/validators/featureGrantList.zod.js +10 -8
  120. package/dist/canopy/v1/generated/validators/featureGrantStatus.zod.d.ts +10 -8
  121. package/dist/canopy/v1/generated/validators/featureGrantStatus.zod.js +10 -8
  122. package/dist/canopy/v1/generated/validators/funds.zod.d.ts +10 -8
  123. package/dist/canopy/v1/generated/validators/funds.zod.js +10 -8
  124. package/dist/canopy/v1/generated/validators/getUsageSummaryParams.zod.d.ts +10 -8
  125. package/dist/canopy/v1/generated/validators/getUsageSummaryParams.zod.js +10 -8
  126. package/dist/canopy/v1/generated/validators/getUsageTimelineParams.zod.d.ts +10 -8
  127. package/dist/canopy/v1/generated/validators/getUsageTimelineParams.zod.js +10 -8
  128. package/dist/canopy/v1/generated/validators/inferenceError.zod.d.ts +43 -0
  129. package/dist/canopy/v1/generated/validators/inferenceError.zod.js +41 -0
  130. package/dist/canopy/v1/generated/validators/invoice.zod.d.ts +10 -8
  131. package/dist/canopy/v1/generated/validators/invoice.zod.js +10 -8
  132. package/dist/canopy/v1/generated/validators/invoiceItem.zod.d.ts +10 -8
  133. package/dist/canopy/v1/generated/validators/invoiceItem.zod.js +10 -8
  134. package/dist/canopy/v1/generated/validators/invoiceItemList.zod.d.ts +10 -8
  135. package/dist/canopy/v1/generated/validators/invoiceItemList.zod.js +10 -8
  136. package/dist/canopy/v1/generated/validators/invoiceItemProration.zod.d.ts +10 -8
  137. package/dist/canopy/v1/generated/validators/invoiceItemProration.zod.js +10 -8
  138. package/dist/canopy/v1/generated/validators/invoiceList.zod.d.ts +10 -8
  139. package/dist/canopy/v1/generated/validators/invoiceList.zod.js +10 -8
  140. package/dist/canopy/v1/generated/validators/invoiceStatus.zod.d.ts +10 -8
  141. package/dist/canopy/v1/generated/validators/invoiceStatus.zod.js +10 -8
  142. package/dist/canopy/v1/generated/validators/invoiceSummary.zod.d.ts +10 -8
  143. package/dist/canopy/v1/generated/validators/invoiceSummary.zod.js +10 -8
  144. package/dist/canopy/v1/generated/validators/issuedAPIKeyResource.zod.d.ts +10 -8
  145. package/dist/canopy/v1/generated/validators/issuedAPIKeyResource.zod.js +10 -8
  146. package/dist/canopy/v1/generated/validators/lengthAwarePageAPIKeyResource.zod.d.ts +10 -8
  147. package/dist/canopy/v1/generated/validators/lengthAwarePageAPIKeyResource.zod.js +10 -8
  148. package/dist/canopy/v1/generated/validators/listApiKeysParams.zod.d.ts +10 -8
  149. package/dist/canopy/v1/generated/validators/listApiKeysParams.zod.js +10 -8
  150. package/dist/canopy/v1/generated/validators/listRequestsParams.zod.d.ts +10 -8
  151. package/dist/canopy/v1/generated/validators/listRequestsParams.zod.js +10 -8
  152. package/dist/canopy/v1/generated/validators/listUsageByApiKeyParams.zod.d.ts +10 -8
  153. package/dist/canopy/v1/generated/validators/listUsageByApiKeyParams.zod.js +10 -8
  154. package/dist/canopy/v1/generated/validators/listUsageByModelParams.zod.d.ts +10 -8
  155. package/dist/canopy/v1/generated/validators/listUsageByModelParams.zod.js +10 -8
  156. package/dist/canopy/v1/generated/validators/model.zod.d.ts +48 -0
  157. package/dist/canopy/v1/generated/validators/model.zod.js +46 -0
  158. package/dist/canopy/v1/generated/validators/modelList.zod.d.ts +51 -0
  159. package/dist/canopy/v1/generated/validators/modelList.zod.js +38 -0
  160. package/dist/canopy/v1/generated/validators/modelListResponseBody.zod.d.ts +10 -8
  161. package/dist/canopy/v1/generated/validators/modelListResponseBody.zod.js +10 -8
  162. package/dist/canopy/v1/generated/validators/modelPricing.zod.d.ts +10 -8
  163. package/dist/canopy/v1/generated/validators/modelPricing.zod.js +10 -8
  164. package/dist/canopy/v1/generated/validators/modelResource.zod.d.ts +10 -8
  165. package/dist/canopy/v1/generated/validators/modelResource.zod.js +10 -8
  166. package/dist/canopy/v1/generated/validators/modelUsageListResponseBody.zod.d.ts +10 -8
  167. package/dist/canopy/v1/generated/validators/modelUsageListResponseBody.zod.js +10 -8
  168. package/dist/canopy/v1/generated/validators/modelUsageResource.zod.d.ts +10 -8
  169. package/dist/canopy/v1/generated/validators/modelUsageResource.zod.js +10 -8
  170. package/dist/canopy/v1/generated/validators/money.zod.d.ts +10 -8
  171. package/dist/canopy/v1/generated/validators/money.zod.js +10 -8
  172. package/dist/canopy/v1/generated/validators/monthlyStatement.zod.d.ts +10 -8
  173. package/dist/canopy/v1/generated/validators/monthlyStatement.zod.js +10 -8
  174. package/dist/canopy/v1/generated/validators/monthlyStatementList.zod.d.ts +10 -8
  175. package/dist/canopy/v1/generated/validators/monthlyStatementList.zod.js +10 -8
  176. package/dist/canopy/v1/generated/validators/namedIdentity.zod.d.ts +10 -8
  177. package/dist/canopy/v1/generated/validators/namedIdentity.zod.js +10 -8
  178. package/dist/canopy/v1/generated/validators/objectIdentity.zod.d.ts +10 -8
  179. package/dist/canopy/v1/generated/validators/objectIdentity.zod.js +10 -8
  180. package/dist/canopy/v1/generated/validators/offsetPagination.zod.d.ts +10 -8
  181. package/dist/canopy/v1/generated/validators/offsetPagination.zod.js +10 -8
  182. package/dist/canopy/v1/generated/validators/order.zod.d.ts +10 -8
  183. package/dist/canopy/v1/generated/validators/order.zod.js +10 -8
  184. package/dist/canopy/v1/generated/validators/orderCancel.zod.d.ts +10 -8
  185. package/dist/canopy/v1/generated/validators/orderCancel.zod.js +10 -8
  186. package/dist/canopy/v1/generated/validators/orderItem.zod.d.ts +10 -8
  187. package/dist/canopy/v1/generated/validators/orderItem.zod.js +10 -8
  188. package/dist/canopy/v1/generated/validators/orderItemList.zod.d.ts +10 -8
  189. package/dist/canopy/v1/generated/validators/orderItemList.zod.js +10 -8
  190. package/dist/canopy/v1/generated/validators/orderItemStatus.zod.d.ts +10 -8
  191. package/dist/canopy/v1/generated/validators/orderItemStatus.zod.js +10 -8
  192. package/dist/canopy/v1/generated/validators/orderList.zod.d.ts +10 -8
  193. package/dist/canopy/v1/generated/validators/orderList.zod.js +10 -8
  194. package/dist/canopy/v1/generated/validators/orderRefundQuote.zod.d.ts +10 -8
  195. package/dist/canopy/v1/generated/validators/orderRefundQuote.zod.js +10 -8
  196. package/dist/canopy/v1/generated/validators/orderRefundQuoteInput.zod.d.ts +10 -8
  197. package/dist/canopy/v1/generated/validators/orderRefundQuoteInput.zod.js +10 -8
  198. package/dist/canopy/v1/generated/validators/orderStatus.zod.d.ts +10 -8
  199. package/dist/canopy/v1/generated/validators/orderStatus.zod.js +10 -8
  200. package/dist/canopy/v1/generated/validators/paidWith.zod.d.ts +10 -8
  201. package/dist/canopy/v1/generated/validators/paidWith.zod.js +10 -8
  202. package/dist/canopy/v1/generated/validators/payInvoiceRequest.zod.d.ts +10 -8
  203. package/dist/canopy/v1/generated/validators/payInvoiceRequest.zod.js +10 -8
  204. package/dist/canopy/v1/generated/validators/payTogetherRequest.zod.d.ts +10 -8
  205. package/dist/canopy/v1/generated/validators/payTogetherRequest.zod.js +10 -8
  206. package/dist/canopy/v1/generated/validators/paymentAction.zod.d.ts +10 -8
  207. package/dist/canopy/v1/generated/validators/paymentAction.zod.js +10 -8
  208. package/dist/canopy/v1/generated/validators/paymentCancellationReason.zod.d.ts +10 -8
  209. package/dist/canopy/v1/generated/validators/paymentCancellationReason.zod.js +10 -8
  210. package/dist/canopy/v1/generated/validators/paymentMethod.zod.d.ts +10 -8
  211. package/dist/canopy/v1/generated/validators/paymentMethod.zod.js +10 -8
  212. package/dist/canopy/v1/generated/validators/paymentMethodList.zod.d.ts +10 -8
  213. package/dist/canopy/v1/generated/validators/paymentMethodList.zod.js +10 -8
  214. package/dist/canopy/v1/generated/validators/paymentMethodSetup.zod.d.ts +10 -8
  215. package/dist/canopy/v1/generated/validators/paymentMethodSetup.zod.js +10 -8
  216. package/dist/canopy/v1/generated/validators/paymentMethodSetupResult.zod.d.ts +10 -8
  217. package/dist/canopy/v1/generated/validators/paymentMethodSetupResult.zod.js +10 -8
  218. package/dist/canopy/v1/generated/validators/paymentOption.zod.d.ts +10 -8
  219. package/dist/canopy/v1/generated/validators/paymentOption.zod.js +10 -8
  220. package/dist/canopy/v1/generated/validators/paymentOptionList.zod.d.ts +10 -8
  221. package/dist/canopy/v1/generated/validators/paymentOptionList.zod.js +10 -8
  222. package/dist/canopy/v1/generated/validators/paymentOptionMethod.zod.d.ts +10 -8
  223. package/dist/canopy/v1/generated/validators/paymentOptionMethod.zod.js +10 -8
  224. package/dist/canopy/v1/generated/validators/paymentPreview.zod.d.ts +10 -8
  225. package/dist/canopy/v1/generated/validators/paymentPreview.zod.js +10 -8
  226. package/dist/canopy/v1/generated/validators/paymentPreviewInvoice.zod.d.ts +10 -8
  227. package/dist/canopy/v1/generated/validators/paymentPreviewInvoice.zod.js +10 -8
  228. package/dist/canopy/v1/generated/validators/paymentResult.zod.d.ts +10 -8
  229. package/dist/canopy/v1/generated/validators/paymentResult.zod.js +10 -8
  230. package/dist/canopy/v1/generated/validators/paymentStatus.zod.d.ts +10 -8
  231. package/dist/canopy/v1/generated/validators/paymentStatus.zod.js +10 -8
  232. package/dist/canopy/v1/generated/validators/placedOrder.zod.d.ts +10 -8
  233. package/dist/canopy/v1/generated/validators/placedOrder.zod.js +10 -8
  234. package/dist/canopy/v1/generated/validators/plan.zod.d.ts +10 -8
  235. package/dist/canopy/v1/generated/validators/plan.zod.js +10 -8
  236. package/dist/canopy/v1/generated/validators/planFeature.zod.d.ts +10 -8
  237. package/dist/canopy/v1/generated/validators/planFeature.zod.js +10 -8
  238. package/dist/canopy/v1/generated/validators/planList.zod.d.ts +10 -8
  239. package/dist/canopy/v1/generated/validators/planList.zod.js +10 -8
  240. package/dist/canopy/v1/generated/validators/price.zod.d.ts +10 -8
  241. package/dist/canopy/v1/generated/validators/price.zod.js +10 -8
  242. package/dist/canopy/v1/generated/validators/priceList.zod.d.ts +10 -8
  243. package/dist/canopy/v1/generated/validators/priceList.zod.js +10 -8
  244. package/dist/canopy/v1/generated/validators/priceOption.zod.d.ts +10 -8
  245. package/dist/canopy/v1/generated/validators/priceOption.zod.js +10 -8
  246. package/dist/canopy/v1/generated/validators/product.zod.d.ts +10 -8
  247. package/dist/canopy/v1/generated/validators/product.zod.js +10 -8
  248. package/dist/canopy/v1/generated/validators/productID.zod.d.ts +10 -8
  249. package/dist/canopy/v1/generated/validators/productID.zod.js +10 -8
  250. package/dist/canopy/v1/generated/validators/productList.zod.d.ts +10 -8
  251. package/dist/canopy/v1/generated/validators/productList.zod.js +10 -8
  252. package/dist/canopy/v1/generated/validators/projectAssignment.zod.d.ts +10 -8
  253. package/dist/canopy/v1/generated/validators/projectAssignment.zod.js +10 -8
  254. package/dist/canopy/v1/generated/validators/projectAssignmentList.zod.d.ts +10 -8
  255. package/dist/canopy/v1/generated/validators/projectAssignmentList.zod.js +10 -8
  256. package/dist/canopy/v1/generated/validators/purchaseOperation.zod.d.ts +10 -8
  257. package/dist/canopy/v1/generated/validators/purchaseOperation.zod.js +10 -8
  258. package/dist/canopy/v1/generated/validators/quote.zod.d.ts +10 -8
  259. package/dist/canopy/v1/generated/validators/quote.zod.js +10 -8
  260. package/dist/canopy/v1/generated/validators/quote5f60d00.zod.d.ts +10 -8
  261. package/dist/canopy/v1/generated/validators/quote5f60d00.zod.js +10 -8
  262. package/dist/canopy/v1/generated/validators/quoteA200529.zod.d.ts +10 -8
  263. package/dist/canopy/v1/generated/validators/quoteA200529.zod.js +10 -8
  264. package/dist/canopy/v1/generated/validators/quoteCancellation.zod.d.ts +10 -8
  265. package/dist/canopy/v1/generated/validators/quoteCancellation.zod.js +10 -8
  266. package/dist/canopy/v1/generated/validators/quoteItem.zod.d.ts +10 -8
  267. package/dist/canopy/v1/generated/validators/quoteItem.zod.js +10 -8
  268. package/dist/canopy/v1/generated/validators/quoteItemDc1fddb.zod.d.ts +10 -8
  269. package/dist/canopy/v1/generated/validators/quoteItemDc1fddb.zod.js +10 -8
  270. package/dist/canopy/v1/generated/validators/quoteItemInput.zod.d.ts +10 -8
  271. package/dist/canopy/v1/generated/validators/quoteItemInput.zod.js +10 -8
  272. package/dist/canopy/v1/generated/validators/quoteRenewal.zod.d.ts +10 -8
  273. package/dist/canopy/v1/generated/validators/quoteRenewal.zod.js +10 -8
  274. package/dist/canopy/v1/generated/validators/quoteRenewalResult.zod.d.ts +10 -8
  275. package/dist/canopy/v1/generated/validators/quoteRenewalResult.zod.js +10 -8
  276. package/dist/canopy/v1/generated/validators/quoteRequest.zod.d.ts +10 -8
  277. package/dist/canopy/v1/generated/validators/quoteRequest.zod.js +10 -8
  278. package/dist/canopy/v1/generated/validators/quotedDiscount.zod.d.ts +10 -8
  279. package/dist/canopy/v1/generated/validators/quotedDiscount.zod.js +10 -8
  280. package/dist/canopy/v1/generated/validators/rate.zod.d.ts +10 -8
  281. package/dist/canopy/v1/generated/validators/rate.zod.js +10 -8
  282. package/dist/canopy/v1/generated/validators/rateList.zod.d.ts +10 -8
  283. package/dist/canopy/v1/generated/validators/rateList.zod.js +10 -8
  284. package/dist/canopy/v1/generated/validators/refund.zod.d.ts +10 -8
  285. package/dist/canopy/v1/generated/validators/refund.zod.js +10 -8
  286. package/dist/canopy/v1/generated/validators/refundList.zod.d.ts +10 -8
  287. package/dist/canopy/v1/generated/validators/refundList.zod.js +10 -8
  288. package/dist/canopy/v1/generated/validators/refundPolicy.zod.d.ts +10 -8
  289. package/dist/canopy/v1/generated/validators/refundPolicy.zod.js +10 -8
  290. package/dist/canopy/v1/generated/validators/refundReason.zod.d.ts +10 -8
  291. package/dist/canopy/v1/generated/validators/refundReason.zod.js +10 -8
  292. package/dist/canopy/v1/generated/validators/renewRequest.zod.d.ts +10 -8
  293. package/dist/canopy/v1/generated/validators/renewRequest.zod.js +10 -8
  294. package/dist/canopy/v1/generated/validators/renewalOrderRequest.zod.d.ts +10 -8
  295. package/dist/canopy/v1/generated/validators/renewalOrderRequest.zod.js +10 -8
  296. package/dist/canopy/v1/generated/validators/renewalPrice.zod.d.ts +10 -8
  297. package/dist/canopy/v1/generated/validators/renewalPrice.zod.js +10 -8
  298. package/dist/canopy/v1/generated/validators/renewalPriceList.zod.d.ts +10 -8
  299. package/dist/canopy/v1/generated/validators/renewalPriceList.zod.js +10 -8
  300. package/dist/canopy/v1/generated/validators/requestResource.zod.d.ts +10 -8
  301. package/dist/canopy/v1/generated/validators/requestResource.zod.js +10 -8
  302. package/dist/canopy/v1/generated/validators/scheduledChange.zod.d.ts +10 -8
  303. package/dist/canopy/v1/generated/validators/scheduledChange.zod.js +10 -8
  304. package/dist/canopy/v1/generated/validators/serviceResource.zod.d.ts +10 -8
  305. package/dist/canopy/v1/generated/validators/serviceResource.zod.js +10 -8
  306. package/dist/canopy/v1/generated/validators/setProjectAssignmentRequest.zod.d.ts +10 -8
  307. package/dist/canopy/v1/generated/validators/setProjectAssignmentRequest.zod.js +10 -8
  308. package/dist/canopy/v1/generated/validators/spendRow.zod.d.ts +10 -8
  309. package/dist/canopy/v1/generated/validators/spendRow.zod.js +10 -8
  310. package/dist/canopy/v1/generated/validators/spendRowList.zod.d.ts +10 -8
  311. package/dist/canopy/v1/generated/validators/spendRowList.zod.js +10 -8
  312. package/dist/canopy/v1/generated/validators/statement.zod.d.ts +10 -8
  313. package/dist/canopy/v1/generated/validators/statement.zod.js +10 -8
  314. package/dist/canopy/v1/generated/validators/statementAmounts.zod.d.ts +10 -8
  315. package/dist/canopy/v1/generated/validators/statementAmounts.zod.js +10 -8
  316. package/dist/canopy/v1/generated/validators/statementItem.zod.d.ts +10 -8
  317. package/dist/canopy/v1/generated/validators/statementItem.zod.js +10 -8
  318. package/dist/canopy/v1/generated/validators/statementList.zod.d.ts +10 -8
  319. package/dist/canopy/v1/generated/validators/statementList.zod.js +10 -8
  320. package/dist/canopy/v1/generated/validators/statementStatus.zod.d.ts +10 -8
  321. package/dist/canopy/v1/generated/validators/statementStatus.zod.js +10 -8
  322. package/dist/canopy/v1/generated/validators/statementSummary.zod.d.ts +10 -8
  323. package/dist/canopy/v1/generated/validators/statementSummary.zod.js +10 -8
  324. package/dist/canopy/v1/generated/validators/statementType.zod.d.ts +10 -8
  325. package/dist/canopy/v1/generated/validators/statementType.zod.js +10 -8
  326. package/dist/canopy/v1/generated/validators/subscription.zod.d.ts +10 -8
  327. package/dist/canopy/v1/generated/validators/subscription.zod.js +10 -8
  328. package/dist/canopy/v1/generated/validators/subscriptionCancellation.zod.d.ts +10 -8
  329. package/dist/canopy/v1/generated/validators/subscriptionCancellation.zod.js +10 -8
  330. package/dist/canopy/v1/generated/validators/subscriptionList.zod.d.ts +10 -8
  331. package/dist/canopy/v1/generated/validators/subscriptionList.zod.js +10 -8
  332. package/dist/canopy/v1/generated/validators/subscriptionRestriction.zod.d.ts +10 -8
  333. package/dist/canopy/v1/generated/validators/subscriptionRestriction.zod.js +10 -8
  334. package/dist/canopy/v1/generated/validators/taxItem.zod.d.ts +10 -8
  335. package/dist/canopy/v1/generated/validators/taxItem.zod.js +10 -8
  336. package/dist/canopy/v1/generated/validators/terminationPolicy.zod.d.ts +10 -8
  337. package/dist/canopy/v1/generated/validators/terminationPolicy.zod.js +10 -8
  338. package/dist/canopy/v1/generated/validators/tier.zod.d.ts +10 -8
  339. package/dist/canopy/v1/generated/validators/tier.zod.js +10 -8
  340. package/dist/canopy/v1/generated/validators/tokenPrice.zod.d.ts +10 -8
  341. package/dist/canopy/v1/generated/validators/tokenPrice.zod.js +10 -8
  342. package/dist/canopy/v1/generated/validators/topUp.zod.d.ts +10 -8
  343. package/dist/canopy/v1/generated/validators/topUp.zod.js +10 -8
  344. package/dist/canopy/v1/generated/validators/topUpCreate.zod.d.ts +10 -8
  345. package/dist/canopy/v1/generated/validators/topUpCreate.zod.js +10 -8
  346. package/dist/canopy/v1/generated/validators/topUpList.zod.d.ts +10 -8
  347. package/dist/canopy/v1/generated/validators/topUpList.zod.js +10 -8
  348. package/dist/canopy/v1/generated/validators/totalsResource.zod.d.ts +10 -8
  349. package/dist/canopy/v1/generated/validators/totalsResource.zod.js +10 -8
  350. package/dist/canopy/v1/generated/validators/transaction.zod.d.ts +10 -8
  351. package/dist/canopy/v1/generated/validators/transaction.zod.js +10 -8
  352. package/dist/canopy/v1/generated/validators/transactionList.zod.d.ts +10 -8
  353. package/dist/canopy/v1/generated/validators/transactionList.zod.js +10 -8
  354. package/dist/canopy/v1/generated/validators/transactionType.zod.d.ts +10 -8
  355. package/dist/canopy/v1/generated/validators/transactionType.zod.js +10 -8
  356. package/dist/canopy/v1/generated/validators/updateAPIKeyRequestBody.zod.d.ts +10 -8
  357. package/dist/canopy/v1/generated/validators/updateAPIKeyRequestBody.zod.js +10 -8
  358. package/dist/canopy/v1/generated/validators/usageBucketResource.zod.d.ts +10 -8
  359. package/dist/canopy/v1/generated/validators/usageBucketResource.zod.js +10 -8
  360. package/dist/canopy/v1/generated/validators/usageCharge.zod.d.ts +10 -8
  361. package/dist/canopy/v1/generated/validators/usageCharge.zod.js +10 -8
  362. package/dist/canopy/v1/generated/validators/usageChargeList.zod.d.ts +10 -8
  363. package/dist/canopy/v1/generated/validators/usageChargeList.zod.js +10 -8
  364. package/dist/canopy/v1/generated/validators/usageTimelineResponseBody.zod.d.ts +10 -8
  365. package/dist/canopy/v1/generated/validators/usageTimelineResponseBody.zod.js +10 -8
  366. package/dist/canopy/v1/generated/validators/withdrawal.zod.d.ts +10 -8
  367. package/dist/canopy/v1/generated/validators/withdrawal.zod.js +10 -8
  368. package/dist/canopy/v1/generated/validators/withdrawalAllocation.zod.d.ts +10 -8
  369. package/dist/canopy/v1/generated/validators/withdrawalAllocation.zod.js +10 -8
  370. package/dist/canopy/v1/generated/validators/withdrawalCreate.zod.d.ts +10 -8
  371. package/dist/canopy/v1/generated/validators/withdrawalCreate.zod.js +10 -8
  372. package/dist/canopy/v1/generated/validators/withdrawalItem.zod.d.ts +10 -8
  373. package/dist/canopy/v1/generated/validators/withdrawalItem.zod.js +10 -8
  374. package/dist/canopy/v1/generated/validators/withdrawalItemList.zod.d.ts +10 -8
  375. package/dist/canopy/v1/generated/validators/withdrawalItemList.zod.js +10 -8
  376. package/dist/canopy/v1/generated/validators/withdrawalList.zod.d.ts +10 -8
  377. package/dist/canopy/v1/generated/validators/withdrawalList.zod.js +10 -8
  378. package/dist/canopy/v1/generated/validators/withdrawalPreview.zod.d.ts +10 -8
  379. package/dist/canopy/v1/generated/validators/withdrawalPreview.zod.js +10 -8
  380. package/dist/canopy/v1/generated/validators/withdrawalPreviewItem.zod.d.ts +10 -8
  381. package/dist/canopy/v1/generated/validators/withdrawalPreviewItem.zod.js +10 -8
  382. package/dist/canopy/v1/generated/validators/withdrawalPreviewRequest.zod.d.ts +10 -8
  383. package/dist/canopy/v1/generated/validators/withdrawalPreviewRequest.zod.js +10 -8
  384. package/dist/canopy/v1/generated/validators/withdrawalSource.zod.d.ts +10 -8
  385. package/dist/canopy/v1/generated/validators/withdrawalSource.zod.js +10 -8
  386. package/dist/index.d.ts +0 -1
  387. package/dist/index.js +0 -1
  388. package/dist/routes.d.ts +4 -4
  389. package/dist/routes.js +4 -4
  390. package/package.json +1 -1
  391. package/dist/canopy/inference/v1/generated/functions.d.ts +0 -100
  392. package/dist/canopy/inference/v1/generated/functions.js +0 -100
  393. package/dist/canopy/inference/v1/generated/models.d.ts +0 -74
  394. package/dist/canopy/inference/v1/generated/models.js +0 -4
  395. package/dist/canopy/inference/v1/generated/schemas.zod.d.ts +0 -40
  396. package/dist/canopy/inference/v1/generated/schemas.zod.js +0 -26
  397. package/dist/canopy/inference/v1/generated/validators/chatCompletion.zod.d.ts +0 -11
  398. package/dist/canopy/inference/v1/generated/validators/chatCompletion.zod.js +0 -9
  399. package/dist/canopy/inference/v1/generated/validators/chatCompletionRequest.zod.d.ts +0 -18
  400. package/dist/canopy/inference/v1/generated/validators/chatCompletionRequest.zod.js +0 -16
  401. package/dist/canopy/inference/v1/generated/validators/embeddingRequest.zod.d.ts +0 -20
  402. package/dist/canopy/inference/v1/generated/validators/embeddingRequest.zod.js +0 -17
  403. package/dist/canopy/inference/v1/generated/validators/embeddingResponse.zod.d.ts +0 -11
  404. package/dist/canopy/inference/v1/generated/validators/embeddingResponse.zod.js +0 -9
  405. package/dist/canopy/inference/v1/generated/validators/error.zod.d.ts +0 -18
  406. package/dist/canopy/inference/v1/generated/validators/error.zod.js +0 -16
  407. package/dist/canopy/inference/v1/generated/validators/model.zod.d.ts +0 -23
  408. package/dist/canopy/inference/v1/generated/validators/model.zod.js +0 -21
  409. package/dist/canopy/inference/v1/generated/validators/modelList.zod.d.ts +0 -26
  410. package/dist/canopy/inference/v1/generated/validators/modelList.zod.js +0 -13
  411. package/dist/canopy/inference/v1/index.d.ts +0 -3
  412. package/dist/canopy/inference/v1/index.js +0 -3
package/README.md CHANGED
@@ -18,6 +18,12 @@ npm run generate
18
18
  npm run build
19
19
  ```
20
20
 
21
- `orval.config.mjs` is plain official Orval configuration that recursively discovers OpenAPI entry documents. No custom generator,
22
- output postprocessing or compatibility forwarding layer is used. For local generation, CONTRACTS_DIR
21
+ `orval.config.mjs` is plain official Orval configuration that recursively discovers OpenAPI entry documents. The Canopy hook chooses JSON or Blob for the chat completion response according to Content-Type,
22
+ so JSON and SSE retain their respective response formats. No compatibility forwarding layer is used. For local generation, CONTRACTS_DIR
23
23
  may point to an existing clean checkout of the exact CONTRACTS_REF commit. CI checks out that commit.
24
+
25
+ ## Canopy migration
26
+
27
+ Project inference and management are exported from `canopy` and `@leaflow/sdk/canopy/v1`.
28
+ Replace `canopyInference` and `@leaflow/sdk/canopy/inference/v1` imports with the shared Canopy module.
29
+ The OpenAI-compatible `/v1` paths, management `/api/v1` paths and scoped-token authentication are unchanged.
@@ -2,21 +2,23 @@
2
2
  * Generated by orval 🍺
3
3
  * Do not edit manually.
4
4
  * Leaflow Canopy API
5
- * Management of API keys, together with the models available and the usage recorded against them.
5
+ * Canopy model inference, API keys, model catalogue, service enablement and recorded usage.
6
6
  *
7
- * **These endpoints do not perform inference.** Requests are issued to the forwarding address, which accepts the OpenAI, Anthropic and Gemini request formats:
7
+ * OpenAI-compatible project inference is served on this host at `/v1/chat/completions`,
8
+ * `/v1/embeddings`, `/v1/models` and `/v1/models/{model}`. Use `https://canopy.leaflow.cloud/v1`
9
+ * as the OpenAI SDK base URL. Chat completions support `stream=true` SSE.
8
10
  *
9
- * ```
10
- * POST /v1/chat/completions OpenAI
11
- * POST /v1/messages Anthropic
12
- * POST /v1beta/models/{model}:generateContent Gemini
13
- * ```
11
+ * Management operations use `/api/v1`. The management model catalogue includes pricing;
12
+ * `/v1/models` returns the OpenAI model format with Canopy capabilities and parameter limits.
14
13
  *
15
14
  * ## Authentication
16
15
  *
17
16
  * Every request carries a scoped token; see the `bearerAuth` security scheme.
18
17
  *
19
- * These management endpoints do not accept a Canopy API key. On this userapi host, the OpenAI-compatible `/v1/chat/completions`, `/v1/embeddings`, `/v1/models` and `/v1/models/{model}` endpoints accept the same project token; see the project inference contract. The separate API-key gateway continues to accept Canopy API keys.
18
+ * Management and project inference accept the same verified IAM scoped token. The token is the
19
+ * sole billing project authority; `OpenAI-Project` and historical identity headers cannot
20
+ * override it. These endpoints do not accept a Canopy API key. The separate API-key gateway
21
+ * accepts Canopy API keys and supports OpenAI, Anthropic and Gemini request formats.
20
22
  *
21
23
  * ## Conventions
22
24
  *
@@ -28,13 +30,99 @@
28
30
  * - **The service is enabled before use.** A project enables the model platform once, through `create-service`; the forwarding endpoints refuse its requests until the service is `active`. Requests are then billed under the service's subscription by the tokens they use, at the rates stated in each model's `pricing`.
29
31
  * OpenAPI spec version: 1.0.0
30
32
  */
31
- import type { APIKeyResource, APIKeyUsageListResponseBody, ConflictResponse, CreateAPIKeyRequestBody, CreateServiceRequestBody, CreateServiceResponseBody, CursorPageRequestResource, Error, GetUsageSummaryParams, GetUsageTimelineParams, IssuedAPIKeyResource, LengthAwarePageAPIKeyResource, ListApiKeysParams, ListRequestsParams, ListUsageByApiKeyParams, ListUsageByModelParams, ModelListResponseBody, ModelResource, ModelUsageListResponseBody, Quote, RequestResource, ServiceResource, TotalsResource, UpdateAPIKeyRequestBody, UsageTimelineResponseBody } from "./models.js";
33
+ import type { APIKeyResource, APIKeyUsageListResponseBody, ChatCompletion, ChatCompletionRequest, ConflictResponse, CreateAPIKeyRequestBody, CreateServiceRequestBody, CreateServiceResponseBody, CursorPageRequestResource, EmbeddingRequest, EmbeddingResponse, Error, GetUsageSummaryParams, GetUsageTimelineParams, InferenceError, IssuedAPIKeyResource, LengthAwarePageAPIKeyResource, ListApiKeysParams, ListRequestsParams, ListUsageByApiKeyParams, ListUsageByModelParams, Model, ModelList, ModelListResponseBody, ModelResource, ModelUsageListResponseBody, Quote, RequestResource, ServiceResource, TotalsResource, UpdateAPIKeyRequestBody, UsageTimelineResponseBody } from "./models.js";
32
34
  export type HTTPStatusCode1xx = 100 | 101 | 102 | 103;
33
35
  export type HTTPStatusCode2xx = 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207;
34
36
  export type HTTPStatusCode3xx = 300 | 301 | 302 | 303 | 304 | 305 | 307 | 308;
35
37
  export type HTTPStatusCode4xx = 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 426 | 428 | 429 | 431 | 451;
36
38
  export type HTTPStatusCode5xx = 500 | 501 | 502 | 503 | 504 | 505 | 507 | 511;
37
39
  export type HTTPStatusCodes = HTTPStatusCode1xx | HTTPStatusCode2xx | HTTPStatusCode3xx | HTTPStatusCode4xx | HTTPStatusCode5xx;
40
+ export type createChatCompletionResponse200ApplicationJson = {
41
+ data: ChatCompletion;
42
+ status: 200;
43
+ };
44
+ export type createChatCompletionResponse200TextEventStream = {
45
+ data: Blob;
46
+ status: 200;
47
+ };
48
+ export type createChatCompletionResponseDefault = {
49
+ data: InferenceError;
50
+ status: Exclude<HTTPStatusCodes, 200>;
51
+ };
52
+ export type createChatCompletionResponseSuccess = (createChatCompletionResponse200ApplicationJson | createChatCompletionResponse200TextEventStream) & {
53
+ headers: Headers;
54
+ };
55
+ export type createChatCompletionResponseError = createChatCompletionResponseDefault & {
56
+ headers: Headers;
57
+ };
58
+ export type createChatCompletionResponse = createChatCompletionResponseSuccess | createChatCompletionResponseError;
59
+ export declare const getCreateChatCompletionUrl: () => string;
60
+ /**
61
+ * Authenticated project inference. Billing ownership comes only from the verified project token; no Canopy API key or project header is required.
62
+ * @summary Create a chat completion
63
+ */
64
+ export declare const createChatCompletion: (chatCompletionRequest: ChatCompletionRequest, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<createChatCompletionResponse>;
65
+ export type createEmbeddingsResponse200 = {
66
+ data: EmbeddingResponse;
67
+ status: 200;
68
+ };
69
+ export type createEmbeddingsResponseDefault = {
70
+ data: InferenceError;
71
+ status: Exclude<HTTPStatusCodes, 200>;
72
+ };
73
+ export type createEmbeddingsResponseSuccess = createEmbeddingsResponse200 & {
74
+ headers: Headers;
75
+ };
76
+ export type createEmbeddingsResponseError = createEmbeddingsResponseDefault & {
77
+ headers: Headers;
78
+ };
79
+ export type createEmbeddingsResponse = createEmbeddingsResponseSuccess | createEmbeddingsResponseError;
80
+ export declare const getCreateEmbeddingsUrl: () => string;
81
+ /**
82
+ * Authenticated project inference. Billing ownership comes only from the verified project token; no Canopy API key or project header is required.
83
+ * @summary Create embeddings
84
+ */
85
+ export declare const createEmbeddings: (embeddingRequest: EmbeddingRequest, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<createEmbeddingsResponse>;
86
+ export type listInferenceModelsResponse200 = {
87
+ data: ModelList;
88
+ status: 200;
89
+ };
90
+ export type listInferenceModelsResponseDefault = {
91
+ data: InferenceError;
92
+ status: Exclude<HTTPStatusCodes, 200>;
93
+ };
94
+ export type listInferenceModelsResponseSuccess = listInferenceModelsResponse200 & {
95
+ headers: Headers;
96
+ };
97
+ export type listInferenceModelsResponseError = listInferenceModelsResponseDefault & {
98
+ headers: Headers;
99
+ };
100
+ export type listInferenceModelsResponse = listInferenceModelsResponseSuccess | listInferenceModelsResponseError;
101
+ export declare const getListInferenceModelsUrl: () => string;
102
+ /**
103
+ * @summary List callable models with capabilities and parameter limits
104
+ */
105
+ export declare const listInferenceModels: (options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<listInferenceModelsResponse>;
106
+ export type getInferenceModelResponse200 = {
107
+ data: Model;
108
+ status: 200;
109
+ };
110
+ export type getInferenceModelResponseDefault = {
111
+ data: InferenceError;
112
+ status: Exclude<HTTPStatusCodes, 200>;
113
+ };
114
+ export type getInferenceModelResponseSuccess = getInferenceModelResponse200 & {
115
+ headers: Headers;
116
+ };
117
+ export type getInferenceModelResponseError = getInferenceModelResponseDefault & {
118
+ headers: Headers;
119
+ };
120
+ export type getInferenceModelResponse = getInferenceModelResponseSuccess | getInferenceModelResponseError;
121
+ export declare const getGetInferenceModelUrl: (model: string) => string;
122
+ /**
123
+ * @summary Get a callable model with capabilities and parameter limits
124
+ */
125
+ export declare const getInferenceModel: (model: string, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<getInferenceModelResponse>;
38
126
  export type listApiKeysResponse200 = {
39
127
  data: LengthAwarePageAPIKeyResource;
40
128
  status: 200;
@@ -1,3 +1,103 @@
1
+ export const getCreateChatCompletionUrl = () => {
2
+ return `https://canopy.leaflow.cloud/v1/chat/completions`;
3
+ };
4
+ /**
5
+ * Authenticated project inference. Billing ownership comes only from the verified project token; no Canopy API key or project header is required.
6
+ * @summary Create a chat completion
7
+ */
8
+ export const createChatCompletion = async (chatCompletionRequest, options, fetchFn) => {
9
+ const getHeaders = (h) => {
10
+ if (!h)
11
+ return {};
12
+ if (h instanceof Headers)
13
+ return Object.fromEntries(h.entries());
14
+ if (Symbol.iterator in h) {
15
+ return Object.fromEntries(Array.from(h, (entry) => Array.from(entry)));
16
+ }
17
+ const headers = {};
18
+ for (const [name, value] of Object.entries(h)) {
19
+ if (value !== undefined)
20
+ headers[name] = value;
21
+ }
22
+ return headers;
23
+ };
24
+ const res = await (fetchFn ?? fetch)(getCreateChatCompletionUrl(), {
25
+ ...options,
26
+ method: "POST",
27
+ headers: { "Content-Type": "application/json", ...getHeaders(options?.headers) },
28
+ body: JSON.stringify(chatCompletionRequest),
29
+ });
30
+ const body = [204, 205, 304].includes(res.status)
31
+ ? null
32
+ : res.headers.get("content-type")?.includes("application/json")
33
+ ? JSON.parse(await res.text())
34
+ : await res.blob();
35
+ const data = body;
36
+ return { data, status: res.status, headers: res.headers };
37
+ };
38
+ export const getCreateEmbeddingsUrl = () => {
39
+ return `https://canopy.leaflow.cloud/v1/embeddings`;
40
+ };
41
+ /**
42
+ * Authenticated project inference. Billing ownership comes only from the verified project token; no Canopy API key or project header is required.
43
+ * @summary Create embeddings
44
+ */
45
+ export const createEmbeddings = async (embeddingRequest, options, fetchFn) => {
46
+ const getHeaders = (h) => {
47
+ if (!h)
48
+ return {};
49
+ if (h instanceof Headers)
50
+ return Object.fromEntries(h.entries());
51
+ if (Symbol.iterator in h) {
52
+ return Object.fromEntries(Array.from(h, (entry) => Array.from(entry)));
53
+ }
54
+ const headers = {};
55
+ for (const [name, value] of Object.entries(h)) {
56
+ if (value !== undefined)
57
+ headers[name] = value;
58
+ }
59
+ return headers;
60
+ };
61
+ const res = await (fetchFn ?? fetch)(getCreateEmbeddingsUrl(), {
62
+ ...options,
63
+ method: "POST",
64
+ headers: { "Content-Type": "application/json", ...getHeaders(options?.headers) },
65
+ body: JSON.stringify(embeddingRequest),
66
+ });
67
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
68
+ const data = body ? JSON.parse(body) : {};
69
+ return { data, status: res.status, headers: res.headers };
70
+ };
71
+ export const getListInferenceModelsUrl = () => {
72
+ return `https://canopy.leaflow.cloud/v1/models`;
73
+ };
74
+ /**
75
+ * @summary List callable models with capabilities and parameter limits
76
+ */
77
+ export const listInferenceModels = async (options, fetchFn) => {
78
+ const res = await (fetchFn ?? fetch)(getListInferenceModelsUrl(), {
79
+ ...options,
80
+ method: "GET",
81
+ });
82
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
83
+ const data = body ? JSON.parse(body) : {};
84
+ return { data, status: res.status, headers: res.headers };
85
+ };
86
+ export const getGetInferenceModelUrl = (model) => {
87
+ return `https://canopy.leaflow.cloud/v1/models/${encodeURIComponent(String(model))}`;
88
+ };
89
+ /**
90
+ * @summary Get a callable model with capabilities and parameter limits
91
+ */
92
+ export const getInferenceModel = async (model, options, fetchFn) => {
93
+ const res = await (fetchFn ?? fetch)(getGetInferenceModelUrl(model), {
94
+ ...options,
95
+ method: "GET",
96
+ });
97
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
98
+ const data = body ? JSON.parse(body) : {};
99
+ return { data, status: res.status, headers: res.headers };
100
+ };
1
101
  export const getListApiKeysUrl = (params) => {
2
102
  const normalizedParams = new URLSearchParams();
3
103
  Object.entries(params || {}).forEach(([key, value]) => {
@@ -2,21 +2,23 @@
2
2
  * Generated by orval 🍺
3
3
  * Do not edit manually.
4
4
  * Leaflow Canopy API
5
- * Management of API keys, together with the models available and the usage recorded against them.
5
+ * Canopy model inference, API keys, model catalogue, service enablement and recorded usage.
6
6
  *
7
- * **These endpoints do not perform inference.** Requests are issued to the forwarding address, which accepts the OpenAI, Anthropic and Gemini request formats:
7
+ * OpenAI-compatible project inference is served on this host at `/v1/chat/completions`,
8
+ * `/v1/embeddings`, `/v1/models` and `/v1/models/{model}`. Use `https://canopy.leaflow.cloud/v1`
9
+ * as the OpenAI SDK base URL. Chat completions support `stream=true` SSE.
8
10
  *
9
- * ```
10
- * POST /v1/chat/completions OpenAI
11
- * POST /v1/messages Anthropic
12
- * POST /v1beta/models/{model}:generateContent Gemini
13
- * ```
11
+ * Management operations use `/api/v1`. The management model catalogue includes pricing;
12
+ * `/v1/models` returns the OpenAI model format with Canopy capabilities and parameter limits.
14
13
  *
15
14
  * ## Authentication
16
15
  *
17
16
  * Every request carries a scoped token; see the `bearerAuth` security scheme.
18
17
  *
19
- * These management endpoints do not accept a Canopy API key. On this userapi host, the OpenAI-compatible `/v1/chat/completions`, `/v1/embeddings`, `/v1/models` and `/v1/models/{model}` endpoints accept the same project token; see the project inference contract. The separate API-key gateway continues to accept Canopy API keys.
18
+ * Management and project inference accept the same verified IAM scoped token. The token is the
19
+ * sole billing project authority; `OpenAI-Project` and historical identity headers cannot
20
+ * override it. These endpoints do not accept a Canopy API key. The separate API-key gateway
21
+ * accepts Canopy API keys and supports OpenAI, Anthropic and Gemini request formats.
20
22
  *
21
23
  * ## Conventions
22
24
  *
@@ -28,6 +30,73 @@
28
30
  * - **The service is enabled before use.** A project enables the model platform once, through `create-service`; the forwarding endpoints refuse its requests until the service is `active`. Requests are then billed under the service's subscription by the tokens they use, at the rates stated in each model's `pricing`.
29
31
  * OpenAPI spec version: 1.0.0
30
32
  */
33
+ export type ChatCompletionRequestMessagesItem = {
34
+ [key: string]: unknown;
35
+ };
36
+ export interface ChatCompletionRequest {
37
+ /** @minLength 1 */
38
+ model: string;
39
+ /** @minItems 1 */
40
+ messages: ChatCompletionRequestMessagesItem[];
41
+ stream?: boolean;
42
+ /** @minimum 1 */
43
+ max_tokens?: number;
44
+ /** @minimum 1 */
45
+ max_completion_tokens?: number;
46
+ reasoning_effort?: string;
47
+ [key: string]: unknown;
48
+ }
49
+ export interface ChatCompletion {
50
+ [key: string]: unknown;
51
+ }
52
+ export type EmbeddingRequestEncodingFormat = (typeof EmbeddingRequestEncodingFormat)[keyof typeof EmbeddingRequestEncodingFormat];
53
+ export declare const EmbeddingRequestEncodingFormat: {
54
+ readonly float: "float";
55
+ readonly base64: "base64";
56
+ };
57
+ export interface EmbeddingRequest {
58
+ /** @minLength 1 */
59
+ model: string;
60
+ /** A nonempty string, string array, token integer array, or array of token integer arrays. */
61
+ input: string | unknown[];
62
+ encoding_format?: EmbeddingRequestEncodingFormat;
63
+ /** @minimum 1 */
64
+ dimensions?: number;
65
+ user?: string;
66
+ [key: string]: unknown;
67
+ }
68
+ export interface EmbeddingResponse {
69
+ [key: string]: unknown;
70
+ }
71
+ export interface Model {
72
+ id: string;
73
+ object: "model";
74
+ created: number;
75
+ owned_by: string;
76
+ display_name: string;
77
+ context_length: number;
78
+ max_output_tokens: number;
79
+ supports_vision: boolean;
80
+ supports_tools: boolean;
81
+ supports_reasoning: boolean;
82
+ reasoning_tiers: string[];
83
+ }
84
+ export interface ModelList {
85
+ object: "list";
86
+ data: Model[];
87
+ }
88
+ export type InferenceErrorError = {
89
+ message: string;
90
+ type: string;
91
+ /** @nullable */
92
+ param?: string | null;
93
+ /** @nullable */
94
+ code?: string | null;
95
+ [key: string]: unknown;
96
+ };
97
+ export interface InferenceError {
98
+ error: InferenceErrorError;
99
+ }
31
100
  /**
32
101
  * What a given `code` carries alongside the message. The keys depend on the code,
33
102
  * and a client that does not recognise one ignores it.
@@ -1,3 +1,7 @@
1
+ export const EmbeddingRequestEncodingFormat = {
2
+ float: "float",
3
+ base64: "base64",
4
+ };
1
5
  export const APIKeyResourceStatus = {
2
6
  active: "active",
3
7
  disabled: "disabled",
@@ -2,21 +2,23 @@
2
2
  * Generated by orval 🍺
3
3
  * Do not edit manually.
4
4
  * Leaflow Canopy API
5
- * Management of API keys, together with the models available and the usage recorded against them.
5
+ * Canopy model inference, API keys, model catalogue, service enablement and recorded usage.
6
6
  *
7
- * **These endpoints do not perform inference.** Requests are issued to the forwarding address, which accepts the OpenAI, Anthropic and Gemini request formats:
7
+ * OpenAI-compatible project inference is served on this host at `/v1/chat/completions`,
8
+ * `/v1/embeddings`, `/v1/models` and `/v1/models/{model}`. Use `https://canopy.leaflow.cloud/v1`
9
+ * as the OpenAI SDK base URL. Chat completions support `stream=true` SSE.
8
10
  *
9
- * ```
10
- * POST /v1/chat/completions OpenAI
11
- * POST /v1/messages Anthropic
12
- * POST /v1beta/models/{model}:generateContent Gemini
13
- * ```
11
+ * Management operations use `/api/v1`. The management model catalogue includes pricing;
12
+ * `/v1/models` returns the OpenAI model format with Canopy capabilities and parameter limits.
14
13
  *
15
14
  * ## Authentication
16
15
  *
17
16
  * Every request carries a scoped token; see the `bearerAuth` security scheme.
18
17
  *
19
- * These management endpoints do not accept a Canopy API key. On this userapi host, the OpenAI-compatible `/v1/chat/completions`, `/v1/embeddings`, `/v1/models` and `/v1/models/{model}` endpoints accept the same project token; see the project inference contract. The separate API-key gateway continues to accept Canopy API keys.
18
+ * Management and project inference accept the same verified IAM scoped token. The token is the
19
+ * sole billing project authority; `OpenAI-Project` and historical identity headers cannot
20
+ * override it. These endpoints do not accept a Canopy API key. The separate API-key gateway
21
+ * accepts Canopy API keys and supports OpenAI, Anthropic and Gemini request formats.
20
22
  *
21
23
  * ## Conventions
22
24
  *
@@ -29,6 +31,38 @@
29
31
  * OpenAPI spec version: 1.0.0
30
32
  */
31
33
  import * as zod from "zod";
34
+ /**
35
+ * Authenticated project inference. Billing ownership comes only from the verified project token; no Canopy API key or project header is required.
36
+ * @summary Create a chat completion
37
+ */
38
+ export declare const CreateChatCompletionBody: zod.ZodObject<{
39
+ model: zod.ZodString;
40
+ messages: zod.ZodArray<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
41
+ stream: zod.ZodOptional<zod.ZodBoolean>;
42
+ max_tokens: zod.ZodOptional<zod.ZodInt>;
43
+ max_completion_tokens: zod.ZodOptional<zod.ZodInt>;
44
+ reasoning_effort: zod.ZodOptional<zod.ZodString>;
45
+ }, zod.z.core.$strict>;
46
+ /**
47
+ * Authenticated project inference. Billing ownership comes only from the verified project token; no Canopy API key or project header is required.
48
+ * @summary Create embeddings
49
+ */
50
+ export declare const CreateEmbeddingsBody: zod.ZodObject<{
51
+ model: zod.ZodString;
52
+ input: zod.ZodUnion<readonly [zod.ZodString, zod.ZodArray<zod.ZodUnknown>]>;
53
+ encoding_format: zod.ZodOptional<zod.ZodEnum<{
54
+ base64: "base64";
55
+ float: "float";
56
+ }>>;
57
+ dimensions: zod.ZodOptional<zod.ZodInt>;
58
+ user: zod.ZodOptional<zod.ZodString>;
59
+ }, zod.z.core.$strict>;
60
+ /**
61
+ * @summary Get a callable model with capabilities and parameter limits
62
+ */
63
+ export declare const GetInferenceModelParams: zod.ZodObject<{
64
+ model: zod.ZodString;
65
+ }, zod.z.core.$strict>;
32
66
  /**
33
67
  * @summary List API keys
34
68
  */
@@ -2,21 +2,23 @@
2
2
  * Generated by orval 🍺
3
3
  * Do not edit manually.
4
4
  * Leaflow Canopy API
5
- * Management of API keys, together with the models available and the usage recorded against them.
5
+ * Canopy model inference, API keys, model catalogue, service enablement and recorded usage.
6
6
  *
7
- * **These endpoints do not perform inference.** Requests are issued to the forwarding address, which accepts the OpenAI, Anthropic and Gemini request formats:
7
+ * OpenAI-compatible project inference is served on this host at `/v1/chat/completions`,
8
+ * `/v1/embeddings`, `/v1/models` and `/v1/models/{model}`. Use `https://canopy.leaflow.cloud/v1`
9
+ * as the OpenAI SDK base URL. Chat completions support `stream=true` SSE.
8
10
  *
9
- * ```
10
- * POST /v1/chat/completions OpenAI
11
- * POST /v1/messages Anthropic
12
- * POST /v1beta/models/{model}:generateContent Gemini
13
- * ```
11
+ * Management operations use `/api/v1`. The management model catalogue includes pricing;
12
+ * `/v1/models` returns the OpenAI model format with Canopy capabilities and parameter limits.
14
13
  *
15
14
  * ## Authentication
16
15
  *
17
16
  * Every request carries a scoped token; see the `bearerAuth` security scheme.
18
17
  *
19
- * These management endpoints do not accept a Canopy API key. On this userapi host, the OpenAI-compatible `/v1/chat/completions`, `/v1/embeddings`, `/v1/models` and `/v1/models/{model}` endpoints accept the same project token; see the project inference contract. The separate API-key gateway continues to accept Canopy API keys.
18
+ * Management and project inference accept the same verified IAM scoped token. The token is the
19
+ * sole billing project authority; `OpenAI-Project` and historical identity headers cannot
20
+ * override it. These endpoints do not accept a Canopy API key. The separate API-key gateway
21
+ * accepts Canopy API keys and supports OpenAI, Anthropic and Gemini request formats.
20
22
  *
21
23
  * ## Conventions
22
24
  *
@@ -29,9 +31,27 @@
29
31
  * OpenAPI spec version: 1.0.0
30
32
  */
31
33
  import * as zod from "zod";
34
+ import { ChatCompletionRequest } from "./validators/chatCompletionRequest.zod.js";
32
35
  import { CreateAPIKeyRequestBody } from "./validators/createAPIKeyRequestBody.zod.js";
33
36
  import { CreateServiceRequestBody } from "./validators/createServiceRequestBody.zod.js";
37
+ import { EmbeddingRequest } from "./validators/embeddingRequest.zod.js";
34
38
  import { UpdateAPIKeyRequestBody } from "./validators/updateAPIKeyRequestBody.zod.js";
39
+ /**
40
+ * Authenticated project inference. Billing ownership comes only from the verified project token; no Canopy API key or project header is required.
41
+ * @summary Create a chat completion
42
+ */
43
+ export const CreateChatCompletionBody = ChatCompletionRequest;
44
+ /**
45
+ * Authenticated project inference. Billing ownership comes only from the verified project token; no Canopy API key or project header is required.
46
+ * @summary Create embeddings
47
+ */
48
+ export const CreateEmbeddingsBody = EmbeddingRequest;
49
+ /**
50
+ * @summary Get a callable model with capabilities and parameter limits
51
+ */
52
+ export const GetInferenceModelParams = zod.strictObject({
53
+ model: zod.string(),
54
+ });
35
55
  /**
36
56
  * @summary List API keys
37
57
  */
@@ -2,21 +2,23 @@
2
2
  * Generated by orval 🍺
3
3
  * Do not edit manually.
4
4
  * Leaflow Canopy API
5
- * Management of API keys, together with the models available and the usage recorded against them.
5
+ * Canopy model inference, API keys, model catalogue, service enablement and recorded usage.
6
6
  *
7
- * **These endpoints do not perform inference.** Requests are issued to the forwarding address, which accepts the OpenAI, Anthropic and Gemini request formats:
7
+ * OpenAI-compatible project inference is served on this host at `/v1/chat/completions`,
8
+ * `/v1/embeddings`, `/v1/models` and `/v1/models/{model}`. Use `https://canopy.leaflow.cloud/v1`
9
+ * as the OpenAI SDK base URL. Chat completions support `stream=true` SSE.
8
10
  *
9
- * ```
10
- * POST /v1/chat/completions OpenAI
11
- * POST /v1/messages Anthropic
12
- * POST /v1beta/models/{model}:generateContent Gemini
13
- * ```
11
+ * Management operations use `/api/v1`. The management model catalogue includes pricing;
12
+ * `/v1/models` returns the OpenAI model format with Canopy capabilities and parameter limits.
14
13
  *
15
14
  * ## Authentication
16
15
  *
17
16
  * Every request carries a scoped token; see the `bearerAuth` security scheme.
18
17
  *
19
- * These management endpoints do not accept a Canopy API key. On this userapi host, the OpenAI-compatible `/v1/chat/completions`, `/v1/embeddings`, `/v1/models` and `/v1/models/{model}` endpoints accept the same project token; see the project inference contract. The separate API-key gateway continues to accept Canopy API keys.
18
+ * Management and project inference accept the same verified IAM scoped token. The token is the
19
+ * sole billing project authority; `OpenAI-Project` and historical identity headers cannot
20
+ * override it. These endpoints do not accept a Canopy API key. The separate API-key gateway
21
+ * accepts Canopy API keys and supports OpenAI, Anthropic and Gemini request formats.
20
22
  *
21
23
  * ## Conventions
22
24
  *
@@ -2,21 +2,23 @@
2
2
  * Generated by orval 🍺
3
3
  * Do not edit manually.
4
4
  * Leaflow Canopy API
5
- * Management of API keys, together with the models available and the usage recorded against them.
5
+ * Canopy model inference, API keys, model catalogue, service enablement and recorded usage.
6
6
  *
7
- * **These endpoints do not perform inference.** Requests are issued to the forwarding address, which accepts the OpenAI, Anthropic and Gemini request formats:
7
+ * OpenAI-compatible project inference is served on this host at `/v1/chat/completions`,
8
+ * `/v1/embeddings`, `/v1/models` and `/v1/models/{model}`. Use `https://canopy.leaflow.cloud/v1`
9
+ * as the OpenAI SDK base URL. Chat completions support `stream=true` SSE.
8
10
  *
9
- * ```
10
- * POST /v1/chat/completions OpenAI
11
- * POST /v1/messages Anthropic
12
- * POST /v1beta/models/{model}:generateContent Gemini
13
- * ```
11
+ * Management operations use `/api/v1`. The management model catalogue includes pricing;
12
+ * `/v1/models` returns the OpenAI model format with Canopy capabilities and parameter limits.
14
13
  *
15
14
  * ## Authentication
16
15
  *
17
16
  * Every request carries a scoped token; see the `bearerAuth` security scheme.
18
17
  *
19
- * These management endpoints do not accept a Canopy API key. On this userapi host, the OpenAI-compatible `/v1/chat/completions`, `/v1/embeddings`, `/v1/models` and `/v1/models/{model}` endpoints accept the same project token; see the project inference contract. The separate API-key gateway continues to accept Canopy API keys.
18
+ * Management and project inference accept the same verified IAM scoped token. The token is the
19
+ * sole billing project authority; `OpenAI-Project` and historical identity headers cannot
20
+ * override it. These endpoints do not accept a Canopy API key. The separate API-key gateway
21
+ * accepts Canopy API keys and supports OpenAI, Anthropic and Gemini request formats.
20
22
  *
21
23
  * ## Conventions
22
24
  *
@@ -2,21 +2,23 @@
2
2
  * Generated by orval 🍺
3
3
  * Do not edit manually.
4
4
  * Leaflow Canopy API
5
- * Management of API keys, together with the models available and the usage recorded against them.
5
+ * Canopy model inference, API keys, model catalogue, service enablement and recorded usage.
6
6
  *
7
- * **These endpoints do not perform inference.** Requests are issued to the forwarding address, which accepts the OpenAI, Anthropic and Gemini request formats:
7
+ * OpenAI-compatible project inference is served on this host at `/v1/chat/completions`,
8
+ * `/v1/embeddings`, `/v1/models` and `/v1/models/{model}`. Use `https://canopy.leaflow.cloud/v1`
9
+ * as the OpenAI SDK base URL. Chat completions support `stream=true` SSE.
8
10
  *
9
- * ```
10
- * POST /v1/chat/completions OpenAI
11
- * POST /v1/messages Anthropic
12
- * POST /v1beta/models/{model}:generateContent Gemini
13
- * ```
11
+ * Management operations use `/api/v1`. The management model catalogue includes pricing;
12
+ * `/v1/models` returns the OpenAI model format with Canopy capabilities and parameter limits.
14
13
  *
15
14
  * ## Authentication
16
15
  *
17
16
  * Every request carries a scoped token; see the `bearerAuth` security scheme.
18
17
  *
19
- * These management endpoints do not accept a Canopy API key. On this userapi host, the OpenAI-compatible `/v1/chat/completions`, `/v1/embeddings`, `/v1/models` and `/v1/models/{model}` endpoints accept the same project token; see the project inference contract. The separate API-key gateway continues to accept Canopy API keys.
18
+ * Management and project inference accept the same verified IAM scoped token. The token is the
19
+ * sole billing project authority; `OpenAI-Project` and historical identity headers cannot
20
+ * override it. These endpoints do not accept a Canopy API key. The separate API-key gateway
21
+ * accepts Canopy API keys and supports OpenAI, Anthropic and Gemini request formats.
20
22
  *
21
23
  * ## Conventions
22
24
  *
@@ -2,21 +2,23 @@
2
2
  * Generated by orval 🍺
3
3
  * Do not edit manually.
4
4
  * Leaflow Canopy API
5
- * Management of API keys, together with the models available and the usage recorded against them.
5
+ * Canopy model inference, API keys, model catalogue, service enablement and recorded usage.
6
6
  *
7
- * **These endpoints do not perform inference.** Requests are issued to the forwarding address, which accepts the OpenAI, Anthropic and Gemini request formats:
7
+ * OpenAI-compatible project inference is served on this host at `/v1/chat/completions`,
8
+ * `/v1/embeddings`, `/v1/models` and `/v1/models/{model}`. Use `https://canopy.leaflow.cloud/v1`
9
+ * as the OpenAI SDK base URL. Chat completions support `stream=true` SSE.
8
10
  *
9
- * ```
10
- * POST /v1/chat/completions OpenAI
11
- * POST /v1/messages Anthropic
12
- * POST /v1beta/models/{model}:generateContent Gemini
13
- * ```
11
+ * Management operations use `/api/v1`. The management model catalogue includes pricing;
12
+ * `/v1/models` returns the OpenAI model format with Canopy capabilities and parameter limits.
14
13
  *
15
14
  * ## Authentication
16
15
  *
17
16
  * Every request carries a scoped token; see the `bearerAuth` security scheme.
18
17
  *
19
- * These management endpoints do not accept a Canopy API key. On this userapi host, the OpenAI-compatible `/v1/chat/completions`, `/v1/embeddings`, `/v1/models` and `/v1/models/{model}` endpoints accept the same project token; see the project inference contract. The separate API-key gateway continues to accept Canopy API keys.
18
+ * Management and project inference accept the same verified IAM scoped token. The token is the
19
+ * sole billing project authority; `OpenAI-Project` and historical identity headers cannot
20
+ * override it. These endpoints do not accept a Canopy API key. The separate API-key gateway
21
+ * accepts Canopy API keys and supports OpenAI, Anthropic and Gemini request formats.
20
22
  *
21
23
  * ## Conventions
22
24
  *