@yoooclaw/phone-notifications 1.12.2 → 1.12.4

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.
Files changed (75) hide show
  1. package/README.md +3 -4
  2. package/dist/bin/ntf.cjs +327 -12
  3. package/dist/bin/ntf.cjs.map +9 -7
  4. package/dist/cli/doctor/check-local-gateway.d.ts +3 -0
  5. package/dist/cli/doctor/check-local-gateway.d.ts.map +1 -0
  6. package/dist/cli/doctor/checkers.d.ts.map +1 -1
  7. package/dist/env.d.ts +16 -1
  8. package/dist/env.d.ts.map +1 -1
  9. package/dist/fs-atomic.d.ts +11 -0
  10. package/dist/fs-atomic.d.ts.map +1 -0
  11. package/dist/image/store.d.ts.map +1 -1
  12. package/dist/index.cjs +2444 -1911
  13. package/dist/index.cjs.map +38 -31
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/light/sender.d.ts +14 -3
  16. package/dist/light/sender.d.ts.map +1 -1
  17. package/dist/logger.d.ts.map +1 -1
  18. package/dist/notification/storage.d.ts +4 -3
  19. package/dist/notification/storage.d.ts.map +1 -1
  20. package/dist/plugin/auto-update.d.ts +2 -0
  21. package/dist/plugin/auto-update.d.ts.map +1 -1
  22. package/dist/plugin/lifecycle.d.ts +7 -14
  23. package/dist/plugin/lifecycle.d.ts.map +1 -1
  24. package/dist/plugin/light-control.d.ts.map +1 -1
  25. package/dist/plugin/light-rules-tools.d.ts.map +1 -1
  26. package/dist/plugin/notifications.d.ts +1 -0
  27. package/dist/plugin/notifications.d.ts.map +1 -1
  28. package/dist/plugin/recordings.d.ts +0 -2
  29. package/dist/plugin/recordings.d.ts.map +1 -1
  30. package/dist/plugin/register-guard.d.ts +16 -0
  31. package/dist/plugin/register-guard.d.ts.map +1 -0
  32. package/dist/plugin/runtime.d.ts +64 -0
  33. package/dist/plugin/runtime.d.ts.map +1 -0
  34. package/dist/plugin/shared-storage.d.ts +31 -0
  35. package/dist/plugin/shared-storage.d.ts.map +1 -0
  36. package/dist/plugin/system.d.ts +17 -0
  37. package/dist/plugin/system.d.ts.map +1 -0
  38. package/dist/recording/downloader.d.ts +0 -7
  39. package/dist/recording/downloader.d.ts.map +1 -1
  40. package/dist/recording/index.d.ts +2 -4
  41. package/dist/recording/index.d.ts.map +1 -1
  42. package/dist/recording/result-writer.d.ts +1 -2
  43. package/dist/recording/result-writer.d.ts.map +1 -1
  44. package/dist/recording/storage.d.ts +3 -2
  45. package/dist/recording/storage.d.ts.map +1 -1
  46. package/dist/system/os-info.d.ts +34 -0
  47. package/dist/system/os-info.d.ts.map +1 -0
  48. package/dist/tunnel/connect-status-reporter.d.ts.map +1 -1
  49. package/dist/tunnel/frame-slimmer.d.ts +97 -2
  50. package/dist/tunnel/frame-slimmer.d.ts.map +1 -1
  51. package/dist/tunnel/gateway-target.d.ts +17 -0
  52. package/dist/tunnel/gateway-target.d.ts.map +1 -0
  53. package/dist/tunnel/http-proxy.d.ts.map +1 -1
  54. package/dist/tunnel/proxy.d.ts +20 -1
  55. package/dist/tunnel/proxy.d.ts.map +1 -1
  56. package/dist/tunnel/relay-client.d.ts.map +1 -1
  57. package/dist/tunnel/service.d.ts.map +1 -1
  58. package/dist/types.d.ts +12 -67
  59. package/dist/types.d.ts.map +1 -1
  60. package/dist/update/executor.d.ts +3 -3
  61. package/dist/update/executor.d.ts.map +1 -1
  62. package/dist/update/index.d.ts +11 -0
  63. package/dist/update/index.d.ts.map +1 -1
  64. package/dist/update/stale-runtime.d.ts +43 -0
  65. package/dist/update/stale-runtime.d.ts.map +1 -0
  66. package/openclaw.plugin.json +1 -0
  67. package/package.json +1 -1
  68. package/skills/notification-monitor/SKILL.md +2 -2
  69. package/skills/notification-to-memory/SKILL.md +2 -2
  70. package/dist/recording/asr.d.ts +0 -119
  71. package/dist/recording/asr.d.ts.map +0 -1
  72. package/dist/recording/handler.d.ts +0 -38
  73. package/dist/recording/handler.d.ts.map +0 -1
  74. package/dist/recording/whisper-local.d.ts +0 -81
  75. package/dist/recording/whisper-local.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;;;;kBAsE7C,iBAAiB;;AAJjC,wBAuPE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;;;;kBAyE7C,iBAAiB;;AAJjC,wBAsRE"}
@@ -1,14 +1,25 @@
1
1
  import type { LightSegment } from "../types.js";
2
- import type { RepeatArgument } from "./repeat.js";
2
+ import { type RepeatArgument } from "./repeat.js";
3
3
  export interface SendLightResult {
4
4
  ok: boolean;
5
5
  bizUniqueId?: string;
6
6
  response?: unknown;
7
7
  status?: number;
8
8
  error?: string;
9
+ /** 本次实际走的下发链路:notification-intelligence 新入口或 message-service 旧链路 */
10
+ via?: "notification-intelligence" | "message-service";
9
11
  }
10
- export declare function sendLightEffect(apiKey: string, segments: LightSegment[], logger?: {
12
+ export interface SendLightOptions {
13
+ /**
14
+ * 调用方幂等标识,透传给一次性亮灯入口的 bizUniqueId;
15
+ * 未传时由服务端生成。仅对 notification-intelligence 链路生效。
16
+ */
17
+ bizUniqueId?: string;
18
+ }
19
+ interface LightLogger {
11
20
  info: (msg: string) => void;
12
21
  warn: (msg: string) => void;
13
- }, repeatInput?: RepeatArgument, reason?: string, title?: string): Promise<SendLightResult>;
22
+ }
23
+ export declare function sendLightEffect(apiKey: string, segments: LightSegment[], logger?: LightLogger, repeatInput?: RepeatArgument, reason?: string, title?: string, options?: SendLightOptions): Promise<SendLightResult>;
24
+ export {};
14
25
  //# sourceMappingURL=sender.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sender.d.ts","sourceRoot":"","sources":["../../src/light/sender.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EAAE,EACxB,MAAM,CAAC,EAAE;IAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,EACrE,WAAW,CAAC,EAAE,cAAc,EAC5B,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC,CA4D1B"}
1
+ {"version":3,"file":"sender.d.ts","sourceRoot":"","sources":["../../src/light/sender.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,GAAG,CAAC,EAAE,2BAA2B,GAAG,iBAAiB,CAAC;CACvD;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EAAE,EACxB,MAAM,CAAC,EAAE,WAAW,EACpB,WAAW,CAAC,EAAE,cAAc,EAC5B,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAkC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAKD,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA+ED,wBAAgB,mBAAmB,CAAC,OAAO,SAAiB,GAAG,OAAO,CAErE;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAM,GACrD,MAAM,CAgBR;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,MAAM;IAO3C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAN3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,gBAAgB,CAAuB;gBAG5B,QAAQ,EAAE,MAAM,EACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,uBAA4B;IAevC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOvB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMvB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMxB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,gBAAgB;CAgBzB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA8BpD;AAyND,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAgBpD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAKD,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA+ED,wBAAgB,mBAAmB,CAAC,OAAO,SAAiB,GAAG,OAAO,CAErE;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAM,GACrD,MAAM,CAgBR;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,MAAM;IAO3C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAN3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,gBAAgB,CAAuB;gBAG5B,QAAQ,EAAE,MAAM,EACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,uBAA4B;IAevC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMvB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMvB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMxB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,gBAAgB;CAgBzB;AAqDD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAwBpD;AAqMD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAgBpD"}
@@ -54,13 +54,16 @@ export declare class NotificationStorage {
54
54
  private contentKeyIndexDir;
55
55
  private idCache;
56
56
  private contentKeyCache;
57
+ private dayEntriesCache;
57
58
  private dateWriteChains;
58
59
  private resolveDisplayName;
59
60
  constructor(dir: string, logger: Logger, resolveDisplayName?: ResolveDisplayName);
60
61
  getStorageDir(): string;
61
62
  init(): Promise<void>;
62
63
  ingest(items: RawNotification[], ingestId?: string): Promise<NotificationIngestResult>;
63
- private writeNotification;
64
+ private writeDayNotifications;
65
+ /** 当日条目内存缓存:一天内的高频写入只读盘一次 */
66
+ private getDayEntries;
64
67
  private buildStoredNotification;
65
68
  private formatDate;
66
69
  private getIdIndexPath;
@@ -71,8 +74,6 @@ export declare class NotificationStorage {
71
74
  private getContentKeyIndexPath;
72
75
  private getContentKeySet;
73
76
  private hasNotificationContentKey;
74
- private recordNotificationId;
75
- private recordNotificationContentKey;
76
77
  private buildNotificationContentKey;
77
78
  private contentKeyLabels;
78
79
  private readStoredNotifications;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/notification/storage.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAInD,UAAU,MAAM;IACd,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,MAAM,4BAA4B,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,gBAAgB,CAAC,EAAE,4BAA4B,CAAC;IAChD,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAQD,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExE;AAmCD,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACpC,MAAM,CAqBR;AAED,mDAAmD;AACnD,MAAM,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE1E,qBAAa,mBAAmB;IAW5B,OAAO,CAAC,MAAM;IAVhB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,kBAAkB,CAAiC;gBAGzD,GAAG,EAAE,MAAM,EACH,MAAM,EAAE,MAAM,EACtB,kBAAkB,CAAC,EAAE,kBAAkB;IAQzC,aAAa,IAAI,MAAM;IAIjB,IAAI;IAOJ,MAAM,CACV,KAAK,EAAE,eAAe,EAAE,EACxB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,wBAAwB,CAAC;YAqCtB,iBAAiB;IA0C/B,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,QAAQ;IAsBhB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,2BAA2B;IAgBnC,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,uBAAuB;YAajB,iBAAiB;IAuBzB,KAAK;CAKZ"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/notification/storage.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAInD,UAAU,MAAM;IACd,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,MAAM,4BAA4B,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,gBAAgB,CAAC,EAAE,4BAA4B,CAAC;IAChD,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAQD,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExE;AAmCD,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACpC,MAAM,CAqBR;AAED,mDAAmD;AACnD,MAAM,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAK1E,qBAAa,mBAAmB;IAY5B,OAAO,CAAC,MAAM;IAXhB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,eAAe,CAA2C;IAClE,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,kBAAkB,CAAiC;gBAGzD,GAAG,EAAE,MAAM,EACH,MAAM,EAAE,MAAM,EACtB,kBAAkB,CAAC,EAAE,kBAAkB;IAQzC,aAAa,IAAI,MAAM;IAIjB,IAAI;IAOJ,MAAM,CACV,KAAK,EAAE,eAAe,EAAE,EACxB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,wBAAwB,CAAC;YA2DtB,qBAAqB;IAsFnC,6BAA6B;IAC7B,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,QAAQ;IAsBhB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,2BAA2B;IAgBnC,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,uBAAuB;YAoBjB,iBAAiB;IAuBzB,KAAK;CAMZ"}
@@ -12,6 +12,8 @@ interface AutoUpdateDeps {
12
12
  cacheBroadcast: (broadcast: BroadcastFn | undefined) => void;
13
13
  tunnelService: ReturnType<typeof createTunnelService> | null;
14
14
  }
15
+ type AutoUpdateAgentToolDeps = Pick<AutoUpdateDeps, "api" | "config" | "logger">;
16
+ export declare function registerAutoUpdateAgentTool({ api, config, logger, }: AutoUpdateAgentToolDeps): void;
15
17
  export declare function registerAutoUpdateLifecycle(deps: AutoUpdateDeps): ReturnType<typeof registerAutoUpdate>;
16
18
  export {};
17
19
  //# sourceMappingURL=auto-update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-update.d.ts","sourceRoot":"","sources":["../../src/plugin/auto-update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,UAAU,cAAc;IACtB,GAAG,EAAE,iBAAiB,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACzC,cAAc,EAAE,CAAC,SAAS,EAAE,WAAW,GAAG,SAAS,KAAK,IAAI,CAAC;IAC7D,aAAa,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,GAAG,IAAI,CAAC;CAC9D;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,cAAc,GACnB,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAkDvC"}
1
+ {"version":3,"file":"auto-update.d.ts","sourceRoot":"","sources":["../../src/plugin/auto-update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EACL,kBAAkB,EAEnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,UAAU,cAAc;IACtB,GAAG,EAAE,iBAAiB,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACzC,cAAc,EAAE,CAAC,SAAS,EAAE,WAAW,GAAG,SAAS,KAAK,IAAI,CAAC;IAC7D,aAAa,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,GAAG,IAAI,CAAC;CAC9D;AAED,KAAK,uBAAuB,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAkBjF,wBAAgB,2BAA2B,CAAC,EAC1C,GAAG,EACH,MAAM,EACN,MAAM,GACP,EAAE,uBAAuB,GAAG,IAAI,CAIhC;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,cAAc,GACnB,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAsCvC"}
@@ -1,26 +1,19 @@
1
1
  import type { OpenClawPluginApi } from "openclaw/plugin-sdk";
2
2
  import type { Logger } from "../logger.js";
3
- import { NotificationStorage } from "../notification/storage.js";
4
- import { RecordingStorage } from "../recording/index.js";
5
- import { ImageStorage } from "../image/index.js";
6
3
  import { type RelayTunnelService } from "../tunnel/service.js";
7
4
  import type { PluginConfig } from "../types.js";
8
- interface LightRuleContext {
9
- workspaceDir?: string;
10
- stateDir?: string;
11
- }
5
+ import type { PluginRuntime } from "./runtime.js";
12
6
  interface StorageLifecycleDeps {
13
7
  api: OpenClawPluginApi;
14
8
  logger: Logger;
15
- lightRuleCtx: LightRuleContext;
16
- setStorage: (storage: NotificationStorage | null) => void;
17
- setRecordingStorage: (storage: RecordingStorage | null) => void;
18
- setImageStorage: (storage: ImageStorage | null) => void;
9
+ /** 存储句柄经 runtime.markStorageReady 发布,就绪事件由 runtime 分发。 */
10
+ runtime: PluginRuntime;
19
11
  /**
20
- * storage service 完成 start 之后触发,此时 lightRuleCtx 已被回填。
21
- * 用于让 LightRuleRegistry 等下游组件在拿到真实 workspaceDir 后重新加载状态。
12
+ * 进程级共享存储注册表的键(用 register() 阶段的 openclawDir)。路由 handler
13
+ * 在本次 runtime 未就绪时回落到该键读取已启动的存储句柄,规避宿主多次
14
+ * register() 造成的 stale runtime → 503 问题。
22
15
  */
23
- onStorageReady?: () => void;
16
+ sharedStorageKey?: string;
24
17
  }
25
18
  export declare function registerStorageLifecycle(deps: StorageLifecycleDeps): void;
26
19
  interface RelayTunnelDeps {
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/plugin/lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EACL,mBAAmB,EAEpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,gBAAgB,EAEjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,YAAY,EAEb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD,UAAU,gBAAgB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,oBAAoB;IAC5B,GAAG,EAAE,iBAAiB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,gBAAgB,CAAC;IAC/B,UAAU,EAAE,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1D,mBAAmB,EAAE,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAC;IAChE,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,oBAAoB,GACzB,IAAI,CAuEN;AAuGD,UAAU,eAAe;IACvB,GAAG,EAAE,iBAAiB,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,eAAe,GACpB,kBAAkB,GAAG,IAAI,CAyD3B"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/plugin/lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAc3C,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAQlD,UAAU,oBAAoB;IAC5B,GAAG,EAAE,iBAAiB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,OAAO,EAAE,aAAa,CAAC;IACvB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,oBAAoB,GACzB,IAAI,CAyEN;AAuGD,UAAU,eAAe;IACvB,GAAG,EAAE,iBAAiB,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,eAAe,GACpB,kBAAkB,GAAG,IAAI,CAwE3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"light-control.d.ts","sourceRoot":"","sources":["../../src/plugin/light-control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AA4L3C,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,GACb,IAAI,CA8EN"}
1
+ {"version":3,"file":"light-control.d.ts","sourceRoot":"","sources":["../../src/plugin/light-control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AA4L3C,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,GACb,IAAI,CAoFN"}
@@ -1 +1 @@
1
- {"version":3,"file":"light-rules-tools.d.ts","sourceRoot":"","sources":["../../src/plugin/light-rules-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AA8LpF,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,iBAAiB,EACtB,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACpC,IAAI,CAuKN"}
1
+ {"version":3,"file":"light-rules-tools.d.ts","sourceRoot":"","sources":["../../src/plugin/light-rules-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAqMpF,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,iBAAiB,EACtB,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACpC,IAAI,CA6KN"}
@@ -15,6 +15,7 @@ interface NotificationInterfaceDeps {
15
15
  notifyNotificationSummaryStatus?: (event: NotificationSummaryStatusEvent) => void;
16
16
  notifyNotificationSummaryResult?: (event: NotificationSummaryResultEvent) => void;
17
17
  tunnelService?: RelayTunnelService | null;
18
+ agentToolsOnly?: boolean;
18
19
  }
19
20
  export declare function registerNotificationInterfaces(deps: NotificationInterfaceDeps): void;
20
21
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/plugin/notifications.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAEL,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAQL,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACpC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAGV,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;AAwDrB,UAAU,yBAAyB;IACjC,GAAG,EAAE,iBAAiB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,mBAAmB,GAAG,IAAI,CAAC;IAC7C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,CAAC;IACrE,qBAAqB,EAAE,sBAAsB,CAAC;IAC9C,+BAA+B,CAAC,EAAE,CAAC,KAAK,EAAE,8BAA8B,KAAK,IAAI,CAAC;IAClF,+BAA+B,CAAC,EAAE,CAAC,KAAK,EAAE,8BAA8B,KAAK,IAAI,CAAC;IAClF,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC3C;AAmGD,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,yBAAyB,GAC9B,IAAI,CAgeN"}
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/plugin/notifications.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAEL,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAQL,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACpC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAGV,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;AAwDrB,UAAU,yBAAyB;IACjC,GAAG,EAAE,iBAAiB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,mBAAmB,GAAG,IAAI,CAAC;IAC7C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,CAAC;IACrE,qBAAqB,EAAE,sBAAsB,CAAC;IAC9C,+BAA+B,CAAC,EAAE,CAAC,KAAK,EAAE,8BAA8B,KAAK,IAAI,CAAC;IAClF,+BAA+B,CAAC,EAAE,CAAC,KAAK,EAAE,8BAA8B,KAAK,IAAI,CAAC;IAClF,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAmGD,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,yBAAyB,GAC9B,IAAI,CAyeN"}
@@ -6,11 +6,9 @@ import { type GatewayMethodRegistrar } from "./shared.js";
6
6
  interface RecordingInterfaceDeps {
7
7
  api: OpenClawPluginApi;
8
8
  logger: Logger;
9
- asrDataDir: string;
10
9
  getRecordingStorage: () => RecordingStorage | null;
11
10
  notifyRecordingStatus: (event: RecordingStatusEvent) => void;
12
11
  registerGatewayMethod: GatewayMethodRegistrar;
13
- shouldBroadcastStatusOnHttp: () => boolean;
14
12
  tunnelService?: RelayTunnelService | null;
15
13
  }
16
14
  export declare function registerRecordingInterfaces(deps: RecordingInterfaceDeps): void;
@@ -1 +1 @@
1
- {"version":3,"file":"recordings.d.ts","sourceRoot":"","sources":["../../src/plugin/recordings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAShB,KAAK,oBAAoB,EAE1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAc/D,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;AAwFrB,UAAU,sBAAsB;IAC9B,GAAG,EAAE,iBAAiB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC;IACnD,qBAAqB,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC7D,qBAAqB,EAAE,sBAAsB,CAAC;IAC9C,2BAA2B,EAAE,MAAM,OAAO,CAAC;IAC3C,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC3C;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,sBAAsB,GAC3B,IAAI,CA2cN"}
1
+ {"version":3,"file":"recordings.d.ts","sourceRoot":"","sources":["../../src/plugin/recordings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAKhB,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAU/D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;AAwFrB,UAAU,sBAAsB;IAC9B,GAAG,EAAE,iBAAiB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC;IACnD,qBAAqB,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC7D,qBAAqB,EAAE,sBAAsB,CAAC;IAC9C,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC3C;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,sBAAsB,GAC3B,IAAI,CA2QN"}
@@ -0,0 +1,16 @@
1
+ import type { PluginRuntime } from "./runtime.js";
2
+ /**
3
+ * 认领本进程内某 openclawDir 的装配。
4
+ * - 已装配:返回既有 runtime,`firstAssembly=false`,调用方应跳过后台 wiring,
5
+ * 但仍需向当前 api collector 注册 Agent 工具。
6
+ * - 未装配:调用 `create()` 生成 runtime 并登记,`firstAssembly=true`。
7
+ */
8
+ export declare function claimWiredRuntime(key: string | undefined, create: () => PluginRuntime): {
9
+ runtime: PluginRuntime;
10
+ firstAssembly: boolean;
11
+ };
12
+ /** 关停/重启时清除守卫,使下一次 register 重新完整装配。 */
13
+ export declare function releaseWiredRuntime(key: string | undefined): void;
14
+ /** 仅测试用:清空进程级守卫,避免用例间的模块状态串扰。 */
15
+ export declare function resetWiredRuntimesForTest(): void;
16
+ //# sourceMappingURL=register-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-guard.d.ts","sourceRoot":"","sources":["../../src/plugin/register-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA+BlD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,MAAM,EAAE,MAAM,aAAa,GAC1B;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,CASpD;AAED,uCAAuC;AACvC,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAEjE;AAED,iCAAiC;AACjC,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
@@ -0,0 +1,64 @@
1
+ import type { ImageStorage } from "../image/index.js";
2
+ import type { Logger } from "../logger.js";
3
+ import type { NotificationStorage } from "../notification/storage.js";
4
+ import type { RecordingStorage } from "../recording/index.js";
5
+ import type { RelayTunnelService } from "../tunnel/service.js";
6
+ import type { BroadcastFn } from "../update/types.js";
7
+ /**
8
+ * 插件运行时上下文:集中持有各子系统的共享句柄与就绪状态。
9
+ *
10
+ * register() 阶段所有子系统围绕这一个对象装配:
11
+ * - 存储句柄在 storage service start 完成后由 markStorageReady 一次性写入,
12
+ * 同时回填 lightRuleCtx 的真实 workspaceDir/stateDir;
13
+ * - broadcast 句柄由任意 gateway 请求携带时经 cacheBroadcast 写入;
14
+ * - 消费方用 getter 读取当前状态,用 onStorageReady / onBroadcastChanged
15
+ * 订阅就绪事件。订阅时若已就绪会立即补触发一次,因此订阅注册的先后
16
+ * 顺序不构成隐式时序约束。
17
+ */
18
+ export declare class PluginRuntime {
19
+ private readonly logger;
20
+ /**
21
+ * 灯效规则目录上下文。LightRuleRegistry 持有同一引用;
22
+ * storage 就绪后由 markStorageReady 回填 workspaceDir/stateDir。
23
+ */
24
+ readonly lightRuleCtx: {
25
+ workspaceDir?: string;
26
+ stateDir?: string;
27
+ };
28
+ /** Relay 隧道服务;register() 阶段装配一次,未启用隧道时为 null。 */
29
+ tunnelService: RelayTunnelService | null;
30
+ private storage;
31
+ private recordingStorage;
32
+ private imageStorage;
33
+ private broadcastFn;
34
+ private storageReady;
35
+ private readonly storageReadyListeners;
36
+ private readonly broadcastChangedListeners;
37
+ constructor(logger: Logger, stateDir?: string);
38
+ getStorage(): NotificationStorage | null;
39
+ getRecordingStorage(): RecordingStorage | null;
40
+ getImageStorage(): ImageStorage | null;
41
+ getBroadcastFn(): BroadcastFn | null;
42
+ /**
43
+ * storage service start 完成后调用:一次性发布所有存储句柄并回填
44
+ * lightRuleCtx,然后触发 onStorageReady 订阅者。服务重启会再次触发。
45
+ */
46
+ markStorageReady(params: {
47
+ storage: NotificationStorage;
48
+ recordingStorage: RecordingStorage;
49
+ imageStorage: ImageStorage;
50
+ workspaceDir?: string;
51
+ stateDir: string;
52
+ }): void;
53
+ /** storage service stop 时调用:先下线句柄,再由调用方关闭各存储。 */
54
+ markStorageStopped(): void;
55
+ /** 订阅存储就绪事件;订阅时若已就绪立即补触发一次。 */
56
+ onStorageReady(listener: () => void): void;
57
+ /** gateway 请求携带 broadcast 时缓存;句柄发生变化时通知订阅者。 */
58
+ cacheBroadcast(broadcast: BroadcastFn | undefined): void;
59
+ /** 订阅 broadcast 句柄可用/变化事件;订阅时若已可用立即补触发一次。 */
60
+ onBroadcastChanged(listener: () => void): void;
61
+ private emitAll;
62
+ private emitOne;
63
+ }
64
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/plugin/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IAmBtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAlBzB;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEpE,iDAAiD;IACjD,aAAa,EAAE,kBAAkB,GAAG,IAAI,CAAQ;IAEhD,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAyB;IAC/D,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAyB;gBAGhD,MAAM,EAAE,MAAM,EAC/B,QAAQ,CAAC,EAAE,MAAM;IAKnB,UAAU,IAAI,mBAAmB,GAAG,IAAI;IAIxC,mBAAmB,IAAI,gBAAgB,GAAG,IAAI;IAI9C,eAAe,IAAI,YAAY,GAAG,IAAI;IAItC,cAAc,IAAI,WAAW,GAAG,IAAI;IAIpC;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE;QACvB,OAAO,EAAE,mBAAmB,CAAC;QAC7B,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,YAAY,EAAE,YAAY,CAAC;QAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI;IAUR,iDAAiD;IACjD,kBAAkB,IAAI,IAAI;IAO1B,+BAA+B;IAC/B,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAO1C,+CAA+C;IAC/C,cAAc,CAAC,SAAS,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI;IAWxD,6CAA6C;IAC7C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAO9C,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,OAAO;CAShB"}
@@ -0,0 +1,31 @@
1
+ import type { ImageStorage } from "../image/index.js";
2
+ import type { NotificationStorage } from "../notification/storage.js";
3
+ import type { RecordingStorage } from "../recording/index.js";
4
+ /**
5
+ * 进程级共享存储句柄注册表。
6
+ *
7
+ * 背景:宿主可能对同一个插件多次调用 `register()`(例如每次 agent 运行都会
8
+ * 重跑一遍以解析该 agent 的工具清单)。每次 register() 都会 new 一个新的
9
+ * PluginRuntime,而 `notification-storage` service 的 start() 只在首个 register()
10
+ * 上真正跑过一次。结果是后续 register() 注册(并覆盖)的 HTTP 路由 handler
11
+ * 绑定到一个 storage 恒为 null 的 runtime,导致 POST /notifications 恒返回
12
+ * 503 Service Not Ready,且重启也无法规避(首条 agent 消息一来就复现)。
13
+ *
14
+ * 这里把「已就绪的存储句柄」提升为模块级(进程级)单例:storage service
15
+ * start() 成功后发布,stop() 时清除。路由 handler 在本次 runtime 未就绪时
16
+ * 回落到这里读取,从而复用首个 register() 启动好的同一份存储实例。
17
+ */
18
+ interface SharedStorageHandles {
19
+ storage: NotificationStorage;
20
+ recordingStorage: RecordingStorage;
21
+ imageStorage: ImageStorage;
22
+ }
23
+ /** storage service start() 成功后调用,发布进程级共享句柄。 */
24
+ export declare function publishSharedStorage(key: string | undefined, handles: SharedStorageHandles): void;
25
+ /** storage service stop() 时调用,清除共享句柄(避免关闭中的实例被读取)。 */
26
+ export declare function clearSharedStorage(key: string | undefined): void;
27
+ export declare function getSharedNotificationStorage(key: string | undefined): NotificationStorage | null;
28
+ export declare function getSharedRecordingStorage(key: string | undefined): RecordingStorage | null;
29
+ export declare function getSharedImageStorage(key: string | undefined): ImageStorage | null;
30
+ export {};
31
+ //# sourceMappingURL=shared-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-storage.d.ts","sourceRoot":"","sources":["../../src/plugin/shared-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;;;;;;;;GAaG;AACH,UAAU,oBAAoB;IAC5B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAUD,+CAA+C;AAC/C,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAEN;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAEhE;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,mBAAmB,GAAG,IAAI,CAE5B;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,gBAAgB,GAAG,IAAI,CAEzB;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,YAAY,GAAG,IAAI,CAErB"}
@@ -0,0 +1,17 @@
1
+ import type { OpenClawPluginApi } from "openclaw/plugin-sdk";
2
+ import type { Logger } from "../logger.js";
3
+ import type { GatewayMethodRegistrar } from "./shared.js";
4
+ interface SystemInterfaceDeps {
5
+ api: OpenClawPluginApi;
6
+ logger: Logger;
7
+ registerGatewayMethod: GatewayMethodRegistrar;
8
+ }
9
+ /**
10
+ * 注册系统信息接口,供客户端查询 openclaw 当前运行的操作系统。
11
+ *
12
+ * - HTTP: `GET /system/os` 返回归一化的操作系统信息(Windows 会区分是否在 WSL 中);
13
+ * - Gateway: `system.os` 返回同样的数据,供 WS 通道复用。
14
+ */
15
+ export declare function registerSystemInterfaces(deps: SystemInterfaceDeps): void;
16
+ export {};
17
+ //# sourceMappingURL=system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/plugin/system.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,UAAU,mBAAmB;IAC3B,GAAG,EAAE,iBAAiB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAE,sBAAsB,CAAC;CAC/C;AAMD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAwBxE"}
@@ -26,11 +26,4 @@ export interface DownloadResult {
26
26
  * 从 URL 下载文件到本地路径
27
27
  */
28
28
  export declare function downloadFile(url: string, destPath: string, logger: Logger, options?: DownloadOptions): Promise<DownloadResult>;
29
- /**
30
- * 下载录音的音频文件和打点文件
31
- */
32
- export declare function downloadRecordingFiles(ossAudioUrl: string, ossSrtUrl: string | undefined, audioDestPath: string, srtDestPath: string, logger: Logger, options?: DownloadOptions): Promise<{
33
- audio: DownloadResult;
34
- srt: DownloadResult | null;
35
- }>;
36
29
  //# sourceMappingURL=downloader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"downloader.d.ts","sourceRoot":"","sources":["../../src/recording/downloader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,kBAAkB;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD;;GAEG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,CAAC,CAwEzB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC;IACT,KAAK,EAAE,cAAc,CAAC;IACtB,GAAG,EAAE,cAAc,GAAG,IAAI,CAAC;CAC5B,CAAC,CAeD"}
1
+ {"version":3,"file":"downloader.d.ts","sourceRoot":"","sources":["../../src/recording/downloader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,kBAAkB;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD;;GAEG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,CAAC,CAwEzB"}
@@ -1,9 +1,7 @@
1
1
  export { RecordingStorage, resolveRecordingStorageDir, type RecordingIndexEntry, type RecordingStorageContext, } from "./storage.js";
2
2
  export { TRANSCRIPT_DOCUMENT_SCHEMA_VERSION, buildTranscriptDataFilename, buildTranscriptDocument, parseTranscriptDocument, extractTranscriptTextFromDocument, extractTranscriptSummaryFromDocument, extractTranscriptTitleFromDocument, extractSourceTextListFromDocument, type TranscriptDocument, type TranscriptDocumentContentItem, type TranscriptDocumentNormalized, type TranscriptDocumentSegment, type TranscriptDocumentSource, } from "./transcript-document.js";
3
3
  export { isValidTransition, transition, isTerminalStatus, canStartTranscription, getNextStatuses, TransitionError, } from "./state-machine.js";
4
- export { downloadFile, downloadRecordingFiles, type DownloadResult, type DownloadOptions, } from "./downloader.js";
5
- export { isAsrConfigured, validateAsrConfig, initializeAsr, transcribeAudio, buildTranscriptMarkdown, extractSummary, runTranscriptionWorkflow, type TranscriptionResult, type TranscriptSegment, } from "./asr.js";
6
- export { detectEnvironment, selectModelByMemory, isModelDownloaded, downloadModel, findWhisperBinary, transcribeWithWhisperLocal, getWhisperLocalStatus, } from "./whisper-local.js";
7
- export { handleRecordingSync, triggerTranscription, type RecordingStatusEvent, type RecordingSyncOptions, } from "./handler.js";
4
+ export { downloadFile, type DownloadResult, type DownloadOptions, } from "./downloader.js";
5
+ export type { RecordingStatusEvent } from "../types.js";
8
6
  export { handleRecordingResultWrite, type RecordingResultWriteOptions, } from "./result-writer.js";
9
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recording/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,kCAAkC,EAClC,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,iCAAiC,EACjC,oCAAoC,EACpC,kCAAkC,EAClC,iCAAiC,EACjC,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,uBAAuB,EACvB,cAAc,EACd,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,0BAA0B,EAC1B,KAAK,2BAA2B,GACjC,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recording/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,kCAAkC,EAClC,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,iCAAiC,EACjC,oCAAoC,EACpC,kCAAkC,EAClC,iCAAiC,EACjC,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,EACL,0BAA0B,EAC1B,KAAK,2BAA2B,GACjC,MAAM,oBAAoB,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import type { Logger } from "../logger.js";
2
- import type { RecordingResultWriteParams, RecordingResultWriteResult } from "../types.js";
3
- import type { RecordingStatusEvent } from "./handler.js";
2
+ import type { RecordingResultWriteParams, RecordingResultWriteResult, RecordingStatusEvent } from "../types.js";
4
3
  import { RecordingStorage } from "./storage.js";
5
4
  export interface RecordingResultWriteOptions {
6
5
  notifyStatus?: (event: RecordingStatusEvent) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"result-writer.d.ts","sourceRoot":"","sources":["../../src/recording/result-writer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAKV,0BAA0B,EAC1B,0BAA0B,EAE3B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAOhD,MAAM,WAAW,2BAA2B;IAC1C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACtD;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,0BAA0B,EAClC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,2BAAgC,GACxC,0BAA0B,CA2D5B"}
1
+ {"version":3,"file":"result-writer.d.ts","sourceRoot":"","sources":["../../src/recording/result-writer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAKV,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EAErB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAOhD,MAAM,WAAW,2BAA2B;IAC1C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACtD;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,0BAA0B,EAClC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,2BAAgC,GACxC,0BAA0B,CA2D5B"}
@@ -16,6 +16,7 @@
16
16
  */
17
17
  import type { RecordingMetadata, RecordingTransferStatus } from "../types.js";
18
18
  import type { Logger } from "../logger.js";
19
+ import { type TranscriptDocument } from "./transcript-document.js";
19
20
  /** 持久化到 index.json 的单条录音记录 */
20
21
  export interface RecordingIndexEntry {
21
22
  /** 录音 ID,基于文件名(如 "2026-03-23_14-32") */
@@ -74,7 +75,7 @@ export declare class RecordingStorage {
74
75
  /** 获取摘要目录路径 */
75
76
  getSummariesDir(): string;
76
77
  /**
77
- * 收到 recordings.sync 后,将元数据写入索引。
78
+ * 将录音元数据写入索引(由 recordings.result.write 触发)。
78
79
  * 如果同 ID 录音已存在则更新,否则新建。
79
80
  * 返回录音 ID。
80
81
  */
@@ -124,7 +125,7 @@ export declare class RecordingStorage {
124
125
  /**
125
126
  * 读取结构化 transcript JSON。
126
127
  */
127
- readTranscriptDocument(recordingId: string): import("./transcript-document.js").TranscriptDocument | undefined;
128
+ readTranscriptDocument(recordingId: string): TranscriptDocument | undefined;
128
129
  findById(id: string): RecordingIndexEntry | undefined;
129
130
  listAll(): RecordingIndexEntry[];
130
131
  listByStatus(status: RecordingTransferStatus): RecordingIndexEntry[];
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/recording/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/recording/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /** 归一化后的操作系统类别,供客户端直接判断运行环境。 */
2
+ export type OsKind = "windows" | "macos" | "linux" | "wsl" | "unknown";
3
+ export interface WslInfo {
4
+ /** WSL 版本:1 或 2;无法确定时为 null。 */
5
+ version: 1 | 2 | null;
6
+ /** 当前 WSL 发行版名称(来自 WSL_DISTRO_NAME),未知时为 null。 */
7
+ distro: string | null;
8
+ }
9
+ export interface OsInfo {
10
+ /** 归一化的操作系统类别;WSL 会单独标记为 "wsl"。 */
11
+ os: OsKind;
12
+ /** 是否运行在 WSL(Windows Subsystem for Linux)中。 */
13
+ isWsl: boolean;
14
+ /** Node `os.platform()` 原始值,例如 win32 / darwin / linux。 */
15
+ platform: NodeJS.Platform;
16
+ /** CPU 架构,例如 x64 / arm64。 */
17
+ arch: string;
18
+ /** 内核/系统版本字符串(os.release())。 */
19
+ release: string;
20
+ /** 仅在 isWsl 为 true 时存在,描述 WSL 版本与发行版。 */
21
+ wsl?: WslInfo;
22
+ }
23
+ /** 可注入的探测输入,便于在测试中模拟不同运行环境。 */
24
+ export interface OsInfoProbe {
25
+ platform?: NodeJS.Platform;
26
+ arch?: string;
27
+ release?: string;
28
+ env?: NodeJS.ProcessEnv;
29
+ /** 读取 /proc/version 的内容;读取失败时返回 null。 */
30
+ readProcVersion?: () => string | null;
31
+ }
32
+ /** 探测当前进程所在的操作系统信息,包含 WSL 区分。 */
33
+ export declare function detectOsInfo(probe?: OsInfoProbe): OsInfo;
34
+ //# sourceMappingURL=os-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"os-info.d.ts","sourceRoot":"","sources":["../../src/system/os-info.ts"],"names":[],"mappings":"AAGA,gCAAgC;AAChC,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,OAAO;IACtB,gCAAgC;IAChC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACtB,kDAAkD;IAClD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,MAAM;IACrB,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,+CAA+C;IAC/C,KAAK,EAAE,OAAO,CAAC;IACf,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,+BAA+B;AAC/B,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,yCAAyC;IACzC,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CACvC;AA6CD,iCAAiC;AACjC,wBAAgB,YAAY,CAAC,KAAK,GAAE,WAAgB,GAAG,MAAM,CAsB5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"connect-status-reporter.d.ts","sourceRoot":"","sources":["../../src/tunnel/connect-status-reporter.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,cAAc,CAAC;AAEhE,UAAU,MAAM;IACd,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC3C,KAAK,IAAI,IAAI,CAAC;CACf;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,qBAAqB,CAgExB"}
1
+ {"version":3,"file":"connect-status-reporter.d.ts","sourceRoot":"","sources":["../../src/tunnel/connect-status-reporter.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,cAAc,CAAC;AAEhE,UAAU,MAAM;IACd,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC3C,KAAK,IAAI,IAAI,CAAC;CACf;AAQD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,qBAAqB,CAqHxB"}