@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.
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{S2P9sd4n.js → CBR-0oRi.js} +1 -1
- package/.output/public/_nuxt/CYsCQznM.js +59 -0
- package/.output/public/_nuxt/{B04gGCnx.js → Ctwv5nxD.js} +3 -3
- package/.output/public/_nuxt/{BvFUCPqA.js → DKO0MviJ.js} +1 -1
- package/.output/public/_nuxt/{d2XTSFt9.js → DOIzs5t4.js} +1 -1
- package/.output/public/_nuxt/KqToXREt.js +1 -0
- package/.output/public/_nuxt/{Dm_hd4at.js → Sdkz9rYy.js} +1 -1
- package/.output/public/_nuxt/_id_.DhlLK-mY.css +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/dd3dc5d0-c600-485d-b098-2f5b9facdf63.json +1 -0
- package/.output/server/chunks/build/IntegrationCredentials-styles.COcCfJmp.mjs +8 -0
- package/.output/server/chunks/build/IntegrationCredentials-styles.COcCfJmp.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-Bnxenh08.mjs → _id_-Co8jGxsD.mjs} +160 -38
- package/.output/server/chunks/build/{_id_-Bnxenh08.mjs.map → _id_-Co8jGxsD.mjs.map} +1 -1
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/{error-404-D2QibUBT.mjs → error-404-D1k2kWid.mjs} +13 -8
- package/.output/server/chunks/build/error-404-D1k2kWid.mjs.map +1 -0
- package/.output/server/chunks/build/{error-500-DYvawybF.mjs → error-500-D2K2rAfl.mjs} +13 -8
- package/.output/server/chunks/build/error-500-D2K2rAfl.mjs.map +1 -0
- package/.output/server/chunks/build/{fetch-BmYZnj75.mjs → fetch-aDh21opM.mjs} +114 -13
- package/.output/server/chunks/build/fetch-aDh21opM.mjs.map +1 -0
- package/.output/server/chunks/build/{index-CL-Gkd-Y.mjs → index-BxsJPthj.mjs} +24 -15
- package/.output/server/chunks/build/index-BxsJPthj.mjs.map +1 -0
- package/.output/server/chunks/build/{index-5H-nmhph.mjs → index-ycGPozML.mjs} +13 -8
- package/.output/server/chunks/build/index-ycGPozML.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +17 -12
- package/.output/server/chunks/build/styles.mjs +2 -2
- package/.output/server/chunks/nitro/nitro.mjs +13082 -766
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/api/_commandable/status.get.mjs +15 -8
- package/.output/server/chunks/routes/api/_commandable/status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/catalog/_type/tools.get.mjs +13 -8
- package/.output/server/chunks/routes/api/catalog/_type/tools.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/catalog/_type/toolsets.get.mjs +13 -8
- package/.output/server/chunks/routes/api/catalog/_type/toolsets.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/catalog.get.mjs +12 -7
- package/.output/server/chunks/routes/api/catalog.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +13 -8
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +12 -7
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/integrations/_id/credentials-config.get.mjs +15 -12
- package/.output/server/chunks/routes/api/integrations/_id/credentials-config.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/integrations/_id/credentials-status.get.mjs +15 -12
- package/.output/server/chunks/routes/api/integrations/_id/credentials-status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/integrations/_id/credentials.delete.mjs +18 -15
- package/.output/server/chunks/routes/api/integrations/_id/credentials.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/integrations/_id/credentials.post.mjs +28 -24
- package/.output/server/chunks/routes/api/integrations/_id/credentials.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/integrations/_id/permissions.post.mjs +13 -8
- package/.output/server/chunks/routes/api/integrations/_id/permissions.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/integrations/_id/tools.delete.mjs +13 -8
- package/.output/server/chunks/routes/api/integrations/_id/tools.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/integrations/_id/tools.get.mjs +27 -10
- package/.output/server/chunks/routes/api/integrations/_id/tools.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/integrations/_id/toolsets.get.mjs +13 -8
- package/.output/server/chunks/routes/api/integrations/_id/toolsets.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/integrations/_id/toolsets.post.mjs +13 -8
- package/.output/server/chunks/routes/api/integrations/_id/toolsets.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/integrations/_id_.delete.mjs +13 -8
- package/.output/server/chunks/routes/api/integrations/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/health.get.mjs +12 -7
- package/.output/server/chunks/routes/health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/mcp/create.mjs +13 -8
- package/.output/server/chunks/routes/mcp/create.mjs.map +1 -1
- package/.output/server/chunks/routes/mcp/static.mjs +61 -0
- package/.output/server/chunks/routes/mcp/static.mjs.map +1 -0
- package/.output/server/chunks/routes/mcp.mjs +14 -9
- package/.output/server/chunks/routes/mcp.mjs.map +1 -1
- package/.output/server/index.mjs +12 -7
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/package.json +1 -1
- package/README.md +17 -1
- package/bin/cli.mjs +34 -17
- package/package.json +15 -14
- package/.output/public/_nuxt/B2dAlp_u.js +0 -59
- package/.output/public/_nuxt/Ba0BY0O0.js +0 -1
- package/.output/public/_nuxt/_id_.BKAjWkoP.css +0 -1
- package/.output/public/_nuxt/builds/meta/87720575-dfd4-475f-92c1-554fcd8b22f1.json +0 -1
- package/.output/server/chunks/build/IntegrationCredentials-styles.CULcCK6_.mjs +0 -8
- package/.output/server/chunks/build/IntegrationCredentials-styles.CULcCK6_.mjs.map +0 -1
- package/.output/server/chunks/build/error-404-D2QibUBT.mjs.map +0 -1
- package/.output/server/chunks/build/error-500-DYvawybF.mjs.map +0 -1
- package/.output/server/chunks/build/fetch-BmYZnj75.mjs.map +0 -1
- package/.output/server/chunks/build/index-5H-nmhph.mjs.map +0 -1
- 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,
|
|
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-
|
|
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 '
|
|
9
|
+
import 'node:crypto';
|
|
10
10
|
import '@modelcontextprotocol/sdk/server/index.js';
|
|
11
11
|
import '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
12
|
-
import '
|
|
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)
|
|
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
|
-
|
|
613
|
-
delete form[k];
|
|
622
|
+
clearForm();
|
|
614
623
|
modalOpen.value = true;
|
|
615
624
|
}
|
|
616
625
|
watch(selectedVariant, () => {
|
|
617
|
-
|
|
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)
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
"$
|
|
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)
|
|
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)
|
|
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)
|
|
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)
|
|
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_-
|
|
1476
|
+
//# sourceMappingURL=_id_-Co8jGxsD.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_id_-
|
|
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:"
|
|
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 '
|
|
5
|
+
import 'node:crypto';
|
|
6
6
|
import '@modelcontextprotocol/sdk/server/index.js';
|
|
7
7
|
import '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
8
|
-
import '
|
|
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-
|
|
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 '
|
|
5
|
+
import 'node:crypto';
|
|
6
6
|
import '@modelcontextprotocol/sdk/server/index.js';
|
|
7
7
|
import '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
8
|
-
import '
|
|
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-
|
|
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]}
|