@tai42/api-client 15.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 (383) 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} +2199 -2508
  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/generated/served-schemas.d.ts +748 -0
  142. package/dist/generated/served-schemas.d.ts.map +1 -0
  143. package/dist/generated/served-schemas.js +60 -0
  144. package/dist/generated/served-schemas.js.map +1 -0
  145. package/dist/http.d.ts.map +1 -1
  146. package/dist/http.js +33 -17
  147. package/dist/http.js.map +1 -1
  148. package/dist/index.d.ts +1 -1
  149. package/dist/index.d.ts.map +1 -1
  150. package/dist/schemas/api-keys.d.ts +34 -0
  151. package/dist/schemas/api-keys.d.ts.map +1 -0
  152. package/dist/schemas/api-keys.js +22 -0
  153. package/dist/schemas/api-keys.js.map +1 -0
  154. package/dist/schemas/auth-routes.d.ts +78 -0
  155. package/dist/schemas/auth-routes.d.ts.map +1 -0
  156. package/dist/schemas/auth-routes.js +42 -0
  157. package/dist/schemas/auth-routes.js.map +1 -0
  158. package/dist/schemas/backup.d.ts +78 -0
  159. package/dist/schemas/backup.d.ts.map +1 -0
  160. package/dist/schemas/backup.js +33 -0
  161. package/dist/schemas/backup.js.map +1 -0
  162. package/dist/schemas/capabilities.d.ts +99 -0
  163. package/dist/schemas/capabilities.d.ts.map +1 -0
  164. package/dist/schemas/capabilities.js +74 -0
  165. package/dist/schemas/capabilities.js.map +1 -0
  166. package/dist/schemas/channels.d.ts +7 -0
  167. package/dist/schemas/channels.d.ts.map +1 -0
  168. package/dist/schemas/channels.js +9 -0
  169. package/dist/schemas/channels.js.map +1 -0
  170. package/dist/schemas/config.d.ts +17 -0
  171. package/dist/schemas/config.d.ts.map +1 -0
  172. package/dist/schemas/config.js +17 -0
  173. package/dist/schemas/config.js.map +1 -0
  174. package/dist/schemas/connectors.d.ts +383 -0
  175. package/dist/schemas/connectors.d.ts.map +1 -0
  176. package/dist/schemas/connectors.js +122 -0
  177. package/dist/schemas/connectors.js.map +1 -0
  178. package/dist/schemas/conversations.d.ts +600 -0
  179. package/dist/schemas/conversations.d.ts.map +1 -0
  180. package/dist/schemas/conversations.js +208 -0
  181. package/dist/schemas/conversations.js.map +1 -0
  182. package/dist/schemas/extensions.d.ts +44 -0
  183. package/dist/schemas/extensions.d.ts.map +1 -0
  184. package/dist/schemas/extensions.js +29 -0
  185. package/dist/schemas/extensions.js.map +1 -0
  186. package/dist/schemas/fleet.d.ts +271 -0
  187. package/dist/schemas/fleet.d.ts.map +1 -0
  188. package/dist/schemas/fleet.js +132 -0
  189. package/dist/schemas/fleet.js.map +1 -0
  190. package/dist/schemas/hooks.d.ts +120 -0
  191. package/dist/schemas/hooks.d.ts.map +1 -0
  192. package/dist/schemas/hooks.js +44 -0
  193. package/dist/schemas/hooks.js.map +1 -0
  194. package/dist/schemas/index.d.ts +38 -0
  195. package/dist/schemas/index.d.ts.map +1 -0
  196. package/dist/schemas/index.js +38 -0
  197. package/dist/schemas/index.js.map +1 -0
  198. package/dist/schemas/interactions.d.ts +156 -0
  199. package/dist/schemas/interactions.d.ts.map +1 -0
  200. package/dist/schemas/interactions.js +124 -0
  201. package/dist/schemas/interactions.js.map +1 -0
  202. package/dist/schemas/login.d.ts +86 -0
  203. package/dist/schemas/login.d.ts.map +1 -0
  204. package/dist/schemas/login.js +54 -0
  205. package/dist/schemas/login.js.map +1 -0
  206. package/dist/schemas/manifest-mcp.d.ts +125 -0
  207. package/dist/schemas/manifest-mcp.d.ts.map +1 -0
  208. package/dist/schemas/manifest-mcp.js +61 -0
  209. package/dist/schemas/manifest-mcp.js.map +1 -0
  210. package/dist/schemas/marketplace.d.ts +708 -0
  211. package/dist/schemas/marketplace.d.ts.map +1 -0
  212. package/dist/schemas/marketplace.js +387 -0
  213. package/dist/schemas/marketplace.js.map +1 -0
  214. package/dist/schemas/notifications.d.ts +61 -0
  215. package/dist/schemas/notifications.d.ts.map +1 -0
  216. package/dist/schemas/notifications.js +38 -0
  217. package/dist/schemas/notifications.js.map +1 -0
  218. package/dist/schemas/observability.d.ts +114 -0
  219. package/dist/schemas/observability.d.ts.map +1 -0
  220. package/dist/schemas/observability.js +74 -0
  221. package/dist/schemas/observability.js.map +1 -0
  222. package/dist/schemas/policy.d.ts +58 -0
  223. package/dist/schemas/policy.d.ts.map +1 -0
  224. package/dist/schemas/policy.js +32 -0
  225. package/dist/schemas/policy.js.map +1 -0
  226. package/dist/schemas/presets.d.ts +258 -0
  227. package/dist/schemas/presets.d.ts.map +1 -0
  228. package/dist/schemas/presets.js +95 -0
  229. package/dist/schemas/presets.js.map +1 -0
  230. package/dist/schemas/profiles.d.ts +180 -0
  231. package/dist/schemas/profiles.d.ts.map +1 -0
  232. package/dist/schemas/profiles.js +100 -0
  233. package/dist/schemas/profiles.js.map +1 -0
  234. package/dist/schemas/roles.d.ts +125 -0
  235. package/dist/schemas/roles.d.ts.map +1 -0
  236. package/dist/schemas/roles.js +46 -0
  237. package/dist/schemas/roles.js.map +1 -0
  238. package/dist/schemas/schedules.d.ts +25 -0
  239. package/dist/schemas/schedules.d.ts.map +1 -0
  240. package/dist/schemas/schedules.js +24 -0
  241. package/dist/schemas/schedules.js.map +1 -0
  242. package/dist/schemas/served.d.ts +626 -0
  243. package/dist/schemas/served.d.ts.map +1 -0
  244. package/dist/schemas/served.js +28 -0
  245. package/dist/schemas/served.js.map +1 -0
  246. package/dist/schemas/settings-schema.d.ts +23 -0
  247. package/dist/schemas/settings-schema.d.ts.map +1 -0
  248. package/dist/schemas/settings-schema.js +25 -0
  249. package/dist/schemas/settings-schema.js.map +1 -0
  250. package/dist/schemas/shared.d.ts +20 -0
  251. package/dist/schemas/shared.d.ts.map +1 -0
  252. package/dist/schemas/shared.js +20 -0
  253. package/dist/schemas/shared.js.map +1 -0
  254. package/dist/schemas/states.d.ts +499 -0
  255. package/dist/schemas/states.d.ts.map +1 -0
  256. package/dist/schemas/states.js +220 -0
  257. package/dist/schemas/states.js.map +1 -0
  258. package/dist/schemas/storage.d.ts +37 -0
  259. package/dist/schemas/storage.d.ts.map +1 -0
  260. package/dist/schemas/storage.js +24 -0
  261. package/dist/schemas/storage.js.map +1 -0
  262. package/dist/schemas/studio-plugins.d.ts +30 -0
  263. package/dist/schemas/studio-plugins.d.ts.map +1 -0
  264. package/dist/schemas/studio-plugins.js +20 -0
  265. package/dist/schemas/studio-plugins.js.map +1 -0
  266. package/dist/schemas/sub-mcp.d.ts +29 -0
  267. package/dist/schemas/sub-mcp.d.ts.map +1 -0
  268. package/dist/schemas/sub-mcp.js +22 -0
  269. package/dist/schemas/sub-mcp.js.map +1 -0
  270. package/dist/schemas/system-kinds.d.ts +122 -0
  271. package/dist/schemas/system-kinds.d.ts.map +1 -0
  272. package/dist/schemas/system-kinds.js +40 -0
  273. package/dist/schemas/system-kinds.js.map +1 -0
  274. package/dist/schemas/templates.d.ts +26 -0
  275. package/dist/schemas/templates.d.ts.map +1 -0
  276. package/dist/schemas/templates.js +11 -0
  277. package/dist/schemas/templates.js.map +1 -0
  278. package/dist/schemas/tool-meta.d.ts +64 -0
  279. package/dist/schemas/tool-meta.d.ts.map +1 -0
  280. package/dist/schemas/tool-meta.js +44 -0
  281. package/dist/schemas/tool-meta.js.map +1 -0
  282. package/dist/schemas/tools.d.ts +62 -0
  283. package/dist/schemas/tools.d.ts.map +1 -0
  284. package/dist/schemas/tools.js +53 -0
  285. package/dist/schemas/tools.js.map +1 -0
  286. package/dist/schemas/trigger-links.d.ts +71 -0
  287. package/dist/schemas/trigger-links.d.ts.map +1 -0
  288. package/dist/schemas/trigger-links.js +46 -0
  289. package/dist/schemas/trigger-links.js.map +1 -0
  290. package/dist/schemas/web-entry.d.ts +45 -0
  291. package/dist/schemas/web-entry.d.ts.map +1 -0
  292. package/dist/schemas/web-entry.js +36 -0
  293. package/dist/schemas/web-entry.js.map +1 -0
  294. package/dist/templated-text.d.ts +30 -0
  295. package/dist/templated-text.d.ts.map +1 -0
  296. package/dist/templated-text.js +30 -0
  297. package/dist/templated-text.js.map +1 -0
  298. package/dist/tool-runs.d.ts +4 -4
  299. package/package.json +6 -2
  300. package/src/client/agents-client.ts +23 -0
  301. package/src/client/auth-client.ts +144 -0
  302. package/src/client/backend-client.ts +25 -0
  303. package/src/client/backup-client.ts +16 -0
  304. package/src/client/capabilities-client.ts +22 -0
  305. package/src/client/channels-client.ts +11 -0
  306. package/src/client/config-client.ts +21 -0
  307. package/src/client/connectors-client.ts +52 -0
  308. package/src/client/conversations-client.ts +240 -0
  309. package/src/client/hooks-client.ts +44 -0
  310. package/src/client/index.ts +122 -0
  311. package/src/client/interactions-client.ts +89 -0
  312. package/src/client/login-client.ts +109 -0
  313. package/src/client/manifest-client.ts +118 -0
  314. package/src/client/marketplace-client.ts +122 -0
  315. package/src/client/mcp-config-schema-client.ts +11 -0
  316. package/src/client/notifications-client.ts +13 -0
  317. package/src/client/observability-client.ts +82 -0
  318. package/src/client/plugins-client.ts +11 -0
  319. package/src/client/policy-client.ts +41 -0
  320. package/src/client/presets-client.ts +124 -0
  321. package/src/client/profiles-client.ts +51 -0
  322. package/src/client/schedules-client.ts +22 -0
  323. package/src/client/settings-schema-client.ts +11 -0
  324. package/src/client/states-client.ts +292 -0
  325. package/src/client/storage-client.ts +63 -0
  326. package/src/client/sub-mcp-client.ts +17 -0
  327. package/src/client/system-client.ts +16 -0
  328. package/src/client/templates-client.ts +28 -0
  329. package/src/client/tool-extensions-client.ts +24 -0
  330. package/src/client/tool-meta-client.ts +65 -0
  331. package/src/client/tools-client.ts +66 -0
  332. package/src/client/transport.ts +18 -0
  333. package/src/client/trigger-links-client.ts +51 -0
  334. package/src/client/web-entry-gate-client.ts +45 -0
  335. package/src/generated/served-schemas.ts +126 -0
  336. package/src/http.ts +48 -24
  337. package/src/index.ts +1 -0
  338. package/src/schemas/api-keys.ts +26 -0
  339. package/src/schemas/auth-routes.ts +48 -0
  340. package/src/schemas/backup.ts +42 -0
  341. package/src/schemas/capabilities.ts +87 -0
  342. package/src/schemas/channels.ts +11 -0
  343. package/src/schemas/config.ts +17 -0
  344. package/src/schemas/connectors.ts +138 -0
  345. package/src/schemas/conversations.ts +256 -0
  346. package/src/schemas/extensions.ts +34 -0
  347. package/src/schemas/fleet.ts +153 -0
  348. package/src/schemas/hooks.ts +56 -0
  349. package/src/schemas/index.ts +37 -0
  350. package/src/schemas/interactions.ts +146 -0
  351. package/src/schemas/login.ts +62 -0
  352. package/src/schemas/manifest-mcp.ts +69 -0
  353. package/src/schemas/marketplace.ts +447 -0
  354. package/src/schemas/notifications.ts +42 -0
  355. package/src/schemas/observability.ts +86 -0
  356. package/src/schemas/policy.ts +37 -0
  357. package/src/schemas/presets.ts +113 -0
  358. package/src/schemas/profiles.ts +119 -0
  359. package/src/schemas/roles.ts +57 -0
  360. package/src/schemas/schedules.ts +27 -0
  361. package/src/schemas/served.ts +49 -0
  362. package/src/schemas/settings-schema.ts +31 -0
  363. package/src/schemas/shared.ts +21 -0
  364. package/src/schemas/states.ts +272 -0
  365. package/src/schemas/storage.ts +31 -0
  366. package/src/schemas/studio-plugins.ts +21 -0
  367. package/src/schemas/sub-mcp.ts +24 -0
  368. package/src/schemas/system-kinds.ts +46 -0
  369. package/src/schemas/templates.ts +11 -0
  370. package/src/schemas/tool-meta.ts +51 -0
  371. package/src/schemas/tools.ts +61 -0
  372. package/src/schemas/trigger-links.ts +54 -0
  373. package/src/schemas/web-entry.ts +46 -0
  374. package/src/templated-text.ts +35 -0
  375. package/dist/client.d.ts.map +0 -1
  376. package/dist/client.js +0 -920
  377. package/dist/client.js.map +0 -1
  378. package/dist/schemas.d.ts +0 -5152
  379. package/dist/schemas.d.ts.map +0 -1
  380. package/dist/schemas.js +0 -2556
  381. package/dist/schemas.js.map +0 -1
  382. package/src/client.ts +0 -1765
  383. package/src/schemas.ts +0 -3067
@@ -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"}