record_safer_pro_mcp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +205 -0
- package/dist/api-client.d.ts +159 -0
- package/dist/api-client.d.ts.map +1 -0
- package/dist/api-client.js +991 -0
- package/dist/api-client.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/index.d.ts +12 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +235 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/resources/index.d.ts +7 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +59 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/mixing-guide-content.d.ts +8 -0
- package/dist/resources/mixing-guide-content.d.ts.map +1 -0
- package/dist/resources/mixing-guide-content.js +194 -0
- package/dist/resources/mixing-guide-content.js.map +1 -0
- package/dist/runtime.d.ts +39 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +320 -0
- package/dist/runtime.js.map +1 -0
- package/dist/telemetry-schema.d.ts +39 -0
- package/dist/telemetry-schema.d.ts.map +1 -0
- package/dist/telemetry-schema.js +15 -0
- package/dist/telemetry-schema.js.map +1 -0
- package/dist/tools/core.d.ts +4 -0
- package/dist/tools/core.d.ts.map +1 -0
- package/dist/tools/core.js +360 -0
- package/dist/tools/core.js.map +1 -0
- package/dist/tools/devices.d.ts +10 -0
- package/dist/tools/devices.d.ts.map +1 -0
- package/dist/tools/devices.js +53 -0
- package/dist/tools/devices.js.map +1 -0
- package/dist/tools/levels.d.ts +11 -0
- package/dist/tools/levels.d.ts.map +1 -0
- package/dist/tools/levels.js +25 -0
- package/dist/tools/levels.js.map +1 -0
- package/dist/tools/markers.d.ts +17 -0
- package/dist/tools/markers.d.ts.map +1 -0
- package/dist/tools/markers.js +142 -0
- package/dist/tools/markers.js.map +1 -0
- package/dist/tools/monitor.d.ts +19 -0
- package/dist/tools/monitor.d.ts.map +1 -0
- package/dist/tools/monitor.js +232 -0
- package/dist/tools/monitor.js.map +1 -0
- package/dist/tools/recording.d.ts +12 -0
- package/dist/tools/recording.d.ts.map +1 -0
- package/dist/tools/recording.js +85 -0
- package/dist/tools/recording.js.map +1 -0
- package/dist/tools/settings.d.ts +10 -0
- package/dist/tools/settings.d.ts.map +1 -0
- package/dist/tools/settings.js +43 -0
- package/dist/tools/settings.js.map +1 -0
- package/dist/tools/storage.d.ts +10 -0
- package/dist/tools/storage.d.ts.map +1 -0
- package/dist/tools/storage.js +20 -0
- package/dist/tools/storage.js.map +1 -0
- package/dist/tools/system.d.ts +10 -0
- package/dist/tools/system.d.ts.map +1 -0
- package/dist/tools/system.js +53 -0
- package/dist/tools/system.js.map +1 -0
- package/dist/tools/tool-metadata.d.ts +19 -0
- package/dist/tools/tool-metadata.d.ts.map +1 -0
- package/dist/tools/tool-metadata.js +25 -0
- package/dist/tools/tool-metadata.js.map +1 -0
- package/dist/types.d.ts +456 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +80 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +336 -0
- package/dist/utils.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Prompts — 状态感知式提示模板
|
|
3
|
+
* MCP Prompts — State-aware prompt templates
|
|
4
|
+
*
|
|
5
|
+
* 设计原则:
|
|
6
|
+
* 1. DADAO Engine 安全架构:MCP 可以准备录音控制台,但不能隐式开始录音
|
|
7
|
+
* 2. MCP 在用户进入录音控制台后提供辅助操作
|
|
8
|
+
* 3. 先感知状态,再决定行动
|
|
9
|
+
*/
|
|
10
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
11
|
+
export declare function registerPrompts(server: McpServer): void;
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoBpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QA2PhD"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Prompts — 状态感知式提示模板
|
|
3
|
+
* MCP Prompts — State-aware prompt templates
|
|
4
|
+
*
|
|
5
|
+
* 设计原则:
|
|
6
|
+
* 1. DADAO Engine 安全架构:MCP 可以准备录音控制台,但不能隐式开始录音
|
|
7
|
+
* 2. MCP 在用户进入录音控制台后提供辅助操作
|
|
8
|
+
* 3. 先感知状态,再决定行动
|
|
9
|
+
*/
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
const RECORDING_SETUP_DEFAULTS = `Default initialization values when the user does not specify them:
|
|
12
|
+
- sampleRate: use the selected device's default/current rate
|
|
13
|
+
- bitDepth: 24-bit
|
|
14
|
+
- outputPath: ~/Desktop`;
|
|
15
|
+
const RECORDING_SETUP_SEQUENCE = `Strict recording-setup order:
|
|
16
|
+
1. Read the user's message and any attached document first. Documents may contain device name, channel list, track names, routing notes, or take sheet details.
|
|
17
|
+
2. Resolve deviceName to deviceId with list_audio_devices if needed. Do not guess device IDs.
|
|
18
|
+
3. Build one consolidated setup summary. If sample rate is missing, resolve it to the selected device's default/current rate. If bit depth or output path are missing, fill them with the defaults above.
|
|
19
|
+
4. Ask for all missing or ambiguous items in one bundled message. Never ask one question at a time.
|
|
20
|
+
5. Before calling start_record_mcp, show the final resolved summary and ask the user to reply once with corrections or press Enter / reply "确认" to approve it.
|
|
21
|
+
6. Call start_record_mcp only after explicit confirmation, and only with userConfirmed=true.
|
|
22
|
+
7. If the user provided desired channel or track names, apply them only after the app has entered the recording console. Never rename before initialization.
|
|
23
|
+
8. Actual recording start is still a separate action after the console is ready.`;
|
|
24
|
+
const DADAO_SAFETY_NOTICE = `To prepare the recording console professionally, first resolve deviceId, audioFormat, and channels, resolve sample rate to the selected device's default/current rate, apply defaults of 24-bit / ~/Desktop when omitted, present one consolidated setup summary, then call start_record_mcp only after the user explicitly confirms it. Recording itself still requires a separate explicit start action after the console is ready.`;
|
|
25
|
+
export function registerPrompts(server) {
|
|
26
|
+
server.prompt("recording_setup_orchestrator", "Recording Setup Orchestrator — Professional console-preparation workflow", { request: z.string().describe("User request, imported note, or document summary") }, ({ request }) => ({
|
|
27
|
+
messages: [{
|
|
28
|
+
role: "user",
|
|
29
|
+
content: {
|
|
30
|
+
type: "text",
|
|
31
|
+
text: `You are the pre-recording setup orchestrator for Record Safer Pro. Request or imported note: ${request}
|
|
32
|
+
|
|
33
|
+
[Primary Goal]
|
|
34
|
+
Prepare the recording console in a professional, ordered way. Never skip confirmation. Never shuffle the setup order.
|
|
35
|
+
|
|
36
|
+
[Strict Workflow]
|
|
37
|
+
${RECORDING_SETUP_SEQUENCE}
|
|
38
|
+
|
|
39
|
+
[Parameter Model For start_record_mcp]
|
|
40
|
+
- Required before execution: deviceId, audioFormat, channels, userConfirmed=true
|
|
41
|
+
- Default when omitted but user-approved: sampleRate=device default/current rate, bitDepth=24-bit, outputPath=~/Desktop
|
|
42
|
+
- Optional: sessionName, bufferSize
|
|
43
|
+
|
|
44
|
+
[Document Handling]
|
|
45
|
+
- If the user provides a document or pasted note, extract:
|
|
46
|
+
1. preferred device name
|
|
47
|
+
2. armed channels
|
|
48
|
+
3. desired track/channel names
|
|
49
|
+
4. sample rate / bit depth / format / output path if present
|
|
50
|
+
- If a document includes names but not deviceId, resolve the deviceId first with list_audio_devices.
|
|
51
|
+
- Do not rename channels before the console is ready. If names are present, carry them forward as a post-initialization rename plan.
|
|
52
|
+
|
|
53
|
+
[How To Ask]
|
|
54
|
+
- Ask for all missing or ambiguous inputs in one bundled message.
|
|
55
|
+
- Present the resolved setup summary in one block.
|
|
56
|
+
- Tell the user which defaults were applied.
|
|
57
|
+
- If a requested sample rate does not match the selected device's default/current rate, explain that MCP preparation cannot switch the hardware sample rate and ask for a corrected summary instead of calling the tool.
|
|
58
|
+
- End with one confirmation request such as: "If this looks right, press Enter or reply 确认; if not, send all corrections in one message."
|
|
59
|
+
|
|
60
|
+
[Execution Guard]
|
|
61
|
+
- Never call start_record_mcp until the user has explicitly approved the exact resolved summary.
|
|
62
|
+
- When calling start_record_mcp after approval, set userConfirmed=true.
|
|
63
|
+
- After start_record_mcp succeeds and the console is ready, apply rename_channel or other metadata updates in the order implied by the plan.
|
|
64
|
+
- Do not imply that manual record-start has already happened.`,
|
|
65
|
+
},
|
|
66
|
+
}],
|
|
67
|
+
}));
|
|
68
|
+
// recording_assistant — 状态感知式录音助手
|
|
69
|
+
server.prompt("recording_assistant", "Recording Assistant — Respond intelligently based on current state", { task: z.string().describe("User's recording-related request") }, ({ task }) => ({
|
|
70
|
+
messages: [{
|
|
71
|
+
role: "user",
|
|
72
|
+
content: {
|
|
73
|
+
type: "text",
|
|
74
|
+
text: `You are the recording assistant for Record Safer Pro. User request: ${task}
|
|
75
|
+
|
|
76
|
+
[DADAO Engine Safety Architecture — Hard Constraint]
|
|
77
|
+
MCP may prepare the recording console via start_record_mcp, but must not implicitly start recording.
|
|
78
|
+
If the user asks to initialize a session, follow the strict setup workflow below before calling start_record_mcp.
|
|
79
|
+
If the user asks to start recording without explicit confirmation, reply:
|
|
80
|
+
"${DADAO_SAFETY_NOTICE}"
|
|
81
|
+
|
|
82
|
+
[Strict Setup Workflow]
|
|
83
|
+
${RECORDING_SETUP_SEQUENCE}
|
|
84
|
+
${RECORDING_SETUP_DEFAULTS}
|
|
85
|
+
|
|
86
|
+
[Action Policy — Check State Before Acting]
|
|
87
|
+
|
|
88
|
+
Step 1: Choose the right query tool based on the request:
|
|
89
|
+
- Rename operations -> get_channels (channel ID, name, device label)
|
|
90
|
+
- Mix or safe-mode inspection -> get_mix (mix state and safe mode flag)
|
|
91
|
+
- Monitoring/troubleshooting -> get_health (CPU, disk, buffer health)
|
|
92
|
+
- Lightweight actions like marking or stop checks -> get_status (minimal state)
|
|
93
|
+
- Track list or marker list -> list_tracks / list_markers when session state allows
|
|
94
|
+
|
|
95
|
+
Step 2: Decide based on state:
|
|
96
|
+
|
|
97
|
+
If recording is active (recording: true):
|
|
98
|
+
- Execute the user request directly.
|
|
99
|
+
- Available actions: stop_recording, add_marker, list_tracks, list_markers, rename_channel.
|
|
100
|
+
- For rename_channel, call get_channels first and use the returned channel ID.
|
|
101
|
+
|
|
102
|
+
If the session is initialized but not recording (ready: true, recording: false):
|
|
103
|
+
- Renaming, device checks, track inspection, marker inspection, and status queries are allowed.
|
|
104
|
+
- Starting recording is still GUI-only and not permitted via MCP.
|
|
105
|
+
|
|
106
|
+
If not initialized (ready: false):
|
|
107
|
+
- Most MCP tools are unavailable.
|
|
108
|
+
- If the user already supplied parameters or attached a planning document, first extract or resolve them into one consolidated setup summary.
|
|
109
|
+
- If the device is identified only by name, call list_audio_devices and resolve deviceId before setup.
|
|
110
|
+
- If sample rate is missing, resolve it to the selected device's default/current rate. If bit depth / output path are missing, apply 24-bit / ~/Desktop as defaults, but disclose them to the user.
|
|
111
|
+
- Ask for all missing or ambiguous setup inputs in one bundled message.
|
|
112
|
+
- Call start_record_mcp only after the user explicitly confirms the final setup summary.
|
|
113
|
+
- Call stop_recording only after the user explicitly confirms the stop request, and pass userConfirmed=true.
|
|
114
|
+
- Only after the console is ready may you apply rename_channel or other channel metadata updates.
|
|
115
|
+
|
|
116
|
+
[Never Do These]
|
|
117
|
+
- Do not ask one question at a time for setup collection.
|
|
118
|
+
- Do not call start_record_mcp without an explicit confirmation turn from the user.
|
|
119
|
+
- Do not rename channels before the recording console is ready.
|
|
120
|
+
- Do not apply document-derived track names before the console is ready.
|
|
121
|
+
- Do not start recording implicitly as part of session preparation.
|
|
122
|
+
- Do not expose low-level device technical identifiers (UID/internal IDs) to users.
|
|
123
|
+
- Do not proactively call write/recording_control tools unless explicitly requested.`,
|
|
124
|
+
},
|
|
125
|
+
}],
|
|
126
|
+
}));
|
|
127
|
+
// troubleshoot — 故障诊断助手
|
|
128
|
+
server.prompt("troubleshoot", "Troubleshooting — Automated diagnostic workflow", { symptom: z.string().describe("Description of the issue") }, ({ symptom }) => ({
|
|
129
|
+
messages: [{
|
|
130
|
+
role: "user",
|
|
131
|
+
content: {
|
|
132
|
+
type: "text",
|
|
133
|
+
text: `You are a Record Safer Pro troubleshooting expert. The user reported: ${symptom}
|
|
134
|
+
|
|
135
|
+
[Precondition] If the session is not initialized, first remind the user:
|
|
136
|
+
"${DADAO_SAFETY_NOTICE}"
|
|
137
|
+
|
|
138
|
+
[Diagnostic Flow — Run Automatically, No Extra User Prompts]
|
|
139
|
+
|
|
140
|
+
Collect data by calling these tools in order (do not ask for step-by-step permission):
|
|
141
|
+
1. get_status -> confirm whether the session is ready and whether recording is active
|
|
142
|
+
2. get_health -> inspect CPU, disk-health summary, buffer health, device status, and alerts
|
|
143
|
+
3. list_audio_devices -> verify device detection
|
|
144
|
+
4. get_channels -> inspect channel naming and routing only if the session is ready
|
|
145
|
+
5. get_mix -> inspect safe-mode state or current mix snapshot only if the session is ready
|
|
146
|
+
|
|
147
|
+
After collecting all available MCP data, provide one consolidated diagnosis and solution.
|
|
148
|
+
If the issue requires raw system info, detailed disk metrics, device signals, or buffer-size inspection, explain that the current slim MCP surface does not expose those diagnostics and the user must inspect them in the desktop app.`,
|
|
149
|
+
},
|
|
150
|
+
}],
|
|
151
|
+
}));
|
|
152
|
+
// generate_report — 录音报告生成
|
|
153
|
+
server.prompt("generate_report", "Recording Report — Auto-collect data and generate report", { format: z.enum(["brief", "detailed"]).optional().describe("Report format") }, ({ format }) => {
|
|
154
|
+
const reportFormat = format ?? "brief";
|
|
155
|
+
const isDetailed = reportFormat === "detailed";
|
|
156
|
+
return {
|
|
157
|
+
messages: [{
|
|
158
|
+
role: "user",
|
|
159
|
+
content: {
|
|
160
|
+
type: "text",
|
|
161
|
+
text: `Generate a ${isDetailed ? "detailed" : "brief"} recording report.
|
|
162
|
+
|
|
163
|
+
[Precondition] This requires an initialized session. If not initialized, remind the user:
|
|
164
|
+
"${DADAO_SAFETY_NOTICE}"
|
|
165
|
+
|
|
166
|
+
Auto-call these tools to gather data (no extra user confirmation needed):
|
|
167
|
+
1. get_status -> recording-ready summary
|
|
168
|
+
2. get_health -> recording state and system health
|
|
169
|
+
3. get_channels -> channel metadata
|
|
170
|
+
4. list_tracks -> track metadata
|
|
171
|
+
5. list_markers -> marker metadata
|
|
172
|
+
${isDetailed ? `6. get_mix -> safe-mode flag and current mix snapshot` : ""}
|
|
173
|
+
|
|
174
|
+
Organize the data into a structured report with:
|
|
175
|
+
- Recording summary (ready state, duration, CPU load, buffer health)
|
|
176
|
+
- Track list (name and channel mapping)
|
|
177
|
+
- Marker list (time and label)
|
|
178
|
+
${isDetailed ? "- Mix snapshot and safe-mode status\n- Health alerts and device-alive status" : ""}`,
|
|
179
|
+
},
|
|
180
|
+
}],
|
|
181
|
+
};
|
|
182
|
+
});
|
|
183
|
+
// quick_action — 快捷操作助手
|
|
184
|
+
server.prompt("quick_action", "Quick Action — Fast commands during recording", { command: z.string().describe("Quick command (e.g. 'mark', 'stop', 'status')") }, ({ command }) => ({
|
|
185
|
+
messages: [{
|
|
186
|
+
role: "user",
|
|
187
|
+
content: {
|
|
188
|
+
type: "text",
|
|
189
|
+
text: `Quick action command: ${command}
|
|
190
|
+
|
|
191
|
+
Call get_status first to confirm current state.
|
|
192
|
+
|
|
193
|
+
If the session is not initialized, reply:
|
|
194
|
+
"${DADAO_SAFETY_NOTICE}"
|
|
195
|
+
|
|
196
|
+
If session is ready, execute by command:
|
|
197
|
+
- "mark" -> add_marker()
|
|
198
|
+
- "mark XXX" -> add_marker(label: "XXX")
|
|
199
|
+
- "stop" -> ask for confirmation first, then call stop_recording({ userConfirmed: true })
|
|
200
|
+
- "status" -> return concise recording status summary
|
|
201
|
+
- "tracks" -> list_tracks()
|
|
202
|
+
- "markers" -> list_markers()
|
|
203
|
+
|
|
204
|
+
Important: prepare-console and actual recording start are separate actions. Do not treat start_record_mcp as permission to start recording automatically.`,
|
|
205
|
+
},
|
|
206
|
+
}],
|
|
207
|
+
}));
|
|
208
|
+
// safe_recording — 安全录音操作助手(仅停止录音)
|
|
209
|
+
server.prompt("safe_recording", "Safe Recording — Confirmation workflow for recording operations", {
|
|
210
|
+
action: z.enum(["stop", "status"]).describe("Action type"),
|
|
211
|
+
}, ({ action }) => ({
|
|
212
|
+
messages: [{
|
|
213
|
+
role: "user",
|
|
214
|
+
content: {
|
|
215
|
+
type: "text",
|
|
216
|
+
text: `Safe recording action: ${action}
|
|
217
|
+
|
|
218
|
+
[DADAO Engine Safety Architecture]
|
|
219
|
+
MCP can prepare the recording console, but cannot start recording implicitly. If users request setup, reply:
|
|
220
|
+
"${DADAO_SAFETY_NOTICE}"
|
|
221
|
+
|
|
222
|
+
When action = "stop":
|
|
223
|
+
1. Call get_status to verify recording is active.
|
|
224
|
+
2. Inform the user of current duration and track info.
|
|
225
|
+
3. Ask explicitly: "Do you want to stop recording? This action cannot be undone."
|
|
226
|
+
4. Execute stop_recording only after explicit confirmation, and pass userConfirmed=true.
|
|
227
|
+
|
|
228
|
+
When action = "status":
|
|
229
|
+
1. Call get_health for full health data.
|
|
230
|
+
2. Present key information in a concise format.`,
|
|
231
|
+
},
|
|
232
|
+
}],
|
|
233
|
+
}));
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,QAuFlD"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Resources — 只读数据源
|
|
3
|
+
* MCP Resources — Read-only data sources
|
|
4
|
+
*/
|
|
5
|
+
import { RecordSaferClient } from "../api-client.js";
|
|
6
|
+
import { MIXING_GUIDE_MD } from "./mixing-guide-content.js";
|
|
7
|
+
export function registerResources(server) {
|
|
8
|
+
const client = new RecordSaferClient();
|
|
9
|
+
// recordsafer://devices — 音频输入设备列表
|
|
10
|
+
server.resource("devices", "recordsafer://devices", { mimeType: "application/json", description: "Audio input devices" }, async () => ({
|
|
11
|
+
contents: [{
|
|
12
|
+
uri: "recordsafer://devices",
|
|
13
|
+
mimeType: "application/json",
|
|
14
|
+
text: JSON.stringify(await client.listDevices(), null, 2),
|
|
15
|
+
}],
|
|
16
|
+
}));
|
|
17
|
+
// recordsafer://status — 录音状态快照
|
|
18
|
+
server.resource("status", "recordsafer://status", { mimeType: "application/json", description: "Recording status snapshot" }, async () => ({
|
|
19
|
+
contents: [{
|
|
20
|
+
uri: "recordsafer://status",
|
|
21
|
+
mimeType: "application/json",
|
|
22
|
+
text: JSON.stringify(await client.getRecordingStatus(), null, 2),
|
|
23
|
+
}],
|
|
24
|
+
}));
|
|
25
|
+
// recordsafer://settings — 系统设置
|
|
26
|
+
server.resource("settings", "recordsafer://settings", { mimeType: "application/json", description: "System settings" }, async () => ({
|
|
27
|
+
contents: [{
|
|
28
|
+
uri: "recordsafer://settings",
|
|
29
|
+
mimeType: "application/json",
|
|
30
|
+
text: JSON.stringify(await client.getSettings(), null, 2),
|
|
31
|
+
}],
|
|
32
|
+
}));
|
|
33
|
+
// recordsafer://system/info — 系统与应用信息
|
|
34
|
+
server.resource("system-info", "recordsafer://system/info", { mimeType: "application/json", description: "System and application information" }, async () => ({
|
|
35
|
+
contents: [{
|
|
36
|
+
uri: "recordsafer://system/info",
|
|
37
|
+
mimeType: "application/json",
|
|
38
|
+
text: JSON.stringify(await client.getSystemInfo(), null, 2),
|
|
39
|
+
}],
|
|
40
|
+
}));
|
|
41
|
+
// recordsafer://system/disk — 磁盘空间信息
|
|
42
|
+
server.resource("system-disk", "recordsafer://system/disk", { mimeType: "application/json", description: "Disk space information" }, async () => ({
|
|
43
|
+
contents: [{
|
|
44
|
+
uri: "recordsafer://system/disk",
|
|
45
|
+
mimeType: "application/json",
|
|
46
|
+
text: JSON.stringify(await client.getDiskSpace(), null, 2),
|
|
47
|
+
}],
|
|
48
|
+
}));
|
|
49
|
+
// recordsafer://docs/mixing-guide — 混音控制指南(内联文档)
|
|
50
|
+
// 内容仅在 LLM 调用 read_resource 时才会加载到上下文,平时只暴露描述
|
|
51
|
+
server.resource("mixing-guide", "recordsafer://docs/mixing-guide", { mimeType: "text/markdown", description: "Mixing Guide — Volume/Pan/Solo/Mute conversion rules and style presets. Read only when mixing help is needed." }, async () => ({
|
|
52
|
+
contents: [{
|
|
53
|
+
uri: "recordsafer://docs/mixing-guide",
|
|
54
|
+
mimeType: "text/markdown",
|
|
55
|
+
text: MIXING_GUIDE_MD,
|
|
56
|
+
}],
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 混音控制指南 — 内联 Markdown 内容
|
|
3
|
+
*
|
|
4
|
+
* 此文件将混音指南以 TypeScript 字符串常量形式嵌入,
|
|
5
|
+
* 避免在 npm 发布时暴露独立的 .md 文件。
|
|
6
|
+
*/
|
|
7
|
+
export declare const MIXING_GUIDE_MD = "# Record Safer Pro Mixing Guide\n\n## Overview\n\nRecord Safer Pro lets you adjust monitor mix settings in real time while recording.\nThese controls affect **monitor output only** and do not change the raw recorded audio.\n\n---\n\n## 1. Volume\n\n- Range: `0.0` to `2.0` (linear scale)\n- Default: `1.0` (unity gain, 0 dB)\n- Common mappings:\n - \"max\" -> `2.0` (+6 dB)\n - \"normal\" -> `1.0` (0 dB)\n - \"half\" -> `0.5` (-6 dB)\n - \"very low\" -> `0.1` to `0.2`\n - \"mute\" -> `0.0`\n\ndB conversion shortcut:\n- `linear = 10^(dB / 20)`\n- `-6 dB` -> about `0.5`\n- `-12 dB` -> about `0.25`\n- `+3 dB` -> about `1.41`\n\n---\n\n## 2. Pan\n\n- Range: `-1.0` (hard left) to `1.0` (hard right)\n- Center: `0.0`\n\nNatural language mapping:\n- \"L 100\" or \"hard left\" -> `-1.0`\n- \"L 50\" -> `-0.5`\n- \"L 10\" -> `-0.1`\n- \"center\" or \"C\" -> `0.0`\n- \"R 10\" -> `0.1`\n- \"R 50\" -> `0.5`\n- \"R 100\" or \"hard right\" -> `1.0`\n\n---\n\n## 3. Solo\n\n- Purpose: hear only solo-enabled channels while others are muted.\n- API: `set_channel_solo(index, solo)`\n- Multiple channels can be soloed at the same time.\n\nExamples:\n- \"solo channel 1\" -> enable solo on index 0\n- \"solo 1 and 2\" -> enable solo on index 0 and 1\n- \"clear all solo\" -> disable solo on all currently soloed channels\n\n---\n\n## 4. Mute\n\n- Purpose: silence selected channels.\n- API: `set_channel_mute(index, mute)`\n\nExamples:\n- \"mute channel 3\" -> `set_channel_mute(index: 2, mute: true)`\n- \"mute 3, 4, 5\" -> call tool for each channel\n\n---\n\n## 5. Phase Invert\n\n- Purpose: invert signal polarity (180 degrees) on a channel.\n- Use cases:\n - Multi-mic phase cancellation correction\n - Top/bottom snare or kick in/out alignment\n- API: `set_channel_phase_invert(index, inverted)`\n\n---\n\n## 6. Stereo Pair Operations\n\n- Merge two mono channels into stereo pair:\n - API: `merge_channels_stereo(leftIndex, rightIndex)`\n - Applies pan `-1.0` to left and `1.0` to right\n- Split stereo pair back to mono:\n - API: `split_stereo_channel(leftIndex, rightIndex)`\n - Resets pan to `0.0` and disables M/S processing\n\n---\n\n## 7. Safe Mode Behavior\n\nDuring safe mode recording (`safeMode: true`), monitoring, mixing, and level metering are disabled.\nTo re-enable monitoring and metering, stop recording or switch to Studio Mode.\n\n---\n\n## 8. Channel Index Rules\n\n- MCP APIs use **0-based** indices.\n- User language is usually 1-based.\n- Convert with: user channel number - 1 = API index.\n\n---\n\n## 9. Batch Operation Strategy\n\nBatch actions are a strong MCP use case:\n- \"set all channel volumes to 0.8\" -> loop `set_channel_volume`\n- \"mute tracks 3 through 8\" -> loop `set_channel_mute` for indices 2..7\n- \"center all channels\" -> loop `set_channel_pan(index, 0.0)`\n\n---\n\n## 10. Channel Name Recognition\n\nMap common channel names to likely sources:\n- Kick, BD, Bass Drum -> kick drum\n- Snare, SNR -> snare\n- HH, Hi-Hat -> hi-hat\n- Tom, Floor Tom -> toms\n- OH L/R, Overhead -> overhead stereo pair\n- Room L/R, Amb -> room mics\n- Vox, Vocal, Lead Vox -> lead vocal\n- BGV, Harmony, Choir -> backing vocals\n- GTR, EG, AG -> guitars\n- Bass, DI Bass -> bass\n- Keys, Piano, Synth -> keys\n- Talkback -> utility/talkback channel\n- Click, Metronome -> utility click track\n\n---\n\n## 11. Style Preset References\n\nUse these as starting points; adjust for arrangement and user intent.\n\n### 11.1 Drum Kit (Drummer's Perspective)\n\n- Kick: center, volume `1.0`\n- Snare: center to slight right, volume `1.0`\n- Hi-Hat: right `0.3` to `0.5`\n- Toms: spread from right to left\n- Overheads: L `-0.6` to `-0.8`, R `0.6` to `0.8`\n- Room pair: medium wide\n\n### 11.2 Rock Band\n\n- Lead vocal: center, prominent\n- Bass + kick: center\n- Dual electric guitars: wide L/R\n- Keys: moderate side placement\n- Backing vocals: symmetric L/R\n\n### 11.3 Pop\n\n- Lead vocal: center and priority\n- Bass/kick/snare: center\n- Pads/keys: wider stereo field\n- Backing vocals: layered and symmetric\n\n### 11.4 Classical / Orchestra (Audience Perspective)\n\n- Violins: left side\n- Violas/Cellos/Basses: right side\n- Woodwinds: center-left/right\n- Brass: center-right\n- Percussion: center to right\n\n### 11.5 Jazz Ensemble\n\n- Upright bass: center\n- Piano: stereo spread\n- Drums: narrower field than rock\n- Solo instrument: center or slight offset\n\n---\n\n## 12. AI Decision Workflow\n\nWhen users ask for automatic mixing help:\n1. Call `get_channels` first.\n2. Infer instrument types from channel names.\n3. Detect style from user request and instrument set.\n4. Apply pan layout first, then volume, then stereo pairing.\n5. Mute utility channels (talkback/click) when appropriate.\n6. If changing many channels, summarize the plan before executing.\n";
|
|
8
|
+
//# sourceMappingURL=mixing-guide-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mixing-guide-content.d.ts","sourceRoot":"","sources":["../../src/resources/mixing-guide-content.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,eAAe,itJA0L3B,CAAC"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 混音控制指南 — 内联 Markdown 内容
|
|
3
|
+
*
|
|
4
|
+
* 此文件将混音指南以 TypeScript 字符串常量形式嵌入,
|
|
5
|
+
* 避免在 npm 发布时暴露独立的 .md 文件。
|
|
6
|
+
*/
|
|
7
|
+
export const MIXING_GUIDE_MD = `# Record Safer Pro Mixing Guide
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
Record Safer Pro lets you adjust monitor mix settings in real time while recording.
|
|
12
|
+
These controls affect **monitor output only** and do not change the raw recorded audio.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 1. Volume
|
|
17
|
+
|
|
18
|
+
- Range: \`0.0\` to \`2.0\` (linear scale)
|
|
19
|
+
- Default: \`1.0\` (unity gain, 0 dB)
|
|
20
|
+
- Common mappings:
|
|
21
|
+
- "max" -> \`2.0\` (+6 dB)
|
|
22
|
+
- "normal" -> \`1.0\` (0 dB)
|
|
23
|
+
- "half" -> \`0.5\` (-6 dB)
|
|
24
|
+
- "very low" -> \`0.1\` to \`0.2\`
|
|
25
|
+
- "mute" -> \`0.0\`
|
|
26
|
+
|
|
27
|
+
dB conversion shortcut:
|
|
28
|
+
- \`linear = 10^(dB / 20)\`
|
|
29
|
+
- \`-6 dB\` -> about \`0.5\`
|
|
30
|
+
- \`-12 dB\` -> about \`0.25\`
|
|
31
|
+
- \`+3 dB\` -> about \`1.41\`
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 2. Pan
|
|
36
|
+
|
|
37
|
+
- Range: \`-1.0\` (hard left) to \`1.0\` (hard right)
|
|
38
|
+
- Center: \`0.0\`
|
|
39
|
+
|
|
40
|
+
Natural language mapping:
|
|
41
|
+
- "L 100" or "hard left" -> \`-1.0\`
|
|
42
|
+
- "L 50" -> \`-0.5\`
|
|
43
|
+
- "L 10" -> \`-0.1\`
|
|
44
|
+
- "center" or "C" -> \`0.0\`
|
|
45
|
+
- "R 10" -> \`0.1\`
|
|
46
|
+
- "R 50" -> \`0.5\`
|
|
47
|
+
- "R 100" or "hard right" -> \`1.0\`
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 3. Solo
|
|
52
|
+
|
|
53
|
+
- Purpose: hear only solo-enabled channels while others are muted.
|
|
54
|
+
- API: \`set_channel_solo(index, solo)\`
|
|
55
|
+
- Multiple channels can be soloed at the same time.
|
|
56
|
+
|
|
57
|
+
Examples:
|
|
58
|
+
- "solo channel 1" -> enable solo on index 0
|
|
59
|
+
- "solo 1 and 2" -> enable solo on index 0 and 1
|
|
60
|
+
- "clear all solo" -> disable solo on all currently soloed channels
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 4. Mute
|
|
65
|
+
|
|
66
|
+
- Purpose: silence selected channels.
|
|
67
|
+
- API: \`set_channel_mute(index, mute)\`
|
|
68
|
+
|
|
69
|
+
Examples:
|
|
70
|
+
- "mute channel 3" -> \`set_channel_mute(index: 2, mute: true)\`
|
|
71
|
+
- "mute 3, 4, 5" -> call tool for each channel
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 5. Phase Invert
|
|
76
|
+
|
|
77
|
+
- Purpose: invert signal polarity (180 degrees) on a channel.
|
|
78
|
+
- Use cases:
|
|
79
|
+
- Multi-mic phase cancellation correction
|
|
80
|
+
- Top/bottom snare or kick in/out alignment
|
|
81
|
+
- API: \`set_channel_phase_invert(index, inverted)\`
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 6. Stereo Pair Operations
|
|
86
|
+
|
|
87
|
+
- Merge two mono channels into stereo pair:
|
|
88
|
+
- API: \`merge_channels_stereo(leftIndex, rightIndex)\`
|
|
89
|
+
- Applies pan \`-1.0\` to left and \`1.0\` to right
|
|
90
|
+
- Split stereo pair back to mono:
|
|
91
|
+
- API: \`split_stereo_channel(leftIndex, rightIndex)\`
|
|
92
|
+
- Resets pan to \`0.0\` and disables M/S processing
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 7. Safe Mode Behavior
|
|
97
|
+
|
|
98
|
+
During safe mode recording (\`safeMode: true\`), monitoring, mixing, and level metering are disabled.
|
|
99
|
+
To re-enable monitoring and metering, stop recording or switch to Studio Mode.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 8. Channel Index Rules
|
|
104
|
+
|
|
105
|
+
- MCP APIs use **0-based** indices.
|
|
106
|
+
- User language is usually 1-based.
|
|
107
|
+
- Convert with: user channel number - 1 = API index.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 9. Batch Operation Strategy
|
|
112
|
+
|
|
113
|
+
Batch actions are a strong MCP use case:
|
|
114
|
+
- "set all channel volumes to 0.8" -> loop \`set_channel_volume\`
|
|
115
|
+
- "mute tracks 3 through 8" -> loop \`set_channel_mute\` for indices 2..7
|
|
116
|
+
- "center all channels" -> loop \`set_channel_pan(index, 0.0)\`
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 10. Channel Name Recognition
|
|
121
|
+
|
|
122
|
+
Map common channel names to likely sources:
|
|
123
|
+
- Kick, BD, Bass Drum -> kick drum
|
|
124
|
+
- Snare, SNR -> snare
|
|
125
|
+
- HH, Hi-Hat -> hi-hat
|
|
126
|
+
- Tom, Floor Tom -> toms
|
|
127
|
+
- OH L/R, Overhead -> overhead stereo pair
|
|
128
|
+
- Room L/R, Amb -> room mics
|
|
129
|
+
- Vox, Vocal, Lead Vox -> lead vocal
|
|
130
|
+
- BGV, Harmony, Choir -> backing vocals
|
|
131
|
+
- GTR, EG, AG -> guitars
|
|
132
|
+
- Bass, DI Bass -> bass
|
|
133
|
+
- Keys, Piano, Synth -> keys
|
|
134
|
+
- Talkback -> utility/talkback channel
|
|
135
|
+
- Click, Metronome -> utility click track
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 11. Style Preset References
|
|
140
|
+
|
|
141
|
+
Use these as starting points; adjust for arrangement and user intent.
|
|
142
|
+
|
|
143
|
+
### 11.1 Drum Kit (Drummer's Perspective)
|
|
144
|
+
|
|
145
|
+
- Kick: center, volume \`1.0\`
|
|
146
|
+
- Snare: center to slight right, volume \`1.0\`
|
|
147
|
+
- Hi-Hat: right \`0.3\` to \`0.5\`
|
|
148
|
+
- Toms: spread from right to left
|
|
149
|
+
- Overheads: L \`-0.6\` to \`-0.8\`, R \`0.6\` to \`0.8\`
|
|
150
|
+
- Room pair: medium wide
|
|
151
|
+
|
|
152
|
+
### 11.2 Rock Band
|
|
153
|
+
|
|
154
|
+
- Lead vocal: center, prominent
|
|
155
|
+
- Bass + kick: center
|
|
156
|
+
- Dual electric guitars: wide L/R
|
|
157
|
+
- Keys: moderate side placement
|
|
158
|
+
- Backing vocals: symmetric L/R
|
|
159
|
+
|
|
160
|
+
### 11.3 Pop
|
|
161
|
+
|
|
162
|
+
- Lead vocal: center and priority
|
|
163
|
+
- Bass/kick/snare: center
|
|
164
|
+
- Pads/keys: wider stereo field
|
|
165
|
+
- Backing vocals: layered and symmetric
|
|
166
|
+
|
|
167
|
+
### 11.4 Classical / Orchestra (Audience Perspective)
|
|
168
|
+
|
|
169
|
+
- Violins: left side
|
|
170
|
+
- Violas/Cellos/Basses: right side
|
|
171
|
+
- Woodwinds: center-left/right
|
|
172
|
+
- Brass: center-right
|
|
173
|
+
- Percussion: center to right
|
|
174
|
+
|
|
175
|
+
### 11.5 Jazz Ensemble
|
|
176
|
+
|
|
177
|
+
- Upright bass: center
|
|
178
|
+
- Piano: stereo spread
|
|
179
|
+
- Drums: narrower field than rock
|
|
180
|
+
- Solo instrument: center or slight offset
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 12. AI Decision Workflow
|
|
185
|
+
|
|
186
|
+
When users ask for automatic mixing help:
|
|
187
|
+
1. Call \`get_channels\` first.
|
|
188
|
+
2. Infer instrument types from channel names.
|
|
189
|
+
3. Detect style from user request and instrument set.
|
|
190
|
+
4. Apply pan layout first, then volume, then stereo pairing.
|
|
191
|
+
5. Mute utility channels (talkback/click) when appropriate.
|
|
192
|
+
6. If changing many channels, summarize the plan before executing.
|
|
193
|
+
`;
|
|
194
|
+
//# sourceMappingURL=mixing-guide-content.js.map
|