@tai42/api-client 16.0.0 → 16.0.1

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 (370) hide show
  1. package/dist/client/agents-client.d.ts +26 -0
  2. package/dist/client/agents-client.d.ts.map +1 -0
  3. package/dist/client/agents-client.js +19 -0
  4. package/dist/client/agents-client.js.map +1 -0
  5. package/dist/client/auth-client.d.ts +205 -0
  6. package/dist/client/auth-client.d.ts.map +1 -0
  7. package/dist/client/auth-client.js +59 -0
  8. package/dist/client/auth-client.js.map +1 -0
  9. package/dist/client/backend-client.d.ts +39 -0
  10. package/dist/client/backend-client.d.ts.map +1 -0
  11. package/dist/client/backend-client.js +22 -0
  12. package/dist/client/backend-client.js.map +1 -0
  13. package/dist/client/backup-client.d.ts +56 -0
  14. package/dist/client/backup-client.d.ts.map +1 -0
  15. package/dist/client/backup-client.js +12 -0
  16. package/dist/client/backup-client.js.map +1 -0
  17. package/dist/client/capabilities-client.d.ts +35 -0
  18. package/dist/client/capabilities-client.d.ts.map +1 -0
  19. package/dist/client/capabilities-client.js +19 -0
  20. package/dist/client/capabilities-client.js.map +1 -0
  21. package/dist/client/channels-client.d.ts +7 -0
  22. package/dist/client/channels-client.d.ts.map +1 -0
  23. package/dist/client/channels-client.js +10 -0
  24. package/dist/client/channels-client.js.map +1 -0
  25. package/dist/client/config-client.d.ts +59 -0
  26. package/dist/client/config-client.d.ts.map +1 -0
  27. package/dist/client/config-client.js +18 -0
  28. package/dist/client/config-client.js.map +1 -0
  29. package/dist/client/connectors-client.d.ts +225 -0
  30. package/dist/client/connectors-client.d.ts.map +1 -0
  31. package/dist/client/connectors-client.js +31 -0
  32. package/dist/client/connectors-client.js.map +1 -0
  33. package/dist/client/conversations-client.d.ts +399 -0
  34. package/dist/client/conversations-client.d.ts.map +1 -0
  35. package/dist/client/conversations-client.js +120 -0
  36. package/dist/client/conversations-client.js.map +1 -0
  37. package/dist/client/hooks-client.d.ts +113 -0
  38. package/dist/client/hooks-client.d.ts.map +1 -0
  39. package/dist/client/hooks-client.js +25 -0
  40. package/dist/client/hooks-client.js.map +1 -0
  41. package/dist/{client.d.ts → client/index.d.ts} +2235 -2666
  42. package/dist/client/index.d.ts.map +1 -0
  43. package/dist/client/index.js +79 -0
  44. package/dist/client/index.js.map +1 -0
  45. package/dist/client/interactions-client.d.ts +52 -0
  46. package/dist/client/interactions-client.d.ts.map +1 -0
  47. package/dist/client/interactions-client.js +84 -0
  48. package/dist/client/interactions-client.js.map +1 -0
  49. package/dist/client/login-client.d.ts +56 -0
  50. package/dist/client/login-client.d.ts.map +1 -0
  51. package/dist/client/login-client.js +103 -0
  52. package/dist/client/login-client.js.map +1 -0
  53. package/dist/client/manifest-client.d.ts +354 -0
  54. package/dist/client/manifest-client.d.ts.map +1 -0
  55. package/dist/client/manifest-client.js +76 -0
  56. package/dist/client/manifest-client.js.map +1 -0
  57. package/dist/client/marketplace-client.d.ts +274 -0
  58. package/dist/client/marketplace-client.d.ts.map +1 -0
  59. package/dist/client/marketplace-client.js +46 -0
  60. package/dist/client/marketplace-client.js.map +1 -0
  61. package/dist/client/mcp-config-schema-client.d.ts +5 -0
  62. package/dist/client/mcp-config-schema-client.d.ts.map +1 -0
  63. package/dist/client/mcp-config-schema-client.js +9 -0
  64. package/dist/client/mcp-config-schema-client.js.map +1 -0
  65. package/dist/client/notifications-client.d.ts +27 -0
  66. package/dist/client/notifications-client.d.ts.map +1 -0
  67. package/dist/client/notifications-client.js +11 -0
  68. package/dist/client/notifications-client.js.map +1 -0
  69. package/dist/client/observability-client.d.ts +103 -0
  70. package/dist/client/observability-client.d.ts.map +1 -0
  71. package/dist/client/observability-client.js +43 -0
  72. package/dist/client/observability-client.js.map +1 -0
  73. package/dist/client/plugins-client.d.ts +17 -0
  74. package/dist/client/plugins-client.d.ts.map +1 -0
  75. package/dist/client/plugins-client.js +9 -0
  76. package/dist/client/plugins-client.js.map +1 -0
  77. package/dist/client/policy-client.d.ts +37 -0
  78. package/dist/client/policy-client.d.ts.map +1 -0
  79. package/dist/client/policy-client.js +26 -0
  80. package/dist/client/policy-client.js.map +1 -0
  81. package/dist/client/presets-client.d.ts +335 -0
  82. package/dist/client/presets-client.d.ts.map +1 -0
  83. package/dist/client/presets-client.js +38 -0
  84. package/dist/client/presets-client.js.map +1 -0
  85. package/dist/client/profiles-client.d.ts +102 -0
  86. package/dist/client/profiles-client.d.ts.map +1 -0
  87. package/dist/client/profiles-client.js +37 -0
  88. package/dist/client/profiles-client.js.map +1 -0
  89. package/dist/client/schedules-client.d.ts +28 -0
  90. package/dist/client/schedules-client.d.ts.map +1 -0
  91. package/dist/client/schedules-client.js +13 -0
  92. package/dist/client/schedules-client.js.map +1 -0
  93. package/dist/client/settings-schema-client.d.ts +23 -0
  94. package/dist/client/settings-schema-client.d.ts.map +1 -0
  95. package/dist/client/settings-schema-client.js +9 -0
  96. package/dist/client/settings-schema-client.js.map +1 -0
  97. package/dist/client/states-client.d.ts +471 -0
  98. package/dist/client/states-client.d.ts.map +1 -0
  99. package/dist/client/states-client.js +144 -0
  100. package/dist/client/states-client.js.map +1 -0
  101. package/dist/client/storage-client.d.ts +40 -0
  102. package/dist/client/storage-client.d.ts.map +1 -0
  103. package/dist/client/storage-client.js +43 -0
  104. package/dist/client/storage-client.js.map +1 -0
  105. package/dist/client/sub-mcp-client.d.ts +17 -0
  106. package/dist/client/sub-mcp-client.d.ts.map +1 -0
  107. package/dist/client/sub-mcp-client.js +14 -0
  108. package/dist/client/sub-mcp-client.js.map +1 -0
  109. package/dist/client/system-client.d.ts +11 -0
  110. package/dist/client/system-client.d.ts.map +1 -0
  111. package/dist/client/system-client.js +13 -0
  112. package/dist/client/system-client.js.map +1 -0
  113. package/dist/client/templates-client.d.ts +29 -0
  114. package/dist/client/templates-client.d.ts.map +1 -0
  115. package/dist/client/templates-client.js +21 -0
  116. package/dist/client/templates-client.js.map +1 -0
  117. package/dist/client/tool-extensions-client.d.ts +54 -0
  118. package/dist/client/tool-extensions-client.d.ts.map +1 -0
  119. package/dist/client/tool-extensions-client.js +21 -0
  120. package/dist/client/tool-extensions-client.js.map +1 -0
  121. package/dist/client/tool-meta-client.d.ts +69 -0
  122. package/dist/client/tool-meta-client.d.ts.map +1 -0
  123. package/dist/client/tool-meta-client.js +38 -0
  124. package/dist/client/tool-meta-client.js.map +1 -0
  125. package/dist/client/tools-client.d.ts +83 -0
  126. package/dist/client/tools-client.d.ts.map +1 -0
  127. package/dist/client/tools-client.js +38 -0
  128. package/dist/client/tools-client.js.map +1 -0
  129. package/dist/client/transport.d.ts +13 -0
  130. package/dist/client/transport.d.ts.map +1 -0
  131. package/dist/client/transport.js +10 -0
  132. package/dist/client/transport.js.map +1 -0
  133. package/dist/client/trigger-links-client.d.ts +44 -0
  134. package/dist/client/trigger-links-client.d.ts.map +1 -0
  135. package/dist/client/trigger-links-client.js +30 -0
  136. package/dist/client/trigger-links-client.js.map +1 -0
  137. package/dist/client/web-entry-gate-client.d.ts +34 -0
  138. package/dist/client/web-entry-gate-client.d.ts.map +1 -0
  139. package/dist/client/web-entry-gate-client.js +25 -0
  140. package/dist/client/web-entry-gate-client.js.map +1 -0
  141. package/dist/http.d.ts.map +1 -1
  142. package/dist/http.js +33 -17
  143. package/dist/http.js.map +1 -1
  144. package/dist/schemas/api-keys.d.ts +34 -0
  145. package/dist/schemas/api-keys.d.ts.map +1 -0
  146. package/dist/schemas/api-keys.js +22 -0
  147. package/dist/schemas/api-keys.js.map +1 -0
  148. package/dist/schemas/auth-routes.d.ts +78 -0
  149. package/dist/schemas/auth-routes.d.ts.map +1 -0
  150. package/dist/schemas/auth-routes.js +42 -0
  151. package/dist/schemas/auth-routes.js.map +1 -0
  152. package/dist/schemas/backup.d.ts +78 -0
  153. package/dist/schemas/backup.d.ts.map +1 -0
  154. package/dist/schemas/backup.js +33 -0
  155. package/dist/schemas/backup.js.map +1 -0
  156. package/dist/schemas/capabilities.d.ts +99 -0
  157. package/dist/schemas/capabilities.d.ts.map +1 -0
  158. package/dist/schemas/capabilities.js +74 -0
  159. package/dist/schemas/capabilities.js.map +1 -0
  160. package/dist/schemas/channels.d.ts +7 -0
  161. package/dist/schemas/channels.d.ts.map +1 -0
  162. package/dist/schemas/channels.js +9 -0
  163. package/dist/schemas/channels.js.map +1 -0
  164. package/dist/schemas/config.d.ts +17 -0
  165. package/dist/schemas/config.d.ts.map +1 -0
  166. package/dist/schemas/config.js +17 -0
  167. package/dist/schemas/config.js.map +1 -0
  168. package/dist/schemas/connectors.d.ts +383 -0
  169. package/dist/schemas/connectors.d.ts.map +1 -0
  170. package/dist/schemas/connectors.js +122 -0
  171. package/dist/schemas/connectors.js.map +1 -0
  172. package/dist/schemas/conversations.d.ts +600 -0
  173. package/dist/schemas/conversations.d.ts.map +1 -0
  174. package/dist/schemas/conversations.js +208 -0
  175. package/dist/schemas/conversations.js.map +1 -0
  176. package/dist/schemas/extensions.d.ts +44 -0
  177. package/dist/schemas/extensions.d.ts.map +1 -0
  178. package/dist/schemas/extensions.js +29 -0
  179. package/dist/schemas/extensions.js.map +1 -0
  180. package/dist/schemas/fleet.d.ts +271 -0
  181. package/dist/schemas/fleet.d.ts.map +1 -0
  182. package/dist/schemas/fleet.js +132 -0
  183. package/dist/schemas/fleet.js.map +1 -0
  184. package/dist/schemas/hooks.d.ts +120 -0
  185. package/dist/schemas/hooks.d.ts.map +1 -0
  186. package/dist/schemas/hooks.js +44 -0
  187. package/dist/schemas/hooks.js.map +1 -0
  188. package/dist/schemas/index.d.ts +38 -0
  189. package/dist/schemas/index.d.ts.map +1 -0
  190. package/dist/schemas/index.js +38 -0
  191. package/dist/schemas/index.js.map +1 -0
  192. package/dist/schemas/interactions.d.ts +156 -0
  193. package/dist/schemas/interactions.d.ts.map +1 -0
  194. package/dist/schemas/interactions.js +124 -0
  195. package/dist/schemas/interactions.js.map +1 -0
  196. package/dist/schemas/login.d.ts +86 -0
  197. package/dist/schemas/login.d.ts.map +1 -0
  198. package/dist/schemas/login.js +54 -0
  199. package/dist/schemas/login.js.map +1 -0
  200. package/dist/schemas/manifest-mcp.d.ts +125 -0
  201. package/dist/schemas/manifest-mcp.d.ts.map +1 -0
  202. package/dist/schemas/manifest-mcp.js +61 -0
  203. package/dist/schemas/manifest-mcp.js.map +1 -0
  204. package/dist/schemas/marketplace.d.ts +708 -0
  205. package/dist/schemas/marketplace.d.ts.map +1 -0
  206. package/dist/schemas/marketplace.js +387 -0
  207. package/dist/schemas/marketplace.js.map +1 -0
  208. package/dist/schemas/notifications.d.ts +61 -0
  209. package/dist/schemas/notifications.d.ts.map +1 -0
  210. package/dist/schemas/notifications.js +38 -0
  211. package/dist/schemas/notifications.js.map +1 -0
  212. package/dist/schemas/observability.d.ts +114 -0
  213. package/dist/schemas/observability.d.ts.map +1 -0
  214. package/dist/schemas/observability.js +74 -0
  215. package/dist/schemas/observability.js.map +1 -0
  216. package/dist/schemas/policy.d.ts +58 -0
  217. package/dist/schemas/policy.d.ts.map +1 -0
  218. package/dist/schemas/policy.js +32 -0
  219. package/dist/schemas/policy.js.map +1 -0
  220. package/dist/schemas/presets.d.ts +258 -0
  221. package/dist/schemas/presets.d.ts.map +1 -0
  222. package/dist/schemas/presets.js +95 -0
  223. package/dist/schemas/presets.js.map +1 -0
  224. package/dist/schemas/profiles.d.ts +180 -0
  225. package/dist/schemas/profiles.d.ts.map +1 -0
  226. package/dist/schemas/profiles.js +100 -0
  227. package/dist/schemas/profiles.js.map +1 -0
  228. package/dist/schemas/roles.d.ts +125 -0
  229. package/dist/schemas/roles.d.ts.map +1 -0
  230. package/dist/schemas/roles.js +46 -0
  231. package/dist/schemas/roles.js.map +1 -0
  232. package/dist/schemas/schedules.d.ts +25 -0
  233. package/dist/schemas/schedules.d.ts.map +1 -0
  234. package/dist/schemas/schedules.js +24 -0
  235. package/dist/schemas/schedules.js.map +1 -0
  236. package/dist/schemas/served.d.ts +626 -0
  237. package/dist/schemas/served.d.ts.map +1 -0
  238. package/dist/schemas/served.js +28 -0
  239. package/dist/schemas/served.js.map +1 -0
  240. package/dist/schemas/settings-schema.d.ts +23 -0
  241. package/dist/schemas/settings-schema.d.ts.map +1 -0
  242. package/dist/schemas/settings-schema.js +25 -0
  243. package/dist/schemas/settings-schema.js.map +1 -0
  244. package/dist/schemas/shared.d.ts +20 -0
  245. package/dist/schemas/shared.d.ts.map +1 -0
  246. package/dist/schemas/shared.js +20 -0
  247. package/dist/schemas/shared.js.map +1 -0
  248. package/dist/schemas/states.d.ts +499 -0
  249. package/dist/schemas/states.d.ts.map +1 -0
  250. package/dist/schemas/states.js +220 -0
  251. package/dist/schemas/states.js.map +1 -0
  252. package/dist/schemas/storage.d.ts +37 -0
  253. package/dist/schemas/storage.d.ts.map +1 -0
  254. package/dist/schemas/storage.js +24 -0
  255. package/dist/schemas/storage.js.map +1 -0
  256. package/dist/schemas/studio-plugins.d.ts +30 -0
  257. package/dist/schemas/studio-plugins.d.ts.map +1 -0
  258. package/dist/schemas/studio-plugins.js +20 -0
  259. package/dist/schemas/studio-plugins.js.map +1 -0
  260. package/dist/schemas/sub-mcp.d.ts +29 -0
  261. package/dist/schemas/sub-mcp.d.ts.map +1 -0
  262. package/dist/schemas/sub-mcp.js +22 -0
  263. package/dist/schemas/sub-mcp.js.map +1 -0
  264. package/dist/schemas/system-kinds.d.ts +122 -0
  265. package/dist/schemas/system-kinds.d.ts.map +1 -0
  266. package/dist/schemas/system-kinds.js +40 -0
  267. package/dist/schemas/system-kinds.js.map +1 -0
  268. package/dist/schemas/templates.d.ts +26 -0
  269. package/dist/schemas/templates.d.ts.map +1 -0
  270. package/dist/schemas/templates.js +11 -0
  271. package/dist/schemas/templates.js.map +1 -0
  272. package/dist/schemas/tool-meta.d.ts +64 -0
  273. package/dist/schemas/tool-meta.d.ts.map +1 -0
  274. package/dist/schemas/tool-meta.js +44 -0
  275. package/dist/schemas/tool-meta.js.map +1 -0
  276. package/dist/schemas/tools.d.ts +62 -0
  277. package/dist/schemas/tools.d.ts.map +1 -0
  278. package/dist/schemas/tools.js +53 -0
  279. package/dist/schemas/tools.js.map +1 -0
  280. package/dist/schemas/trigger-links.d.ts +71 -0
  281. package/dist/schemas/trigger-links.d.ts.map +1 -0
  282. package/dist/schemas/trigger-links.js +46 -0
  283. package/dist/schemas/trigger-links.js.map +1 -0
  284. package/dist/schemas/web-entry.d.ts +45 -0
  285. package/dist/schemas/web-entry.d.ts.map +1 -0
  286. package/dist/schemas/web-entry.js +36 -0
  287. package/dist/schemas/web-entry.js.map +1 -0
  288. package/dist/tool-runs.d.ts +4 -4
  289. package/package.json +1 -1
  290. package/src/client/agents-client.ts +23 -0
  291. package/src/client/auth-client.ts +144 -0
  292. package/src/client/backend-client.ts +25 -0
  293. package/src/client/backup-client.ts +16 -0
  294. package/src/client/capabilities-client.ts +22 -0
  295. package/src/client/channels-client.ts +11 -0
  296. package/src/client/config-client.ts +21 -0
  297. package/src/client/connectors-client.ts +52 -0
  298. package/src/client/conversations-client.ts +240 -0
  299. package/src/client/hooks-client.ts +44 -0
  300. package/src/client/index.ts +122 -0
  301. package/src/client/interactions-client.ts +89 -0
  302. package/src/client/login-client.ts +109 -0
  303. package/src/client/manifest-client.ts +118 -0
  304. package/src/client/marketplace-client.ts +122 -0
  305. package/src/client/mcp-config-schema-client.ts +11 -0
  306. package/src/client/notifications-client.ts +13 -0
  307. package/src/client/observability-client.ts +82 -0
  308. package/src/client/plugins-client.ts +11 -0
  309. package/src/client/policy-client.ts +41 -0
  310. package/src/client/presets-client.ts +124 -0
  311. package/src/client/profiles-client.ts +51 -0
  312. package/src/client/schedules-client.ts +22 -0
  313. package/src/client/settings-schema-client.ts +11 -0
  314. package/src/client/states-client.ts +292 -0
  315. package/src/client/storage-client.ts +63 -0
  316. package/src/client/sub-mcp-client.ts +17 -0
  317. package/src/client/system-client.ts +16 -0
  318. package/src/client/templates-client.ts +28 -0
  319. package/src/client/tool-extensions-client.ts +24 -0
  320. package/src/client/tool-meta-client.ts +65 -0
  321. package/src/client/tools-client.ts +66 -0
  322. package/src/client/transport.ts +18 -0
  323. package/src/client/trigger-links-client.ts +51 -0
  324. package/src/client/web-entry-gate-client.ts +45 -0
  325. package/src/http.ts +48 -24
  326. package/src/schemas/api-keys.ts +26 -0
  327. package/src/schemas/auth-routes.ts +48 -0
  328. package/src/schemas/backup.ts +42 -0
  329. package/src/schemas/capabilities.ts +87 -0
  330. package/src/schemas/channels.ts +11 -0
  331. package/src/schemas/config.ts +17 -0
  332. package/src/schemas/connectors.ts +138 -0
  333. package/src/schemas/conversations.ts +256 -0
  334. package/src/schemas/extensions.ts +34 -0
  335. package/src/schemas/fleet.ts +153 -0
  336. package/src/schemas/hooks.ts +56 -0
  337. package/src/schemas/index.ts +37 -0
  338. package/src/schemas/interactions.ts +146 -0
  339. package/src/schemas/login.ts +62 -0
  340. package/src/schemas/manifest-mcp.ts +69 -0
  341. package/src/schemas/marketplace.ts +447 -0
  342. package/src/schemas/notifications.ts +42 -0
  343. package/src/schemas/observability.ts +86 -0
  344. package/src/schemas/policy.ts +37 -0
  345. package/src/schemas/presets.ts +113 -0
  346. package/src/schemas/profiles.ts +119 -0
  347. package/src/schemas/roles.ts +57 -0
  348. package/src/schemas/schedules.ts +27 -0
  349. package/src/schemas/served.ts +49 -0
  350. package/src/schemas/settings-schema.ts +31 -0
  351. package/src/schemas/shared.ts +21 -0
  352. package/src/schemas/states.ts +272 -0
  353. package/src/schemas/storage.ts +31 -0
  354. package/src/schemas/studio-plugins.ts +21 -0
  355. package/src/schemas/sub-mcp.ts +24 -0
  356. package/src/schemas/system-kinds.ts +46 -0
  357. package/src/schemas/templates.ts +11 -0
  358. package/src/schemas/tool-meta.ts +51 -0
  359. package/src/schemas/tools.ts +61 -0
  360. package/src/schemas/trigger-links.ts +54 -0
  361. package/src/schemas/web-entry.ts +46 -0
  362. package/dist/client.d.ts.map +0 -1
  363. package/dist/client.js +0 -920
  364. package/dist/client.js.map +0 -1
  365. package/dist/schemas.d.ts +0 -5172
  366. package/dist/schemas.d.ts.map +0 -1
  367. package/dist/schemas.js +0 -2268
  368. package/dist/schemas.js.map +0 -1
  369. package/src/client.ts +0 -1771
  370. package/src/schemas.ts +0 -2760
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-client.d.ts","sourceRoot":"","sources":["../../src/client/storage-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAwBD,wBAAgB,aAAa,CAAC,CAAC,EAAE,SAAS;8BAOZ,WAAW;;;;;oCACL,WAAW;;;8BAEjB,MAAM,WAAW,WAAW;;;;kCAExB,MAAM,WAAW,WAAW,KAAG,OAAO,CAAC,IAAI,CAAC;kCAE5C,iBAAiB;;;;gCAEnB,MAAM;;;;6BAIT,MAAM;;;;EAGlC"}
@@ -0,0 +1,43 @@
1
+ /** Storage resource CRUD sub-client. */
2
+ import * as s from '../schemas';
3
+ import { apiDownload, isUnsafePathSegment } from '../http';
4
+ /**
5
+ * Encode a possibly-nested storage id / directory path for use in a URL path,
6
+ * percent-encoding each segment while preserving the `/` separators. A storage id
7
+ * can be a nested path (e.g. `a/b c.txt`); encoding each segment independently keeps
8
+ * the slashes structural and escapes everything else (spaces, `#`, `?`, …).
9
+ *
10
+ * Dot segments (`.`, `..`), empty segments (a leading/trailing/doubled `/`, or an
11
+ * empty id) are REJECTED loudly rather than encoded: the browser's WHATWG URL parser
12
+ * removes dot-segments from a relative request path before it is sent — collapsing
13
+ * `..` even when percent-encoded — so such an id can never be faithfully transmitted.
14
+ * Left to encode, it would silently retarget the request at an unrelated same-origin
15
+ * route. The server enforces the same relative-path rule; failing fast here keeps a
16
+ * malformed id from ever leaving the client.
17
+ */
18
+ function encodePath(id) {
19
+ const segments = id.split('/');
20
+ if (segments.some(isUnsafePathSegment)) {
21
+ throw new Error("storage path must be a relative path with no empty, '.', or '..' segment");
22
+ }
23
+ return segments.map(encodeURIComponent).join('/');
24
+ }
25
+ export function storageClient(t) {
26
+ const { config, req } = t;
27
+ return {
28
+ // The content store a storage-provider plugin exposes. Dead by default:
29
+ // `getStorageInfo` reports `present: false` (a 200 empty state) and every other
30
+ // door answers a loud 501 when no provider is installed. Ids may be nested
31
+ // paths, so each is `encodePath`-encoded (per-segment, `/` preserved).
32
+ getStorageInfo: (signal) => req('/api/storage', s.storageInfo, { signal }),
33
+ listStorageResources: (signal) => req('/api/storage/resources', s.storageResourceList, { signal }),
34
+ statStorageResource: (id, signal) => req(`/api/storage/resources/${encodePath(id)}/stat`, s.storageResourceStat, { signal }),
35
+ downloadStorageResource: (id, signal) => apiDownload(config, `/api/storage/resources/${encodePath(id)}/content`, { signal }),
36
+ uploadStorageResource: (body) => req('/api/storage/resources', s.storageResourceStored, { method: 'POST', body }),
37
+ deleteStorageResource: (id) => req(`/api/storage/resources/${encodePath(id)}`, s.storageResourceDeleted, {
38
+ method: 'DELETE',
39
+ }),
40
+ deleteStorageDir: (path) => req(`/api/storage/dirs/${encodePath(path)}`, s.storageDirDeleted, { method: 'DELETE' }),
41
+ };
42
+ }
43
+ //# sourceMappingURL=storage-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-client.js","sourceRoot":"","sources":["../../src/client/storage-client.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAe3D;;;;;;;;;;;;;GAaG;AACH,SAAS,UAAU,CAAC,EAAU;IAC5B,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAY;IACxC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO;QACL,wEAAwE;QACxE,gFAAgF;QAChF,2EAA2E;QAC3E,uEAAuE;QACvE,cAAc,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC;QACxF,oBAAoB,EAAE,CAAC,MAAoB,EAAE,EAAE,CAC7C,GAAG,CAAC,wBAAwB,EAAE,CAAC,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,CAAC;QAClE,mBAAmB,EAAE,CAAC,EAAU,EAAE,MAAoB,EAAE,EAAE,CACxD,GAAG,CAAC,0BAA0B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,CAAC;QACzF,uBAAuB,EAAE,CAAC,EAAU,EAAE,MAAoB,EAAiB,EAAE,CAC3E,WAAW,CAAC,MAAM,EAAE,0BAA0B,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC;QACrF,qBAAqB,EAAE,CAAC,IAAuB,EAAE,EAAE,CACjD,GAAG,CAAC,wBAAwB,EAAE,CAAC,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAClF,qBAAqB,EAAE,CAAC,EAAU,EAAE,EAAE,CACpC,GAAG,CAAC,0BAA0B,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,sBAAsB,EAAE;YACxE,MAAM,EAAE,QAAQ;SACjB,CAAC;QACJ,gBAAgB,EAAE,CAAC,IAAY,EAAE,EAAE,CACjC,GAAG,CAAC,qBAAqB,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;KAC1F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Transport } from './transport';
2
+ export declare function subMcpClient(t: Transport): {
3
+ listSubMcp: (signal?: AbortSignal) => Promise<Record<string, {
4
+ tools: string[];
5
+ transport: string;
6
+ }>>;
7
+ createSubMcp: (slug: string, tools: string[], transport?: string) => Promise<{
8
+ slug: string;
9
+ tools: string[];
10
+ transport: string;
11
+ }>;
12
+ deleteSubMcp: (slug: string) => Promise<{
13
+ slug: string;
14
+ removed: true;
15
+ }>;
16
+ };
17
+ //# sourceMappingURL=sub-mcp-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub-mcp-client.d.ts","sourceRoot":"","sources":["../../src/client/sub-mcp-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS;0BAGf,WAAW;;;;yBAGZ,MAAM,SAAS,MAAM,EAAE,cAAc,MAAM;;;;;yBAE3C,MAAM;;;;EAG9B"}
@@ -0,0 +1,14 @@
1
+ /** Sub-MCP mount registry sub-client. */
2
+ import * as s from '../schemas';
3
+ import { encodeSegment } from '../http';
4
+ export function subMcpClient(t) {
5
+ const { req } = t;
6
+ return {
7
+ listSubMcp: (signal) => req('/api/sub-mcp', s.subMcpList, { signal }),
8
+ // `transport` is optional at the client boundary (the server defaults it to
9
+ // `http`); when omitted, JSON.stringify drops the undefined key from the body.
10
+ createSubMcp: (slug, tools, transport) => req('/api/sub-mcp', s.subMcpCreated, { method: 'POST', body: { slug, tools, transport } }),
11
+ deleteSubMcp: (slug) => req(`/api/sub-mcp/${encodeSegment(slug)}`, s.subMcpRemoved, { method: 'DELETE' }),
12
+ };
13
+ }
14
+ //# sourceMappingURL=sub-mcp-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub-mcp-client.js","sourceRoot":"","sources":["../../src/client/sub-mcp-client.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,MAAM,UAAU,YAAY,CAAC,CAAY;IACvC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,OAAO;QACL,UAAU,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC;QACnF,4EAA4E;QAC5E,+EAA+E;QAC/E,YAAY,EAAE,CAAC,IAAY,EAAE,KAAe,EAAE,SAAkB,EAAE,EAAE,CAClE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC;QAC5F,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAC7B,GAAG,CAAC,gBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;KACpF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Transport } from './transport';
2
+ export declare function systemClient(t: Transport): {
3
+ getHealth: (signal?: AbortSignal) => Promise<string>;
4
+ getSystemKinds: (signal?: AbortSignal) => Promise<{
5
+ kind: string;
6
+ state: "default" | "active" | "off";
7
+ plugin: string | null;
8
+ detail: string;
9
+ }[]>;
10
+ };
11
+ //# sourceMappingURL=system-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-client.d.ts","sourceRoot":"","sources":["../../src/client/system-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS;yBAGhB,WAAW;8BAIN,WAAW;;;;;;EAGxC"}
@@ -0,0 +1,13 @@
1
+ /** System health and pluggable-kind status sub-client. */
2
+ import * as s from '../schemas';
3
+ import { apiText } from '../http';
4
+ export function systemClient(t) {
5
+ const { config, req } = t;
6
+ return {
7
+ getHealth: (signal) => apiText(config, '/health', { signal }),
8
+ // The pluggable-kind status table (`GET /api/system/kinds`) — a JSON `{data}`
9
+ // envelope, one row per kind with its active/default/off state.
10
+ getSystemKinds: (signal) => req('/api/system/kinds', s.kindStatusList, { signal }),
11
+ };
12
+ }
13
+ //# sourceMappingURL=system-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-client.js","sourceRoot":"","sources":["../../src/client/system-client.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,MAAM,UAAU,YAAY,CAAC,CAAY;IACvC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO;QACL,SAAS,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC;QAE3E,8EAA8E;QAC9E,gEAAgE;QAChE,cAAc,EAAE,CAAC,MAAoB,EAAE,EAAE,CACvC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC;KACzD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ /** Prompt-template listing, render and mutation sub-client. */
2
+ import * as s from '../schemas';
3
+ import type { Transport } from './transport';
4
+ export declare function templatesClient(t: Transport): {
5
+ listTemplates: (signal?: AbortSignal) => Promise<string[]>;
6
+ getTemplate: (templateId: string) => Promise<{
7
+ template: string;
8
+ schema: Record<string, unknown>;
9
+ }>;
10
+ uploadTemplate: (path: string, content: string) => Promise<{
11
+ path: string;
12
+ uploaded: true;
13
+ }>;
14
+ deleteTemplate: (path: string) => Promise<{
15
+ path: string;
16
+ deleted: true;
17
+ }>;
18
+ deleteTemplateDir: (path: string) => Promise<{
19
+ path: string;
20
+ deleted: true;
21
+ }>;
22
+ renderTemplate: (text: s.TemplatedText) => Promise<{
23
+ rendered: string;
24
+ }>;
25
+ clearTemplatesCache: () => Promise<{
26
+ cleared: true;
27
+ }>;
28
+ };
29
+ //# sourceMappingURL=templates-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates-client.d.ts","sourceRoot":"","sources":["../../src/client/templates-client.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS;6BAGf,WAAW;8BACV,MAAM;;;;2BAET,MAAM,WAAW,MAAM;;;;2BAEvB,MAAM;;;;8BAKH,MAAM;;;;2BAKT,CAAC,CAAC,aAAa;;;;;;EAKzC"}
@@ -0,0 +1,21 @@
1
+ /** Prompt-template listing, render and mutation sub-client. */
2
+ import * as s from '../schemas';
3
+ export function templatesClient(t) {
4
+ const { req } = t;
5
+ return {
6
+ listTemplates: (signal) => req('/api/templates', s.templateNames, { signal }),
7
+ getTemplate: (templateId) => req('/api/template', s.templateDetail, { method: 'POST', body: { template_id: templateId } }),
8
+ uploadTemplate: (path, content) => req('/api/upload-template', s.templateUploaded, { method: 'POST', body: { path, content } }),
9
+ deleteTemplate: (path) => req('/api/delete-template', s.templateDeleted, { method: 'POST', body: { path } }),
10
+ // Delete every stored template under a directory prefix. Unlike the idempotent
11
+ // single delete, the server 404s a prefix matching nothing and 400s the template
12
+ // root; those surface as loud errors, never a faked success.
13
+ deleteTemplateDir: (path) => req('/api/delete-template-dir', s.templateDirDeleted, { method: 'POST', body: { path } }),
14
+ // Render one authored text — inline `content` OR a stored template `id`, plus its
15
+ // render `kwargs` — and parse the rendered output. The value is the shared
16
+ // `TemplatedText` (exactly one source); the route wraps it under `text`.
17
+ renderTemplate: (text) => req('/api/render-template', s.templateRendered, { method: 'POST', body: { text } }),
18
+ clearTemplatesCache: () => req('/api/clear-templates-cache', s.templateCacheCleared, { method: 'POST' }),
19
+ };
20
+ }
21
+ //# sourceMappingURL=templates-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates-client.js","sourceRoot":"","sources":["../../src/client/templates-client.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAGhC,MAAM,UAAU,eAAe,CAAC,CAAY;IAC1C,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,OAAO;QACL,aAAa,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC;QAC3F,WAAW,EAAE,CAAC,UAAkB,EAAE,EAAE,CAClC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC;QAC/F,cAAc,EAAE,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CAChD,GAAG,CAAC,sBAAsB,EAAE,CAAC,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;QAC9F,cAAc,EAAE,CAAC,IAAY,EAAE,EAAE,CAC/B,GAAG,CAAC,sBAAsB,EAAE,CAAC,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;QACpF,+EAA+E;QAC/E,iFAAiF;QACjF,6DAA6D;QAC7D,iBAAiB,EAAE,CAAC,IAAY,EAAE,EAAE,CAClC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3F,kFAAkF;QAClF,2EAA2E;QAC3E,yEAAyE;QACzE,cAAc,EAAE,CAAC,IAAqB,EAAE,EAAE,CACxC,GAAG,CAAC,sBAAsB,EAAE,CAAC,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;QACrF,mBAAmB,EAAE,GAAG,EAAE,CACxB,GAAG,CAAC,4BAA4B,EAAE,CAAC,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;KAChF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,54 @@
1
+ /** Tool extension listing and authoring sub-client. */
2
+ import * as s from '../schemas';
3
+ import type { Transport } from './transport';
4
+ export declare function toolExtensionsClient(t: Transport): {
5
+ listExtensions: (signal?: AbortSignal) => Promise<{
6
+ name: string;
7
+ kind: string;
8
+ }[]>;
9
+ getToolExtensions: (name: string, signal?: AbortSignal) => Promise<{
10
+ combos: (string | {
11
+ name: string;
12
+ config: Record<string, unknown>;
13
+ })[][];
14
+ available: {
15
+ name: string;
16
+ kind: string;
17
+ }[];
18
+ }>;
19
+ setToolExtensions: (name: string, combos: readonly s.PresetExtensionElement[][]) => Promise<{
20
+ status: string;
21
+ env_keys: number;
22
+ fanout: {
23
+ mode: "local-only";
24
+ note: string;
25
+ } | {
26
+ op: string;
27
+ reachable: boolean;
28
+ local_only: boolean;
29
+ results: {
30
+ name: string;
31
+ outcome: "failed" | "resyncing" | "recycling" | "stale" | "applied" | "missing" | "departed" | "timed_out";
32
+ payload: unknown;
33
+ error: string | null;
34
+ detail: string | null;
35
+ }[];
36
+ error: string | null;
37
+ mode: "fleet";
38
+ } | {
39
+ op: string;
40
+ reachable: boolean;
41
+ local_only: boolean;
42
+ results: {
43
+ name: string;
44
+ outcome: "failed" | "resyncing" | "recycling" | "stale" | "applied" | "missing" | "departed" | "timed_out";
45
+ payload: unknown;
46
+ error: string | null;
47
+ detail: string | null;
48
+ }[];
49
+ error: string | null;
50
+ mode: "unreachable";
51
+ };
52
+ }>;
53
+ };
54
+ //# sourceMappingURL=tool-extensions-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-extensions-client.d.ts","sourceRoot":"","sources":["../../src/client/tool-extensions-client.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,SAAS;8BAGnB,WAAW;;;;8BAGX,MAAM,WAAW,WAAW;;;;;;;;;;8BAM5B,MAAM,UAAU,SAAS,CAAC,CAAC,sBAAsB,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMlF"}
@@ -0,0 +1,21 @@
1
+ /** Tool extension listing and authoring sub-client. */
2
+ import * as s from '../schemas';
3
+ import { encodeSegment } from '../http';
4
+ export function toolExtensionsClient(t) {
5
+ const { req } = t;
6
+ return {
7
+ listExtensions: (signal) => req('/api/extensions', s.extensions, { signal }),
8
+ // A MANIFEST-provided tool's current combos + the extension catalog. (A preset
9
+ // tool's extensions live on the preset spec, read via `getPreset`.)
10
+ getToolExtensions: (name, signal) => req(`/api/tools/${encodeSegment(name)}/extensions`, s.toolExtensions, { signal }),
11
+ // Author ALL of a MANIFEST tool's combos at once (the full lossless list; `[]`
12
+ // clears). Returns the apply result: the local reload (`status` + `env_keys`) plus
13
+ // the mode-wrapped fleet `fanout` of the reload it broadcast, from which the shared
14
+ // fleet-report handler surfaces any failed propagation.
15
+ setToolExtensions: (name, combos) => req(`/api/tools/${encodeSegment(name)}/extensions`, s.toolExtensionsApplyResult, {
16
+ method: 'POST',
17
+ body: { combos },
18
+ }),
19
+ };
20
+ }
21
+ //# sourceMappingURL=tool-extensions-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-extensions-client.js","sourceRoot":"","sources":["../../src/client/tool-extensions-client.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,MAAM,UAAU,oBAAoB,CAAC,CAAY;IAC/C,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,OAAO;QACL,cAAc,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC;QAC1F,+EAA+E;QAC/E,oEAAoE;QACpE,iBAAiB,EAAE,CAAC,IAAY,EAAE,MAAoB,EAAE,EAAE,CACxD,GAAG,CAAC,cAAc,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC;QACnF,+EAA+E;QAC/E,mFAAmF;QACnF,oFAAoF;QACpF,wDAAwD;QACxD,iBAAiB,EAAE,CAAC,IAAY,EAAE,MAA6C,EAAE,EAAE,CACjF,GAAG,CAAC,cAAc,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,yBAAyB,EAAE;YAC/E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,MAAM,EAAE;SACjB,CAAC;KACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1,69 @@
1
+ import type { Transport } from './transport';
2
+ /**
3
+ * Merge-patch body for a tool's overlay row (PATCH
4
+ * `/api/tool-meta/tools/{tool_name}`). Only the fields PRESENT are written; a
5
+ * present-null clears (`hidden: null` writes the tri-state "defer to the plugin
6
+ * declaration" state, `display_name: null` clears the label, `folder_id: null`
7
+ * unfiles); a present `tags` array replaces the whole set. Absent fields are left
8
+ * untouched — there is no full-row replace, so a display-name+tags editor sends
9
+ * ONLY those two keys with no risk to `folder_id`/`hidden`. At least one field must
10
+ * be present. A blank/whitespace-only `display_name` is rejected by the API (422) —
11
+ * callers map an emptied label to `null`, never `""`. A present `badges` array
12
+ * replaces the whole overlay set (INFORMATIONAL labels, never an enforced gate).
13
+ */
14
+ export interface ToolMetaPatch {
15
+ readonly display_name?: string | null;
16
+ readonly folder_id?: string | null;
17
+ readonly tags?: readonly string[];
18
+ readonly badges?: readonly string[];
19
+ readonly hidden?: boolean | null;
20
+ }
21
+ export declare function toolMetaClient(t: Transport): {
22
+ listToolMeta: (signal?: AbortSignal) => Promise<{
23
+ folders: {
24
+ id: string;
25
+ name: string;
26
+ parent_id: string | null;
27
+ }[];
28
+ meta: {
29
+ tool_name: string;
30
+ display_name: string | null;
31
+ folder_id: string | null;
32
+ tags: string[];
33
+ badges: string[];
34
+ hidden: boolean | null;
35
+ }[];
36
+ }>;
37
+ upsertToolMeta: (toolName: string, patch: ToolMetaPatch) => Promise<{
38
+ tool_name: string;
39
+ display_name: string | null;
40
+ folder_id: string | null;
41
+ tags: string[];
42
+ badges: string[];
43
+ hidden: boolean | null;
44
+ }>;
45
+ deleteToolMeta: (toolName: string) => Promise<{
46
+ tool_name: string;
47
+ deleted: true;
48
+ }>;
49
+ createFolder: (name: string, parentId?: string | null) => Promise<{
50
+ id: string;
51
+ name: string;
52
+ parent_id: string | null;
53
+ }>;
54
+ renameFolder: (folderId: string, name: string) => Promise<{
55
+ id: string;
56
+ name: string;
57
+ parent_id: string | null;
58
+ }>;
59
+ moveFolder: (folderId: string, parentId: string | null) => Promise<{
60
+ id: string;
61
+ name: string;
62
+ parent_id: string | null;
63
+ }>;
64
+ deleteFolder: (folderId: string) => Promise<{
65
+ folder_id: string;
66
+ deleted: true;
67
+ }>;
68
+ };
69
+ //# sourceMappingURL=tool-meta-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-meta-client.d.ts","sourceRoot":"","sources":["../../src/client/tool-meta-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAClC;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,SAAS;4BAKf,WAAW;;;;;;;;;;;;;;;+BAIR,MAAM,SAAS,aAAa;;;;;;;;+BAK5B,MAAM;;;;yBAIZ,MAAM,aAAY,MAAM,GAAG,IAAI;;;;;6BAK3B,MAAM,QAAQ,MAAM;;;;;2BAMtB,MAAM,YAAY,MAAM,GAAG,IAAI;;;;;6BAK7B,MAAM;;;;EAKlC"}
@@ -0,0 +1,38 @@
1
+ /** Tool-organization overlay (folders and meta) sub-client. */
2
+ import * as s from '../schemas';
3
+ import { encodeSegment } from '../http';
4
+ export function toolMetaClient(t) {
5
+ const { req } = t;
6
+ return {
7
+ // The folder tree + per-tool overlay rows in one read; the features merge the
8
+ // rows against the live tool list and native tags client-side.
9
+ listToolMeta: (signal) => req('/api/tool-meta', s.toolMetaOverlay, { signal }),
10
+ // Merge-patch a tool's overlay row (create it if absent). `patch` carries ONLY
11
+ // the fields to change — a present-null clears, an absent field is untouched,
12
+ // and a present `tags` array replaces the set.
13
+ upsertToolMeta: (toolName, patch) => req(`/api/tool-meta/tools/${encodeSegment(toolName)}`, s.toolMetaRecord, {
14
+ method: 'PATCH',
15
+ body: patch,
16
+ }),
17
+ deleteToolMeta: (toolName) => req(`/api/tool-meta/tools/${encodeSegment(toolName)}`, s.toolMetaDeleted, {
18
+ method: 'DELETE',
19
+ }),
20
+ createFolder: (name, parentId = null) => req('/api/tool-meta/folders', s.folderRecord, {
21
+ method: 'POST',
22
+ body: { name, parent_id: parentId },
23
+ }),
24
+ renameFolder: (folderId, name) => req(`/api/tool-meta/folders/${encodeSegment(folderId)}/rename`, s.folderRecord, {
25
+ method: 'POST',
26
+ body: { name },
27
+ }),
28
+ // `null` re-parents to the root.
29
+ moveFolder: (folderId, parentId) => req(`/api/tool-meta/folders/${encodeSegment(folderId)}/move`, s.folderRecord, {
30
+ method: 'POST',
31
+ body: { parent_id: parentId },
32
+ }),
33
+ deleteFolder: (folderId) => req(`/api/tool-meta/folders/${encodeSegment(folderId)}`, s.folderDeleted, {
34
+ method: 'DELETE',
35
+ }),
36
+ };
37
+ }
38
+ //# sourceMappingURL=tool-meta-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-meta-client.js","sourceRoot":"","sources":["../../src/client/tool-meta-client.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAuBxC,MAAM,UAAU,cAAc,CAAC,CAAY;IACzC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,OAAO;QACL,8EAA8E;QAC9E,+DAA+D;QAC/D,YAAY,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC;QAC5F,+EAA+E;QAC/E,8EAA8E;QAC9E,+CAA+C;QAC/C,cAAc,EAAE,CAAC,QAAgB,EAAE,KAAoB,EAAE,EAAE,CACzD,GAAG,CAAC,wBAAwB,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,EAAE;YACvE,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,KAAK;SACZ,CAAC;QACJ,cAAc,EAAE,CAAC,QAAgB,EAAE,EAAE,CACnC,GAAG,CAAC,wBAAwB,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,EAAE;YACxE,MAAM,EAAE,QAAQ;SACjB,CAAC;QACJ,YAAY,EAAE,CAAC,IAAY,EAAE,WAA0B,IAAI,EAAE,EAAE,CAC7D,GAAG,CAAC,wBAAwB,EAAE,CAAC,CAAC,YAAY,EAAE;YAC5C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE;SACpC,CAAC;QACJ,YAAY,EAAE,CAAC,QAAgB,EAAE,IAAY,EAAE,EAAE,CAC/C,GAAG,CAAC,0BAA0B,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,YAAY,EAAE;YAC9E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,IAAI,EAAE;SACf,CAAC;QACJ,iCAAiC;QACjC,UAAU,EAAE,CAAC,QAAgB,EAAE,QAAuB,EAAE,EAAE,CACxD,GAAG,CAAC,0BAA0B,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE;YAC5E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;SAC9B,CAAC;QACJ,YAAY,EAAE,CAAC,QAAgB,EAAE,EAAE,CACjC,GAAG,CAAC,0BAA0B,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,EAAE;YACxE,MAAM,EAAE,QAAQ;SACjB,CAAC;KACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { type SubmitToolRunArgs } from '../tool-runs';
2
+ import type { Transport } from './transport';
3
+ export interface RunToolArgs {
4
+ readonly tool: string;
5
+ readonly kwargs?: Record<string, unknown>;
6
+ }
7
+ /**
8
+ * Identify one app tool for a live-registry op (`POST /api/tools/reload`,
9
+ * `POST /api/tools/remove`): its `kind` (the reloader kind a plugin registered,
10
+ * e.g. `example_tool`) and `name`. `targets` optionally restricts the fleet
11
+ * fan-out to specific workers; omit it to reach every worker.
12
+ */
13
+ export interface ToolAdminArgs {
14
+ readonly kind: string;
15
+ readonly name: string;
16
+ readonly targets?: string[];
17
+ }
18
+ export declare function toolsClient(t: Transport): {
19
+ listTools: (signal?: AbortSignal) => Promise<string[]>;
20
+ getToolSchema: (name: string, signal?: AbortSignal) => Promise<{
21
+ input: Record<string, unknown>;
22
+ output: Record<string, unknown> | null;
23
+ description: string | null;
24
+ }>;
25
+ getAllToolSchemas: (signal?: AbortSignal) => Promise<Record<string, {
26
+ input: Record<string, unknown>;
27
+ output: Record<string, unknown> | null;
28
+ description: string | null;
29
+ }>>;
30
+ runTool: (args: RunToolArgs, signal?: AbortSignal) => Promise<unknown>;
31
+ reloadTool: (args: ToolAdminArgs) => Promise<{
32
+ op: string;
33
+ reachable: boolean;
34
+ local_only: boolean;
35
+ results: {
36
+ name: string;
37
+ outcome: "failed" | "resyncing" | "recycling" | "stale" | "applied" | "missing" | "departed" | "timed_out";
38
+ payload: unknown;
39
+ error: string | null;
40
+ detail: string | null;
41
+ }[];
42
+ error: string | null;
43
+ }>;
44
+ removeTool: (args: ToolAdminArgs) => Promise<{
45
+ op: string;
46
+ reachable: boolean;
47
+ local_only: boolean;
48
+ results: {
49
+ name: string;
50
+ outcome: "failed" | "resyncing" | "recycling" | "stale" | "applied" | "missing" | "departed" | "timed_out";
51
+ payload: unknown;
52
+ error: string | null;
53
+ detail: string | null;
54
+ }[];
55
+ error: string | null;
56
+ }>;
57
+ submitToolRun: (args: SubmitToolRunArgs, signal?: AbortSignal) => Promise<{
58
+ run_id: string;
59
+ }>;
60
+ getToolRun: (runId: string, signal?: AbortSignal) => Promise<{
61
+ run_id: string;
62
+ tool_name: string;
63
+ status: "failed" | "running" | "succeeded" | "lost";
64
+ started_at: string;
65
+ finished_at?: string | undefined;
66
+ result?: unknown;
67
+ error?: string | undefined;
68
+ }>;
69
+ listToolRuns: (toolName: string, signal?: AbortSignal) => Promise<{
70
+ run_id: string;
71
+ tool_name: string;
72
+ status: "failed" | "running" | "succeeded" | "lost";
73
+ started_at: string;
74
+ finished_at?: string | undefined;
75
+ }[]>;
76
+ listToolTags: (signal?: AbortSignal) => Promise<{
77
+ name: string;
78
+ tags: string[];
79
+ badges: string[];
80
+ hidden: boolean;
81
+ }[]>;
82
+ };
83
+ //# sourceMappingURL=tools-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools-client.d.ts","sourceRoot":"","sources":["../../src/client/tools-client.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2C,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS;yBAGf,WAAW;0BACV,MAAM,WAAW,WAAW;;;;;iCAErB,WAAW;;;;;oBAExB,WAAW,WAAW,WAAW;uBAe9B,aAAa;;;;;;;;;;;;;uBAKb,aAAa;;;;;;;;;;;;;0BAMV,iBAAiB,WAAW,WAAW;;;wBAEzC,MAAM,WAAW,WAAW;;;;;;;;;6BACvB,MAAM,WAAW,WAAW;;;;;;;4BAG7B,WAAW;;;;;;EAEtC"}
@@ -0,0 +1,38 @@
1
+ /** Tool catalog, run, live-registry admin and tag sub-client. */
2
+ import * as s from '../schemas';
3
+ import { encodeSegment } from '../http';
4
+ import { getToolRun, listToolRuns, submitToolRun } from '../tool-runs';
5
+ export function toolsClient(t) {
6
+ const { config, req } = t;
7
+ return {
8
+ listTools: (signal) => req('/api/tools', s.toolNames, { signal }),
9
+ getToolSchema: (name, signal) => req(`/api/tools/${encodeSegment(name)}/schema`, s.toolSchema, { signal }),
10
+ getAllToolSchemas: (signal) => req('/api/tools-schema', s.allToolSchemas, { signal }),
11
+ runTool: (args, signal) => req('/api/run-tool', s.runToolResult, {
12
+ method: 'POST',
13
+ // The backend's `/api/run-tool` door reads `{tool_name, arguments}` (the
14
+ // shape `read_tool_call` enforces and the background `/api/tool-runs`
15
+ // submit already sends). The SPA keeps `tool`/`kwargs` as its ergonomic
16
+ // arg names; map them onto the wire fields here.
17
+ body: { tool_name: args.tool, arguments: args.kwargs ?? {} },
18
+ signal,
19
+ }),
20
+ // Re-register or remove one app tool by kind+name, applied on this worker and
21
+ // broadcast to the fleet (all workers, or only `targets`); both return the bare
22
+ // per-worker `fleetResult` the shared fleet-report handler renders. Both are
23
+ // fenced + destructive server-side, so a refusal surfaces as a loud error.
24
+ reloadTool: (args) => req('/api/tools/reload', s.fleetResult, {
25
+ method: 'POST',
26
+ body: { kind: args.kind, name: args.name, targets: args.targets ?? null },
27
+ }),
28
+ removeTool: (args) => req('/api/tools/remove', s.fleetResult, {
29
+ method: 'POST',
30
+ body: { kind: args.kind, name: args.name, targets: args.targets ?? null },
31
+ }),
32
+ submitToolRun: (args, signal) => submitToolRun(config, args, signal),
33
+ getToolRun: (runId, signal) => getToolRun(config, runId, signal),
34
+ listToolRuns: (toolName, signal) => listToolRuns(config, toolName, signal),
35
+ listToolTags: (signal) => req('/api/tools/tags', s.toolTags, { signal }),
36
+ };
37
+ }
38
+ //# sourceMappingURL=tools-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools-client.js","sourceRoot":"","sources":["../../src/client/tools-client.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAA0B,MAAM,cAAc,CAAC;AAoB/F,MAAM,UAAU,WAAW,CAAC,CAAY;IACtC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO;QACL,SAAS,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC;QAC/E,aAAa,EAAE,CAAC,IAAY,EAAE,MAAoB,EAAE,EAAE,CACpD,GAAG,CAAC,cAAc,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC;QAC3E,iBAAiB,EAAE,CAAC,MAAoB,EAAE,EAAE,CAC1C,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC;QACxD,OAAO,EAAE,CAAC,IAAiB,EAAE,MAAoB,EAAE,EAAE,CACnD,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,aAAa,EAAE;YACpC,MAAM,EAAE,MAAM;YACd,yEAAyE;YACzE,sEAAsE;YACtE,wEAAwE;YACxE,iDAAiD;YACjD,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE;YAC5D,MAAM;SACP,CAAC;QAEJ,8EAA8E;QAC9E,gFAAgF;QAChF,6EAA6E;QAC7E,2EAA2E;QAC3E,UAAU,EAAE,CAAC,IAAmB,EAAE,EAAE,CAClC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,WAAW,EAAE;YACtC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;SAC1E,CAAC;QACJ,UAAU,EAAE,CAAC,IAAmB,EAAE,EAAE,CAClC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,WAAW,EAAE;YACtC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;SAC1E,CAAC;QAEJ,aAAa,EAAE,CAAC,IAAuB,EAAE,MAAoB,EAAE,EAAE,CAC/D,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;QACrC,UAAU,EAAE,CAAC,KAAa,EAAE,MAAoB,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;QACtF,YAAY,EAAE,CAAC,QAAgB,EAAE,MAAoB,EAAE,EAAE,CACvD,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;QAExC,YAAY,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC;KACvF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ /** The shared transport seam every sub-client method flows through. */
2
+ import type { ApiConfig } from '../http';
3
+ import { apiRequest } from '../http';
4
+ /**
5
+ * Build the per-request transport for one client: the bound `config` and the
6
+ * `req` chokepoint that validates every response against its schema.
7
+ */
8
+ export declare function makeTransport(config: ApiConfig): {
9
+ config: ApiConfig;
10
+ req: <S extends Parameters<typeof apiRequest>[2]>(path: string, schema: S, options?: Parameters<typeof apiRequest>[3]) => Promise<import("zod").infer<S>>;
11
+ };
12
+ export type Transport = ReturnType<typeof makeTransport>;
13
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/client/transport.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS;;UAChC,CAAC,SAAS,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,QAC/C,MAAM,UACJ,CAAC,YACC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;EAG7C;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { apiRequest } from '../http';
2
+ /**
3
+ * Build the per-request transport for one client: the bound `config` and the
4
+ * `req` chokepoint that validates every response against its schema.
5
+ */
6
+ export function makeTransport(config) {
7
+ const req = (path, schema, options) => apiRequest(config, path, schema, options);
8
+ return { config, req };
9
+ }
10
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/client/transport.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC7C,MAAM,GAAG,GAAG,CACV,IAAY,EACZ,MAAS,EACT,OAA0C,EAC1C,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzB,CAAC"}
@@ -0,0 +1,44 @@
1
+ import type { Transport } from './transport';
2
+ /**
3
+ * Body for minting a trigger link (POST `/api/hooks/trigger-links`). `ttl_seconds`
4
+ * is REQUIRED and nullable — a positive int is a timed link, `null` is a permanent
5
+ * link (`0`/negative is a loud server 400); it is always sent EXPLICITLY (a dropped
6
+ * key 400s server-side). `name` is optional (the server generates one when omitted);
7
+ * `tool_kwargs` is the optional per-link params merged last into every fire.
8
+ */
9
+ export interface TriggerLinkCreateBody {
10
+ readonly topic: string;
11
+ readonly name?: string;
12
+ readonly execution_key: string;
13
+ readonly require_api_key: boolean;
14
+ readonly ttl_seconds: number | null;
15
+ readonly tool_kwargs?: Record<string, unknown> | null;
16
+ }
17
+ export declare function triggerLinksClient(t: Transport): {
18
+ createTriggerLink: (body: TriggerLinkCreateBody) => Promise<{
19
+ name: string;
20
+ trigger_path: string;
21
+ token: string;
22
+ topic: string;
23
+ expires_at: string | null;
24
+ }>;
25
+ listTriggerLinks: (signal?: AbortSignal) => Promise<{
26
+ items: {
27
+ name: string;
28
+ topic: string;
29
+ execution_key: string;
30
+ trigger_auth: "public" | "verifier" | "token" | "token+api_key" | "out-of-service";
31
+ tool_kwargs: Record<string, unknown> | null;
32
+ created_by: string | null;
33
+ created_at: string;
34
+ expires_at: string | null;
35
+ token_hash_prefix: string;
36
+ }[];
37
+ total: number;
38
+ }>;
39
+ deleteTriggerLink: (name: string) => Promise<{
40
+ removed: boolean;
41
+ name: string;
42
+ }>;
43
+ };
44
+ //# sourceMappingURL=trigger-links-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger-links-client.d.ts","sourceRoot":"","sources":["../../src/client/trigger-links-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACvD;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,SAAS;8BAOjB,qBAAqB;;;;;;;gCAanB,WAAW;;;;;;;;;;;;;;8BAGb,MAAM;;;;EAKnC"}