@yoooclaw/phone-notifications 1.12.0 → 1.12.2

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 (78) hide show
  1. package/README.md +212 -29
  2. package/dist/bin/ntf.cjs +918 -113
  3. package/dist/bin/ntf.cjs.map +15 -10
  4. package/dist/cli/helpers.d.ts +27 -0
  5. package/dist/cli/helpers.d.ts.map +1 -1
  6. package/dist/cli/image-list.d.ts +3 -0
  7. package/dist/cli/image-list.d.ts.map +1 -0
  8. package/dist/cli/image-path.d.ts +3 -0
  9. package/dist/cli/image-path.d.ts.map +1 -0
  10. package/dist/cli/image-status.d.ts +3 -0
  11. package/dist/cli/image-status.d.ts.map +1 -0
  12. package/dist/cli/image-storage-path.d.ts +3 -0
  13. package/dist/cli/image-storage-path.d.ts.map +1 -0
  14. package/dist/cli/index.d.ts.map +1 -1
  15. package/dist/cli/ntf-query.d.ts +11 -0
  16. package/dist/cli/ntf-query.d.ts.map +1 -1
  17. package/dist/cli/ntf-summary-job.d.ts +3 -0
  18. package/dist/cli/ntf-summary-job.d.ts.map +1 -0
  19. package/dist/cli/ntf-summary.d.ts.map +1 -1
  20. package/dist/cli/ntf-sync.d.ts.map +1 -1
  21. package/dist/env.d.ts +3 -0
  22. package/dist/env.d.ts.map +1 -1
  23. package/dist/image/handler.d.ts +19 -0
  24. package/dist/image/handler.d.ts.map +1 -0
  25. package/dist/image/index.d.ts +3 -0
  26. package/dist/image/index.d.ts.map +1 -0
  27. package/dist/image/store.d.ts +76 -0
  28. package/dist/image/store.d.ts.map +1 -0
  29. package/dist/index.cjs +9089 -7137
  30. package/dist/index.cjs.map +40 -35
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/light-rules/client.d.ts +58 -0
  33. package/dist/light-rules/client.d.ts.map +1 -0
  34. package/dist/light-rules/gateway.d.ts.map +1 -1
  35. package/dist/light-rules/types.d.ts +13 -8
  36. package/dist/light-rules/types.d.ts.map +1 -1
  37. package/dist/notification/storage.d.ts +1 -0
  38. package/dist/notification/storage.d.ts.map +1 -1
  39. package/dist/notification/summary.d.ts +144 -0
  40. package/dist/notification/summary.d.ts.map +1 -0
  41. package/dist/plugin/images.d.ts +16 -0
  42. package/dist/plugin/images.d.ts.map +1 -0
  43. package/dist/plugin/lifecycle.d.ts +2 -0
  44. package/dist/plugin/lifecycle.d.ts.map +1 -1
  45. package/dist/plugin/light-rules-tools.d.ts +2 -2
  46. package/dist/plugin/light-rules-tools.d.ts.map +1 -1
  47. package/dist/plugin/notifications.d.ts +5 -3
  48. package/dist/plugin/notifications.d.ts.map +1 -1
  49. package/dist/plugin/recordings.d.ts.map +1 -1
  50. package/dist/recording/handler.d.ts +1 -0
  51. package/dist/recording/handler.d.ts.map +1 -1
  52. package/dist/recording/index.d.ts +1 -0
  53. package/dist/recording/index.d.ts.map +1 -1
  54. package/dist/recording/result-writer.d.ts +9 -0
  55. package/dist/recording/result-writer.d.ts.map +1 -0
  56. package/dist/recording/storage.d.ts +2 -0
  57. package/dist/recording/storage.d.ts.map +1 -1
  58. package/dist/recording/transcript-document.d.ts +1 -0
  59. package/dist/recording/transcript-document.d.ts.map +1 -1
  60. package/dist/tunnel/frame-slimmer.d.ts +37 -0
  61. package/dist/tunnel/frame-slimmer.d.ts.map +1 -0
  62. package/dist/tunnel/proxy.d.ts.map +1 -1
  63. package/dist/types.d.ts +120 -0
  64. package/dist/types.d.ts.map +1 -1
  65. package/dist/update/checker.d.ts +2 -1
  66. package/dist/update/checker.d.ts.map +1 -1
  67. package/dist/update/index.d.ts.map +1 -1
  68. package/openclaw.plugin.json +13 -1
  69. package/package.json +3 -2
  70. package/skills/notification-monitor/SKILL.md +14 -13
  71. package/skills/notification-query/SKILL.md +101 -7
  72. package/skills/notification-to-memory/SKILL.md +57 -22
  73. package/skills/notification-to-memory/references/step-0-preflight.md +0 -40
  74. package/skills/notification-to-memory/references/step-1-scan-pending.md +0 -137
  75. package/skills/notification-to-memory/references/step-2-process-dates.md +0 -98
  76. package/skills/notification-to-memory/references/step-3-check-cron-status.md +0 -38
  77. package/skills/notification-to-memory/references/step-4-final-reporting.md +0 -57
  78. package/skills/notification-to-memory/scripts/select-memory-prompt.sh +0 -18
@@ -76,4 +76,31 @@ export declare function resolveAsrConfigPath(ctx: CliContext): string;
76
76
  export declare function maskApiKey(key: string): string;
77
77
  /** Read recording index.json */
78
78
  export declare function readRecordingIndex(dir: string): CliRecordingEntry[];
79
+ /** Resolve the images storage directory (stateDir → workspace fallback) */
80
+ export declare function resolveImagesDir(ctx: CliContext): string | null;
81
+ /** Image index entry (mirrors ImageIndexEntry from image/store.ts) */
82
+ export interface CliImageEntry {
83
+ imageId: string;
84
+ clientLabel?: string;
85
+ metadata: {
86
+ oss_image_url: string;
87
+ created_at: string;
88
+ mime_type?: string;
89
+ width?: number;
90
+ height?: number;
91
+ size_bytes?: number;
92
+ source_app?: string;
93
+ caption?: string;
94
+ [key: string]: unknown;
95
+ };
96
+ localFile?: string;
97
+ thumbnail?: string;
98
+ status: string;
99
+ lastError?: string;
100
+ syncedAt?: string;
101
+ }
102
+ /** Read image index.json (sorted by created_at desc) */
103
+ export declare function readImageIndex(dir: string): CliImageEntry[];
104
+ /** Resolve an image's stored file to an absolute path */
105
+ export declare function resolveImageFile(dir: string, relative: string): string;
79
106
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAAC;IACzC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC;IACrC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IACvE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC9E,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAAC;IAC/D,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;CAClE;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,kFAAkF;AAClF,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAetE;AAED,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CASlD;AAED,6CAA6C;AAC7C,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,kBAAkB,EAAE,CAQtB;AAED,iCAAiC;AACjC,wBAAgB,KAAK,IAAI,MAAM,CAE9B;AAED,kCAAkC;AAClC,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAK1C;AAED,wCAAwC;AACxC,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAIzC;AAED,yDAAyD;AACzD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,MAAM,EAAE,CAEV;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,QAAQ,GAAG,MAAM,GAC5B,MAAM,CAkBR;AAED,gEAAgE;AAChE,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,kBAAkB,EAAE,GAC1B,kBAAkB,EAAE,CAEtB;AAsBD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,MAAM,GACV,OAAO,CAaT;AAED,oCAAoC;AACpC,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUtE;AAED,oCAAoC;AACpC,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAS/B;AAED,sFAAsF;AACtF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,kCAAkC;AAClC,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE1C;AAED,4CAA4C;AAC5C,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAG9D;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAenE;AAED,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;QACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,sEAAsE;AACtE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAc5D;AAED,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,gCAAgC;AAChC,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,GACV,iBAAiB,EAAE,CASrB;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAe/D;AAED,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE;QACR,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,CAY3D;AAED,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtE"}
@@ -0,0 +1,3 @@
1
+ import { type CliCommand, type CliContext } from "./helpers.js";
2
+ export declare function registerImageList(image: CliCommand, ctx: CliContext): void;
3
+ //# sourceMappingURL=image-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-list.d.ts","sourceRoot":"","sources":["../../src/cli/image-list.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EAKhB,MAAM,cAAc,CAAC;AAEtB,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAmC1E"}
@@ -0,0 +1,3 @@
1
+ import { type CliCommand, type CliContext } from "./helpers.js";
2
+ export declare function registerImagePath(image: CliCommand, ctx: CliContext): void;
3
+ //# sourceMappingURL=image-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-path.d.ts","sourceRoot":"","sources":["../../src/cli/image-path.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EAMhB,MAAM,cAAc,CAAC;AAEtB,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAsB1E"}
@@ -0,0 +1,3 @@
1
+ import { type CliCommand, type CliContext } from "./helpers.js";
2
+ export declare function registerImageStatus(image: CliCommand, ctx: CliContext): void;
3
+ //# sourceMappingURL=image-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-status.d.ts","sourceRoot":"","sources":["../../src/cli/image-status.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EAKhB,MAAM,cAAc,CAAC;AAEtB,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CA2B5E"}
@@ -0,0 +1,3 @@
1
+ import { type CliCommand, type CliContext } from "./helpers.js";
2
+ export declare function registerImageStoragePath(image: CliCommand, ctx: CliContext): void;
3
+ //# sourceMappingURL=image-storage-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-storage-path.d.ts","sourceRoot":"","sources":["../../src/cli/image-storage-path.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EAIhB,MAAM,cAAc,CAAC;AAEtB,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,UAAU,GACd,IAAI,CASN"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAsB3D,wBAAgB,cAAc,CAC5B,OAAO,EAAE,UAAU,EACnB,GAAG,EAAE,UAAU,EACf,eAAe,GAAE,MAAM,GAAG,IAAY,GACrC,IAAI,CAuDN"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA2B3D,wBAAgB,cAAc,CAC5B,OAAO,EAAE,UAAU,EACnB,GAAG,EAAE,UAAU,EACf,eAAe,GAAE,MAAM,GAAG,IAAY,GACrC,IAAI,CA+DN"}
@@ -23,8 +23,19 @@ export interface NotificationQueryOptions {
23
23
  fromDateKey: string | null;
24
24
  toDateKey: string | null;
25
25
  }
26
+ export interface NotificationQueryStats {
27
+ daysScanned: number;
28
+ itemsScanned: number;
29
+ matched: number;
30
+ stoppedAfterLimit: boolean;
31
+ }
32
+ export interface NotificationQueryResult {
33
+ notifications: StoredNotification[];
34
+ stats: NotificationQueryStats;
35
+ }
26
36
  export declare function parsePositiveIntegerOption(rawValue: string | undefined, defaultValue: number, optionName: string, errorCode: string): number;
27
37
  export declare function parseNotificationQueryOptions(opts: RawNotificationQueryOptions, defaultLimit?: number): NotificationQueryOptions;
28
38
  export declare function matchesNotificationQuery(item: StoredNotification, opts: NotificationQueryOptions): boolean;
29
39
  export declare function collectMatchingNotifications(dir: string, opts: NotificationQueryOptions): Promise<StoredNotification[]>;
40
+ export declare function collectMatchingNotificationsWithStats(dir: string, opts: NotificationQueryOptions): Promise<NotificationQueryResult>;
30
41
  //# sourceMappingURL=ntf-query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ntf-query.d.ts","sourceRoot":"","sources":["../../src/cli/ntf-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAUrE,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,MAAM,CAWR;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,2BAA2B,EACjC,YAAY,SAAM,GACjB,wBAAwB,CA0C1B;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAkCT;AAED,wBAAsB,4BAA4B,CAChD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAsB/B"}
1
+ {"version":3,"file":"ntf-query.d.ts","sourceRoot":"","sources":["../../src/cli/ntf-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAUrE,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC,KAAK,EAAE,sBAAsB,CAAC;CAC/B;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,MAAM,CAWR;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,2BAA2B,EACjC,YAAY,SAAM,GACjB,wBAAwB,CA0C1B;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAkCT;AAED,wBAAsB,4BAA4B,CAChD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAG/B;AAED,wBAAsB,qCAAqC,CACzD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAkClC"}
@@ -0,0 +1,3 @@
1
+ import { type CliCommand, type CliContext } from "./helpers.js";
2
+ export declare function registerNtfSummaryJob(ntf: CliCommand, ctx: CliContext): void;
3
+ //# sourceMappingURL=ntf-summary-job.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ntf-summary-job.d.ts","sourceRoot":"","sources":["../../src/cli/ntf-summary-job.ts"],"names":[],"mappings":"AASA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EAKhB,MAAM,cAAc,CAAC;AAydtB,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAuV5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"ntf-summary.d.ts","sourceRoot":"","sources":["../../src/cli/ntf-summary.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EAKhB,MAAM,cAAc,CAAC;AAsFtB,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAmHzE"}
1
+ {"version":3,"file":"ntf-summary.d.ts","sourceRoot":"","sources":["../../src/cli/ntf-summary.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EAKhB,MAAM,cAAc,CAAC;AAsFtB,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CA6HzE"}
@@ -1 +1 @@
1
- {"version":3,"file":"ntf-sync.d.ts","sourceRoot":"","sources":["../../src/cli/ntf-sync.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EAOhB,MAAM,cAAc,CAAC;AAkGtB,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CA8KtE"}
1
+ {"version":3,"file":"ntf-sync.d.ts","sourceRoot":"","sources":["../../src/cli/ntf-sync.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EAOhB,MAAM,cAAc,CAAC;AAsItB,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CA4PtE"}
package/dist/env.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export type EnvName = "development" | "test" | "production";
2
+ export declare const NOTIFICATION_INTELLIGENCE_LIGHT_RULES_PLUGIN_PATH = "/api/plugin/notification-intelligence/light-rules";
2
3
  interface EnvUrls {
3
4
  lightApiUrl: string;
5
+ notificationIntelligenceLightRulesPluginUrl: string;
4
6
  appNameMapUrl: string;
5
7
  relayTunnelUrl: string;
6
8
  modelProxyLongRecordingSubmitTaskUrl: string;
@@ -9,6 +11,7 @@ interface EnvUrls {
9
11
  /** jvsclaw 实例就绪/密文换 apiKey 接口(复用插件现有接口 host)。 */
10
12
  clawManagerInstanceReadyUrl: string;
11
13
  }
14
+ export declare function normalizeNotificationIntelligenceLightRulesPluginUrl(url: string): string;
12
15
  /** 读取持久化到 .env 的环境名称;仅反映本地配置,不考虑进程环境变量。 */
13
16
  export declare function readPersistedEnvName(): EnvName | undefined;
14
17
  /** 读取当前环境名称。优先级:PHONE_NOTIFICATIONS_ENV 环境变量 > .env > credentials.json > 默认 production */
package/dist/env.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAwDA,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAAC;AAQ5D,UAAU,OAAO;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC,EAAE,MAAM,CAAC;IAC7C,6CAA6C,EAAE,MAAM,CAAC;IACtD,uBAAuB,EAAE,MAAM,CAAC;IAChC,iDAAiD;IACjD,2BAA2B,EAAE,MAAM,CAAC;CACrC;AAqDD,2CAA2C;AAC3C,wBAAgB,oBAAoB,IAAI,OAAO,GAAG,SAAS,CAI1D;AAED,0FAA0F;AAC1F,wBAAgB,WAAW,IAAI,OAAO,CAWrC;AAED,oBAAoB;AACpB,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAO9C;AAED,qBAAqB;AACrB,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAEjD;AAED,iBAAiB;AACjB,wBAAgB,gBAAgB,IAAI,OAAO,EAAE,CAE5C"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAwDA,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAAC;AAQ5D,eAAO,MAAM,iDAAiD,sDACT,CAAC;AAQtD,UAAU,OAAO;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C,EAAE,MAAM,CAAC;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC,EAAE,MAAM,CAAC;IAC7C,6CAA6C,EAAE,MAAM,CAAC;IACtD,uBAAuB,EAAE,MAAM,CAAC;IAChC,iDAAiD;IACjD,2BAA2B,EAAE,MAAM,CAAC;CACrC;AA2BD,wBAAgB,oDAAoD,CAClE,GAAG,EAAE,MAAM,GACV,MAAM,CAiCR;AAiCD,2CAA2C;AAC3C,wBAAgB,oBAAoB,IAAI,OAAO,GAAG,SAAS,CAI1D;AAED,0FAA0F;AAC1F,wBAAgB,WAAW,IAAI,OAAO,CAWrC;AAED,oBAAoB;AACpB,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAO9C;AAED,qBAAqB;AACrB,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAEjD;AAED,iBAAiB;AACjB,wBAAgB,gBAAgB,IAAI,OAAO,EAAE,CAE5C"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 图片同步处理器
3
+ *
4
+ * 处理 images.sync / POST /images:
5
+ * 1. 校验 + 去重
6
+ * 2. 元数据入库(status=syncing)
7
+ * 3. 后台从 OSS 下载原图(带大小上限)
8
+ * 4. 更新状态 → synced / sync_failed
9
+ */
10
+ import type { ImageMetadata, ImageSyncResult } from "../types.js";
11
+ import type { Logger } from "../logger.js";
12
+ import { ImageStorage } from "./store.js";
13
+ /** 默认单张图片大小上限:20MB(与 CLI 对齐) */
14
+ export declare const DEFAULT_IMAGE_MAX_BYTES: number;
15
+ /**
16
+ * 处理 images.sync 的核心逻辑。元数据同步落库,下载在后台进行。
17
+ */
18
+ export declare function handleImageSync(imageId: string, metadata: ImageMetadata, storage: ImageStorage, maxBytes: number, logger: Logger): ImageSyncResult;
19
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/image/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,gCAAgC;AAChC,eAAO,MAAM,uBAAuB,QAAmB,CAAC;AAKxD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,eAAe,CA0BjB"}
@@ -0,0 +1,3 @@
1
+ export { ImageStorage, resolveImageStorageDir, extFromMime, type ImageIndexEntry, type ImageStorageContext, } from "./store.js";
2
+ export { handleImageSync, DEFAULT_IMAGE_MAX_BYTES, } from "./handler.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/image/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,uBAAuB,GACxB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * 图片本地存储管理
3
+ *
4
+ * 目录结构:
5
+ * <storageDir>/images/
6
+ * ├── files/ # 下载的原图
7
+ * │ └── <imageId>.jpg
8
+ * └── index.json # 元数据索引({ images: [] })
9
+ *
10
+ * 字段与 CLI(YoooClaw/cli internal/image)严格对齐,三端共享同一份 index.json。
11
+ */
12
+ import type { ImageMetadata, ImageTransferStatus } from "../types.js";
13
+ import type { Logger } from "../logger.js";
14
+ /** 持久化到 index.json 的单条图片记录 */
15
+ export interface ImageIndexEntry {
16
+ /** 图片 ID(客户端下发) */
17
+ imageId: string;
18
+ /** 来源客户端 label;旧数据无该字段,查询时视为 legacy */
19
+ clientLabel?: string;
20
+ /** 原始元数据 */
21
+ metadata: ImageMetadata;
22
+ /** 本地文件相对路径(如 "files/<id>.jpg") */
23
+ localFile?: string;
24
+ /** 缩略图相对路径(阶段一不下载,仅透传保留字段对齐) */
25
+ thumbnail?: string;
26
+ /** 当前同步状态 */
27
+ status: ImageTransferStatus;
28
+ /** 最近一次失败原因 */
29
+ lastError?: string;
30
+ /** 下载完成时间 ISO 8601 */
31
+ syncedAt?: string;
32
+ }
33
+ export interface ImageStorageContext {
34
+ stateDir: string;
35
+ workspaceDir?: string;
36
+ }
37
+ /** 从 MIME 推断扩展名(与 CLI extFromMime 对齐),未知时回退 jpg */
38
+ export declare function extFromMime(mime?: string): string;
39
+ /**
40
+ * 解析图片存储根目录(与录音同级,优先 stateDir,回退 workspace)
41
+ */
42
+ export declare function resolveImageStorageDir(ctx: ImageStorageContext, logger: Pick<Logger, "info" | "warn">): string;
43
+ export declare class ImageStorage {
44
+ private readonly logger;
45
+ private readonly dir;
46
+ private readonly filesDir;
47
+ private readonly indexPath;
48
+ private index;
49
+ constructor(dir: string, logger: Logger);
50
+ /** 初始化目录结构并加载索引 */
51
+ init(): Promise<void>;
52
+ getFilesDir(): string;
53
+ /**
54
+ * 收到 images.sync 后,将元数据写入索引并置为 syncing。
55
+ * 同 ID 已存在则覆盖元数据并重置同步状态。
56
+ */
57
+ ingest(imageId: string, metadata: ImageMetadata): ImageIndexEntry;
58
+ /** 标记下载完成 */
59
+ setSynced(imageId: string, localFile: string): void;
60
+ /** 标记下载失败 */
61
+ setSyncFailed(imageId: string, error: string): void;
62
+ /** 生成本地文件名 <imageId>.<ext> */
63
+ buildFilename(imageId: string, mime?: string): string;
64
+ /** 本地文件相对路径(用于写入 localFile 字段) */
65
+ buildRelativeFilePath(imageId: string, mime?: string): string;
66
+ /** 本地文件绝对路径 */
67
+ getFilePath(imageId: string, mime?: string): string;
68
+ /** 把索引中的相对路径解析为绝对路径 */
69
+ resolveFile(relative: string): string;
70
+ findById(id: string): ImageIndexEntry | undefined;
71
+ listAll(): ImageIndexEntry[];
72
+ private loadIndex;
73
+ private saveIndex;
74
+ close(): Promise<void>;
75
+ }
76
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/image/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAK3C,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY;IACZ,QAAQ,EAAE,aAAa,CAAC;IACxB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa;IACb,MAAM,EAAE,mBAAmB,CAAC;IAC5B,eAAe;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAOD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAQD,mDAAmD;AACnD,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACpC,MAAM,CA4BR;AAID,qBAAa,YAAY;IAQrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,KAAK,CAA8B;gBAGzC,GAAG,EAAE,MAAM,EACM,MAAM,EAAE,MAAM;IAOjC,mBAAmB;IACb,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,WAAW,IAAI,MAAM;IAMrB;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,eAAe;IA6CjE,aAAa;IACb,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAUnD,aAAa;IACb,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAWnD,8BAA8B;IAC9B,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAIrD,kCAAkC;IAClC,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAI7D,eAAe;IACf,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAInD,uBAAuB;IACvB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAMrC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIjD,OAAO,IAAI,eAAe,EAAE;IAQ5B,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,SAAS;IAIX,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}