record-safer-mcp-server 1.0.7 → 1.0.8
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/tools/markers.d.ts.map +1 -1
- package/dist/tools/markers.js +0 -6
- package/dist/tools/markers.js.map +1 -1
- package/dist/tools/monitor.d.ts +3 -2
- package/dist/tools/monitor.d.ts.map +1 -1
- package/dist/tools/monitor.js +14 -45
- package/dist/tools/monitor.js.map +1 -1
- package/dist/tools/recording.d.ts.map +1 -1
- package/dist/tools/recording.js +0 -3
- package/dist/tools/recording.js.map +1 -1
- package/dist/utils.d.ts +13 -6
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +41 -28
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../../src/tools/markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../../src/tools/markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,QA6HpD"}
|
package/dist/tools/markers.js
CHANGED
|
@@ -81,18 +81,12 @@ label 为可选参数,不提供时系统自动编号。`, { label: z.string().
|
|
|
81
81
|
id: z.string().min(1).describe("通道ID(数字字符串,来自 sessionConfig.channels[].id)/ Channel ID"),
|
|
82
82
|
name: z.string().min(1).describe("新名称(最长63字符)/ New name (max 63 chars)"),
|
|
83
83
|
}, async ({ id, name }) => {
|
|
84
|
-
const err = await checkPrecondition(client, "rename_channel");
|
|
85
|
-
if (err)
|
|
86
|
-
return { content: [{ type: "text", text: err }], isError: true };
|
|
87
84
|
return handleToolCall("rename_channel", "write", () => client.renameChannel(id, name));
|
|
88
85
|
});
|
|
89
86
|
server.tool("set_channel_color", "[录音中操作 / Recording Phase] 设置通道颜色 / Set channel color [write]。⚠️ 会修改通道显示颜色,必须经用户明确确认后才能调用。", {
|
|
90
87
|
id: z.string().min(1).describe("通道ID / Channel ID"),
|
|
91
88
|
color: z.string().min(1).describe("颜色值 / Color value"),
|
|
92
89
|
}, async ({ id, color }) => {
|
|
93
|
-
const err = await checkPrecondition(client, "set_channel_color");
|
|
94
|
-
if (err)
|
|
95
|
-
return { content: [{ type: "text", text: err }], isError: true };
|
|
96
90
|
return handleToolCall("set_channel_color", "write", () => client.setChannelColor(id, color));
|
|
97
91
|
});
|
|
98
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markers.js","sourceRoot":"","sources":["../../src/tools/markers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"markers.js","sourceRoot":"","sources":["../../src/tools/markers.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/monitor.d.ts
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* 监听/DSP 控制 Tools — 监听混音器与通道控制
|
|
3
3
|
* Monitor/DSP Control Tools — Monitor mixer and channel controls
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* 【前置条件】MCP 默认只在用户进入录音控制台(会话已初始化)后工作,
|
|
6
|
+
* 前置条件由 /api/mcp/* 端点的 ready 字段告知,无需 MCP 端额外校验。
|
|
7
|
+
* 混音工具额外检查安全模式:安全模式录音中禁止混音操作。
|
|
7
8
|
*
|
|
8
9
|
* 【MCP 高价值场景】
|
|
9
10
|
* 批量操作是 MCP 的优势所在,例如:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/tools/monitor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/tools/monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,QA8JrD"}
|
package/dist/tools/monitor.js
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* 监听/DSP 控制 Tools — 监听混音器与通道控制
|
|
3
3
|
* Monitor/DSP Control Tools — Monitor mixer and channel controls
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* 【前置条件】MCP 默认只在用户进入录音控制台(会话已初始化)后工作,
|
|
6
|
+
* 前置条件由 /api/mcp/* 端点的 ready 字段告知,无需 MCP 端额外校验。
|
|
7
|
+
* 混音工具额外检查安全模式:安全模式录音中禁止混音操作。
|
|
7
8
|
*
|
|
8
9
|
* 【MCP 高价值场景】
|
|
9
10
|
* 批量操作是 MCP 的优势所在,例如:
|
|
@@ -14,28 +15,17 @@
|
|
|
14
15
|
*/
|
|
15
16
|
import { z } from "zod";
|
|
16
17
|
import { RecordSaferClient } from "../api-client.js";
|
|
17
|
-
import { handleToolCall,
|
|
18
|
+
import { handleToolCall, checkMixPrecondition } from "../utils.js";
|
|
18
19
|
const channelIndexSchema = {
|
|
19
20
|
index: z.number().int().min(0).describe("通道索引(从 0 开始)/ Channel index (0-based)"),
|
|
20
21
|
};
|
|
21
22
|
export function registerMonitorTools(server) {
|
|
22
23
|
const client = new RecordSaferClient();
|
|
23
24
|
server.tool("get_monitor_status", "获取监听状态 / Get monitor status [read]。查看监听是否开启、输出设备等信息。", {}, async () => handleToolCall("get_monitor_status", "read", () => client.getMonitorStatus()));
|
|
24
|
-
server.tool("start_monitor",
|
|
25
|
-
⚠️
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (err)
|
|
29
|
-
return { content: [{ type: "text", text: err }], isError: true };
|
|
30
|
-
return handleToolCall("start_monitor", "recording_control", () => client.startMonitor());
|
|
31
|
-
});
|
|
32
|
-
server.tool("stop_monitor", "[录音中操作 / Recording Phase] 停止监听 / Stop monitoring [recording_control]。⚠️ 会关闭音频监听输出,必须经用户明确确认后才能调用。", {}, async () => {
|
|
33
|
-
const err = await checkPrecondition(client, "stop_monitor");
|
|
34
|
-
if (err)
|
|
35
|
-
return { content: [{ type: "text", text: err }], isError: true };
|
|
36
|
-
return handleToolCall("stop_monitor", "recording_control", () => client.stopMonitor());
|
|
37
|
-
});
|
|
38
|
-
server.tool("set_master_volume", "[录音中操作 / Recording Phase] 设置主音量 / Set master volume [write]。⚠️ 会改变监听主音量,必须经用户明确确认后才能调用。", {
|
|
25
|
+
server.tool("start_monitor", `启动监听 / Start monitoring [recording_control]。
|
|
26
|
+
⚠️ 会开启音频监听输出,必须经用户明确确认后才能调用。`, {}, async () => handleToolCall("start_monitor", "recording_control", () => client.startMonitor()));
|
|
27
|
+
server.tool("stop_monitor", "停止监听 / Stop monitoring [recording_control]。⚠️ 会关闭音频监听输出,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("stop_monitor", "recording_control", () => client.stopMonitor()));
|
|
28
|
+
server.tool("set_master_volume", "设置主音量 / Set master volume [write]。⚠️ 会改变监听主音量,必须经用户明确确认后才能调用。", {
|
|
39
29
|
volume: z.number().describe("主音量 / Master volume"),
|
|
40
30
|
pan: z
|
|
41
31
|
.number()
|
|
@@ -44,30 +34,24 @@ export function registerMonitorTools(server) {
|
|
|
44
34
|
.optional()
|
|
45
35
|
.describe("主声像 (-1.0 到 1.0) / Master pan (-1.0 to 1.0)"),
|
|
46
36
|
}, async ({ volume, pan }) => {
|
|
47
|
-
const err = await checkPrecondition(client, "set_master_volume");
|
|
48
|
-
if (err)
|
|
49
|
-
return { content: [{ type: "text", text: err }], isError: true };
|
|
50
37
|
const mixErr = await checkMixPrecondition(client, "set_master_volume");
|
|
51
38
|
if (mixErr)
|
|
52
39
|
return { content: [{ type: "text", text: mixErr }], isError: true };
|
|
53
40
|
return handleToolCall("set_master_volume", "write", () => client.setMasterVolume(volume, pan));
|
|
54
41
|
});
|
|
55
42
|
server.tool("get_mix_levels", "获取混音电平 / Get current mix levels [read]。查看各通道当前的音量、声像、静音、独奏状态。", {}, async () => handleToolCall("get_mix_levels", "read", () => client.getMixLevels()));
|
|
56
|
-
server.tool("set_channel_volume",
|
|
43
|
+
server.tool("set_channel_volume", `设置通道音量 / Set channel volume [write]。
|
|
57
44
|
⚠️ 会改变指定通道的监听音量,必须经用户明确确认后才能调用。
|
|
58
45
|
【批量提示】如果用户要求设置多个通道的音量,对每个通道分别调用此工具。`, {
|
|
59
46
|
...channelIndexSchema,
|
|
60
47
|
volume: z.number().describe("通道音量 / Channel volume"),
|
|
61
48
|
}, async ({ index, volume }) => {
|
|
62
|
-
const err = await checkPrecondition(client, "set_channel_volume");
|
|
63
|
-
if (err)
|
|
64
|
-
return { content: [{ type: "text", text: err }], isError: true };
|
|
65
49
|
const mixErr = await checkMixPrecondition(client, "set_channel_volume");
|
|
66
50
|
if (mixErr)
|
|
67
51
|
return { content: [{ type: "text", text: mixErr }], isError: true };
|
|
68
52
|
return handleToolCall("set_channel_volume", "write", () => client.setChannelVolume(index, volume));
|
|
69
53
|
});
|
|
70
|
-
server.tool("set_channel_pan", "
|
|
54
|
+
server.tool("set_channel_pan", "设置通道声像 / Set channel pan [write]。⚠️ 会改变指定通道的声像位置,必须经用户明确确认后才能调用。", {
|
|
71
55
|
...channelIndexSchema,
|
|
72
56
|
pan: z
|
|
73
57
|
.number()
|
|
@@ -75,51 +59,36 @@ export function registerMonitorTools(server) {
|
|
|
75
59
|
.max(1)
|
|
76
60
|
.describe("通道声像 (-1.0 到 1.0) / Channel pan (-1.0 to 1.0)"),
|
|
77
61
|
}, async ({ index, pan }) => {
|
|
78
|
-
const err = await checkPrecondition(client, "set_channel_pan");
|
|
79
|
-
if (err)
|
|
80
|
-
return { content: [{ type: "text", text: err }], isError: true };
|
|
81
62
|
const mixErr = await checkMixPrecondition(client, "set_channel_pan");
|
|
82
63
|
if (mixErr)
|
|
83
64
|
return { content: [{ type: "text", text: mixErr }], isError: true };
|
|
84
65
|
return handleToolCall("set_channel_pan", "write", () => client.setChannelPan(index, pan));
|
|
85
66
|
});
|
|
86
|
-
server.tool("toggle_channel_solo",
|
|
67
|
+
server.tool("toggle_channel_solo", `切换通道独奏 / Toggle channel solo [write]。
|
|
87
68
|
⚠️ 会改变通道独奏状态,必须经用户明确确认后才能调用。
|
|
88
69
|
【提示】"只听通道 X" = 对通道 X 启用 solo。`, channelIndexSchema, async ({ index }) => {
|
|
89
|
-
const err = await checkPrecondition(client, "toggle_channel_solo");
|
|
90
|
-
if (err)
|
|
91
|
-
return { content: [{ type: "text", text: err }], isError: true };
|
|
92
70
|
const mixErr = await checkMixPrecondition(client, "toggle_channel_solo");
|
|
93
71
|
if (mixErr)
|
|
94
72
|
return { content: [{ type: "text", text: mixErr }], isError: true };
|
|
95
73
|
return handleToolCall("toggle_channel_solo", "write", () => client.toggleChannelSolo(index));
|
|
96
74
|
});
|
|
97
|
-
server.tool("toggle_channel_mute",
|
|
75
|
+
server.tool("toggle_channel_mute", `切换通道静音 / Toggle channel mute [write]。
|
|
98
76
|
⚠️ 会改变通道静音状态,必须经用户明确确认后才能调用。`, channelIndexSchema, async ({ index }) => {
|
|
99
|
-
const err = await checkPrecondition(client, "toggle_channel_mute");
|
|
100
|
-
if (err)
|
|
101
|
-
return { content: [{ type: "text", text: err }], isError: true };
|
|
102
77
|
const mixErr = await checkMixPrecondition(client, "toggle_channel_mute");
|
|
103
78
|
if (mixErr)
|
|
104
79
|
return { content: [{ type: "text", text: mixErr }], isError: true };
|
|
105
80
|
return handleToolCall("toggle_channel_mute", "write", () => client.toggleChannelMute(index));
|
|
106
81
|
});
|
|
107
|
-
server.tool("set_channel_ms_process", "
|
|
82
|
+
server.tool("set_channel_ms_process", "设置通道 M/S 处理 / Set channel M/S processing [write]。⚠️ 会改变通道的 Mid/Side 处理模式,必须经用户明确确认后才能调用。", {
|
|
108
83
|
...channelIndexSchema,
|
|
109
84
|
enabled: z.boolean().describe("是否启用 / Enable or disable"),
|
|
110
85
|
}, async ({ index, enabled }) => {
|
|
111
|
-
const err = await checkPrecondition(client, "set_channel_ms_process");
|
|
112
|
-
if (err)
|
|
113
|
-
return { content: [{ type: "text", text: err }], isError: true };
|
|
114
86
|
const mixErr = await checkMixPrecondition(client, "set_channel_ms_process");
|
|
115
87
|
if (mixErr)
|
|
116
88
|
return { content: [{ type: "text", text: mixErr }], isError: true };
|
|
117
89
|
return handleToolCall("set_channel_ms_process", "write", () => client.setChannelMsProcess(index, enabled));
|
|
118
90
|
});
|
|
119
|
-
server.tool("toggle_channel_phase_invert", "
|
|
120
|
-
const err = await checkPrecondition(client, "toggle_channel_phase_invert");
|
|
121
|
-
if (err)
|
|
122
|
-
return { content: [{ type: "text", text: err }], isError: true };
|
|
91
|
+
server.tool("toggle_channel_phase_invert", "切换通道相位反转 / Toggle channel phase invert [write]。⚠️ 会反转通道相位,必须经用户明确确认后才能调用。", channelIndexSchema, async ({ index }) => {
|
|
123
92
|
const mixErr = await checkMixPrecondition(client, "toggle_channel_phase_invert");
|
|
124
93
|
if (mixErr)
|
|
125
94
|
return { content: [{ type: "text", text: mixErr }], isError: true };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/tools/monitor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/tools/monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../src/tools/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../src/tools/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QAgIvD"}
|
package/dist/tools/recording.js
CHANGED
|
@@ -70,9 +70,6 @@ ready 为 false 时,告知用户:
|
|
|
70
70
|
返回后端完整的录音状态数据(含 sessionConfig、deviceHealth、powerStatus 等全部字段)。
|
|
71
71
|
一般情况下请优先使用 get_channels / get_mix / get_health / get_status 等分场景查询工具。`, {}, async () => handleToolCall("get_recording_status", "read", () => client.getRecordingStatus()));
|
|
72
72
|
server.tool("reset_session", "重置当前会话 / Reset current session [recording_control]。⚠️ 会清除当前录音会话配置,必须经用户明确确认后才能调用。", {}, async () => {
|
|
73
|
-
const err = await checkPrecondition(client, "reset_session");
|
|
74
|
-
if (err)
|
|
75
|
-
return { content: [{ type: "text", text: err }], isError: true };
|
|
76
73
|
return handleToolCall("reset_session", "recording_control", () => client.resetSession());
|
|
77
74
|
});
|
|
78
75
|
server.tool("stop_recording", `停止录音 / Stop recording [recording_control]。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recording.js","sourceRoot":"","sources":["../../src/tools/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,+BAA+B;IAC/B,MAAM,CAAC,IAAI,CACT,cAAc,EACd;;;;;;;;;;;;;wDAaoD,EACpD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CACxE,CAAC;IAEF,qCAAqC;IACrC,MAAM,CAAC,IAAI,CACT,SAAS,EACT;;;;;;;;;;;;;+BAa2B,EAC3B,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAC9D,CAAC;IAEF,+BAA+B;IAC/B,MAAM,CAAC,IAAI,CACT,YAAY,EACZ;;;;;;;;;;;;;IAaA,EACA,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CACpE,CAAC;IAEF,kCAAkC;IAClC,MAAM,CAAC,IAAI,CACT,YAAY,EACZ;;;;;;;wDAOoD,EACpD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CACpE,CAAC;IAEF,qDAAqD;IACrD,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB;;sEAEkE,EAClE,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,GAAG,EAAE,CAClD,MAAM,CAAC,kBAAkB,EAAE,CAC5B,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,mFAAmF,EACnF,EAAE,EACF,KAAK,IAAI,EAAE;QACT,
|
|
1
|
+
{"version":3,"file":"recording.js","sourceRoot":"","sources":["../../src/tools/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,+BAA+B;IAC/B,MAAM,CAAC,IAAI,CACT,cAAc,EACd;;;;;;;;;;;;;wDAaoD,EACpD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CACxE,CAAC;IAEF,qCAAqC;IACrC,MAAM,CAAC,IAAI,CACT,SAAS,EACT;;;;;;;;;;;;;+BAa2B,EAC3B,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAC9D,CAAC;IAEF,+BAA+B;IAC/B,MAAM,CAAC,IAAI,CACT,YAAY,EACZ;;;;;;;;;;;;;IAaA,EACA,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CACpE,CAAC;IAEF,kCAAkC;IAClC,MAAM,CAAC,IAAI,CACT,YAAY,EACZ;;;;;;;wDAOoD,EACpD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CACpE,CAAC;IAEF,qDAAqD;IACrD,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB;;sEAEkE,EAClE,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,GAAG,EAAE,CAClD,MAAM,CAAC,kBAAkB,EAAE,CAC5B,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,mFAAmF,EACnF,EAAE,EACF,KAAK,IAAI,EAAE;QACT,OAAO,cAAc,CAAC,eAAe,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAC/D,MAAM,CAAC,YAAY,EAAE,CACtB,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB;;;;;;;sBAOkB,EAClB,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC9D,IAAI,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnF,OAAO,cAAc,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAChE,MAAM,CAAC,aAAa,EAAE,CACvB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -17,19 +17,21 @@ export declare function logToolCall(toolName: string, permissionLevel: string):
|
|
|
17
17
|
* - 失败:返回 isError: true 和中文错误信息
|
|
18
18
|
*/
|
|
19
19
|
export declare function handleToolCall<T>(toolName: string, permissionLevel: PermissionLevel, fn: () => Promise<T>): Promise<ToolResult>;
|
|
20
|
-
export type DependencyLevel = 'none' | '
|
|
20
|
+
export type DependencyLevel = 'none' | 'recording_active';
|
|
21
21
|
/**
|
|
22
22
|
* 每个 MCP 工具的前置条件依赖层级映射
|
|
23
|
-
* - none:
|
|
24
|
-
* - session_initialized: 需要会话已初始化(deviceHealth.alive === true)
|
|
23
|
+
* - none: 无依赖,随时可调用(MCP 默认只在录音控制台工作,由后端 ready 字段告知)
|
|
25
24
|
* - recording_active: 需要录音进行中(recording === true)
|
|
26
25
|
*/
|
|
27
26
|
export declare const TOOL_DEPENDENCIES: Record<string, DependencyLevel>;
|
|
28
27
|
/**
|
|
29
28
|
* 校验 MCP 工具的前置条件是否满足
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
29
|
+
* 仅用于 recording_active 级别的工具(标记、停止录音等)
|
|
30
|
+
* 使用轻量级 /api/mcp/status 端点获取综合状态:
|
|
31
|
+
* - ready: 用户在录音控制台页面 且 会话已初始化
|
|
32
|
+
* - recording: 是否正在录音
|
|
33
|
+
*
|
|
34
|
+
* @param client - RecordSaferClient 实例
|
|
33
35
|
* @param toolName - 工具名称
|
|
34
36
|
* @returns null 表示条件满足,错误消息字符串表示条件不满足
|
|
35
37
|
*/
|
|
@@ -44,6 +46,11 @@ export declare function checkPrecondition(client: {
|
|
|
44
46
|
page: string;
|
|
45
47
|
pageStep: number;
|
|
46
48
|
}>;
|
|
49
|
+
getMcpStatus?: () => Promise<{
|
|
50
|
+
ready: boolean;
|
|
51
|
+
recording: boolean;
|
|
52
|
+
duration: number;
|
|
53
|
+
}>;
|
|
47
54
|
}, toolName: string): Promise<string | null>;
|
|
48
55
|
/**
|
|
49
56
|
* 校验混音操作的安全模式前置条件
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,GACtB,IAAI,CAKN;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,eAAe,EAChC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,UAAU,CAAC,CAcrB;AAID,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,GACtB,IAAI,CAKN;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,eAAe,EAChC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,UAAU,CAAC,CAcrB;AAID,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,kBAAkB,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAgD7D,CAAC;AAYF;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE;IACN,kBAAkB,EAAE,MAAM,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE;YAAE,KAAK,EAAE,OAAO,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACnG,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxF,EACD,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2CxB;AAmBD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAAE,EAC/E,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAaxB;AAID,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,oBAAoB,EAAE,MAAM,EAAE,EAC9B,aAAa,EAAE,MAAM,GACpB,0BAA0B,CAS5B"}
|
package/dist/utils.js
CHANGED
|
@@ -28,8 +28,7 @@ export async function handleToolCall(toolName, permissionLevel, fn) {
|
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* 每个 MCP 工具的前置条件依赖层级映射
|
|
31
|
-
* - none:
|
|
32
|
-
* - session_initialized: 需要会话已初始化(deviceHealth.alive === true)
|
|
31
|
+
* - none: 无依赖,随时可调用(MCP 默认只在录音控制台工作,由后端 ready 字段告知)
|
|
33
32
|
* - recording_active: 需要录音进行中(recording === true)
|
|
34
33
|
*/
|
|
35
34
|
export const TOOL_DEPENDENCIES = {
|
|
@@ -57,21 +56,22 @@ export const TOOL_DEPENDENCIES = {
|
|
|
57
56
|
get_download_progress: 'none',
|
|
58
57
|
list_volumes: 'none',
|
|
59
58
|
list_external_drives: 'none',
|
|
60
|
-
//
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
59
|
+
// 会话相关操作 — MCP 默认只在录音控制台(会话已初始化)后工作,
|
|
60
|
+
// 前置条件由 /api/mcp/* 端点的 ready 字段告知,无需 MCP 端额外校验
|
|
61
|
+
reset_session: 'none',
|
|
62
|
+
start_monitor: 'none',
|
|
63
|
+
stop_monitor: 'none',
|
|
64
|
+
rename_channel: 'none',
|
|
65
|
+
set_channel_color: 'none',
|
|
66
|
+
set_channel_volume: 'none',
|
|
67
|
+
set_channel_pan: 'none',
|
|
68
|
+
toggle_channel_solo: 'none',
|
|
69
|
+
toggle_channel_mute: 'none',
|
|
70
|
+
set_channel_ms_process: 'none',
|
|
71
|
+
toggle_channel_phase_invert: 'none',
|
|
72
|
+
set_master_volume: 'none',
|
|
73
|
+
subscribe_levels: 'none',
|
|
74
|
+
unsubscribe_levels: 'none',
|
|
75
75
|
// 需要录音进行中
|
|
76
76
|
add_marker: 'recording_active',
|
|
77
77
|
stop_recording: 'recording_active',
|
|
@@ -91,9 +91,12 @@ const RECORDING_CONSOLE_PAGES = new Set([
|
|
|
91
91
|
]);
|
|
92
92
|
/**
|
|
93
93
|
* 校验 MCP 工具的前置条件是否满足
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
94
|
+
* 仅用于 recording_active 级别的工具(标记、停止录音等)
|
|
95
|
+
* 使用轻量级 /api/mcp/status 端点获取综合状态:
|
|
96
|
+
* - ready: 用户在录音控制台页面 且 会话已初始化
|
|
97
|
+
* - recording: 是否正在录音
|
|
98
|
+
*
|
|
99
|
+
* @param client - RecordSaferClient 实例
|
|
97
100
|
* @param toolName - 工具名称
|
|
98
101
|
* @returns null 表示条件满足,错误消息字符串表示条件不满足
|
|
99
102
|
*/
|
|
@@ -101,7 +104,23 @@ export async function checkPrecondition(client, toolName) {
|
|
|
101
104
|
const level = TOOL_DEPENDENCIES[toolName] || 'none';
|
|
102
105
|
if (level === 'none')
|
|
103
106
|
return null;
|
|
104
|
-
//
|
|
107
|
+
// 优先使用轻量级 /api/mcp/status(已包含页面+会话状态的综合判断)
|
|
108
|
+
if (client.getMcpStatus) {
|
|
109
|
+
try {
|
|
110
|
+
const status = await client.getMcpStatus();
|
|
111
|
+
if (!status.ready) {
|
|
112
|
+
return '用户当前不在录音控制台页面或会话未初始化。由于 DADAO Engine 的安全架构设计,请先在 Record Safer Pro 界面上完成设备选择和参数配置,进入录音控制台界面后,AI 助手才可以协助您进行录音操作。';
|
|
113
|
+
}
|
|
114
|
+
if (level === 'recording_active' && !status.recording) {
|
|
115
|
+
return '当前未在录音中。请先在 Record Safer Pro 界面上手动开始录音。';
|
|
116
|
+
}
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
// getMcpStatus 失败时回退到旧逻辑
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// 回退逻辑:使用 getUIState + getRecordingStatus(兼容旧版后端)
|
|
105
124
|
if (client.getUIState) {
|
|
106
125
|
try {
|
|
107
126
|
const uiState = await client.getUIState();
|
|
@@ -110,16 +129,10 @@ export async function checkPrecondition(client, toolName) {
|
|
|
110
129
|
}
|
|
111
130
|
}
|
|
112
131
|
catch {
|
|
113
|
-
// UI
|
|
132
|
+
// UI 状态查询失败时,回退到仅检查后端状态
|
|
114
133
|
}
|
|
115
134
|
}
|
|
116
|
-
// 步骤 2: 检查后端录音/会话状态
|
|
117
135
|
const status = await client.getRecordingStatus();
|
|
118
|
-
if (level === 'session_initialized') {
|
|
119
|
-
if (!status.deviceHealth?.alive) {
|
|
120
|
-
return '会话未初始化。请先在 Record Safer Pro 界面上完成设备选择和参数配置,进入录音控制台界面。';
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
136
|
if (level === 'recording_active') {
|
|
124
137
|
if (!status.recording) {
|
|
125
138
|
return '当前未在录音中。请先在 Record Safer Pro 界面上手动开始录音。';
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,QAAgB,EAChB,eAAuB;IAEvB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,CAAC,KAAK,CACX,IAAI,SAAS,gBAAgB,QAAQ,iBAAiB,eAAe,GAAG,CACzE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,eAAgC,EAChC,EAAoB;IAEpB,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,EAAE,CAAC;YACrD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAMD
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED