@ulearning/ai-vue-mcp 0.0.0-stage → 1.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/LICENSE +21 -0
  2. package/dist/_virtual/_rolldown/runtime.js +12 -0
  3. package/dist/auth/buildHeaders.d.ts +9 -0
  4. package/dist/auth/buildHeaders.d.ts.map +1 -0
  5. package/dist/auth/buildHeaders.js +16 -0
  6. package/dist/auth/buildHeaders.js.map +1 -0
  7. package/dist/auth/createOAuthProvider.d.ts +40 -0
  8. package/dist/auth/createOAuthProvider.d.ts.map +1 -0
  9. package/dist/auth/createOAuthProvider.js +301 -0
  10. package/dist/auth/createOAuthProvider.js.map +1 -0
  11. package/dist/auth/types.d.ts +15 -0
  12. package/dist/auth/types.d.ts.map +1 -0
  13. package/dist/auth/types.js +0 -0
  14. package/dist/connector.d.ts +3 -0
  15. package/dist/connector.d.ts.map +1 -0
  16. package/dist/connector.js +9 -0
  17. package/dist/connector.js.map +1 -0
  18. package/dist/context/McpConnectorByIndexProvider.d.ts +9 -0
  19. package/dist/context/McpConnectorByIndexProvider.d.ts.map +1 -0
  20. package/dist/context/McpConnectorByIndexProvider.js +29 -0
  21. package/dist/context/McpConnectorByIndexProvider.js.map +1 -0
  22. package/dist/context/McpCustomServerByIndexProvider.d.ts +9 -0
  23. package/dist/context/McpCustomServerByIndexProvider.d.ts.map +1 -0
  24. package/dist/context/McpCustomServerByIndexProvider.js +29 -0
  25. package/dist/context/McpCustomServerByIndexProvider.js.map +1 -0
  26. package/dist/context/McpServerByIdProvider.d.ts +9 -0
  27. package/dist/context/McpServerByIdProvider.d.ts.map +1 -0
  28. package/dist/context/McpServerByIdProvider.js +26 -0
  29. package/dist/context/McpServerByIdProvider.js.map +1 -0
  30. package/dist/context/useMcpChildren.d.ts +3 -0
  31. package/dist/context/useMcpChildren.d.ts.map +1 -0
  32. package/dist/context/useMcpChildren.js +9 -0
  33. package/dist/context/useMcpChildren.js.map +1 -0
  34. package/dist/hooks/useMcpOAuthCallback.d.ts +23 -0
  35. package/dist/hooks/useMcpOAuthCallback.d.ts.map +1 -0
  36. package/dist/hooks/useMcpOAuthCallback.js +102 -0
  37. package/dist/hooks/useMcpOAuthCallback.js.map +1 -0
  38. package/dist/index.d.ts +20 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +16 -0
  41. package/dist/mcp-scope.d.ts +151 -0
  42. package/dist/mcp-scope.d.ts.map +1 -0
  43. package/dist/mcp-scope.js +1 -0
  44. package/dist/primitives/addForm/McpAddFormAuthFields.d.ts +8 -0
  45. package/dist/primitives/addForm/McpAddFormAuthFields.d.ts.map +1 -0
  46. package/dist/primitives/addForm/McpAddFormAuthFields.js +30 -0
  47. package/dist/primitives/addForm/McpAddFormAuthFields.js.map +1 -0
  48. package/dist/primitives/addForm/McpAddFormAuthSelect.d.ts +16 -0
  49. package/dist/primitives/addForm/McpAddFormAuthSelect.d.ts.map +1 -0
  50. package/dist/primitives/addForm/McpAddFormAuthSelect.js +35 -0
  51. package/dist/primitives/addForm/McpAddFormAuthSelect.js.map +1 -0
  52. package/dist/primitives/addForm/McpAddFormBearerTokenField.d.ts +16 -0
  53. package/dist/primitives/addForm/McpAddFormBearerTokenField.d.ts.map +1 -0
  54. package/dist/primitives/addForm/McpAddFormBearerTokenField.js +32 -0
  55. package/dist/primitives/addForm/McpAddFormBearerTokenField.js.map +1 -0
  56. package/dist/primitives/addForm/McpAddFormCancel.d.ts +16 -0
  57. package/dist/primitives/addForm/McpAddFormCancel.d.ts.map +1 -0
  58. package/dist/primitives/addForm/McpAddFormCancel.js +34 -0
  59. package/dist/primitives/addForm/McpAddFormCancel.js.map +1 -0
  60. package/dist/primitives/addForm/McpAddFormError.d.ts +16 -0
  61. package/dist/primitives/addForm/McpAddFormError.d.ts.map +1 -0
  62. package/dist/primitives/addForm/McpAddFormError.js +36 -0
  63. package/dist/primitives/addForm/McpAddFormError.js.map +1 -0
  64. package/dist/primitives/addForm/McpAddFormNameField.d.ts +16 -0
  65. package/dist/primitives/addForm/McpAddFormNameField.d.ts.map +1 -0
  66. package/dist/primitives/addForm/McpAddFormNameField.js +35 -0
  67. package/dist/primitives/addForm/McpAddFormNameField.js.map +1 -0
  68. package/dist/primitives/addForm/McpAddFormRoot.d.ts +20 -0
  69. package/dist/primitives/addForm/McpAddFormRoot.d.ts.map +1 -0
  70. package/dist/primitives/addForm/McpAddFormRoot.js +158 -0
  71. package/dist/primitives/addForm/McpAddFormRoot.js.map +1 -0
  72. package/dist/primitives/addForm/McpAddFormScopesField.d.ts +16 -0
  73. package/dist/primitives/addForm/McpAddFormScopesField.d.ts.map +1 -0
  74. package/dist/primitives/addForm/McpAddFormScopesField.js +33 -0
  75. package/dist/primitives/addForm/McpAddFormScopesField.js.map +1 -0
  76. package/dist/primitives/addForm/McpAddFormSubmit.d.ts +16 -0
  77. package/dist/primitives/addForm/McpAddFormSubmit.d.ts.map +1 -0
  78. package/dist/primitives/addForm/McpAddFormSubmit.js +32 -0
  79. package/dist/primitives/addForm/McpAddFormSubmit.js.map +1 -0
  80. package/dist/primitives/addForm/McpAddFormUrlField.d.ts +16 -0
  81. package/dist/primitives/addForm/McpAddFormUrlField.d.ts.map +1 -0
  82. package/dist/primitives/addForm/McpAddFormUrlField.js +36 -0
  83. package/dist/primitives/addForm/McpAddFormUrlField.js.map +1 -0
  84. package/dist/primitives/addForm/context.d.ts +30 -0
  85. package/dist/primitives/addForm/context.d.ts.map +1 -0
  86. package/dist/primitives/addForm/context.js +11 -0
  87. package/dist/primitives/addForm/context.js.map +1 -0
  88. package/dist/primitives/addForm.d.ts +11 -0
  89. package/dist/primitives/addForm.d.ts.map +1 -0
  90. package/dist/primitives/addForm.js +27 -0
  91. package/dist/primitives/addForm.js.map +1 -0
  92. package/dist/primitives/elicitation/McpElicitationPrimitiveAccept.d.ts +16 -0
  93. package/dist/primitives/elicitation/McpElicitationPrimitiveAccept.d.ts.map +1 -0
  94. package/dist/primitives/elicitation/McpElicitationPrimitiveAccept.js +46 -0
  95. package/dist/primitives/elicitation/McpElicitationPrimitiveAccept.js.map +1 -0
  96. package/dist/primitives/elicitation/McpElicitationPrimitiveCancel.d.ts +16 -0
  97. package/dist/primitives/elicitation/McpElicitationPrimitiveCancel.d.ts.map +1 -0
  98. package/dist/primitives/elicitation/McpElicitationPrimitiveCancel.js +36 -0
  99. package/dist/primitives/elicitation/McpElicitationPrimitiveCancel.js.map +1 -0
  100. package/dist/primitives/elicitation/McpElicitationPrimitiveDecline.d.ts +16 -0
  101. package/dist/primitives/elicitation/McpElicitationPrimitiveDecline.d.ts.map +1 -0
  102. package/dist/primitives/elicitation/McpElicitationPrimitiveDecline.js +36 -0
  103. package/dist/primitives/elicitation/McpElicitationPrimitiveDecline.js.map +1 -0
  104. package/dist/primitives/elicitation/McpElicitationPrimitiveError.d.ts +16 -0
  105. package/dist/primitives/elicitation/McpElicitationPrimitiveError.d.ts.map +1 -0
  106. package/dist/primitives/elicitation/McpElicitationPrimitiveError.js +31 -0
  107. package/dist/primitives/elicitation/McpElicitationPrimitiveError.js.map +1 -0
  108. package/dist/primitives/elicitation/McpElicitationPrimitiveFields.d.ts +10 -0
  109. package/dist/primitives/elicitation/McpElicitationPrimitiveFields.d.ts.map +1 -0
  110. package/dist/primitives/elicitation/McpElicitationPrimitiveFields.js +39 -0
  111. package/dist/primitives/elicitation/McpElicitationPrimitiveFields.js.map +1 -0
  112. package/dist/primitives/elicitation/McpElicitationPrimitiveItems.d.ts +10 -0
  113. package/dist/primitives/elicitation/McpElicitationPrimitiveItems.d.ts.map +1 -0
  114. package/dist/primitives/elicitation/McpElicitationPrimitiveItems.js +36 -0
  115. package/dist/primitives/elicitation/McpElicitationPrimitiveItems.js.map +1 -0
  116. package/dist/primitives/elicitation/McpElicitationPrimitiveMessage.d.ts +16 -0
  117. package/dist/primitives/elicitation/McpElicitationPrimitiveMessage.d.ts.map +1 -0
  118. package/dist/primitives/elicitation/McpElicitationPrimitiveMessage.js +28 -0
  119. package/dist/primitives/elicitation/McpElicitationPrimitiveMessage.js.map +1 -0
  120. package/dist/primitives/elicitation/McpElicitationPrimitiveRoot.d.ts +16 -0
  121. package/dist/primitives/elicitation/McpElicitationPrimitiveRoot.d.ts.map +1 -0
  122. package/dist/primitives/elicitation/McpElicitationPrimitiveRoot.js +32 -0
  123. package/dist/primitives/elicitation/McpElicitationPrimitiveRoot.js.map +1 -0
  124. package/dist/primitives/elicitation/context.d.ts +19 -0
  125. package/dist/primitives/elicitation/context.d.ts.map +1 -0
  126. package/dist/primitives/elicitation/context.js +21 -0
  127. package/dist/primitives/elicitation/context.js.map +1 -0
  128. package/dist/primitives/elicitation/initialElicitationDraft.d.ts +2 -0
  129. package/dist/primitives/elicitation/initialElicitationDraft.d.ts.map +1 -0
  130. package/dist/primitives/elicitation/initialElicitationDraft.js +26 -0
  131. package/dist/primitives/elicitation/initialElicitationDraft.js.map +1 -0
  132. package/dist/primitives/elicitation/prepareElicitationContent.d.ts +6 -0
  133. package/dist/primitives/elicitation/prepareElicitationContent.d.ts.map +1 -0
  134. package/dist/primitives/elicitation/prepareElicitationContent.js +49 -0
  135. package/dist/primitives/elicitation/prepareElicitationContent.js.map +1 -0
  136. package/dist/primitives/elicitation.d.ts +9 -0
  137. package/dist/primitives/elicitation.d.ts.map +1 -0
  138. package/dist/primitives/elicitation.js +26 -0
  139. package/dist/primitives/elicitation.js.map +1 -0
  140. package/dist/primitives/manager/McpManagerAddCustomTrigger.d.ts +16 -0
  141. package/dist/primitives/manager/McpManagerAddCustomTrigger.d.ts.map +1 -0
  142. package/dist/primitives/manager/McpManagerAddCustomTrigger.js +30 -0
  143. package/dist/primitives/manager/McpManagerAddCustomTrigger.js.map +1 -0
  144. package/dist/primitives/manager/McpManagerConnectors.d.ts +11 -0
  145. package/dist/primitives/manager/McpManagerConnectors.d.ts.map +1 -0
  146. package/dist/primitives/manager/McpManagerConnectors.js +26 -0
  147. package/dist/primitives/manager/McpManagerConnectors.js.map +1 -0
  148. package/dist/primitives/manager/McpManagerCustomServers.d.ts +11 -0
  149. package/dist/primitives/manager/McpManagerCustomServers.d.ts.map +1 -0
  150. package/dist/primitives/manager/McpManagerCustomServers.js +26 -0
  151. package/dist/primitives/manager/McpManagerCustomServers.js.map +1 -0
  152. package/dist/primitives/manager/McpManagerRoot.d.ts +16 -0
  153. package/dist/primitives/manager/McpManagerRoot.d.ts.map +1 -0
  154. package/dist/primitives/manager/McpManagerRoot.js +32 -0
  155. package/dist/primitives/manager/McpManagerRoot.js.map +1 -0
  156. package/dist/primitives/manager.d.ts +5 -0
  157. package/dist/primitives/manager.d.ts.map +1 -0
  158. package/dist/primitives/manager.js +15 -0
  159. package/dist/primitives/manager.js.map +1 -0
  160. package/dist/primitives/server/McpServerConnectButton.d.ts +16 -0
  161. package/dist/primitives/server/McpServerConnectButton.d.ts.map +1 -0
  162. package/dist/primitives/server/McpServerConnectButton.js +42 -0
  163. package/dist/primitives/server/McpServerConnectButton.js.map +1 -0
  164. package/dist/primitives/server/McpServerDisconnectButton.d.ts +16 -0
  165. package/dist/primitives/server/McpServerDisconnectButton.d.ts.map +1 -0
  166. package/dist/primitives/server/McpServerDisconnectButton.js +41 -0
  167. package/dist/primitives/server/McpServerDisconnectButton.js.map +1 -0
  168. package/dist/primitives/server/McpServerError.d.ts +16 -0
  169. package/dist/primitives/server/McpServerError.d.ts.map +1 -0
  170. package/dist/primitives/server/McpServerError.js +29 -0
  171. package/dist/primitives/server/McpServerError.js.map +1 -0
  172. package/dist/primitives/server/McpServerIcon.d.ts +16 -0
  173. package/dist/primitives/server/McpServerIcon.d.ts.map +1 -0
  174. package/dist/primitives/server/McpServerIcon.js +38 -0
  175. package/dist/primitives/server/McpServerIcon.js.map +1 -0
  176. package/dist/primitives/server/McpServerName.d.ts +16 -0
  177. package/dist/primitives/server/McpServerName.d.ts.map +1 -0
  178. package/dist/primitives/server/McpServerName.js +28 -0
  179. package/dist/primitives/server/McpServerName.js.map +1 -0
  180. package/dist/primitives/server/McpServerOAuthLink.d.ts +16 -0
  181. package/dist/primitives/server/McpServerOAuthLink.d.ts.map +1 -0
  182. package/dist/primitives/server/McpServerOAuthLink.js +35 -0
  183. package/dist/primitives/server/McpServerOAuthLink.js.map +1 -0
  184. package/dist/primitives/server/McpServerRemoveButton.d.ts +16 -0
  185. package/dist/primitives/server/McpServerRemoveButton.d.ts.map +1 -0
  186. package/dist/primitives/server/McpServerRemoveButton.js +37 -0
  187. package/dist/primitives/server/McpServerRemoveButton.js.map +1 -0
  188. package/dist/primitives/server/McpServerRoot.d.ts +16 -0
  189. package/dist/primitives/server/McpServerRoot.d.ts.map +1 -0
  190. package/dist/primitives/server/McpServerRoot.js +40 -0
  191. package/dist/primitives/server/McpServerRoot.js.map +1 -0
  192. package/dist/primitives/server/McpServerStatus.d.ts +16 -0
  193. package/dist/primitives/server/McpServerStatus.d.ts.map +1 -0
  194. package/dist/primitives/server/McpServerStatus.js +29 -0
  195. package/dist/primitives/server/McpServerStatus.js.map +1 -0
  196. package/dist/primitives/server/McpServerToolName.d.ts +16 -0
  197. package/dist/primitives/server/McpServerToolName.d.ts.map +1 -0
  198. package/dist/primitives/server/McpServerToolName.js +29 -0
  199. package/dist/primitives/server/McpServerToolName.js.map +1 -0
  200. package/dist/primitives/server/McpServerTools.d.ts +10 -0
  201. package/dist/primitives/server/McpServerTools.d.ts.map +1 -0
  202. package/dist/primitives/server/McpServerTools.js +26 -0
  203. package/dist/primitives/server/McpServerTools.js.map +1 -0
  204. package/dist/primitives/server.d.ts +12 -0
  205. package/dist/primitives/server.d.ts.map +1 -0
  206. package/dist/primitives/server.js +30 -0
  207. package/dist/primitives/server.js.map +1 -0
  208. package/dist/resources/McpCustomServerPersistence.d.ts +17 -0
  209. package/dist/resources/McpCustomServerPersistence.d.ts.map +1 -0
  210. package/dist/resources/McpCustomServerPersistence.js +132 -0
  211. package/dist/resources/McpCustomServerPersistence.js.map +1 -0
  212. package/dist/resources/McpElicitationLifecycle.d.ts +12 -0
  213. package/dist/resources/McpElicitationLifecycle.d.ts.map +1 -0
  214. package/dist/resources/McpElicitationLifecycle.js +97 -0
  215. package/dist/resources/McpElicitationLifecycle.js.map +1 -0
  216. package/dist/resources/McpManagerResource.d.ts +15 -0
  217. package/dist/resources/McpManagerResource.d.ts.map +1 -0
  218. package/dist/resources/McpManagerResource.js +190 -0
  219. package/dist/resources/McpManagerResource.js.map +1 -0
  220. package/dist/resources/McpServerRemovalFence.d.ts +4 -0
  221. package/dist/resources/McpServerRemovalFence.d.ts.map +1 -0
  222. package/dist/resources/McpServerRemovalFence.js +10 -0
  223. package/dist/resources/McpServerRemovalFence.js.map +1 -0
  224. package/dist/resources/McpServerResource.d.ts +24 -0
  225. package/dist/resources/McpServerResource.d.ts.map +1 -0
  226. package/dist/resources/McpServerResource.js +445 -0
  227. package/dist/resources/McpServerResource.js.map +1 -0
  228. package/dist/resources/storage/McpCustomStorage.d.ts +3 -0
  229. package/dist/resources/storage/McpCustomStorage.d.ts.map +1 -0
  230. package/dist/resources/storage/McpCustomStorage.js +9 -0
  231. package/dist/resources/storage/McpCustomStorage.js.map +1 -0
  232. package/dist/resources/storage/McpLocalStorage.d.ts +17 -0
  233. package/dist/resources/storage/McpLocalStorage.d.ts.map +1 -0
  234. package/dist/resources/storage/McpLocalStorage.js +65 -0
  235. package/dist/resources/storage/McpLocalStorage.js.map +1 -0
  236. package/dist/resources/storage/McpMemoryStorage.d.ts +3 -0
  237. package/dist/resources/storage/McpMemoryStorage.d.ts.map +1 -0
  238. package/dist/resources/storage/McpMemoryStorage.js +25 -0
  239. package/dist/resources/storage/McpMemoryStorage.js.map +1 -0
  240. package/dist/resources/storage/McpStoredDataNormalization.d.ts +5 -0
  241. package/dist/resources/storage/McpStoredDataNormalization.d.ts.map +1 -0
  242. package/dist/resources/storage/McpStoredDataNormalization.js +94 -0
  243. package/dist/resources/storage/McpStoredDataNormalization.js.map +1 -0
  244. package/dist/resources/storage/types.d.ts +26 -0
  245. package/dist/resources/storage/types.d.ts.map +1 -0
  246. package/dist/resources/storage/types.js +1 -0
  247. package/dist/resources/validateElicitationContent.d.ts +7 -0
  248. package/dist/resources/validateElicitationContent.d.ts.map +1 -0
  249. package/dist/resources/validateElicitationContent.js +46 -0
  250. package/dist/resources/validateElicitationContent.js.map +1 -0
  251. package/dist/utils/createMcpId.d.ts +6 -0
  252. package/dist/utils/createMcpId.d.ts.map +1 -0
  253. package/dist/utils/createMcpId.js +10 -0
  254. package/dist/utils/createMcpId.js.map +1 -0
  255. package/dist/utils/invokeMcpCallback.d.ts +2 -0
  256. package/dist/utils/invokeMcpCallback.d.ts.map +1 -0
  257. package/dist/utils/invokeMcpCallback.js +8 -0
  258. package/dist/utils/invokeMcpCallback.js.map +1 -0
  259. package/dist/utils/serverId.d.ts +3 -0
  260. package/dist/utils/serverId.d.ts.map +1 -0
  261. package/dist/utils/serverId.js +16 -0
  262. package/dist/utils/serverId.js.map +1 -0
  263. package/dist/utils/serverUrl.d.ts +6 -0
  264. package/dist/utils/serverUrl.d.ts.map +1 -0
  265. package/dist/utils/serverUrl.js +28 -0
  266. package/dist/utils/serverUrl.js.map +1 -0
  267. package/dist/utils/toToolSchema.d.ts +11 -0
  268. package/dist/utils/toToolSchema.d.ts.map +1 -0
  269. package/dist/utils/toToolSchema.js +96 -0
  270. package/dist/utils/toToolSchema.js.map +1 -0
  271. package/dist/utils/toolName.d.ts +14 -0
  272. package/dist/utils/toolName.d.ts.map +1 -0
  273. package/dist/utils/toolName.js +25 -0
  274. package/dist/utils/toolName.js.map +1 -0
  275. package/package.json +82 -3
  276. package/src/__tests__/vue.ts +47 -0
  277. package/src/auth/buildHeaders.ts +19 -0
  278. package/src/auth/createOAuthProvider.test.ts +1029 -0
  279. package/src/auth/createOAuthProvider.ts +481 -0
  280. package/src/auth/types.ts +19 -0
  281. package/src/connector.ts +7 -0
  282. package/src/context/McpConnectorByIndexProvider.tsx +25 -0
  283. package/src/context/McpCustomServerByIndexProvider.tsx +25 -0
  284. package/src/context/McpServerByIdProvider.tsx +25 -0
  285. package/src/context/providers.children.test.tsx +135 -0
  286. package/src/context/useMcpChildren.ts +9 -0
  287. package/src/hooks/useMcpOAuthCallback.test.ts +446 -0
  288. package/src/hooks/useMcpOAuthCallback.tsx +157 -0
  289. package/src/index.ts +71 -0
  290. package/src/mcp-scope.ts +151 -0
  291. package/src/primitives/addForm/McpAddFormAccessibility.test.tsx +314 -0
  292. package/src/primitives/addForm/McpAddFormAuthFields.tsx +35 -0
  293. package/src/primitives/addForm/McpAddFormAuthSelect.tsx +49 -0
  294. package/src/primitives/addForm/McpAddFormBearerTokenField.tsx +53 -0
  295. package/src/primitives/addForm/McpAddFormCancel.tsx +39 -0
  296. package/src/primitives/addForm/McpAddFormError.tsx +57 -0
  297. package/src/primitives/addForm/McpAddFormNameField.tsx +50 -0
  298. package/src/primitives/addForm/McpAddFormRoot.test.tsx +217 -0
  299. package/src/primitives/addForm/McpAddFormRoot.tsx +177 -0
  300. package/src/primitives/addForm/McpAddFormScopesField.tsx +44 -0
  301. package/src/primitives/addForm/McpAddFormSubmit.disabled.test.tsx +171 -0
  302. package/src/primitives/addForm/McpAddFormSubmit.tsx +37 -0
  303. package/src/primitives/addForm/McpAddFormUrlField.tsx +58 -0
  304. package/src/primitives/addForm/context.tsx +48 -0
  305. package/src/primitives/addForm.ts +10 -0
  306. package/src/primitives/elicitation/McpElicitationPrimitiveAccept.tsx +55 -0
  307. package/src/primitives/elicitation/McpElicitationPrimitiveCancel.tsx +44 -0
  308. package/src/primitives/elicitation/McpElicitationPrimitiveDecline.tsx +44 -0
  309. package/src/primitives/elicitation/McpElicitationPrimitiveError.tsx +39 -0
  310. package/src/primitives/elicitation/McpElicitationPrimitiveFields.tsx +65 -0
  311. package/src/primitives/elicitation/McpElicitationPrimitiveItems.test.tsx +124 -0
  312. package/src/primitives/elicitation/McpElicitationPrimitiveItems.tsx +50 -0
  313. package/src/primitives/elicitation/McpElicitationPrimitiveMessage.tsx +39 -0
  314. package/src/primitives/elicitation/McpElicitationPrimitiveRoot.tsx +37 -0
  315. package/src/primitives/elicitation/context.tsx +45 -0
  316. package/src/primitives/elicitation/initialElicitationDraft.test.ts +34 -0
  317. package/src/primitives/elicitation/initialElicitationDraft.ts +39 -0
  318. package/src/primitives/elicitation/prepareElicitationContent.test.ts +415 -0
  319. package/src/primitives/elicitation/prepareElicitationContent.ts +118 -0
  320. package/src/primitives/elicitation.ts +14 -0
  321. package/src/primitives/manager/McpManagerAddCustomTrigger.tsx +37 -0
  322. package/src/primitives/manager/McpManagerConnectors.tsx +48 -0
  323. package/src/primitives/manager/McpManagerCustomServers.tsx +48 -0
  324. package/src/primitives/manager/McpManagerRoot.tsx +38 -0
  325. package/src/primitives/manager.ts +4 -0
  326. package/src/primitives/native-inheritance.test.tsx +495 -0
  327. package/src/primitives/server/McpServerConnectButton.tsx +46 -0
  328. package/src/primitives/server/McpServerDisconnectButton.tsx +44 -0
  329. package/src/primitives/server/McpServerError.tsx +38 -0
  330. package/src/primitives/server/McpServerIcon.tsx +42 -0
  331. package/src/primitives/server/McpServerName.tsx +37 -0
  332. package/src/primitives/server/McpServerOAuthLink.tsx +41 -0
  333. package/src/primitives/server/McpServerRemoveButton.test.tsx +88 -0
  334. package/src/primitives/server/McpServerRemoveButton.tsx +43 -0
  335. package/src/primitives/server/McpServerRoot.tsx +46 -0
  336. package/src/primitives/server/McpServerStatus.tsx +38 -0
  337. package/src/primitives/server/McpServerToolName.tsx +39 -0
  338. package/src/primitives/server/McpServerTools.tsx +56 -0
  339. package/src/primitives/server.ts +14 -0
  340. package/src/resources/McpCustomServerPersistence.test.ts +110 -0
  341. package/src/resources/McpCustomServerPersistence.ts +239 -0
  342. package/src/resources/McpElicitationLifecycle.test.ts +83 -0
  343. package/src/resources/McpElicitationLifecycle.ts +156 -0
  344. package/src/resources/McpManagerResource.test.ts +1399 -0
  345. package/src/resources/McpManagerResource.tools.test.ts +478 -0
  346. package/src/resources/McpManagerResource.ts +317 -0
  347. package/src/resources/McpServerRemovalFence.ts +21 -0
  348. package/src/resources/McpServerResource.test.ts +2394 -0
  349. package/src/resources/McpServerResource.ts +697 -0
  350. package/src/resources/storage/McpCustomStorage.ts +8 -0
  351. package/src/resources/storage/McpLocalStorage.test.ts +533 -0
  352. package/src/resources/storage/McpLocalStorage.ts +105 -0
  353. package/src/resources/storage/McpMemoryStorage.test.ts +114 -0
  354. package/src/resources/storage/McpMemoryStorage.ts +30 -0
  355. package/src/resources/storage/McpStoredDataNormalization.test.ts +24 -0
  356. package/src/resources/storage/McpStoredDataNormalization.ts +201 -0
  357. package/src/resources/storage/types.ts +30 -0
  358. package/src/resources/validateElicitationContent.test.ts +123 -0
  359. package/src/resources/validateElicitationContent.ts +79 -0
  360. package/src/utils/createMcpId.test.ts +25 -0
  361. package/src/utils/createMcpId.ts +10 -0
  362. package/src/utils/invokeMcpCallback.ts +9 -0
  363. package/src/utils/serverId.ts +31 -0
  364. package/src/utils/serverUrl.test.ts +96 -0
  365. package/src/utils/serverUrl.ts +49 -0
  366. package/src/utils/toToolSchema.test.ts +88 -0
  367. package/src/utils/toToolSchema.ts +141 -0
  368. package/src/utils/toolName.test.ts +51 -0
  369. package/src/utils/toolName.ts +32 -0
  370. package/README.md +0 -3
@@ -0,0 +1,26 @@
1
+ import { useMcpChildren } from "./useMcpChildren.js";
2
+ import { computed, defineComponent, h } from "vue";
3
+ import { AuiConfig, AuiProvider, Derived, useAui } from "@ulearning/ai-store";
4
+ // src/context/McpServerByIdProvider.tsx
5
+ const McpServerByIdProvider = defineComponent((props, { slots }) => {
6
+ const children = useMcpChildren(() => props.children, slots);
7
+ const aui = useAui();
8
+ const config = computed(() => AuiConfig({ mcpServer: Derived({
9
+ source: "mcp",
10
+ query: { id: props.id },
11
+ get: (parent) => parent.mcp.server({ id: props.id })
12
+ }) }));
13
+ return () => h(AuiProvider, {
14
+ extends: aui,
15
+ config: config.value
16
+ }, {
17
+ ...slots,
18
+ default: children
19
+ });
20
+ }, {
21
+ name: "McpServerByIdProvider",
22
+ props: ["id", "children"]
23
+ });
24
+ export { McpServerByIdProvider };
25
+
26
+ //# sourceMappingURL=McpServerByIdProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpServerByIdProvider.js","names":["useMcpChildren","computed","defineComponent","h","VNodeChild","useAui","AuiConfig","AuiProvider","Derived","McpServerByIdProvider","props","id","children","slots","aui","config","mcpServer","source","query","get","parent","mcp","server","extends","value","default","name"],"sources":["../../src/context/McpServerByIdProvider.tsx"],"sourcesContent":["import { useMcpChildren } from \"./useMcpChildren\";\nimport { computed, defineComponent, h, type VNodeChild } from \"vue\";\nimport { useAui, AuiConfig, AuiProvider, Derived } from \"@ulearning/ai-store\";\nexport const McpServerByIdProvider = defineComponent(\n (props: { id: string; children?: VNodeChild }, { slots }) => {\n const children = useMcpChildren(() => props.children, slots);\n const aui = useAui();\n const config = computed(() =>\n AuiConfig({\n mcpServer: Derived({\n source: \"mcp\",\n query: { id: props.id },\n get: (parent) => parent.mcp.server({ id: props.id }),\n }),\n }),\n );\n return () =>\n h(\n AuiProvider,\n { extends: aui, config: config.value },\n { ...slots, default: children },\n );\n },\n { name: \"McpServerByIdProvider\", props: [\"id\", \"children\"] },\n);\n"],"mappings":";;;;AAGA,MAAaS,wBAAwBP,iBAClCQ,OAA8C,EAAEG,YAAY;CAC3D,MAAMD,WAAWZ,qBAAqBU,MAAME,UAAUC,KAAK;CAC3D,MAAMC,MAAMT,OAAO;CACnB,MAAMU,SAASd,eACbK,UAAU,EACRU,WAAWR,QAAQ;EACjBS,QAAQ;EACRC,OAAO,EAAEP,IAAID,MAAMC,GAAG;EACtBQ,MAAMC,WAAWA,OAAOC,IAAIC,OAAO,EAAEX,IAAID,MAAMC,GAAG,CAAC;CACrD,CAAC,EACH,CAAC,CACH;CACA,aACER,EACEI,aACA;EAAEgB,SAAST;EAAKC,QAAQA,OAAOS;CAAM,GACrC;EAAE,GAAGX;EAAOY,SAASb;CAAS,CAChC;AACJ,GACA;CAAEc,MAAM;CAAyBhB,OAAO,CAAC,MAAM,UAAU;AAAE,CAC7D"}
@@ -0,0 +1,3 @@
1
+ import { type Slots, type VNodeChild } from "vue";
2
+ export declare function useMcpChildren(getChildren: () => VNodeChild, slots: Slots): () => VNodeChild;
3
+ //# sourceMappingURL=useMcpChildren.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMcpChildren.d.ts","mappings":"AAAA,OAAO,EAAsB,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,KAAK;AAErE,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,UAAU,EAAE,KAAK,EAAE,KAAK","names":[],"ignoreList":[],"sources":["../../src/context/useMcpChildren.ts"],"sourcesContent":[null]}
@@ -0,0 +1,9 @@
1
+ import { getCurrentInstance } from "vue";
2
+ // src/context/useMcpChildren.ts
3
+ function useMcpChildren(getChildren, slots) {
4
+ const instance = getCurrentInstance();
5
+ return () => Object.hasOwn(instance?.vnode.props ?? {}, "children") ? getChildren() : slots.default?.();
6
+ }
7
+ export { useMcpChildren };
8
+
9
+ //# sourceMappingURL=useMcpChildren.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMcpChildren.js","names":[],"sources":["../../src/context/useMcpChildren.ts"],"sourcesContent":["import { getCurrentInstance, type Slots, type VNodeChild } from \"vue\";\n\nexport function useMcpChildren(getChildren: () => VNodeChild, slots: Slots) {\n const instance = getCurrentInstance();\n return () =>\n Object.hasOwn(instance?.vnode.props ?? {}, \"children\")\n ? getChildren()\n : slots.default?.();\n}\n"],"mappings":";;AAEA,SAAgB,eAAe,aAA+B,OAAc;CAC1E,MAAM,WAAW,mBAAmB;CACpC,aACE,OAAO,OAAO,UAAU,MAAM,SAAS,CAAC,GAAG,UAAU,IACjD,YAAY,IACZ,MAAM,UAAU;AACxB"}
@@ -0,0 +1,23 @@
1
+ import { type MaybeRefOrGetter, type ShallowRef, type SlotsType, type VNodeChild } from "vue";
2
+ export declare const createMcpOAuthCallbackError: (err: unknown, serverId: string | null) => Error;
3
+ export type UseMcpOAuthCallbackOptions = {
4
+ /** Defaults to `window.location.href`. */
5
+ url?: string;
6
+ onComplete?: (serverId: string) => void;
7
+ onError?: (err: Error) => void;
8
+ };
9
+ export type UseMcpOAuthCallbackResult = {
10
+ status: "idle" | "running" | "done" | "error";
11
+ serverId: string | null;
12
+ error: Error | null;
13
+ };
14
+ /** Starts on mount. A kept-alive page retains its single-use OAuth attempt. */
15
+ export declare function useMcpOAuthCallback(options?: MaybeRefOrGetter<UseMcpOAuthCallbackOptions>): Readonly<ShallowRef<UseMcpOAuthCallbackResult>>;
16
+ export declare const McpOAuthCallback: import("vue").DefineSetupFnComponent<UseMcpOAuthCallbackOptions & {
17
+ children?: (result: UseMcpOAuthCallbackResult) => VNodeChild;
18
+ }, {}, SlotsType<{
19
+ default: (result: UseMcpOAuthCallbackResult) => VNodeChild;
20
+ }>, UseMcpOAuthCallbackOptions & {
21
+ children?: (result: UseMcpOAuthCallbackResult) => VNodeChild;
22
+ } & {}, import("vue").PublicProps>;
23
+ //# sourceMappingURL=useMcpOAuthCallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMcpOAuthCallback.d.ts","mappings":"AAAA,OAAO,EAUL,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,KAAK;AAIZ,eAAO,MAAM,2BAA2B,GACtC,KAAK,OAAO,EACZ,UAAU,MAAM,GAAG,IAAI,KACtB,KASF;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC;IACA,GAAG,CAAC,EAAE,MAAM;IACZ,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI;IACvC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI;CAC/B;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO;IAC7C,QAAQ,EAAE,MAAM,GAAG,IAAI;IACvB,KAAK,EAAE,KAAK,GAAG,IAAI;CACpB;AAOD;AACA,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,gBAAgB,CAAC,0BAA0B,CAAM,GACzD,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;AAmFlD,eAAO,MAAM,gBAAgB;eAGZ,CAAC,MAAM,EAAE,yBAAyB,KAAK,UAAU;;aAcnD,CAAC,MAAM,EAAE,yBAAyB,KAAK,UAAU;;eAd/C,CAAC,MAAM,EAAE,yBAAyB,KAAK,UAAU;kCAiBjE","names":[],"ignoreList":[],"sources":["../../src/hooks/useMcpOAuthCallback.tsx"],"sourcesContent":[null]}
@@ -0,0 +1,102 @@
1
+ import { decodeServerIdFromState } from "../auth/createOAuthProvider.js";
2
+ import { invokeMcpCallback } from "../utils/invokeMcpCallback.js";
3
+ import { defineComponent, onActivated, onBeforeUnmount, onDeactivated, onMounted, shallowReadonly, shallowRef, toValue, watch } from "vue";
4
+ import { useAui } from "@ulearning/ai-store";
5
+ // src/hooks/useMcpOAuthCallback.tsx
6
+ const createMcpOAuthCallbackError = (err, serverId) => {
7
+ const message = err instanceof Error ? err.message : String(err);
8
+ if (serverId) return new Error(`MCP OAuth callback for server "${serverId}" failed: ${message}`, { cause: err });
9
+ return new Error(`MCP OAuth callback failed: ${message}`, { cause: err });
10
+ };
11
+ /** Starts on mount. A kept-alive page retains its single-use OAuth attempt. */
12
+ function useMcpOAuthCallback(options = {}) {
13
+ const aui = useAui();
14
+ const result = shallowRef({
15
+ status: "idle",
16
+ serverId: null,
17
+ error: null
18
+ });
19
+ const active = shallowRef(false);
20
+ let disposed = false;
21
+ let attempt;
22
+ onMounted(() => {
23
+ active.value = true;
24
+ });
25
+ onActivated(() => {
26
+ active.value = true;
27
+ });
28
+ onDeactivated(() => {
29
+ active.value = false;
30
+ });
31
+ onBeforeUnmount(() => {
32
+ disposed = true;
33
+ active.value = false;
34
+ });
35
+ const publish = (current) => {
36
+ if (disposed || !active.value || attempt !== current || !current.result) return;
37
+ result.value = current.result;
38
+ if (current.notified || current.result.status === "running") return;
39
+ current.notified = true;
40
+ if (current.result.status === "done") invokeMcpCallback("onComplete", toValue(options).onComplete, current.result.serverId);
41
+ else if (current.result.error) invokeMcpCallback("onError", toValue(options).onError, current.result.error);
42
+ };
43
+ watch(() => [active.value, toValue(options).url], ([enabled, explicit]) => {
44
+ if (!enabled || disposed) return;
45
+ const url = explicit ?? (typeof window !== "undefined" ? window.location.href : null);
46
+ if (!url) return;
47
+ if (attempt?.url === url) {
48
+ publish(attempt);
49
+ return;
50
+ }
51
+ const current = {
52
+ url,
53
+ notified: false
54
+ };
55
+ attempt = current;
56
+ (async () => {
57
+ let serverId = null;
58
+ try {
59
+ const state = new URL(url).searchParams.get("state");
60
+ if (state) serverId = decodeServerIdFromState(state);
61
+ if (!state) throw new Error("missing \"state\" parameter");
62
+ if (!serverId) throw new Error("state was not created by assistant-ui MCP");
63
+ current.result = {
64
+ status: "running",
65
+ serverId,
66
+ error: null
67
+ };
68
+ publish(current);
69
+ await aui.mcp.server({ id: serverId }).completeAuth(url);
70
+ current.result = {
71
+ status: "done",
72
+ serverId,
73
+ error: null
74
+ };
75
+ } catch (cause) {
76
+ current.result = {
77
+ status: "error",
78
+ serverId,
79
+ error: createMcpOAuthCallbackError(cause, serverId)
80
+ };
81
+ }
82
+ publish(current);
83
+ })();
84
+ }, { flush: "post" });
85
+ return shallowReadonly(result);
86
+ }
87
+ const McpOAuthCallback = defineComponent((props, { slots }) => {
88
+ const result = useMcpOAuthCallback(() => props);
89
+ return () => props.children ? props.children(result.value) : slots.default?.(result.value);
90
+ }, {
91
+ name: "McpOAuthCallback",
92
+ props: [
93
+ "url",
94
+ "onComplete",
95
+ "onError",
96
+ "children"
97
+ ],
98
+ slots: Object
99
+ });
100
+ export { McpOAuthCallback, createMcpOAuthCallbackError, useMcpOAuthCallback };
101
+
102
+ //# sourceMappingURL=useMcpOAuthCallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMcpOAuthCallback.js","names":["defineComponent","onActivated","onBeforeUnmount","onDeactivated","onMounted","shallowReadonly","shallowRef","toValue","watch","MaybeRefOrGetter","ShallowRef","SlotsType","VNodeChild","useAui","decodeServerIdFromState","invokeMcpCallback","createMcpOAuthCallbackError","err","serverId","Error","message","String","cause","UseMcpOAuthCallbackOptions","url","onComplete","onError","UseMcpOAuthCallbackResult","status","error","Attempt","result","notified","useMcpOAuthCallback","options","Readonly","aui","active","disposed","attempt","value","publish","current","const","enabled","explicit","window","location","href","parsed","URL","state","searchParams","get","mcp","server","id","completeAuth","flush","McpOAuthCallback","props","children","slots","default","name","Object"],"sources":["../../src/hooks/useMcpOAuthCallback.tsx"],"sourcesContent":["import {\n defineComponent,\n onActivated,\n onBeforeUnmount,\n onDeactivated,\n onMounted,\n shallowReadonly,\n shallowRef,\n toValue,\n watch,\n type MaybeRefOrGetter,\n type ShallowRef,\n type SlotsType,\n type VNodeChild,\n} from \"vue\";\nimport { useAui } from \"@ulearning/ai-store\";\nimport { decodeServerIdFromState } from \"../auth/createOAuthProvider\";\nimport { invokeMcpCallback } from \"../utils/invokeMcpCallback\";\nexport const createMcpOAuthCallbackError = (\n err: unknown,\n serverId: string | null,\n): Error => {\n const message = err instanceof Error ? err.message : String(err);\n if (serverId) {\n return new Error(\n `MCP OAuth callback for server \"${serverId}\" failed: ${message}`,\n { cause: err },\n );\n }\n return new Error(`MCP OAuth callback failed: ${message}`, { cause: err });\n};\n\nexport type UseMcpOAuthCallbackOptions = {\n /** Defaults to `window.location.href`. */\n url?: string;\n onComplete?: (serverId: string) => void;\n onError?: (err: Error) => void;\n};\n\nexport type UseMcpOAuthCallbackResult = {\n status: \"idle\" | \"running\" | \"done\" | \"error\";\n serverId: string | null;\n error: Error | null;\n};\n\ntype Attempt = {\n url: string;\n result?: UseMcpOAuthCallbackResult;\n notified: boolean;\n};\n/** Starts on mount. A kept-alive page retains its single-use OAuth attempt. */\nexport function useMcpOAuthCallback(\n options: MaybeRefOrGetter<UseMcpOAuthCallbackOptions> = {},\n): Readonly<ShallowRef<UseMcpOAuthCallbackResult>> {\n const aui = useAui();\n const result = shallowRef<UseMcpOAuthCallbackResult>({\n status: \"idle\",\n serverId: null,\n error: null,\n });\n const active = shallowRef(false);\n let disposed = false;\n let attempt: Attempt | undefined;\n onMounted(() => {\n active.value = true;\n });\n onActivated(() => {\n active.value = true;\n });\n onDeactivated(() => {\n active.value = false;\n });\n onBeforeUnmount(() => {\n disposed = true;\n active.value = false;\n });\n const publish = (current: Attempt) => {\n if (disposed || !active.value || attempt !== current || !current.result)\n return;\n result.value = current.result;\n if (current.notified || current.result.status === \"running\") return;\n current.notified = true;\n if (current.result.status === \"done\")\n invokeMcpCallback(\n \"onComplete\",\n toValue(options).onComplete,\n current.result.serverId!,\n );\n else if (current.result.error)\n invokeMcpCallback(\n \"onError\",\n toValue(options).onError,\n current.result.error,\n );\n };\n watch(\n () => [active.value, toValue(options).url] as const,\n ([enabled, explicit]) => {\n if (!enabled || disposed) return;\n const url =\n explicit ??\n (typeof window !== \"undefined\" ? window.location.href : null);\n if (!url) return;\n if (attempt?.url === url) {\n publish(attempt);\n return;\n }\n const current: Attempt = { url, notified: false };\n attempt = current;\n void (async () => {\n let serverId: string | null = null;\n try {\n const parsed = new URL(url);\n const state = parsed.searchParams.get(\"state\");\n if (state) serverId = decodeServerIdFromState(state);\n if (!state) throw new Error('missing \"state\" parameter');\n if (!serverId)\n throw new Error(\"state was not created by assistant-ui MCP\");\n current.result = { status: \"running\", serverId, error: null };\n publish(current);\n await aui.mcp.server({ id: serverId }).completeAuth(url);\n current.result = { status: \"done\", serverId, error: null };\n } catch (cause) {\n current.result = {\n status: \"error\",\n serverId,\n error: createMcpOAuthCallbackError(cause, serverId),\n };\n }\n publish(current);\n })();\n },\n { flush: \"post\" },\n );\n return shallowReadonly(result);\n}\nexport const McpOAuthCallback = defineComponent(\n (\n props: UseMcpOAuthCallbackOptions & {\n children?: (result: UseMcpOAuthCallbackResult) => VNodeChild;\n },\n { slots },\n ) => {\n const result = useMcpOAuthCallback(() => props);\n return () =>\n props.children\n ? props.children(result.value)\n : slots.default?.(result.value);\n },\n {\n name: \"McpOAuthCallback\",\n props: [\"url\", \"onComplete\", \"onError\", \"children\"],\n slots: Object as SlotsType<{\n default: (result: UseMcpOAuthCallbackResult) => VNodeChild;\n }>,\n },\n);\n"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import "./mcp-scope.js";
2
+ export { McpManagerResource, type McpManagerResourceProps, } from "./resources/McpManagerResource.js";
3
+ export { McpServerResource, type McpServerResourceProps, } from "./resources/McpServerResource.js";
4
+ export { defineConnector } from "./connector.js";
5
+ export { getMcpToolName } from "./utils/toolName.js";
6
+ export { McpLocalStorage, type McpLocalStorageOptions, } from "./resources/storage/McpLocalStorage.js";
7
+ export { McpMemoryStorage } from "./resources/storage/McpMemoryStorage.js";
8
+ export { McpCustomStorage } from "./resources/storage/McpCustomStorage.js";
9
+ export type { MCPStorage, MCPStorageElement } from "./resources/storage/types.js";
10
+ export * as McpManagerPrimitive from "./primitives/manager.js";
11
+ export * as McpServerPrimitive from "./primitives/server.js";
12
+ export * as McpAddFormPrimitive from "./primitives/addForm.js";
13
+ export * as McpElicitationPrimitive from "./primitives/elicitation.js";
14
+ export { McpServerByIdProvider } from "./context/McpServerByIdProvider.js";
15
+ export { McpConnectorByIndexProvider } from "./context/McpConnectorByIndexProvider.js";
16
+ export { McpCustomServerByIndexProvider } from "./context/McpCustomServerByIndexProvider.js";
17
+ export { useMcpOAuthCallback, McpOAuthCallback, type UseMcpOAuthCallbackOptions, type UseMcpOAuthCallbackResult, } from "./hooks/useMcpOAuthCallback.js";
18
+ export type { MCPPersistedAuthState } from "./auth/types.js";
19
+ export type { MCPAuthConfig, MCPResponseCacheConfig, MCPConnector, MCPCustomServerRecord, MCPServerKind, MCPConnectionState, MCPToolInfo, MCPElicitation, MCPElicitationResponse, MCPServerState, MCPManagerState, MCPServerMethods, MCPManagerMethods, MCPServerQuery, } from "./mcp-scope.js";
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","mappings":"AACA,OAAO,gBAAa;AAKpB,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,mCAAgC;AAGvC,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,kCAA+B;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAa;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAkB;AAGjD,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,wCAAqC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAsC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAsC;AACvE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,8BAA2B;AAG9E,OAAO,KAAK,mBAAmB,MAAM,yBAAsB;AAC3D,OAAO,KAAK,kBAAkB,MAAM,wBAAqB;AACzD,OAAO,KAAK,mBAAmB,MAAM,yBAAsB;AAC3D,OAAO,KAAK,uBAAuB,MAAM,6BAA0B;AAKnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAiC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAAuC;AACnF,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA0C;AAGzF,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,gCAA6B;AAGpC,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAc;AAGzD,YAAY,EACV,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,GACf,MAAM,gBAAa","names":[],"ignoreList":[],"sources":["../src/index.ts"],"sourcesContent":[null]}
package/dist/index.js ADDED
@@ -0,0 +1,16 @@
1
+ import { defineConnector } from "./connector.js";
2
+ import { McpConnectorByIndexProvider } from "./context/McpConnectorByIndexProvider.js";
3
+ import { McpCustomServerByIndexProvider } from "./context/McpCustomServerByIndexProvider.js";
4
+ import { McpServerByIdProvider } from "./context/McpServerByIdProvider.js";
5
+ import { McpOAuthCallback, useMcpOAuthCallback } from "./hooks/useMcpOAuthCallback.js";
6
+ import { getMcpToolName } from "./utils/toolName.js";
7
+ import { McpServerResource } from "./resources/McpServerResource.js";
8
+ import { McpLocalStorage } from "./resources/storage/McpLocalStorage.js";
9
+ import { McpManagerResource } from "./resources/McpManagerResource.js";
10
+ import { McpMemoryStorage } from "./resources/storage/McpMemoryStorage.js";
11
+ import { McpCustomStorage } from "./resources/storage/McpCustomStorage.js";
12
+ import { manager_exports } from "./primitives/manager.js";
13
+ import { server_exports } from "./primitives/server.js";
14
+ import { addForm_exports } from "./primitives/addForm.js";
15
+ import { elicitation_exports } from "./primitives/elicitation.js";
16
+ export { addForm_exports as McpAddFormPrimitive, McpConnectorByIndexProvider, McpCustomServerByIndexProvider, McpCustomStorage, elicitation_exports as McpElicitationPrimitive, McpLocalStorage, manager_exports as McpManagerPrimitive, McpManagerResource, McpMemoryStorage, McpOAuthCallback, McpServerByIdProvider, server_exports as McpServerPrimitive, McpServerResource, defineConnector, getMcpToolName, useMcpOAuthCallback };
@@ -0,0 +1,151 @@
1
+ import "@ulearning/ai-store";
2
+ export type MCPAuthConfig = {
3
+ type: "none";
4
+ } | {
5
+ type: "bearer";
6
+ token?: string | undefined;
7
+ } | {
8
+ type: "oauth";
9
+ scopes?: string[] | undefined;
10
+ authorizationEndpoint?: string | undefined;
11
+ tokenEndpoint?: string | undefined;
12
+ registrationEndpoint?: string | undefined;
13
+ clientId?: string | undefined;
14
+ clientSecret?: string | undefined;
15
+ };
16
+ export type MCPResponseCacheConfig = {
17
+ readonly defaultTtlMs?: number;
18
+ };
19
+ export type MCPConnector = {
20
+ id: string;
21
+ name: string;
22
+ url: string;
23
+ icon?: string | undefined;
24
+ auth: MCPAuthConfig;
25
+ connectionTimeout?: number | undefined;
26
+ readonly cache?: MCPResponseCacheConfig | undefined;
27
+ readonly elicitation?: boolean | undefined;
28
+ readonly requireApproval?: boolean | undefined;
29
+ };
30
+ export type MCPCustomServerRecord = {
31
+ id: string;
32
+ name: string;
33
+ url: string;
34
+ auth: MCPAuthConfig;
35
+ connectionTimeout?: number | undefined;
36
+ readonly cache?: MCPResponseCacheConfig | undefined;
37
+ readonly elicitation?: boolean | undefined;
38
+ readonly requireApproval?: boolean | undefined;
39
+ createdAt: number;
40
+ };
41
+ export type MCPServerKind = "connector" | "custom";
42
+ export type MCPConnectionState = "disconnected" | "authRequired" | "authPending" | "connecting" | "connected" | "error";
43
+ export type MCPToolInfo = {
44
+ name: string;
45
+ description?: string | undefined;
46
+ inputSchema: unknown;
47
+ };
48
+ export type MCPElicitation = {
49
+ readonly id: string;
50
+ readonly message: string;
51
+ readonly requestedSchema: unknown;
52
+ readonly error?: {
53
+ readonly message: string;
54
+ readonly properties?: readonly string[] | undefined;
55
+ } | undefined;
56
+ };
57
+ export type MCPElicitationResponse = {
58
+ action: "accept";
59
+ content: Record<string, unknown>;
60
+ } | {
61
+ action: "decline";
62
+ } | {
63
+ action: "cancel";
64
+ };
65
+ export type MCPServerState = {
66
+ id: string;
67
+ kind: MCPServerKind;
68
+ name: string;
69
+ url: string;
70
+ icon?: string | undefined;
71
+ connectionState: MCPConnectionState;
72
+ lastError: {
73
+ message: string;
74
+ } | null;
75
+ tools: MCPToolInfo[];
76
+ authorizationUrl: string | null;
77
+ readonly pendingElicitations: readonly MCPElicitation[];
78
+ readonly requireApproval?: boolean | undefined;
79
+ };
80
+ export type MCPManagerState = {
81
+ servers: MCPServerState[];
82
+ connectors: MCPServerState[];
83
+ customServers: MCPServerState[];
84
+ isHydrated: boolean;
85
+ };
86
+ export type MCPServerMethods = {
87
+ getState: () => MCPServerState;
88
+ connect: () => Promise<void>;
89
+ disconnect: () => Promise<void>;
90
+ remove: () => Promise<void>;
91
+ callTool: (name: string, args: unknown) => Promise<unknown>;
92
+ /** List resources exposed by the server. Returns the raw MCP `ListResourcesResult`. */
93
+ listResources: (params?: {
94
+ cursor?: string | undefined;
95
+ }) => Promise<unknown>;
96
+ /** Read a resource by URI. Returns the raw MCP `ReadResourceResult`. */
97
+ readResource: (uri: string) => Promise<unknown>;
98
+ /** OAuth only: pass full callback URL (e.g. window.location.href) */
99
+ completeAuth: (callbackUrl: string) => Promise<void>;
100
+ answerElicitation(id: string, response: MCPElicitationResponse): readonly {
101
+ property: string;
102
+ message: string;
103
+ }[] | undefined;
104
+ };
105
+ export type MCPServerQuery = {
106
+ id: string;
107
+ } | {
108
+ kind: "connector";
109
+ index: number;
110
+ } | {
111
+ kind: "custom";
112
+ index: number;
113
+ };
114
+ export type MCPManagerMethods = {
115
+ getState: () => MCPManagerState;
116
+ /** Look up a server by id, or by index within its kind. */
117
+ server: (query: MCPServerQuery) => MCPServerMethods;
118
+ /** Convenience: equivalent to `server({ kind: "connector", index })`. */
119
+ connector: (query: {
120
+ index: number;
121
+ }) => MCPServerMethods;
122
+ /** Convenience: equivalent to `server({ kind: "custom", index })`. */
123
+ customServer: (query: {
124
+ index: number;
125
+ }) => MCPServerMethods;
126
+ addCustomServer: (input: {
127
+ name: string;
128
+ url: string;
129
+ auth: MCPAuthConfig;
130
+ connectionTimeout?: number | undefined;
131
+ readonly cache?: MCPResponseCacheConfig | undefined;
132
+ readonly elicitation?: boolean | undefined;
133
+ readonly requireApproval?: boolean | undefined;
134
+ }) => Promise<string>;
135
+ removeServer: (id: string) => Promise<void>;
136
+ };
137
+ declare module "@ulearning/ai-store" {
138
+ interface ScopeRegistry {
139
+ mcp: {
140
+ methods: MCPManagerMethods;
141
+ };
142
+ mcpServer: {
143
+ methods: MCPServerMethods;
144
+ meta: {
145
+ source: "mcp";
146
+ query: MCPServerQuery;
147
+ };
148
+ };
149
+ }
150
+ }
151
+ //# sourceMappingURL=mcp-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-scope.d.ts","mappings":"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","names":[],"ignoreList":[],"sources":["../src/mcp-scope.ts"],"sourcesContent":[null]}
@@ -0,0 +1 @@
1
+ import "@ulearning/ai-store";
@@ -0,0 +1,8 @@
1
+ import { type Component } from "vue";
2
+ export declare namespace McpAddFormPrimitiveAuthFields {
3
+ type Props = {
4
+ children?: Component;
5
+ };
6
+ }
7
+ export declare const McpAddFormPrimitiveAuthFields: import("vue").DefineSetupFnComponent<McpAddFormPrimitiveAuthFields.Props, {}, {}, McpAddFormPrimitiveAuthFields.Props & {}, import("vue").PublicProps>;
8
+ //# sourceMappingURL=McpAddFormAuthFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpAddFormAuthFields.d.ts","mappings":"AAAA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,KAAK;AAIxD,yBAAiB,6BAA6B,CAAC;IAC7C,KAAY,KAAK,GAAG;QAAE,QAAQ,CAAC,EAAE,SAAS;KAAE;;AAE9C,eAAO,MAAM,6BAA6B,wJA2BzC","names":[],"ignoreList":[],"sources":["../../../src/primitives/addForm/McpAddFormAuthFields.tsx"],"sourcesContent":[null]}
@@ -0,0 +1,30 @@
1
+ import { useAddForm } from "./context.js";
2
+ import { McpAddFormPrimitiveBearerTokenField } from "./McpAddFormBearerTokenField.js";
3
+ import { McpAddFormPrimitiveScopesField } from "./McpAddFormScopesField.js";
4
+ import { defineComponent, h } from "vue";
5
+ // src/primitives/addForm/McpAddFormAuthFields.tsx
6
+ const McpAddFormPrimitiveAuthFields = defineComponent((props, { slots }) => {
7
+ const form = useAddForm();
8
+ return () => {
9
+ const authType = form.state.authType;
10
+ if (props.children) return h(props.children, { authType });
11
+ if (slots.default) return slots.default({ authType });
12
+ if (authType === "none") return null;
13
+ const bearer = authType === "bearer";
14
+ const id = bearer ? form.ids.bearerToken : form.ids.scopes;
15
+ const label = bearer ? "bearer-token" : "oauth-scopes";
16
+ return h("div", [h("label", {
17
+ for: id,
18
+ "data-mcp-auth-field-label": label
19
+ }, bearer ? "Bearer token" : "OAuth scopes"), h(bearer ? McpAddFormPrimitiveBearerTokenField : McpAddFormPrimitiveScopesField, {
20
+ id,
21
+ "data-mcp-auth-field": label
22
+ })]);
23
+ };
24
+ }, {
25
+ name: "McpAddFormPrimitiveAuthFields",
26
+ props: ["children"]
27
+ });
28
+ export { McpAddFormPrimitiveAuthFields };
29
+
30
+ //# sourceMappingURL=McpAddFormAuthFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpAddFormAuthFields.js","names":["defineComponent","h","Component","McpAddFormPrimitiveBearerTokenField","McpAddFormPrimitiveScopesField","useAddForm","McpAddFormPrimitiveAuthFields","Props","children","props","slots","form","authType","state","default","bearer","id","ids","bearerToken","scopes","label","for","name"],"sources":["../../../src/primitives/addForm/McpAddFormAuthFields.tsx"],"sourcesContent":["import { defineComponent, h, type Component } from \"vue\";\nimport { McpAddFormPrimitiveBearerTokenField } from \"./McpAddFormBearerTokenField\";\nimport { McpAddFormPrimitiveScopesField } from \"./McpAddFormScopesField\";\nimport { useAddForm } from \"./context\";\nexport namespace McpAddFormPrimitiveAuthFields {\n export type Props = { children?: Component };\n}\nexport const McpAddFormPrimitiveAuthFields = defineComponent(\n (props: McpAddFormPrimitiveAuthFields.Props, { slots }) => {\n const form = useAddForm();\n return () => {\n const authType = form.state.authType;\n if (props.children) return h(props.children, { authType });\n if (slots.default) return slots.default({ authType });\n if (authType === \"none\") return null;\n const bearer = authType === \"bearer\";\n const id = bearer ? form.ids.bearerToken : form.ids.scopes;\n const label = bearer ? \"bearer-token\" : \"oauth-scopes\";\n return h(\"div\", [\n h(\n \"label\",\n { for: id, \"data-mcp-auth-field-label\": label },\n bearer ? \"Bearer token\" : \"OAuth scopes\",\n ),\n h(\n bearer\n ? McpAddFormPrimitiveBearerTokenField\n : McpAddFormPrimitiveScopesField,\n { id, \"data-mcp-auth-field\": label },\n ),\n ]);\n };\n },\n { name: \"McpAddFormPrimitiveAuthFields\", props: [\"children\"] },\n);\n"],"mappings":";;;;;AAOA,MAAaM,gCAAgCN,iBAC1CS,OAA4C,EAAEC,YAAY;CACzD,MAAMC,OAAON,WAAW;CACxB,aAAa;EACX,MAAMO,WAAWD,KAAKE,MAAMD;EAC5B,IAAIH,MAAMD,UAAU,OAAOP,EAAEQ,MAAMD,UAAU,EAAEI,SAAS,CAAC;EACzD,IAAIF,MAAMI,SAAS,OAAOJ,MAAMI,QAAQ,EAAEF,SAAS,CAAC;EACpD,IAAIA,aAAa,QAAQ,OAAO;EAChC,MAAMG,SAASH,aAAa;EAC5B,MAAMI,KAAKD,SAASJ,KAAKM,IAAIC,cAAcP,KAAKM,IAAIE;EACpD,MAAMC,QAAQL,SAAS,iBAAiB;EACxC,OAAOd,EAAE,OAAO,CACdA,EACE,SACA;GAAEoB,KAAKL;GAAI,6BAA6BI;EAAM,GAC9CL,SAAS,iBAAiB,cAC5B,GACAd,EACEc,SACIZ,sCACAC,gCACJ;GAAEY;GAAI,uBAAuBI;EAAM,CACrC,CAAC,CACF;CACH;AACF,GACA;CAAEE,MAAM;CAAiCb,OAAO,CAAC,UAAU;AAAE,CAC/D"}
@@ -0,0 +1,16 @@
1
+ import type { VNodeChild } from "vue";
2
+ import { type SelectHTMLAttributes } from "vue";
3
+ export declare namespace McpAddFormPrimitiveAuthSelect {
4
+ type Element = HTMLSelectElement;
5
+ type Props = Omit<SelectHTMLAttributes, "value" | "onChange"> & {
6
+ asChild?: boolean;
7
+ className?: string | undefined;
8
+ children?: VNodeChild;
9
+ };
10
+ }
11
+ export declare const McpAddFormPrimitiveAuthSelect: import("vue").DefineSetupFnComponent<McpAddFormPrimitiveAuthSelect.Props, {}, {}, Omit<SelectHTMLAttributes, "onChange" | "value"> & {
12
+ asChild?: boolean;
13
+ className?: string | undefined;
14
+ children?: VNodeChild;
15
+ } & {}, import("vue").PublicProps>;
16
+ //# sourceMappingURL=McpAddFormAuthSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpAddFormAuthSelect.d.ts","mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK;AACrC,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,KAAK;AAGnE,yBAAiB,6BAA6B,CAAC;IAC7C,KAAY,OAAO,GAAG,iBAAiB;IACvC,KAAY,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,UAAU,CAAC,GAAG;QACrE,OAAO,CAAC,EAAE,OAAO;QACjB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS;QAC9B,QAAQ,CAAC,EAAE,UAAU;KACtB;;AAEH,eAAO,MAAM,6BAA6B;cAL5B,OAAO;gBACL,MAAM,GAAG,SAAS;eACnB,UAAU;kCAuCxB","names":[],"ignoreList":[],"sources":["../../../src/primitives/addForm/McpAddFormAuthSelect.tsx"],"sourcesContent":[null]}
@@ -0,0 +1,35 @@
1
+ import { useAddForm } from "./context.js";
2
+ import { defineComponent, h } from "vue";
3
+ import { Primitive, useForwardExpose } from "reka-ui";
4
+ // src/primitives/addForm/McpAddFormAuthSelect.tsx
5
+ const McpAddFormPrimitiveAuthSelect = defineComponent((props, { attrs, slots }) => {
6
+ const form = useAddForm();
7
+ const { forwardRef } = useForwardExpose();
8
+ return () => h(Primitive, {
9
+ ...attrs,
10
+ as: "select",
11
+ asChild: props.asChild ?? false,
12
+ class: [attrs.class, props.className],
13
+ ref: forwardRef,
14
+ value: form.state.authType,
15
+ onChange: (event) => {
16
+ const value = event.target.value;
17
+ if (value === "oauth" || value === "bearer" || value === "none") form.setField("authType", value);
18
+ }
19
+ }, { default: () => props.children ?? slots.default?.() ?? [
20
+ h("option", { value: "oauth" }, "OAuth"),
21
+ h("option", { value: "bearer" }, "Bearer token"),
22
+ h("option", { value: "none" }, "None")
23
+ ] });
24
+ }, {
25
+ name: "McpAddFormPrimitiveAuthSelect",
26
+ inheritAttrs: false,
27
+ props: [
28
+ "className",
29
+ "children",
30
+ "asChild"
31
+ ]
32
+ });
33
+ export { McpAddFormPrimitiveAuthSelect };
34
+
35
+ //# sourceMappingURL=McpAddFormAuthSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpAddFormAuthSelect.js","names":["VNodeChild","defineComponent","h","SelectHTMLAttributes","Primitive","useForwardExpose","useAddForm","McpAddFormPrimitiveAuthSelect","Element","HTMLSelectElement","Props","Omit","asChild","className","children","props","attrs","slots","form","forwardRef","as","class","ref","value","state","authType","onChange","event","Event","target","setField","default","name","inheritAttrs"],"sources":["../../../src/primitives/addForm/McpAddFormAuthSelect.tsx"],"sourcesContent":["import type { VNodeChild } from \"vue\";\nimport { defineComponent, h, type SelectHTMLAttributes } from \"vue\";\nimport { Primitive, useForwardExpose } from \"reka-ui\";\nimport { useAddForm } from \"./context\";\nexport namespace McpAddFormPrimitiveAuthSelect {\n export type Element = HTMLSelectElement;\n export type Props = Omit<SelectHTMLAttributes, \"value\" | \"onChange\"> & {\n asChild?: boolean;\n className?: string | undefined;\n children?: VNodeChild;\n };\n}\nexport const McpAddFormPrimitiveAuthSelect = defineComponent(\n (props: McpAddFormPrimitiveAuthSelect.Props, { attrs, slots }) => {\n const form = useAddForm();\n const { forwardRef } = useForwardExpose();\n return () =>\n h(\n Primitive,\n {\n ...attrs,\n as: \"select\",\n asChild: props.asChild ?? false,\n class: [attrs.class, props.className],\n ref: forwardRef,\n value: form.state.authType,\n onChange: (event: Event) => {\n const value = (event.target as HTMLSelectElement).value;\n if (value === \"oauth\" || value === \"bearer\" || value === \"none\")\n form.setField(\"authType\", value);\n },\n },\n {\n default: () =>\n props.children ??\n slots.default?.() ?? [\n h(\"option\", { value: \"oauth\" }, \"OAuth\"),\n h(\"option\", { value: \"bearer\" }, \"Bearer token\"),\n h(\"option\", { value: \"none\" }, \"None\"),\n ],\n },\n );\n },\n {\n name: \"McpAddFormPrimitiveAuthSelect\",\n inheritAttrs: false,\n props: [\"className\", \"children\", \"asChild\"],\n },\n);\n"],"mappings":";;;;AAYA,MAAaO,gCAAgCN,iBAC1Cc,OAA4C,EAAEC,OAAOC,YAAY;CAChE,MAAMC,OAAOZ,WAAW;CACxB,MAAM,EAAEa,eAAed,iBAAiB;CACxC,aACEH,EACEE,WACA;EACE,GAAGY;EACHI,IAAI;EACJR,SAASG,MAAMH,WAAW;EAC1BS,OAAO,CAACL,MAAMK,OAAON,MAAMF,SAAS;EACpCS,KAAKH;EACLI,OAAOL,KAAKM,MAAMC;EAClBC,WAAWC,UAAiB;GAC1B,MAAMJ,QAASI,MAAME,OAA6BN;GAClD,IAAIA,UAAU,WAAWA,UAAU,YAAYA,UAAU,QACvDL,KAAKY,SAAS,YAAYP,KAAK;EACnC;CACF,GACA,EACEQ,eACEhB,MAAMD,YACNG,MAAMc,UAAU,KAAK;EACnB7B,EAAE,UAAU,EAAEqB,OAAO,QAAQ,GAAG,OAAO;EACvCrB,EAAE,UAAU,EAAEqB,OAAO,SAAS,GAAG,cAAc;EAC/CrB,EAAE,UAAU,EAAEqB,OAAO,OAAO,GAAG,MAAM;CAAC,EAE5C,CACF;AACJ,GACA;CACES,MAAM;CACNC,cAAc;CACdlB,OAAO;EAAC;EAAa;EAAY;CAAS;AAC5C,CACF"}
@@ -0,0 +1,16 @@
1
+ import type { VNodeChild } from "vue";
2
+ import { type InputHTMLAttributes } from "vue";
3
+ export declare namespace McpAddFormPrimitiveBearerTokenField {
4
+ type Element = HTMLInputElement;
5
+ type Props = Omit<InputHTMLAttributes, "value" | "onChange" | "type"> & {
6
+ asChild?: boolean;
7
+ className?: string | undefined;
8
+ children?: VNodeChild;
9
+ };
10
+ }
11
+ export declare const McpAddFormPrimitiveBearerTokenField: import("vue").DefineSetupFnComponent<McpAddFormPrimitiveBearerTokenField.Props, {}, {}, Omit<InputHTMLAttributes, "onChange" | "type" | "value"> & {
12
+ asChild?: boolean;
13
+ className?: string | undefined;
14
+ children?: VNodeChild;
15
+ } & {}, import("vue").PublicProps>;
16
+ //# sourceMappingURL=McpAddFormBearerTokenField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpAddFormBearerTokenField.d.ts","mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK;AACrC,OAAO,EAAkC,KAAK,mBAAmB,EAAE,MAAM,KAAK;AAG9E,yBAAiB,mCAAmC,CAAC;IACnD,KAAY,OAAO,GAAG,gBAAgB;IACtC,KAAY,KAAK,GAAG,IAAI,CACtB,mBAAmB,EACnB,OAAO,GAAG,UAAU,GAAG,MAAM,CAC9B,GAAG;QACF,OAAO,CAAC,EAAE,OAAO;QACjB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS;QAC9B,QAAQ,CAAC,EAAE,UAAU;KACtB;;AAEH,eAAO,MAAM,mCAAmC;cALlC,OAAO;gBACL,MAAM,GAAG,SAAS;eACnB,UAAU;kCAwCxB","names":[],"ignoreList":[],"sources":["../../../src/primitives/addForm/McpAddFormBearerTokenField.tsx"],"sourcesContent":[null]}
@@ -0,0 +1,32 @@
1
+ import { useAddForm } from "./context.js";
2
+ import { defineComponent, h, mergeProps } from "vue";
3
+ import { Primitive, useForwardExpose } from "reka-ui";
4
+ // src/primitives/addForm/McpAddFormBearerTokenField.tsx
5
+ const McpAddFormPrimitiveBearerTokenField = defineComponent((props, { attrs, slots }) => {
6
+ const form = useAddForm();
7
+ const { forwardRef } = useForwardExpose();
8
+ return () => h(Primitive, mergeProps({ type: "password" }, attrs, {
9
+ as: "input",
10
+ asChild: props.asChild ?? false,
11
+ class: props.className,
12
+ ref: forwardRef,
13
+ value: form.state.bearerToken,
14
+ "aria-invalid": attrs["aria-invalid"] ?? (form.state.errorField === "bearerToken" ? true : void 0),
15
+ "aria-describedby": [attrs["aria-describedby"], form.state.errorField === "bearerToken" ? form.ids.error : null].filter(Boolean).join(" ") || void 0,
16
+ onInput: (event) => form.setField("bearerToken", event.target.value)
17
+ }), {
18
+ ...slots,
19
+ default: () => props.children ?? slots.default?.()
20
+ });
21
+ }, {
22
+ name: "McpAddFormPrimitiveBearerTokenField",
23
+ inheritAttrs: false,
24
+ props: [
25
+ "className",
26
+ "children",
27
+ "asChild"
28
+ ]
29
+ });
30
+ export { McpAddFormPrimitiveBearerTokenField };
31
+
32
+ //# sourceMappingURL=McpAddFormBearerTokenField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpAddFormBearerTokenField.js","names":["VNodeChild","defineComponent","h","mergeProps","InputHTMLAttributes","Primitive","useForwardExpose","useAddForm","McpAddFormPrimitiveBearerTokenField","Element","HTMLInputElement","Props","Omit","asChild","className","children","props","attrs","slots","form","forwardRef","type","as","class","ref","value","state","bearerToken","errorField","undefined","ids","error","filter","Boolean","join","onInput","event","Event","setField","target","default","name","inheritAttrs"],"sources":["../../../src/primitives/addForm/McpAddFormBearerTokenField.tsx"],"sourcesContent":["import type { VNodeChild } from \"vue\";\nimport { defineComponent, h, mergeProps, type InputHTMLAttributes } from \"vue\";\nimport { Primitive, useForwardExpose } from \"reka-ui\";\nimport { useAddForm } from \"./context\";\nexport namespace McpAddFormPrimitiveBearerTokenField {\n export type Element = HTMLInputElement;\n export type Props = Omit<\n InputHTMLAttributes,\n \"value\" | \"onChange\" | \"type\"\n > & {\n asChild?: boolean;\n className?: string | undefined;\n children?: VNodeChild;\n };\n}\nexport const McpAddFormPrimitiveBearerTokenField = defineComponent(\n (props: McpAddFormPrimitiveBearerTokenField.Props, { attrs, slots }) => {\n const form = useAddForm();\n const { forwardRef } = useForwardExpose();\n return () =>\n h(\n Primitive,\n mergeProps({ type: \"password\" }, attrs, {\n as: \"input\",\n asChild: props.asChild ?? false,\n class: props.className,\n ref: forwardRef,\n value: form.state.bearerToken,\n \"aria-invalid\":\n attrs[\"aria-invalid\"] ??\n (form.state.errorField === \"bearerToken\" ? true : undefined),\n \"aria-describedby\":\n [\n attrs[\"aria-describedby\"],\n form.state.errorField === \"bearerToken\" ? form.ids.error : null,\n ]\n .filter(Boolean)\n .join(\" \") || undefined,\n onInput: (event: Event) =>\n form.setField(\n \"bearerToken\",\n (event.target as HTMLInputElement).value,\n ),\n }),\n { ...slots, default: () => props.children ?? slots.default?.() },\n );\n },\n {\n name: \"McpAddFormPrimitiveBearerTokenField\",\n inheritAttrs: false,\n props: [\"className\", \"children\", \"asChild\"],\n },\n);\n"],"mappings":";;;;AAeA,MAAaQ,sCAAsCP,iBAChDe,OAAkD,EAAEC,OAAOC,YAAY;CACtE,MAAMC,OAAOZ,WAAW;CACxB,MAAM,EAAEa,eAAed,iBAAiB;CACxC,aACEJ,EACEG,WACAF,WAAW,EAAEkB,MAAM,WAAW,GAAGJ,OAAO;EACtCK,IAAI;EACJT,SAASG,MAAMH,WAAW;EAC1BU,OAAOP,MAAMF;EACbU,KAAKJ;EACLK,OAAON,KAAKO,MAAMC;EAClB,gBACEV,MAAM,oBACLE,KAAKO,MAAME,eAAe,gBAAgB,OAAOC,KAAAA;EACpD,oBACE,CACEZ,MAAM,qBACNE,KAAKO,MAAME,eAAe,gBAAgBT,KAAKW,IAAIC,QAAQ,IAAI,CAChE,CACEC,OAAOC,OAAO,CAAC,CACfC,KAAK,GAAG,KAAKL,KAAAA;EAClBM,UAAUC,UACRjB,KAAKmB,SACH,eACCF,MAAMG,OAA4Bd,KACrC;CACJ,CAAC,GACD;EAAE,GAAGP;EAAOsB,eAAexB,MAAMD,YAAYG,MAAMsB,UAAU;CAAE,CACjE;AACJ,GACA;CACEC,MAAM;CACNC,cAAc;CACd1B,OAAO;EAAC;EAAa;EAAY;CAAS;AAC5C,CACF"}
@@ -0,0 +1,16 @@
1
+ import type { VNodeChild } from "vue";
2
+ import { type ButtonHTMLAttributes } from "vue";
3
+ export declare namespace McpAddFormPrimitiveCancel {
4
+ type Element = HTMLButtonElement;
5
+ type Props = ButtonHTMLAttributes & {
6
+ asChild?: boolean;
7
+ className?: string | undefined;
8
+ children?: VNodeChild;
9
+ };
10
+ }
11
+ export declare const McpAddFormPrimitiveCancel: import("vue").DefineSetupFnComponent<McpAddFormPrimitiveCancel.Props, {}, {}, ButtonHTMLAttributes & {
12
+ asChild?: boolean;
13
+ className?: string | undefined;
14
+ children?: VNodeChild;
15
+ } & {}, import("vue").PublicProps>;
16
+ //# sourceMappingURL=McpAddFormCancel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpAddFormCancel.d.ts","mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK;AACrC,OAAO,EAAkC,KAAK,oBAAoB,EAAE,MAAM,KAAK;AAG/E,yBAAiB,yBAAyB,CAAC;IACzC,KAAY,OAAO,GAAG,iBAAiB;IACvC,KAAY,KAAK,GAAG,oBAAoB,GAAG;QACzC,OAAO,CAAC,EAAE,OAAO;QACjB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS;QAC9B,QAAQ,CAAC,EAAE,UAAU;KACtB;;AAEH,eAAO,MAAM,yBAAyB;cALxB,OAAO;gBACL,MAAM,GAAG,SAAS;eACnB,UAAU;kCA6BxB","names":[],"ignoreList":[],"sources":["../../../src/primitives/addForm/McpAddFormCancel.tsx"],"sourcesContent":[null]}