openxgen 1.8.0 → 2.0.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/dist/index.js +347 -283
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -960,6 +960,127 @@ var init_llm = __esm({
|
|
|
960
960
|
}
|
|
961
961
|
});
|
|
962
962
|
|
|
963
|
+
// src/api/xgen-extra.ts
|
|
964
|
+
var xgen_extra_exports = {};
|
|
965
|
+
__export(xgen_extra_exports, {
|
|
966
|
+
createPrompt: () => createPrompt,
|
|
967
|
+
generateWorkflow: () => generateWorkflow,
|
|
968
|
+
getNodeCategories: () => getNodeCategories,
|
|
969
|
+
getNodeDetail: () => getNodeDetail,
|
|
970
|
+
getSchedulerStatus: () => getSchedulerStatus,
|
|
971
|
+
getTraceDetail: () => getTraceDetail,
|
|
972
|
+
getWorkflowPerformance: () => getWorkflowPerformance,
|
|
973
|
+
listInteractions: () => listInteractions,
|
|
974
|
+
listMcpSessions: () => listMcpSessions,
|
|
975
|
+
listNodes: () => listNodes,
|
|
976
|
+
listPrompts: () => listPrompts,
|
|
977
|
+
listSchedules: () => listSchedules,
|
|
978
|
+
listToolStore: () => listToolStore,
|
|
979
|
+
listTraces: () => listTraces,
|
|
980
|
+
listUserTools: () => listUserTools,
|
|
981
|
+
listWorkflowStore: () => listWorkflowStore,
|
|
982
|
+
searchNodes: () => searchNodes
|
|
983
|
+
});
|
|
984
|
+
async function listNodes() {
|
|
985
|
+
const client2 = getClient();
|
|
986
|
+
const res = await client2.get("/api/node/get");
|
|
987
|
+
return res.data.nodes ?? res.data ?? [];
|
|
988
|
+
}
|
|
989
|
+
async function searchNodes(query) {
|
|
990
|
+
const client2 = getClient();
|
|
991
|
+
const res = await client2.get("/api/node/search", { params: { query } });
|
|
992
|
+
return res.data.nodes ?? res.data ?? [];
|
|
993
|
+
}
|
|
994
|
+
async function getNodeDetail(nodeId) {
|
|
995
|
+
const client2 = getClient();
|
|
996
|
+
const res = await client2.get("/api/node/detail", { params: { node_id: nodeId } });
|
|
997
|
+
return res.data;
|
|
998
|
+
}
|
|
999
|
+
async function getNodeCategories() {
|
|
1000
|
+
const client2 = getClient();
|
|
1001
|
+
const res = await client2.get("/api/node/categories");
|
|
1002
|
+
return res.data.categories ?? res.data ?? [];
|
|
1003
|
+
}
|
|
1004
|
+
async function listPrompts(opts) {
|
|
1005
|
+
const client2 = getClient();
|
|
1006
|
+
const params = { limit: opts?.limit ?? 100 };
|
|
1007
|
+
if (opts?.language) params.language = opts.language;
|
|
1008
|
+
const res = await client2.get("/api/prompt/list", { params });
|
|
1009
|
+
return res.data.prompts ?? res.data ?? [];
|
|
1010
|
+
}
|
|
1011
|
+
async function createPrompt(data) {
|
|
1012
|
+
const client2 = getClient();
|
|
1013
|
+
const res = await client2.post("/api/prompt/create", data);
|
|
1014
|
+
return res.data;
|
|
1015
|
+
}
|
|
1016
|
+
async function listToolStore() {
|
|
1017
|
+
const client2 = getClient();
|
|
1018
|
+
const res = await client2.get("/api/tools/store/list");
|
|
1019
|
+
return res.data.tools ?? res.data ?? [];
|
|
1020
|
+
}
|
|
1021
|
+
async function listUserTools() {
|
|
1022
|
+
const client2 = getClient();
|
|
1023
|
+
const res = await client2.get("/api/tools/storage/list");
|
|
1024
|
+
return res.data.tools ?? res.data ?? [];
|
|
1025
|
+
}
|
|
1026
|
+
async function listSchedules() {
|
|
1027
|
+
const client2 = getClient();
|
|
1028
|
+
const res = await client2.get("/api/workflow/schedule/sessions");
|
|
1029
|
+
return res.data.sessions ?? res.data ?? [];
|
|
1030
|
+
}
|
|
1031
|
+
async function getSchedulerStatus() {
|
|
1032
|
+
const client2 = getClient();
|
|
1033
|
+
const res = await client2.get("/api/workflow/schedule/status");
|
|
1034
|
+
return res.data;
|
|
1035
|
+
}
|
|
1036
|
+
async function listInteractions(workflowId, limit = 20) {
|
|
1037
|
+
const client2 = getClient();
|
|
1038
|
+
const params = { limit };
|
|
1039
|
+
if (workflowId) params.workflow_id = workflowId;
|
|
1040
|
+
const res = await client2.get("/api/interaction/list", { params });
|
|
1041
|
+
return res.data.interactions ?? res.data ?? [];
|
|
1042
|
+
}
|
|
1043
|
+
async function listTraces(workflowId, page = 1) {
|
|
1044
|
+
const client2 = getClient();
|
|
1045
|
+
const params = { page, page_size: 20 };
|
|
1046
|
+
if (workflowId) params.workflow_id = workflowId;
|
|
1047
|
+
const res = await client2.get("/api/workflow/trace/list", { params });
|
|
1048
|
+
return res.data;
|
|
1049
|
+
}
|
|
1050
|
+
async function getTraceDetail(traceId) {
|
|
1051
|
+
const client2 = getClient();
|
|
1052
|
+
const res = await client2.get(`/api/workflow/trace/detail/${traceId}`);
|
|
1053
|
+
return res.data;
|
|
1054
|
+
}
|
|
1055
|
+
async function listWorkflowStore() {
|
|
1056
|
+
const client2 = getClient();
|
|
1057
|
+
const res = await client2.get("/api/workflow/store/list");
|
|
1058
|
+
return res.data.workflows ?? res.data ?? [];
|
|
1059
|
+
}
|
|
1060
|
+
async function generateWorkflow(requirements) {
|
|
1061
|
+
const client2 = getClient();
|
|
1062
|
+
const res = await client2.post("/api/workflow/auto-generation/generate", { requirements });
|
|
1063
|
+
return res.data;
|
|
1064
|
+
}
|
|
1065
|
+
async function getWorkflowPerformance(workflowId, workflowName) {
|
|
1066
|
+
const client2 = getClient();
|
|
1067
|
+
const res = await client2.get("/api/workflow/performance", {
|
|
1068
|
+
params: { workflow_id: workflowId, workflow_name: workflowName }
|
|
1069
|
+
});
|
|
1070
|
+
return res.data;
|
|
1071
|
+
}
|
|
1072
|
+
async function listMcpSessions() {
|
|
1073
|
+
const client2 = getClient();
|
|
1074
|
+
const res = await client2.get("/api/mcp/sessions");
|
|
1075
|
+
return res.data.sessions ?? res.data ?? [];
|
|
1076
|
+
}
|
|
1077
|
+
var init_xgen_extra = __esm({
|
|
1078
|
+
"src/api/xgen-extra.ts"() {
|
|
1079
|
+
"use strict";
|
|
1080
|
+
init_client();
|
|
1081
|
+
}
|
|
1082
|
+
});
|
|
1083
|
+
|
|
963
1084
|
// src/api/document.ts
|
|
964
1085
|
var document_exports = {};
|
|
965
1086
|
__export(document_exports, {
|
|
@@ -2510,165 +2631,48 @@ function getToolNames() {
|
|
|
2510
2631
|
// src/agent/tools/xgen-api.ts
|
|
2511
2632
|
init_store();
|
|
2512
2633
|
var definitions = [
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
},
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
{
|
|
2538
|
-
|
|
2539
|
-
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
},
|
|
2547
|
-
required: ["workflow_id"]
|
|
2548
|
-
}
|
|
2549
|
-
}
|
|
2550
|
-
},
|
|
2551
|
-
{
|
|
2552
|
-
type: "function",
|
|
2553
|
-
function: {
|
|
2554
|
-
name: "xgen_collection_list",
|
|
2555
|
-
description: "XGEN \uC11C\uBC84\uC758 \uBB38\uC11C \uCEEC\uB809\uC158(\uC9C0\uC2DD\uBCA0\uC774\uC2A4) \uBAA9\uB85D\uC744 \uAC00\uC838\uC635\uB2C8\uB2E4. \uBB38\uC11C \uC218, \uCCAD\uD06C \uC218, \uACF5\uC720 \uC0C1\uD0DC \uB4F1 \uD3EC\uD568.",
|
|
2556
|
-
parameters: { type: "object", properties: {} }
|
|
2557
|
-
}
|
|
2558
|
-
},
|
|
2559
|
-
{
|
|
2560
|
-
type: "function",
|
|
2561
|
-
function: {
|
|
2562
|
-
name: "xgen_server_status",
|
|
2563
|
-
description: "XGEN \uC11C\uBC84 \uC0C1\uD0DC\uB97C \uD655\uC778\uD569\uB2C8\uB2E4.",
|
|
2564
|
-
parameters: { type: "object", properties: {} }
|
|
2565
|
-
}
|
|
2566
|
-
},
|
|
2567
|
-
{
|
|
2568
|
-
type: "function",
|
|
2569
|
-
function: {
|
|
2570
|
-
name: "xgen_execution_history",
|
|
2571
|
-
description: "\uD2B9\uC815 \uC6CC\uD06C\uD50C\uB85C\uC6B0\uC758 \uC2E4\uD589 \uC774\uB825\uC744 \uAC00\uC838\uC635\uB2C8\uB2E4. workflow_id\uC640 workflow_name \uD544\uC218.",
|
|
2572
|
-
parameters: {
|
|
2573
|
-
type: "object",
|
|
2574
|
-
properties: {
|
|
2575
|
-
workflow_id: { type: "string", description: "\uC6CC\uD06C\uD50C\uB85C\uC6B0 ID" },
|
|
2576
|
-
workflow_name: { type: "string", description: "\uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC774\uB984" },
|
|
2577
|
-
limit: { type: "number", description: "\uAC00\uC838\uC62C \uC774\uB825 \uC218 (\uAE30\uBCF8 10)" }
|
|
2578
|
-
},
|
|
2579
|
-
required: ["workflow_id", "workflow_name"]
|
|
2580
|
-
}
|
|
2581
|
-
}
|
|
2582
|
-
},
|
|
2583
|
-
{
|
|
2584
|
-
type: "function",
|
|
2585
|
-
function: {
|
|
2586
|
-
name: "xgen_document_list",
|
|
2587
|
-
description: "\uD2B9\uC815 \uCEEC\uB809\uC158\uC758 \uBB38\uC11C \uBAA9\uB85D\uC744 \uAC00\uC838\uC635\uB2C8\uB2E4.",
|
|
2588
|
-
parameters: {
|
|
2589
|
-
type: "object",
|
|
2590
|
-
properties: {
|
|
2591
|
-
collection_id: { type: "string", description: "\uCEEC\uB809\uC158 ID" }
|
|
2592
|
-
}
|
|
2593
|
-
}
|
|
2594
|
-
}
|
|
2595
|
-
},
|
|
2596
|
-
{
|
|
2597
|
-
type: "function",
|
|
2598
|
-
function: {
|
|
2599
|
-
name: "xgen_document_upload",
|
|
2600
|
-
description: "\uBB38\uC11C\uB97C XGEN \uCEEC\uB809\uC158\uC5D0 \uC5C5\uB85C\uB4DC\uD569\uB2C8\uB2E4.",
|
|
2601
|
-
parameters: {
|
|
2602
|
-
type: "object",
|
|
2603
|
-
properties: {
|
|
2604
|
-
file_path: { type: "string", description: "\uC5C5\uB85C\uB4DC\uD560 \uD30C\uC77C \uACBD\uB85C" },
|
|
2605
|
-
collection_id: { type: "string", description: "\uB300\uC0C1 \uCEEC\uB809\uC158 ID" }
|
|
2606
|
-
},
|
|
2607
|
-
required: ["file_path"]
|
|
2608
|
-
}
|
|
2609
|
-
}
|
|
2610
|
-
},
|
|
2611
|
-
{
|
|
2612
|
-
type: "function",
|
|
2613
|
-
function: {
|
|
2614
|
-
name: "xgen_graph_rag_query",
|
|
2615
|
-
description: "GraphRAG\uB85C \uC628\uD1A8\uB85C\uC9C0 \uC9C0\uC2DD\uADF8\uB798\uD504\uC5D0 \uC9C8\uC758\uD569\uB2C8\uB2E4.",
|
|
2616
|
-
parameters: {
|
|
2617
|
-
type: "object",
|
|
2618
|
-
properties: {
|
|
2619
|
-
query: { type: "string", description: "\uC9C8\uC758 \uB0B4\uC6A9" },
|
|
2620
|
-
graph_id: { type: "string", description: "\uADF8\uB798\uD504 ID (\uC120\uD0DD)" }
|
|
2621
|
-
},
|
|
2622
|
-
required: ["query"]
|
|
2623
|
-
}
|
|
2624
|
-
}
|
|
2625
|
-
},
|
|
2626
|
-
{
|
|
2627
|
-
type: "function",
|
|
2628
|
-
function: {
|
|
2629
|
-
name: "xgen_graph_stats",
|
|
2630
|
-
description: "\uC628\uD1A8\uB85C\uC9C0 \uADF8\uB798\uD504 \uD1B5\uACC4(\uB178\uB4DC, \uC5E3\uC9C0, \uD074\uB798\uC2A4, \uC778\uC2A4\uD134\uC2A4 \uC218)\uB97C \uAC00\uC838\uC635\uB2C8\uB2E4.",
|
|
2631
|
-
parameters: {
|
|
2632
|
-
type: "object",
|
|
2633
|
-
properties: {
|
|
2634
|
-
graph_id: { type: "string", description: "\uADF8\uB798\uD504 ID" }
|
|
2635
|
-
},
|
|
2636
|
-
required: ["graph_id"]
|
|
2637
|
-
}
|
|
2638
|
-
}
|
|
2639
|
-
}
|
|
2634
|
+
// === 워크플로우 ===
|
|
2635
|
+
{ type: "function", function: { name: "xgen_workflow_list", description: "XGEN \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC804\uCCB4 \uBAA9\uB85D. \uBC30\uD3EC \uC0C1\uD0DC \uD3EC\uD568.", parameters: { type: "object", properties: {} } } },
|
|
2636
|
+
{ type: "function", function: { name: "xgen_workflow_run", description: "\uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC2E4\uD589. \uBC30\uD3EC/\uBE44\uBC30\uD3EC \uBAA8\uB450 \uAC00\uB2A5.", parameters: { type: "object", properties: { workflow_id: { type: "string" }, workflow_name: { type: "string" }, input_data: { type: "string", description: "\uC785\uB825 \uBA54\uC2DC\uC9C0" } }, required: ["workflow_id", "workflow_name", "input_data"] } } },
|
|
2637
|
+
{ type: "function", function: { name: "xgen_workflow_info", description: "\uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC0C1\uC138 (\uB178\uB4DC, \uC5E3\uC9C0 \uAD6C\uC870).", parameters: { type: "object", properties: { workflow_id: { type: "string" } }, required: ["workflow_id"] } } },
|
|
2638
|
+
{ type: "function", function: { name: "xgen_execution_history", description: "\uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC2E4\uD589 \uC774\uB825.", parameters: { type: "object", properties: { workflow_id: { type: "string" }, workflow_name: { type: "string" }, limit: { type: "number" } }, required: ["workflow_id", "workflow_name"] } } },
|
|
2639
|
+
{ type: "function", function: { name: "xgen_workflow_performance", description: "\uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC131\uB2A5 \uD1B5\uACC4 (\uB178\uB4DC\uBCC4 \uCC98\uB9AC \uC2DC\uAC04, \uB9AC\uC18C\uC2A4 \uC0AC\uC6A9).", parameters: { type: "object", properties: { workflow_id: { type: "string" }, workflow_name: { type: "string" } }, required: ["workflow_id", "workflow_name"] } } },
|
|
2640
|
+
{ type: "function", function: { name: "xgen_workflow_store", description: "\uACF5\uAC1C \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC2A4\uD1A0\uC5B4 \uBAA9\uB85D.", parameters: { type: "object", properties: {} } } },
|
|
2641
|
+
{ type: "function", function: { name: "xgen_workflow_generate", description: "\uC790\uC5F0\uC5B4 \uC694\uAD6C\uC0AC\uD56D\uC73C\uB85C \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC790\uB3D9 \uC0DD\uC131.", parameters: { type: "object", properties: { requirements: { type: "string", description: "\uC0DD\uC131\uD560 \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC694\uAD6C\uC0AC\uD56D" } }, required: ["requirements"] } } },
|
|
2642
|
+
// === 문서/컬렉션 ===
|
|
2643
|
+
{ type: "function", function: { name: "xgen_collection_list", description: "\uBB38\uC11C \uCEEC\uB809\uC158(\uC9C0\uC2DD\uBCA0\uC774\uC2A4) \uBAA9\uB85D.", parameters: { type: "object", properties: {} } } },
|
|
2644
|
+
{ type: "function", function: { name: "xgen_document_list", description: "\uCEEC\uB809\uC158\uC758 \uBB38\uC11C \uBAA9\uB85D.", parameters: { type: "object", properties: { collection_id: { type: "string" } } } } },
|
|
2645
|
+
{ type: "function", function: { name: "xgen_document_upload", description: "\uBB38\uC11C \uC5C5\uB85C\uB4DC.", parameters: { type: "object", properties: { file_path: { type: "string" }, collection_id: { type: "string" } }, required: ["file_path"] } } },
|
|
2646
|
+
// === 노드 ===
|
|
2647
|
+
{ type: "function", function: { name: "xgen_node_list", description: "XGEN \uB178\uB4DC \uC804\uCCB4 \uBAA9\uB85D. \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uBE4C\uB529 \uBE14\uB85D.", parameters: { type: "object", properties: {} } } },
|
|
2648
|
+
{ type: "function", function: { name: "xgen_node_search", description: "\uB178\uB4DC \uAC80\uC0C9 (\uC774\uB984, \uC124\uBA85 \uAE30\uBC18).", parameters: { type: "object", properties: { query: { type: "string" } }, required: ["query"] } } },
|
|
2649
|
+
{ type: "function", function: { name: "xgen_node_categories", description: "\uB178\uB4DC \uCE74\uD14C\uACE0\uB9AC \uBAA9\uB85D.", parameters: { type: "object", properties: {} } } },
|
|
2650
|
+
// === 프롬프트 ===
|
|
2651
|
+
{ type: "function", function: { name: "xgen_prompt_list", description: "\uD504\uB86C\uD504\uD2B8 \uB77C\uC774\uBE0C\uB7EC\uB9AC \uBAA9\uB85D.", parameters: { type: "object", properties: { language: { type: "string", description: "en \uB610\uB294 ko" } } } } },
|
|
2652
|
+
// === 도구/스킬 ===
|
|
2653
|
+
{ type: "function", function: { name: "xgen_tool_store", description: "\uACF5\uAC1C \uB3C4\uAD6C \uC2A4\uD1A0\uC5B4 \uBAA9\uB85D.", parameters: { type: "object", properties: {} } } },
|
|
2654
|
+
{ type: "function", function: { name: "xgen_user_tools", description: "\uB0B4 \uB3C4\uAD6C \uBAA9\uB85D.", parameters: { type: "object", properties: {} } } },
|
|
2655
|
+
// === 스케줄 ===
|
|
2656
|
+
{ type: "function", function: { name: "xgen_schedule_list", description: "\uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC2A4\uCF00\uC904 \uBAA9\uB85D (cron \uC791\uC5C5).", parameters: { type: "object", properties: {} } } },
|
|
2657
|
+
// === 트레이스/인터랙션 ===
|
|
2658
|
+
{ type: "function", function: { name: "xgen_trace_list", description: "\uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC2E4\uD589 \uD2B8\uB808\uC774\uC2A4 \uBAA9\uB85D.", parameters: { type: "object", properties: { workflow_id: { type: "string" } } } } },
|
|
2659
|
+
{ type: "function", function: { name: "xgen_interaction_list", description: "\uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC778\uD130\uB799\uC158(\uC2E4\uD589 \uBA54\uD0C0) \uBAA9\uB85D.", parameters: { type: "object", properties: { workflow_id: { type: "string" }, limit: { type: "number" } } } } },
|
|
2660
|
+
// === MCP ===
|
|
2661
|
+
{ type: "function", function: { name: "xgen_mcp_sessions", description: "XGEN MCP \uC11C\uBC84 \uC138\uC158 \uBAA9\uB85D.", parameters: { type: "object", properties: {} } } },
|
|
2662
|
+
// === GraphRAG ===
|
|
2663
|
+
{ type: "function", function: { name: "xgen_graph_rag_query", description: "GraphRAG \uC628\uD1A8\uB85C\uC9C0 \uC9C8\uC758.", parameters: { type: "object", properties: { query: { type: "string" }, graph_id: { type: "string" } }, required: ["query"] } } },
|
|
2664
|
+
{ type: "function", function: { name: "xgen_graph_stats", description: "\uC628\uD1A8\uB85C\uC9C0 \uADF8\uB798\uD504 \uD1B5\uACC4.", parameters: { type: "object", properties: { graph_id: { type: "string" } }, required: ["graph_id"] } } },
|
|
2665
|
+
// === 서버 ===
|
|
2666
|
+
{ type: "function", function: { name: "xgen_server_status", description: "XGEN \uC11C\uBC84 \uC5F0\uACB0 \uC0C1\uD0DC.", parameters: { type: "object", properties: {} } } }
|
|
2640
2667
|
];
|
|
2641
2668
|
async function execute8(name, args) {
|
|
2642
2669
|
const server = getServer();
|
|
2643
2670
|
const auth = getAuth();
|
|
2644
|
-
if (!server || !auth)
|
|
2645
|
-
return "XGEN \uC11C\uBC84\uC5D0 \uC5F0\uACB0\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. /connect \uBA85\uB839\uC73C\uB85C \uC5F0\uACB0\uD558\uC138\uC694.";
|
|
2646
|
-
}
|
|
2671
|
+
if (!server || !auth) return "XGEN \uC11C\uBC84\uC5D0 \uC5F0\uACB0\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. /connect \uBA85\uB839\uC73C\uB85C \uC5F0\uACB0\uD558\uC138\uC694.";
|
|
2647
2672
|
try {
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
case "xgen_workflow_run":
|
|
2652
|
-
return await workflowRun2(args);
|
|
2653
|
-
case "xgen_workflow_info":
|
|
2654
|
-
return await workflowInfo2(args);
|
|
2655
|
-
case "xgen_collection_list":
|
|
2656
|
-
return await collectionList();
|
|
2657
|
-
case "xgen_server_status":
|
|
2658
|
-
return await serverStatus();
|
|
2659
|
-
case "xgen_execution_history":
|
|
2660
|
-
return await executionHistory(args);
|
|
2661
|
-
case "xgen_document_list":
|
|
2662
|
-
return await documentList(args);
|
|
2663
|
-
case "xgen_document_upload":
|
|
2664
|
-
return await documentUpload(args);
|
|
2665
|
-
case "xgen_graph_rag_query":
|
|
2666
|
-
return await graphRagQuery(args);
|
|
2667
|
-
case "xgen_graph_stats":
|
|
2668
|
-
return await graphStats(args);
|
|
2669
|
-
default:
|
|
2670
|
-
return `Unknown XGEN tool: ${name}`;
|
|
2671
|
-
}
|
|
2673
|
+
const fn = handlers[name];
|
|
2674
|
+
if (!fn) return `Unknown XGEN tool: ${name}`;
|
|
2675
|
+
return await fn(args);
|
|
2672
2676
|
} catch (err) {
|
|
2673
2677
|
return `XGEN API \uC624\uB958: ${err.message}`;
|
|
2674
2678
|
}
|
|
@@ -2676,118 +2680,180 @@ async function execute8(name, args) {
|
|
|
2676
2680
|
function isXgenTool(name) {
|
|
2677
2681
|
return name.startsWith("xgen_");
|
|
2678
2682
|
}
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
}
|
|
2690
|
-
|
|
2691
|
-
}
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
}
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
|
|
2713
|
-
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
\
|
|
2717
|
-
\
|
|
2718
|
-
}
|
|
2719
|
-
async
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
}
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
2740
|
-
|
|
2741
|
-
|
|
2742
|
-
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
}
|
|
2750
|
-
async
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
const
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
}
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
}
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
}
|
|
2683
|
+
var handlers = {
|
|
2684
|
+
xgen_workflow_list: async () => {
|
|
2685
|
+
const { getWorkflowListDetail: getWorkflowListDetail2 } = await Promise.resolve().then(() => (init_workflow(), workflow_exports));
|
|
2686
|
+
const wfs = await getWorkflowListDetail2();
|
|
2687
|
+
if (!wfs.length) return "\uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC5C6\uC74C.";
|
|
2688
|
+
return `\uCD1D ${wfs.length}\uAC1C:
|
|
2689
|
+
` + wfs.map((w, i) => {
|
|
2690
|
+
const d = w.is_deployed ? "\u25CF" : "\u25CB";
|
|
2691
|
+
return `${d} ${i + 1}. ${w.workflow_name} | ${w.workflow_id ?? w.id}`;
|
|
2692
|
+
}).join("\n");
|
|
2693
|
+
},
|
|
2694
|
+
xgen_workflow_run: async (args) => {
|
|
2695
|
+
const { executeWorkflow: executeWorkflow2 } = await Promise.resolve().then(() => (init_workflow(), workflow_exports));
|
|
2696
|
+
const { randomUUID: randomUUID4 } = await import("crypto");
|
|
2697
|
+
const auth = getAuth();
|
|
2698
|
+
const r = await executeWorkflow2({
|
|
2699
|
+
workflow_id: args.workflow_id,
|
|
2700
|
+
workflow_name: args.workflow_name,
|
|
2701
|
+
input_data: args.input_data,
|
|
2702
|
+
interaction_id: `cli_${randomUUID4().slice(0, 8)}`,
|
|
2703
|
+
user_id: auth?.userId ? parseInt(auth.userId) : 1
|
|
2704
|
+
});
|
|
2705
|
+
return r.content ? String(r.content) : r.message ? String(r.message) : JSON.stringify(r, null, 2).slice(0, 2e3);
|
|
2706
|
+
},
|
|
2707
|
+
xgen_workflow_info: async (args) => {
|
|
2708
|
+
const { getWorkflowDetail: getWorkflowDetail2 } = await Promise.resolve().then(() => (init_workflow(), workflow_exports));
|
|
2709
|
+
const d = await getWorkflowDetail2(args.workflow_id);
|
|
2710
|
+
const nodes = d.nodes?.length ?? 0;
|
|
2711
|
+
const edges = d.edges?.length ?? 0;
|
|
2712
|
+
return `${d.workflow_name}
|
|
2713
|
+
ID: ${d.id}
|
|
2714
|
+
\uB178\uB4DC: ${nodes}\uAC1C \xB7 \uC5E3\uC9C0: ${edges}\uAC1C`;
|
|
2715
|
+
},
|
|
2716
|
+
xgen_execution_history: async (args) => {
|
|
2717
|
+
const { getIOLogs: getIOLogs2 } = await Promise.resolve().then(() => (init_workflow(), workflow_exports));
|
|
2718
|
+
if (!args.workflow_id || !args.workflow_name) return "workflow_id, workflow_name \uD544\uC218.";
|
|
2719
|
+
const logs = await getIOLogs2(args.workflow_id, args.workflow_name, args.limit || 10);
|
|
2720
|
+
if (!logs.length) return "\uC2E4\uD589 \uC774\uB825 \uC5C6\uC74C.";
|
|
2721
|
+
return logs.map((l, i) => `${i + 1}. [${l.created_at ?? ""}] \uC785\uB825: ${(l.input_data ?? "").slice(0, 60)} \u2192 \uCD9C\uB825: ${(l.output_data ?? "").slice(0, 60)}`).join("\n");
|
|
2722
|
+
},
|
|
2723
|
+
xgen_workflow_performance: async (args) => {
|
|
2724
|
+
const { getWorkflowPerformance: getWorkflowPerformance2 } = await Promise.resolve().then(() => (init_xgen_extra(), xgen_extra_exports));
|
|
2725
|
+
const p = await getWorkflowPerformance2(args.workflow_id, args.workflow_name);
|
|
2726
|
+
return JSON.stringify(p, null, 2).slice(0, 2e3);
|
|
2727
|
+
},
|
|
2728
|
+
xgen_workflow_store: async () => {
|
|
2729
|
+
const { listWorkflowStore: listWorkflowStore2 } = await Promise.resolve().then(() => (init_xgen_extra(), xgen_extra_exports));
|
|
2730
|
+
const wfs = await listWorkflowStore2();
|
|
2731
|
+
if (!wfs.length) return "\uACF5\uAC1C \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC5C6\uC74C.";
|
|
2732
|
+
return wfs.map((w, i) => `${i + 1}. ${w.workflow_name ?? w.name ?? "\uC774\uB984\uC5C6\uC74C"}`).join("\n");
|
|
2733
|
+
},
|
|
2734
|
+
xgen_workflow_generate: async (args) => {
|
|
2735
|
+
const { generateWorkflow: generateWorkflow2 } = await Promise.resolve().then(() => (init_xgen_extra(), xgen_extra_exports));
|
|
2736
|
+
const r = await generateWorkflow2(args.requirements);
|
|
2737
|
+
return JSON.stringify(r, null, 2).slice(0, 3e3);
|
|
2738
|
+
},
|
|
2739
|
+
xgen_collection_list: async () => {
|
|
2740
|
+
const { listCollections: listCollections2 } = await Promise.resolve().then(() => (init_document(), document_exports));
|
|
2741
|
+
const cols = await listCollections2();
|
|
2742
|
+
if (!cols.length) return "\uCEEC\uB809\uC158 \uC5C6\uC74C.";
|
|
2743
|
+
return `\uCD1D ${cols.length}\uAC1C:
|
|
2744
|
+
` + cols.map(
|
|
2745
|
+
(c, i) => `${i + 1}. ${c.collection_make_name} | ${c.total_documents}\uBB38\uC11C ${c.total_chunks}\uCCAD\uD06C${c.is_shared ? ` [\uACF5\uC720:${c.share_group}]` : ""}`
|
|
2746
|
+
).join("\n");
|
|
2747
|
+
},
|
|
2748
|
+
xgen_document_list: async (args) => {
|
|
2749
|
+
const { listDocuments: listDocuments2 } = await Promise.resolve().then(() => (init_document(), document_exports));
|
|
2750
|
+
const docs = await listDocuments2(args.collection_id);
|
|
2751
|
+
if (!docs.length) return "\uBB38\uC11C \uC5C6\uC74C.";
|
|
2752
|
+
return docs.map((d, i) => `${i + 1}. ${d.name || d.file_name || "\uC774\uB984\uC5C6\uC74C"} ${d.file_type ?? ""} ${d.status ?? ""}`).join("\n");
|
|
2753
|
+
},
|
|
2754
|
+
xgen_document_upload: async (args) => {
|
|
2755
|
+
const { uploadDocument: uploadDocument2 } = await Promise.resolve().then(() => (init_document(), document_exports));
|
|
2756
|
+
const { existsSync: existsSync5 } = await import("fs");
|
|
2757
|
+
if (!args.file_path) return "\uD30C\uC77C \uACBD\uB85C \uD544\uC694.";
|
|
2758
|
+
if (!existsSync5(args.file_path)) return `\uD30C\uC77C \uC5C6\uC74C: ${args.file_path}`;
|
|
2759
|
+
const r = await uploadDocument2(args.file_path, args.collection_id);
|
|
2760
|
+
return `\uC5C5\uB85C\uB4DC \uC644\uB8CC: ${JSON.stringify(r)}`;
|
|
2761
|
+
},
|
|
2762
|
+
xgen_node_list: async () => {
|
|
2763
|
+
const { listNodes: listNodes2 } = await Promise.resolve().then(() => (init_xgen_extra(), xgen_extra_exports));
|
|
2764
|
+
const nodes = await listNodes2();
|
|
2765
|
+
if (!nodes.length) return "\uB178\uB4DC \uC5C6\uC74C.";
|
|
2766
|
+
return `\uCD1D ${nodes.length}\uAC1C:
|
|
2767
|
+
` + nodes.slice(0, 50).map(
|
|
2768
|
+
(n, i) => `${i + 1}. ${n.nodeName ?? n.name ?? n.node_id ?? "?"} ${n.description ? "\u2014 " + String(n.description).slice(0, 40) : ""}`
|
|
2769
|
+
).join("\n") + (nodes.length > 50 ? `
|
|
2770
|
+
...(+${nodes.length - 50}\uAC1C)` : "");
|
|
2771
|
+
},
|
|
2772
|
+
xgen_node_search: async (args) => {
|
|
2773
|
+
const { searchNodes: searchNodes2 } = await Promise.resolve().then(() => (init_xgen_extra(), xgen_extra_exports));
|
|
2774
|
+
const nodes = await searchNodes2(args.query);
|
|
2775
|
+
if (!nodes.length) return "\uAC80\uC0C9 \uACB0\uACFC \uC5C6\uC74C.";
|
|
2776
|
+
return nodes.map(
|
|
2777
|
+
(n, i) => `${i + 1}. ${n.nodeName ?? n.name ?? "?"} \u2014 ${(n.description ?? "").slice(0, 60)}`
|
|
2778
|
+
).join("\n");
|
|
2779
|
+
},
|
|
2780
|
+
xgen_node_categories: async () => {
|
|
2781
|
+
const { getNodeCategories: getNodeCategories2 } = await Promise.resolve().then(() => (init_xgen_extra(), xgen_extra_exports));
|
|
2782
|
+
const cats = await getNodeCategories2();
|
|
2783
|
+
return cats.map((c, i) => `${i + 1}. ${c.name ?? c.category ?? c}`).join("\n") || "\uCE74\uD14C\uACE0\uB9AC \uC5C6\uC74C.";
|
|
2784
|
+
},
|
|
2785
|
+
xgen_prompt_list: async (args) => {
|
|
2786
|
+
const { listPrompts: listPrompts2 } = await Promise.resolve().then(() => (init_xgen_extra(), xgen_extra_exports));
|
|
2787
|
+
const prompts = await listPrompts2({ language: args.language });
|
|
2788
|
+
if (!prompts.length) return "\uD504\uB86C\uD504\uD2B8 \uC5C6\uC74C.";
|
|
2789
|
+
return prompts.slice(0, 30).map(
|
|
2790
|
+
(p, i) => `${i + 1}. ${p.name ?? p.title ?? "?"} [${p.prompt_type ?? ""}] ${(p.content ?? "").slice(0, 40)}...`
|
|
2791
|
+
).join("\n");
|
|
2792
|
+
},
|
|
2793
|
+
xgen_tool_store: async () => {
|
|
2794
|
+
const { listToolStore: listToolStore2 } = await Promise.resolve().then(() => (init_xgen_extra(), xgen_extra_exports));
|
|
2795
|
+
const tools2 = await listToolStore2();
|
|
2796
|
+
if (!tools2.length) return "\uACF5\uAC1C \uB3C4\uAD6C \uC5C6\uC74C.";
|
|
2797
|
+
return tools2.map((t, i) => `${i + 1}. ${t.name ?? t.tool_name ?? "?"} \u2014 ${(t.description ?? "").slice(0, 50)}`).join("\n");
|
|
2798
|
+
},
|
|
2799
|
+
xgen_user_tools: async () => {
|
|
2800
|
+
const { listUserTools: listUserTools2 } = await Promise.resolve().then(() => (init_xgen_extra(), xgen_extra_exports));
|
|
2801
|
+
const tools2 = await listUserTools2();
|
|
2802
|
+
if (!tools2.length) return "\uB0B4 \uB3C4\uAD6C \uC5C6\uC74C.";
|
|
2803
|
+
return tools2.map((t, i) => `${i + 1}. ${t.name ?? t.tool_name ?? "?"}`).join("\n");
|
|
2804
|
+
},
|
|
2805
|
+
xgen_schedule_list: async () => {
|
|
2806
|
+
const { listSchedules: listSchedules2 } = await Promise.resolve().then(() => (init_xgen_extra(), xgen_extra_exports));
|
|
2807
|
+
const sessions = await listSchedules2();
|
|
2808
|
+
if (!sessions.length) return "\uC2A4\uCF00\uC904 \uC5C6\uC74C.";
|
|
2809
|
+
return sessions.map((s, i) => `${i + 1}. ${s.name ?? s.session_id ?? "?"} ${s.cron_expression ?? ""} [${s.status ?? "?"}]`).join("\n");
|
|
2810
|
+
},
|
|
2811
|
+
xgen_trace_list: async (args) => {
|
|
2812
|
+
const { listTraces: listTraces2 } = await Promise.resolve().then(() => (init_xgen_extra(), xgen_extra_exports));
|
|
2813
|
+
const data = await listTraces2(args.workflow_id);
|
|
2814
|
+
const traces = data.traces ?? data ?? [];
|
|
2815
|
+
if (!traces.length) return "\uD2B8\uB808\uC774\uC2A4 \uC5C6\uC74C.";
|
|
2816
|
+
return traces.slice(0, 20).map(
|
|
2817
|
+
(t, i) => `${i + 1}. ${t.trace_id ?? t.id ?? "?"} [${t.status ?? "?"}] ${t.created_at ?? ""}`
|
|
2818
|
+
).join("\n");
|
|
2819
|
+
},
|
|
2820
|
+
xgen_interaction_list: async (args) => {
|
|
2821
|
+
const { listInteractions: listInteractions2 } = await Promise.resolve().then(() => (init_xgen_extra(), xgen_extra_exports));
|
|
2822
|
+
const items = await listInteractions2(args.workflow_id, args.limit || 20);
|
|
2823
|
+
if (!items.length) return "\uC778\uD130\uB799\uC158 \uC5C6\uC74C.";
|
|
2824
|
+
return items.slice(0, 20).map(
|
|
2825
|
+
(it, i) => `${i + 1}. ${it.interaction_id ?? "?"} ${it.workflow_name ?? ""} [${it.status ?? "?"}]`
|
|
2826
|
+
).join("\n");
|
|
2827
|
+
},
|
|
2828
|
+
xgen_mcp_sessions: async () => {
|
|
2829
|
+
const { listMcpSessions: listMcpSessions2 } = await Promise.resolve().then(() => (init_xgen_extra(), xgen_extra_exports));
|
|
2830
|
+
const sessions = await listMcpSessions2();
|
|
2831
|
+
if (!sessions.length) return "MCP \uC138\uC158 \uC5C6\uC74C.";
|
|
2832
|
+
return sessions.map(
|
|
2833
|
+
(s, i) => `${i + 1}. ${s.session_name ?? s.session_id ?? "?"} [${s.server_type ?? "?"}] ${s.status ?? ""}`
|
|
2834
|
+
).join("\n");
|
|
2835
|
+
},
|
|
2836
|
+
xgen_graph_rag_query: async (args) => {
|
|
2837
|
+
const { queryGraphRAG: queryGraphRAG2 } = await Promise.resolve().then(() => (init_ontology(), ontology_exports));
|
|
2838
|
+
if (!args.query) return "\uC9C8\uC758 \uB0B4\uC6A9 \uD544\uC694.";
|
|
2839
|
+
const r = await queryGraphRAG2(args.query, args.graph_id);
|
|
2840
|
+
let out = `\uB2F5\uBCC0: ${r.answer ?? "\uC5C6\uC74C"}`;
|
|
2841
|
+
if (r.sources?.length) out += `
|
|
2842
|
+
\uCD9C\uCC98: ${r.sources.join(", ")}`;
|
|
2843
|
+
return out;
|
|
2844
|
+
},
|
|
2845
|
+
xgen_graph_stats: async (args) => {
|
|
2846
|
+
const { getGraphStats: getGraphStats2 } = await Promise.resolve().then(() => (init_ontology(), ontology_exports));
|
|
2847
|
+
const s = await getGraphStats2(args.graph_id);
|
|
2848
|
+
return `\uB178\uB4DC: ${s.total_nodes ?? 0} \xB7 \uC5E3\uC9C0: ${s.total_edges ?? 0} \xB7 \uD074\uB798\uC2A4: ${s.total_classes ?? 0} \xB7 \uC778\uC2A4\uD134\uC2A4: ${s.total_instances ?? 0}`;
|
|
2849
|
+
},
|
|
2850
|
+
xgen_server_status: async () => {
|
|
2851
|
+
const server = getServer();
|
|
2852
|
+
const auth = getAuth();
|
|
2853
|
+
return `\uC11C\uBC84: ${server}
|
|
2854
|
+
\uC0AC\uC6A9\uC790: ${auth?.username} (ID: ${auth?.userId})`;
|
|
2855
|
+
}
|
|
2856
|
+
};
|
|
2791
2857
|
|
|
2792
2858
|
// src/mcp/client.ts
|
|
2793
2859
|
import { spawn } from "child_process";
|
|
@@ -2982,24 +3048,22 @@ EXAMPLES OF GOOD RESPONSES:
|
|
|
2982
3048
|
if (server && auth) {
|
|
2983
3049
|
prompt2 += `
|
|
2984
3050
|
|
|
2985
|
-
XGEN CONNECTED: ${server} as ${auth.username}
|
|
3051
|
+
XGEN CONNECTED: ${server} as ${auth.username}
|
|
3052
|
+
|
|
3053
|
+
You have full access to XGEN platform. Available tools:
|
|
2986
3054
|
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
- xgen_server_status: \uC11C\uBC84 \uC5F0\uACB0 \uC0C1\uD0DC.
|
|
3055
|
+
WORKFLOW: xgen_workflow_list, xgen_workflow_run (\uBAA8\uB4E0 \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC2E4\uD589 \uAC00\uB2A5, \uBC30\uD3EC \uBB34\uAD00), xgen_workflow_info, xgen_execution_history, xgen_workflow_performance, xgen_workflow_store, xgen_workflow_generate (\uC790\uC5F0\uC5B4\uB85C \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC790\uB3D9 \uC0DD\uC131)
|
|
3056
|
+
DOCUMENTS: xgen_collection_list, xgen_document_list, xgen_document_upload
|
|
3057
|
+
NODES: xgen_node_list, xgen_node_search, xgen_node_categories
|
|
3058
|
+
PROMPTS: xgen_prompt_list
|
|
3059
|
+
TOOLS: xgen_tool_store, xgen_user_tools
|
|
3060
|
+
SCHEDULE: xgen_schedule_list
|
|
3061
|
+
TRACE: xgen_trace_list, xgen_interaction_list
|
|
3062
|
+
MCP: xgen_mcp_sessions
|
|
3063
|
+
ONTOLOGY: xgen_graph_rag_query, xgen_graph_stats
|
|
3064
|
+
SERVER: xgen_server_status
|
|
2998
3065
|
|
|
2999
|
-
|
|
3000
|
-
- \uBAA8\uB4E0 \uC6CC\uD06C\uD50C\uB85C\uC6B0 \uC2E4\uD589 \uAC00\uB2A5 (\uBC30\uD3EC/\uBE44\uBC30\uD3EC \uBB34\uAD00). deploy_key \uBD88\uD544\uC694.
|
|
3001
|
-
- \uC2E4\uD589 \uC2DC input_data\uC5D0 \uC0AC\uC6A9\uC790 \uBA54\uC2DC\uC9C0\uB97C \uB123\uC74C.
|
|
3002
|
-
- \uC2E4\uD589 \uACB0\uACFC\uC758 content\uAC00 \uC751\uB2F5.`;
|
|
3066
|
+
When user says a number \u2192 find it from previous list. "\uC2E4\uD589" \u2192 execute immediately.`;
|
|
3003
3067
|
} else {
|
|
3004
3068
|
prompt2 += `
|
|
3005
3069
|
XGEN: Not connected. User can run /connect to connect.`;
|
|
@@ -3592,7 +3656,7 @@ ${result.answer}
|
|
|
3592
3656
|
}
|
|
3593
3657
|
|
|
3594
3658
|
// src/index.ts
|
|
3595
|
-
var VERSION = "
|
|
3659
|
+
var VERSION = "2.0.0";
|
|
3596
3660
|
var LOGO = chalk15.cyan(`
|
|
3597
3661
|
\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588
|
|
3598
3662
|
\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588 \u2588\u2588
|