@commandable/mcp 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{S2P9sd4n.js → CBR-0oRi.js} +1 -1
  3. package/.output/public/_nuxt/CYsCQznM.js +59 -0
  4. package/.output/public/_nuxt/{B04gGCnx.js → Ctwv5nxD.js} +3 -3
  5. package/.output/public/_nuxt/{BvFUCPqA.js → DKO0MviJ.js} +1 -1
  6. package/.output/public/_nuxt/{d2XTSFt9.js → DOIzs5t4.js} +1 -1
  7. package/.output/public/_nuxt/KqToXREt.js +1 -0
  8. package/.output/public/_nuxt/{Dm_hd4at.js → Sdkz9rYy.js} +1 -1
  9. package/.output/public/_nuxt/_id_.DhlLK-mY.css +1 -0
  10. package/.output/public/_nuxt/builds/latest.json +1 -1
  11. package/.output/public/_nuxt/builds/meta/dd3dc5d0-c600-485d-b098-2f5b9facdf63.json +1 -0
  12. package/.output/server/chunks/build/IntegrationCredentials-styles.COcCfJmp.mjs +8 -0
  13. package/.output/server/chunks/build/IntegrationCredentials-styles.COcCfJmp.mjs.map +1 -0
  14. package/.output/server/chunks/build/{_id_-Bnxenh08.mjs → _id_-Co8jGxsD.mjs} +160 -38
  15. package/.output/server/chunks/build/{_id_-Bnxenh08.mjs.map → _id_-Co8jGxsD.mjs.map} +1 -1
  16. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  17. package/.output/server/chunks/build/{error-404-D2QibUBT.mjs → error-404-D1k2kWid.mjs} +13 -8
  18. package/.output/server/chunks/build/error-404-D1k2kWid.mjs.map +1 -0
  19. package/.output/server/chunks/build/{error-500-DYvawybF.mjs → error-500-D2K2rAfl.mjs} +13 -8
  20. package/.output/server/chunks/build/error-500-D2K2rAfl.mjs.map +1 -0
  21. package/.output/server/chunks/build/{fetch-BmYZnj75.mjs → fetch-aDh21opM.mjs} +114 -13
  22. package/.output/server/chunks/build/fetch-aDh21opM.mjs.map +1 -0
  23. package/.output/server/chunks/build/{index-CL-Gkd-Y.mjs → index-BxsJPthj.mjs} +24 -15
  24. package/.output/server/chunks/build/index-BxsJPthj.mjs.map +1 -0
  25. package/.output/server/chunks/build/{index-5H-nmhph.mjs → index-ycGPozML.mjs} +13 -8
  26. package/.output/server/chunks/build/index-ycGPozML.mjs.map +1 -0
  27. package/.output/server/chunks/build/server.mjs +17 -12
  28. package/.output/server/chunks/build/styles.mjs +2 -2
  29. package/.output/server/chunks/nitro/nitro.mjs +13082 -766
  30. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  31. package/.output/server/chunks/routes/api/_commandable/status.get.mjs +15 -8
  32. package/.output/server/chunks/routes/api/_commandable/status.get.mjs.map +1 -1
  33. package/.output/server/chunks/routes/api/catalog/_type/tools.get.mjs +13 -8
  34. package/.output/server/chunks/routes/api/catalog/_type/tools.get.mjs.map +1 -1
  35. package/.output/server/chunks/routes/api/catalog/_type/toolsets.get.mjs +13 -8
  36. package/.output/server/chunks/routes/api/catalog/_type/toolsets.get.mjs.map +1 -1
  37. package/.output/server/chunks/routes/api/catalog.get.mjs +12 -7
  38. package/.output/server/chunks/routes/api/catalog.get.mjs.map +1 -1
  39. package/.output/server/chunks/routes/api/index.get.mjs +13 -8
  40. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  41. package/.output/server/chunks/routes/api/index.post.mjs +12 -7
  42. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  43. package/.output/server/chunks/routes/api/integrations/_id/credentials-config.get.mjs +15 -12
  44. package/.output/server/chunks/routes/api/integrations/_id/credentials-config.get.mjs.map +1 -1
  45. package/.output/server/chunks/routes/api/integrations/_id/credentials-status.get.mjs +15 -12
  46. package/.output/server/chunks/routes/api/integrations/_id/credentials-status.get.mjs.map +1 -1
  47. package/.output/server/chunks/routes/api/integrations/_id/credentials.delete.mjs +18 -15
  48. package/.output/server/chunks/routes/api/integrations/_id/credentials.delete.mjs.map +1 -1
  49. package/.output/server/chunks/routes/api/integrations/_id/credentials.post.mjs +28 -24
  50. package/.output/server/chunks/routes/api/integrations/_id/credentials.post.mjs.map +1 -1
  51. package/.output/server/chunks/routes/api/integrations/_id/permissions.post.mjs +13 -8
  52. package/.output/server/chunks/routes/api/integrations/_id/permissions.post.mjs.map +1 -1
  53. package/.output/server/chunks/routes/api/integrations/_id/tools.delete.mjs +13 -8
  54. package/.output/server/chunks/routes/api/integrations/_id/tools.delete.mjs.map +1 -1
  55. package/.output/server/chunks/routes/api/integrations/_id/tools.get.mjs +27 -10
  56. package/.output/server/chunks/routes/api/integrations/_id/tools.get.mjs.map +1 -1
  57. package/.output/server/chunks/routes/api/integrations/_id/toolsets.get.mjs +13 -8
  58. package/.output/server/chunks/routes/api/integrations/_id/toolsets.get.mjs.map +1 -1
  59. package/.output/server/chunks/routes/api/integrations/_id/toolsets.post.mjs +13 -8
  60. package/.output/server/chunks/routes/api/integrations/_id/toolsets.post.mjs.map +1 -1
  61. package/.output/server/chunks/routes/api/integrations/_id_.delete.mjs +13 -8
  62. package/.output/server/chunks/routes/api/integrations/_id_.delete.mjs.map +1 -1
  63. package/.output/server/chunks/routes/health.get.mjs +12 -7
  64. package/.output/server/chunks/routes/health.get.mjs.map +1 -1
  65. package/.output/server/chunks/routes/mcp/create.mjs +13 -8
  66. package/.output/server/chunks/routes/mcp/create.mjs.map +1 -1
  67. package/.output/server/chunks/routes/mcp/static.mjs +61 -0
  68. package/.output/server/chunks/routes/mcp/static.mjs.map +1 -0
  69. package/.output/server/chunks/routes/mcp.mjs +14 -9
  70. package/.output/server/chunks/routes/mcp.mjs.map +1 -1
  71. package/.output/server/index.mjs +12 -7
  72. package/.output/server/index.mjs.map +1 -1
  73. package/.output/server/package.json +1 -1
  74. package/README.md +17 -1
  75. package/bin/cli.mjs +34 -17
  76. package/package.json +15 -14
  77. package/.output/public/_nuxt/B2dAlp_u.js +0 -59
  78. package/.output/public/_nuxt/Ba0BY0O0.js +0 -1
  79. package/.output/public/_nuxt/_id_.BKAjWkoP.css +0 -1
  80. package/.output/public/_nuxt/builds/meta/87720575-dfd4-475f-92c1-554fcd8b22f1.json +0 -1
  81. package/.output/server/chunks/build/IntegrationCredentials-styles.CULcCK6_.mjs +0 -8
  82. package/.output/server/chunks/build/IntegrationCredentials-styles.CULcCK6_.mjs.map +0 -1
  83. package/.output/server/chunks/build/error-404-D2QibUBT.mjs.map +0 -1
  84. package/.output/server/chunks/build/error-500-DYvawybF.mjs.map +0 -1
  85. package/.output/server/chunks/build/fetch-BmYZnj75.mjs.map +0 -1
  86. package/.output/server/chunks/build/index-5H-nmhph.mjs.map +0 -1
  87. package/.output/server/chunks/build/index-CL-Gkd-Y.mjs.map +0 -1
@@ -1,37 +1,42 @@
1
- import { k as useRoute, m as _sfc_main$b, i as _sfc_main$h, a as __nuxt_component_0$1, g as _sfc_main$m, _ as _export_sfc, n as navigateTo, j as _sfc_main$9, b as useAppConfig, c as useComponentUI, d as useFormField, e as useFieldGroup, f as useComponentIcons, t as tv, h as _sfc_main$k, l as looseToNumber } from './server.mjs';
2
- import { u as useFetch, _ as _sfc_main$4, a as _sfc_main$3, b as __nuxt_component_3, c as _sfc_main$2$1, d as _sfc_main$1$1 } from './fetch-BmYZnj75.mjs';
1
+ import { k as useRoute, m as _sfc_main$b, i as _sfc_main$h, a as __nuxt_component_0$1, g as _sfc_main$m, j as _sfc_main$9, _ as _export_sfc, n as navigateTo, b as useAppConfig, c as useComponentUI, d as useFormField, e as useFieldGroup, f as useComponentIcons, t as tv, h as _sfc_main$k, l as looseToNumber } from './server.mjs';
2
+ import { u as useFetch, _ as _sfc_main$4, a as _sfc_main$3, b as __nuxt_component_3, c as _sfc_main$2$1, d as _sfc_main$1$1 } from './fetch-aDh21opM.mjs';
3
3
  import { defineComponent, withAsyncContext, computed, ref, watch, mergeProps, withCtx, unref, createTextVNode, createVNode, toDisplayString, isRef, openBlock, createBlock, Fragment, createCommentVNode, reactive, renderList, useSlots, useTemplateRef, renderSlot, useSSRContext } from 'vue';
4
4
  import { ssrRenderComponent, ssrInterpolate, ssrRenderClass, ssrRenderAttrs, ssrRenderList, ssrRenderSlot } from 'vue/server-renderer';
5
5
  import { Primitive } from 'reka-ui';
6
6
  import { useVModel } from '@vueuse/core';
7
7
  import { marked } from 'marked';
8
8
  import '../nitro/nitro.mjs';
9
- import '@modelcontextprotocol/sdk/types.js';
9
+ import 'node:crypto';
10
10
  import '@modelcontextprotocol/sdk/server/index.js';
11
11
  import '@modelcontextprotocol/sdk/server/streamableHttp.js';
12
- import 'node:crypto';
12
+ import '@modelcontextprotocol/sdk/types.js';
13
13
  import 'fastest-levenshtein';
14
- import 'node:fs';
15
- import 'node:path';
16
14
  import 'node:url';
17
15
  import 'node:vm';
18
16
  import 'turndown';
17
+ import 'node:util';
18
+ import 'node:child_process';
19
+ import 'node:fs/promises';
20
+ import 'node:path';
21
+ import 'node:os';
22
+ import 'node:fs';
19
23
  import 'drizzle-orm';
20
24
  import 'node:buffer';
21
25
  import 'google-auth-library';
22
26
  import 'node:http';
23
27
  import 'node:https';
24
28
  import 'node:events';
25
- import 'node:os';
26
29
  import 'better-sqlite3';
27
30
  import 'drizzle-orm/better-sqlite3';
28
31
  import 'drizzle-orm/node-postgres';
29
32
  import 'pg';
33
+ import 'drizzle-orm/better-sqlite3/migrator';
34
+ import 'drizzle-orm/node-postgres/migrator';
35
+ import 'drizzle-orm/sqlite-core';
36
+ import 'drizzle-orm/pg-core';
30
37
  import 'node:process';
31
38
  import 'js-yaml';
32
39
  import 'zod';
33
- import 'drizzle-orm/sqlite-core';
34
- import 'drizzle-orm/pg-core';
35
40
  import '@iconify/utils';
36
41
  import 'consola';
37
42
  import 'vue-router';
@@ -601,21 +606,24 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
601
606
  });
602
607
  const renderedHint = computed(() => {
603
608
  const md = activeVariant.value?.hintMarkdown;
604
- if (!md) return "";
609
+ if (!md)
610
+ return "";
605
611
  return marked.parse(md);
606
612
  });
607
613
  function isSecretField(key) {
608
614
  const lower = key.toLowerCase();
609
615
  return lower.includes("token") || lower.includes("key") || lower.includes("secret") || lower.includes("password") || lower.includes("json");
610
616
  }
617
+ function clearForm() {
618
+ for (const key of Object.keys(form))
619
+ form[key] = "";
620
+ }
611
621
  function openModal() {
612
- for (const k of Object.keys(form))
613
- delete form[k];
622
+ clearForm();
614
623
  modalOpen.value = true;
615
624
  }
616
625
  watch(selectedVariant, () => {
617
- for (const k of Object.keys(form))
618
- delete form[k];
626
+ clearForm();
619
627
  });
620
628
  async function load() {
621
629
  loading.value = true;
@@ -641,7 +649,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
641
649
  const body = {};
642
650
  for (const [k] of schemaFields.value) {
643
651
  const v = (form[k] || "").trim();
644
- if (v) body[k] = v;
652
+ if (v)
653
+ body[k] = v;
645
654
  }
646
655
  if (selectedVariant.value)
647
656
  body.credentialVariant = selectedVariant.value;
@@ -649,8 +658,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
649
658
  hasCredentials.value = true;
650
659
  healthStatus.value = res.health_status ?? "connected";
651
660
  modalOpen.value = false;
652
- for (const k of Object.keys(form))
653
- delete form[k];
661
+ clearForm();
654
662
  emit("saved");
655
663
  } finally {
656
664
  saving.value = false;
@@ -675,20 +683,20 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
675
683
  const _component_UFormField = _sfc_main$2$1;
676
684
  const _component_USelect = _sfc_main$1$1;
677
685
  const _component_UInput = _sfc_main$2;
678
- _push(`<div${ssrRenderAttrs(_attrs)} data-v-f235dc98>`);
686
+ _push(`<div${ssrRenderAttrs(_attrs)} data-v-7de84f63>`);
679
687
  if (unref(loading)) {
680
- _push(`<div class="flex items-center gap-2 text-sm text-muted" data-v-f235dc98>`);
688
+ _push(`<div class="flex items-center gap-2 text-sm text-muted" data-v-7de84f63>`);
681
689
  _push(ssrRenderComponent(_component_UIcon, {
682
690
  name: "i-lucide-loader-2",
683
691
  class: "animate-spin"
684
692
  }, null, _parent));
685
693
  _push(` Checking connection… </div>`);
686
694
  } else if (unref(credConfig)?.supportsCredentials === false) {
687
- _push(`<div class="flex items-center gap-2 text-sm text-muted" data-v-f235dc98>`);
695
+ _push(`<div class="flex items-center gap-2 text-sm text-muted" data-v-7de84f63>`);
688
696
  _push(ssrRenderComponent(_component_UIcon, { name: "i-lucide-info" }, null, _parent));
689
697
  _push(` No credentials required for this integration. </div>`);
690
698
  } else if (unref(healthStatus) === "connected") {
691
- _push(`<div class="flex items-center gap-3 flex-wrap" data-v-f235dc98><div class="flex items-center gap-2 text-sm font-medium text-green-600 dark:text-green-400" data-v-f235dc98><span class="inline-block w-2 h-2 rounded-full bg-green-500" data-v-f235dc98></span> Connected </div>`);
699
+ _push(`<div class="flex items-center gap-3 flex-wrap" data-v-7de84f63><div class="flex items-center gap-2 text-sm font-medium text-green-600 dark:text-green-400" data-v-7de84f63><span class="inline-block w-2 h-2 rounded-full bg-green-500" data-v-7de84f63></span> Connected </div>`);
692
700
  _push(ssrRenderComponent(_component_UButton, {
693
701
  size: "xs",
694
702
  variant: "soft",
@@ -728,7 +736,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
728
736
  }, _parent));
729
737
  _push(`</div>`);
730
738
  } else if (unref(healthStatus) === "invalid_credentials") {
731
- _push(`<div class="flex items-center gap-3 flex-wrap" data-v-f235dc98><div class="flex items-center gap-2 text-sm font-medium text-red-600 dark:text-red-400" data-v-f235dc98><span class="inline-block w-2 h-2 rounded-full bg-red-500" data-v-f235dc98></span> Invalid credentials </div>`);
739
+ _push(`<div class="flex items-center gap-3 flex-wrap" data-v-7de84f63><div class="flex items-center gap-2 text-sm font-medium text-red-600 dark:text-red-400" data-v-7de84f63><span class="inline-block w-2 h-2 rounded-full bg-red-500" data-v-7de84f63></span> Invalid credentials </div>`);
732
740
  _push(ssrRenderComponent(_component_UButton, {
733
741
  size: "sm",
734
742
  icon: "i-lucide-refresh-cw",
@@ -767,7 +775,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
767
775
  }, _parent));
768
776
  _push(`</div>`);
769
777
  } else {
770
- _push(`<div class="flex items-center gap-3 flex-wrap" data-v-f235dc98><div class="flex items-center gap-2 text-sm font-medium text-red-600 dark:text-red-400" data-v-f235dc98><span class="inline-block w-2 h-2 rounded-full bg-red-500" data-v-f235dc98></span> Not connected </div>`);
778
+ _push(`<div class="flex items-center gap-3 flex-wrap" data-v-7de84f63><div class="flex items-center gap-2 text-sm font-medium text-red-600 dark:text-red-400" data-v-7de84f63><span class="inline-block w-2 h-2 rounded-full bg-red-500" data-v-7de84f63></span> Not connected </div>`);
771
779
  _push(ssrRenderComponent(_component_UButton, {
772
780
  size: "sm",
773
781
  icon: "i-lucide-plug",
@@ -795,9 +803,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
795
803
  }, {
796
804
  body: withCtx((_, _push2, _parent2, _scopeId) => {
797
805
  if (_push2) {
798
- _push2(`<div class="space-y-4" data-v-f235dc98${_scopeId}>`);
806
+ _push2(`<div class="space-y-4" data-v-7de84f63${_scopeId}>`);
799
807
  if (unref(loadError)) {
800
- _push2(`<div class="text-sm text-red-600" data-v-f235dc98${_scopeId}> Failed to load credential schema. Please try again. </div>`);
808
+ _push2(`<div class="text-sm text-red-600" data-v-7de84f63${_scopeId}> Failed to load credential schema. Please try again. </div>`);
801
809
  } else {
802
810
  _push2(`<!--[-->`);
803
811
  if (unref(hasMultipleVariants)) {
@@ -827,11 +835,11 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
827
835
  _push2(`<!---->`);
828
836
  }
829
837
  if (unref(activeVariant)?.hintMarkdown) {
830
- _push2(`<div class="hint-markdown text-sm bg-[var(--ui-bg-elevated)] rounded-md px-3 py-2" data-v-f235dc98${_scopeId}>${unref(renderedHint) ?? ""}</div>`);
838
+ _push2(`<div class="hint-markdown text-sm bg-[var(--ui-bg-elevated)] rounded-md px-3 py-2" data-v-7de84f63${_scopeId}>${unref(renderedHint) ?? ""}</div>`);
831
839
  } else {
832
840
  _push2(`<!---->`);
833
841
  }
834
- _push2(`<div class="space-y-3" data-v-f235dc98${_scopeId}><!--[-->`);
842
+ _push2(`<div class="space-y-3" data-v-7de84f63${_scopeId}><!--[-->`);
835
843
  ssrRenderList(unref(schemaFields), ([key, prop]) => {
836
844
  _push2(ssrRenderComponent(_component_UFormField, {
837
845
  key,
@@ -915,7 +923,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
915
923
  }),
916
924
  footer: withCtx((_, _push2, _parent2, _scopeId) => {
917
925
  if (_push2) {
918
- _push2(`<div class="flex items-center justify-end gap-2 w-full" data-v-f235dc98${_scopeId}>`);
926
+ _push2(`<div class="flex items-center justify-end gap-2 w-full" data-v-7de84f63${_scopeId}>`);
919
927
  _push2(ssrRenderComponent(_component_UButton, {
920
928
  variant: "ghost",
921
929
  color: "neutral",
@@ -990,7 +998,7 @@ _sfc_main$1.setup = (props, ctx) => {
990
998
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/IntegrationCredentials.vue");
991
999
  return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
992
1000
  };
993
- const __nuxt_component_6 = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$1, [["__scopeId", "data-v-f235dc98"]]), { __name: "IntegrationCredentials" });
1001
+ const __nuxt_component_6 = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$1, [["__scopeId", "data-v-7de84f63"]]), { __name: "IntegrationCredentials" });
994
1002
  const _sfc_main = /* @__PURE__ */ defineComponent({
995
1003
  __name: "[id]",
996
1004
  __ssrInlineRender: true,
@@ -1000,7 +1008,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1000
1008
  const integrationId = route.params.id;
1001
1009
  const { data: integrations, pending, error, refresh } = ([__temp, __restore] = withAsyncContext(() => useFetch(
1002
1010
  "/api/integrations",
1003
- "$Dgyl0ZYFMT"
1011
+ "$tUtKcl3GqX"
1004
1012
  /* nuxt-injected */
1005
1013
  )), __temp = await __temp, __restore(), __temp);
1006
1014
  const integration = computed(() => integrations.value?.find((i) => i.id === integrationId) ?? null);
@@ -1009,9 +1017,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1009
1017
  const formEnabledToolsets = ref([]);
1010
1018
  const formDisabledTools = ref([]);
1011
1019
  const toolsTreeRef = ref(null);
1020
+ const removeModalOpen = ref(false);
1012
1021
  const saving = ref(false);
1013
1022
  function initForm() {
1014
- if (!integration.value) return;
1023
+ if (!integration.value)
1024
+ return;
1015
1025
  formEnabled.value = integration.value.enabled !== false;
1016
1026
  formMaxScope.value = integration.value.maxScope === "read" ? "read" : null;
1017
1027
  formDisabledTools.value = integration.value.disabledTools ? [...integration.value.disabledTools] : [];
@@ -1021,13 +1031,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1021
1031
  }
1022
1032
  watch(integration, () => initForm(), { immediate: true });
1023
1033
  watch(() => toolsTreeRef.value?.toolsets, (toolsets) => {
1024
- if (!integration.value || !toolsets?.length) return;
1034
+ if (!integration.value || !toolsets?.length)
1035
+ return;
1025
1036
  if (!integration.value.enabledToolsets?.length) {
1026
1037
  formEnabledToolsets.value = toolsets.map((t) => t.key).filter((k) => k !== "__all__");
1027
1038
  }
1028
1039
  }, { deep: true });
1029
1040
  async function saveAll() {
1030
- if (!integration.value) return;
1041
+ if (!integration.value)
1042
+ return;
1031
1043
  saving.value = true;
1032
1044
  try {
1033
1045
  const id = integration.value.id;
@@ -1055,9 +1067,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1055
1067
  }
1056
1068
  }
1057
1069
  async function confirmRemove() {
1058
- if (!integration.value) return;
1059
- if (!(void 0).confirm(`Remove "${integration.value.label}"? This cannot be undone.`))
1070
+ if (!integration.value)
1060
1071
  return;
1072
+ removeModalOpen.value = true;
1073
+ }
1074
+ async function removeIntegration() {
1075
+ if (!integration.value)
1076
+ return;
1077
+ removeModalOpen.value = false;
1061
1078
  await $fetch(`/api/integrations/${integration.value.id}`, { method: "DELETE" });
1062
1079
  navigateTo("/integrations");
1063
1080
  }
@@ -1073,6 +1090,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1073
1090
  const _component_USwitch = _sfc_main$3;
1074
1091
  const _component_IntegrationCredentials = __nuxt_component_6;
1075
1092
  const _component_IntegrationToolsTree = __nuxt_component_3;
1093
+ const _component_UModal = _sfc_main$9;
1076
1094
  _push(ssrRenderComponent(_component_UContainer, mergeProps({ class: "py-10 space-y-8 max-w-3xl" }, _attrs), {
1077
1095
  default: withCtx((_, _push2, _parent2, _scopeId) => {
1078
1096
  if (_push2) {
@@ -1205,7 +1223,79 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1205
1223
  }),
1206
1224
  _: 1
1207
1225
  }, _parent2, _scopeId));
1208
- _push2(`</div><!--]-->`);
1226
+ _push2(`</div>`);
1227
+ _push2(ssrRenderComponent(_component_UModal, {
1228
+ open: unref(removeModalOpen),
1229
+ "onUpdate:open": ($event) => isRef(removeModalOpen) ? removeModalOpen.value = $event : null,
1230
+ title: "Remove integration",
1231
+ description: unref(integration) ? `Remove "${unref(integration).label}"? This cannot be undone.` : void 0
1232
+ }, {
1233
+ footer: withCtx((_2, _push3, _parent3, _scopeId2) => {
1234
+ if (_push3) {
1235
+ _push3(`<div class="flex items-center justify-end gap-2 w-full"${_scopeId2}>`);
1236
+ _push3(ssrRenderComponent(_component_UButton, {
1237
+ variant: "ghost",
1238
+ color: "neutral",
1239
+ onClick: ($event) => removeModalOpen.value = false
1240
+ }, {
1241
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
1242
+ if (_push4) {
1243
+ _push4(` Cancel `);
1244
+ } else {
1245
+ return [
1246
+ createTextVNode(" Cancel ")
1247
+ ];
1248
+ }
1249
+ }),
1250
+ _: 1
1251
+ }, _parent3, _scopeId2));
1252
+ _push3(ssrRenderComponent(_component_UButton, {
1253
+ color: "error",
1254
+ icon: "i-lucide-trash-2",
1255
+ onClick: removeIntegration
1256
+ }, {
1257
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
1258
+ if (_push4) {
1259
+ _push4(` Remove `);
1260
+ } else {
1261
+ return [
1262
+ createTextVNode(" Remove ")
1263
+ ];
1264
+ }
1265
+ }),
1266
+ _: 1
1267
+ }, _parent3, _scopeId2));
1268
+ _push3(`</div>`);
1269
+ } else {
1270
+ return [
1271
+ createVNode("div", { class: "flex items-center justify-end gap-2 w-full" }, [
1272
+ createVNode(_component_UButton, {
1273
+ variant: "ghost",
1274
+ color: "neutral",
1275
+ onClick: ($event) => removeModalOpen.value = false
1276
+ }, {
1277
+ default: withCtx(() => [
1278
+ createTextVNode(" Cancel ")
1279
+ ]),
1280
+ _: 1
1281
+ }, 8, ["onClick"]),
1282
+ createVNode(_component_UButton, {
1283
+ color: "error",
1284
+ icon: "i-lucide-trash-2",
1285
+ onClick: removeIntegration
1286
+ }, {
1287
+ default: withCtx(() => [
1288
+ createTextVNode(" Remove ")
1289
+ ]),
1290
+ _: 1
1291
+ })
1292
+ ])
1293
+ ];
1294
+ }
1295
+ }),
1296
+ _: 1
1297
+ }, _parent2, _scopeId));
1298
+ _push2(`<!--]-->`);
1209
1299
  }
1210
1300
  } else {
1211
1301
  return [
@@ -1333,7 +1423,39 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1333
1423
  ]),
1334
1424
  _: 1
1335
1425
  })
1336
- ])
1426
+ ]),
1427
+ createVNode(_component_UModal, {
1428
+ open: unref(removeModalOpen),
1429
+ "onUpdate:open": ($event) => isRef(removeModalOpen) ? removeModalOpen.value = $event : null,
1430
+ title: "Remove integration",
1431
+ description: unref(integration) ? `Remove "${unref(integration).label}"? This cannot be undone.` : void 0
1432
+ }, {
1433
+ footer: withCtx(() => [
1434
+ createVNode("div", { class: "flex items-center justify-end gap-2 w-full" }, [
1435
+ createVNode(_component_UButton, {
1436
+ variant: "ghost",
1437
+ color: "neutral",
1438
+ onClick: ($event) => removeModalOpen.value = false
1439
+ }, {
1440
+ default: withCtx(() => [
1441
+ createTextVNode(" Cancel ")
1442
+ ]),
1443
+ _: 1
1444
+ }, 8, ["onClick"]),
1445
+ createVNode(_component_UButton, {
1446
+ color: "error",
1447
+ icon: "i-lucide-trash-2",
1448
+ onClick: removeIntegration
1449
+ }, {
1450
+ default: withCtx(() => [
1451
+ createTextVNode(" Remove ")
1452
+ ]),
1453
+ _: 1
1454
+ })
1455
+ ])
1456
+ ]),
1457
+ _: 1
1458
+ }, 8, ["open", "onUpdate:open", "description"])
1337
1459
  ], 64))
1338
1460
  ];
1339
1461
  }
@@ -1351,4 +1473,4 @@ _sfc_main.setup = (props, ctx) => {
1351
1473
  };
1352
1474
 
1353
1475
  export { _sfc_main as default };
1354
- //# sourceMappingURL=_id_-Bnxenh08.mjs.map
1476
+ //# sourceMappingURL=_id_-Co8jGxsD.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"_id_-Bnxenh08.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/_id_-Bnxenh08.js"],"names":["_sfc_main$3","_sfc_main$4","_sfc_main$5","_sfc_main$6","_sfc_main$7","_sfc_main$8","_sfc_main$9","__nuxt_component_0","_sfc_main$a","_sfc_main$b"],"mappings":"","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"_id_-Co8jGxsD.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/_id_-Co8jGxsD.js"],"names":["_sfc_main$3","_sfc_main$4","_sfc_main$5","_sfc_main$6","_sfc_main$7","_sfc_main$8","_sfc_main$9","__nuxt_component_0","_sfc_main$a","_sfc_main$b"],"mappings":"","x_google_ignoreList":[0]}
@@ -1,4 +1,4 @@
1
- const client_precomputed = ((h,j,k,m)=>({dependencies:{"../../node_modules/nuxt/dist/app/entry.js":{scripts:{"../../node_modules/nuxt/dist/app/entry.js":h={resourceType:"script",module:true,prefetch:true,preload:true,file:"B04gGCnx.js",name:"entry",src:"../../node_modules/nuxt/dist/app/entry.js",isEntry:true,dynamicImports:["../../node_modules/nuxt/dist/app/components/error-404.vue","../../node_modules/nuxt/dist/app/components/error-500.vue"],css:["entry.Y3mA4bzA.css"],assets:[]}},styles:{"entry.Y3mA4bzA.css":j={file:"entry.Y3mA4bzA.css",resourceType:"style",prefetch:true,preload:true}},preload:{"../../node_modules/nuxt/dist/app/entry.js":h,"entry.Y3mA4bzA.css":j},prefetch:{"entry.Y3mA4bzA.css":j}},"../../node_modules/nuxt/dist/app/components/error-404.vue":{scripts:{},styles:{"entry.Y3mA4bzA.css":j},preload:{"../../node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"S2P9sd4n.js",name:"error-404",src:"../../node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:true,imports:["../../node_modules/nuxt/dist/app/entry.js"],css:[]},"../../node_modules/nuxt/dist/app/entry.js":h,"entry.Y3mA4bzA.css":j},prefetch:{"entry.Y3mA4bzA.css":j}},"error-404.C7fg894-.css":{scripts:{},styles:{},preload:{"error-404.C7fg894-.css":{file:"error-404.C7fg894-.css",resourceType:"style",prefetch:true,preload:true}},prefetch:{}},"../../node_modules/nuxt/dist/app/components/error-500.vue":{scripts:{},styles:{"entry.Y3mA4bzA.css":j},preload:{"../../node_modules/nuxt/dist/app/components/error-500.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"d2XTSFt9.js",name:"error-500",src:"../../node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:true,imports:["../../node_modules/nuxt/dist/app/entry.js"],css:[]},"../../node_modules/nuxt/dist/app/entry.js":h,"entry.Y3mA4bzA.css":j},prefetch:{"entry.Y3mA4bzA.css":j}},"error-500.DjUK_N2Y.css":{scripts:{},styles:{},preload:{"error-500.DjUK_N2Y.css":{file:"error-500.DjUK_N2Y.css",resourceType:"style",prefetch:true,preload:true}},prefetch:{}},"entry.Y3mA4bzA.css":{scripts:{},styles:{},preload:{"entry.Y3mA4bzA.css":j},prefetch:{}},"_Ba0BY0O0.js":{scripts:{},styles:{"entry.Y3mA4bzA.css":j},preload:{"_Ba0BY0O0.js":k={resourceType:"script",module:true,prefetch:true,preload:true,file:"Ba0BY0O0.js",name:"fetch",imports:["../../node_modules/nuxt/dist/app/entry.js"]},"../../node_modules/nuxt/dist/app/entry.js":h,"entry.Y3mA4bzA.css":j},prefetch:{"entry.Y3mA4bzA.css":j}},"pages/index.vue":{scripts:{},styles:{"entry.Y3mA4bzA.css":j},preload:{"pages/index.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"Dm_hd4at.js",name:"index",src:"pages/index.vue",isDynamicEntry:true,imports:["../../node_modules/nuxt/dist/app/entry.js"]},"../../node_modules/nuxt/dist/app/entry.js":h,"entry.Y3mA4bzA.css":j},prefetch:{"entry.Y3mA4bzA.css":j}},"pages/integrations/[id].vue":{scripts:{},styles:{"_id_.BKAjWkoP.css":m={file:"_id_.BKAjWkoP.css",resourceType:"style",prefetch:true,preload:true},"entry.Y3mA4bzA.css":j},preload:{"pages/integrations/[id].vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"B2dAlp_u.js",name:"_id_",src:"pages/integrations/[id].vue",isDynamicEntry:true,imports:["../../node_modules/nuxt/dist/app/entry.js","_Ba0BY0O0.js"],css:["_id_.BKAjWkoP.css"]},"_id_.BKAjWkoP.css":m,"../../node_modules/nuxt/dist/app/entry.js":h,"entry.Y3mA4bzA.css":j,"_Ba0BY0O0.js":k},prefetch:{"_id_.BKAjWkoP.css":m,"entry.Y3mA4bzA.css":j}},"_id_.BKAjWkoP.css":{scripts:{},styles:{},preload:{"_id_.BKAjWkoP.css":m},prefetch:{}},"pages/integrations/index.vue":{scripts:{},styles:{"entry.Y3mA4bzA.css":j},preload:{"pages/integrations/index.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"BvFUCPqA.js",name:"index",src:"pages/integrations/index.vue",isDynamicEntry:true,imports:["../../node_modules/nuxt/dist/app/entry.js","_Ba0BY0O0.js"]},"../../node_modules/nuxt/dist/app/entry.js":h,"entry.Y3mA4bzA.css":j,"_Ba0BY0O0.js":k},prefetch:{"entry.Y3mA4bzA.css":j}}},entrypoints:["../../node_modules/nuxt/dist/app/entry.js"],modules:{"../../node_modules/nuxt/dist/app/components/error-404.vue":{file:"S2P9sd4n.js",resourceType:"script",mimeType:void 0,module:true},"error-404.C7fg894-.css":{file:"error-404.C7fg894-.css",resourceType:"style",mimeType:void 0,module:void 0},"../../node_modules/nuxt/dist/app/components/error-500.vue":{file:"d2XTSFt9.js",resourceType:"script",mimeType:void 0,module:true},"error-500.DjUK_N2Y.css":{file:"error-500.DjUK_N2Y.css",resourceType:"style",mimeType:void 0,module:void 0},"../../node_modules/nuxt/dist/app/entry.js":{file:"B04gGCnx.js",resourceType:"script",mimeType:void 0,module:true},"entry.Y3mA4bzA.css":{file:"entry.Y3mA4bzA.css",resourceType:"style",mimeType:void 0,module:void 0},"_Ba0BY0O0.js":{file:"Ba0BY0O0.js",resourceType:"script",mimeType:void 0,module:true},"pages/index.vue":{file:"Dm_hd4at.js",resourceType:"script",mimeType:void 0,module:true},"pages/integrations/[id].vue":{file:"B2dAlp_u.js",resourceType:"script",mimeType:void 0,module:true},"_id_.BKAjWkoP.css":{file:"_id_.BKAjWkoP.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/integrations/index.vue":{file:"BvFUCPqA.js",resourceType:"script",mimeType:void 0,module:true}}}))();
1
+ const client_precomputed = ((h,j,k,m)=>({dependencies:{"../../node_modules/nuxt/dist/app/entry.js":{scripts:{"../../node_modules/nuxt/dist/app/entry.js":h={resourceType:"script",module:true,prefetch:true,preload:true,file:"Ctwv5nxD.js",name:"entry",src:"../../node_modules/nuxt/dist/app/entry.js",isEntry:true,dynamicImports:["../../node_modules/nuxt/dist/app/components/error-404.vue","../../node_modules/nuxt/dist/app/components/error-500.vue"],css:["entry.Y3mA4bzA.css"],assets:[]}},styles:{"entry.Y3mA4bzA.css":j={file:"entry.Y3mA4bzA.css",resourceType:"style",prefetch:true,preload:true}},preload:{"../../node_modules/nuxt/dist/app/entry.js":h,"entry.Y3mA4bzA.css":j},prefetch:{"entry.Y3mA4bzA.css":j}},"../../node_modules/nuxt/dist/app/components/error-404.vue":{scripts:{},styles:{"entry.Y3mA4bzA.css":j},preload:{"../../node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"CBR-0oRi.js",name:"error-404",src:"../../node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:true,imports:["../../node_modules/nuxt/dist/app/entry.js"],css:[]},"../../node_modules/nuxt/dist/app/entry.js":h,"entry.Y3mA4bzA.css":j},prefetch:{"entry.Y3mA4bzA.css":j}},"error-404.C7fg894-.css":{scripts:{},styles:{},preload:{"error-404.C7fg894-.css":{file:"error-404.C7fg894-.css",resourceType:"style",prefetch:true,preload:true}},prefetch:{}},"../../node_modules/nuxt/dist/app/components/error-500.vue":{scripts:{},styles:{"entry.Y3mA4bzA.css":j},preload:{"../../node_modules/nuxt/dist/app/components/error-500.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"DOIzs5t4.js",name:"error-500",src:"../../node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:true,imports:["../../node_modules/nuxt/dist/app/entry.js"],css:[]},"../../node_modules/nuxt/dist/app/entry.js":h,"entry.Y3mA4bzA.css":j},prefetch:{"entry.Y3mA4bzA.css":j}},"error-500.DjUK_N2Y.css":{scripts:{},styles:{},preload:{"error-500.DjUK_N2Y.css":{file:"error-500.DjUK_N2Y.css",resourceType:"style",prefetch:true,preload:true}},prefetch:{}},"entry.Y3mA4bzA.css":{scripts:{},styles:{},preload:{"entry.Y3mA4bzA.css":j},prefetch:{}},"_KqToXREt.js":{scripts:{},styles:{"entry.Y3mA4bzA.css":j},preload:{"_KqToXREt.js":k={resourceType:"script",module:true,prefetch:true,preload:true,file:"KqToXREt.js",name:"fetch",imports:["../../node_modules/nuxt/dist/app/entry.js"]},"../../node_modules/nuxt/dist/app/entry.js":h,"entry.Y3mA4bzA.css":j},prefetch:{"entry.Y3mA4bzA.css":j}},"pages/index.vue":{scripts:{},styles:{"entry.Y3mA4bzA.css":j},preload:{"pages/index.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"Sdkz9rYy.js",name:"index",src:"pages/index.vue",isDynamicEntry:true,imports:["../../node_modules/nuxt/dist/app/entry.js"]},"../../node_modules/nuxt/dist/app/entry.js":h,"entry.Y3mA4bzA.css":j},prefetch:{"entry.Y3mA4bzA.css":j}},"pages/integrations/[id].vue":{scripts:{},styles:{"_id_.DhlLK-mY.css":m={file:"_id_.DhlLK-mY.css",resourceType:"style",prefetch:true,preload:true},"entry.Y3mA4bzA.css":j},preload:{"pages/integrations/[id].vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"CYsCQznM.js",name:"_id_",src:"pages/integrations/[id].vue",isDynamicEntry:true,imports:["../../node_modules/nuxt/dist/app/entry.js","_KqToXREt.js"],css:["_id_.DhlLK-mY.css"]},"_id_.DhlLK-mY.css":m,"../../node_modules/nuxt/dist/app/entry.js":h,"entry.Y3mA4bzA.css":j,"_KqToXREt.js":k},prefetch:{"_id_.DhlLK-mY.css":m,"entry.Y3mA4bzA.css":j}},"_id_.DhlLK-mY.css":{scripts:{},styles:{},preload:{"_id_.DhlLK-mY.css":m},prefetch:{}},"pages/integrations/index.vue":{scripts:{},styles:{"entry.Y3mA4bzA.css":j},preload:{"pages/integrations/index.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"DKO0MviJ.js",name:"index",src:"pages/integrations/index.vue",isDynamicEntry:true,imports:["../../node_modules/nuxt/dist/app/entry.js","_KqToXREt.js"]},"../../node_modules/nuxt/dist/app/entry.js":h,"entry.Y3mA4bzA.css":j,"_KqToXREt.js":k},prefetch:{"entry.Y3mA4bzA.css":j}}},entrypoints:["../../node_modules/nuxt/dist/app/entry.js"],modules:{"../../node_modules/nuxt/dist/app/components/error-404.vue":{file:"CBR-0oRi.js",resourceType:"script",mimeType:void 0,module:true},"error-404.C7fg894-.css":{file:"error-404.C7fg894-.css",resourceType:"style",mimeType:void 0,module:void 0},"../../node_modules/nuxt/dist/app/components/error-500.vue":{file:"DOIzs5t4.js",resourceType:"script",mimeType:void 0,module:true},"error-500.DjUK_N2Y.css":{file:"error-500.DjUK_N2Y.css",resourceType:"style",mimeType:void 0,module:void 0},"../../node_modules/nuxt/dist/app/entry.js":{file:"Ctwv5nxD.js",resourceType:"script",mimeType:void 0,module:true},"entry.Y3mA4bzA.css":{file:"entry.Y3mA4bzA.css",resourceType:"style",mimeType:void 0,module:void 0},"_KqToXREt.js":{file:"KqToXREt.js",resourceType:"script",mimeType:void 0,module:true},"pages/index.vue":{file:"Sdkz9rYy.js",resourceType:"script",mimeType:void 0,module:true},"pages/integrations/[id].vue":{file:"CYsCQznM.js",resourceType:"script",mimeType:void 0,module:true},"_id_.DhlLK-mY.css":{file:"_id_.DhlLK-mY.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/integrations/index.vue":{file:"DKO0MviJ.js",resourceType:"script",mimeType:void 0,module:true}}}))();
2
2
 
3
3
  export { client_precomputed as default };
4
4
  //# sourceMappingURL=client.precomputed.mjs.map
@@ -2,33 +2,38 @@ import { _ as _export_sfc, u as useHead, a as __nuxt_component_0$1 } from './ser
2
2
  import { mergeProps, withCtx, createTextVNode, toDisplayString, useSSRContext } from 'vue';
3
3
  import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent } from 'vue/server-renderer';
4
4
  import '../nitro/nitro.mjs';
5
- import '@modelcontextprotocol/sdk/types.js';
5
+ import 'node:crypto';
6
6
  import '@modelcontextprotocol/sdk/server/index.js';
7
7
  import '@modelcontextprotocol/sdk/server/streamableHttp.js';
8
- import 'node:crypto';
8
+ import '@modelcontextprotocol/sdk/types.js';
9
9
  import 'fastest-levenshtein';
10
- import 'node:fs';
11
- import 'node:path';
12
10
  import 'node:url';
13
11
  import 'node:vm';
14
12
  import 'turndown';
15
13
  import 'marked';
14
+ import 'node:util';
15
+ import 'node:child_process';
16
+ import 'node:fs/promises';
17
+ import 'node:path';
18
+ import 'node:os';
19
+ import 'node:fs';
16
20
  import 'drizzle-orm';
17
21
  import 'node:buffer';
18
22
  import 'google-auth-library';
19
23
  import 'node:http';
20
24
  import 'node:https';
21
25
  import 'node:events';
22
- import 'node:os';
23
26
  import 'better-sqlite3';
24
27
  import 'drizzle-orm/better-sqlite3';
25
28
  import 'drizzle-orm/node-postgres';
26
29
  import 'pg';
30
+ import 'drizzle-orm/better-sqlite3/migrator';
31
+ import 'drizzle-orm/node-postgres/migrator';
32
+ import 'drizzle-orm/sqlite-core';
33
+ import 'drizzle-orm/pg-core';
27
34
  import 'node:process';
28
35
  import 'js-yaml';
29
36
  import 'zod';
30
- import 'drizzle-orm/sqlite-core';
31
- import 'drizzle-orm/pg-core';
32
37
  import '@iconify/utils';
33
38
  import 'consola';
34
39
  import 'vue-router';
@@ -118,4 +123,4 @@ _sfc_main.setup = (props, ctx) => {
118
123
  const error404 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-eed6b592"]]);
119
124
 
120
125
  export { error404 as default };
121
- //# sourceMappingURL=error-404-D2QibUBT.mjs.map
126
+ //# sourceMappingURL=error-404-D1k2kWid.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-404-D1k2kWid.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-D1k2kWid.js"],"names":["__nuxt_component_0"],"mappings":"","x_google_ignoreList":[0]}
@@ -2,33 +2,38 @@ import { mergeProps, useSSRContext } from 'vue';
2
2
  import { ssrRenderAttrs, ssrInterpolate } from 'vue/server-renderer';
3
3
  import { _ as _export_sfc, u as useHead } from './server.mjs';
4
4
  import '../nitro/nitro.mjs';
5
- import '@modelcontextprotocol/sdk/types.js';
5
+ import 'node:crypto';
6
6
  import '@modelcontextprotocol/sdk/server/index.js';
7
7
  import '@modelcontextprotocol/sdk/server/streamableHttp.js';
8
- import 'node:crypto';
8
+ import '@modelcontextprotocol/sdk/types.js';
9
9
  import 'fastest-levenshtein';
10
- import 'node:fs';
11
- import 'node:path';
12
10
  import 'node:url';
13
11
  import 'node:vm';
14
12
  import 'turndown';
15
13
  import 'marked';
14
+ import 'node:util';
15
+ import 'node:child_process';
16
+ import 'node:fs/promises';
17
+ import 'node:path';
18
+ import 'node:os';
19
+ import 'node:fs';
16
20
  import 'drizzle-orm';
17
21
  import 'node:buffer';
18
22
  import 'google-auth-library';
19
23
  import 'node:http';
20
24
  import 'node:https';
21
25
  import 'node:events';
22
- import 'node:os';
23
26
  import 'better-sqlite3';
24
27
  import 'drizzle-orm/better-sqlite3';
25
28
  import 'drizzle-orm/node-postgres';
26
29
  import 'pg';
30
+ import 'drizzle-orm/better-sqlite3/migrator';
31
+ import 'drizzle-orm/node-postgres/migrator';
32
+ import 'drizzle-orm/sqlite-core';
33
+ import 'drizzle-orm/pg-core';
27
34
  import 'node:process';
28
35
  import 'js-yaml';
29
36
  import 'zod';
30
- import 'drizzle-orm/sqlite-core';
31
- import 'drizzle-orm/pg-core';
32
37
  import '@iconify/utils';
33
38
  import 'consola';
34
39
  import 'vue-router';
@@ -101,4 +106,4 @@ _sfc_main.setup = (props, ctx) => {
101
106
  const error500 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4b5190e7"]]);
102
107
 
103
108
  export { error500 as default };
104
- //# sourceMappingURL=error-500-DYvawybF.mjs.map
109
+ //# sourceMappingURL=error-500-D2K2rAfl.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-500-D2K2rAfl.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-D2K2rAfl.js"],"names":[],"mappings":"","x_google_ignoreList":[0]}