record-safer-mcp-server 1.0.0 → 1.0.1

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/README.md CHANGED
@@ -1,27 +1,40 @@
1
1
  # Record Safer Pro MCP Server
2
2
 
3
- [Record Safer Pro](https://www.dadaoaudio.com) 的 Model Context Protocol (MCP) 服务端,让 AI 客户端(如 Claude Desktop、Kiro 等)能够直接控制专业多通道录音软件。
3
+ [Record Safer Pro](https://www.dadaoaudio.com) 的 AI 接口服务,基于 [Model Context Protocol (MCP)](https://modelcontextprotocol.io) 标准。让 Claude、Kiro、Cursor 等 AI 助手直接控制你的专业多通道录音软件。
4
4
 
5
- **DADAO dsp** 开发维护。
5
+ **北京大道创响科技有限公司** 开发。
6
6
 
7
- ## 功能
7
+ ---
8
8
 
9
- 通过 MCP 协议提供以下能力:
9
+ ## 前置条件
10
+
11
+ - **Node.js >= 18**([下载地址](https://nodejs.org))
12
+ - **Record Safer Pro** 桌面应用正在运行
13
+
14
+ ## 安装方式
15
+
16
+ ### 方式一:在 AI 客户端中配置(推荐)
10
17
 
11
- - **设备管理** 列出音频输入/输出设备,查询设备信号与缓冲区信息
12
- - **录音控制** — 初始化会话、开始/停止录音、文件分割
13
- - **电平监控** — 实时获取通道电平数据(dBFS)
14
- - **监听混音** — 启停监听、调节通道音量/声像/独奏/静音/相位反转/M-S 处理
15
- - **标记管理** — 添加、重命名、同步录音标记
16
- - **存储管理** — 列出存储卷和外部驱动器、验证存储路径
17
- - **系统信息** — 获取系统状态、磁盘空间、检查更新
18
- - **设置管理** — 读取和更新音频格式、输出路径等系统设置
18
+ 无需手动安装任何东西,只需在你使用的 AI 客户端配置文件中添加 MCP 服务器配置,客户端会自动下载运行。
19
19
 
20
- ## 安装与使用
20
+ #### Claude Desktop
21
+
22
+ 编辑配置文件(macOS 路径:`~/Library/Application Support/Claude/claude_desktop_config.json`):
23
+
24
+ ```json
25
+ {
26
+ "mcpServers": {
27
+ "record-safer-pro": {
28
+ "command": "npx",
29
+ "args": ["-y", "record-safer-mcp-server"]
30
+ }
31
+ }
32
+ }
33
+ ```
21
34
 
22
- ### 通过 npx 直接运行(推荐)
35
+ #### Kiro
23
36
 
24
- 无需安装,在 MCP 客户端配置中添加:
37
+ 编辑项目目录下的 `.kiro/settings/mcp.json`:
25
38
 
26
39
  ```json
27
40
  {
@@ -34,34 +47,99 @@
34
47
  }
35
48
  ```
36
49
 
37
- ### 全局安装
50
+ #### Cursor
51
+
52
+ 在 Settings → MCP 中添加,或编辑 `.cursor/mcp.json`:
53
+
54
+ ```json
55
+ {
56
+ "mcpServers": {
57
+ "record-safer-pro": {
58
+ "command": "npx",
59
+ "args": ["-y", "record-safer-mcp-server"]
60
+ }
61
+ }
62
+ }
63
+ ```
64
+
65
+ 配置完成后重启 AI 客户端即可。
66
+
67
+ ### 方式二:全局安装
38
68
 
39
69
  ```bash
40
70
  npm install -g record-safer-mcp-server
41
- record-safer-mcp-server
42
71
  ```
43
72
 
44
- ## 前置条件
73
+ 安装后将 AI 客户端配置中的 command 改为:
74
+
75
+ ```json
76
+ {
77
+ "mcpServers": {
78
+ "record-safer-pro": {
79
+ "command": "record-safer-mcp-server"
80
+ }
81
+ }
82
+ }
83
+ ```
84
+
85
+ ## 功能一览
86
+
87
+ 安装后,AI 助手可以帮你完成以下操作:
45
88
 
46
- - Node.js >= 18
47
- - Record Safer Pro 桌面应用正在运行(提供后端 HTTP API)
89
+ | 类别 | 能力 |
90
+ |------|------|
91
+ | 🎙️ 设备管理 | 列出音频输入/输出设备,查询设备信号与缓冲区信息 |
92
+ | ⏺️ 录音控制 | 初始化录音会话、开始/停止录音、文件分割 |
93
+ | 📊 电平监控 | 实时获取各通道电平数据(dBFS) |
94
+ | 🎧 监听混音 | 启停监听、调节音量/声像/独奏/静音/相位反转/M-S 处理 |
95
+ | 🏷️ 标记管理 | 添加、重命名、同步录音标记 |
96
+ | 💾 存储管理 | 查看存储卷和外部驱动器、验证存储路径 |
97
+ | ⚙️ 系统设置 | 读取和更新音频格式、输出路径等配置 |
98
+ | 🖥️ 系统信息 | 获取系统状态、磁盘空间、检查软件更新 |
48
99
 
49
- ## 端口发现
100
+ ## 使用示例
50
101
 
51
- MCP Server 会自动发现 Record Safer Pro 后端的实际端口:
102
+ 配置完成后,你可以直接用自然语言让 AI 操作 Record Safer Pro
52
103
 
53
- 1. 读取 `~/.record_safer/backend_port` 端口文件(应用启动时自动写入)
54
- 2. 回退到环境变量 `RECORD_SAFER_URL`
55
- 3. 回退到默认地址 `http://127.0.0.1:8080`
104
+ - "帮我列出当前所有音频输入设备"
105
+ - "用 48kHz / 24bit 初始化一个录音会话"
106
+ - "开始录音"
107
+ - "在当前位置添加一个标记,命名为'第二段'"
108
+ - "停止录音"
109
+ - "查看磁盘剩余空间"
56
110
 
57
- 通常无需手动配置,启动 Record Safer Pro 后直接使用即可。
111
+ ## 端口自动发现
58
112
 
59
- ## 环境变量
113
+ MCP Server 会自动发现 Record Safer Pro 后端的连接地址,通常无需手动配置:
60
114
 
61
- | 变量 | 说明 | 默认值 |
62
- |------|------|--------|
63
- | `RECORD_SAFER_URL` | 后端地址(仅在端口文件不存在时生效) | `http://127.0.0.1:8080` |
115
+ 1. 自动读取 `~/.record_safer/backend_port`(应用启动时写入)
116
+ 2. 如果文件不存在,检查环境变量 `RECORD_SAFER_URL`
117
+ 3. 都没有则使用默认地址 `http://127.0.0.1:8080`
118
+
119
+ ## 常见问题
120
+
121
+ **Q: AI 提示无法连接 Record Safer Pro?**
122
+ 确保 Record Safer Pro 桌面应用已启动。MCP Server 需要后端 HTTP 服务才能工作。
123
+
124
+ **Q: 提示找不到 npx 命令?**
125
+ 需要安装 Node.js >= 18。访问 https://nodejs.org 下载安装。
126
+
127
+ **Q: 端口不是 8080 怎么办?**
128
+ 正常情况下不需要手动处理,应用会自动写入端口文件。如果确实需要手动指定,设置环境变量:
129
+ ```json
130
+ {
131
+ "mcpServers": {
132
+ "record-safer-pro": {
133
+ "command": "npx",
134
+ "args": ["-y", "record-safer-mcp-server"],
135
+ "env": {
136
+ "RECORD_SAFER_URL": "http://127.0.0.1:你的端口号"
137
+ }
138
+ }
139
+ }
140
+ }
141
+ ```
64
142
 
65
- ## 许可证
143
+ ---
66
144
 
67
145
  Copyright © 北京大道创响科技有限公司 (Beijing Dadao Chuangxiang Technology Co., Ltd.)
package/dist/index.js CHANGED
@@ -18,7 +18,16 @@ import { registerPrompts } from "./prompts/index.js";
18
18
  const server = new McpServer({
19
19
  name: "record-safer-pro",
20
20
  version: "1.0.0",
21
- description: "Record Safer Pro MCP Server — 专业多通道录音软件 AI 接口 / Professional multi-channel recording software AI interface",
21
+ description: `Record Safer Pro MCP Server — DADAO 大道声学(北京大道创响科技有限公司)开发的专业录音安全引擎 AI 接口。
22
+
23
+ Record Safer Pro 是一款专业多通道录音安全软件,专为录音棚、现场录音、广播等场景设计。核心功能包括:
24
+ - 多通道高品质录音(支持 WAV/CAF,最高 32-bit Float)
25
+ - 安全模式录音(Safe Mode):录音过程中禁用非必要计算,确保录音稳定性
26
+ - 实时电平监控与监听混音(音量/声像/独奏/静音/M-S 处理/相位反转)
27
+ - 录音标记管理、文件分割、存储健康检查
28
+ - 设备信号分析与缓冲区管理
29
+
30
+ 重要提示:本 MCP Server 连接的是用户本地正在运行的 Record Safer Pro 后端服务。所有工具仅在用户明确要求时才应调用,请勿主动探测或批量调用。特别是 [write] 和 [recording_control] 类工具会改变软件状态,必须经用户确认。`,
22
31
  });
23
32
  registerDeviceTools(server);
24
33
  registerLevelTools(server);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,OAAO;IAChB,WAAW,EACT,4GAA4G;CAC/G,CAAC,CAAC;AAEH,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC5B,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC3B,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC/B,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAC9B,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC5B,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC5B,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC1B,eAAe,CAAC,MAAM,CAAC,CAAC;AAExB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE;;;;;;;;;0IAS2H;CACzI,CAAC,CAAC;AAEH,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC5B,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC3B,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC/B,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAC9B,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC5B,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC5B,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC1B,eAAe,CAAC,MAAM,CAAC,CAAC;AAExB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../src/tools/devices.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,QAkEpD"}
1
+ {"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../src/tools/devices.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,QA4DpD"}
@@ -10,17 +10,11 @@ const deviceIdSchema = {
10
10
  };
11
11
  export function registerDeviceTools(server) {
12
12
  const client = new RecordSaferClient();
13
- // list_audio_devices [read] 无参数
14
- server.tool("list_audio_devices", "列出所有音频输入设备 / List all audio input devices [read]", {}, async () => handleToolCall("list_audio_devices", "read", () => client.listDevices()));
15
- // list_output_devices [read] 无参数
16
- server.tool("list_output_devices", "列出所有音频输出设备 / List all audio output devices [read]", {}, async () => handleToolCall("list_output_devices", "read", () => client.listOutputDevices()));
17
- // get_buffer_sizes [read] 需要 deviceId
18
- server.tool("get_buffer_sizes", "获取设备支持的缓冲区大小 / Get supported buffer sizes for a device [read]", deviceIdSchema, async ({ deviceId }) => handleToolCall("get_buffer_sizes", "read", () => client.getBufferSizes(deviceId)));
19
- // get_device_signals [read] — 需要 deviceId
20
- server.tool("get_device_signals", "获取设备信号信息 / Get device signal information [read]", deviceIdSchema, async ({ deviceId }) => handleToolCall("get_device_signals", "read", () => client.getDeviceSignals(deviceId)));
21
- // get_device_levels [read] — 需要 deviceId
22
- server.tool("get_device_levels", "获取设备实时电平数据 / Get real-time device level data in dBFS [read]", deviceIdSchema, async ({ deviceId }) => handleToolCall("get_device_levels", "read", () => client.getDeviceLevels(deviceId)));
23
- // stop_level_monitoring [write] — 无参数
24
- server.tool("stop_level_monitoring", "停止电平监控 / Stop level monitoring [write]", {}, async () => handleToolCall("stop_level_monitoring", "write", () => client.stopLevelMonitoring()));
13
+ server.tool("list_audio_devices", "列出所有音频输入设备 / List all audio input devices [read]。仅在用户明确要求查看设备列表时调用。", {}, async () => handleToolCall("list_audio_devices", "read", () => client.listDevices()));
14
+ server.tool("list_output_devices", "列出所有音频输出设备 / List all audio output devices [read]。仅在用户明确要求查看输出设备时调用。", {}, async () => handleToolCall("list_output_devices", "read", () => client.listOutputDevices()));
15
+ server.tool("get_buffer_sizes", "获取设备支持的缓冲区大小 / Get supported buffer sizes for a device [read]。仅在用户明确要求时调用。", deviceIdSchema, async ({ deviceId }) => handleToolCall("get_buffer_sizes", "read", () => client.getBufferSizes(deviceId)));
16
+ server.tool("get_device_signals", "获取设备信号信息 / Get device signal information [read]。仅在用户明确要求时调用。", deviceIdSchema, async ({ deviceId }) => handleToolCall("get_device_signals", "read", () => client.getDeviceSignals(deviceId)));
17
+ server.tool("get_device_levels", "获取设备实时电平数据 / Get real-time device level data in dBFS [read]。仅在用户明确要求查看电平时调用。", deviceIdSchema, async ({ deviceId }) => handleToolCall("get_device_levels", "read", () => client.getDeviceLevels(deviceId)));
18
+ server.tool("stop_level_monitoring", "停止电平监控 / Stop level monitoring [write]。⚠️ 会改变监控状态,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("stop_level_monitoring", "write", () => client.stopLevelMonitoring()));
25
19
  }
26
20
  //# sourceMappingURL=devices.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/tools/devices.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,cAAc,GAAG;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CACzD,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,kCAAkC;IAClC,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,kDAAkD,EAClD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAC3E,CAAC;IAEF,mCAAmC;IACnC,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,mDAAmD,EACnD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,qBAAqB,EAAE,MAAM,EAAE,GAAG,EAAE,CACjD,MAAM,CAAC,iBAAiB,EAAE,CAC3B,CACJ,CAAC;IAEF,wCAAwC;IACxC,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,+DAA+D,EAC/D,cAAc,EACd,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CACrB,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,CAC9C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAChC,CACJ,CAAC;IAEF,0CAA0C;IAC1C,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,iDAAiD,EACjD,cAAc,EACd,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CACrB,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAE,CAChD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAClC,CACJ,CAAC;IAEF,yCAAyC;IACzC,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,6DAA6D,EAC7D,cAAc,EACd,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CACrB,cAAc,CAAC,mBAAmB,EAAE,MAAM,EAAE,GAAG,EAAE,CAC/C,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CACjC,CACJ,CAAC;IAEF,sCAAsC;IACtC,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,wCAAwC,EACxC,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,uBAAuB,EAAE,OAAO,EAAE,GAAG,EAAE,CACpD,MAAM,CAAC,mBAAmB,EAAE,CAC7B,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/tools/devices.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,cAAc,GAAG;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CACzD,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,qEAAqE,EACrE,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAC3E,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,sEAAsE,EACtE,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,qBAAqB,EAAE,MAAM,EAAE,GAAG,EAAE,CACjD,MAAM,CAAC,iBAAiB,EAAE,CAC3B,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,4EAA4E,EAC5E,cAAc,EACd,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CACrB,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,CAC9C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAChC,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,8DAA8D,EAC9D,cAAc,EACd,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CACrB,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAE,CAChD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAClC,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,8EAA8E,EAC9E,cAAc,EACd,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CACrB,cAAc,CAAC,mBAAmB,EAAE,MAAM,EAAE,GAAG,EAAE,CAC/C,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CACjC,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,mEAAmE,EACnE,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,uBAAuB,EAAE,OAAO,EAAE,GAAG,EAAE,CACpD,MAAM,CAAC,mBAAmB,EAAE,CAC7B,CACJ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"levels.d.ts","sourceRoot":"","sources":["../../src/tools/levels.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,QA8CnD"}
1
+ {"version":3,"file":"levels.d.ts","sourceRoot":"","sources":["../../src/tools/levels.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,QA0CnD"}
@@ -6,13 +6,9 @@ import { RecordSaferClient } from "../api-client.js";
6
6
  import { handleToolCall } from "../utils.js";
7
7
  export function registerLevelTools(server) {
8
8
  const client = new RecordSaferClient();
9
- // subscribe_levels [write] 无参数
10
- server.tool("subscribe_levels", "订阅电平更新 / Subscribe to WebSocket level updates [write]", {}, async () => handleToolCall("subscribe_levels", "write", () => client.subscribeLevels()));
11
- // unsubscribe_levels [write] 无参数
12
- server.tool("unsubscribe_levels", "取消订阅电平更新 / Unsubscribe from level updates [write]", {}, async () => handleToolCall("unsubscribe_levels", "write", () => client.unsubscribeLevels()));
13
- // disable_level_callback [write] — 无参数
14
- server.tool("disable_level_callback", "禁用电平计算(安全模式)/ Disable level calculation (Safe Mode) [write]", {}, async () => handleToolCall("disable_level_callback", "write", () => client.disableLevelCallback()));
15
- // enable_level_callback [write] — 无参数
16
- server.tool("enable_level_callback", "启用电平计算 / Enable level calculation [write]", {}, async () => handleToolCall("enable_level_callback", "write", () => client.enableLevelCallback()));
9
+ server.tool("subscribe_levels", "订阅电平更新 / Subscribe to WebSocket level updates [write]。⚠️ 会开启电平数据流,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("subscribe_levels", "write", () => client.subscribeLevels()));
10
+ server.tool("unsubscribe_levels", "取消订阅电平更新 / Unsubscribe from level updates [write]。⚠️ 会停止电平数据流,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("unsubscribe_levels", "write", () => client.unsubscribeLevels()));
11
+ server.tool("disable_level_callback", "禁用电平计算(安全模式)/ Disable level calculation (Safe Mode) [write]。⚠️ 会禁用电平计算以提升录音稳定性,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("disable_level_callback", "write", () => client.disableLevelCallback()));
12
+ server.tool("enable_level_callback", "启用电平计算 / Enable level calculation [write]。⚠️ 会启用电平计算,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("enable_level_callback", "write", () => client.enableLevelCallback()));
17
13
  }
18
14
  //# sourceMappingURL=levels.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"levels.js","sourceRoot":"","sources":["../../src/tools/levels.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,iCAAiC;IACjC,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,uDAAuD,EACvD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,kBAAkB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC/C,MAAM,CAAC,eAAe,EAAE,CACzB,CACJ,CAAC;IAEF,mCAAmC;IACnC,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,mDAAmD,EACnD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,oBAAoB,EAAE,OAAO,EAAE,GAAG,EAAE,CACjD,MAAM,CAAC,iBAAiB,EAAE,CAC3B,CACJ,CAAC;IAEF,uCAAuC;IACvC,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,6DAA6D,EAC7D,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,wBAAwB,EAAE,OAAO,EAAE,GAAG,EAAE,CACrD,MAAM,CAAC,oBAAoB,EAAE,CAC9B,CACJ,CAAC;IAEF,sCAAsC;IACtC,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,2CAA2C,EAC3C,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,uBAAuB,EAAE,OAAO,EAAE,GAAG,EAAE,CACpD,MAAM,CAAC,mBAAmB,EAAE,CAC7B,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"levels.js","sourceRoot":"","sources":["../../src/tools/levels.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,mFAAmF,EACnF,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,kBAAkB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC/C,MAAM,CAAC,eAAe,EAAE,CACzB,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,+EAA+E,EAC/E,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,oBAAoB,EAAE,OAAO,EAAE,GAAG,EAAE,CACjD,MAAM,CAAC,iBAAiB,EAAE,CAC3B,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,gGAAgG,EAChG,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,wBAAwB,EAAE,OAAO,EAAE,GAAG,EAAE,CACrD,MAAM,CAAC,oBAAoB,EAAE,CAC9B,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,sEAAsE,EACtE,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,uBAAuB,EAAE,OAAO,EAAE,GAAG,EAAE,CACpD,MAAM,CAAC,mBAAmB,EAAE,CAC7B,CACJ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../../src/tools/markers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,QAyFpD"}
1
+ {"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../../src/tools/markers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,QAiFpD"}
@@ -7,28 +7,20 @@ import { RecordSaferClient } from "../api-client.js";
7
7
  import { handleToolCall } from "../utils.js";
8
8
  export function registerMarkerTools(server) {
9
9
  const client = new RecordSaferClient();
10
- // list_tracks [read] 无参数
11
- server.tool("list_tracks", "列出可用轨道 / List available tracks [read]", {}, async () => handleToolCall("list_tracks", "read", () => client.listTracks()));
12
- // stop_track [write] 需要 trackId
13
- server.tool("stop_track", "停止轨道 / Stop a track [write]", { trackId: z.string().min(1).describe("轨道ID / Track ID") }, async ({ trackId }) => handleToolCall("stop_track", "write", () => client.stopTrack(trackId)));
14
- // list_markers [read] 无参数
15
- server.tool("list_markers", "列出所有标记 / List all markers [read]", {}, async () => handleToolCall("list_markers", "read", () => client.listMarkers()));
16
- // add_marker [write] — 可选 label
17
- server.tool("add_marker", "添加标记 / Add a marker [write]", { label: z.string().optional().describe("标记名称 / Marker label") }, async ({ label }) => handleToolCall("add_marker", "write", () => client.addMarker(label)));
18
- // sync_markers [write] — 无参数
19
- server.tool("sync_markers", "同步标记 / Sync markers [write]", {}, async () => handleToolCall("sync_markers", "write", () => client.syncMarkers()));
20
- // rename_marker [write] — 需要 id 和 name
21
- server.tool("rename_marker", "重命名标记 / Rename a marker [write]", {
10
+ server.tool("list_tracks", "列出可用轨道 / List available tracks [read]。仅在用户明确要求查看轨道列表时调用。", {}, async () => handleToolCall("list_tracks", "read", () => client.listTracks()));
11
+ server.tool("stop_track", "停止轨道 / Stop a track [write]。⚠️ 会停止指定轨道,必须经用户明确确认后才能调用。", { trackId: z.string().min(1).describe("轨道ID / Track ID") }, async ({ trackId }) => handleToolCall("stop_track", "write", () => client.stopTrack(trackId)));
12
+ server.tool("list_markers", "列出所有标记 / List all markers [read]。仅在用户明确要求查看标记列表时调用。", {}, async () => handleToolCall("list_markers", "read", () => client.listMarkers()));
13
+ server.tool("add_marker", "添加标记 / Add a marker [write]。⚠️ 会在当前录音位置添加标记点,必须经用户明确确认后才能调用。", { label: z.string().optional().describe("标记名称 / Marker label") }, async ({ label }) => handleToolCall("add_marker", "write", () => client.addMarker(label)));
14
+ server.tool("sync_markers", "同步标记 / Sync markers [write]。⚠️ 会同步标记数据,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("sync_markers", "write", () => client.syncMarkers()));
15
+ server.tool("rename_marker", "重命名标记 / Rename a marker [write]。⚠️ 会修改标记名称,必须经用户明确确认后才能调用。", {
22
16
  id: z.string().min(1).describe("标记ID / Marker ID"),
23
17
  name: z.string().min(1).describe("新名称 / New name"),
24
18
  }, async ({ id, name }) => handleToolCall("rename_marker", "write", () => client.renameMarker(id, name)));
25
- // rename_channel [write] 需要 id 和 name
26
- server.tool("rename_channel", "重命名通道 / Rename a channel [write]", {
19
+ server.tool("rename_channel", "重命名通道 / Rename a channel [write]。⚠️ 会修改通道名称,必须经用户明确确认后才能调用。", {
27
20
  id: z.string().min(1).describe("通道ID / Channel ID"),
28
21
  name: z.string().min(1).describe("新名称 / New name"),
29
22
  }, async ({ id, name }) => handleToolCall("rename_channel", "write", () => client.renameChannel(id, name)));
30
- // set_channel_color [write] 需要 id 和 color
31
- server.tool("set_channel_color", "设置通道颜色 / Set channel color [write]", {
23
+ server.tool("set_channel_color", "设置通道颜色 / Set channel color [write]。⚠️ 会修改通道显示颜色,必须经用户明确确认后才能调用。", {
32
24
  id: z.string().min(1).describe("通道ID / Channel ID"),
33
25
  color: z.string().min(1).describe("颜色值 / Color value"),
34
26
  }, async ({ id, color }) => handleToolCall("set_channel_color", "write", () => client.setChannelColor(id, color)));
@@ -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":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,MAAM,CAAC,IAAI,CACT,aAAa,EACb,0DAA0D,EAC1D,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CACnE,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,wDAAwD,EACxD,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,EAC1D,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CACpB,cAAc,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CACzE,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,qDAAqD,EACrD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CACrE,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,8DAA8D,EAC9D,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,EAChE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAClB,cAAc,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CACvE,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,wDAAwD,EACxD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CACtE,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,4DAA4D,EAC5D;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAClD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KACnD,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CACrB,cAAc,CAAC,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAC5C,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAC9B,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,6DAA6D,EAC7D;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KACnD,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CACrB,cAAc,CAAC,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC7C,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAC/B,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,iEAAiE,EACjE;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KACvD,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACtB,cAAc,CAAC,mBAAmB,EAAE,OAAO,EAAE,GAAG,EAAE,CAChD,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,CAClC,CACJ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/tools/monitor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,QAuIrD"}
1
+ {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/tools/monitor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,QAmIrD"}
@@ -10,11 +10,10 @@ const channelIndexSchema = {
10
10
  };
11
11
  export function registerMonitorTools(server) {
12
12
  const client = new RecordSaferClient();
13
- // ===== 监听状态 =====
14
- server.tool("get_monitor_status", "获取监听状态 / Get monitor status [read]", {}, async () => handleToolCall("get_monitor_status", "read", () => client.getMonitorStatus()));
15
- server.tool("start_monitor", "启动监听 / Start monitoring [recording_control]", {}, async () => handleToolCall("start_monitor", "recording_control", () => client.startMonitor()));
16
- server.tool("stop_monitor", "停止监听 / Stop monitoring [recording_control]", {}, async () => handleToolCall("stop_monitor", "recording_control", () => client.stopMonitor()));
17
- server.tool("set_master_volume", "设置主音量 / Set master volume [write]", {
13
+ server.tool("get_monitor_status", "获取监听状态 / Get monitor status [read]。仅在用户明确要求查看监听状态时调用。", {}, async () => handleToolCall("get_monitor_status", "read", () => client.getMonitorStatus()));
14
+ server.tool("start_monitor", "启动监听 / Start monitoring [recording_control]。⚠️ 会开启音频监听输出,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("start_monitor", "recording_control", () => client.startMonitor()));
15
+ server.tool("stop_monitor", "停止监听 / Stop monitoring [recording_control]。⚠️ 会关闭音频监听输出,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("stop_monitor", "recording_control", () => client.stopMonitor()));
16
+ server.tool("set_master_volume", "设置主音量 / Set master volume [write]。⚠️ 会改变监听主音量,必须经用户明确确认后才能调用。", {
18
17
  volume: z.number().describe("主音量 / Master volume"),
19
18
  pan: z
20
19
  .number()
@@ -23,13 +22,12 @@ export function registerMonitorTools(server) {
23
22
  .optional()
24
23
  .describe("主声像 (-1.0 到 1.0) / Master pan (-1.0 to 1.0)"),
25
24
  }, async ({ volume, pan }) => handleToolCall("set_master_volume", "write", () => client.setMasterVolume(volume, pan)));
26
- server.tool("get_mix_levels", "获取混音电平 / Get current mix levels [read]", {}, async () => handleToolCall("get_mix_levels", "read", () => client.getMixLevels()));
27
- // ===== 通道控制 =====
28
- server.tool("set_channel_volume", "设置通道音量 / Set channel volume [write]", {
25
+ server.tool("get_mix_levels", "获取混音电平 / Get current mix levels [read]。仅在用户明确要求查看混音电平时调用。", {}, async () => handleToolCall("get_mix_levels", "read", () => client.getMixLevels()));
26
+ server.tool("set_channel_volume", "设置通道音量 / Set channel volume [write]。⚠️ 会改变指定通道的监听音量,必须经用户明确确认后才能调用。", {
29
27
  ...channelIndexSchema,
30
28
  volume: z.number().describe("通道音量 / Channel volume"),
31
29
  }, async ({ index, volume }) => handleToolCall("set_channel_volume", "write", () => client.setChannelVolume(index, volume)));
32
- server.tool("set_channel_pan", "设置通道声像 / Set channel pan [write]", {
30
+ server.tool("set_channel_pan", "设置通道声像 / Set channel pan [write]。⚠️ 会改变指定通道的声像位置,必须经用户明确确认后才能调用。", {
33
31
  ...channelIndexSchema,
34
32
  pan: z
35
33
  .number()
@@ -37,12 +35,12 @@ export function registerMonitorTools(server) {
37
35
  .max(1)
38
36
  .describe("通道声像 (-1.0 到 1.0) / Channel pan (-1.0 to 1.0)"),
39
37
  }, async ({ index, pan }) => handleToolCall("set_channel_pan", "write", () => client.setChannelPan(index, pan)));
40
- server.tool("toggle_channel_solo", "切换通道独奏 / Toggle channel solo [write]", channelIndexSchema, async ({ index }) => handleToolCall("toggle_channel_solo", "write", () => client.toggleChannelSolo(index)));
41
- server.tool("toggle_channel_mute", "切换通道静音 / Toggle channel mute [write]", channelIndexSchema, async ({ index }) => handleToolCall("toggle_channel_mute", "write", () => client.toggleChannelMute(index)));
42
- server.tool("set_channel_ms_process", "设置通道 M/S 处理 / Set channel M/S processing [write]", {
38
+ server.tool("toggle_channel_solo", "切换通道独奏 / Toggle channel solo [write]。⚠️ 会改变通道独奏状态,必须经用户明确确认后才能调用。", channelIndexSchema, async ({ index }) => handleToolCall("toggle_channel_solo", "write", () => client.toggleChannelSolo(index)));
39
+ server.tool("toggle_channel_mute", "切换通道静音 / Toggle channel mute [write]。⚠️ 会改变通道静音状态,必须经用户明确确认后才能调用。", channelIndexSchema, async ({ index }) => handleToolCall("toggle_channel_mute", "write", () => client.toggleChannelMute(index)));
40
+ server.tool("set_channel_ms_process", "设置通道 M/S 处理 / Set channel M/S processing [write]。⚠️ 会改变通道的 Mid/Side 处理模式,必须经用户明确确认后才能调用。", {
43
41
  ...channelIndexSchema,
44
42
  enabled: z.boolean().describe("是否启用 / Enable or disable"),
45
43
  }, async ({ index, enabled }) => handleToolCall("set_channel_ms_process", "write", () => client.setChannelMsProcess(index, enabled)));
46
- server.tool("toggle_channel_phase_invert", "切换通道相位反转 / Toggle channel phase invert [write]", channelIndexSchema, async ({ index }) => handleToolCall("toggle_channel_phase_invert", "write", () => client.toggleChannelPhaseInvert(index)));
44
+ server.tool("toggle_channel_phase_invert", "切换通道相位反转 / Toggle channel phase invert [write]。⚠️ 会反转通道相位,必须经用户明确确认后才能调用。", channelIndexSchema, async ({ index }) => handleToolCall("toggle_channel_phase_invert", "write", () => client.toggleChannelPhaseInvert(index)));
47
45
  }
48
46
  //# sourceMappingURL=monitor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/tools/monitor.ts"],"names":[],"mappings":"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"}
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;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QAwEvD"}
1
+ {"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../src/tools/recording.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QAmEvD"}
@@ -7,8 +7,7 @@ import { RecordSaferClient } from "../api-client.js";
7
7
  import { handleToolCall } from "../utils.js";
8
8
  export function registerRecordingTools(server) {
9
9
  const client = new RecordSaferClient();
10
- // initialize_session [recording_control]
11
- server.tool("initialize_session", "初始化录音会话 / Initialize recording session [recording_control]", {
10
+ server.tool("initialize_session", "初始化录音会话 / Initialize recording session [recording_control]。⚠️ 会重置当前录音会话并配置新参数,必须经用户明确确认后才能调用。", {
12
11
  deviceId: z.string().min(1).describe("设备ID / Device ID"),
13
12
  sampleRate: z.number().describe("采样率 / Sample rate"),
14
13
  bitDepth: z
@@ -22,15 +21,11 @@ export function registerRecordingTools(server) {
22
21
  .enum(["wav", "caf"])
23
22
  .describe("音频格式 / Audio format"),
24
23
  }, async ({ deviceId, sampleRate, bitDepth, channels, outputPath, audioFormat }) => handleToolCall("initialize_session", "recording_control", () => client.initializeSession({ deviceId, sampleRate, bitDepth, channels, outputPath, audioFormat })));
25
- // reset_session [recording_control]
26
- server.tool("reset_session", "重置当前会话 / Reset current session [recording_control]", {}, async () => handleToolCall("reset_session", "recording_control", () => client.resetSession()));
27
- // start_recording [recording_control]
28
- server.tool("start_recording", "开始录音 / Start recording [recording_control]", {
24
+ server.tool("reset_session", "重置当前会话 / Reset current session [recording_control]。⚠️ 会清除当前录音会话配置,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("reset_session", "recording_control", () => client.resetSession()));
25
+ server.tool("start_recording", "开始录音 / Start recording [recording_control]。⚠️ 会开始录音并写入音频文件,必须经用户明确确认后才能调用。", {
29
26
  safeMode: z.boolean().optional().describe("安全模式 / Safe mode"),
30
27
  }, async ({ safeMode }) => handleToolCall("start_recording", "recording_control", () => client.startRecording(safeMode !== undefined ? { safeMode } : undefined)));
31
- // stop_recording [recording_control]
32
- server.tool("stop_recording", "停止录音 / Stop recording [recording_control]", {}, async () => handleToolCall("stop_recording", "recording_control", () => client.stopRecording()));
33
- // get_recording_status [read]
34
- server.tool("get_recording_status", "获取录音状态 / Get current recording status [read]", {}, async () => handleToolCall("get_recording_status", "read", () => client.getRecordingStatus()));
28
+ server.tool("stop_recording", "停止录音 / Stop recording [recording_control]。⚠️ 会停止当前录音并关闭音频文件,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("stop_recording", "recording_control", () => client.stopRecording()));
29
+ server.tool("get_recording_status", "获取录音状态 / Get current recording status [read]。仅在用户明确要求查看录音状态时调用。", {}, async () => handleToolCall("get_recording_status", "read", () => client.getRecordingStatus()));
35
30
  }
36
31
  //# sourceMappingURL=recording.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recording.js","sourceRoot":"","sources":["../../src/tools/recording.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,yCAAyC;IACzC,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,4DAA4D,EAC5D;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACpD,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;aAC1C,QAAQ,CAAC,iBAAiB,CAAC;QAC9B,QAAQ,EAAE,CAAC;aACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,CAAC,qBAAqB,CAAC;QAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC5D,WAAW,EAAE,CAAC;aACX,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACpB,QAAQ,CAAC,qBAAqB,CAAC;KACnC,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,CAC9E,cAAc,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAC7D,MAAM,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAChG,CACJ,CAAC;IAEF,oCAAoC;IACpC,MAAM,CAAC,IAAI,CACT,eAAe,EACf,oDAAoD,EACpD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,eAAe,EAAE,mBAAmB,EAAE,GAAG,EAAE,CACxD,MAAM,CAAC,YAAY,EAAE,CACtB,CACJ,CAAC;IAEF,sCAAsC;IACtC,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,4CAA4C,EAC5C;QACE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAC9D,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CACrB,cAAc,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAC1D,MAAM,CAAC,cAAc,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CACzE,CACJ,CAAC;IAEF,qCAAqC;IACrC,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,2CAA2C,EAC3C,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,EAAE,CACzD,MAAM,CAAC,aAAa,EAAE,CACvB,CACJ,CAAC;IAEF,8BAA8B;IAC9B,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,8CAA8C,EAC9C,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,GAAG,EAAE,CAClD,MAAM,CAAC,kBAAkB,EAAE,CAC5B,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"recording.js","sourceRoot":"","sources":["../../src/tools/recording.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,+FAA+F,EAC/F;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACpD,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;aAC1C,QAAQ,CAAC,iBAAiB,CAAC;QAC9B,QAAQ,EAAE,CAAC;aACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,CAAC,qBAAqB,CAAC;QAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC5D,WAAW,EAAE,CAAC;aACX,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACpB,QAAQ,CAAC,qBAAqB,CAAC;KACnC,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,CAC9E,cAAc,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAC7D,MAAM,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAChG,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,mFAAmF,EACnF,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,eAAe,EAAE,mBAAmB,EAAE,GAAG,EAAE,CACxD,MAAM,CAAC,YAAY,EAAE,CACtB,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,4EAA4E,EAC5E;QACE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAC9D,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CACrB,cAAc,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAC1D,MAAM,CAAC,cAAc,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CACzE,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,6EAA6E,EAC7E,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,EAAE,CACzD,MAAM,CAAC,aAAa,EAAE,CACvB,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,iEAAiE,EACjE,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,GAAG,EAAE,CAClD,MAAM,CAAC,kBAAkB,EAAE,CAC5B,CACJ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/tools/settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,QA0EtD"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/tools/settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,QAoEtD"}
@@ -7,24 +7,18 @@ import { RecordSaferClient } from "../api-client.js";
7
7
  import { handleToolCall } from "../utils.js";
8
8
  export function registerSettingsTools(server) {
9
9
  const client = new RecordSaferClient();
10
- // get_output_path [read] 无参数
11
- server.tool("get_output_path", "获取当前输出目录 / Get current output directory [read]", {}, async () => handleToolCall("get_output_path", "read", () => client.getOutputPath()));
12
- // set_output_path [write] — 需要 path
13
- server.tool("set_output_path", "设置输出目录 / Set output directory [write]", {
10
+ server.tool("get_output_path", "获取当前输出目录 / Get current output directory [read]。仅在用户明确要求查看输出路径时调用。", {}, async () => handleToolCall("get_output_path", "read", () => client.getOutputPath()));
11
+ server.tool("set_output_path", "设置输出目录 / Set output directory [write]。⚠️ 会更改录音文件的保存位置,必须经用户明确确认后才能调用。", {
14
12
  path: z.string().min(1).describe("输出路径 / Output path"),
15
13
  }, async ({ path }) => handleToolCall("set_output_path", "write", () => client.setOutputPath(path)));
16
- // get_audio_format [read] 无参数
17
- server.tool("get_audio_format", "获取当前音频格式设置 / Get current audio format settings [read]", {}, async () => handleToolCall("get_audio_format", "read", () => client.getAudioFormat()));
18
- // set_audio_format [write] — 可选 format, sampleRate, bitDepth
19
- server.tool("set_audio_format", "设置音频格式 / Set audio format [write]", {
14
+ server.tool("get_audio_format", "获取当前音频格式设置 / Get current audio format settings [read]。仅在用户明确要求查看音频格式时调用。", {}, async () => handleToolCall("get_audio_format", "read", () => client.getAudioFormat()));
15
+ server.tool("set_audio_format", "设置音频格式 / Set audio format [write]。⚠️ 会更改录音的音频格式参数,必须经用户明确确认后才能调用。", {
20
16
  format: z.enum(["wav", "caf"]).optional(),
21
17
  sampleRate: z.number().optional(),
22
18
  bitDepth: z.enum(["16-bit", "24-bit", "32-bit Float"]).optional(),
23
19
  }, async ({ format, sampleRate, bitDepth }) => handleToolCall("set_audio_format", "write", () => client.setAudioFormat({ format, sampleRate, bitDepth })));
24
- // get_settings [read] 无参数
25
- server.tool("get_settings", "获取所有系统设置 / Get all system settings [read]", {}, async () => handleToolCall("get_settings", "read", () => client.getSettings()));
26
- // update_settings [write] — 需要 settings 对象
27
- server.tool("update_settings", "更新系统设置 / Update system settings [write]", {
20
+ server.tool("get_settings", "获取所有系统设置 / Get all system settings [read]。仅在用户明确要求查看系统设置时调用。", {}, async () => handleToolCall("get_settings", "read", () => client.getSettings()));
21
+ server.tool("update_settings", "更新系统设置 / Update system settings [write]。⚠️ 会修改软件系统设置,必须经用户明确确认后才能调用。", {
28
22
  settings: z
29
23
  .record(z.unknown())
30
24
  .describe("设置键值对 / Settings key-value pairs"),
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/tools/settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,+BAA+B;IAC/B,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,gDAAgD,EAChD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAC1E,CAAC;IAEF,oCAAoC;IACpC,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,uCAAuC,EACvC;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;KACvD,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,cAAc,CAAC,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC9C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAC3B,CACJ,CAAC;IAEF,gCAAgC;IAChC,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,uDAAuD,EACvD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,CAC9C,MAAM,CAAC,cAAc,EAAE,CACxB,CACJ,CAAC;IAEF,6DAA6D;IAC7D,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,mCAAmC,EACnC;QACE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE;KAClE,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CACzC,cAAc,CAAC,kBAAkB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC/C,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CACxD,CACJ,CAAC;IAEF,4BAA4B;IAC5B,MAAM,CAAC,IAAI,CACT,cAAc,EACd,2CAA2C,EAC3C,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CACrE,CAAC;IAEF,2CAA2C;IAC3C,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,yCAAyC,EACzC;QACE,QAAQ,EAAE,CAAC;aACR,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;aACnB,QAAQ,CAAC,kCAAkC,CAAC;KAChD,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CACrB,cAAc,CAAC,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC9C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAChC,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/tools/settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,mEAAmE,EACnE,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAC1E,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,uEAAuE,EACvE;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;KACvD,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,cAAc,CAAC,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC9C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAC3B,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,0EAA0E,EAC1E,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,CAC9C,MAAM,CAAC,cAAc,EAAE,CACxB,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,mEAAmE,EACnE;QACE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE;KAClE,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CACzC,cAAc,CAAC,kBAAkB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC/C,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CACxD,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,8DAA8D,EAC9D,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CACrE,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,sEAAsE,EACtE;QACE,QAAQ,EAAE,CAAC;aACR,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;aACnB,QAAQ,CAAC,kCAAkC,CAAC;KAChD,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CACrB,cAAc,CAAC,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC9C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAChC,CACJ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/tools/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,QAmDrD"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/tools/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,QA8CrD"}
@@ -7,15 +7,10 @@ import { RecordSaferClient } from "../api-client.js";
7
7
  import { handleToolCall } from "../utils.js";
8
8
  export function registerStorageTools(server) {
9
9
  const client = new RecordSaferClient();
10
- // list_volumes [read] 无参数
11
- server.tool("list_volumes", "列出存储卷 / List storage volumes [read]", {}, async () => handleToolCall("list_volumes", "read", () => client.listVolumes()));
12
- // list_external_drives [read] 无参数
13
- server.tool("list_external_drives", "列出外部驱动器 / List external drives [read]", {}, async () => handleToolCall("list_external_drives", "read", () => client.listExternalDrives()));
14
- // validate_storage_path [write] 需要 path
15
- server.tool("validate_storage_path", "验证存储路径 / Validate storage path [write]", { path: z.string().min(1).describe("存储路径 / Storage path") }, async ({ path }) => handleToolCall("validate_storage_path", "write", () => client.validateStoragePath(path)));
16
- // lock_storage [write] — 无参数
17
- server.tool("lock_storage", "锁定存储 / Lock storage [write]", {}, async () => handleToolCall("lock_storage", "write", () => client.lockStorage()));
18
- // unlock_storage [write] — 无参数
19
- server.tool("unlock_storage", "解锁存储 / Unlock storage [write]", {}, async () => handleToolCall("unlock_storage", "write", () => client.unlockStorage()));
10
+ server.tool("list_volumes", "列出存储卷 / List storage volumes [read]。仅在用户明确要求查看存储卷时调用。", {}, async () => handleToolCall("list_volumes", "read", () => client.listVolumes()));
11
+ server.tool("list_external_drives", "列出外部驱动器 / List external drives [read]。仅在用户明确要求查看外部驱动器时调用。", {}, async () => handleToolCall("list_external_drives", "read", () => client.listExternalDrives()));
12
+ server.tool("validate_storage_path", "验证存储路径 / Validate storage path [write]。⚠️ 会检查指定路径是否可用于录音存储,必须经用户明确确认后才能调用。", { path: z.string().min(1).describe("存储路径 / Storage path") }, async ({ path }) => handleToolCall("validate_storage_path", "write", () => client.validateStoragePath(path)));
13
+ server.tool("lock_storage", "锁定存储 / Lock storage [write]。⚠️ 会锁定当前存储路径防止更改,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("lock_storage", "write", () => client.lockStorage()));
14
+ server.tool("unlock_storage", "解锁存储 / Unlock storage [write]。⚠️ 会解锁存储路径允许更改,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("unlock_storage", "write", () => client.unlockStorage()));
20
15
  }
21
16
  //# sourceMappingURL=storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/tools/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,4BAA4B;IAC5B,MAAM,CAAC,IAAI,CACT,cAAc,EACd,qCAAqC,EACrC,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CACrE,CAAC;IAEF,oCAAoC;IACpC,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,uCAAuC,EACvC,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,GAAG,EAAE,CAClD,MAAM,CAAC,kBAAkB,EAAE,CAC5B,CACJ,CAAC;IAEF,0CAA0C;IAC1C,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,wCAAwC,EACxC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,EAC3D,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,cAAc,CAAC,uBAAuB,EAAE,OAAO,EAAE,GAAG,EAAE,CACpD,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CACjC,CACJ,CAAC;IAEF,6BAA6B;IAC7B,MAAM,CAAC,IAAI,CACT,cAAc,EACd,6BAA6B,EAC7B,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CACtE,CAAC;IAEF,+BAA+B;IAC/B,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,+BAA+B,EAC/B,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAC1E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/tools/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,MAAM,CAAC,IAAI,CACT,cAAc,EACd,uDAAuD,EACvD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CACrE,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,2DAA2D,EAC3D,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,uBAAuB,EACvB,4EAA4E,EAC5E,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,EAC3D,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,cAAc,CAAC,uBAAuB,EAAE,OAAO,EAAE,GAAG,EAAE,CACpD,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CACjC,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,8DAA8D,EAC9D,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CACtE,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,8DAA8D,EAC9D,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAC1E,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/tools/system.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,QAgLpD"}
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/tools/system.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,QAgKpD"}
@@ -7,41 +7,25 @@ import { RecordSaferClient } from "../api-client.js";
7
7
  import { handleToolCall } from "../utils.js";
8
8
  export function registerSystemTools(server) {
9
9
  const client = new RecordSaferClient();
10
- // ===== 系统信息与更新 (Requirements 10.1-10.7) =====
11
- // get_system_info [read] 无参数
12
- server.tool("get_system_info", "获取系统信息 / Get system information [read]", {}, async () => handleToolCall("get_system_info", "read", () => client.getSystemInfo()));
13
- // get_disk_space [read] 无参数
14
- server.tool("get_disk_space", "获取磁盘空间信息 / Get disk space information [read]", {}, async () => handleToolCall("get_disk_space", "read", () => client.getDiskSpace()));
15
- // check_disk_health [write] 无参数
16
- server.tool("check_disk_health", "检查磁盘健康状态 / Check disk health [write]", {}, async () => handleToolCall("check_disk_health", "write", () => client.checkDiskHealth()));
17
- // check_updates [read] 无参数
18
- server.tool("check_updates", "检查更新 / Check for updates [read]", {}, async () => handleToolCall("check_updates", "read", () => client.checkUpdates()));
19
- // get_update_badge [read] 无参数
20
- server.tool("get_update_badge", "获取更新徽章信息 / Get update badge info [read]", {}, async () => handleToolCall("get_update_badge", "read", () => client.getUpdateBadge()));
21
- // install_update [recording_control] 无参数
22
- server.tool("install_update", "安装更新 / Install update [recording_control]", {}, async () => handleToolCall("install_update", "recording_control", () => client.installUpdate()));
23
- // get_download_progress [read] — 无参数
24
- server.tool("get_download_progress", "获取下载进度 / Get download progress [read]", {}, async () => handleToolCall("get_download_progress", "read", () => client.getDownloadProgress()));
25
- // ===== 激活与许可 (Requirements 11.1-11.4) =====
26
- // activate_license [write] 需要 key
27
- server.tool("activate_license", "激活许可证 / Activate license [write]", { key: z.string().min(1).describe("许可证密钥 / License key") }, async ({ key }) => handleToolCall("activate_license", "write", () => client.activateLicense(key)));
28
- // get_activation_status [read] 无参数
29
- server.tool("get_activation_status", "获取激活状态 / Get activation status [read]", {}, async () => handleToolCall("get_activation_status", "read", () => client.getActivationStatus()));
30
- // set_activation [write] — 需要 data
31
- server.tool("set_activation", "设置激活数据 / Set activation data [write]", { data: z.record(z.unknown()).describe("激活数据 / Activation data") }, async ({ data }) => handleToolCall("set_activation", "write", () => client.setActivation(data)));
32
- // restore_license [write] — 无参数
33
- server.tool("restore_license", "恢复许可证 / Restore license [write]", {}, async () => handleToolCall("restore_license", "write", () => client.restoreLicense()));
34
- // ===== 文件工具 (Requirements 12.1-12.3) =====
35
- // start_split [recording_control] — 需要 params
36
- server.tool("start_split", "开始文件分割 / Start file split [recording_control]", { params: z.record(z.unknown()).describe("分割参数 / Split parameters") }, async ({ params }) => handleToolCall("start_split", "recording_control", () => client.startSplit(params)));
37
- // get_split_progress [read] — 无参数
38
- server.tool("get_split_progress", "获取分割进度 / Get split progress [read]", {}, async () => handleToolCall("get_split_progress", "read", () => client.getSplitProgress()));
39
- // cancel_split [recording_control] — 无参数
40
- server.tool("cancel_split", "取消分割 / Cancel split [recording_control]", {}, async () => handleToolCall("cancel_split", "recording_control", () => client.cancelSplit()));
41
- // ===== 系统控制 (Requirements 13.1-13.2) =====
42
- // send_telemetry [write] — 需要 data
43
- server.tool("send_telemetry", "发送遥测数据 / Send telemetry data [write]", { data: z.record(z.unknown()).describe("遥测数据 / Telemetry data") }, async ({ data }) => handleToolCall("send_telemetry", "write", () => client.sendTelemetry(data)));
44
- // shutdown [recording_control] — 无参数
45
- server.tool("shutdown", "关闭后端服务 / Shutdown backend service [recording_control]", {}, async () => handleToolCall("shutdown", "recording_control", () => client.shutdown()));
10
+ // ===== 系统信息与更新 =====
11
+ server.tool("get_system_info", "获取系统信息 / Get system information [read]。仅在用户明确要求查看系统信息时调用。", {}, async () => handleToolCall("get_system_info", "read", () => client.getSystemInfo()));
12
+ server.tool("get_disk_space", "获取磁盘空间信息 / Get disk space information [read]。仅在用户明确要求查看磁盘空间时调用。", {}, async () => handleToolCall("get_disk_space", "read", () => client.getDiskSpace()));
13
+ server.tool("check_disk_health", "检查磁盘健康状态 / Check disk health [write]。⚠️ 会执行磁盘健康检查,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("check_disk_health", "write", () => client.checkDiskHealth()));
14
+ server.tool("check_updates", "检查更新 / Check for updates [read]。仅在用户明确要求检查更新时调用。", {}, async () => handleToolCall("check_updates", "read", () => client.checkUpdates()));
15
+ server.tool("get_update_badge", "获取更新徽章信息 / Get update badge info [read]。仅在用户明确要求时调用。", {}, async () => handleToolCall("get_update_badge", "read", () => client.getUpdateBadge()));
16
+ server.tool("install_update", "安装更新 / Install update [recording_control]。⚠️ 会下载并安装软件更新,可能需要重启应用,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("install_update", "recording_control", () => client.installUpdate()));
17
+ server.tool("get_download_progress", "获取下载进度 / Get download progress [read]。仅在用户明确要求查看下载进度时调用。", {}, async () => handleToolCall("get_download_progress", "read", () => client.getDownloadProgress()));
18
+ // ===== 激活与许可 =====
19
+ server.tool("activate_license", "激活许可证 / Activate license [write]。⚠️ 会激活软件许可证,必须经用户明确确认后才能调用。", { key: z.string().min(1).describe("许可证密钥 / License key") }, async ({ key }) => handleToolCall("activate_license", "write", () => client.activateLicense(key)));
20
+ server.tool("get_activation_status", "获取激活状态 / Get activation status [read]。仅在用户明确要求查看激活状态时调用。", {}, async () => handleToolCall("get_activation_status", "read", () => client.getActivationStatus()));
21
+ server.tool("set_activation", "设置激活数据 / Set activation data [write]。⚠️ 会修改激活数据,必须经用户明确确认后才能调用。", { data: z.record(z.unknown()).describe("激活数据 / Activation data") }, async ({ data }) => handleToolCall("set_activation", "write", () => client.setActivation(data)));
22
+ server.tool("restore_license", "恢复许可证 / Restore license [write]。⚠️ 会恢复许可证状态,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("restore_license", "write", () => client.restoreLicense()));
23
+ // ===== 文件工具 =====
24
+ server.tool("start_split", "开始文件分割 / Start file split [recording_control]。⚠️ 会对录音文件执行分割操作,必须经用户明确确认后才能调用。", { params: z.record(z.unknown()).describe("分割参数 / Split parameters") }, async ({ params }) => handleToolCall("start_split", "recording_control", () => client.startSplit(params)));
25
+ server.tool("get_split_progress", "获取分割进度 / Get split progress [read]。仅在用户明确要求查看分割进度时调用。", {}, async () => handleToolCall("get_split_progress", "read", () => client.getSplitProgress()));
26
+ server.tool("cancel_split", "取消分割 / Cancel split [recording_control]。⚠️ 会取消正在进行的文件分割,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("cancel_split", "recording_control", () => client.cancelSplit()));
27
+ // ===== 系统控制 =====
28
+ server.tool("send_telemetry", "发送遥测数据 / Send telemetry data [write]。⚠️ 会发送使用数据,必须经用户明确确认后才能调用。", { data: z.record(z.unknown()).describe("遥测数据 / Telemetry data") }, async ({ data }) => handleToolCall("send_telemetry", "write", () => client.sendTelemetry(data)));
29
+ server.tool("shutdown", "关闭后端服务 / Shutdown backend service [recording_control]。⚠️ 会关闭 Record Safer Pro 后端进程,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("shutdown", "recording_control", () => client.shutdown()));
46
30
  }
47
31
  //# sourceMappingURL=system.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/tools/system.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,+CAA+C;IAE/C,+BAA+B;IAC/B,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,wCAAwC,EACxC,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAC1E,CAAC;IAEF,8BAA8B;IAC9B,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,8CAA8C,EAC9C,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CACxE,CAAC;IAEF,kCAAkC;IAClC,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,sCAAsC,EACtC,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,mBAAmB,EAAE,OAAO,EAAE,GAAG,EAAE,CAChD,MAAM,CAAC,eAAe,EAAE,CACzB,CACJ,CAAC;IAEF,6BAA6B;IAC7B,MAAM,CAAC,IAAI,CACT,eAAe,EACf,iCAAiC,EACjC,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CACvE,CAAC;IAEF,gCAAgC;IAChC,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,yCAAyC,EACzC,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAC5E,CAAC;IAEF,2CAA2C;IAC3C,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,2CAA2C,EAC3C,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,EAAE,CACzD,MAAM,CAAC,aAAa,EAAE,CACvB,CACJ,CAAC;IAEF,qCAAqC;IACrC,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,uCAAuC,EACvC,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE,GAAG,EAAE,CACnD,MAAM,CAAC,mBAAmB,EAAE,CAC7B,CACJ,CAAC;IAEF,6CAA6C;IAE7C,oCAAoC;IACpC,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,kCAAkC,EAClC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,EAC1D,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAChB,cAAc,CAAC,kBAAkB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC/C,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAC5B,CACJ,CAAC;IAEF,qCAAqC;IACrC,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,uCAAuC,EACvC,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE,GAAG,EAAE,CACnD,MAAM,CAAC,mBAAmB,EAAE,CAC7B,CACJ,CAAC;IAEF,mCAAmC;IACnC,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,sCAAsC,EACtC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,EAClE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,cAAc,CAAC,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC7C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAC3B,CACJ,CAAC;IAEF,gCAAgC;IAChC,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,iCAAiC,EACjC,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC9C,MAAM,CAAC,cAAc,EAAE,CACxB,CACJ,CAAC;IAEF,4CAA4C;IAE5C,8CAA8C;IAC9C,MAAM,CAAC,IAAI,CACT,aAAa,EACb,+CAA+C,EAC/C,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,EACrE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CACnB,cAAc,CAAC,aAAa,EAAE,mBAAmB,EAAE,GAAG,EAAE,CACtD,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAC1B,CACJ,CAAC;IAEF,kCAAkC;IAClC,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,oCAAoC,EACpC,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAE,CAChD,MAAM,CAAC,gBAAgB,EAAE,CAC1B,CACJ,CAAC;IAEF,yCAAyC;IACzC,MAAM,CAAC,IAAI,CACT,cAAc,EACd,yCAAyC,EACzC,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,cAAc,EAAE,mBAAmB,EAAE,GAAG,EAAE,CACvD,MAAM,CAAC,WAAW,EAAE,CACrB,CACJ,CAAC;IAEF,4CAA4C;IAE5C,mCAAmC;IACnC,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,sCAAsC,EACtC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,EACjE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,cAAc,CAAC,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC7C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAC3B,CACJ,CAAC;IAEF,qCAAqC;IACrC,MAAM,CAAC,IAAI,CACT,UAAU,EACV,uDAAuD,EACvD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,UAAU,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAC3E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/tools/system.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,sBAAsB;IAEtB,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,2DAA2D,EAC3D,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAC1E,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,iEAAiE,EACjE,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CACxE,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,mEAAmE,EACnE,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,mBAAmB,EAAE,OAAO,EAAE,GAAG,EAAE,CAChD,MAAM,CAAC,eAAe,EAAE,CACzB,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,kDAAkD,EAClD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CACvE,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,sDAAsD,EACtD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAC5E,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,kFAAkF,EAClF,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,EAAE,CACzD,MAAM,CAAC,aAAa,EAAE,CACvB,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,0DAA0D,EAC1D,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE,GAAG,EAAE,CACnD,MAAM,CAAC,mBAAmB,EAAE,CAC7B,CACJ,CAAC;IAEF,oBAAoB;IAEpB,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,8DAA8D,EAC9D,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,EAC1D,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAChB,cAAc,CAAC,kBAAkB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC/C,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAC5B,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,0DAA0D,EAC1D,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE,GAAG,EAAE,CACnD,MAAM,CAAC,mBAAmB,EAAE,CAC7B,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,iEAAiE,EACjE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,EAClE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,cAAc,CAAC,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC7C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAC3B,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,6DAA6D,EAC7D,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC9C,MAAM,CAAC,cAAc,EAAE,CACxB,CACJ,CAAC;IAEF,mBAAmB;IAEnB,MAAM,CAAC,IAAI,CACT,aAAa,EACb,+EAA+E,EAC/E,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,EACrE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CACnB,cAAc,CAAC,aAAa,EAAE,mBAAmB,EAAE,GAAG,EAAE,CACtD,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAC1B,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,uDAAuD,EACvD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAE,CAChD,MAAM,CAAC,gBAAgB,EAAE,CAC1B,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,yEAAyE,EACzE,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,cAAc,EAAE,mBAAmB,EAAE,GAAG,EAAE,CACvD,MAAM,CAAC,WAAW,EAAE,CACrB,CACJ,CAAC;IAEF,mBAAmB;IAEnB,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,iEAAiE,EACjE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,EACjE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,cAAc,CAAC,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,CAC7C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAC3B,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,UAAU,EACV,oGAAoG,EACpG,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,UAAU,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAC3E,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "record-safer-mcp-server",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Record Safer Pro MCP Server — 专业多通道录音软件 AI 接口 / Professional multi-channel recording software AI interface",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",