record-safer-mcp-server 1.0.3 → 1.0.5

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.
@@ -2,7 +2,7 @@
2
2
  * Record Safer API Client — 统一 HTTP 客户端适配层
3
3
  * 封装与 Backend (record_safer_headless) 的所有 HTTP 通信
4
4
  */
5
- import type { DeviceInfo, BufferSizeInfo, SignalInfo, LevelData, SessionToolParams, SessionResult, RecordingOptions, RecordingStartResult, RecordingStopResult, RecordingStatus, OutputPathInfo, AudioFormatInfo, AudioFormatConfig, Settings, MonitorStatus, MixLevels, TrackInfo, MarkerInfo, MarkerResult, VolumeInfo, DriveInfo, ValidationResult, SystemInfo, DiskSpaceInfo, DiskHealthResult, UpdateInfo, UpdateBadge, DownloadProgress, ActivationResult, ActivationStatus, ActivationData, RestoreResult, SplitParams, SplitResult, SplitProgress, TelemetryData } from "./types.js";
5
+ import type { DeviceInfo, BufferSizeInfo, SignalInfo, LevelData, SessionToolParams, SessionResult, RecordingOptions, RecordingStartResult, RecordingStopResult, RecordingStatus, OutputPathInfo, AudioFormatInfo, AudioFormatConfig, Settings, MonitorStatus, MixLevels, TrackInfo, MarkerInfo, MarkerResult, VolumeInfo, DriveInfo, ValidationResult, SystemInfo, DiskSpaceInfo, DiskHealthResult, UpdateInfo, UpdateBadge, DownloadProgress, ActivationResult, ActivationStatus, ActivationData, RestoreResult, SplitParams, SplitResult, SplitProgress, TelemetryData, UIState } from "./types.js";
6
6
  /** API Client 配置 */
7
7
  export interface ApiClientConfig {
8
8
  baseUrl: string;
@@ -101,6 +101,7 @@ export declare class RecordSaferClient {
101
101
  validateStoragePath(storagePath: string): Promise<ValidationResult>;
102
102
  lockStorage(): Promise<void>;
103
103
  unlockStorage(): Promise<void>;
104
+ getUIState(): Promise<UIState>;
104
105
  getSystemInfo(): Promise<SystemInfo>;
105
106
  getDiskSpace(): Promise<DiskSpaceInfo>;
106
107
  checkDiskHealth(): Promise<DiskHealthResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -387,6 +387,9 @@ export class RecordSaferClient {
387
387
  await this.request("/api/storage/unlock", { method: "POST" });
388
388
  }
389
389
  // ===== 系统 =====
390
+ async getUIState() {
391
+ return this.request("/api/ui/state");
392
+ }
390
393
  async getSystemInfo() {
391
394
  return this.request("/api/system/info");
392
395
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAiD9C,gCAAgC;AAChC,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEf;IACA;IAFlB,YACkB,UAAkB,EAClB,YAAoB;QAEpC,KAAK,CAAC,QAAQ,UAAU,KAAK,YAAY,EAAE,CAAC,CAAC;QAH7B,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAQ;QAGpC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACxC,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;IACzE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,oBAAoB,IAAI,EAAE,CAAC;IACpC,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,uBAAuB,CAAC;AACjE,CAAC;AAGD;;;;GAIG;AACH,KAAK,UAAU,0BAA0B,CAAC,MAAoB,EAAE,SAAwB,EAAE,SAAS,GAAG,KAAK;IACzG,OAAO;IACP,IAAI,CAAC;QACH,QAAQ,CAAC,4BAA4B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,WAAW;IACX,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,SAAS,EAAE,CAAC;QACtC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,OAAO,GAA2B,EAAE,CAAC;YAC3C,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,SAAS,EAAE,CAAC;YACnD,CAAC;YACD,0BAA0B;YAC1B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,kBAAkB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnG,IAAI,IAAI,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,aAAa;QACf,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oCAAoC;AACpC,MAAM,OAAO,iBAAiB;IACX,eAAe,CAAqB;IACpC,SAAS,CAAgB;IAClC,UAAU,GAAG,KAAK,CAAC,CAAC,aAAa;IAEzC,YAAY,MAAiC;QAC3C,IAAI,CAAC,eAAe,GAAG,MAAM,EAAE,OAAO,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,aAAa,EAAE,CAAC;IACxD,CAAC;IAEO,UAAU;QAChB,OAAO,IAAI,CAAC,eAAe,IAAI,cAAc,EAAE,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB;QAC5B,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAE5B,uBAAuB;QACvB,IAAI,CAAC;YACH,MAAM,OAAO,GAA2B,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YACxD,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,kBAAkB,EAAE;gBAC/D,OAAO;gBACP,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,OAAO;YACT,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;QAED,eAAe;QACf,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAC/C,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EACvB,IAAI,CAAC,SAAS,CACf,CAAC;QACF,IAAI,QAAQ,EAAE,CAAC;YACb,uCAAuC;YACvC,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;YACjC,IAAI,QAAQ,EAAE,CAAC;gBACZ,IAAY,CAAC,SAAS,GAAG,QAAQ,CAAC;YACrC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAI,OAAe,EAAE,OAAqB;QACrD,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,OAAO,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,GAAG,OAAO;YACV,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;IACtC,CAAC;IAED,mBAAmB;IAEnB,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,OAAO,CAAe,cAAc,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,CAAC,OAAO,CAAe,sBAAsB,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,OAAO,CAAiB,gBAAgB,QAAQ,eAAe,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC,OAAO,CAAa,gBAAgB,QAAQ,UAAU,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgB;QACpC,OAAO,IAAI,CAAC,OAAO,CAAY,gBAAgB,QAAQ,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,IAAI,CAAC,OAAO,CAAO,0BAA0B,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,mBAAmB;IAEnB,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,OAAO,CAAO,uBAAuB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,CAAC,OAAO,CAAO,yBAAyB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,IAAI,CAAC,OAAO,CAAO,8BAA8B,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,IAAI,CAAC,OAAO,CAAO,6BAA6B,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,oBAAoB;IAEpB;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAyB;QAC/C,sDAAsD;QACtD,iBAAiB;QACjB,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE5C,eAAe;QACf,MAAM,IAAI,CAAC,cAAc,CAAC;YACxB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QAEH,cAAc;QACd,MAAM,cAAc,GAAkB;YACpC,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;YAC7C,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnC,EAAE,EAAE,EAAE;gBACN,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,WAAW,EAAE,EAAE;aACtB,CAAC,CAAC;YACH,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAgB,yBAAyB,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;SACrC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,OAAO,CAAO,oBAAoB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAA0B;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAuB,sBAAsB,EAAE;YAChE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;SACpD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,OAAO,CAAsB,qBAAqB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,OAAO,IAAI,CAAC,OAAO,CAAkB,uBAAuB,CAAC,CAAC;IAChE,CAAC;IAED,iBAAiB;IAEjB,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,OAAO,CAAiB,yBAAyB,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAkB;QACpC,MAAM,IAAI,CAAC,OAAO,CAAO,yBAAyB,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,OAAO,CAAkB,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAyB;QAC5C,MAAM,IAAI,CAAC,OAAO,CAAO,oBAAoB,EAAE;YAC7C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,OAAO,CAAW,eAAe,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAA2B;QAC9C,MAAM,IAAI,CAAC,OAAO,CAAO,eAAe,EAAE;YACxC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;IAErB,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,OAAO,CAAgB,qBAAqB,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,OAAO,CAAO,oBAAoB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,OAAO,CAAO,mBAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,GAAY;QAChD,MAAM,IAAI,CAAC,OAAO,CAAO,qBAAqB,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;SACvE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,OAAO,CAAY,yBAAyB,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,MAAc;QAClD,MAAM,IAAI,CAAC,OAAO,CAAO,wBAAwB,KAAK,SAAS,EAAE;YAC/D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,GAAW;QAC5C,MAAM,IAAI,CAAC,OAAO,CAAO,wBAAwB,KAAK,MAAM,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAAa;QACnC,MAAM,IAAI,CAAC,OAAO,CAAO,wBAAwB,KAAK,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAAa;QACnC,MAAM,IAAI,CAAC,OAAO,CAAO,wBAAwB,KAAK,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,KAAa,EAAE,OAAgB;QACvD,MAAM,IAAI,CAAC,OAAO,CAAO,wBAAwB,KAAK,aAAa,EAAE;YACnE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,KAAa;QAC1C,MAAM,IAAI,CAAC,OAAO,CAAO,wBAAwB,KAAK,eAAe,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,oBAAoB;IAEpB,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,CAAc,uBAAuB,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,MAAM,IAAI,CAAC,OAAO,CAAO,eAAe,OAAO,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,OAAO,CAAe,cAAc,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAc;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAe,kBAAkB,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;SAClE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,OAAO,CAAO,mBAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,IAAY;QACzC,MAAM,IAAI,CAAC,OAAO,CAAO,gBAAgB,EAAE,SAAS,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,IAAY;QAC1C,MAAM,IAAI,CAAC,OAAO,CAAO,iBAAiB,EAAE,SAAS,EAAE;YACrD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU,EAAE,KAAa;QAC7C,MAAM,IAAI,CAAC,OAAO,CAAO,iBAAiB,EAAE,QAAQ,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;IAEjB,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,OAAO,CAAe,sBAAsB,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,OAAO,IAAI,CAAC,OAAO,CAAc,uBAAuB,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,WAAmB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAmB,uBAAuB,EAAE;YAC7D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,OAAO,CAAO,mBAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,OAAO,CAAO,qBAAqB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,iBAAiB;IAEjB,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,CAAU,eAAe,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,OAAO,CAAa,kBAAkB,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,OAAO,CAAgB,wBAAwB,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,OAAO,IAAI,CAAC,OAAO,CAAmB,yBAAyB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,OAAO,CAAa,oBAAoB,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,OAAO,CAAc,0BAA0B,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,OAAO,CAAO,4BAA4B,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,OAAO,IAAI,CAAC,OAAO,CAAmB,+BAA+B,CAAC,CAAC;IACzE,CAAC;IAED,iBAAiB;IAEjB,KAAK,CAAC,eAAe,CAAC,GAAW;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAmB,0BAA0B,EAAE;YAChE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,OAAO,IAAI,CAAC,OAAO,CAAmB,wBAAwB,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAoB;QACtC,MAAM,IAAI,CAAC,OAAO,CAAO,qBAAqB,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,OAAO,CAAgB,yBAAyB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,iBAAiB;IAEjB,KAAK,CAAC,UAAU,CAAC,MAAmB;QAClC,OAAO,IAAI,CAAC,OAAO,CAAc,kBAAkB,EAAE;YACnD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,OAAO,CAAgB,2BAA2B,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,OAAO,CAAO,yBAAyB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,mBAAmB;IAEnB,KAAK,CAAC,aAAa,CAAC,IAAmB;QACrC,MAAM,IAAI,CAAC,OAAO,CAAO,gCAAgC,EAAE;YACzD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,OAAO,CAAO,eAAe,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;CACF"}
package/dist/index.js CHANGED
@@ -17,30 +17,41 @@ import { registerResources } from "./resources/index.js";
17
17
  import { registerPrompts } from "./prompts/index.js";
18
18
  const server = new McpServer({
19
19
  name: "record-safer-pro",
20
- version: "2.0.0",
20
+ version: "2.1.0",
21
21
  description: `Record Safer Pro MCP Server — 专业多通道录音软件 AI 接口。
22
22
 
23
- ⚠️ 核心行为准则状态感知式响应(非流程式引导):
23
+ ⚠️ 核心安全准则DADAO Engine 安全架构:
24
24
 
25
- Record Safer Pro 是流程式软件:设备选择 参数配置 → 会话初始化 → 录音。
26
- MCP 的价值不在于替代 GUI 完成基础配置流程,而在于:在用户已完成配置后提供高效操作、智能辅助和故障诊断。
25
+ Record Safer Pro 基于 DADAO Engine 构建,出于录音安全性设计,
26
+ 会话初始化和开始录音必须由用户在 Record Safer Pro 界面上手动完成。
27
+ MCP 不具备初始化会话或开始录音的权限。
27
28
 
28
- 【黄金法则】收到用户请求时,先调用 get_recording_status 判断当前状态,然后:
29
+ 【前置条件 MCP 工具生效的唯一前提】
30
+ 用户必须已在 Record Safer Pro 界面上完成以下操作:
31
+ 1. 选择音频设备
32
+ 2. 配置录音参数(采样率、位深度、通道、输出路径、格式)
33
+ 3. 进入录音控制台界面(会话已初始化,引擎就绪)
34
+
35
+ 只有当 get_recording_status 返回 deviceHealth.alive: true 时,MCP 工具才可正常工作。
36
+
37
+ 【当用户请求录音相关操作但会话未初始化时】
38
+ 必须告知用户:
39
+ "由于 DADAO Engine 的安全架构设计,录音会话的初始化和启动必须在 Record Safer Pro 界面上手动完成。
40
+ 请先打开 Record Safer Pro,完成设备选择和参数配置,进入录音控制台界面后,我就可以协助您进行录音操作了。"
41
+
42
+ 【黄金法则】收到用户请求时,先调用 get_recording_status 判断当前状态:
29
43
 
30
44
  状态 A — 已在录音中(recording: true):
31
45
  → 直接执行用户请求(加标记、停止录音、查状态、调混音等)
32
46
  → 这是 MCP 最有价值的场景,一句话完成操作
33
47
 
34
- 状态 B — 会话已初始化但未录音(引擎状态 initialized):
35
- 可直接 start_recording,无需重新配置
36
- 可调整监听、查看设备信息等
48
+ 状态 B — 会话已初始化但未录音(deviceHealth.alive: true):
49
+ 可调整监听、查看设备信息、查询状态等
50
+ 注意:开始录音也必须由用户在界面上手动操作
37
51
 
38
- 状态 C — 未初始化(无活跃会话):
39
- 如果用户说"录音"/"开始录音":
40
- 告诉用户"请先在 Record Safer Pro 界面上完成设备选择和参数配置,配置好后告诉我,我来帮你开始录音。"
41
- 不要逐个询问设备、采样率、位深度、通道等参数 — 这比 GUI 操作更慢更痛苦。
42
- → 唯一例外:用户明确提供了所有参数(如"用 Schoeps 声卡,96kHz,24bit,全通道,存桌面,WAV 格式"),
43
- 此时可以自动完成 list_audio_devices → initialize_session 流程。
52
+ 状态 C — 未初始化(deviceHealth 为空或 alive: false):
53
+ MCP 工具不可用(设备查询类除外)
54
+ 引导用户去 Record Safer Pro 界面完成配置
44
55
 
45
56
  【MCP 擅长的场景】
46
57
  1. 录音中的快捷操作:"加个标记叫副歌"、"停止录音"、"现在录了多久了"
@@ -49,29 +60,16 @@ MCP 的价值不在于替代 GUI 完成基础配置流程,而在于:在用
49
60
  4. 故障诊断:"为什么没声音"、"检查设备状态"
50
61
  5. 系统管理:更新、许可证、设置调整
51
62
 
52
- 【MCP 不擅长的场景应引导用户去 GUI
53
- 1. 首次设备选择(需要看到设备列表、通道标签)
54
- 2. 采样率/位深度/格式的初始配置(GUI 下拉菜单更直观)
55
- 3. 输出路径选择(需要文件浏览器)
56
- 4. 通道映射配置(需要可视化界面)
63
+ 【MCP 没有权限的操作必须在 GUI 完成】
64
+ 1. 初始化录音会话(设备选择、参数配置)
65
+ 2. 开始录音
66
+ 3. 这是 DADAO Engine 安全架构的核心设计,不可绕过
57
67
 
58
- 【致命操作安全规则 — 必须严格遵守】
59
-
60
- start_recording 和 stop_recording 是不可撤销的致命操作。
61
- 必须满足以下条件才能调用:
62
- 1. 用户在当前消息中明确表达了"开始录音"或"停止录音"的意图
68
+ 【致命操作安全规则 — stop_recording】
69
+ stop_recording 是不可撤销的操作。必须满足以下条件才能调用:
70
+ 1. 用户在当前消息中明确表达了"停止录音"的意图
63
71
  2. 不能因为上下文暗示或流程推断就自动调用
64
- 3. 如果用户说的是模糊表达(如"准备好了""可以了"),需要明确追问:"确认开始录音吗?"
65
- 4. 绝对禁止在用户没有明确指令的情况下调用 start_recording 或 stop_recording
66
-
67
- 【默认参数配置流程 — 先配置再确认】
68
-
69
- 当用户提供了部分参数需要用默认值补全时,遵循以下流程:
70
- 1. 先用默认值完成 initialize_session 配置
71
- 2. 配置完成后,向用户展示完整的配置摘要(设备名、采样率、位深度、通道数、输出路径、格式)
72
- 3. 等待用户确认:"以上配置正确吗?确认后我将开始录音。"
73
- 4. 如果用户要求修改某个参数,用新参数重新调用 initialize_session
74
- 5. 只有用户明确确认后,才能调用 start_recording`,
72
+ 3. 如果用户说的是模糊表达(如"差不多了""可以了"),需要明确追问:"确认停止录音吗?"`,
75
73
  });
76
74
  registerDeviceTools(server);
77
75
  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,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAqDmB;CACjC,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CAmDgC;CAC9C,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"}
@@ -3,9 +3,9 @@
3
3
  * MCP Prompts — State-aware prompt templates
4
4
  *
5
5
  * 设计原则:
6
- * 1. 先感知状态,再决定行动
7
- * 2. 不做流程式引导,不逐个询问参数
8
- * 3. 明确区分"MCP 擅长的"和"应该去 GUI 做的"
6
+ * 1. DADAO Engine 安全架构:会话初始化和开始录音必须在 GUI 手动完成
7
+ * 2. MCP 在用户进入录音控制台后提供辅助操作
8
+ * 3. 先感知状态,再决定行动
9
9
  */
10
10
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
11
11
  export declare function registerPrompts(server: McpServer): void;
@@ -1 +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;AAGpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QAkMhD"}
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;AAKpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QA2LhD"}
@@ -3,11 +3,12 @@
3
3
  * MCP Prompts — State-aware prompt templates
4
4
  *
5
5
  * 设计原则:
6
- * 1. 先感知状态,再决定行动
7
- * 2. 不做流程式引导,不逐个询问参数
8
- * 3. 明确区分"MCP 擅长的"和"应该去 GUI 做的"
6
+ * 1. DADAO Engine 安全架构:会话初始化和开始录音必须在 GUI 手动完成
7
+ * 2. MCP 在用户进入录音控制台后提供辅助操作
8
+ * 3. 先感知状态,再决定行动
9
9
  */
10
10
  import { z } from "zod";
11
+ const DADAO_SAFETY_NOTICE = `由于 DADAO Engine 的安全架构设计,录音会话的初始化和启动必须在 Record Safer Pro 界面上手动完成。请先打开 Record Safer Pro,完成设备选择和参数配置,进入录音控制台界面后,AI 助手就可以协助您进行录音操作了。`;
11
12
  export function registerPrompts(server) {
12
13
  // recording_assistant — 状态感知式录音助手
13
14
  server.prompt("recording_assistant", "录音助手 / Recording Assistant — 根据当前状态智能响应", { task: z.string().describe("用户的录音相关请求 / User's recording-related request") }, ({ task }) => ({
@@ -17,6 +18,11 @@ export function registerPrompts(server) {
17
18
  type: "text",
18
19
  text: `你是 Record Safer Pro 的录音助手。用户请求:${task}
19
20
 
21
+ 【DADAO Engine 安全架构 — 核心约束】
22
+ MCP 不具备初始化录音会话和开始录音的权限。这些操作必须由用户在 Record Safer Pro 界面上手动完成。
23
+ 当用户要求初始化会话或开始录音时,回复:
24
+ "${DADAO_SAFETY_NOTICE}"
25
+
20
26
  【行动准则 — 先查状态再决策】
21
27
 
22
28
  第一步:调用 get_recording_status 获取当前状态。
@@ -29,15 +35,15 @@ export function registerPrompts(server) {
29
35
  这是 MCP 最有价值的场景 — 一句话完成操作,比 GUI 更快。
30
36
 
31
37
  ■ 如果会话已初始化但未录音(deviceHealth.alive: true):
32
- 可直接 start_recording。也可以调整监听、查看设备信息。
38
+ 可以调整监听、查看设备信息、查询状态。
39
+ 注意:开始录音必须由用户在界面上手动操作,MCP 无此权限。
33
40
 
34
41
  ■ 如果未初始化(deviceHealth 为空或 alive: false):
35
- 不要逐个询问设备、采样率、位深度、通道、输出路径、格式等参数。
36
- 告诉用户:"请先在 Record Safer Pro 界面上完成设备选择和参数配置,配置好后告诉我即可。"
37
- 唯一例外:用户在请求中已明确提供了所有必要参数。
42
+ MCP 大部分工具不可用。告知用户:
43
+ "${DADAO_SAFETY_NOTICE}"
38
44
 
39
45
  【绝对不要做的事】
40
- - 不要连续问用户 3 个以上的配置问题
46
+ - 不要尝试调用 initialize_session 或 start_recording(这些工具已被移除)
41
47
  - 不要列出设备的技术细节(UID、内部 ID)给用户看
42
48
  - 不要在用户没要求时主动调用 write/recording_control 类工具`,
43
49
  },
@@ -51,6 +57,9 @@ export function registerPrompts(server) {
51
57
  type: "text",
52
58
  text: `你是 Record Safer Pro 的故障诊断专家。用户报告了以下问题:${symptom}
53
59
 
60
+ 【前提】如果会话未初始化,先提醒用户:
61
+ "${DADAO_SAFETY_NOTICE}"
62
+
54
63
  【诊断流程 — 自动执行,不需要用户额外输入】
55
64
 
56
65
  请按顺序自动调用以下工具收集信息(不要逐个问用户是否要执行):
@@ -79,6 +88,9 @@ export function registerPrompts(server) {
79
88
  type: "text",
80
89
  text: `请生成一份${isDetailed ? "详细" : "简要"}录音报告。
81
90
 
91
+ 【前提】此功能需要会话已初始化。如果未初始化,提醒用户:
92
+ "${DADAO_SAFETY_NOTICE}"
93
+
82
94
  自动调用以下工具收集数据(无需询问用户):
83
95
  1. get_recording_status — 录音状态
84
96
  2. list_tracks — 轨道信息
@@ -97,7 +109,7 @@ ${isDetailed ? "- 系统资源使用情况\n- 磁盘空间与健康状态\n- 完
97
109
  }],
98
110
  };
99
111
  });
100
- // quick_action — 快捷操作助手(新增)
112
+ // quick_action — 快捷操作助手
101
113
  server.prompt("quick_action", "快捷操作 / Quick Action — 录音中的快速命令", { command: z.string().describe("快捷命令 / Quick command (e.g. 'mark', 'stop', 'status')") }, ({ command }) => ({
102
114
  messages: [{
103
115
  role: "user",
@@ -105,64 +117,46 @@ ${isDetailed ? "- 系统资源使用情况\n- 磁盘空间与健康状态\n- 完
105
117
  type: "text",
106
118
  text: `快捷操作:${command}
107
119
 
108
- 先调用 get_recording_status 确认当前状态,然后:
120
+ 先调用 get_recording_status 确认当前状态。
121
+
122
+ 如果会话未初始化,回复:
123
+ "${DADAO_SAFETY_NOTICE}"
124
+
125
+ 如果会话已就绪,根据命令执行:
109
126
  - "mark" / "标记" → add_marker()
110
127
  - "mark XXX" / "标记 XXX" → add_marker(label: "XXX")
111
- - "stop" / "停" → stop_recording()
128
+ - "stop" / "停" → stop_recording()(需用户明确确认)
112
129
  - "status" / "状态" → 返回当前录音状态摘要
113
130
  - "mute N" / "静音 N" → toggle_channel_mute(index: N-1)
114
131
  - "solo N" / "独奏 N" → toggle_channel_solo(index: N-1)
115
132
 
116
- 如果当前未在录音,告知用户当前状态。`,
133
+ 注意:MCP 没有开始录音的权限,"start"/"录音" 命令应引导用户在界面上操作。`,
117
134
  },
118
135
  }],
119
136
  }));
120
- // safe_recording — 安全录音操作助手(致命操作保护)
137
+ // safe_recording — 安全录音操作助手(仅停止录音)
121
138
  server.prompt("safe_recording", "安全录音 / Safe Recording — 带确认流程的录音操作", {
122
- action: z.enum(["start", "stop", "configure"]).describe("操作类型 / Action type"),
123
- params: z.string().optional().describe("可选参数 / Optional parameters (JSON or natural language)"),
124
- }, ({ action, params }) => ({
139
+ action: z.enum(["stop", "status"]).describe("操作类型 / Action type"),
140
+ }, ({ action }) => ({
125
141
  messages: [{
126
142
  role: "user",
127
143
  content: {
128
144
  type: "text",
129
- text: `安全录音操作:${action}${params ? `,参数:${params}` : ""}
130
-
131
- 【致命操作安全规则 必须严格遵守】
132
-
133
- start_recording 和 stop_recording 是不可撤销的致命操作。
134
- - 必须用户在消息中明确说出"开始"/"录音"/"停止"等关键词才能执行
135
- - 模糊表达("准备好了"、"可以了"、"OK")不能直接触发,需追问确认
136
- - 绝对禁止自动推断执行
137
-
138
- 【默认参数配置流程】(action = "configure" 或 "start")
139
-
140
- 如果需要初始化会话(未初始化状态):
141
- 1. 调用 get_recording_status 检查当前状态
142
- 2. 如果用户提供了部分参数,用默认值补全其余参数
143
- 3. 调用 list_audio_devices 获取设备信息(用于补全 deviceId、sampleRate、channels)
144
- 4. 调用 get_output_path 获取当前输出路径(用于补全 outputPath)
145
- 5. 执行 initialize_session 完成配置
146
- 6. 向用户展示完整配置摘要:
147
- - 设备:[设备名称]
148
- - 采样率:[sampleRate] Hz
149
- - 位深度:[bitDepth]
150
- - 通道:[通道数量] 个通道
151
- - 输出路径:[outputPath]
152
- - 格式:[audioFormat]
153
- 7. 询问用户:"以上配置正确吗?如需修改请告诉我,确认无误后请说'开始录音'。"
154
- 8. 等待用户明确确认后才调用 start_recording
155
-
156
- 如果用户要修改参数:
157
- - 用新参数重新调用 initialize_session
158
- - 再次展示更新后的配置摘要
159
- - 再次等待确认
145
+ text: `安全录音操作:${action}
146
+
147
+ 【DADAO Engine 安全架构】
148
+ MCP 不具备初始化会话和开始录音的权限。如果用户请求这些操作,回复:
149
+ "${DADAO_SAFETY_NOTICE}"
160
150
 
161
151
  action = "stop" 时:
162
152
  1. 调用 get_recording_status 确认正在录音
163
153
  2. 告知用户当前录音时长和轨道信息
164
154
  3. 明确询问:"确认停止录音吗?此操作不可撤销。"
165
- 4. 只有用户明确回复"停止"/"确认"/"停"才执行 stop_recording`,
155
+ 4. 只有用户明确回复"停止"/"确认"/"停"才执行 stop_recording
156
+
157
+ action = "status" 时:
158
+ 1. 调用 get_recording_status 获取完整状态
159
+ 2. 以简洁格式展示关键信息`,
166
160
  },
167
161
  }],
168
162
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ const deviceIdSchema = {
13
13
  };
14
14
  export function registerDeviceTools(server) {
15
15
  const client = new RecordSaferClient();
16
- server.tool("list_audio_devices", `列出所有音频输入设备 / List all audio input devices [read]。
16
+ server.tool("list_audio_devices", `[录音前配置 / Pre-Recording Phase] 列出所有音频输入设备 / List all audio input devices [read]。
17
17
 
18
18
  返回数据说明:
19
19
  - id: 设备唯一标识,用于 initialize_session 的 deviceId 参数
@@ -1 +1 @@
1
- {"version":3,"file":"levels.d.ts","sourceRoot":"","sources":["../../src/tools/levels.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,QA4CnD"}
1
+ {"version":3,"file":"levels.d.ts","sourceRoot":"","sources":["../../src/tools/levels.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,QAkDnD"}
@@ -7,11 +7,21 @@
7
7
  * 主要用于故障诊断或特殊需求(如安全模式下禁用电平计算以提升录音稳定性)。
8
8
  */
9
9
  import { RecordSaferClient } from "../api-client.js";
10
- import { handleToolCall } from "../utils.js";
10
+ import { handleToolCall, checkPrecondition } from "../utils.js";
11
11
  export function registerLevelTools(server) {
12
12
  const client = new RecordSaferClient();
13
- server.tool("subscribe_levels", "订阅电平更新 / Subscribe to WebSocket level updates [write]。⚠️ 会开启电平数据流,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("subscribe_levels", "write", () => client.subscribeLevels()));
14
- server.tool("unsubscribe_levels", "取消订阅电平更新 / Unsubscribe from level updates [write]。⚠️ 会停止电平数据流,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("unsubscribe_levels", "write", () => client.unsubscribeLevels()));
13
+ server.tool("subscribe_levels", "订阅电平更新 / Subscribe to WebSocket level updates [write]。⚠️ 会开启电平数据流,必须经用户明确确认后才能调用。", {}, async () => {
14
+ const err = await checkPrecondition(client, "subscribe_levels");
15
+ if (err)
16
+ return { content: [{ type: "text", text: err }], isError: true };
17
+ return handleToolCall("subscribe_levels", "write", () => client.subscribeLevels());
18
+ });
19
+ server.tool("unsubscribe_levels", "取消订阅电平更新 / Unsubscribe from level updates [write]。⚠️ 会停止电平数据流,必须经用户明确确认后才能调用。", {}, async () => {
20
+ const err = await checkPrecondition(client, "unsubscribe_levels");
21
+ if (err)
22
+ return { content: [{ type: "text", text: err }], isError: true };
23
+ return handleToolCall("unsubscribe_levels", "write", () => client.unsubscribeLevels());
24
+ });
15
25
  server.tool("disable_level_callback", `禁用电平计算(安全模式)/ Disable level calculation (Safe Mode) [write]。
16
26
  ⚠️ 会禁用电平计算以提升录音稳定性,必须经用户明确确认后才能调用。
17
27
  【使用场景】录音过程中如果出现卡顿或 buffer 问题,可以禁用电平计算来降低 CPU 负载。`, {}, async () => handleToolCall("disable_level_callback", "write", () => client.disableLevelCallback()));
@@ -1 +1 @@
1
- {"version":3,"file":"levels.js","sourceRoot":"","sources":["../../src/tools/levels.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;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;;iDAE6C,EAC7C,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
+ {"version":3,"file":"levels.js","sourceRoot":"","sources":["../../src/tools/levels.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhE,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;QACT,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAChE,IAAI,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnF,OAAO,cAAc,CAAC,kBAAkB,EAAE,OAAO,EAAE,GAAG,EAAE,CACtD,MAAM,CAAC,eAAe,EAAE,CACzB,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,+EAA+E,EAC/E,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAClE,IAAI,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnF,OAAO,cAAc,CAAC,oBAAoB,EAAE,OAAO,EAAE,GAAG,EAAE,CACxD,MAAM,CAAC,iBAAiB,EAAE,CAC3B,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB;;iDAE6C,EAC7C,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;;;;;;;;;;;;GAYG;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;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,QA8GpD"}
@@ -13,33 +13,68 @@
13
13
  */
14
14
  import { z } from "zod";
15
15
  import { RecordSaferClient } from "../api-client.js";
16
- import { handleToolCall } from "../utils.js";
16
+ import { handleToolCall, checkPrecondition } from "../utils.js";
17
17
  export function registerMarkerTools(server) {
18
18
  const client = new RecordSaferClient();
19
- server.tool("list_tracks", `列出可用轨道 / List available tracks [read]。
20
- 【前置依赖】需要录音正在进行中或已完成。`, {}, async () => handleToolCall("list_tracks", "read", () => client.listTracks()));
21
- 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)));
22
- server.tool("list_markers", "列出所有标记 / List all markers [read]。查看当前录音会话中的所有标记点。", {}, async () => handleToolCall("list_markers", "read", () => client.listMarkers()));
23
- server.tool("add_marker", `添加标记 / Add a marker [write]。
19
+ server.tool("list_tracks", `[录音中操作 / Recording Phase] 列出可用轨道 / List available tracks [read]。
20
+ 【前置依赖】需要录音正在进行中或已完成。`, {}, async () => {
21
+ const err = await checkPrecondition(client, "list_tracks");
22
+ if (err)
23
+ return { content: [{ type: "text", text: err }], isError: true };
24
+ return handleToolCall("list_tracks", "read", () => client.listTracks());
25
+ });
26
+ server.tool("stop_track", "[录音中操作 / Recording Phase] 停止轨道 / Stop a track [write]。⚠️ 会停止指定轨道,必须经用户明确确认后才能调用。", { trackId: z.string().min(1).describe("轨道ID / Track ID") }, async ({ trackId }) => {
27
+ const err = await checkPrecondition(client, "stop_track");
28
+ if (err)
29
+ return { content: [{ type: "text", text: err }], isError: true };
30
+ return handleToolCall("stop_track", "write", () => client.stopTrack(trackId));
31
+ });
32
+ server.tool("list_markers", "[录音中操作 / Recording Phase] 列出所有标记 / List all markers [read]。查看当前录音会话中的所有标记点。", {}, async () => {
33
+ const err = await checkPrecondition(client, "list_markers");
34
+ if (err)
35
+ return { content: [{ type: "text", text: err }], isError: true };
36
+ return handleToolCall("list_markers", "read", () => client.listMarkers());
37
+ });
38
+ server.tool("add_marker", `[录音中操作 / Recording Phase] 添加标记 / Add a marker [write]。
24
39
  ⚠️ 会在当前录音位置添加标记点,必须经用户明确确认后才能调用。
25
40
  【前置依赖】需要录音正在进行中。
26
41
  【使用场景】用户说"标记一下"、"这里加个标记叫 XX" 时调用。
27
- label 为可选参数,不提供时系统自动编号。`, { label: z.string().optional().describe("标记名称 / Marker label") }, async ({ label }) => handleToolCall("add_marker", "write", () => client.addMarker(label)));
28
- server.tool("sync_markers", "同步标记 / Sync markers to file [write]。⚠️ 会将标记数据写入录音文件,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("sync_markers", "write", () => client.syncMarkers()));
42
+ label 为可选参数,不提供时系统自动编号。`, { label: z.string().optional().describe("标记名称 / Marker label") }, async ({ label }) => {
43
+ const err = await checkPrecondition(client, "add_marker");
44
+ if (err)
45
+ return { content: [{ type: "text", text: err }], isError: true };
46
+ return handleToolCall("add_marker", "write", () => client.addMarker(label));
47
+ });
48
+ server.tool("sync_markers", "[录音中操作 / Recording Phase] 同步标记 / Sync markers to file [write]。⚠️ 会将标记数据写入录音文件,必须经用户明确确认后才能调用。", {}, async () => {
49
+ const err = await checkPrecondition(client, "sync_markers");
50
+ if (err)
51
+ return { content: [{ type: "text", text: err }], isError: true };
52
+ return handleToolCall("sync_markers", "write", () => client.syncMarkers());
53
+ });
29
54
  server.tool("rename_marker", "重命名标记 / Rename a marker [write]。⚠️ 会修改标记名称,必须经用户明确确认后才能调用。", {
30
55
  id: z.string().min(1).describe("标记ID / Marker ID"),
31
56
  name: z.string().min(1).describe("新名称 / New name"),
32
57
  }, async ({ id, name }) => handleToolCall("rename_marker", "write", () => client.renameMarker(id, name)));
33
- server.tool("rename_channel", `重命名通道 / Rename a channel [write]。
58
+ server.tool("rename_channel", `[录音中操作 / Recording Phase] 重命名通道 / Rename a channel [write]。
34
59
  ⚠️ 会修改通道名称,必须经用户明确确认后才能调用。
35
60
  【前置依赖】需要会话已初始化。
36
61
  【批量提示】如果用户要求重命名多个通道,对每个通道分别调用。`, {
37
62
  id: z.string().min(1).describe("通道ID / Channel ID"),
38
63
  name: z.string().min(1).describe("新名称 / New name"),
39
- }, async ({ id, name }) => handleToolCall("rename_channel", "write", () => client.renameChannel(id, name)));
40
- server.tool("set_channel_color", "设置通道颜色 / Set channel color [write]。⚠️ 会修改通道显示颜色,必须经用户明确确认后才能调用。", {
64
+ }, async ({ id, name }) => {
65
+ const err = await checkPrecondition(client, "rename_channel");
66
+ if (err)
67
+ return { content: [{ type: "text", text: err }], isError: true };
68
+ return handleToolCall("rename_channel", "write", () => client.renameChannel(id, name));
69
+ });
70
+ server.tool("set_channel_color", "[录音中操作 / Recording Phase] 设置通道颜色 / Set channel color [write]。⚠️ 会修改通道显示颜色,必须经用户明确确认后才能调用。", {
41
71
  id: z.string().min(1).describe("通道ID / Channel ID"),
42
72
  color: z.string().min(1).describe("颜色值 / Color value"),
43
- }, async ({ id, color }) => handleToolCall("set_channel_color", "write", () => client.setChannelColor(id, color)));
73
+ }, async ({ id, color }) => {
74
+ const err = await checkPrecondition(client, "set_channel_color");
75
+ if (err)
76
+ return { content: [{ type: "text", text: err }], isError: true };
77
+ return handleToolCall("set_channel_color", "write", () => client.setChannelColor(id, color));
78
+ });
44
79
  }
45
80
  //# sourceMappingURL=markers.js.map
@@ -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;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,MAAM,CAAC,IAAI,CACT,aAAa,EACb;qBACiB,EACjB,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC3D,IAAI,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnF,OAAO,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,kFAAkF,EAClF,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;QACpB,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1D,IAAI,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnF,OAAO,cAAc,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAChF,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,6EAA6E,EAC7E,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC5D,IAAI,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnF,OAAO,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,YAAY,EACZ;;;;wBAIoB,EACpB,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,EAChE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1D,IAAI,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnF,OAAO,cAAc,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,+FAA+F,EAC/F,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC5D,IAAI,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnF,OAAO,cAAc,CAAC,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7E,CAAC,CACF,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;;;+BAG2B,EAC3B;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;QACrB,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC9D,IAAI,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnF,OAAO,cAAc,CAAC,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,CACpD,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAC/B,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,2FAA2F,EAC3F;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;QACtB,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QACjE,IAAI,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnF,OAAO,cAAc,CAAC,mBAAmB,EAAE,OAAO,EAAE,GAAG,EAAE,CACvD,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,CAClC,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/tools/monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,QA0IrD"}
1
+ {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/tools/monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,QAqKrD"}
@@ -14,18 +14,28 @@
14
14
  */
15
15
  import { z } from "zod";
16
16
  import { RecordSaferClient } from "../api-client.js";
17
- import { handleToolCall } from "../utils.js";
17
+ import { handleToolCall, checkPrecondition } from "../utils.js";
18
18
  const channelIndexSchema = {
19
19
  index: z.number().int().min(0).describe("通道索引(从 0 开始)/ Channel index (0-based)"),
20
20
  };
21
21
  export function registerMonitorTools(server) {
22
22
  const client = new RecordSaferClient();
23
23
  server.tool("get_monitor_status", "获取监听状态 / Get monitor status [read]。查看监听是否开启、输出设备等信息。", {}, async () => handleToolCall("get_monitor_status", "read", () => client.getMonitorStatus()));
24
- server.tool("start_monitor", `启动监听 / Start monitoring [recording_control]。
24
+ server.tool("start_monitor", `[录音中操作 / Recording Phase] 启动监听 / Start monitoring [recording_control]。
25
25
  ⚠️ 会开启音频监听输出,必须经用户明确确认后才能调用。
26
- 【前置依赖】需要会话已初始化。如果未初始化,提示用户先在 GUI 完成配置。`, {}, async () => handleToolCall("start_monitor", "recording_control", () => client.startMonitor()));
27
- server.tool("stop_monitor", "停止监听 / Stop monitoring [recording_control]。⚠️ 会关闭音频监听输出,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("stop_monitor", "recording_control", () => client.stopMonitor()));
28
- server.tool("set_master_volume", "设置主音量 / Set master volume [write]。⚠️ 会改变监听主音量,必须经用户明确确认后才能调用。", {
26
+ 【前置依赖】需要会话已初始化。如果未初始化,提示用户先在 GUI 完成配置。`, {}, async () => {
27
+ const err = await checkPrecondition(client, "start_monitor");
28
+ if (err)
29
+ return { content: [{ type: "text", text: err }], isError: true };
30
+ return handleToolCall("start_monitor", "recording_control", () => client.startMonitor());
31
+ });
32
+ server.tool("stop_monitor", "[录音中操作 / Recording Phase] 停止监听 / Stop monitoring [recording_control]。⚠️ 会关闭音频监听输出,必须经用户明确确认后才能调用。", {}, async () => {
33
+ const err = await checkPrecondition(client, "stop_monitor");
34
+ if (err)
35
+ return { content: [{ type: "text", text: err }], isError: true };
36
+ return handleToolCall("stop_monitor", "recording_control", () => client.stopMonitor());
37
+ });
38
+ server.tool("set_master_volume", "[录音中操作 / Recording Phase] 设置主音量 / Set master volume [write]。⚠️ 会改变监听主音量,必须经用户明确确认后才能调用。", {
29
39
  volume: z.number().describe("主音量 / Master volume"),
30
40
  pan: z
31
41
  .number()
@@ -33,31 +43,66 @@ export function registerMonitorTools(server) {
33
43
  .max(1)
34
44
  .optional()
35
45
  .describe("主声像 (-1.0 到 1.0) / Master pan (-1.0 to 1.0)"),
36
- }, async ({ volume, pan }) => handleToolCall("set_master_volume", "write", () => client.setMasterVolume(volume, pan)));
46
+ }, async ({ volume, pan }) => {
47
+ const err = await checkPrecondition(client, "set_master_volume");
48
+ if (err)
49
+ return { content: [{ type: "text", text: err }], isError: true };
50
+ return handleToolCall("set_master_volume", "write", () => client.setMasterVolume(volume, pan));
51
+ });
37
52
  server.tool("get_mix_levels", "获取混音电平 / Get current mix levels [read]。查看各通道当前的音量、声像、静音、独奏状态。", {}, async () => handleToolCall("get_mix_levels", "read", () => client.getMixLevels()));
38
- server.tool("set_channel_volume", `设置通道音量 / Set channel volume [write]。
53
+ server.tool("set_channel_volume", `[录音中操作 / Recording Phase] 设置通道音量 / Set channel volume [write]。
39
54
  ⚠️ 会改变指定通道的监听音量,必须经用户明确确认后才能调用。
40
55
  【批量提示】如果用户要求设置多个通道的音量,对每个通道分别调用此工具。`, {
41
56
  ...channelIndexSchema,
42
57
  volume: z.number().describe("通道音量 / Channel volume"),
43
- }, async ({ index, volume }) => handleToolCall("set_channel_volume", "write", () => client.setChannelVolume(index, volume)));
44
- server.tool("set_channel_pan", "设置通道声像 / Set channel pan [write]。⚠️ 会改变指定通道的声像位置,必须经用户明确确认后才能调用。", {
58
+ }, async ({ index, volume }) => {
59
+ const err = await checkPrecondition(client, "set_channel_volume");
60
+ if (err)
61
+ return { content: [{ type: "text", text: err }], isError: true };
62
+ return handleToolCall("set_channel_volume", "write", () => client.setChannelVolume(index, volume));
63
+ });
64
+ server.tool("set_channel_pan", "[录音中操作 / Recording Phase] 设置通道声像 / Set channel pan [write]。⚠️ 会改变指定通道的声像位置,必须经用户明确确认后才能调用。", {
45
65
  ...channelIndexSchema,
46
66
  pan: z
47
67
  .number()
48
68
  .min(-1)
49
69
  .max(1)
50
70
  .describe("通道声像 (-1.0 到 1.0) / Channel pan (-1.0 to 1.0)"),
51
- }, async ({ index, pan }) => handleToolCall("set_channel_pan", "write", () => client.setChannelPan(index, pan)));
52
- server.tool("toggle_channel_solo", `切换通道独奏 / Toggle channel solo [write]。
71
+ }, async ({ index, pan }) => {
72
+ const err = await checkPrecondition(client, "set_channel_pan");
73
+ if (err)
74
+ return { content: [{ type: "text", text: err }], isError: true };
75
+ return handleToolCall("set_channel_pan", "write", () => client.setChannelPan(index, pan));
76
+ });
77
+ server.tool("toggle_channel_solo", `[录音中操作 / Recording Phase] 切换通道独奏 / Toggle channel solo [write]。
53
78
  ⚠️ 会改变通道独奏状态,必须经用户明确确认后才能调用。
54
- 【提示】"只听通道 X" = 对通道 X 启用 solo。`, channelIndexSchema, async ({ index }) => handleToolCall("toggle_channel_solo", "write", () => client.toggleChannelSolo(index)));
55
- server.tool("toggle_channel_mute", `切换通道静音 / Toggle channel mute [write]。
56
- ⚠️ 会改变通道静音状态,必须经用户明确确认后才能调用。`, channelIndexSchema, async ({ index }) => handleToolCall("toggle_channel_mute", "write", () => client.toggleChannelMute(index)));
57
- server.tool("set_channel_ms_process", "设置通道 M/S 处理 / Set channel M/S processing [write]。⚠️ 会改变通道的 Mid/Side 处理模式,必须经用户明确确认后才能调用。", {
79
+ 【提示】"只听通道 X" = 对通道 X 启用 solo。`, channelIndexSchema, async ({ index }) => {
80
+ const err = await checkPrecondition(client, "toggle_channel_solo");
81
+ if (err)
82
+ return { content: [{ type: "text", text: err }], isError: true };
83
+ return handleToolCall("toggle_channel_solo", "write", () => client.toggleChannelSolo(index));
84
+ });
85
+ server.tool("toggle_channel_mute", `[录音中操作 / Recording Phase] 切换通道静音 / Toggle channel mute [write]。
86
+ ⚠️ 会改变通道静音状态,必须经用户明确确认后才能调用。`, channelIndexSchema, async ({ index }) => {
87
+ const err = await checkPrecondition(client, "toggle_channel_mute");
88
+ if (err)
89
+ return { content: [{ type: "text", text: err }], isError: true };
90
+ return handleToolCall("toggle_channel_mute", "write", () => client.toggleChannelMute(index));
91
+ });
92
+ server.tool("set_channel_ms_process", "[录音中操作 / Recording Phase] 设置通道 M/S 处理 / Set channel M/S processing [write]。⚠️ 会改变通道的 Mid/Side 处理模式,必须经用户明确确认后才能调用。", {
58
93
  ...channelIndexSchema,
59
94
  enabled: z.boolean().describe("是否启用 / Enable or disable"),
60
- }, async ({ index, enabled }) => handleToolCall("set_channel_ms_process", "write", () => client.setChannelMsProcess(index, enabled)));
61
- server.tool("toggle_channel_phase_invert", "切换通道相位反转 / Toggle channel phase invert [write]。⚠️ 会反转通道相位,必须经用户明确确认后才能调用。", channelIndexSchema, async ({ index }) => handleToolCall("toggle_channel_phase_invert", "write", () => client.toggleChannelPhaseInvert(index)));
95
+ }, async ({ index, enabled }) => {
96
+ const err = await checkPrecondition(client, "set_channel_ms_process");
97
+ if (err)
98
+ return { content: [{ type: "text", text: err }], isError: true };
99
+ return handleToolCall("set_channel_ms_process", "write", () => client.setChannelMsProcess(index, enabled));
100
+ });
101
+ server.tool("toggle_channel_phase_invert", "[录音中操作 / Recording Phase] 切换通道相位反转 / Toggle channel phase invert [write]。⚠️ 会反转通道相位,必须经用户明确确认后才能调用。", channelIndexSchema, async ({ index }) => {
102
+ const err = await checkPrecondition(client, "toggle_channel_phase_invert");
103
+ if (err)
104
+ return { content: [{ type: "text", text: err }], isError: true };
105
+ return handleToolCall("toggle_channel_phase_invert", "write", () => client.toggleChannelPhaseInvert(index));
106
+ });
62
107
  }
63
108
  //# 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,9 +1,10 @@
1
1
  /**
2
- * 录音控制 Tools — 会话初始化、录音启停、状态查询
3
- * Recording Control Tools — Session initialization, recording start/stop, status query
2
+ * 录音控制 Tools — 状态查询与录音停止
3
+ * Recording Control Tools — Status query and recording stop
4
4
  *
5
- * 设计原则:状态感知式响应,而非流程式引导
6
- * Design principle: State-aware response, not workflow-guided
5
+ * 设计原则:
6
+ * - 会话初始化和开始录音必须在 GUI 手动完成(DADAO Engine 安全架构)
7
+ * - MCP 仅提供状态查询、停止录音等辅助操作
7
8
  */
8
9
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
9
10
  export declare function registerRecordingTools(server: McpServer): void;
@@ -1 +1 @@
1
- {"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../src/tools/recording.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QAyGvD"}
1
+ {"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../src/tools/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QAyDvD"}
@@ -1,13 +1,13 @@
1
1
  /**
2
- * 录音控制 Tools — 会话初始化、录音启停、状态查询
3
- * Recording Control Tools — Session initialization, recording start/stop, status query
2
+ * 录音控制 Tools — 状态查询与录音停止
3
+ * Recording Control Tools — Status query and recording stop
4
4
  *
5
- * 设计原则:状态感知式响应,而非流程式引导
6
- * Design principle: State-aware response, not workflow-guided
5
+ * 设计原则:
6
+ * - 会话初始化和开始录音必须在 GUI 手动完成(DADAO Engine 安全架构)
7
+ * - MCP 仅提供状态查询、停止录音等辅助操作
7
8
  */
8
- import { z } from "zod";
9
9
  import { RecordSaferClient } from "../api-client.js";
10
- import { handleToolCall } from "../utils.js";
10
+ import { handleToolCall, checkPrecondition } from "../utils.js";
11
11
  export function registerRecordingTools(server) {
12
12
  const client = new RecordSaferClient();
13
13
  server.tool("get_recording_status", `获取录音状态 / Get current recording status [read]。
@@ -17,56 +17,30 @@ export function registerRecordingTools(server) {
17
17
 
18
18
  根据返回结果判断系统处于哪个阶段:
19
19
  - recording: true → 录音进行中,可执行录音中操作(加标记、停止、查状态等)
20
- - recording: false + deviceHealth.alive: true → 会话已初始化,可直接 start_recording
21
- - recording: false + deviceHealth 为空或 alive: false → 未初始化,需要先在 GUI 完成配置`, {}, async () => handleToolCall("get_recording_status", "read", () => client.getRecordingStatus()));
22
- server.tool("initialize_session", `初始化录音会话 / Initialize recording session [recording_control]。
23
- ⚠️ 会重置当前录音会话并配置新参数,必须经用户明确确认后才能调用。
20
+ - recording: false + deviceHealth.alive: true → 会话已初始化,MCP 工具可正常工作
21
+ - recording: false + deviceHealth 为空或 alive: false → 未初始化,需要用户先在 Record Safer Pro 界面完成配置
24
22
 
25
- 【何时应该调用此工具】
26
- 仅当用户在一句话中明确提供了足够的配置信息时才调用。例如:
27
- - " Schoeps 声卡,96kHz,24bit,全通道,存桌面,WAV"
28
- - "用默认设备录音,存到 /Volumes/SSD/recordings"(此时其他参数用默认值)
29
-
30
- 【何时不应该调用此工具】
31
- 当用户只说"录音"或"开始录音"但没有提供参数时,不要逐个询问参数。
32
- 应回复:"请先在 Record Safer Pro 界面上完成设备和参数配置,配置好后告诉我开始录音即可。"
33
-
34
- 【参数默认值策略】
35
- 如果用户提供了部分参数,其余参数按以下规则填充:
36
- - deviceId: 调用 list_audio_devices,若只有一个物理设备则自动选择
37
- - sampleRate: 使用设备的 defaultSampleRate
38
- - bitDepth: 默认 "24-bit"
39
- - channels: 使用设备的全部通道(从 1 到 device.channels)
40
- - outputPath: 使用 get_output_path 获取当前设置,若为空则用桌面路径
41
- - audioFormat: 默认 "wav"`, {
42
- deviceId: z.string().min(1).describe("设备ID / Device ID"),
43
- sampleRate: z.number().describe("采样率 / Sample rate"),
44
- bitDepth: z
45
- .enum(["16-bit", "24-bit", "32-bit Float"])
46
- .describe("位深度 / Bit depth"),
47
- channels: z
48
- .array(z.number())
49
- .describe("通道列表 / Channel list"),
50
- outputPath: z.string().min(1).describe("输出路径 / Output path"),
51
- audioFormat: z
52
- .enum(["wav", "caf"])
53
- .describe("音频格式 / Audio format"),
54
- }, async ({ deviceId, sampleRate, bitDepth, channels, outputPath, audioFormat }) => handleToolCall("initialize_session", "recording_control", () => client.initializeSession({ deviceId, sampleRate, bitDepth, channels, outputPath, audioFormat })));
55
- server.tool("reset_session", "重置当前会话 / Reset current session [recording_control]。⚠️ 会清除当前录音会话配置,必须经用户明确确认后才能调用。", {}, async () => handleToolCall("reset_session", "recording_control", () => client.resetSession()));
56
- server.tool("start_recording", `开始录音 / Start recording [recording_control]。
57
- ⚠️ 会开始录音并写入音频文件,必须经用户明确确认后才能调用。
58
-
59
- 【前置条件】会话必须已初始化(调用过 initialize_session 或用户在 GUI 上完成了配置)。
60
- 调用前先用 get_recording_status 检查状态:
61
- - 如果 deviceHealth.alive: true 且未在录音 → 可以直接调用
62
- - 如果 deviceHealth 为空或 alive: false → 会话未初始化,告诉用户去 GUI 配置
63
- - 如果 recording: true → 已在录音中,告知用户
64
-
65
- safeMode 参数:默认不传。仅当用户明确说"安全模式"或"safe mode"时才设为 true。`, {
66
- safeMode: z.boolean().optional().describe("安全模式 / Safe mode"),
67
- }, async ({ safeMode }) => handleToolCall("start_recording", "recording_control", () => client.startRecording(safeMode !== undefined ? { safeMode } : undefined)));
23
+ ⚠️ 当状态为未初始化时,必须告知用户:
24
+ "由于 DADAO Engine 的安全架构设计,录音会话的初始化和启动必须在 Record Safer Pro 界面上手动完成。
25
+ 请先打开 Record Safer Pro,完成设备选择和参数配置,进入录音控制台界面后,我就可以协助您了。"`, {}, async () => handleToolCall("get_recording_status", "read", () => client.getRecordingStatus()));
26
+ server.tool("reset_session", "重置当前会话 / Reset current session [recording_control]。⚠️ 会清除当前录音会话配置,必须经用户明确确认后才能调用。", {}, async () => {
27
+ const err = await checkPrecondition(client, "reset_session");
28
+ if (err)
29
+ return { content: [{ type: "text", text: err }], isError: true };
30
+ return handleToolCall("reset_session", "recording_control", () => client.resetSession());
31
+ });
68
32
  server.tool("stop_recording", `停止录音 / Stop recording [recording_control]。
69
33
  ⚠️ 会停止当前录音并关闭音频文件,必须经用户明确确认后才能调用。
70
- 返回录音时长、文件列表和总大小。`, {}, async () => handleToolCall("stop_recording", "recording_control", () => client.stopRecording()));
34
+ 返回录音时长、文件列表和总大小。
35
+
36
+ 【安全规则】
37
+ - 用户必须在当前消息中明确表达"停止录音"的意图
38
+ - 模糊表达("差不多了""可以了")需要追问确认
39
+ - 绝对禁止在用户没有明确指令的情况下调用`, {}, async () => {
40
+ const err = await checkPrecondition(client, "stop_recording");
41
+ if (err)
42
+ return { content: [{ type: "text", text: err }], isError: true };
43
+ return handleToolCall("stop_recording", "recording_control", () => client.stopRecording());
44
+ });
71
45
  }
72
46
  //# sourceMappingURL=recording.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recording.js","sourceRoot":"","sources":["../../src/tools/recording.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;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,sBAAsB,EACtB;;;;;;;;wEAQoE,EACpE,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,oBAAoB,EACpB;;;;;;;;;;;;;;;;;;;wBAmBoB,EACpB;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;;;;;;;;;qDASiD,EACjD;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;;iBAEa,EACb,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,EAAE,CACzD,MAAM,CAAC,aAAa,EAAE,CACvB,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"recording.js","sourceRoot":"","sources":["../../src/tools/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvC,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB;;;;;;;;;;;;wDAYoD,EACpD,EAAE,EACF,KAAK,IAAI,EAAE,CACT,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,GAAG,EAAE,CAClD,MAAM,CAAC,kBAAkB,EAAE,CAC5B,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,mFAAmF,EACnF,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC7D,IAAI,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnF,OAAO,cAAc,CAAC,eAAe,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAC/D,MAAM,CAAC,YAAY,EAAE,CACtB,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB;;;;;;;sBAOkB,EAClB,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC9D,IAAI,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnF,OAAO,cAAc,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAChE,MAAM,CAAC,aAAa,EAAE,CACvB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
package/dist/types.d.ts CHANGED
@@ -214,4 +214,9 @@ export interface TelemetryData {
214
214
  [key: string]: unknown;
215
215
  }
216
216
  export type PermissionLevel = "read" | "write" | "recording_control";
217
+ /** 后端返回的 UI 页面状态(用于 MCP 判断用户是否在录音控制台) */
218
+ export interface UIState {
219
+ page: string;
220
+ pageStep: number;
221
+ }
217
222
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -17,4 +17,44 @@ export declare function logToolCall(toolName: string, permissionLevel: string):
17
17
  * - 失败:返回 isError: true 和中文错误信息
18
18
  */
19
19
  export declare function handleToolCall<T>(toolName: string, permissionLevel: PermissionLevel, fn: () => Promise<T>): Promise<ToolResult>;
20
+ export type DependencyLevel = 'none' | 'session_initialized' | 'recording_active';
21
+ /**
22
+ * 每个 MCP 工具的前置条件依赖层级映射
23
+ * - none: 无依赖,随时可调用
24
+ * - session_initialized: 需要会话已初始化(deviceHealth.alive === true)
25
+ * - recording_active: 需要录音进行中(recording === true)
26
+ */
27
+ export declare const TOOL_DEPENDENCIES: Record<string, DependencyLevel>;
28
+ /**
29
+ * 校验 MCP 工具的前置条件是否满足
30
+ * 1. 先检查 UI 页面状态(用户是否在录音控制台)
31
+ * 2. 再检查后端录音/会话状态
32
+ * @param client - RecordSaferClient 实例,用于查询后端状态
33
+ * @param toolName - 工具名称
34
+ * @returns null 表示条件满足,错误消息字符串表示条件不满足
35
+ */
36
+ export declare function checkPrecondition(client: {
37
+ getRecordingStatus: () => Promise<{
38
+ recording: boolean;
39
+ deviceHealth: {
40
+ alive: boolean;
41
+ } | null;
42
+ }>;
43
+ getUIState?: () => Promise<{
44
+ page: string;
45
+ pageStep: number;
46
+ }>;
47
+ }, toolName: string): Promise<string | null>;
48
+ export interface SampleRateValidationResult {
49
+ valid: boolean;
50
+ error?: string;
51
+ supportedRates?: number[];
52
+ }
53
+ /**
54
+ * 校验用户指定的采样率是否在设备支持范围内
55
+ * @param deviceSupportedRates - 设备支持的采样率列表
56
+ * @param requestedRate - 用户请求的采样率
57
+ * @returns 校验结果,valid 为 true 表示兼容,否则包含错误信息和支持的采样率列表
58
+ */
59
+ export declare function validateSampleRate(deviceSupportedRates: number[], requestedRate: number): SampleRateValidationResult;
20
60
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,GACtB,IAAI,CAKN;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,eAAe,EAChC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,UAAU,CAAC,CAcrB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,GACtB,IAAI,CAKN;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,eAAe,EAChC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,UAAU,CAAC,CAcrB;AAID,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,qBAAqB,GAAG,kBAAkB,CAAC;AAElF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CA2C7D,CAAC;AAYF;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE;IACN,kBAAkB,EAAE,MAAM,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE;YAAE,KAAK,EAAE,OAAO,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACnG,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE,EACD,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgCxB;AAKD,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,oBAAoB,EAAE,MAAM,EAAE,EAC9B,aAAa,EAAE,MAAM,GACpB,0BAA0B,CAS5B"}
package/dist/utils.js CHANGED
@@ -26,4 +26,117 @@ export async function handleToolCall(toolName, permissionLevel, fn) {
26
26
  };
27
27
  }
28
28
  }
29
+ /**
30
+ * 每个 MCP 工具的前置条件依赖层级映射
31
+ * - none: 无依赖,随时可调用
32
+ * - session_initialized: 需要会话已初始化(deviceHealth.alive === true)
33
+ * - recording_active: 需要录音进行中(recording === true)
34
+ */
35
+ export const TOOL_DEPENDENCIES = {
36
+ // 无依赖 — 查询类工具
37
+ list_audio_devices: 'none',
38
+ list_output_devices: 'none',
39
+ get_buffer_sizes: 'none',
40
+ get_device_signals: 'none',
41
+ get_device_levels: 'none',
42
+ get_recording_status: 'none',
43
+ get_settings: 'none',
44
+ get_output_path: 'none',
45
+ get_audio_format: 'none',
46
+ get_system_info: 'none',
47
+ get_disk_space: 'none',
48
+ get_monitor_status: 'none',
49
+ get_mix_levels: 'none',
50
+ get_activation_status: 'none',
51
+ check_updates: 'none',
52
+ get_update_badge: 'none',
53
+ get_download_progress: 'none',
54
+ list_volumes: 'none',
55
+ list_external_drives: 'none',
56
+ // 需要会话已初始化
57
+ reset_session: 'session_initialized',
58
+ start_monitor: 'session_initialized',
59
+ stop_monitor: 'session_initialized',
60
+ rename_channel: 'session_initialized',
61
+ set_channel_color: 'session_initialized',
62
+ set_channel_volume: 'session_initialized',
63
+ set_channel_pan: 'session_initialized',
64
+ toggle_channel_solo: 'session_initialized',
65
+ toggle_channel_mute: 'session_initialized',
66
+ set_channel_ms_process: 'session_initialized',
67
+ toggle_channel_phase_invert: 'session_initialized',
68
+ set_master_volume: 'session_initialized',
69
+ subscribe_levels: 'session_initialized',
70
+ unsubscribe_levels: 'session_initialized',
71
+ // 需要录音进行中
72
+ add_marker: 'recording_active',
73
+ stop_recording: 'recording_active',
74
+ list_markers: 'recording_active',
75
+ list_tracks: 'recording_active',
76
+ sync_markers: 'recording_active',
77
+ stop_track: 'recording_active',
78
+ };
79
+ /**
80
+ * 录音控制台页面名称集合
81
+ * 只有当用户在这些页面时,MCP 的会话/录音相关工具才可用
82
+ */
83
+ const RECORDING_CONSOLE_PAGES = new Set([
84
+ 'RECORDING',
85
+ 'RECORDING_COMPLETE',
86
+ 'CONFIG_HEALTH_CHECK',
87
+ ]);
88
+ /**
89
+ * 校验 MCP 工具的前置条件是否满足
90
+ * 1. 先检查 UI 页面状态(用户是否在录音控制台)
91
+ * 2. 再检查后端录音/会话状态
92
+ * @param client - RecordSaferClient 实例,用于查询后端状态
93
+ * @param toolName - 工具名称
94
+ * @returns null 表示条件满足,错误消息字符串表示条件不满足
95
+ */
96
+ export async function checkPrecondition(client, toolName) {
97
+ const level = TOOL_DEPENDENCIES[toolName] || 'none';
98
+ if (level === 'none')
99
+ return null;
100
+ // 步骤 1: 检查 UI 页面状态(仅当 client 支持 getUIState 时)
101
+ if (client.getUIState) {
102
+ try {
103
+ const uiState = await client.getUIState();
104
+ if (!RECORDING_CONSOLE_PAGES.has(uiState.page)) {
105
+ return '用户当前不在录音控制台页面。由于 DADAO Engine 的安全架构设计,请先在 Record Safer Pro 界面上完成设备选择和参数配置,进入录音控制台界面后,AI 助手才可以协助您进行录音操作。';
106
+ }
107
+ }
108
+ catch {
109
+ // UI 状态查询失败时,回退到仅检查后端状态(兼容旧版后端)
110
+ }
111
+ }
112
+ // 步骤 2: 检查后端录音/会话状态
113
+ const status = await client.getRecordingStatus();
114
+ if (level === 'session_initialized') {
115
+ if (!status.deviceHealth?.alive) {
116
+ return '会话未初始化。请先在 Record Safer Pro 界面上完成设备选择和参数配置,进入录音控制台界面。';
117
+ }
118
+ }
119
+ if (level === 'recording_active') {
120
+ if (!status.recording) {
121
+ return '当前未在录音中。请先在 Record Safer Pro 界面上手动开始录音。';
122
+ }
123
+ }
124
+ return null;
125
+ }
126
+ /**
127
+ * 校验用户指定的采样率是否在设备支持范围内
128
+ * @param deviceSupportedRates - 设备支持的采样率列表
129
+ * @param requestedRate - 用户请求的采样率
130
+ * @returns 校验结果,valid 为 true 表示兼容,否则包含错误信息和支持的采样率列表
131
+ */
132
+ export function validateSampleRate(deviceSupportedRates, requestedRate) {
133
+ if (deviceSupportedRates.includes(requestedRate)) {
134
+ return { valid: true };
135
+ }
136
+ return {
137
+ valid: false,
138
+ error: `设备不支持采样率 ${requestedRate}Hz。支持的采样率: ${deviceSupportedRates.join(', ')}Hz`,
139
+ supportedRates: deviceSupportedRates,
140
+ };
141
+ }
29
142
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,QAAgB,EAChB,eAAuB;IAEvB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,CAAC,KAAK,CACX,IAAI,SAAS,gBAAgB,QAAQ,iBAAiB,eAAe,GAAG,CACzE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,eAAgC,EAChC,EAAoB;IAEpB,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,EAAE,CAAC;YACrD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "record-safer-mcp-server",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
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",