weflow-cli 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +149 -0
  3. package/bin/weflow-cli-electron.cjs +59 -0
  4. package/bin/weflow-cli.ts +2311 -0
  5. package/cli.cjs +3 -0
  6. package/dist/bin/weflow-cli.d.ts +3 -0
  7. package/dist/bin/weflow-cli.d.ts.map +1 -0
  8. package/dist/bin/weflow-cli.js +2270 -0
  9. package/dist/bin/weflow-cli.js.map +1 -0
  10. package/dist/mcp-server/index.d.ts +3 -0
  11. package/dist/mcp-server/index.d.ts.map +1 -0
  12. package/dist/mcp-server/index.js +690 -0
  13. package/dist/mcp-server/index.js.map +1 -0
  14. package/dist/src/core/dbPathService.d.ts +40 -0
  15. package/dist/src/core/dbPathService.d.ts.map +1 -0
  16. package/dist/src/core/dbPathService.js +324 -0
  17. package/dist/src/core/dbPathService.js.map +1 -0
  18. package/dist/src/core/keyService.d.ts +59 -0
  19. package/dist/src/core/keyService.d.ts.map +1 -0
  20. package/dist/src/core/keyService.js +368 -0
  21. package/dist/src/core/keyService.js.map +1 -0
  22. package/dist/src/core/ntCore.d.ts +62 -0
  23. package/dist/src/core/ntCore.d.ts.map +1 -0
  24. package/dist/src/core/ntCore.js +191 -0
  25. package/dist/src/core/ntCore.js.map +1 -0
  26. package/dist/src/core/sqlcipherCore.d.ts +119 -0
  27. package/dist/src/core/sqlcipherCore.d.ts.map +1 -0
  28. package/dist/src/core/sqlcipherCore.js +693 -0
  29. package/dist/src/core/sqlcipherCore.js.map +1 -0
  30. package/dist/src/core/wcdbCore.d.ts +738 -0
  31. package/dist/src/core/wcdbCore.d.ts.map +1 -0
  32. package/dist/src/core/wcdbCore.js +4545 -0
  33. package/dist/src/core/wcdbCore.js.map +1 -0
  34. package/dist/src/core/wechatClient.d.ts +23 -0
  35. package/dist/src/core/wechatClient.d.ts.map +1 -0
  36. package/dist/src/core/wechatClient.js +166 -0
  37. package/dist/src/core/wechatClient.js.map +1 -0
  38. package/dist/src/services/chatService.d.ts +25 -0
  39. package/dist/src/services/chatService.d.ts.map +1 -0
  40. package/dist/src/services/chatService.js +291 -0
  41. package/dist/src/services/chatService.js.map +1 -0
  42. package/dist/src/services/configService.d.ts +43 -0
  43. package/dist/src/services/configService.d.ts.map +1 -0
  44. package/dist/src/services/configService.js +156 -0
  45. package/dist/src/services/configService.js.map +1 -0
  46. package/dist/src/services/exportService.d.ts +30 -0
  47. package/dist/src/services/exportService.d.ts.map +1 -0
  48. package/dist/src/services/exportService.js +273 -0
  49. package/dist/src/services/exportService.js.map +1 -0
  50. package/dist/src/services/wechat-formatter.d.ts +69 -0
  51. package/dist/src/services/wechat-formatter.d.ts.map +1 -0
  52. package/dist/src/services/wechat-formatter.js +248 -0
  53. package/dist/src/services/wechat-formatter.js.map +1 -0
  54. package/dist/src/services/wechatMessageService.d.ts +28 -0
  55. package/dist/src/services/wechatMessageService.d.ts.map +1 -0
  56. package/dist/src/services/wechatMessageService.js +341 -0
  57. package/dist/src/services/wechatMessageService.js.map +1 -0
  58. package/dist/src/services/wereadService.d.ts +206 -0
  59. package/dist/src/services/wereadService.d.ts.map +1 -0
  60. package/dist/src/services/wereadService.js +145 -0
  61. package/dist/src/services/wereadService.js.map +1 -0
  62. package/dist/src/services/whitelistService.d.ts +20 -0
  63. package/dist/src/services/whitelistService.d.ts.map +1 -0
  64. package/dist/src/services/whitelistService.js +60 -0
  65. package/dist/src/services/whitelistService.js.map +1 -0
  66. package/dist/src/types.d.ts +140 -0
  67. package/dist/src/types.d.ts.map +1 -0
  68. package/dist/src/types.js +2 -0
  69. package/dist/src/types.js.map +1 -0
  70. package/dist/src/utils/errors.d.ts +25 -0
  71. package/dist/src/utils/errors.d.ts.map +1 -0
  72. package/dist/src/utils/errors.js +43 -0
  73. package/dist/src/utils/errors.js.map +1 -0
  74. package/dist/src/utils/pathUtils.d.ts +5 -0
  75. package/dist/src/utils/pathUtils.d.ts.map +1 -0
  76. package/dist/src/utils/pathUtils.js +16 -0
  77. package/dist/src/utils/pathUtils.js.map +1 -0
  78. package/dist/src/utils/pythonRunner.d.ts +27 -0
  79. package/dist/src/utils/pythonRunner.d.ts.map +1 -0
  80. package/dist/src/utils/pythonRunner.js +62 -0
  81. package/dist/src/utils/pythonRunner.js.map +1 -0
  82. package/dist/src/utils/talkerUtils.d.ts +14 -0
  83. package/dist/src/utils/talkerUtils.d.ts.map +1 -0
  84. package/dist/src/utils/talkerUtils.js +73 -0
  85. package/dist/src/utils/talkerUtils.js.map +1 -0
  86. package/mcp-server/index.ts +757 -0
  87. package/package.json +72 -0
  88. package/resources/key/win32/x64/wx_key.dll +0 -0
  89. package/resources/wcdb/win32/x64/SDL2.dll +0 -0
  90. package/resources/wcdb/win32/x64/WCDB.dll +0 -0
  91. package/resources/wcdb/win32/x64/msvcp140.dll +0 -0
  92. package/resources/wcdb/win32/x64/msvcp140_1.dll +0 -0
  93. package/resources/wcdb/win32/x64/vcruntime140.dll +0 -0
  94. package/resources/wcdb/win32/x64/vcruntime140_1.dll +0 -0
  95. package/resources/wcdb/win32/x64/wcdb_api.dll +0 -0
  96. package/scripts/_batch_link_sources.py +73 -0
  97. package/scripts/_utils.py +531 -0
  98. package/scripts/annual_report.py +796 -0
  99. package/scripts/auto_tag.py +128 -0
  100. package/scripts/biz_daily.py +896 -0
  101. package/scripts/chat_report.py +397 -0
  102. package/scripts/chat_stats.py +702 -0
  103. package/scripts/classify_daily.py +411 -0
  104. package/scripts/compile_wiki.py +258 -0
  105. package/scripts/create_reading_notes.py +370 -0
  106. package/scripts/enrich_backlinks.py +163 -0
  107. package/scripts/export_chat_html.py +766 -0
  108. package/scripts/extract_3x_key.py +86 -0
  109. package/scripts/extract_todos.py +404 -0
  110. package/scripts/fav_server.py +392 -0
  111. package/scripts/fix_topics.py +111 -0
  112. package/scripts/generate_ai_report.py +367 -0
  113. package/scripts/generate_html.py +1372 -0
  114. package/scripts/generate_review.py +170 -0
  115. package/scripts/mcp_bridge.py +398 -0
  116. package/scripts/nt_decrypt.py +562 -0
  117. package/scripts/pipeline.py +145 -0
  118. package/scripts/promote_all.py +310 -0
  119. package/scripts/promote_ideas.py +297 -0
  120. package/scripts/rag_chat.py +191 -0
  121. package/scripts/scan_decrypt_4x.py +329 -0
  122. package/scripts/semantic_search.py +431 -0
  123. package/scripts/sync_fav.py +146 -0
  124. package/scripts/sync_weread.py +192 -0
  125. package/scripts/vault_rag.py +139 -0
  126. package/scripts/vault_search.py +141 -0
  127. package/src/core/dbPathService.ts +348 -0
  128. package/src/core/keyService.ts +409 -0
  129. package/src/core/ntCore.ts +224 -0
  130. package/src/core/sqlcipherCore.ts +764 -0
  131. package/src/core/wcdbCore.ts +4568 -0
  132. package/src/core/wechatClient.ts +204 -0
  133. package/src/lz4.d.ts +10 -0
  134. package/src/services/chatService.ts +296 -0
  135. package/src/services/configService.ts +197 -0
  136. package/src/services/exportService.ts +305 -0
  137. package/src/services/wechat-formatter.ts +348 -0
  138. package/src/services/wechatMessageService.ts +383 -0
  139. package/src/services/wereadService.ts +308 -0
  140. package/src/services/whitelistService.ts +72 -0
  141. package/src/types.ts +141 -0
  142. package/src/utils/errors.ts +42 -0
  143. package/src/utils/pathUtils.ts +16 -0
  144. package/src/utils/pythonRunner.ts +81 -0
  145. package/src/utils/talkerUtils.ts +84 -0
@@ -0,0 +1,119 @@
1
+ import type { ChatSession, Message, Contact } from '../types.js';
2
+ export interface SqlcipherResult {
3
+ success: boolean;
4
+ error?: string;
5
+ }
6
+ export interface SessionsResult extends SqlcipherResult {
7
+ sessions?: ChatSession[];
8
+ }
9
+ export interface MessagesResult extends SqlcipherResult {
10
+ messages?: Message[];
11
+ }
12
+ export interface ContactsResult extends SqlcipherResult {
13
+ contacts?: Contact[];
14
+ }
15
+ export declare class SqlcipherCore {
16
+ private db;
17
+ private tempDir;
18
+ private tempFiles;
19
+ private pageKey;
20
+ private opened;
21
+ private wxid;
22
+ private wxDirRoot;
23
+ /**
24
+ * 解密数据库到临时文件
25
+ */
26
+ private decryptToTemp;
27
+ /**
28
+ * 解密单个页面
29
+ * pageData: 第一页 4080 字节, 其他页 4096 字节
30
+ * 结构: [加密数据] + [IV(16) | HMAC(20) | 保留(12)]
31
+ */
32
+ private decryptPage;
33
+ /**
34
+ * 直接打开已解密的 SQLite 数据库 (跳过解密步骤)
35
+ * 用于 4.x 已解密的 MSG0_decrypted.db 或测试数据库
36
+ */
37
+ openRaw(dbPath: string, wxid: string): Promise<SqlcipherResult>;
38
+ /**
39
+ * 尝试直接解密 4.x MSG0.db
40
+ *
41
+ * 4.x 使用 WCDB/SQLCipher 4 加密:
42
+ * - AES-256-CBC
43
+ * - PBKDF2-HMAC-SHA512, 256000 次迭代
44
+ * - 页大小: 4096 字节
45
+ * - 保留区: 80 字节 (IV 16 + HMAC 64) 或 48 字节 (兼容旧版)
46
+ *
47
+ * 注意: 密钥必须是微信登录时通过 wx_key.dll Hook 提取的正确密钥。
48
+ * 已登录后提取的密钥可能不正确。
49
+ */
50
+ open4x(dbPath: string, keyHex: string, wxid: string): Promise<SqlcipherResult>;
51
+ /**
52
+ * 按页面解密 4.x 数据库
53
+ */
54
+ private decryptPages;
55
+ /**
56
+ * 打开 3.x 数据库
57
+ */
58
+ open(dbPath: string, keyHex: string, wxid: string): Promise<SqlcipherResult>;
59
+ /**
60
+ * 获取会话列表 (从 MSG 表中聚合 StrTalker)
61
+ */
62
+ getSessions(): Promise<SessionsResult>;
63
+ /**
64
+ * 获取消息列表
65
+ */
66
+ getMessages(talker: string, limit?: number, offset?: number): Promise<MessagesResult>;
67
+ /**
68
+ * 处理单条消息,根据类型解析内容
69
+ */
70
+ private processMessage;
71
+ /**
72
+ * 将 node:sqlite 返回的 BLOB (可能是 Uint8Array 或 Buffer) 转换为 Buffer
73
+ */
74
+ private toBuffer;
75
+ /**
76
+ * LZ4 解压 CompressContent
77
+ */
78
+ private decompressCompressContent;
79
+ /**
80
+ * 解析 Type=3 图片 XML
81
+ */
82
+ private parseImageXml;
83
+ /**
84
+ * 从 BytesExtra (protobuf) 中提取图片文件名
85
+ * BytesExtra 包含 <msgsource><img_file_name>uuid.png</img_file_name></msgsource> 之类的 XML
86
+ */
87
+ private parseBytesExtraImageFileName;
88
+ /**
89
+ * 查找缩略图并返回 base64
90
+ * 缩略图在 FileStorage/Cache/YYYY-MM/ 目录下,以 _t.jpg 结尾
91
+ * 文件名基于 MD5 哈希,我们需要遍历目录查找匹配图片文件名的缩略图
92
+ */
93
+ private findThumbnail;
94
+ /**
95
+ * 解析 Type=49 AppMsg XML
96
+ */
97
+ private parseAppMsgXml;
98
+ /**
99
+ * 解码 XML 实体字符
100
+ */
101
+ private decodeXmlEntities;
102
+ /**
103
+ * 格式化 AppMsg 为可读文本
104
+ */
105
+ private formatAppMsg;
106
+ /**
107
+ * 获取联系人列表
108
+ */
109
+ getContacts(): Promise<ContactsResult>;
110
+ /**
111
+ * 验证密钥是否正确 (使用第一页 HMAC)
112
+ */
113
+ static verifyKey(keyHex: string, dbPath: string): boolean;
114
+ /**
115
+ * 关闭数据库并清理临时文件
116
+ */
117
+ close(): void;
118
+ }
119
+ //# sourceMappingURL=sqlcipherCore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlcipherCore.d.ts","sourceRoot":"","sources":["../../../src/core/sqlcipherCore.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAQhE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;CACrB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAA4B;IACtC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,SAAS,CAAa;IAE9B;;OAEG;IACH,OAAO,CAAC,aAAa;IA0CrB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAyBnB;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAmBrE;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyFpF;;OAEG;IACH,OAAO,CAAC,YAAY;IA8DpB;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAgClF;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC;IAoC5C;;OAEG;IACG,WAAW,CACf,MAAM,EAAE,MAAM,EACd,KAAK,SAAI,EACT,MAAM,SAAI,GACT,OAAO,CAAC,cAAc,CAAC;IAuC1B;;OAEG;IACH,OAAO,CAAC,cAAc;IA4FtB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAcjC;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAYpC;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAuBrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAwBpB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC;IAwB5C;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAmCzD;;OAEG;IACH,KAAK,IAAI,IAAI;CAed"}