chatlab-cli 0.24.1 → 0.25.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/{chunk-N5DGZQB4.mjs → chunk-4OMV4VNH.mjs} +567 -97
- package/dist/chunk-4OMV4VNH.mjs.map +1 -0
- package/dist/{chunk-CIIQ3S2X.mjs → chunk-CIBTUWAE.mjs} +7 -7
- package/dist/{chunk-43XWYC3M.mjs → chunk-E65ABM3C.mjs} +168 -72
- package/dist/chunk-E65ABM3C.mjs.map +1 -0
- package/dist/{chunk-ZL322NVL.mjs → chunk-FSHVDWI2.mjs} +109 -44
- package/dist/chunk-FSHVDWI2.mjs.map +1 -0
- package/dist/{chunk-QY6P2YS7.mjs → chunk-GNT5G74Z.mjs} +2 -2
- package/dist/{chunk-QJI6AOAT.mjs → chunk-TCPXAX3F.mjs} +2 -2
- package/dist/cli.mjs +2 -2
- package/dist/{http-TPX74BLK.mjs → http-PMNZ42EN.mjs} +6 -6
- package/dist/{import-B745DRHD.mjs → import-OP7R4CYY.mjs} +4 -4
- package/dist/index.mjs +6 -6
- package/dist/{mcp-YWAVG5XW.mjs → mcp-ABXNFUJO.mjs} +3 -3
- package/dist/{stream-import-OPALPVWF.mjs → stream-import-L6RJHH4L.mjs} +3 -3
- package/dist-web/assets/DebugToolsPanel.vue_vue_type_script_setup_true_lang-BUwpIerl.js +161 -0
- package/dist-web/assets/{EChartWordcloud-VpNJDurs.js → EChartWordcloud-CzhfrEF_.js} +1 -1
- package/dist-web/assets/{MessageExportModal-CSfaY25B.js → MessageExportModal-BAJKWX4y.js} +1 -1
- package/dist-web/assets/{electron-BUeXfvxT.js → electron-CZt36wW5.js} +1 -1
- package/dist-web/assets/electron-CwERrTWp.js +1 -0
- package/dist-web/assets/{fetch-DzNuFdFM.js → fetch-BxFAkm7O.js} +1 -1
- package/dist-web/assets/{fetch-BohUj3CQ.js → fetch-CgBIWyAo.js} +1 -1
- package/dist-web/assets/{fetch-B2q6973s.js → fetch-D4p9vj1A.js} +1 -1
- package/dist-web/assets/{fetch-Ck3tjoLa.js → fetch-DD1EGRKV.js} +1 -1
- package/dist-web/assets/{fetch-BtHwWs8A.js → fetch-DO8lty7_.js} +1 -1
- package/dist-web/assets/{fetch-BGMRmQx0.js → fetch-DXfZysDf.js} +1 -1
- package/dist-web/assets/{fetch-DypPduyQ.js → fetch-GMkMBzBS.js} +1 -1
- package/dist-web/assets/{fetch-RDFt3hmp.js → fetch-JzVEwamn.js} +1 -1
- package/dist-web/assets/{fetch-CARsBVl0.js → fetch-qoGEVjNg.js} +1 -1
- package/dist-web/assets/{fetch-BneHn5qk.js → fetch-yWwp067l.js} +1 -1
- package/dist-web/assets/{index-Bvlj3dMn.js → index-BrS_VrIY.js} +1 -1
- package/dist-web/assets/index-C1t-kzfo.css +1 -0
- package/dist-web/assets/{index-DCWvD-4L.js → index-Cvlw0RLu.js} +2 -2
- package/dist-web/assets/index-DABpUm3J.js +9 -0
- package/dist-web/assets/{index-C5LrQG3N.js → index-DvWI6Yqa.js} +4 -4
- package/dist-web/assets/{index-BvaWRM6_.js → index-O0PG26_v.js} +1 -1
- package/dist-web/assets/index-OsjX5hXw.js +173 -0
- package/dist-web/assets/vendor-echarts-CITQeskI.js +11 -0
- package/dist-web/assets/{vendor-echarts-wordcloud-CZ9gsX8l.js → vendor-echarts-wordcloud-B1kQMklB.js} +1 -1
- package/dist-web/assets/{vendor-nuxt-ui-BYU7dz8t.js → vendor-nuxt-ui-C_8CsH6e.js} +1 -1
- package/dist-web/assets/{vendor-reka-ui-CnB0mMNX.js → vendor-reka-ui-CIMXwvEp.js} +1 -1
- package/dist-web/assets/{web-CXPkmhis.js → web-4rtrAcLu.js} +1 -1
- package/dist-web/index.html +4 -4
- package/package.json +1 -1
- package/dist/chunk-43XWYC3M.mjs.map +0 -1
- package/dist/chunk-N5DGZQB4.mjs.map +0 -1
- package/dist/chunk-ZL322NVL.mjs.map +0 -1
- package/dist-web/assets/DebugToolsPanel.vue_vue_type_script_setup_true_lang-BBDrsJfe.js +0 -161
- package/dist-web/assets/electron-BynNUuEA.js +0 -1
- package/dist-web/assets/index-BRwEubUe.js +0 -173
- package/dist-web/assets/index-DB-iqXzV.css +0 -1
- package/dist-web/assets/index-DS1rzk1I.js +0 -8
- package/dist-web/assets/vendor-echarts-C5u62NnM.js +0 -11
- /package/dist/{chunk-CIIQ3S2X.mjs.map → chunk-CIBTUWAE.mjs.map} +0 -0
- /package/dist/{chunk-QY6P2YS7.mjs.map → chunk-GNT5G74Z.mjs.map} +0 -0
- /package/dist/{chunk-QJI6AOAT.mjs.map → chunk-TCPXAX3F.mjs.map} +0 -0
- /package/dist/{http-TPX74BLK.mjs.map → http-PMNZ42EN.mjs.map} +0 -0
- /package/dist/{import-B745DRHD.mjs.map → import-OP7R4CYY.mjs.map} +0 -0
- /package/dist/{mcp-YWAVG5XW.mjs.map → mcp-ABXNFUJO.mjs.map} +0 -0
- /package/dist/{stream-import-OPALPVWF.mjs.map → stream-import-L6RJHH4L.mjs.map} +0 -0
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
loadConfig,
|
|
23
23
|
searchMessagesLike,
|
|
24
24
|
verifyCliDataPath
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-4OMV4VNH.mjs";
|
|
26
26
|
import {
|
|
27
27
|
resolveCliPath
|
|
28
28
|
} from "./chunk-FJ35V3TE.mjs";
|
|
@@ -219,7 +219,7 @@ program.command("import <file>").description("Import a chat history file (14+ fo
|
|
|
219
219
|
console.error(`File not found: ${file}`);
|
|
220
220
|
process.exit(1);
|
|
221
221
|
}
|
|
222
|
-
const { streamImport, detectFormat } = await import("./import-
|
|
222
|
+
const { streamImport, detectFormat } = await import("./import-OP7R4CYY.mjs");
|
|
223
223
|
const { dbManager } = initRuntime();
|
|
224
224
|
const nativeBinding = resolveNativeBinding();
|
|
225
225
|
const format = detectFormat(file);
|
|
@@ -261,7 +261,7 @@ Import error: ${err instanceof Error ? err.message : err}`);
|
|
|
261
261
|
}
|
|
262
262
|
});
|
|
263
263
|
program.command("formats").description("List all supported chat history formats").action(async () => {
|
|
264
|
-
const { getSupportedFormats } = await import("./import-
|
|
264
|
+
const { getSupportedFormats } = await import("./import-OP7R4CYY.mjs");
|
|
265
265
|
const formats = getSupportedFormats();
|
|
266
266
|
console.log(`${formats.length} supported format(s):
|
|
267
267
|
`);
|
|
@@ -270,7 +270,7 @@ program.command("formats").description("List all supported chat history formats"
|
|
|
270
270
|
}
|
|
271
271
|
});
|
|
272
272
|
program.command("mcp").description("Start MCP Server (stdio transport, for ClaudeCode / Cursor / AI agents)").action(async () => {
|
|
273
|
-
const { startCliMcpServer } = await import("./mcp-
|
|
273
|
+
const { startCliMcpServer } = await import("./mcp-ABXNFUJO.mjs");
|
|
274
274
|
await startCliMcpServer();
|
|
275
275
|
});
|
|
276
276
|
program.command("start").description("Start ChatLab (HTTP API + Web UI)").option("--port <port>", "Server port", String(DEFAULT_API_PORT)).option("--host <host>", "Listen address", "127.0.0.1").option("--token <token>", "Custom Bearer Token (reads from config or auto-generates if omitted)").option("--headless", "API-only mode, do not serve the Web UI").option("--require-auth", "Require Bearer token for all routes including /_web/*").option("--no-open", "Do not auto-open the browser").option("--daemon", "Run as a resident system service (auto-start on login, macOS/Linux)").action(async (options) => {
|
|
@@ -285,7 +285,7 @@ program.command("start").description("Start ChatLab (HTTP API + Web UI)").option
|
|
|
285
285
|
});
|
|
286
286
|
return;
|
|
287
287
|
}
|
|
288
|
-
const { startHttpServer } = await import("./http-
|
|
288
|
+
const { startHttpServer } = await import("./http-PMNZ42EN.mjs");
|
|
289
289
|
const port = parseInt(options.port, 10);
|
|
290
290
|
let webRoot;
|
|
291
291
|
if (!options.headless) {
|
|
@@ -332,7 +332,7 @@ Press Ctrl+C to stop.
|
|
|
332
332
|
}
|
|
333
333
|
const shutdown = async () => {
|
|
334
334
|
console.log("\nShutting down...");
|
|
335
|
-
const { stopHttpServer } = await import("./http-
|
|
335
|
+
const { stopHttpServer } = await import("./http-PMNZ42EN.mjs");
|
|
336
336
|
await stopHttpServer();
|
|
337
337
|
process.exit(0);
|
|
338
338
|
};
|
|
@@ -475,4 +475,4 @@ if (isDirectRun) {
|
|
|
475
475
|
export {
|
|
476
476
|
run
|
|
477
477
|
};
|
|
478
|
-
//# sourceMappingURL=chunk-
|
|
478
|
+
//# sourceMappingURL=chunk-CIBTUWAE.mjs.map
|
|
@@ -5,6 +5,7 @@ const require = __createRequire(import.meta.url);
|
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __pathDirname(__filename);
|
|
7
7
|
import {
|
|
8
|
+
buildChartPayload,
|
|
8
9
|
executeParameterizedSql,
|
|
9
10
|
executeReadonlySql,
|
|
10
11
|
getChatOverview,
|
|
@@ -26,7 +27,7 @@ import {
|
|
|
26
27
|
getWeekdayActivity,
|
|
27
28
|
searchMessagesLike,
|
|
28
29
|
searchSessions
|
|
29
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-4OMV4VNH.mjs";
|
|
30
31
|
|
|
31
32
|
// ../../packages/tools/src/definitions/sql-query.ts
|
|
32
33
|
var inputSchema = {
|
|
@@ -68,7 +69,8 @@ var sqlQueryTool = {
|
|
|
68
69
|
name: "execute_sql",
|
|
69
70
|
description: "\u5BF9\u804A\u5929\u6570\u636E\u5E93\u6267\u884C\u53EA\u8BFB SELECT \u67E5\u8BE2\u3002\u4F7F\u7528\u524D\u53EF\u5148\u8C03\u7528 get_schema \u67E5\u770B\u8868\u7ED3\u6784\u3002",
|
|
70
71
|
inputSchema,
|
|
71
|
-
handler
|
|
72
|
+
handler,
|
|
73
|
+
category: "analysis"
|
|
72
74
|
};
|
|
73
75
|
var schemaTool = {
|
|
74
76
|
name: "get_schema",
|
|
@@ -77,8 +79,101 @@ var schemaTool = {
|
|
|
77
79
|
handler: schemaHandler
|
|
78
80
|
};
|
|
79
81
|
|
|
80
|
-
// ../../packages/tools/src/definitions/
|
|
82
|
+
// ../../packages/tools/src/definitions/render-chart.ts
|
|
83
|
+
var DEFAULT_MAX_ROWS = 1e3;
|
|
84
|
+
var RE_SECONDS_TIMESTAMP_DIVIDED_AS_MILLISECONDS = /\b(?:\w+\.)?ts\s*\/\s*1000\b/i;
|
|
81
85
|
var inputSchema2 = {
|
|
86
|
+
type: "object",
|
|
87
|
+
properties: {
|
|
88
|
+
sql: {
|
|
89
|
+
type: "string",
|
|
90
|
+
description: "Read-only SELECT or WITH SELECT SQL used to produce chart rows."
|
|
91
|
+
},
|
|
92
|
+
params: {
|
|
93
|
+
type: "object",
|
|
94
|
+
description: "Named SQL parameters. Use an empty object when no parameters are needed.",
|
|
95
|
+
additionalProperties: true,
|
|
96
|
+
default: {}
|
|
97
|
+
},
|
|
98
|
+
chartSpec: {
|
|
99
|
+
type: "object",
|
|
100
|
+
description: "ChartSpec v1. Required fields: version, type, title, encoding. Supported types: bar, line, pie, heatmap.",
|
|
101
|
+
additionalProperties: true
|
|
102
|
+
},
|
|
103
|
+
maxRows: {
|
|
104
|
+
type: "number",
|
|
105
|
+
description: "Maximum rows to fetch before chart normalization.",
|
|
106
|
+
default: DEFAULT_MAX_ROWS,
|
|
107
|
+
minimum: 1,
|
|
108
|
+
maximum: 5e3
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
required: ["sql", "chartSpec"]
|
|
112
|
+
};
|
|
113
|
+
function normalizeSql(sql, maxRows) {
|
|
114
|
+
if (typeof sql !== "string" || sql.trim().length === 0) {
|
|
115
|
+
throw new Error("sql must be a non-empty string");
|
|
116
|
+
}
|
|
117
|
+
const trimmed = sql.trim().replace(/;+\s*$/, "");
|
|
118
|
+
if (trimmed.includes(";")) {
|
|
119
|
+
throw new Error("Only a single read-only SQL statement is allowed");
|
|
120
|
+
}
|
|
121
|
+
const statementStart = trimmed.replace(/^(\s|--[^\n]*(\n|$)|\/\*[\s\S]*?\*\/)*/, "");
|
|
122
|
+
if (!/^(SELECT|WITH)\b/i.test(statementStart)) {
|
|
123
|
+
throw new Error("render_chart only accepts SELECT or WITH SELECT SQL");
|
|
124
|
+
}
|
|
125
|
+
if (RE_SECONDS_TIMESTAMP_DIVIDED_AS_MILLISECONDS.test(trimmed)) {
|
|
126
|
+
throw new Error("message.ts is already a Unix timestamp in seconds; do not divide ts by 1000");
|
|
127
|
+
}
|
|
128
|
+
return `SELECT * FROM (
|
|
129
|
+
${trimmed}
|
|
130
|
+
) AS chart_query LIMIT ${maxRows + 1}`;
|
|
131
|
+
}
|
|
132
|
+
function normalizeParams(raw) {
|
|
133
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) return {};
|
|
134
|
+
return raw;
|
|
135
|
+
}
|
|
136
|
+
function normalizeMaxRows(raw) {
|
|
137
|
+
const value = typeof raw === "number" ? raw : DEFAULT_MAX_ROWS;
|
|
138
|
+
if (!Number.isFinite(value)) return DEFAULT_MAX_ROWS;
|
|
139
|
+
return Math.min(5e3, Math.max(1, Math.floor(value)));
|
|
140
|
+
}
|
|
141
|
+
function summarizeChart(type, title, rowCount, truncated, locale) {
|
|
142
|
+
if (locale?.startsWith("zh")) {
|
|
143
|
+
return `\u5DF2\u751F\u6210\u56FE\u8868\u300C${title}\u300D\uFF08${type}\uFF0C${rowCount} \u884C\u6570\u636E${truncated ? "\uFF0C\u5DF2\u622A\u65AD" : ""}\uFF09\u3002`;
|
|
144
|
+
}
|
|
145
|
+
return `Generated chart "${title}" (${type}, ${rowCount} rows${truncated ? ", truncated" : ""}).`;
|
|
146
|
+
}
|
|
147
|
+
async function handler2(params, context) {
|
|
148
|
+
if (!context.dataProvider) throw new Error("render_chart requires a data provider");
|
|
149
|
+
const maxRows = normalizeMaxRows(params.maxRows);
|
|
150
|
+
const sql = normalizeSql(params.sql, maxRows);
|
|
151
|
+
const sqlParams = normalizeParams(params.params);
|
|
152
|
+
const fetchedRows = await context.dataProvider.executeParameterizedSql(sql, sqlParams);
|
|
153
|
+
const truncated = fetchedRows.length > maxRows;
|
|
154
|
+
const rows = truncated ? fetchedRows.slice(0, maxRows) : fetchedRows;
|
|
155
|
+
const chart = buildChartPayload(rows, params.chartSpec, { truncated });
|
|
156
|
+
return {
|
|
157
|
+
content: summarizeChart(chart.spec.type, chart.spec.title, rows.length, truncated, context.locale),
|
|
158
|
+
data: {
|
|
159
|
+
rowCount: rows.length,
|
|
160
|
+
truncated,
|
|
161
|
+
chartType: chart.spec.type,
|
|
162
|
+
title: chart.spec.title
|
|
163
|
+
},
|
|
164
|
+
chart
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
var renderChartTool = {
|
|
168
|
+
name: "render_chart",
|
|
169
|
+
description: "Generate a native ChatLab chart from read-only SQL plus ChartSpec v1. Use this for flexible bar, line, pie, and heatmap charts. Never output HTML, JavaScript, SVG, ECharts options, or rendering code.",
|
|
170
|
+
inputSchema: inputSchema2,
|
|
171
|
+
handler: handler2,
|
|
172
|
+
category: "analysis"
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
// ../../packages/tools/src/definitions/session-info.ts
|
|
176
|
+
var inputSchema3 = {
|
|
82
177
|
type: "object",
|
|
83
178
|
properties: {
|
|
84
179
|
include_members: {
|
|
@@ -88,7 +183,7 @@ var inputSchema2 = {
|
|
|
88
183
|
}
|
|
89
184
|
}
|
|
90
185
|
};
|
|
91
|
-
function
|
|
186
|
+
function handler3(params, context) {
|
|
92
187
|
const db = context.db;
|
|
93
188
|
const meta = getSessionMeta(db);
|
|
94
189
|
const overview = getSessionOverview(db);
|
|
@@ -105,12 +200,12 @@ function handler2(params, context) {
|
|
|
105
200
|
var sessionInfoTool = {
|
|
106
201
|
name: "get_session_info",
|
|
107
202
|
description: "\u83B7\u53D6\u5F53\u524D\u4F1A\u8BDD\u7684\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u5305\u62EC\u540D\u79F0\u3001\u5E73\u53F0\u3001\u6D88\u606F\u603B\u6570\u3001\u6210\u5458\u6570\u3001\u65F6\u95F4\u8303\u56F4\u7B49",
|
|
108
|
-
inputSchema:
|
|
109
|
-
handler:
|
|
203
|
+
inputSchema: inputSchema3,
|
|
204
|
+
handler: handler3
|
|
110
205
|
};
|
|
111
206
|
|
|
112
207
|
// ../../packages/tools/src/definitions/sessions.ts
|
|
113
|
-
var
|
|
208
|
+
var inputSchema4 = {
|
|
114
209
|
type: "object",
|
|
115
210
|
properties: {
|
|
116
211
|
keyword: {
|
|
@@ -119,7 +214,7 @@ var inputSchema3 = {
|
|
|
119
214
|
}
|
|
120
215
|
}
|
|
121
216
|
};
|
|
122
|
-
function
|
|
217
|
+
function handler4(_params, context) {
|
|
123
218
|
const keyword = _params.keyword?.toLowerCase();
|
|
124
219
|
const sessionIds = context.listSessionIds();
|
|
125
220
|
const sessions = sessionIds.map((id) => {
|
|
@@ -139,8 +234,8 @@ function handler3(_params, context) {
|
|
|
139
234
|
var sessionsListTool = {
|
|
140
235
|
name: "list_sessions",
|
|
141
236
|
description: "\u5217\u51FA\u6240\u6709\u53EF\u7528\u7684\u804A\u5929\u4F1A\u8BDD\uFF0C\u8FD4\u56DE\u4F1A\u8BDD\u540D\u79F0\u3001\u5E73\u53F0\u3001\u6D88\u606F\u6570\u7B49\u57FA\u672C\u4FE1\u606F",
|
|
142
|
-
inputSchema:
|
|
143
|
-
handler:
|
|
237
|
+
inputSchema: inputSchema4,
|
|
238
|
+
handler: handler4
|
|
144
239
|
};
|
|
145
240
|
|
|
146
241
|
// ../../packages/tools/src/utils/format.ts
|
|
@@ -184,13 +279,13 @@ function formatMessageCompact(msg, locale) {
|
|
|
184
279
|
}
|
|
185
280
|
|
|
186
281
|
// ../../packages/tools/src/definitions/chat-overview.ts
|
|
187
|
-
var
|
|
282
|
+
var inputSchema5 = {
|
|
188
283
|
type: "object",
|
|
189
284
|
properties: {
|
|
190
285
|
top_n: { type: "number", description: "\u8FD4\u56DE\u6D3B\u8DC3\u5EA6\u6700\u9AD8\u7684\u524D N \u4E2A\u6210\u5458\uFF0C\u9ED8\u8BA4 10" }
|
|
191
286
|
}
|
|
192
287
|
};
|
|
193
|
-
async function
|
|
288
|
+
async function handler5(params, context) {
|
|
194
289
|
const { locale } = context;
|
|
195
290
|
const topN = params.top_n || 10;
|
|
196
291
|
const result = await context.dataProvider.getChatOverview(topN);
|
|
@@ -224,8 +319,8 @@ async function handler4(params, context) {
|
|
|
224
319
|
var chatOverviewTool = {
|
|
225
320
|
name: "get_chat_overview",
|
|
226
321
|
description: "\u83B7\u53D6\u804A\u5929\u6982\u89C8\u4FE1\u606F\uFF0C\u5305\u62EC\u804A\u5929\u540D\u79F0\u3001\u5E73\u53F0\u3001\u603B\u6D88\u606F\u6570\u3001\u603B\u6210\u5458\u6570\u3001\u65F6\u95F4\u8303\u56F4\u548C\u6D3B\u8DC3\u6210\u5458\u6392\u884C",
|
|
227
|
-
inputSchema:
|
|
228
|
-
handler:
|
|
322
|
+
inputSchema: inputSchema5,
|
|
323
|
+
handler: handler5,
|
|
229
324
|
category: "core"
|
|
230
325
|
};
|
|
231
326
|
|
|
@@ -269,7 +364,7 @@ var timeParamProperties = {
|
|
|
269
364
|
};
|
|
270
365
|
|
|
271
366
|
// ../../packages/tools/src/definitions/search-messages.ts
|
|
272
|
-
var
|
|
367
|
+
var inputSchema6 = {
|
|
273
368
|
type: "object",
|
|
274
369
|
properties: {
|
|
275
370
|
keywords: { type: "array", items: { type: "string" }, description: "\u641C\u7D22\u5173\u952E\u8BCD\u5217\u8868" },
|
|
@@ -279,7 +374,7 @@ var inputSchema5 = {
|
|
|
279
374
|
},
|
|
280
375
|
required: ["keywords"]
|
|
281
376
|
};
|
|
282
|
-
async function
|
|
377
|
+
async function handler6(params, context) {
|
|
283
378
|
const { locale, timeFilter: contextTimeFilter, maxMessagesLimit } = context;
|
|
284
379
|
const keywords = params.keywords;
|
|
285
380
|
const limit = Math.min(maxMessagesLimit || params.limit || 1e3, 5e4);
|
|
@@ -309,14 +404,14 @@ async function handler5(params, context) {
|
|
|
309
404
|
var searchMessagesTool = {
|
|
310
405
|
name: "search_messages",
|
|
311
406
|
description: "\u6839\u636E\u5173\u952E\u8BCD\u641C\u7D22\u7FA4\u804A\u8BB0\u5F55\u3002\u9002\u7528\u4E8E\u7528\u6237\u60F3\u8981\u67E5\u627E\u7279\u5B9A\u8BDD\u9898\u3001\u5173\u952E\u8BCD\u76F8\u5173\u7684\u804A\u5929\u5185\u5BB9\u3002\u53EF\u4EE5\u6307\u5B9A\u65F6\u95F4\u8303\u56F4\u548C\u53D1\u9001\u8005\u6765\u7B5B\u9009\u6D88\u606F\u3002",
|
|
312
|
-
inputSchema:
|
|
313
|
-
handler:
|
|
407
|
+
inputSchema: inputSchema6,
|
|
408
|
+
handler: handler6,
|
|
314
409
|
category: "core",
|
|
315
410
|
truncationStrategy: "keep_first"
|
|
316
411
|
};
|
|
317
412
|
|
|
318
413
|
// ../../packages/tools/src/definitions/deep-search-messages.ts
|
|
319
|
-
var
|
|
414
|
+
var inputSchema7 = {
|
|
320
415
|
type: "object",
|
|
321
416
|
properties: {
|
|
322
417
|
keywords: { type: "array", items: { type: "string" }, description: "\u641C\u7D22\u5173\u952E\u8BCD\u5217\u8868" },
|
|
@@ -326,7 +421,7 @@ var inputSchema6 = {
|
|
|
326
421
|
},
|
|
327
422
|
required: ["keywords"]
|
|
328
423
|
};
|
|
329
|
-
async function
|
|
424
|
+
async function handler7(params, context) {
|
|
330
425
|
const { locale, timeFilter: contextTimeFilter, maxMessagesLimit } = context;
|
|
331
426
|
const keywords = params.keywords;
|
|
332
427
|
const limit = Math.min(maxMessagesLimit || params.limit || 1e3, 5e4);
|
|
@@ -356,14 +451,14 @@ async function handler6(params, context) {
|
|
|
356
451
|
var deepSearchMessagesTool = {
|
|
357
452
|
name: "deep_search_messages",
|
|
358
453
|
description: "\u6DF1\u5EA6\u641C\u7D22\u6D88\u606F\uFF08LIKE \u5B50\u4E32\u5339\u914D\uFF0C\u901F\u5EA6\u8F83\u6162\u4F46\u4E0D\u4F1A\u9057\u6F0F\uFF09\uFF0C\u9002\u7528\u4E8E\u5168\u6587\u641C\u7D22\u7CBE\u786E\u5339\u914D\u6216 FTS \u641C\u7D22\u65E0\u7ED3\u679C\u65F6\u7684\u8865\u5145\u641C\u7D22\u3002",
|
|
359
|
-
inputSchema:
|
|
360
|
-
handler:
|
|
454
|
+
inputSchema: inputSchema7,
|
|
455
|
+
handler: handler7,
|
|
361
456
|
category: "core",
|
|
362
457
|
truncationStrategy: "keep_first"
|
|
363
458
|
};
|
|
364
459
|
|
|
365
460
|
// ../../packages/tools/src/definitions/get-message-context.ts
|
|
366
|
-
var
|
|
461
|
+
var inputSchema8 = {
|
|
367
462
|
type: "object",
|
|
368
463
|
properties: {
|
|
369
464
|
message_ids: { type: "array", items: { type: "number" }, description: "\u6D88\u606F ID \u5217\u8868" },
|
|
@@ -371,7 +466,7 @@ var inputSchema7 = {
|
|
|
371
466
|
},
|
|
372
467
|
required: ["message_ids"]
|
|
373
468
|
};
|
|
374
|
-
async function
|
|
469
|
+
async function handler8(params, context) {
|
|
375
470
|
const { locale } = context;
|
|
376
471
|
const messageIds = params.message_ids;
|
|
377
472
|
const contextSize = params.context_size || 20;
|
|
@@ -394,14 +489,14 @@ async function handler7(params, context) {
|
|
|
394
489
|
var getMessageContextTool = {
|
|
395
490
|
name: "get_message_context",
|
|
396
491
|
description: "\u6839\u636E\u6D88\u606F ID \u83B7\u53D6\u524D\u540E\u7684\u4E0A\u4E0B\u6587\u6D88\u606F\u3002\u9002\u7528\u4E8E\u9700\u8981\u67E5\u770B\u67D0\u6761\u6D88\u606F\u524D\u540E\u804A\u5929\u5185\u5BB9\u7684\u573A\u666F\u3002",
|
|
397
|
-
inputSchema:
|
|
398
|
-
handler:
|
|
492
|
+
inputSchema: inputSchema8,
|
|
493
|
+
handler: handler8,
|
|
399
494
|
category: "core",
|
|
400
495
|
truncationStrategy: "keep_last"
|
|
401
496
|
};
|
|
402
497
|
|
|
403
498
|
// ../../packages/tools/src/definitions/search-sessions.ts
|
|
404
|
-
var
|
|
499
|
+
var inputSchema9 = {
|
|
405
500
|
type: "object",
|
|
406
501
|
properties: {
|
|
407
502
|
keywords: { type: "array", items: { type: "string" }, description: "\u641C\u7D22\u5173\u952E\u8BCD\u5217\u8868" },
|
|
@@ -409,7 +504,7 @@ var inputSchema8 = {
|
|
|
409
504
|
...timeParamProperties
|
|
410
505
|
}
|
|
411
506
|
};
|
|
412
|
-
async function
|
|
507
|
+
async function handler9(params, context) {
|
|
413
508
|
const { locale, timeFilter: contextTimeFilter } = context;
|
|
414
509
|
const limit = params.limit || 20;
|
|
415
510
|
const effectiveTimeFilter = parseExtendedTimeParams(params, contextTimeFilter);
|
|
@@ -449,13 +544,13 @@ async function handler8(params, context) {
|
|
|
449
544
|
var searchSessionsTool = {
|
|
450
545
|
name: "search_sessions",
|
|
451
546
|
description: "\u641C\u7D22\u804A\u5929\u4F1A\u8BDD\uFF08\u5BF9\u8BDD\u6BB5\u843D\uFF09\u3002\u4F1A\u8BDD\u662F\u6839\u636E\u6D88\u606F\u65F6\u95F4\u95F4\u9694\u81EA\u52A8\u5207\u5206\u7684\u5BF9\u8BDD\u5355\u5143\u3002\u8FD4\u56DE\u5339\u914D\u7684\u4F1A\u8BDD\u5217\u8868\u53CA\u6BCF\u4E2A\u4F1A\u8BDD\u7684\u524D5\u6761\u6D88\u606F\u9884\u89C8\u3002",
|
|
452
|
-
inputSchema:
|
|
453
|
-
handler:
|
|
547
|
+
inputSchema: inputSchema9,
|
|
548
|
+
handler: handler9,
|
|
454
549
|
category: "core"
|
|
455
550
|
};
|
|
456
551
|
|
|
457
552
|
// ../../packages/tools/src/definitions/get-session-messages.ts
|
|
458
|
-
var
|
|
553
|
+
var inputSchema10 = {
|
|
459
554
|
type: "object",
|
|
460
555
|
properties: {
|
|
461
556
|
session_id: { type: "number", description: "\u4F1A\u8BDD ID\uFF08\u901A\u8FC7 search_sessions \u83B7\u53D6\uFF09" },
|
|
@@ -463,7 +558,7 @@ var inputSchema9 = {
|
|
|
463
558
|
},
|
|
464
559
|
required: ["session_id"]
|
|
465
560
|
};
|
|
466
|
-
async function
|
|
561
|
+
async function handler10(params, context) {
|
|
467
562
|
const { locale, maxMessagesLimit } = context;
|
|
468
563
|
const limit = maxMessagesLimit || params.limit || 1e3;
|
|
469
564
|
const result = await context.dataProvider.getSessionMessages(params.session_id, limit);
|
|
@@ -496,21 +591,21 @@ async function handler9(params, context) {
|
|
|
496
591
|
var getSessionMessagesTool = {
|
|
497
592
|
name: "get_session_messages",
|
|
498
593
|
description: "\u83B7\u53D6\u6307\u5B9A\u4F1A\u8BDD\u7684\u5B8C\u6574\u6D88\u606F\u5217\u8868\u3002\u7528\u4E8E\u5728 search_sessions \u627E\u5230\u76F8\u5173\u4F1A\u8BDD\u540E\uFF0C\u83B7\u53D6\u8BE5\u4F1A\u8BDD\u7684\u5B8C\u6574\u4E0A\u4E0B\u6587\u3002",
|
|
499
|
-
inputSchema:
|
|
500
|
-
handler:
|
|
594
|
+
inputSchema: inputSchema10,
|
|
595
|
+
handler: handler10,
|
|
501
596
|
category: "core",
|
|
502
597
|
truncationStrategy: "keep_last"
|
|
503
598
|
};
|
|
504
599
|
|
|
505
600
|
// ../../packages/tools/src/definitions/get-members.ts
|
|
506
|
-
var
|
|
601
|
+
var inputSchema11 = {
|
|
507
602
|
type: "object",
|
|
508
603
|
properties: {
|
|
509
604
|
search: { type: "string", description: "\u6309\u540D\u79F0/\u522B\u540D/\u5E73\u53F0ID\u641C\u7D22\u8FC7\u6EE4" },
|
|
510
605
|
limit: { type: "number", description: "\u6700\u5927\u8FD4\u56DE\u6570\u91CF" }
|
|
511
606
|
}
|
|
512
607
|
};
|
|
513
|
-
async function
|
|
608
|
+
async function handler11(params, context) {
|
|
514
609
|
const { locale } = context;
|
|
515
610
|
const members = await context.dataProvider.getMembers();
|
|
516
611
|
let filteredMembers = members;
|
|
@@ -543,13 +638,13 @@ async function handler10(params, context) {
|
|
|
543
638
|
var getMembersTool = {
|
|
544
639
|
name: "get_members",
|
|
545
640
|
description: '\u83B7\u53D6\u6210\u5458\u5217\u8868\uFF0C\u5305\u62EC\u6210\u5458\u7684\u57FA\u672C\u4FE1\u606F\u3001\u522B\u540D\u548C\u6D88\u606F\u7EDF\u8BA1\u3002\u9002\u7528\u4E8E\u67E5\u8BE2"\u6709\u54EA\u4E9B\u4EBA"\u3001"\u67D0\u4EBA\u7684\u522B\u540D\u662F\u4EC0\u4E48"\u7B49\u95EE\u9898\u3002',
|
|
546
|
-
inputSchema:
|
|
547
|
-
handler:
|
|
641
|
+
inputSchema: inputSchema11,
|
|
642
|
+
handler: handler11,
|
|
548
643
|
category: "core"
|
|
549
644
|
};
|
|
550
645
|
|
|
551
646
|
// ../../packages/tools/src/definitions/member-stats.ts
|
|
552
|
-
var
|
|
647
|
+
var inputSchema12 = {
|
|
553
648
|
type: "object",
|
|
554
649
|
properties: {
|
|
555
650
|
top: {
|
|
@@ -559,7 +654,7 @@ var inputSchema11 = {
|
|
|
559
654
|
}
|
|
560
655
|
}
|
|
561
656
|
};
|
|
562
|
-
async function
|
|
657
|
+
async function handler12(params, context) {
|
|
563
658
|
const top = params.top || 20;
|
|
564
659
|
const members = await context.dataProvider.getMemberStats({ timeFilter: context.timeFilter, top });
|
|
565
660
|
const data = {
|
|
@@ -578,13 +673,13 @@ async function handler11(params, context) {
|
|
|
578
673
|
var memberStatsTool = {
|
|
579
674
|
name: "get_member_stats",
|
|
580
675
|
description: "\u83B7\u53D6\u6210\u5458\u6D3B\u8DC3\u5EA6\u6392\u884C\uFF0C\u5305\u62EC\u6D88\u606F\u6570\u91CF\u548C\u5360\u6BD4",
|
|
581
|
-
inputSchema:
|
|
582
|
-
handler:
|
|
676
|
+
inputSchema: inputSchema12,
|
|
677
|
+
handler: handler12,
|
|
583
678
|
category: "core"
|
|
584
679
|
};
|
|
585
680
|
|
|
586
681
|
// ../../packages/tools/src/definitions/time-stats.ts
|
|
587
|
-
var
|
|
682
|
+
var inputSchema13 = {
|
|
588
683
|
type: "object",
|
|
589
684
|
properties: {
|
|
590
685
|
type: {
|
|
@@ -595,7 +690,7 @@ var inputSchema12 = {
|
|
|
595
690
|
}
|
|
596
691
|
}
|
|
597
692
|
};
|
|
598
|
-
async function
|
|
693
|
+
async function handler13(params, context) {
|
|
599
694
|
const type = params.type || "hourly";
|
|
600
695
|
const data = await context.dataProvider.getTimeStats(type, { timeFilter: context.timeFilter });
|
|
601
696
|
return {
|
|
@@ -606,13 +701,13 @@ async function handler12(params, context) {
|
|
|
606
701
|
var timeStatsTool = {
|
|
607
702
|
name: "get_time_stats",
|
|
608
703
|
description: "\u83B7\u53D6\u804A\u5929\u6D3B\u8DC3\u65F6\u6BB5\u5206\u5E03\uFF08\u6309\u5C0F\u65F6/\u661F\u671F/\u6BCF\u65E5\u8D8B\u52BF\uFF09",
|
|
609
|
-
inputSchema:
|
|
610
|
-
handler:
|
|
704
|
+
inputSchema: inputSchema13,
|
|
705
|
+
handler: handler13,
|
|
611
706
|
category: "core"
|
|
612
707
|
};
|
|
613
708
|
|
|
614
709
|
// ../../packages/tools/src/definitions/recent-messages.ts
|
|
615
|
-
var
|
|
710
|
+
var inputSchema14 = {
|
|
616
711
|
type: "object",
|
|
617
712
|
properties: {
|
|
618
713
|
limit: {
|
|
@@ -623,7 +718,7 @@ var inputSchema13 = {
|
|
|
623
718
|
...timeParamProperties
|
|
624
719
|
}
|
|
625
720
|
};
|
|
626
|
-
async function
|
|
721
|
+
async function handler14(params, context) {
|
|
627
722
|
const { locale, timeFilter: contextTimeFilter, maxMessagesLimit } = context;
|
|
628
723
|
const limit = maxMessagesLimit || params.limit || 100;
|
|
629
724
|
const effectiveTimeFilter = parseExtendedTimeParams(params, contextTimeFilter);
|
|
@@ -643,21 +738,21 @@ async function handler13(params, context) {
|
|
|
643
738
|
var recentMessagesTool = {
|
|
644
739
|
name: "get_recent_messages",
|
|
645
740
|
description: '\u83B7\u53D6\u6307\u5B9A\u65F6\u95F4\u6BB5\u5185\u7684\u7FA4\u804A\u6D88\u606F\u3002\u9002\u7528\u4E8E\u56DE\u7B54"\u6700\u8FD1\u5927\u5BB6\u804A\u4E86\u4EC0\u4E48"\u7B49\u6982\u89C8\u6027\u95EE\u9898\u3002\u652F\u6301\u7CBE\u786E\u5230\u5206\u949F\u7EA7\u522B\u7684\u65F6\u95F4\u67E5\u8BE2\u3002',
|
|
646
|
-
inputSchema:
|
|
647
|
-
handler:
|
|
741
|
+
inputSchema: inputSchema14,
|
|
742
|
+
handler: handler14,
|
|
648
743
|
category: "core",
|
|
649
744
|
truncationStrategy: "keep_last"
|
|
650
745
|
};
|
|
651
746
|
|
|
652
747
|
// ../../packages/tools/src/definitions/get-member-name-history.ts
|
|
653
|
-
var
|
|
748
|
+
var inputSchema15 = {
|
|
654
749
|
type: "object",
|
|
655
750
|
properties: {
|
|
656
751
|
member_id: { type: "number", description: "\u6210\u5458 ID\uFF08\u901A\u8FC7 get_members \u83B7\u53D6\uFF09" }
|
|
657
752
|
},
|
|
658
753
|
required: ["member_id"]
|
|
659
754
|
};
|
|
660
|
-
async function
|
|
755
|
+
async function handler15(params, context) {
|
|
661
756
|
const { locale } = context;
|
|
662
757
|
const memberId = params.member_id;
|
|
663
758
|
const members = await context.dataProvider.getMembers();
|
|
@@ -693,13 +788,13 @@ async function handler14(params, context) {
|
|
|
693
788
|
var getMemberNameHistoryTool = {
|
|
694
789
|
name: "get_member_name_history",
|
|
695
790
|
description: '\u83B7\u53D6\u6210\u5458\u7684\u6635\u79F0\u53D8\u66F4\u5386\u53F2\u8BB0\u5F55\u3002\u9002\u7528\u4E8E\u56DE\u7B54"\u67D0\u4EBA\u4EE5\u524D\u53EB\u4EC0\u4E48\u540D\u5B57"\u3001"\u67D0\u4EBA\u7684\u6635\u79F0\u53D8\u5316"\u7B49\u95EE\u9898\u3002',
|
|
696
|
-
inputSchema:
|
|
697
|
-
handler:
|
|
791
|
+
inputSchema: inputSchema15,
|
|
792
|
+
handler: handler15,
|
|
698
793
|
category: "analysis"
|
|
699
794
|
};
|
|
700
795
|
|
|
701
796
|
// ../../packages/tools/src/definitions/get-conversation-between.ts
|
|
702
|
-
var
|
|
797
|
+
var inputSchema16 = {
|
|
703
798
|
type: "object",
|
|
704
799
|
properties: {
|
|
705
800
|
member_id_1: { type: "number", description: "\u7B2C\u4E00\u4E2A\u6210\u5458\u7684 ID\uFF08\u901A\u8FC7 get_members \u83B7\u53D6\uFF09" },
|
|
@@ -709,7 +804,7 @@ var inputSchema15 = {
|
|
|
709
804
|
},
|
|
710
805
|
required: ["member_id_1", "member_id_2"]
|
|
711
806
|
};
|
|
712
|
-
async function
|
|
807
|
+
async function handler16(params, context) {
|
|
713
808
|
const { locale, timeFilter: contextTimeFilter, maxMessagesLimit } = context;
|
|
714
809
|
const limit = maxMessagesLimit || params.limit || 100;
|
|
715
810
|
const effectiveTimeFilter = parseExtendedTimeParams(params, contextTimeFilter);
|
|
@@ -740,14 +835,14 @@ async function handler15(params, context) {
|
|
|
740
835
|
var getConversationBetweenTool = {
|
|
741
836
|
name: "get_conversation_between",
|
|
742
837
|
description: '\u83B7\u53D6\u4E24\u4E2A\u7FA4\u6210\u5458\u4E4B\u95F4\u7684\u5BF9\u8BDD\u8BB0\u5F55\u3002\u9002\u7528\u4E8E\u56DE\u7B54"A\u548CB\u4E4B\u95F4\u804A\u4E86\u4EC0\u4E48"\u7B49\u95EE\u9898\u3002\u9700\u8981\u5148\u901A\u8FC7 get_members \u83B7\u53D6\u6210\u5458 ID\u3002',
|
|
743
|
-
inputSchema:
|
|
744
|
-
handler:
|
|
838
|
+
inputSchema: inputSchema16,
|
|
839
|
+
handler: handler16,
|
|
745
840
|
category: "analysis",
|
|
746
841
|
truncationStrategy: "keep_last"
|
|
747
842
|
};
|
|
748
843
|
|
|
749
844
|
// ../../packages/tools/src/definitions/get-session-summaries.ts
|
|
750
|
-
var
|
|
845
|
+
var inputSchema17 = {
|
|
751
846
|
type: "object",
|
|
752
847
|
properties: {
|
|
753
848
|
keywords: { type: "array", items: { type: "string" }, description: "\u6309\u5173\u952E\u8BCD\u8FC7\u6EE4\u6458\u8981\u5185\u5BB9" },
|
|
@@ -755,7 +850,7 @@ var inputSchema16 = {
|
|
|
755
850
|
...timeParamProperties
|
|
756
851
|
}
|
|
757
852
|
};
|
|
758
|
-
async function
|
|
853
|
+
async function handler17(params, context) {
|
|
759
854
|
const { locale, timeFilter: contextTimeFilter } = context;
|
|
760
855
|
const limit = params.limit || 20;
|
|
761
856
|
const effectiveTimeFilter = parseExtendedTimeParams(params, contextTimeFilter);
|
|
@@ -801,20 +896,20 @@ async function handler16(params, context) {
|
|
|
801
896
|
var getSessionSummariesTool = {
|
|
802
897
|
name: "get_session_summaries",
|
|
803
898
|
description: "\u83B7\u53D6\u4F1A\u8BDD\u6458\u8981\u5217\u8868\uFF0C\u5FEB\u901F\u4E86\u89E3\u7FA4\u804A\u5386\u53F2\u8BA8\u8BBA\u7684\u4E3B\u9898\u3002\u53EF\u4EE5\u6309\u5173\u952E\u8BCD\u641C\u7D22\u8BA8\u8BBA\u8FC7\u7684\u8BDD\u9898\u3002",
|
|
804
|
-
inputSchema:
|
|
805
|
-
handler:
|
|
899
|
+
inputSchema: inputSchema17,
|
|
900
|
+
handler: handler17,
|
|
806
901
|
category: "analysis"
|
|
807
902
|
};
|
|
808
903
|
|
|
809
904
|
// ../../packages/tools/src/definitions/response-time-analysis.ts
|
|
810
|
-
var
|
|
905
|
+
var inputSchema18 = {
|
|
811
906
|
type: "object",
|
|
812
907
|
properties: {
|
|
813
908
|
days: { type: "number", description: "\u5206\u6790\u6700\u8FD1\u591A\u5C11\u5929\u7684\u6570\u636E\uFF0C\u9ED8\u8BA4 30" },
|
|
814
909
|
top_n: { type: "number", description: "\u8FD4\u56DE\u524D\u591A\u5C11\u540D\uFF0C\u9ED8\u8BA4 10" }
|
|
815
910
|
}
|
|
816
911
|
};
|
|
817
|
-
async function
|
|
912
|
+
async function handler18(params, context) {
|
|
818
913
|
const { locale } = context;
|
|
819
914
|
const isZh = isChineseLocale(locale);
|
|
820
915
|
const days = params.days || 30;
|
|
@@ -879,20 +974,20 @@ async function handler17(params, context) {
|
|
|
879
974
|
var responseTimeAnalysisTool = {
|
|
880
975
|
name: "response_time_analysis",
|
|
881
976
|
description: "\u5206\u6790\u7FA4\u6210\u5458\u7684\u54CD\u5E94\u901F\u5EA6\u6392\u884C\uFF0C\u57FA\u4E8E\u56DE\u590D\u95F4\u9694\u7684\u4E2D\u4F4D\u6570\u548C\u5E73\u5747\u503C\u3002",
|
|
882
|
-
inputSchema:
|
|
883
|
-
handler:
|
|
977
|
+
inputSchema: inputSchema18,
|
|
978
|
+
handler: handler18,
|
|
884
979
|
category: "analysis"
|
|
885
980
|
};
|
|
886
981
|
|
|
887
982
|
// ../../packages/tools/src/definitions/keyword-frequency.ts
|
|
888
|
-
var
|
|
983
|
+
var inputSchema19 = {
|
|
889
984
|
type: "object",
|
|
890
985
|
properties: {
|
|
891
986
|
days: { type: "number", description: "\u5206\u6790\u6700\u8FD1\u591A\u5C11\u5929\u7684\u6570\u636E\uFF0C\u9ED8\u8BA4 30" },
|
|
892
987
|
top_n: { type: "number", description: "\u8FD4\u56DE\u524D\u591A\u5C11\u4E2A\u9AD8\u9891\u8BCD\uFF0C\u9ED8\u8BA4 50" }
|
|
893
988
|
}
|
|
894
989
|
};
|
|
895
|
-
async function
|
|
990
|
+
async function handler19(params, context) {
|
|
896
991
|
const { locale, segmentText } = context;
|
|
897
992
|
const isZh = isChineseLocale(locale);
|
|
898
993
|
const days = params.days || 30;
|
|
@@ -940,8 +1035,8 @@ async function handler18(params, context) {
|
|
|
940
1035
|
var keywordFrequencyTool = {
|
|
941
1036
|
name: "keyword_frequency",
|
|
942
1037
|
description: "\u7EDF\u8BA1\u7FA4\u804A\u4E2D\u7684\u9AD8\u9891\u5173\u952E\u8BCD\uFF0C\u901A\u8FC7 NLP \u5206\u8BCD\u5206\u6790\u6D88\u606F\u5185\u5BB9\u3002",
|
|
943
|
-
inputSchema:
|
|
944
|
-
handler:
|
|
1038
|
+
inputSchema: inputSchema19,
|
|
1039
|
+
handler: handler19,
|
|
945
1040
|
category: "analysis"
|
|
946
1041
|
};
|
|
947
1042
|
|
|
@@ -1218,6 +1313,7 @@ var SHARED_TOOLS = [
|
|
|
1218
1313
|
searchSessionsTool,
|
|
1219
1314
|
getSessionMessagesTool,
|
|
1220
1315
|
getMembersTool,
|
|
1316
|
+
schemaTool,
|
|
1221
1317
|
// Analysis
|
|
1222
1318
|
memberStatsTool,
|
|
1223
1319
|
timeStatsTool,
|
|
@@ -1226,6 +1322,7 @@ var SHARED_TOOLS = [
|
|
|
1226
1322
|
getSessionSummariesTool,
|
|
1227
1323
|
responseTimeAnalysisTool,
|
|
1228
1324
|
keywordFrequencyTool,
|
|
1325
|
+
renderChartTool,
|
|
1229
1326
|
// Raw SQL
|
|
1230
1327
|
sqlQueryTool
|
|
1231
1328
|
];
|
|
@@ -1234,7 +1331,6 @@ var MCP_TOOL_REGISTRY = [
|
|
|
1234
1331
|
// MCP-specific: session discovery & schema
|
|
1235
1332
|
sessionsListTool,
|
|
1236
1333
|
sessionInfoTool,
|
|
1237
|
-
schemaTool,
|
|
1238
1334
|
// Shared core + analysis + raw SQL
|
|
1239
1335
|
...SHARED_TOOLS
|
|
1240
1336
|
];
|
|
@@ -1341,4 +1437,4 @@ export {
|
|
|
1341
1437
|
MCP_TOOL_REGISTRY,
|
|
1342
1438
|
CoreDataProvider
|
|
1343
1439
|
};
|
|
1344
|
-
//# sourceMappingURL=chunk-
|
|
1440
|
+
//# sourceMappingURL=chunk-E65ABM3C.mjs.map
|