@commandable/mcp 0.0.7 → 0.1.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 (217) hide show
  1. package/README.md +28 -31
  2. package/dist/app/nitro.json +15 -0
  3. package/dist/app/public/_fonts/57NSSoFy1VLVs2gqly8Ls9awBnZMFyXGrefpmqvdqmc-zJfbBtpgM4cDmcXBsqZNW79_kFnlpPd62b48glgdydA.woff2 +0 -0
  4. package/dist/app/public/_fonts/8VR2wSMN-3U4NbWAVYXlkRV6hA0jFBXP-0RtL3X7fko-x2gYI4qfmkRdxyQQUPaBZdZdgl1TeVrquF_TxHeM4lM.woff2 +0 -0
  5. package/dist/app/public/_fonts/GsKUclqeNLJ96g5AU593ug6yanivOiwjW_7zESNPChw-jHA4tBeM1bjF7LATGUpfBuSTyomIFrWBTzjF7txVYfg.woff2 +0 -0
  6. package/dist/app/public/_fonts/Ld1FnTo3yTIwDyGfTQ5-Fws9AWsCbKfMvgxduXr7JcY-W25bL8NF1fjpLRSOgJb7RoZPHqGQNwMTM7S9tHVoxx8.woff2 +0 -0
  7. package/dist/app/public/_fonts/NdzqRASp2bovDUhQT1IRE_EMqKJ2KYQdTCfFcBvL8yw-KhwZiS86o3fErOe5GGMExHUemmI_dBfaEFxjISZrBd0.woff2 +0 -0
  8. package/dist/app/public/_fonts/iTkrULNFJJkTvihIg1Vqi5IODRH_9btXCioVF5l98I8-AndUyau2HR2felA_ra8V2mutQgschhasE5FD1dXGJX8.woff2 +0 -0
  9. package/dist/app/public/_nuxt/-tOYwuj2.js +30 -0
  10. package/dist/app/public/_nuxt/BdctKXor.js +1 -0
  11. package/dist/app/public/_nuxt/BlP7Uu-5.js +1 -0
  12. package/dist/app/public/_nuxt/CsbkV5Bd.js +1 -0
  13. package/dist/app/public/_nuxt/D-43HurL.js +59 -0
  14. package/dist/app/public/_nuxt/DU1mG77A.js +1 -0
  15. package/dist/app/public/_nuxt/_id_.BKAjWkoP.css +1 -0
  16. package/dist/app/public/_nuxt/builds/latest.json +1 -0
  17. package/dist/app/public/_nuxt/builds/meta/7d21a9cf-c8f0-412e-9742-04292ff0d350.json +1 -0
  18. package/dist/app/public/_nuxt/entry.Y3mA4bzA.css +1 -0
  19. package/dist/app/public/_nuxt/error-404.C7fg894-.css +1 -0
  20. package/dist/app/public/_nuxt/error-500.DjUK_N2Y.css +1 -0
  21. package/dist/app/public/_nuxt/uS7FY2am.js +1 -0
  22. package/dist/app/public/favicon.ico +0 -0
  23. package/dist/app/server/chunks/_/error-500.mjs +19 -0
  24. package/dist/app/server/chunks/_/error-500.mjs.map +1 -0
  25. package/dist/app/server/chunks/_/icons.mjs +5933 -0
  26. package/dist/app/server/chunks/_/icons.mjs.map +1 -0
  27. package/dist/app/server/chunks/_/icons2.mjs +11338 -0
  28. package/dist/app/server/chunks/_/icons2.mjs.map +1 -0
  29. package/dist/app/server/chunks/build/IntegrationCredentials-styles.CULcCK6_.mjs +8 -0
  30. package/dist/app/server/chunks/build/IntegrationCredentials-styles.CULcCK6_.mjs.map +1 -0
  31. package/dist/app/server/chunks/build/_id_-DBwSV4AY.mjs +1354 -0
  32. package/dist/app/server/chunks/build/_id_-DBwSV4AY.mjs.map +1 -0
  33. package/dist/app/server/chunks/build/client.precomputed.mjs +4 -0
  34. package/dist/app/server/chunks/build/client.precomputed.mjs.map +1 -0
  35. package/dist/app/server/chunks/build/error-404-D2QibUBT.mjs +121 -0
  36. package/dist/app/server/chunks/build/error-404-D2QibUBT.mjs.map +1 -0
  37. package/dist/app/server/chunks/build/error-404-styles.Bvxdxqjk.mjs +8 -0
  38. package/dist/app/server/chunks/build/error-404-styles.Bvxdxqjk.mjs.map +1 -0
  39. package/dist/app/server/chunks/build/error-500-DYvawybF.mjs +104 -0
  40. package/dist/app/server/chunks/build/error-500-DYvawybF.mjs.map +1 -0
  41. package/dist/app/server/chunks/build/error-500-styles.BnYAAXSg.mjs +8 -0
  42. package/dist/app/server/chunks/build/error-500-styles.BnYAAXSg.mjs.map +1 -0
  43. package/dist/app/server/chunks/build/fetch-ZbqIFhDG.mjs +2851 -0
  44. package/dist/app/server/chunks/build/fetch-ZbqIFhDG.mjs.map +1 -0
  45. package/dist/app/server/chunks/build/index-5H-nmhph.mjs +68 -0
  46. package/dist/app/server/chunks/build/index-5H-nmhph.mjs.map +1 -0
  47. package/dist/app/server/chunks/build/index-C8flTcKI.mjs +720 -0
  48. package/dist/app/server/chunks/build/index-C8flTcKI.mjs.map +1 -0
  49. package/dist/app/server/chunks/build/server.mjs +8736 -0
  50. package/dist/app/server/chunks/build/server.mjs.map +1 -0
  51. package/dist/app/server/chunks/build/styles.mjs +12 -0
  52. package/dist/app/server/chunks/build/styles.mjs.map +1 -0
  53. package/dist/app/server/chunks/nitro/nitro.mjs +9359 -0
  54. package/dist/app/server/chunks/nitro/nitro.mjs.map +1 -0
  55. package/dist/app/server/chunks/routes/api/_commandable/status.get.mjs +59 -0
  56. package/dist/app/server/chunks/routes/api/_commandable/status.get.mjs.map +1 -0
  57. package/dist/app/server/chunks/routes/api/catalog/_type/tools.get.mjs +40 -0
  58. package/dist/app/server/chunks/routes/api/catalog/_type/tools.get.mjs.map +1 -0
  59. package/dist/app/server/chunks/routes/api/catalog/_type/toolsets.get.mjs +41 -0
  60. package/dist/app/server/chunks/routes/api/catalog/_type/toolsets.get.mjs.map +1 -0
  61. package/dist/app/server/chunks/routes/api/catalog.get.mjs +46 -0
  62. package/dist/app/server/chunks/routes/api/catalog.get.mjs.map +1 -0
  63. package/dist/app/server/chunks/routes/api/index.get.mjs +39 -0
  64. package/dist/app/server/chunks/routes/api/index.get.mjs.map +1 -0
  65. package/dist/app/server/chunks/routes/api/index.post.mjs +60 -0
  66. package/dist/app/server/chunks/routes/api/index.post.mjs.map +1 -0
  67. package/dist/app/server/chunks/routes/api/integrations/_id/credentials-config.get.mjs +63 -0
  68. package/dist/app/server/chunks/routes/api/integrations/_id/credentials-config.get.mjs.map +1 -0
  69. package/dist/app/server/chunks/routes/api/integrations/_id/credentials-status.get.mjs +70 -0
  70. package/dist/app/server/chunks/routes/api/integrations/_id/credentials-status.get.mjs.map +1 -0
  71. package/dist/app/server/chunks/routes/api/integrations/_id/credentials.delete.mjs +61 -0
  72. package/dist/app/server/chunks/routes/api/integrations/_id/credentials.delete.mjs.map +1 -0
  73. package/dist/app/server/chunks/routes/api/integrations/_id/credentials.post.mjs +94 -0
  74. package/dist/app/server/chunks/routes/api/integrations/_id/credentials.post.mjs.map +1 -0
  75. package/dist/app/server/chunks/routes/api/integrations/_id/permissions.post.mjs +54 -0
  76. package/dist/app/server/chunks/routes/api/integrations/_id/permissions.post.mjs.map +1 -0
  77. package/dist/app/server/chunks/routes/api/integrations/_id/toolsets.post.mjs +53 -0
  78. package/dist/app/server/chunks/routes/api/integrations/_id/toolsets.post.mjs.map +1 -0
  79. package/dist/app/server/chunks/routes/api/integrations/_id_.delete.mjs +44 -0
  80. package/dist/app/server/chunks/routes/api/integrations/_id_.delete.mjs.map +1 -0
  81. package/dist/app/server/chunks/routes/health.get.mjs +37 -0
  82. package/dist/app/server/chunks/routes/health.get.mjs.map +1 -0
  83. package/dist/app/server/chunks/routes/mcp/create.mjs +56 -0
  84. package/dist/app/server/chunks/routes/mcp/create.mjs.map +1 -0
  85. package/dist/app/server/chunks/routes/mcp.mjs +56 -0
  86. package/dist/app/server/chunks/routes/mcp.mjs.map +1 -0
  87. package/dist/app/server/chunks/routes/renderer.mjs +492 -0
  88. package/dist/app/server/chunks/routes/renderer.mjs.map +1 -0
  89. package/dist/app/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
  90. package/dist/app/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
  91. package/dist/app/server/index.mjs +31 -0
  92. package/dist/app/server/index.mjs.map +1 -0
  93. package/dist/app/server/migrations/pg/0000_initial.sql +74 -0
  94. package/dist/app/server/migrations/pg/meta/_journal.json +13 -0
  95. package/dist/app/server/migrations/sqlite/0000_initial.sql +74 -0
  96. package/dist/app/server/migrations/sqlite/meta/_journal.json +13 -0
  97. package/dist/app/server/package.json +108 -0
  98. package/dist/cli/credentialManager.d.ts.map +1 -1
  99. package/dist/cli/credentialManager.js +5 -4
  100. package/dist/cli/credentialManager.js.map +1 -1
  101. package/dist/cli/index.d.ts +15 -0
  102. package/dist/cli/index.d.ts.map +1 -1
  103. package/dist/cli/index.js +679 -17
  104. package/dist/cli/index.js.map +1 -1
  105. package/dist/cli/setup.d.ts.map +1 -1
  106. package/dist/cli/setup.js +124 -33
  107. package/dist/cli/setup.js.map +1 -1
  108. package/dist/config/configApply.js +1 -1
  109. package/dist/config/configApply.js.map +1 -1
  110. package/dist/config/configSchema.d.ts +6 -2
  111. package/dist/config/configSchema.d.ts.map +1 -1
  112. package/dist/config/configSchema.js +2 -1
  113. package/dist/config/configSchema.js.map +1 -1
  114. package/dist/db/client.d.ts +3 -1
  115. package/dist/db/client.d.ts.map +1 -1
  116. package/dist/db/client.js.map +1 -1
  117. package/dist/db/credentialStore.d.ts +2 -0
  118. package/dist/db/credentialStore.d.ts.map +1 -1
  119. package/dist/db/credentialStore.js +15 -16
  120. package/dist/db/credentialStore.js.map +1 -1
  121. package/dist/db/integrationStore.d.ts +7 -0
  122. package/dist/db/integrationStore.d.ts.map +1 -1
  123. package/dist/db/integrationStore.js +61 -31
  124. package/dist/db/integrationStore.js.map +1 -1
  125. package/dist/db/integrationTypeConfigStore.d.ts +6 -0
  126. package/dist/db/integrationTypeConfigStore.d.ts.map +1 -0
  127. package/dist/db/integrationTypeConfigStore.js +94 -0
  128. package/dist/db/integrationTypeConfigStore.js.map +1 -0
  129. package/dist/db/migrate.d.ts.map +1 -1
  130. package/dist/db/migrate.js +8 -109
  131. package/dist/db/migrate.js.map +1 -1
  132. package/dist/db/migrations/pg/0000_initial.sql +74 -0
  133. package/dist/db/migrations/pg/meta/_journal.json +13 -0
  134. package/dist/db/migrations/sqlite/0000_initial.sql +74 -0
  135. package/dist/db/migrations/sqlite/meta/_journal.json +13 -0
  136. package/dist/db/schema.d.ts +961 -153
  137. package/dist/db/schema.d.ts.map +1 -1
  138. package/dist/db/schema.js +55 -3
  139. package/dist/db/schema.js.map +1 -1
  140. package/dist/db/toolDefinitionStore.d.ts +6 -0
  141. package/dist/db/toolDefinitionStore.d.ts.map +1 -0
  142. package/dist/db/toolDefinitionStore.js +95 -0
  143. package/dist/db/toolDefinitionStore.js.map +1 -0
  144. package/dist/index.d.ts +7 -0
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +7 -0
  147. package/dist/index.js.map +1 -1
  148. package/dist/integrations/actionsFactory.d.ts +5 -1
  149. package/dist/integrations/actionsFactory.d.ts.map +1 -1
  150. package/dist/integrations/actionsFactory.js +37 -14
  151. package/dist/integrations/actionsFactory.js.map +1 -1
  152. package/dist/integrations/customToolFactory.d.ts +13 -0
  153. package/dist/integrations/customToolFactory.d.ts.map +1 -0
  154. package/dist/integrations/customToolFactory.js +31 -0
  155. package/dist/integrations/customToolFactory.js.map +1 -0
  156. package/dist/integrations/dataLoader.d.ts +2 -2
  157. package/dist/integrations/dataLoader.d.ts.map +1 -1
  158. package/dist/integrations/dataLoader.js +1 -1
  159. package/dist/integrations/dataLoader.js.map +1 -1
  160. package/dist/integrations/fileIntegrationTypeConfigStore.d.ts +7 -0
  161. package/dist/integrations/fileIntegrationTypeConfigStore.d.ts.map +1 -0
  162. package/dist/integrations/fileIntegrationTypeConfigStore.js +34 -0
  163. package/dist/integrations/fileIntegrationTypeConfigStore.js.map +1 -0
  164. package/dist/integrations/getIntegration.d.ts +4 -1
  165. package/dist/integrations/getIntegration.d.ts.map +1 -1
  166. package/dist/integrations/getIntegration.js +12 -4
  167. package/dist/integrations/getIntegration.js.map +1 -1
  168. package/dist/integrations/health.d.ts +20 -0
  169. package/dist/integrations/health.d.ts.map +1 -0
  170. package/dist/integrations/health.js +43 -0
  171. package/dist/integrations/health.js.map +1 -0
  172. package/dist/integrations/integrationTypeConfigLookup.d.ts +12 -0
  173. package/dist/integrations/integrationTypeConfigLookup.d.ts.map +1 -0
  174. package/dist/integrations/integrationTypeConfigLookup.js +11 -0
  175. package/dist/integrations/integrationTypeConfigLookup.js.map +1 -0
  176. package/dist/integrations/providerRegistry.d.ts.map +1 -1
  177. package/dist/integrations/providerRegistry.js +0 -4
  178. package/dist/integrations/providerRegistry.js.map +1 -1
  179. package/dist/integrations/proxy.d.ts +4 -1
  180. package/dist/integrations/proxy.d.ts.map +1 -1
  181. package/dist/integrations/proxy.js +94 -106
  182. package/dist/integrations/proxy.js.map +1 -1
  183. package/dist/integrations/sandbox.js +11 -1
  184. package/dist/integrations/sandbox.js.map +1 -1
  185. package/dist/mcp/abilityCatalog.d.ts +46 -0
  186. package/dist/mcp/abilityCatalog.d.ts.map +1 -0
  187. package/dist/mcp/abilityCatalog.js +275 -0
  188. package/dist/mcp/abilityCatalog.js.map +1 -0
  189. package/dist/mcp/builder_guide.md +441 -0
  190. package/dist/mcp/commandable_readme.md +29 -0
  191. package/dist/mcp/handlers.d.ts +10 -1
  192. package/dist/mcp/handlers.d.ts.map +1 -1
  193. package/dist/mcp/handlers.js +51 -4
  194. package/dist/mcp/handlers.js.map +1 -1
  195. package/dist/mcp/metaTools.d.ts +77 -0
  196. package/dist/mcp/metaTools.d.ts.map +1 -0
  197. package/dist/mcp/metaTools.js +753 -0
  198. package/dist/mcp/metaTools.js.map +1 -0
  199. package/dist/mcp/server.d.ts +10 -0
  200. package/dist/mcp/server.d.ts.map +1 -1
  201. package/dist/mcp/server.js +2 -2
  202. package/dist/mcp/server.js.map +1 -1
  203. package/dist/mcp/sessionState.d.ts +18 -0
  204. package/dist/mcp/sessionState.d.ts.map +1 -0
  205. package/dist/mcp/sessionState.js +65 -0
  206. package/dist/mcp/sessionState.js.map +1 -0
  207. package/dist/mcp/toolAdapter.d.ts +17 -0
  208. package/dist/mcp/toolAdapter.d.ts.map +1 -1
  209. package/dist/mcp/toolAdapter.js +7 -1
  210. package/dist/mcp/toolAdapter.js.map +1 -1
  211. package/dist/types.d.ts +61 -2
  212. package/dist/types.d.ts.map +1 -1
  213. package/dist/version.d.ts +2 -0
  214. package/dist/version.d.ts.map +1 -0
  215. package/dist/version.js +7 -0
  216. package/dist/version.js.map +1 -0
  217. package/package.json +8 -6
@@ -0,0 +1,492 @@
1
+ import { createRenderer, getRequestDependencies, getPreloadLinks, getPrefetchLinks } from 'vue-bundle-renderer/runtime';
2
+ import { v as buildAssetsURL, w as useRuntimeConfig, x as getResponseStatusText, y as getResponseStatus, z as defineRenderHandler, A as publicAssetsURL, B as getQuery, c as createError, C as destr, D as getRouteRules, E as joinURL, F as useNitroApp } from '../nitro/nitro.mjs';
3
+ import { renderToString } from 'vue/server-renderer';
4
+ import { createHead as createHead$1, propsToString, renderSSRHead } from 'unhead/server';
5
+ import { stringify, uneval } from 'devalue';
6
+ import { FlatMetaPlugin } from 'unhead/plugins';
7
+ import { walkResolver } from 'unhead/utils';
8
+ import { isRef, toValue, hasInjectionContext, inject, ref, watchEffect, getCurrentInstance, onBeforeUnmount, onDeactivated, onActivated } from 'vue';
9
+
10
+ const VueResolver = (_, value) => {
11
+ return isRef(value) ? toValue(value) : value;
12
+ };
13
+
14
+ const headSymbol = "usehead";
15
+ // @__NO_SIDE_EFFECTS__
16
+ function vueInstall(head) {
17
+ const plugin = {
18
+ install(app) {
19
+ app.config.globalProperties.$unhead = head;
20
+ app.config.globalProperties.$head = head;
21
+ app.provide(headSymbol, head);
22
+ }
23
+ };
24
+ return plugin.install;
25
+ }
26
+
27
+ // @__NO_SIDE_EFFECTS__
28
+ function injectHead() {
29
+ if (hasInjectionContext()) {
30
+ const instance = inject(headSymbol);
31
+ if (instance) {
32
+ return instance;
33
+ }
34
+ }
35
+ throw new Error("useHead() was called without provide context, ensure you call it through the setup() function.");
36
+ }
37
+ function useHead(input, options = {}) {
38
+ const head = options.head || /* @__PURE__ */ injectHead();
39
+ return head.ssr ? head.push(input || {}, options) : clientUseHead(head, input, options);
40
+ }
41
+ function clientUseHead(head, input, options = {}) {
42
+ const deactivated = ref(false);
43
+ let entry;
44
+ watchEffect(() => {
45
+ const i = deactivated.value ? {} : walkResolver(input, VueResolver);
46
+ if (entry) {
47
+ entry.patch(i);
48
+ } else {
49
+ entry = head.push(i, options);
50
+ }
51
+ });
52
+ const vm = getCurrentInstance();
53
+ if (vm) {
54
+ onBeforeUnmount(() => {
55
+ entry.dispose();
56
+ });
57
+ onDeactivated(() => {
58
+ deactivated.value = true;
59
+ });
60
+ onActivated(() => {
61
+ deactivated.value = false;
62
+ });
63
+ }
64
+ return entry;
65
+ }
66
+ function useSeoMeta(input = {}, options = {}) {
67
+ const head = options.head || /* @__PURE__ */ injectHead();
68
+ head.use(FlatMetaPlugin);
69
+ const { title, titleTemplate, ...meta } = input;
70
+ return useHead({
71
+ title,
72
+ titleTemplate,
73
+ _flatMeta: meta
74
+ }, options);
75
+ }
76
+
77
+ // @__NO_SIDE_EFFECTS__
78
+ function createHead(options = {}) {
79
+ const head = createHead$1({
80
+ ...options,
81
+ propResolvers: [VueResolver]
82
+ });
83
+ head.install = vueInstall(head);
84
+ return head;
85
+ }
86
+
87
+ const NUXT_RUNTIME_PAYLOAD_EXTRACTION = false;
88
+
89
+ const appHead = {"meta":[{"name":"viewport","content":"width=device-width, initial-scale=1"},{"charset":"utf-8"}],"link":[],"style":[],"script":[],"noscript":[]};
90
+
91
+ const appRootTag = "div";
92
+
93
+ const appRootAttrs = {"id":"__nuxt","class":"isolate"};
94
+
95
+ const appTeleportTag = "div";
96
+
97
+ const appTeleportAttrs = {"id":"teleports"};
98
+
99
+ const appSpaLoaderTag = "div";
100
+
101
+ const appSpaLoaderAttrs = {"id":"__nuxt-loader"};
102
+
103
+ const appId = "nuxt-app";
104
+
105
+ const APP_ROOT_OPEN_TAG = `<${appRootTag}${propsToString(appRootAttrs)}>`;
106
+ const APP_ROOT_CLOSE_TAG = `</${appRootTag}>`;
107
+ // @ts-expect-error file will be produced after app build
108
+ const getServerEntry = () => import('../build/server.mjs').then((r) => r.default || r);
109
+ // @ts-expect-error file will be produced after app build
110
+ const getPrecomputedDependencies = () => import('../build/client.precomputed.mjs').then((r) => r.default || r).then((r) => typeof r === "function" ? r() : r);
111
+ // -- SSR Renderer --
112
+ const getSSRRenderer = lazyCachedFunction(async () => {
113
+ // Load server bundle
114
+ const createSSRApp = await getServerEntry();
115
+ if (!createSSRApp) {
116
+ throw new Error("Server bundle is not available");
117
+ }
118
+ // Load precomputed dependencies
119
+ const precomputed = await getPrecomputedDependencies();
120
+ // Create renderer
121
+ const renderer = createRenderer(createSSRApp, {
122
+ precomputed,
123
+ manifest: undefined,
124
+ renderToString: renderToString$1,
125
+ buildAssetsURL
126
+ });
127
+ async function renderToString$1(input, context) {
128
+ const html = await renderToString(input, context);
129
+ return APP_ROOT_OPEN_TAG + html + APP_ROOT_CLOSE_TAG;
130
+ }
131
+ return renderer;
132
+ });
133
+ // -- SPA Renderer --
134
+ const getSPARenderer = lazyCachedFunction(async () => {
135
+ const precomputed = await getPrecomputedDependencies();
136
+ // @ts-expect-error virtual file
137
+ const spaTemplate = await import('../virtual/_virtual_spa-template.mjs').then((r) => r.template).catch(() => "").then((r) => {
138
+ {
139
+ const APP_SPA_LOADER_OPEN_TAG = `<${appSpaLoaderTag}${propsToString(appSpaLoaderAttrs)}>`;
140
+ const APP_SPA_LOADER_CLOSE_TAG = `</${appSpaLoaderTag}>`;
141
+ const appTemplate = APP_ROOT_OPEN_TAG + APP_ROOT_CLOSE_TAG;
142
+ const loaderTemplate = r ? APP_SPA_LOADER_OPEN_TAG + r + APP_SPA_LOADER_CLOSE_TAG : "";
143
+ return appTemplate + loaderTemplate;
144
+ }
145
+ });
146
+ // Create SPA renderer and cache the result for all requests
147
+ const renderer = createRenderer(() => () => {}, {
148
+ precomputed,
149
+ manifest: undefined,
150
+ renderToString: () => spaTemplate,
151
+ buildAssetsURL
152
+ });
153
+ const result = await renderer.renderToString({});
154
+ const renderToString = (ssrContext) => {
155
+ const config = useRuntimeConfig(ssrContext.event);
156
+ ssrContext.modules ||= new Set();
157
+ ssrContext.payload.serverRendered = false;
158
+ ssrContext.config = {
159
+ public: config.public,
160
+ app: config.app
161
+ };
162
+ return Promise.resolve(result);
163
+ };
164
+ return {
165
+ rendererContext: renderer.rendererContext,
166
+ renderToString
167
+ };
168
+ });
169
+ function lazyCachedFunction(fn) {
170
+ let res = null;
171
+ return () => {
172
+ if (res === null) {
173
+ res = fn().catch((err) => {
174
+ res = null;
175
+ throw err;
176
+ });
177
+ }
178
+ return res;
179
+ };
180
+ }
181
+ function getRenderer(ssrContext) {
182
+ return ssrContext.noSSR ? getSPARenderer() : getSSRRenderer();
183
+ }
184
+ // @ts-expect-error file will be produced after app build
185
+ const getSSRStyles = lazyCachedFunction(() => import('../build/styles.mjs').then((r) => r.default || r));
186
+
187
+ function renderPayloadResponse(ssrContext) {
188
+ return {
189
+ body: stringify(splitPayload(ssrContext).payload, ssrContext["~payloadReducers"]) ,
190
+ statusCode: getResponseStatus(ssrContext.event),
191
+ statusMessage: getResponseStatusText(ssrContext.event),
192
+ headers: {
193
+ "content-type": "application/json;charset=utf-8" ,
194
+ "x-powered-by": "Nuxt"
195
+ }
196
+ };
197
+ }
198
+ function renderPayloadJsonScript(opts) {
199
+ const contents = opts.data ? stringify(opts.data, opts.ssrContext["~payloadReducers"]) : "";
200
+ const payload = {
201
+ "type": "application/json",
202
+ "innerHTML": contents,
203
+ "data-nuxt-data": appId,
204
+ "data-ssr": !(opts.ssrContext.noSSR)
205
+ };
206
+ {
207
+ payload.id = "__NUXT_DATA__";
208
+ }
209
+ if (opts.src) {
210
+ payload["data-src"] = opts.src;
211
+ }
212
+ const config = uneval(opts.ssrContext.config);
213
+ return [payload, { innerHTML: `window.__NUXT__={};window.__NUXT__.config=${config}` }];
214
+ }
215
+ function splitPayload(ssrContext) {
216
+ const { data, prerenderedAt, ...initial } = ssrContext.payload;
217
+ return {
218
+ initial: {
219
+ ...initial,
220
+ prerenderedAt
221
+ },
222
+ payload: {
223
+ data,
224
+ prerenderedAt
225
+ }
226
+ };
227
+ }
228
+
229
+ const unheadOptions = {
230
+ disableDefaults: true,
231
+ };
232
+
233
+ function createSSRContext(event) {
234
+ const ssrContext = {
235
+ url: event.path,
236
+ event,
237
+ runtimeConfig: useRuntimeConfig(event),
238
+ noSSR: event.context.nuxt?.noSSR || (false),
239
+ head: createHead(unheadOptions),
240
+ error: false,
241
+ nuxt: undefined,
242
+ payload: {},
243
+ ["~payloadReducers"]: Object.create(null),
244
+ modules: new Set()
245
+ };
246
+ return ssrContext;
247
+ }
248
+ function setSSRError(ssrContext, error) {
249
+ ssrContext.error = true;
250
+ ssrContext.payload = { error };
251
+ ssrContext.url = error.url;
252
+ }
253
+
254
+ async function renderInlineStyles(usedModules) {
255
+ const styleMap = await getSSRStyles();
256
+ const inlinedStyles = new Set();
257
+ for (const mod of usedModules) {
258
+ if (mod in styleMap && styleMap[mod]) {
259
+ for (const style of await styleMap[mod]()) {
260
+ inlinedStyles.add(style);
261
+ }
262
+ }
263
+ }
264
+ return Array.from(inlinedStyles).map((style) => ({ innerHTML: style }));
265
+ }
266
+
267
+ const renderSSRHeadOptions = {"omitLineBreaks":true};
268
+
269
+ const entryIds = [];
270
+
271
+ // @ts-expect-error private property consumed by vite-generated url helpers
272
+ globalThis.__buildAssetsURL = buildAssetsURL;
273
+ // @ts-expect-error private property consumed by vite-generated url helpers
274
+ globalThis.__publicAssetsURL = publicAssetsURL;
275
+ const HAS_APP_TELEPORTS = !!(appTeleportAttrs.id);
276
+ const APP_TELEPORT_OPEN_TAG = HAS_APP_TELEPORTS ? `<${appTeleportTag}${propsToString(appTeleportAttrs)}>` : "";
277
+ const APP_TELEPORT_CLOSE_TAG = HAS_APP_TELEPORTS ? `</${appTeleportTag}>` : "";
278
+ const PAYLOAD_URL_RE = /^[^?]*\/_payload.json(?:\?.*)?$/ ;
279
+ const PAYLOAD_FILENAME = "_payload.json" ;
280
+ const renderer = defineRenderHandler(async (event) => {
281
+ const nitroApp = useNitroApp();
282
+ // Whether we're rendering an error page
283
+ const ssrError = event.path.startsWith("/__nuxt_error") ? getQuery(event) : null;
284
+ if (ssrError && !("__unenv__" in event.node.req)) {
285
+ throw createError({
286
+ status: 404,
287
+ statusText: "Page Not Found: /__nuxt_error",
288
+ message: "Page Not Found: /__nuxt_error"
289
+ });
290
+ }
291
+ // Initialize ssr context
292
+ const ssrContext = createSSRContext(event);
293
+ // needed for hash hydration plugin to work
294
+ const headEntryOptions = { mode: "server" };
295
+ ssrContext.head.push(appHead, headEntryOptions);
296
+ if (ssrError) {
297
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
298
+ const status = ssrError.status || ssrError.statusCode;
299
+ if (status) {
300
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
301
+ ssrError.status = ssrError.statusCode = Number.parseInt(status);
302
+ }
303
+ if (typeof ssrError.data === "string") {
304
+ try {
305
+ ssrError.data = destr(ssrError.data);
306
+ } catch {}
307
+ }
308
+ setSSRError(ssrContext, ssrError);
309
+ }
310
+ // Get route options (for `ssr: false`, `isr`, `cache` and `noScripts`)
311
+ const routeOptions = getRouteRules(event);
312
+ // Whether we are prerendering route or using ISR/SWR caching
313
+ const _PAYLOAD_EXTRACTION = !ssrContext.noSSR && (NUXT_RUNTIME_PAYLOAD_EXTRACTION);
314
+ const isRenderingPayload = (_PAYLOAD_EXTRACTION || false) && PAYLOAD_URL_RE.test(ssrContext.url);
315
+ if (isRenderingPayload) {
316
+ const url = ssrContext.url.substring(0, ssrContext.url.lastIndexOf("/")) || "/";
317
+ ssrContext.url = url;
318
+ event._path = event.node.req.url = url;
319
+ }
320
+ if (routeOptions.ssr === false) {
321
+ ssrContext.noSSR = true;
322
+ }
323
+ const payloadURL = _PAYLOAD_EXTRACTION ? joinURL(ssrContext.runtimeConfig.app.cdnURL || ssrContext.runtimeConfig.app.baseURL, ssrContext.url.replace(/\?.*$/, ""), PAYLOAD_FILENAME) + "?" + ssrContext.runtimeConfig.app.buildId : undefined;
324
+ // Render app
325
+ const renderer = await getRenderer(ssrContext);
326
+ {
327
+ for (const id of entryIds) {
328
+ ssrContext.modules.add(id);
329
+ }
330
+ }
331
+ const _rendered = await renderer.renderToString(ssrContext).catch(async (error) => {
332
+ // We use error to bypass full render if we have an early response we can make
333
+ // TODO: remove _renderResponse in nuxt v5
334
+ if ((ssrContext["~renderResponse"] || ssrContext._renderResponse) && error.message === "skipping render") {
335
+ return {};
336
+ }
337
+ // Use explicitly thrown error in preference to subsequent rendering errors
338
+ const _err = !ssrError && ssrContext.payload?.error || error;
339
+ await ssrContext.nuxt?.hooks.callHook("app:error", _err);
340
+ throw _err;
341
+ });
342
+ // Render inline styles
343
+ // TODO: remove _renderResponse in nuxt v5
344
+ const inlinedStyles = !ssrContext["~renderResponse"] && !ssrContext._renderResponse && !isRenderingPayload ? await renderInlineStyles(ssrContext.modules ?? []) : [];
345
+ await ssrContext.nuxt?.hooks.callHook("app:rendered", {
346
+ ssrContext,
347
+ renderResult: _rendered
348
+ });
349
+ if (ssrContext["~renderResponse"] || ssrContext._renderResponse) {
350
+ // TODO: remove _renderResponse in nuxt v5
351
+ return ssrContext["~renderResponse"] || ssrContext._renderResponse;
352
+ }
353
+ // Handle errors
354
+ if (ssrContext.payload?.error && !ssrError) {
355
+ throw ssrContext.payload.error;
356
+ }
357
+ // Directly render payload routes
358
+ if (isRenderingPayload) {
359
+ const response = renderPayloadResponse(ssrContext);
360
+ return response;
361
+ }
362
+ const NO_SCRIPTS = routeOptions.noScripts;
363
+ // Setup head
364
+ const { styles, scripts } = getRequestDependencies(ssrContext, renderer.rendererContext);
365
+ // 1. Preload payloads and app manifest
366
+ if (_PAYLOAD_EXTRACTION && !NO_SCRIPTS) {
367
+ ssrContext.head.push({ link: [{
368
+ rel: "preload",
369
+ as: "fetch",
370
+ crossorigin: "anonymous",
371
+ href: payloadURL
372
+ } ] }, headEntryOptions);
373
+ }
374
+ if (ssrContext["~preloadManifest"] && !NO_SCRIPTS) {
375
+ ssrContext.head.push({ link: [{
376
+ rel: "preload",
377
+ as: "fetch",
378
+ fetchpriority: "low",
379
+ crossorigin: "anonymous",
380
+ href: buildAssetsURL(`builds/meta/${ssrContext.runtimeConfig.app.buildId}.json`)
381
+ }] }, {
382
+ ...headEntryOptions,
383
+ tagPriority: "low"
384
+ });
385
+ }
386
+ // 2. Styles
387
+ if (inlinedStyles.length) {
388
+ ssrContext.head.push({ style: inlinedStyles });
389
+ }
390
+ const link = [];
391
+ for (const resource of Object.values(styles)) {
392
+ // Add CSS links in <head> for CSS files
393
+ // - in production
394
+ // - in dev mode when not rendering an island
395
+ link.push({
396
+ rel: "stylesheet",
397
+ href: renderer.rendererContext.buildAssetsURL(resource.file),
398
+ crossorigin: ""
399
+ });
400
+ }
401
+ if (link.length) {
402
+ ssrContext.head.push({ link }, headEntryOptions);
403
+ }
404
+ if (!NO_SCRIPTS) {
405
+ // 4. Resource Hints
406
+ // Remove lazy hydrated modules from ssrContext.modules so they don't get preloaded
407
+ // (CSS links are already added above, this only affects JS preloads)
408
+ if (ssrContext["~lazyHydratedModules"]) {
409
+ for (const id of ssrContext["~lazyHydratedModules"]) {
410
+ ssrContext.modules?.delete(id);
411
+ }
412
+ }
413
+ ssrContext.head.push({ link: getPreloadLinks(ssrContext, renderer.rendererContext) }, headEntryOptions);
414
+ ssrContext.head.push({ link: getPrefetchLinks(ssrContext, renderer.rendererContext) }, headEntryOptions);
415
+ // 5. Payloads
416
+ ssrContext.head.push({ script: _PAYLOAD_EXTRACTION ? renderPayloadJsonScript({
417
+ ssrContext,
418
+ data: splitPayload(ssrContext).initial,
419
+ src: payloadURL
420
+ }) : renderPayloadJsonScript({
421
+ ssrContext,
422
+ data: ssrContext.payload
423
+ }) }, {
424
+ ...headEntryOptions,
425
+ tagPosition: "bodyClose",
426
+ tagPriority: "high"
427
+ });
428
+ }
429
+ // 6. Scripts
430
+ if (!routeOptions.noScripts) {
431
+ const tagPosition = "head";
432
+ ssrContext.head.push({ script: Object.values(scripts).map((resource) => ({
433
+ type: resource.module ? "module" : null,
434
+ src: renderer.rendererContext.buildAssetsURL(resource.file),
435
+ defer: resource.module ? null : true,
436
+ tagPosition,
437
+ crossorigin: ""
438
+ })) }, headEntryOptions);
439
+ }
440
+ const { headTags, bodyTags, bodyTagsOpen, htmlAttrs, bodyAttrs } = await renderSSRHead(ssrContext.head, renderSSRHeadOptions);
441
+ // Create render context
442
+ const htmlContext = {
443
+ htmlAttrs: htmlAttrs ? [htmlAttrs] : [],
444
+ head: normalizeChunks([headTags]),
445
+ bodyAttrs: bodyAttrs ? [bodyAttrs] : [],
446
+ bodyPrepend: normalizeChunks([bodyTagsOpen, ssrContext.teleports?.body]),
447
+ body: [_rendered.html, APP_TELEPORT_OPEN_TAG + (HAS_APP_TELEPORTS ? joinTags([ssrContext.teleports?.[`#${appTeleportAttrs.id}`]]) : "") + APP_TELEPORT_CLOSE_TAG],
448
+ bodyAppend: [bodyTags]
449
+ };
450
+ // Allow hooking into the rendered result
451
+ await nitroApp.hooks.callHook("render:html", htmlContext, { event });
452
+ // Construct HTML response
453
+ return {
454
+ body: renderHTMLDocument(htmlContext),
455
+ statusCode: getResponseStatus(event),
456
+ statusMessage: getResponseStatusText(event),
457
+ headers: {
458
+ "content-type": "text/html;charset=utf-8",
459
+ "x-powered-by": "Nuxt"
460
+ }
461
+ };
462
+ });
463
+ function normalizeChunks(chunks) {
464
+ const result = [];
465
+ for (const _chunk of chunks) {
466
+ const chunk = _chunk?.trim();
467
+ if (chunk) {
468
+ result.push(chunk);
469
+ }
470
+ }
471
+ return result;
472
+ }
473
+ function joinTags(tags) {
474
+ return tags.join("");
475
+ }
476
+ function joinAttrs(chunks) {
477
+ if (chunks.length === 0) {
478
+ return "";
479
+ }
480
+ return " " + chunks.join(" ");
481
+ }
482
+ function renderHTMLDocument(html) {
483
+ return "<!DOCTYPE html>" + `<html${joinAttrs(html.htmlAttrs)}>` + `<head>${joinTags(html.head)}</head>` + `<body${joinAttrs(html.bodyAttrs)}>${joinTags(html.bodyPrepend)}${joinTags(html.body)}${joinTags(html.bodyAppend)}</body>` + "</html>";
484
+ }
485
+
486
+ const renderer$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
487
+ __proto__: null,
488
+ default: renderer
489
+ }, Symbol.toStringTag, { value: 'Module' }));
490
+
491
+ export { useSeoMeta as a, headSymbol as h, renderer$1 as r, useHead as u };
492
+ //# sourceMappingURL=renderer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.mjs","sources":["../../../../../node_modules/@unhead/vue/dist/shared/vue.N9zWjxoK.mjs","../../../../../node_modules/@unhead/vue/dist/shared/vue.Cr7xSEtD.mjs","../../../../../node_modules/@unhead/vue/dist/server.mjs","../../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/build-files.mjs","../../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/payload.mjs","../../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/app.mjs","../../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/inline-styles.mjs","../../../../../node_modules/@nuxt/nitro-server/dist/runtime/handlers/renderer.mjs"],"names":["renderToString","_renderToString"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7]}
@@ -0,0 +1,4 @@
1
+ const template = "";
2
+
3
+ export { template };
4
+ //# sourceMappingURL=_virtual_spa-template.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_virtual_spa-template.mjs","sources":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,31 @@
1
+ import process from 'node:process';globalThis._importMeta_={url:import.meta.url,env:process.env};import 'node:http';
2
+ import 'node:https';
3
+ export { a1 as default } from './chunks/nitro/nitro.mjs';
4
+ import '@modelcontextprotocol/sdk/types.js';
5
+ import '@modelcontextprotocol/sdk/server/index.js';
6
+ import '@modelcontextprotocol/sdk/server/streamableHttp.js';
7
+ import 'node:crypto';
8
+ import 'fastest-levenshtein';
9
+ import 'node:fs';
10
+ import 'node:path';
11
+ import 'node:url';
12
+ import 'node:vm';
13
+ import 'turndown';
14
+ import 'marked';
15
+ import 'drizzle-orm';
16
+ import 'node:buffer';
17
+ import 'google-auth-library';
18
+ import 'node:events';
19
+ import 'node:os';
20
+ import 'better-sqlite3';
21
+ import 'drizzle-orm/better-sqlite3';
22
+ import 'drizzle-orm/node-postgres';
23
+ import 'pg';
24
+ import 'node:process';
25
+ import 'js-yaml';
26
+ import 'zod';
27
+ import 'drizzle-orm/sqlite-core';
28
+ import 'drizzle-orm/pg-core';
29
+ import '@iconify/utils';
30
+ import 'consola';
31
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,74 @@
1
+ CREATE TABLE IF NOT EXISTS "integrations" (
2
+ "id" TEXT PRIMARY KEY NOT NULL,
3
+ "space_id" TEXT,
4
+ "type" TEXT NOT NULL,
5
+ "reference_id" TEXT NOT NULL,
6
+ "label" TEXT NOT NULL,
7
+ "enabled" INTEGER NOT NULL DEFAULT 1,
8
+ "connection_method" TEXT,
9
+ "connection_id" TEXT,
10
+ "credential_id" TEXT,
11
+ "credential_variant" TEXT,
12
+ "enabled_toolsets" TEXT,
13
+ "max_scope" TEXT,
14
+ "disabled_tools" TEXT,
15
+ "health_status" TEXT,
16
+ "health_checked_at" TIMESTAMPTZ,
17
+ "created_at" TIMESTAMPTZ NOT NULL DEFAULT NOW()
18
+ );
19
+
20
+ CREATE TABLE IF NOT EXISTS "credentials" (
21
+ "space_id" TEXT NOT NULL,
22
+ "id" TEXT NOT NULL,
23
+ "ciphertext" TEXT NOT NULL,
24
+ "created_at" TIMESTAMPTZ NOT NULL DEFAULT NOW(),
25
+ "updated_at" TIMESTAMPTZ NOT NULL DEFAULT NOW(),
26
+ PRIMARY KEY("space_id", "id")
27
+ );
28
+
29
+ CREATE TABLE IF NOT EXISTS "api_keys" (
30
+ "id" TEXT PRIMARY KEY NOT NULL,
31
+ "name" TEXT NOT NULL,
32
+ "key_hash" TEXT NOT NULL,
33
+ "scopes_json" JSONB,
34
+ "created_at" TIMESTAMPTZ NOT NULL DEFAULT NOW()
35
+ );
36
+
37
+ CREATE TABLE IF NOT EXISTS "users" (
38
+ "id" TEXT PRIMARY KEY NOT NULL,
39
+ "email" TEXT NOT NULL,
40
+ "password_hash" TEXT,
41
+ "created_at" TIMESTAMPTZ NOT NULL DEFAULT NOW()
42
+ );
43
+
44
+ CREATE TABLE IF NOT EXISTS "integration_type_configs" (
45
+ "id" TEXT PRIMARY KEY NOT NULL,
46
+ "space_id" TEXT NOT NULL,
47
+ "type_slug" TEXT NOT NULL,
48
+ "label" TEXT NOT NULL,
49
+ "default_variant" TEXT NOT NULL,
50
+ "variants_json" JSONB NOT NULL,
51
+ "created_at" TIMESTAMPTZ NOT NULL DEFAULT NOW(),
52
+ "updated_at" TIMESTAMPTZ NOT NULL DEFAULT NOW()
53
+ );
54
+
55
+ CREATE UNIQUE INDEX IF NOT EXISTS "integration_type_configs__space_type_slug"
56
+ ON "integration_type_configs"("space_id", "type_slug");
57
+
58
+ CREATE TABLE IF NOT EXISTS "tool_definitions" (
59
+ "id" TEXT PRIMARY KEY NOT NULL,
60
+ "space_id" TEXT NOT NULL,
61
+ "integration_id" TEXT NOT NULL,
62
+ "name" TEXT NOT NULL,
63
+ "display_name" TEXT,
64
+ "description" TEXT NOT NULL,
65
+ "scope" TEXT NOT NULL,
66
+ "input_schema_json" JSONB NOT NULL,
67
+ "handler_code" TEXT NOT NULL,
68
+ "utils_json" JSONB,
69
+ "created_at" TIMESTAMPTZ NOT NULL DEFAULT NOW(),
70
+ "updated_at" TIMESTAMPTZ NOT NULL DEFAULT NOW()
71
+ );
72
+
73
+ CREATE UNIQUE INDEX IF NOT EXISTS "tool_definitions__space_integration_name"
74
+ ON "tool_definitions"("space_id", "integration_id", "name");
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": "7",
3
+ "dialect": "postgresql",
4
+ "entries": [
5
+ {
6
+ "idx": 0,
7
+ "version": "7",
8
+ "when": 1741000000000,
9
+ "tag": "0000_initial",
10
+ "breakpoints": true
11
+ }
12
+ ]
13
+ }