tapimo 0.2.0 → 0.4.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 (362) hide show
  1. package/README.md +36 -8
  2. package/dist/ApiKey.d.ts +1 -0
  3. package/dist/ApiKey.d.ts.map +1 -1
  4. package/dist/ApiKey.js +5 -2
  5. package/dist/ApiKey.js.map +1 -1
  6. package/dist/ApiKeys.d.ts +28 -1
  7. package/dist/ApiKeys.d.ts.map +1 -1
  8. package/dist/ApiKeys.js +34 -1
  9. package/dist/ApiKeys.js.map +1 -1
  10. package/dist/App.d.ts +7532 -4850
  11. package/dist/App.d.ts.map +1 -1
  12. package/dist/App.js +11 -3
  13. package/dist/App.js.map +1 -1
  14. package/dist/Scope.d.ts +11 -2
  15. package/dist/Scope.d.ts.map +1 -1
  16. package/dist/Scope.js +14 -3
  17. package/dist/Scope.js.map +1 -1
  18. package/dist/admin/App.d.ts +63 -53
  19. package/dist/admin/App.d.ts.map +1 -1
  20. package/dist/admin/apps/api-keys.d.ts +7 -0
  21. package/dist/admin/apps/api-keys.d.ts.map +1 -1
  22. package/dist/admin/apps/scopes.d.ts +8 -0
  23. package/dist/admin/apps/scopes.d.ts.map +1 -1
  24. package/dist/admin/apps/scopes.js +3 -0
  25. package/dist/admin/apps/scopes.js.map +1 -1
  26. package/dist/admin/apps/verified-tokens.d.ts +57 -57
  27. package/dist/admin/ui.generated.d.ts +1 -1
  28. package/dist/admin/ui.generated.js +13 -13
  29. package/dist/admin/ui.generated.js.map +1 -1
  30. package/dist/analytics/Analytics.d.ts +151 -0
  31. package/dist/analytics/Analytics.d.ts.map +1 -0
  32. package/dist/analytics/Analytics.js +212 -0
  33. package/dist/analytics/Analytics.js.map +1 -0
  34. package/dist/analytics/tables/requestEvents.d.ts +215 -0
  35. package/dist/analytics/tables/requestEvents.d.ts.map +1 -0
  36. package/dist/analytics/tables/requestEvents.js +264 -0
  37. package/dist/analytics/tables/requestEvents.js.map +1 -0
  38. package/dist/apps/data/App.d.ts +1049 -624
  39. package/dist/apps/data/App.d.ts.map +1 -1
  40. package/dist/apps/data/App.js +36 -0
  41. package/dist/apps/data/App.js.map +1 -1
  42. package/dist/apps/data/FundingRouteProviders.d.ts +54 -0
  43. package/dist/apps/data/FundingRouteProviders.d.ts.map +1 -0
  44. package/dist/apps/data/FundingRouteProviders.js +355 -0
  45. package/dist/apps/data/FundingRouteProviders.js.map +1 -0
  46. package/dist/apps/data/index.d.ts +1 -0
  47. package/dist/apps/data/index.d.ts.map +1 -1
  48. package/dist/apps/data/index.js +1 -0
  49. package/dist/apps/data/index.js.map +1 -1
  50. package/dist/apps/data/routes/balances.d.ts +45 -45
  51. package/dist/apps/data/routes/coingecko.d.ts +176 -176
  52. package/dist/apps/data/routes/exchanges.d.ts +455 -455
  53. package/dist/apps/data/routes/fee-amm.d.ts +101 -101
  54. package/dist/apps/data/routes/funding.d.ts +843 -0
  55. package/dist/apps/data/routes/funding.d.ts.map +1 -0
  56. package/dist/apps/data/routes/funding.js +443 -0
  57. package/dist/apps/data/routes/funding.js.map +1 -0
  58. package/dist/apps/data/routes/indexer.d.ts +5 -5
  59. package/dist/apps/data/routes/receipts.d.ts.map +1 -1
  60. package/dist/apps/data/routes/receipts.js +2 -8
  61. package/dist/apps/data/routes/receipts.js.map +1 -1
  62. package/dist/apps/data/routes/rpc.d.ts +29 -36
  63. package/dist/apps/data/routes/rpc.d.ts.map +1 -1
  64. package/dist/apps/data/routes/rpc.js +29 -1
  65. package/dist/apps/data/routes/rpc.js.map +1 -1
  66. package/dist/apps/data/routes/tokenlist.d.ts +36 -36
  67. package/dist/apps/data/routes/transfers.d.ts +56 -56
  68. package/dist/apps/data/routes/verified-tokens.d.ts +36 -36
  69. package/dist/apps/data/routes/webhooks.d.ts +45 -45
  70. package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
  71. package/dist/apps/data/routes/webhooks.js +8 -8
  72. package/dist/apps/data/routes/webhooks.js.map +1 -1
  73. package/dist/apps/docs/App.d.ts +5 -3
  74. package/dist/apps/docs/App.d.ts.map +1 -1
  75. package/dist/apps/docs/App.js +28 -96
  76. package/dist/apps/docs/App.js.map +1 -1
  77. package/dist/apps/docs/reference.d.ts +21 -0
  78. package/dist/apps/docs/reference.d.ts.map +1 -0
  79. package/dist/apps/docs/reference.js +112 -0
  80. package/dist/apps/docs/reference.js.map +1 -0
  81. package/dist/apps/index.d.ts +3 -2
  82. package/dist/apps/index.d.ts.map +1 -1
  83. package/dist/apps/index.js +3 -2
  84. package/dist/apps/index.js.map +1 -1
  85. package/dist/apps/{platform → management}/App.d.ts +3015 -738
  86. package/dist/apps/management/App.d.ts.map +1 -0
  87. package/dist/apps/{platform → management}/App.js +20 -10
  88. package/dist/apps/management/App.js.map +1 -0
  89. package/dist/apps/management/Billing.d.ts +279 -0
  90. package/dist/apps/management/Billing.d.ts.map +1 -0
  91. package/dist/apps/management/Billing.js +477 -0
  92. package/dist/apps/management/Billing.js.map +1 -0
  93. package/dist/apps/management/index.d.ts +3 -0
  94. package/dist/apps/management/index.d.ts.map +1 -0
  95. package/dist/apps/management/index.js +3 -0
  96. package/dist/apps/management/index.js.map +1 -0
  97. package/dist/apps/{platform → management}/routes/api-keys.d.ts +341 -49
  98. package/dist/apps/management/routes/api-keys.d.ts.map +1 -0
  99. package/dist/apps/{platform → management}/routes/api-keys.js +116 -14
  100. package/dist/apps/management/routes/api-keys.js.map +1 -0
  101. package/dist/apps/management/routes/billing.d.ts +1520 -0
  102. package/dist/apps/management/routes/billing.d.ts.map +1 -0
  103. package/dist/apps/management/routes/billing.js +795 -0
  104. package/dist/apps/management/routes/billing.js.map +1 -0
  105. package/dist/apps/{platform → management}/routes/invitations.d.ts +202 -84
  106. package/dist/apps/management/routes/invitations.d.ts.map +1 -0
  107. package/dist/apps/{platform → management}/routes/invitations.js +59 -1
  108. package/dist/apps/management/routes/invitations.js.map +1 -0
  109. package/dist/apps/{platform → management}/routes/me.d.ts +17 -17
  110. package/dist/apps/management/routes/me.d.ts.map +1 -0
  111. package/dist/apps/management/routes/me.js.map +1 -0
  112. package/dist/apps/management/routes/members.d.ts.map +1 -0
  113. package/dist/apps/management/routes/members.js.map +1 -0
  114. package/dist/apps/{platform → management}/routes/orgs.d.ts +50 -36
  115. package/dist/apps/management/routes/orgs.d.ts.map +1 -0
  116. package/dist/apps/{platform → management}/routes/orgs.js +14 -3
  117. package/dist/apps/management/routes/orgs.js.map +1 -0
  118. package/dist/apps/{platform → management}/routes/projects.d.ts +97 -97
  119. package/dist/apps/{platform → management}/routes/projects.d.ts.map +1 -1
  120. package/dist/apps/management/routes/projects.js.map +1 -0
  121. package/dist/apps/management/routes/scopes.d.ts +107 -0
  122. package/dist/apps/management/routes/scopes.d.ts.map +1 -0
  123. package/dist/apps/management/routes/scopes.js +66 -0
  124. package/dist/apps/management/routes/scopes.js.map +1 -0
  125. package/dist/apps/management/routes/usage.d.ts +588 -0
  126. package/dist/apps/management/routes/usage.d.ts.map +1 -0
  127. package/dist/apps/management/routes/usage.js +391 -0
  128. package/dist/apps/management/routes/usage.js.map +1 -0
  129. package/dist/apps/mcp.d.ts +76 -0
  130. package/dist/apps/mcp.d.ts.map +1 -0
  131. package/dist/apps/mcp.js +188 -0
  132. package/dist/apps/mcp.js.map +1 -0
  133. package/dist/apps/relay/App.d.ts +4 -1
  134. package/dist/apps/relay/App.d.ts.map +1 -1
  135. package/dist/apps/relay/App.js +118 -10
  136. package/dist/apps/relay/App.js.map +1 -1
  137. package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
  138. package/dist/apps/relay/Sponsorships.js +2 -1
  139. package/dist/apps/relay/Sponsorships.js.map +1 -1
  140. package/dist/cli/Cli.d.ts +8 -1
  141. package/dist/cli/Cli.d.ts.map +1 -1
  142. package/dist/cli/Cli.js +11 -3
  143. package/dist/cli/Cli.js.map +1 -1
  144. package/dist/cli/commands/admin.d.ts +4 -0
  145. package/dist/cli/commands/admin.d.ts.map +1 -1
  146. package/dist/cli/commands/admin.js +80 -1
  147. package/dist/cli/commands/admin.js.map +1 -1
  148. package/dist/db/Db.d.ts +7 -0
  149. package/dist/db/Db.d.ts.map +1 -1
  150. package/dist/db/Db.js +126 -0
  151. package/dist/db/Db.js.map +1 -1
  152. package/dist/db/Schema.d.ts +79 -0
  153. package/dist/db/Schema.d.ts.map +1 -1
  154. package/dist/db/Schema.js +88 -2
  155. package/dist/db/Schema.js.map +1 -1
  156. package/dist/db/tables/billingSettings.d.ts +55 -0
  157. package/dist/db/tables/billingSettings.d.ts.map +1 -0
  158. package/dist/db/tables/billingSettings.js +70 -0
  159. package/dist/db/tables/billingSettings.js.map +1 -0
  160. package/dist/db/tables/invitations.js +2 -2
  161. package/dist/db/tables/invitations.js.map +1 -1
  162. package/dist/db/tables/organizations.d.ts +6 -2
  163. package/dist/db/tables/organizations.d.ts.map +1 -1
  164. package/dist/db/tables/organizations.js +10 -4
  165. package/dist/db/tables/organizations.js.map +1 -1
  166. package/dist/db/tables/projects.js +2 -2
  167. package/dist/db/tables/projects.js.map +1 -1
  168. package/dist/db/tables/requestUsage.d.ts +121 -0
  169. package/dist/db/tables/requestUsage.d.ts.map +1 -0
  170. package/dist/db/tables/requestUsage.js +150 -0
  171. package/dist/db/tables/requestUsage.js.map +1 -0
  172. package/dist/db/tables/sponsoredTransactions.d.ts +119 -0
  173. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
  174. package/dist/db/tables/sponsoredTransactions.js +155 -2
  175. package/dist/db/tables/sponsoredTransactions.js.map +1 -1
  176. package/dist/db/tables/stripeCustomers.d.ts +81 -0
  177. package/dist/db/tables/stripeCustomers.d.ts.map +1 -0
  178. package/dist/db/tables/stripeCustomers.js +120 -0
  179. package/dist/db/tables/stripeCustomers.js.map +1 -0
  180. package/dist/db/tables/users.js +2 -2
  181. package/dist/db/tables/users.js.map +1 -1
  182. package/dist/handlers/internal/sponsorship.d.ts +5 -2
  183. package/dist/handlers/internal/sponsorship.d.ts.map +1 -1
  184. package/dist/handlers/internal/sponsorship.js +19 -5
  185. package/dist/handlers/internal/sponsorship.js.map +1 -1
  186. package/dist/handlers/internal/utils.d.ts +10 -3
  187. package/dist/handlers/internal/utils.d.ts.map +1 -1
  188. package/dist/handlers/internal/utils.js +14 -6
  189. package/dist/handlers/internal/utils.js.map +1 -1
  190. package/dist/index.d.ts +1 -0
  191. package/dist/index.d.ts.map +1 -1
  192. package/dist/index.js +1 -0
  193. package/dist/index.js.map +1 -1
  194. package/dist/internal/Auth.d.ts +18 -4
  195. package/dist/internal/Auth.d.ts.map +1 -1
  196. package/dist/internal/Auth.js +149 -77
  197. package/dist/internal/Auth.js.map +1 -1
  198. package/dist/internal/Cache.d.ts.map +1 -1
  199. package/dist/internal/Cache.js +4 -1
  200. package/dist/internal/Cache.js.map +1 -1
  201. package/dist/internal/EdgeCache.d.ts +10 -0
  202. package/dist/internal/EdgeCache.d.ts.map +1 -1
  203. package/dist/internal/EdgeCache.js +39 -8
  204. package/dist/internal/EdgeCache.js.map +1 -1
  205. package/dist/internal/Fees.d.ts +27 -0
  206. package/dist/internal/Fees.d.ts.map +1 -0
  207. package/dist/internal/Fees.js +48 -0
  208. package/dist/internal/Fees.js.map +1 -0
  209. package/dist/internal/FundingRoutes.d.ts +915 -0
  210. package/dist/internal/FundingRoutes.d.ts.map +1 -0
  211. package/dist/internal/FundingRoutes.js +625 -0
  212. package/dist/internal/FundingRoutes.js.map +1 -0
  213. package/dist/internal/Id.d.ts +15 -0
  214. package/dist/internal/Id.d.ts.map +1 -0
  215. package/dist/internal/Id.js +22 -0
  216. package/dist/internal/Id.js.map +1 -0
  217. package/dist/internal/Log.d.ts +2 -0
  218. package/dist/internal/Log.d.ts.map +1 -1
  219. package/dist/internal/Log.js +3 -0
  220. package/dist/internal/Log.js.map +1 -1
  221. package/dist/internal/OpenApi.d.ts +10 -1
  222. package/dist/internal/OpenApi.d.ts.map +1 -1
  223. package/dist/internal/OpenApi.js +8 -1
  224. package/dist/internal/OpenApi.js.map +1 -1
  225. package/dist/internal/RateLimit.d.ts +25 -0
  226. package/dist/internal/RateLimit.d.ts.map +1 -1
  227. package/dist/internal/RateLimit.js +51 -0
  228. package/dist/internal/RateLimit.js.map +1 -1
  229. package/dist/internal/Response.d.ts +1 -1
  230. package/dist/internal/Response.d.ts.map +1 -1
  231. package/dist/internal/Schema.d.ts +8 -0
  232. package/dist/internal/Schema.d.ts.map +1 -1
  233. package/dist/internal/Schema.js +7 -0
  234. package/dist/internal/Schema.js.map +1 -1
  235. package/dist/internal/Webhooks.d.ts.map +1 -1
  236. package/dist/internal/Webhooks.js +3 -3
  237. package/dist/internal/Webhooks.js.map +1 -1
  238. package/package.json +8 -7
  239. package/src/ApiKey.ts +9 -2
  240. package/src/ApiKeys.test.ts +51 -0
  241. package/src/ApiKeys.ts +50 -1
  242. package/src/App.test.ts +33 -86718
  243. package/src/App.ts +26 -8
  244. package/src/Client.test-d.ts +353 -2
  245. package/src/Scope.ts +16 -3
  246. package/src/admin/apps/scopes.test.ts +6 -0
  247. package/src/admin/apps/scopes.ts +3 -0
  248. package/src/admin/ui/src/components/Page.tsx +2 -3
  249. package/src/admin/ui/src/routes/__root.tsx +2 -2
  250. package/src/admin/ui/src/routes/api-keys.tsx +2 -2
  251. package/src/admin/ui.generated.ts +13 -13
  252. package/src/analytics/Analytics.test.ts +527 -0
  253. package/src/analytics/Analytics.ts +318 -0
  254. package/src/analytics/tables/requestEvents.ts +523 -0
  255. package/src/apps/composition.test.ts +26 -13
  256. package/src/apps/data/App.test.ts +72 -0
  257. package/src/apps/data/App.ts +37 -0
  258. package/src/apps/data/FundingRouteProviders.test.ts +281 -0
  259. package/src/apps/data/FundingRouteProviders.ts +459 -0
  260. package/src/apps/data/index.ts +1 -0
  261. package/src/apps/data/routes/funding.test.ts +314 -0
  262. package/src/apps/data/routes/funding.ts +698 -0
  263. package/src/apps/data/routes/receipts.ts +2 -9
  264. package/src/apps/data/routes/rpc.test.ts +78 -2
  265. package/src/apps/data/routes/rpc.ts +31 -1
  266. package/src/apps/data/routes/webhooks.test.ts +1 -1
  267. package/src/apps/data/routes/webhooks.ts +11 -8
  268. package/src/apps/docs/App.ts +30 -101
  269. package/src/apps/docs/reference.ts +132 -0
  270. package/src/apps/index.ts +3 -2
  271. package/src/apps/{platform → management}/App.ts +56 -17
  272. package/src/apps/management/Billing.test.ts +530 -0
  273. package/src/apps/management/Billing.ts +682 -0
  274. package/src/apps/management/index.ts +2 -0
  275. package/src/apps/{platform → management}/routes/api-keys.test.ts +172 -9
  276. package/src/apps/{platform → management}/routes/api-keys.ts +137 -21
  277. package/src/apps/management/routes/billing.test.ts +1100 -0
  278. package/src/apps/management/routes/billing.ts +966 -0
  279. package/src/apps/{platform → management}/routes/invitations.test.ts +55 -7
  280. package/src/apps/{platform → management}/routes/invitations.ts +69 -1
  281. package/src/apps/management/routes/me.test.ts +351 -0
  282. package/src/apps/{platform → management}/routes/orgs.ts +26 -4
  283. package/src/apps/management/routes/scopes.test.ts +29 -0
  284. package/src/apps/management/routes/scopes.ts +85 -0
  285. package/src/apps/management/routes/usage.test.ts +422 -0
  286. package/src/apps/management/routes/usage.ts +527 -0
  287. package/src/apps/mcp.test.ts +206 -0
  288. package/src/apps/mcp.ts +250 -0
  289. package/src/apps/relay/App.test.ts +457 -8
  290. package/src/apps/relay/App.ts +120 -12
  291. package/src/apps/relay/Sponsorships.test.ts +1 -1
  292. package/src/apps/relay/Sponsorships.ts +2 -1
  293. package/src/cli/Cli.test.ts +25 -2
  294. package/src/cli/Cli.ts +17 -2
  295. package/src/cli/commands/admin.test.ts +83 -0
  296. package/src/cli/commands/admin.ts +89 -1
  297. package/src/db/Db.ts +137 -0
  298. package/src/db/Schema.ts +104 -2
  299. package/src/db/tables/billingSettings.test.ts +87 -0
  300. package/src/db/tables/billingSettings.ts +108 -0
  301. package/src/db/tables/invitations.ts +2 -2
  302. package/src/db/tables/organizations.test.ts +1 -1
  303. package/src/db/tables/organizations.ts +15 -5
  304. package/src/db/tables/projects.ts +2 -2
  305. package/src/db/tables/requestUsage.ts +231 -0
  306. package/src/db/tables/sponsoredTransactions.test.ts +108 -1
  307. package/src/db/tables/sponsoredTransactions.ts +230 -2
  308. package/src/db/tables/stripeCustomers.test.ts +109 -0
  309. package/src/db/tables/stripeCustomers.ts +162 -0
  310. package/src/db/tables/users.ts +2 -2
  311. package/src/handlers/internal/sponsorship.ts +34 -7
  312. package/src/handlers/internal/utils.ts +19 -7
  313. package/src/index.ts +1 -0
  314. package/src/internal/Auth.test.ts +175 -25
  315. package/src/internal/Auth.ts +176 -87
  316. package/src/internal/Cache.ts +5 -1
  317. package/src/internal/EdgeCache.test.ts +27 -4
  318. package/src/internal/EdgeCache.ts +47 -9
  319. package/src/internal/Fees.test.ts +32 -0
  320. package/src/internal/Fees.ts +51 -0
  321. package/src/internal/FundingRoutes.test.ts +213 -0
  322. package/src/internal/FundingRoutes.ts +898 -0
  323. package/src/internal/Id.test.ts +17 -0
  324. package/src/internal/Id.ts +24 -0
  325. package/src/internal/Log.test.ts +1 -0
  326. package/src/internal/Log.ts +5 -0
  327. package/src/internal/OpenApi.ts +12 -1
  328. package/src/internal/RateLimit.test.ts +84 -0
  329. package/src/internal/RateLimit.ts +70 -0
  330. package/src/internal/Response.ts +1 -1
  331. package/src/internal/Schema.ts +8 -0
  332. package/src/internal/Webhooks.test.ts +3 -3
  333. package/src/internal/Webhooks.ts +3 -3
  334. package/dist/apps/platform/App.d.ts.map +0 -1
  335. package/dist/apps/platform/App.js.map +0 -1
  336. package/dist/apps/platform/index.d.ts +0 -2
  337. package/dist/apps/platform/index.d.ts.map +0 -1
  338. package/dist/apps/platform/index.js +0 -2
  339. package/dist/apps/platform/index.js.map +0 -1
  340. package/dist/apps/platform/routes/api-keys.d.ts.map +0 -1
  341. package/dist/apps/platform/routes/api-keys.js.map +0 -1
  342. package/dist/apps/platform/routes/invitations.d.ts.map +0 -1
  343. package/dist/apps/platform/routes/invitations.js.map +0 -1
  344. package/dist/apps/platform/routes/me.d.ts.map +0 -1
  345. package/dist/apps/platform/routes/me.js.map +0 -1
  346. package/dist/apps/platform/routes/members.d.ts.map +0 -1
  347. package/dist/apps/platform/routes/members.js.map +0 -1
  348. package/dist/apps/platform/routes/orgs.d.ts.map +0 -1
  349. package/dist/apps/platform/routes/orgs.js.map +0 -1
  350. package/dist/apps/platform/routes/projects.js.map +0 -1
  351. package/src/apps/platform/index.ts +0 -1
  352. package/src/apps/platform/routes/me.test.ts +0 -121
  353. /package/dist/apps/{platform → management}/routes/me.js +0 -0
  354. /package/dist/apps/{platform → management}/routes/members.d.ts +0 -0
  355. /package/dist/apps/{platform → management}/routes/members.js +0 -0
  356. /package/dist/apps/{platform → management}/routes/projects.js +0 -0
  357. /package/src/apps/{platform → management}/routes/me.ts +0 -0
  358. /package/src/apps/{platform → management}/routes/members.test.ts +0 -0
  359. /package/src/apps/{platform → management}/routes/members.ts +0 -0
  360. /package/src/apps/{platform → management}/routes/orgs.test.ts +0 -0
  361. /package/src/apps/{platform → management}/routes/projects.test.ts +0 -0
  362. /package/src/apps/{platform → management}/routes/projects.ts +0 -0
@@ -0,0 +1,188 @@
1
+ import { Hono } from 'hono';
2
+ import { Cli as incur_Cli } from 'incur';
3
+ import * as z from 'zod/mini';
4
+ import * as Auth from '../internal/Auth.js';
5
+ import * as OpenApi from '../internal/OpenApi.js';
6
+ import * as Metadata from './metadata.js';
7
+ /** Document tag group whose operations surface as MCP tools (the data domain). */
8
+ const tagGroup = 'Data API';
9
+ /** Tags inside the group hidden from MCP: partner-shaped CoinGecko mirrors and the MCP endpoint itself. */
10
+ const excludedTags = ['CoinGecko', 'MCP'];
11
+ /** Usage guidance surfaced to MCP clients on initialize. */
12
+ const instructions = "Tools mirror the Tempo API's data domain. Authenticated tools accept a Tempo API key: send it as an `Authorization: Bearer` header on the HTTP request, or pass the `authorization` tool input per call. List endpoints paginate via `cursor`/`nextCursor`. `docs_*` tools search the Tempo documentation.";
13
+ /** Zod schemas owned by the MCP endpoint's OpenAPI description. */
14
+ export var schema;
15
+ (function (schema) {
16
+ /** JSON-RPC request identifier. */
17
+ schema.Id = z
18
+ .union([z.string(), z.number(), z.null()])
19
+ .check(z.describe('Client-supplied JSON-RPC request id used to match responses to requests.'));
20
+ /** JSON-RPC error payload. */
21
+ schema.Error = z
22
+ .object({
23
+ code: z
24
+ .number()
25
+ .check(z.int(), z.describe('Numeric JSON-RPC error code returned by the MCP server.')),
26
+ data: z
27
+ .optional(z.unknown())
28
+ .check(z.describe('Optional extra error details returned by the MCP server.')),
29
+ message: z.string().check(z.describe('Human-readable JSON-RPC error message.')),
30
+ })
31
+ .check(z.describe('JSON-RPC error object returned when a message fails.'));
32
+ /** MCP JSON-RPC response payload. */
33
+ schema.Response = z
34
+ .object({
35
+ error: z
36
+ .optional(schema.Error)
37
+ .check(z.describe('JSON-RPC error object returned when a message fails.')),
38
+ id: z
39
+ .optional(schema.Id)
40
+ .check(z.describe('Client-supplied JSON-RPC request id used to match responses to requests.')),
41
+ jsonrpc: z.literal('2.0').check(z.describe('JSON-RPC protocol version; MCP uses `2.0`.')),
42
+ result: z.optional(z.unknown()).check(z.describe('Result returned by the MCP method.')),
43
+ })
44
+ .check(z.describe('One MCP JSON-RPC response returned by the server.'));
45
+ })(schema || (schema = {}));
46
+ /**
47
+ * The MCP route group: a stateless streamable-HTTP MCP server at `/mcp` whose
48
+ * tools mirror the API's data domain (scoped via the OpenAPI document's
49
+ * `Data API` tag group), plus the remote Tempo docs tools. Mount alongside
50
+ * the other route groups:
51
+ *
52
+ * ```ts
53
+ * App.create(options).route('/', mcp({ fetch: (request) => getApp().fetch(request) }))
54
+ * ```
55
+ */
56
+ export function mcp(options) {
57
+ const { docs = 'https://mcp.tempo.xyz/mcp', fetch, name = 'tapimo', version = '0.0.0' } = options;
58
+ // One incur instance per caller origin: the OpenAPI document is parsed once,
59
+ // and generated commands rebase onto the origin so tool results embed real
60
+ // absolute URLs (e.g. token asset URIs).
61
+ const clis = new Map();
62
+ function resolve(origin) {
63
+ let cli = clis.get(origin);
64
+ if (!cli) {
65
+ cli = build(origin);
66
+ clis.set(origin, cli);
67
+ // A failed build (spec fetch or docs resolution) retries next request.
68
+ cli.catch(() => clis.delete(origin));
69
+ }
70
+ return cli;
71
+ }
72
+ async function build(origin) {
73
+ const response = await fetch(new Request(new URL('/openapi.json', origin)));
74
+ if (!response.ok)
75
+ throw new Error(`openapi.json request failed: ${response.status}`);
76
+ const document = (await response.json());
77
+ const cli = incur_Cli.create(name, {
78
+ description: 'Tempo API',
79
+ // Generated commands build requests against `http://localhost`; rebase
80
+ // them onto the caller origin and dispatch in-process.
81
+ fetch: (request) => {
82
+ const url = new URL(request.url);
83
+ return fetch(new Request(new URL(url.pathname + url.search, origin), request));
84
+ },
85
+ mcp: { instructions },
86
+ openapi: scope(document),
87
+ openapiConfig: { forwardHeaders: ['authorization'], mode: 'namespace' },
88
+ version,
89
+ });
90
+ if (docs !== false)
91
+ cli.command('docs', { description: 'Search the Tempo documentation.', mcp: docs });
92
+ return cli;
93
+ }
94
+ async function handler(c) {
95
+ const cli = await resolve(new URL(c.req.url).origin);
96
+ // incur routes on the first path segment; pin the path to `/mcp` so a
97
+ // mount prefix never leaks into its router.
98
+ return cli.fetch(new Request(new URL('/mcp', c.req.url), c.req.raw));
99
+ }
100
+ // The documented POST carries the auth policy (described routes are
101
+ // default-closed); other methods fall through to the bare route and incur's 405.
102
+ const app = new Hono()
103
+ .post('/mcp', Auth.policy({ apiKey: { scopes: [] }, public: true }), OpenApi.describeRoute({
104
+ description: "A stateless streamable-HTTP MCP server: send JSON-RPC 2.0 messages as `POST` with `Accept: application/json, text/event-stream`. Tools mirror the API's data domain, plus `docs_*` documentation search. Anonymous requests use the public quota; send `Authorization: Bearer <api key>` for protected tools.",
105
+ operationId: 'mcpRequest',
106
+ // The JSON-RPC request envelope is protocol-owned (like `/rpc`), so the
107
+ // body documents an example rather than a schema.
108
+ requestBody: {
109
+ content: {
110
+ 'application/json': {
111
+ example: { jsonrpc: '2.0', id: 1, method: 'tools/list', params: {} },
112
+ },
113
+ },
114
+ required: true,
115
+ },
116
+ responses: {
117
+ 200: {
118
+ content: {
119
+ 'application/json': {
120
+ example: {
121
+ jsonrpc: '2.0',
122
+ id: 1,
123
+ result: { tools: [{ name: 'v1_tokens_get', description: 'List tokens' }] },
124
+ },
125
+ schema: OpenApi.resolver(schema.Response),
126
+ },
127
+ },
128
+ description: 'JSON-RPC response returned by the MCP server.',
129
+ headers: { ...OpenApi.successHeaders },
130
+ },
131
+ 202: {
132
+ description: 'The message was a notification or client response; there is nothing to return.',
133
+ },
134
+ 400: {
135
+ content: { 'application/json': { schema: OpenApi.resolver(schema.Response) } },
136
+ description: 'Malformed or invalid MCP message, returned as a JSON-RPC error response rather than the standard error envelope. A malformed API key returns the standard `400` envelope instead.',
137
+ },
138
+ 401: OpenApi.standardError(401, 'The presented API key is invalid. Anonymous requests are allowed under the public quota.', ['api_key_invalid']),
139
+ 406: {
140
+ content: { 'application/json': { schema: OpenApi.resolver(schema.Response) } },
141
+ description: 'The `Accept` header must include both `application/json` and `text/event-stream`. Returned as a JSON-RPC error response.',
142
+ },
143
+ 429: OpenApi.standardError(429, 'Rate limit exceeded.'),
144
+ 500: OpenApi.standardError(500, 'Internal server error.'),
145
+ },
146
+ summary: 'Call MCP',
147
+ tags: ['MCP'],
148
+ }), handler)
149
+ .all('/mcp', handler);
150
+ return Metadata.attach(app, openapi);
151
+ }
152
+ /** The OpenAPI metadata this group owns: the MCP endpoint's tag, surfaced under the `Data API` group. */
153
+ const openapi = {
154
+ tags: [
155
+ {
156
+ name: 'MCP',
157
+ description: 'A hosted Model Context Protocol server: the data domain and Tempo docs exposed as tools.',
158
+ },
159
+ ],
160
+ 'x-tagGroups': [{ name: tagGroup, tags: ['MCP'] }],
161
+ };
162
+ /** HTTP methods that carry operations in an OpenAPI path item. */
163
+ const methods = ['delete', 'get', 'head', 'options', 'patch', 'post', 'put', 'trace']; // prettier-ignore
164
+ /**
165
+ * Narrows the document to the data domain: operations tagged inside the
166
+ * `Data API` tag group, minus excluded tags. Management, relay, and session
167
+ * operations never surface as tools.
168
+ */
169
+ function scope(document) {
170
+ const group = document['x-tagGroups']?.find((entry) => entry.name === tagGroup);
171
+ if (!group)
172
+ throw new Error(`openapi.json is missing the "${tagGroup}" tag group`);
173
+ const tags = new Set(group.tags.filter((tag) => !excludedTags.includes(tag)));
174
+ const paths = {};
175
+ for (const [path, item] of Object.entries(document.paths)) {
176
+ // Keep in-domain operations; non-method keys (parameters, summary) ride along.
177
+ const entries = Object.entries(item).filter(([method, operation]) => {
178
+ if (!methods.includes(method))
179
+ return true;
180
+ const tags_operation = operation.tags;
181
+ return tags_operation?.some((tag) => tags.has(tag)) ?? false;
182
+ });
183
+ if (entries.some(([method]) => methods.includes(method)))
184
+ paths[path] = Object.fromEntries(entries);
185
+ }
186
+ return { ...document, paths };
187
+ }
188
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/apps/mcp.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,10 @@ export declare function relay(options?: relay.Options): import("hono/hono-base")
35
35
  export declare namespace relay {
36
36
  /** Options for the relay route group. */
37
37
  type Options = {
38
- feePayer?: Pick<NonNullable<Handler.relay.Options['feePayer']>, 'account' | 'feeToken' | 'name' | 'url'> | undefined;
38
+ feePayer?: (Pick<NonNullable<Handler.relay.Options['feePayer']>, 'account' | 'feeToken' | 'name' | 'url'> & {
39
+ /** Per-transaction fee cap (decimal USD string); orgs tighten it, never loosen. @default '1.00' */
40
+ txFeeLimit?: string | undefined;
41
+ }) | undefined;
39
42
  };
40
43
  }
41
44
  //# sourceMappingURL=App.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/apps/relay/App.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAA;AAGxC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAQ3C;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,KAAK,CAAC,OAAY;;;;;;;;;;;;;;;;;;;;;;+BAehD;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,yCAAyC;IACzC,KAAK,OAAO,GAAG;QACb,QAAQ,CAAC,EACL,IAAI,CACF,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAC9C,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,KAAK,CACxC,GACD,SAAS,CAAA;KACd,CAAA;CACF"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/apps/relay/App.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAA;AAMxC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAQ3C;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,KAAK,CAAC,OAAY;;;;;;;;;;;;;;;;;;;;;;+BAehD;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,yCAAyC;IACzC,KAAK,OAAO,GAAG;QACb,QAAQ,CAAC,EACL,CAAC,IAAI,CACH,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAC9C,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,KAAK,CACxC,GAAG;YACF,mGAAmG;YACnG,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAChC,CAAC,GACF,SAAS,CAAA;KACd,CAAA;CACF"}
@@ -1,8 +1,12 @@
1
1
  import { Hono } from 'hono';
2
2
  import { createMiddleware } from 'hono/factory';
3
- import { Addresses } from 'viem/tempo';
3
+ import { RpcResponse } from 'ox';
4
+ import { Addresses, TokenId, Transaction } from 'viem/tempo';
5
+ import * as BillingSettings from '../../db/tables/billingSettings.js';
4
6
  import * as Db from '../../db/Db.js';
7
+ import * as Fees from '../../internal/Fees.js';
5
8
  import * as SponsoredTransactions from '../../db/tables/sponsoredTransactions.js';
9
+ import * as Billing from '../management/Billing.js';
6
10
  import * as Handler from '../../Handler.js';
7
11
  import * as Auth from '../../internal/Auth.js';
8
12
  import * as OpenApi from '../../internal/OpenApi.js';
@@ -32,6 +36,10 @@ export function relay(options = {}) {
32
36
  // than closed over group locals; relay traffic is low-QPS and the viem
33
37
  // clients are memoized upstream, so per-request handler construction is cheap.
34
38
  function middleware(options = {}) {
39
+ // Platform-wide per-transaction cap; org settings tighten it, never loosen.
40
+ const txFeeLimit = options.feePayer
41
+ ? Billing.toBaseUnits(options.feePayer.txFeeLimit ?? '1.00')
42
+ : 0n;
35
43
  return createMiddleware(async (c) => {
36
44
  const verifiedTokens = c.get('verifiedTokens');
37
45
  const feePayer = (() => {
@@ -50,21 +58,99 @@ function middleware(options = {}) {
50
58
  principal?.type === 'api_key' &&
51
59
  (principal.apiKey.scopes.includes('rpc-relay:sponsor') ||
52
60
  principal.apiKey.scopes.includes(Scope.wildcard));
61
+ // Lifted so validation and the sponsored-token default read one value.
62
+ const feeToken_sponsor = options.feePayer.feeToken ?? Addresses.pathUsd;
53
63
  return {
54
64
  ...options.feePayer,
55
- feeToken: options.feePayer.feeToken ?? Addresses.pathUsd,
56
- validate: ({ chainId }) => {
65
+ feeToken: feeToken_sponsor,
66
+ validate: async (transaction) => {
57
67
  // Allowlist the chains this deployment serves rather than denylisting
58
68
  // only mainnet: the relay resolves chainId from the request body, so
59
- // the query-string chain guard never sees it. Mainnet stays closed
60
- // until billing ships; nothing meters real fee-payer spend yet.
61
- const id = Number(chainId);
62
- return sponsorable && c.get('supportedChainIds').has(id) && !Viem.isMainnet(id);
69
+ // the query-string chain guard never sees it.
70
+ const id = Number(transaction.chainId);
71
+ if (!attribution || !sponsorable || !c.get('supportedChainIds').has(id))
72
+ return false;
73
+ if (!Viem.isMainnet(id))
74
+ return true;
75
+ // Mainnet is production-only: a sandbox key resolves chainId from the
76
+ // request body, so the auth-layer sandbox/mainnet guard never sees
77
+ // it. Refuse here, or sandbox spend would sponsor mainnet unbilled.
78
+ if (attribution.environment !== 'production')
79
+ return false;
80
+ // Enforcement reads hit the primary, never the cached replica: a
81
+ // stale `past_due`, a lowered limit, or another isolate's pending
82
+ // spend must not keep the gate open.
83
+ const db = Db.get(c.get('db'));
84
+ // Mainnet sponsorship requires an active billing source; deployments
85
+ // without billing configured have no rows, so mainnet stays closed.
86
+ // `past_due` gets its own reason: the caller must settle an invoice,
87
+ // not attach a card.
88
+ const billing = await Billing.status(db, attribution.orgId);
89
+ if (billing === 'past_due')
90
+ return 'billing_past_due';
91
+ if (billing !== 'active')
92
+ return 'billing_required';
93
+ const feeToken = (() => {
94
+ try {
95
+ return TokenId.toAddress(transaction.feeToken ?? feeToken_sponsor);
96
+ }
97
+ catch {
98
+ return undefined;
99
+ }
100
+ })();
101
+ const verified = feeToken
102
+ ? (await VerifiedTokens.read(Db.get(c.get('dbCached')), id))?.byAddress.get(feeToken.toLowerCase()) // prettier-ignore
103
+ : undefined;
104
+ if (!verified ||
105
+ verified.currency.toLowerCase() !== 'usd' ||
106
+ verified.decimals !== Fees.tokenDecimals)
107
+ // prettier-ignore
108
+ return 'fee_token_unsupported';
109
+ // Fail closed: a transaction whose signed cap cannot be computed
110
+ // cannot be bounded, so it never sponsors on mainnet.
111
+ const feeMax = Fees.maxOf(transaction);
112
+ if (feeMax === undefined)
113
+ return 'tx_fee_limit_exceeded';
114
+ const settings = await BillingSettings.get(db, attribution.orgId);
115
+ const cap = (() => {
116
+ if (settings?.txFeeLimit == null)
117
+ return txFeeLimit;
118
+ const org = Billing.toBaseUnits(settings.txFeeLimit);
119
+ return org < txFeeLimit ? org : txFeeLimit;
120
+ })();
121
+ if (feeMax > cap)
122
+ return 'tx_fee_limit_exceeded';
123
+ // The period spend limit is enforced atomically at recording time
124
+ // (`onSponsored` → `SponsoredTransactions.reserve`); a check here
125
+ // would be a check-then-act race a burst could slip through.
126
+ return true;
63
127
  },
64
128
  onSponsored: async (event) => {
65
129
  if (!attribution)
66
130
  return;
67
- await SponsoredTransactions.upsert(Db.get(c.get('db')), {
131
+ const mainnet = Viem.isMainnet(event.chainId);
132
+ // Defense in depth: `validate` already refuses non-production
133
+ // mainnet, so reaching here with that pair is a wiring bug.
134
+ if (mainnet && attribution.environment !== 'production')
135
+ throw new RpcResponse.InvalidParamsError({ message: 'Sponsorship rejected.' });
136
+ // The cap recomputes from canonical envelope bytes, mirroring the
137
+ // reconciliation convention; pending rows charge it to spend limits.
138
+ const feeMax = Fees.maxOf(Transaction.deserialize(event.transaction));
139
+ const db = Db.get(c.get('db'));
140
+ const feeToken = (() => {
141
+ try {
142
+ return event.feeToken !== undefined ? TokenId.toAddress(event.feeToken) : undefined;
143
+ }
144
+ catch {
145
+ return undefined;
146
+ }
147
+ })();
148
+ const currency = feeToken
149
+ ? (await VerifiedTokens.read(Db.get(c.get('dbCached')), event.chainId))?.byAddress
150
+ .get(feeToken.toLowerCase())
151
+ ?.currency.toLowerCase()
152
+ : undefined;
153
+ const input = {
68
154
  apiKeyId: attribution.apiKeyId,
69
155
  billable: attribution.environment === 'production',
70
156
  chainId: event.chainId,
@@ -73,9 +159,31 @@ function middleware(options = {}) {
73
159
  projectId: attribution.projectId,
74
160
  signPayload: event.signPayload,
75
161
  transaction: event.transaction,
76
- ...(event.feeToken ? { feeToken: event.feeToken } : {}),
162
+ ...(currency ? { currency } : {}),
163
+ ...(feeMax !== undefined ? { feeMax: feeMax.toString() } : {}),
164
+ ...(feeToken ? { feeToken } : {}),
77
165
  ...(event.transactionHash ? { transactionHash: event.transactionHash } : {}),
78
- });
166
+ };
167
+ // Re-read settings on the authoritative path: the limit may have
168
+ // changed since `validate`, and only mainnet spend is limited.
169
+ const settings = mainnet ? await BillingSettings.get(db, attribution.orgId) : undefined;
170
+ if (settings?.spendLimit == null)
171
+ return void (await SponsoredTransactions.upsert(db, input)); // prettier-ignore
172
+ try {
173
+ await SponsoredTransactions.reserve(db, input, {
174
+ chainIds: [Viem.chainId.mainnet],
175
+ max: Billing.toBaseUnits(settings.spendLimit),
176
+ since: Billing.periodStart(settings.period),
177
+ });
178
+ }
179
+ catch (error) {
180
+ if (error instanceof SponsoredTransactions.PeriodSpendLimitError)
181
+ throw new RpcResponse.InvalidParamsError({
182
+ data: { code: 'spend_limit_exceeded' },
183
+ message: 'Spend limit exceeded.',
184
+ });
185
+ throw error;
186
+ }
79
187
  },
80
188
  };
81
189
  })();
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/apps/relay/App.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/apps/relay/App.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Sponsorships.d.ts","sourceRoot":"","sources":["../../../src/apps/relay/Sponsorships.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,MAAM,EAIZ,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEpC,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAA;AAE9C;;;;;;;;;;GAUG;AACH,wBAAsB,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAuD7F;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,oCAAoC;IACpC,KAAK,OAAO,GAAG;QACb,4DAA4D;QAC5D,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,mDAAmD;QACnD,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;QACtC,mCAAmC;QACnC,GAAG,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;QAC9B,oEAAoE;QACpE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACjC,mFAAmF;QACnF,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACvC,CAAA;IAED,kDAAkD;IAClD,KAAK,MAAM,GAAG;QACZ,yDAAyD;QACzD,MAAM,EAAE,MAAM,CAAA;QACd,yCAAyC;QACzC,SAAS,EAAE,MAAM,CAAA;QACjB,mFAAmF;QACnF,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAmEhG;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,qCAAqC;IACrC,KAAK,OAAO,GAAG;QACb,wDAAwD;QACxD,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,2EAA2E;QAC3E,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACjC,kFAAkF;QAClF,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACtC,oEAAoE;QACpE,QAAQ,EAAE,OAAO,CAAA;QACjB,sDAAsD;QACtD,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;QACtC,2DAA2D;QAC3D,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,MAAM,CAAA;QACzC,6EAA6E;QAC7E,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5B,CAAA;IAED,oDAAoD;IACpD,KAAK,MAAM,GAAG;QACZ,kDAAkD;QAClD,OAAO,EAAE,MAAM,CAAA;QACf,qCAAqC;QACrC,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AAoBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,SAAS,CAuC3F;AAED,MAAM,CAAC,OAAO,WAAW,eAAe,CAAC;IACvC,2CAA2C;IAC3C,KAAK,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,KAAK,GAAG,cAAc,CAAC,GAAG;QAC5E,8FAA8F;QAC9F,EAAE,EAAE,EAAE,CAAC,MAAM,CAAA;QACb,qDAAqD;QACrD,cAAc,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACzC,yGAAyG;QACzG,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC9B,kDAAkD;QAClD,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,CAAA;QACpC,wFAAwF;QACxF,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAA;KACvC,CAAA;IAED,yCAAyC;IACzC,KAAK,SAAS,GAAG;QACf,0CAA0C;QAC1C,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;KACpD,CAAA;CACF"}
1
+ {"version":3,"file":"Sponsorships.d.ts","sourceRoot":"","sources":["../../../src/apps/relay/Sponsorships.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { TxEnvelopeTempo } from 'ox/tempo';
2
2
  import { TransactionReceiptNotFoundError, } from 'viem';
3
3
  import { getTransactionReceipt } from 'viem/actions';
4
4
  import * as Db from '../../db/Db.js';
5
+ import * as Fees from '../../internal/Fees.js';
5
6
  import * as SponsoredTransactions from '../../db/tables/sponsoredTransactions.js';
6
7
  import * as Tidx from '../../internal/Tidx.js';
7
8
  import * as Viem from '../../internal/Viem.js';
@@ -54,7 +55,7 @@ export async function finalize(db, options) {
54
55
  }
55
56
  if (receipt) {
56
57
  // A reverted transaction still finalizes: the fee payer paid its fees.
57
- const feeAmount = receipt.gasUsed * receipt.effectiveGasPrice;
58
+ const feeAmount = Fees.fromGas(receipt.gasUsed, receipt.effectiveGasPrice);
58
59
  await SponsoredTransactions.finalize(db, row.id, {
59
60
  feeAmount: feeAmount.toString(),
60
61
  finalizedAt: now().toISOString(),
@@ -1 +1 @@
1
- {"version":3,"file":"Sponsorships.js","sourceRoot":"","sources":["../../../src/apps/relay/Sponsorships.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAKL,+BAA+B,GAChC,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEpD,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,KAAK,qBAAqB,MAAM,0CAA0C,CAAA;AACjF,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAA;AAE9C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAAS,EAAE,OAAyB;IACjE,MAAM,EACJ,SAAS,GAAG,GAAG,EACf,SAAS,EACT,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EACtB,YAAY,GAAG,SAAS,EACxB,iBAAiB,GAAG,UAAU,GAC/B,GAAG,OAAO,CAAA;IAEX,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAC9E,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;IAEtD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,yEAAyE;QACzE,qCAAqC;QACrC,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,YAAY,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChE,MAAM,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;gBACjE,MAAM,CAAC,MAAM,EAAE,CAAA;YACjB,CAAC;;gBAAM,MAAM,CAAC,OAAO,EAAE,CAAA;YACvB,SAAQ;QACV,CAAC;QAED,IAAI,OAAkC,CAAA;QACtC,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAC5D,IAAI,EAAE,GAAG,CAAC,eAA0B;aACrC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,yEAAyE;YACzE,IAAI,KAAK,YAAY,+BAA+B;gBAAE,OAAO,GAAG,IAAI,CAAA;iBAC/D,CAAC;gBACJ,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;oBACrE,MAAM,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;oBACjE,MAAM,CAAC,MAAM,EAAE,CAAA;gBACjB,CAAC;;oBAAM,MAAM,CAAC,OAAO,EAAE,CAAA;gBACvB,SAAQ;YACV,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,uEAAuE;YACvE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAA;YAC7D,MAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;gBAC/C,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;gBAC/B,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;aACjC,CAAC,CAAA;YACF,MAAM,CAAC,SAAS,EAAE,CAAA;QACpB,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,YAAY,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACvE,MAAM,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;YACjE,MAAM,CAAC,MAAM,EAAE,CAAA;QACjB,CAAC;;YAAM,MAAM,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AA4BD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAAS,EAAE,OAA0B;IACnE,MAAM,EACJ,SAAS,GAAG,GAAG,EACf,YAAY,GAAG,GAAG,EAClB,iBAAiB,GAAG,UAAU,EAC9B,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,GAAG,OAAO,GACjB,GAAG,OAAO,CAAA;IAEX,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,WAAW,CAAC,EAAE,EAAE;QAC1D,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC,CAAC,WAAW,EAAE;QACnE,KAAK,EAAE,SAAS;KACjB,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;IACzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAA;IAEvC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0C,CAAA;IAChE,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA,CAAC,kBAAkB;IAE5H,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;QACxE,qEAAqE;QACrE,MAAM,KAAK,GAAG,IAAI,IAAI,CACpB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CACnE,CAAC,WAAW,EAAE,CAAA;QAEf,IAAI,UAAyD,CAAA;QAC7D,IAAI,CAAC;YACH,sEAAsE;YACtE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;gBAC3C,OAAO;gBACP,KAAK,EACH,mDAAmD,QAAQ,CAAC,WAAW,EAAE,6BAA6B,KAAK,wCAAwC,YAAY,EAAY;aAC9K,CAAC,CAAA;YACF,UAAU,GAAG,OAAO,CAAC,IAAI,CAAA;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;YAChE,SAAQ;QACV,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC;gBAAE,MAAK;YACnC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAwB,CAAA;YACrD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAwB,CAAA;YACvD,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;gBAAE,SAAQ;YAC9B,MAAM,CAAC,OAAO,EAAE,CAAA;YAChB,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;gBACpE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,eAAe,CAAC,cAAc,CAAC;oBAAE,SAAQ;gBACrE,MAAM,WAAW,GAAG,eAAe,CAAC,sBAAsB,CACxD,eAAe,CAAC,WAAW,CAAC,UAAwC,CAAC,EACrE,EAAE,MAAM,EAAE,CACX,CAAA;gBACD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;gBAC7C,IAAI,CAAC,MAAM;oBAAE,SAAQ;gBACrB,MAAM,qBAAqB,CAAC,qBAAqB,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;gBACtE,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;gBACjC,MAAM,CAAC,OAAO,EAAE,CAAA;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,sEAAsE;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AA8BD;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,MAAc,EAAE,IAAa;IAUtD,OAAQ,MAAM,CAAC,OAAmB,CAAC,EAAE,MAAM,EAAE,6BAA6B,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC/F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgC;IAC9D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqC,CAAA;IAC5D,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE;QACpC,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAuB,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;YAC/E,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC9B,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI;QAC1B,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACtF,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IAEjC,OAAO;QACL,KAAK,CAAC,IAAI;YACR,wEAAwE;YACxE,uBAAuB;YACvB,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAC7B,wEAAwE;YACxE,MAAM,UAAU,GACd,QAAQ,IAAI,OAAO;gBACjB,CAAC,CAAC,MAAM,SAAS,CAAC,EAAE,EAAE;oBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,QAAQ;oBACR,SAAS;oBACT,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAuB,CAAC;iBACvD,CAAC;gBACJ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;YAChC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE;gBACnC,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS;gBACT,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,YAAY,EAAE,OAAO,CAAC,YAAY;aACnC,CAAC,CAAA;YACF,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,UAAU,EAAE,CAAA;QACxC,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"Sponsorships.js","sourceRoot":"","sources":["../../../src/apps/relay/Sponsorships.ts"],"names":[],"mappings":"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"}
package/dist/cli/Cli.d.ts CHANGED
@@ -1,12 +1,17 @@
1
1
  import { Cli as incur_Cli, Fetch, type Openapi } from 'incur';
2
+ import type { mcp } from '../apps/mcp.js';
2
3
  /**
3
4
  * Creates an incur CLI backed by a hosted Tempo API, plus the super admin
4
- * commands (`<cli> admin …`).
5
+ * commands (`<cli> admin …`) and the remote Tempo docs tools (`<cli> docs …`).
5
6
  */
6
7
  export declare function from(url: string | URL, options?: from.Options): incur_Cli.Cli<{
7
8
  [x: `${string} ${string} ${string}`]: {
8
9
  args: {};
9
10
  options: {
11
+ clickhouseDatabase?: string | undefined;
12
+ clickhouseMigratePassword?: string | undefined;
13
+ clickhouseMigrateUser?: string | undefined;
14
+ clickhouseUrl?: string | undefined;
10
15
  databaseUrl?: string | undefined;
11
16
  dbSchema?: string | undefined;
12
17
  };
@@ -17,6 +22,8 @@ export declare namespace from {
17
22
  type Options = {
18
23
  /** CLI description. */
19
24
  description?: string | undefined;
25
+ /** Remote docs MCP source mounted as the `docs` command group, or `false` to omit it. @default 'https://mcp.tempo.xyz/mcp' */
26
+ docs?: mcp.Source | false | undefined;
20
27
  /** CLI name. */
21
28
  name?: string | undefined;
22
29
  /** OpenAPI document source. Relative paths resolve from the API URL. */
@@ -1 +1 @@
1
- {"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../../src/cli/Cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AAI7D;;;GAGG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,GAAE,IAAI,CAAC,OAAY;;;;;;;;oCAkBjE;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,8DAA8D;IAC9D,KAAK,OAAO,GAAG;QACb,uBAAuB;QACvB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC,gBAAgB;QAChB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,wEAAwE;QACxE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,SAAS,CAAA;QAC3C,4EAA4E;QAC5E,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAA;QAC1C,4CAA4C;QAC5C,OAAO,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,GAAG,SAAS,CAAA;QAC/C,mBAAmB;QACnB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC7B,CAAA;CACF"}
1
+ {"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../../src/cli/Cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AAE7D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAUzC;;;GAGG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,GAAE,IAAI,CAAC,OAAY;;;;;;;;;;;;oCAuBjE;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,8DAA8D;IAC9D,KAAK,OAAO,GAAG;QACb,uBAAuB;QACvB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC,8HAA8H;QAC9H,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;QACrC,gBAAgB;QAChB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,wEAAwE;QACxE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,SAAS,CAAA;QAC3C,4EAA4E;QAC5E,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAA;QAC1C,4CAA4C;QAC5C,OAAO,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,GAAG,SAAS,CAAA;QAC/C,mBAAmB;QACnB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC7B,CAAA;CACF"}
package/dist/cli/Cli.js CHANGED
@@ -1,19 +1,27 @@
1
1
  import { Cli as incur_Cli, Fetch } from 'incur';
2
2
  import * as Admin from './commands/admin.js';
3
+ /** Tool patterns hidden from MCP clients: super admin, partner-shaped gecko mirrors, browser session flows. */
4
+ const excludedTools = ['admin_*', 'gecko_*', 'v1_auth_*'];
5
+ /** Usage guidance surfaced to MCP clients on initialize (`<cli> --mcp`). */
6
+ const instructions = 'Tools mirror the hosted Tempo API. Authenticated tools accept an `authorization` input (`Bearer <api key>`). List endpoints paginate via `cursor`/`nextCursor`. `docs_*` tools search the Tempo documentation.';
3
7
  /**
4
8
  * Creates an incur CLI backed by a hosted Tempo API, plus the super admin
5
- * commands (`<cli> admin …`).
9
+ * commands (`<cli> admin …`) and the remote Tempo docs tools (`<cli> docs …`).
6
10
  */
7
11
  export function from(url, options = {}) {
8
- const { description = 'Tempo API CLI', name = 'tapimo', openapi = 'openapi.json', request, version = '0.0.0', } = options;
9
- return incur_Cli
12
+ const { description = 'Tempo API CLI', docs = 'https://mcp.tempo.xyz/mcp', name = 'tapimo', openapi = 'openapi.json', request, version = '0.0.0', } = options;
13
+ const cli = incur_Cli
10
14
  .create(name, {
11
15
  description,
12
16
  fetch: Fetch.fromRequest(url, request),
17
+ mcp: { instructions, tools: { exclude: excludedTools } },
13
18
  openapi,
14
19
  openapiConfig: options.openapiConfig ?? { mode: 'namespace' },
15
20
  version,
16
21
  })
17
22
  .command(Admin.admin);
23
+ if (docs !== false)
24
+ cli.command('docs', { description: 'Search the Tempo documentation.', mcp: docs });
25
+ return cli;
18
26
  }
19
27
  //# sourceMappingURL=Cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Cli.js","sourceRoot":"","sources":["../../src/cli/Cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,KAAK,EAAgB,MAAM,OAAO,CAAA;AAE7D,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA;AAE5C;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,GAAiB,EAAE,OAAO,GAAiB,EAAE;IAChE,MAAM,EACJ,WAAW,GAAG,eAAe,EAC7B,IAAI,GAAG,QAAQ,EACf,OAAO,GAAG,cAAc,EACxB,OAAO,EACP,OAAO,GAAG,OAAO,GAClB,GAAG,OAAO,CAAA;IAEX,OAAO,SAAS;SACb,MAAM,CAAC,IAAI,EAAE;QACZ,WAAW;QACX,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC;QACtC,OAAO;QACP,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE;QAC7D,OAAO;KACR,CAAC;SACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AACzB,CAAC"}
1
+ {"version":3,"file":"Cli.js","sourceRoot":"","sources":["../../src/cli/Cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,KAAK,EAAgB,MAAM,OAAO,CAAA;AAG7D,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA;AAE5C,+GAA+G;AAC/G,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;AAEzD,4EAA4E;AAC5E,MAAM,YAAY,GAChB,gNAAgN,CAAA;AAElN;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,GAAiB,EAAE,OAAO,GAAiB,EAAE;IAChE,MAAM,EACJ,WAAW,GAAG,eAAe,EAC7B,IAAI,GAAG,2BAA2B,EAClC,IAAI,GAAG,QAAQ,EACf,OAAO,GAAG,cAAc,EACxB,OAAO,EACP,OAAO,GAAG,OAAO,GAClB,GAAG,OAAO,CAAA;IAEX,MAAM,GAAG,GAAG,SAAS;SAClB,MAAM,CAAC,IAAI,EAAE;QACZ,WAAW;QACX,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC;QACtC,GAAG,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE;QACxD,OAAO;QACP,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE;QAC7D,OAAO;KACR,CAAC;SACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACvB,IAAI,IAAI,KAAK,KAAK;QAChB,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,iCAAiC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;IACpF,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -7,6 +7,10 @@ export declare const admin: incur_Cli.Cli<{
7
7
  [x: `${string} ${string}`]: {
8
8
  args: {};
9
9
  options: {
10
+ clickhouseDatabase?: string | undefined;
11
+ clickhouseMigratePassword?: string | undefined;
12
+ clickhouseMigrateUser?: string | undefined;
13
+ clickhouseUrl?: string | undefined;
10
14
  databaseUrl?: string | undefined;
11
15
  dbSchema?: string | undefined;
12
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,SAAS,EAAK,MAAM,OAAO,CAAA;AAmD3C;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;;mCAIC,CAAA"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,SAAS,EAAK,MAAM,OAAO,CAAA;AA4G3C;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;mCAIC,CAAA"}