aitu-app 0.6.78 → 0.6.80

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 (203) hide show
  1. package/README.md +3 -3
  2. package/assets/CanvasAudioPlayer-CSFENxi6.js +2 -0
  3. package/assets/ChatDrawer-CWZQP5R5.css +1 -0
  4. package/assets/ChatDrawer-sVEVW11M.js +11 -0
  5. package/assets/ChatMessagesArea-Cnb94V8-.js +7 -0
  6. package/assets/ChatMessagesArea-PlF5AwzD.css +1 -0
  7. package/assets/DeferredAIInputBar-D99l6sBS.js +8 -0
  8. package/assets/DrawnixDeferredFeatures-78cIu-ev.js +2 -0
  9. package/assets/{KnowledgeBaseContent-DcX5Jofx.js → KnowledgeBaseContent-DZ-1fPZa.js} +10 -10
  10. package/assets/{MVCreator-DllHozYg.js → MVCreator-BV8KDR6E.js} +8 -8
  11. package/assets/ModelBenchmarkWorkbench-DL6r0Z_5.js +2 -0
  12. package/assets/MusicAnalyzer-D9Bpmhym.css +1 -0
  13. package/assets/{MusicAnalyzer-DDeT6g3c.js → MusicAnalyzer-DQtjf36o.js} +2 -2
  14. package/assets/{MusicAnalyzer-CHcQ5t4P.js → MusicAnalyzer-u_5sy56T.js} +1 -1
  15. package/assets/PromptHistoryTool-B-ktaOpK.js +2 -0
  16. package/assets/PromptHistoryTool-BH7hq916.css +1 -0
  17. package/assets/ResizableDivider-BpUFdkte.js +1 -0
  18. package/assets/TaskQueuePanel-BLD1r7_I.js +1 -0
  19. package/assets/{VideoAnalyzer-BSLz1FaI.js → VideoAnalyzer-Bjv9pyDs.js} +2 -2
  20. package/assets/ai-generation-preferences-service-BSpgVCHz.js +1 -0
  21. package/assets/arc-CnA_FoJK.js +1 -0
  22. package/assets/{arc-BU2KKCa_.js → arc-DDvk_-VM.js} +1 -1
  23. package/assets/{batch-image-generation-Bg68r_Ql.js → batch-image-generation-N-lwbjRE.js} +3 -3
  24. package/assets/{blockDiagram-38ab4fdb-BCGEnMME.js → blockDiagram-38ab4fdb-B2G4wjZe.js} +6 -6
  25. package/assets/{blockDiagram-38ab4fdb-CsZR5uC5.js → blockDiagram-38ab4fdb-DBkZWrKk.js} +1 -1
  26. package/assets/{browser-DpICcNby.js → browser-ZXTF4AKv.js} +1 -1
  27. package/assets/{c4Diagram-3d4e48cf-9fuiuFdV.js → c4Diagram-3d4e48cf-BFg-wccg.js} +1 -1
  28. package/assets/{c4Diagram-3d4e48cf-WM4wd_GR.js → c4Diagram-3d4e48cf-CmyNnfip.js} +1 -1
  29. package/assets/{canvas-insertion-CdUQF7IV.js → canvas-insertion-CKIoVZ9a.js} +1 -1
  30. package/assets/channel-BQh3J7kz.js +1 -0
  31. package/assets/channel-CPsF_uSp.js +1 -0
  32. package/assets/{classDiagram-70f12bd4-DcYDedz1.js → classDiagram-70f12bd4-BoP-e23u.js} +2 -2
  33. package/assets/{classDiagram-70f12bd4-CBVHTwQu.js → classDiagram-70f12bd4-UTHJc2XA.js} +1 -1
  34. package/assets/classDiagram-v2-f2320105-BeBc2H-D.js +2 -0
  35. package/assets/{classDiagram-v2-f2320105-jpCwaHEd.js → classDiagram-v2-f2320105-Bjwz5ljW.js} +1 -1
  36. package/assets/{clipper-jvd5rF5a.js → clipper-NoHaeWV4.js} +1 -1
  37. package/assets/clone-CA2KqVCK.js +1 -0
  38. package/assets/createText-2e5e7dd3-Bsu7vT-L.js +8 -0
  39. package/assets/{createText-2e5e7dd3-x5lOIwut.js → createText-2e5e7dd3-DrWUfa-s.js} +1 -1
  40. package/assets/{edges-e0da2a9e-CbrF4nbD.js → edges-e0da2a9e-B9sYOHRt.js} +1 -1
  41. package/assets/{edges-e0da2a9e-Ch6PBwWs.js → edges-e0da2a9e-DX4IQMED.js} +1 -1
  42. package/assets/{erDiagram-9861fffd-DSlNVuAZ.js → erDiagram-9861fffd-B-LfsIMf.js} +1 -1
  43. package/assets/{erDiagram-9861fffd-Bq07elcI.js → erDiagram-9861fffd-DPdud_LA.js} +1 -1
  44. package/assets/{flowDb-956e92f1-Ti5YC4Vv.js → flowDb-956e92f1-C3xKlizM.js} +1 -1
  45. package/assets/{flowDb-956e92f1-BqPCJlZp.js → flowDb-956e92f1-Ck5oiEta.js} +1 -1
  46. package/assets/{flowDiagram-66a62f08-CPDuG3rY.js → flowDiagram-66a62f08-Bkt2NoHM.js} +4 -4
  47. package/assets/{flowDiagram-66a62f08-D3GSABFi.js → flowDiagram-66a62f08-CJnxo6dI.js} +1 -1
  48. package/assets/flowDiagram-v2-96b9c2cf-MnwxRDMO.js +1 -0
  49. package/assets/flowDiagram-v2-96b9c2cf-U7nNPvdl.js +1 -0
  50. package/assets/{flowchart-elk-definition-4a651766-BH09NeLA.js → flowchart-elk-definition-4a651766-2XkrsdKI.js} +2 -2
  51. package/assets/{flowchart-elk-definition-4a651766-BLaLPCDV.js → flowchart-elk-definition-4a651766-ec8y1a8S.js} +1 -1
  52. package/assets/{ganttDiagram-c361ad54-DL9ZeaEc.js → ganttDiagram-c361ad54-1TA0mZY_.js} +3 -3
  53. package/assets/{ganttDiagram-c361ad54-Sp9M1KHP.js → ganttDiagram-c361ad54-D-OrVtXV.js} +3 -3
  54. package/assets/{gitGraphDiagram-72cf32ee-BWwmRKo-.js → gitGraphDiagram-72cf32ee-Blt3RsBD.js} +1 -1
  55. package/assets/{gitGraphDiagram-72cf32ee-BSf1fsDV.js → gitGraphDiagram-72cf32ee-CKf6xgO1.js} +1 -1
  56. package/assets/{graph-g-2U7grQ.js → graph-CUYgHJmb.js} +1 -1
  57. package/assets/{graph--nPw8zXQ.js → graph-WeSRtsZO.js} +1 -1
  58. package/assets/{index-ZrVeQUWo.js → index--MqiaN5t.js} +1 -1
  59. package/assets/{index-C5eu4uSl.js → index-0b_TeH8L.js} +11 -11
  60. package/assets/{index-3862675e-BXwbZ2pz.js → index-3862675e-C2ipEQC8.js} +1 -1
  61. package/assets/{index-3862675e-D6Zy95zZ.js → index-3862675e-CeX6VlsU.js} +1 -1
  62. package/assets/{index-CLJUfzvO.js → index-B-J0JJak.js} +1 -1
  63. package/assets/{index-TkfyNewx.js → index-B7Hj7g41.js} +1 -1
  64. package/assets/{index-eZfwJ9bV.js → index-BS_v5cOh.js} +1 -1
  65. package/assets/index-Btk31p7r.js +1 -0
  66. package/assets/{index-DH12_HTj.js → index-C-Samsu3.js} +2 -2
  67. package/assets/index-C-llNX01.js +1 -0
  68. package/assets/index-C8c9icsH.js +2 -0
  69. package/assets/{index-D7b5fX1d.js → index-CAn2jfNg.js} +1 -1
  70. package/assets/{index-Dz8sghkK.js → index-CK2zt94U.js} +1 -1
  71. package/assets/{index-CfgvFFx3.js → index-CP51k4n6.js} +17 -17
  72. package/assets/{index-DI0OV6F8.js → index-CXBhIy30.js} +1 -1
  73. package/assets/index-C_Mj1wbj.js +2 -0
  74. package/assets/{index-BwSnJN93.js → index-CbfE0MBd.js} +1 -1
  75. package/assets/{index-C3qD42ws.js → index-CjeDxq0c.js} +1 -1
  76. package/assets/{index-DqMndQiP.js → index-Ct7OFnWK.js} +1 -1
  77. package/assets/{index-BaCHOxhI.js → index-CxxUIkx1.js} +1 -1
  78. package/assets/{index-B2dttXd7.js → index-D2Kc-3MO.js} +1 -1
  79. package/assets/{index-Bq8mPedC.js → index-DK0XEByD.js} +1 -1
  80. package/assets/{index-DllL1sx1.js → index-DQcV2DYj.js} +1 -1
  81. package/assets/{index-BP77pG9S.js → index-DSKRBuhn.js} +73 -73
  82. package/assets/{index-BXzGHPXz.js → index-DXqL8NRE.js} +2 -2
  83. package/assets/{index-B7V7-Vxz.js → index-DcLrRIlS.js} +1 -1
  84. package/assets/{index-D4pIkh3S.js → index-DdA-dF0D.js} +1 -1
  85. package/assets/{index-QkP3EC02.js → index-DdxTnVj5.js} +1 -1
  86. package/assets/{index-CmyOpFTN.js → index-DmrnShhc.js} +1 -1
  87. package/assets/{index-Bti3m-iW.js → index-QO0uGVDP.js} +1 -1
  88. package/assets/{index-BPR_DyGD.js → index-aIKXDB1M.js} +1 -1
  89. package/assets/{index-DIiIUyb-.js → index-n6JhNACm.js} +1 -1
  90. package/assets/{index-BWrcsh8u.js → index-qbS_W7PW.js} +1 -1
  91. package/assets/index-v7iKPBEu.css +1 -0
  92. package/assets/{infoDiagram-f8f76790-DpFqCCNv.js → infoDiagram-f8f76790-DEWQ3NXc.js} +1 -1
  93. package/assets/{infoDiagram-f8f76790-G2JpJJP7.js → infoDiagram-f8f76790-u_qjHFCm.js} +3 -3
  94. package/assets/{journeyDiagram-49397b02-DLLTobRM.js → journeyDiagram-49397b02-C8A30CBr.js} +1 -1
  95. package/assets/{journeyDiagram-49397b02-BdESGMrv.js → journeyDiagram-49397b02-hQJfqZih.js} +1 -1
  96. package/assets/{layout-WSR0vNPO.js → layout-CFKTKeqQ.js} +1 -1
  97. package/assets/{layout-CVkuImk4.js → layout-DvRyabpG.js} +1 -1
  98. package/assets/{line-D3bnG227.js → line-C72F34Po.js} +1 -1
  99. package/assets/{line-DQuMJveY.js → line-W5R41tQ1.js} +1 -1
  100. package/assets/{linear-CciP-97N.js → linear-7FXykgHM.js} +1 -1
  101. package/assets/{linear-Z6vFvuwc.js → linear-CVyOPUvz.js} +1 -1
  102. package/assets/main-BO0HWBB1.js +42 -0
  103. package/assets/{main-8DNjLY6L.css → main-DAuE07rf.css} +1 -1
  104. package/assets/{mermaid.core-CwZQb0ud.js → mermaid.core-2VcXhn43.js} +4 -4
  105. package/assets/{mindmap-definition-fc14e90a-BnJ8OOTI.js → mindmap-definition-fc14e90a-CcVXKGg4.js} +1 -1
  106. package/assets/{mindmap-definition-fc14e90a-CxQMydCW.js → mindmap-definition-fc14e90a-DRDYXe84.js} +2 -2
  107. package/assets/model-benchmark-launcher-C2qBiDlM.js +1 -0
  108. package/assets/{photo-wall-splitter-BZ88W5Zy.js → photo-wall-splitter-CFntSOdS.js} +1 -1
  109. package/assets/{pieDiagram-8a3498a8-BSDdkTeu.js → pieDiagram-8a3498a8-Be9dl9pU.js} +1 -1
  110. package/assets/{pieDiagram-8a3498a8-D6VtAoja.js → pieDiagram-8a3498a8-DXZOJYBv.js} +5 -5
  111. package/assets/ppt-generation-B5fKT_by.js +48 -0
  112. package/assets/{quadrantDiagram-120e2f19-C8k2xuBd.js → quadrantDiagram-120e2f19-DoU7aQSp.js} +3 -3
  113. package/assets/{quadrantDiagram-120e2f19-BbFV0VXY.js → quadrantDiagram-120e2f19-l5K9mx26.js} +1 -1
  114. package/assets/{requirementDiagram-deff3bca-C3xMdzJV.js → requirementDiagram-deff3bca-DN_87Wxe.js} +1 -1
  115. package/assets/{requirementDiagram-deff3bca-CpjqKjYZ.js → requirementDiagram-deff3bca-DOooq7kx.js} +1 -1
  116. package/assets/retry-image-BmIVuAVu.js +6 -0
  117. package/assets/{sankeyDiagram-04a897e0-Bjvig9bW.js → sankeyDiagram-04a897e0-BB33nO6_.js} +1 -1
  118. package/assets/{sankeyDiagram-04a897e0-BBJJgsFv.js → sankeyDiagram-04a897e0-CCa0hwml.js} +2 -2
  119. package/assets/{sequenceDiagram-704730f1-PFC_9IFI.js → sequenceDiagram-704730f1-CNhXZiix.js} +1 -1
  120. package/assets/{sequenceDiagram-704730f1-DX1MmBN_.js → sequenceDiagram-704730f1-ZqQ1QrY-.js} +1 -1
  121. package/assets/settings-dialog-BFuWTeQR.js +1 -0
  122. package/assets/{skill-dsl-parser-syNWYxFu.js → skill-dsl-parser-b-aB3P5u.js} +1 -1
  123. package/assets/{stateDiagram-587899a1-Dc3mI_B_.js → stateDiagram-587899a1-BBlOIJr7.js} +1 -1
  124. package/assets/{stateDiagram-587899a1-SFMUVAam.js → stateDiagram-587899a1-BhomZ0AN.js} +1 -1
  125. package/assets/{stateDiagram-v2-d93cdb3a-P4Yt2p_j.js → stateDiagram-v2-d93cdb3a-BpJsgMa0.js} +1 -1
  126. package/assets/stateDiagram-v2-d93cdb3a-CuOn9du2.js +1 -0
  127. package/assets/{styles-6aaf32cf-C3jnr3hV.js → styles-6aaf32cf-C2WEewoA.js} +1 -1
  128. package/assets/{styles-6aaf32cf-b6AdP7fu.js → styles-6aaf32cf-CTtf8moq.js} +1 -1
  129. package/assets/{styles-9a916d00-BUiD9iBe.js → styles-9a916d00-44Xi2-39.js} +1 -1
  130. package/assets/{styles-9a916d00-ii0XTdIm.js → styles-9a916d00-DUU3VgNe.js} +4 -4
  131. package/assets/{styles-c10674c1-DbTSpy3W.js → styles-c10674c1--AhWSGg7.js} +1 -1
  132. package/assets/styles-c10674c1-DS-wE3tK.js +116 -0
  133. package/assets/{svgDrawCommon-08f97a94-D4gIV05W.js → svgDrawCommon-08f97a94-CXcvtSSy.js} +1 -1
  134. package/assets/{svgDrawCommon-08f97a94-BK6lD4D6.js → svgDrawCommon-08f97a94-Dyqh4V2s.js} +1 -1
  135. package/assets/{timeline-definition-85554ec2-Bl2y548G.js → timeline-definition-85554ec2-k788753O.js} +1 -1
  136. package/assets/{timeline-definition-85554ec2-CWKg_JxG.js → timeline-definition-85554ec2-sw6-UuBe.js} +1 -1
  137. package/assets/tool-windows-BEnZdJqF.js +2948 -0
  138. package/assets/{tool-windows-CUNbW1Tz.css → tool-windows-D61Le6TE.css} +1 -1
  139. package/assets/ttd-dialog-BJzXAZ0l.js +99 -0
  140. package/assets/useCharacters-DRBoWvvj.css +1 -0
  141. package/assets/useCharacters-gsV4K8Hn.js +2 -0
  142. package/assets/{useWorkflowSubmission-BizuDmuw.js → useWorkflowSubmission-XRR21P6Y.js} +10 -10
  143. package/assets/{video-analyze-6v3Y-rUE.js → video-analyze-CpbnpSiI.js} +1 -1
  144. package/assets/{video-generation-DnmTlWnm.js → video-generation-BXhS7x-a.js} +2 -2
  145. package/assets/video-recovery-service-6G2lkWcu.js +1 -0
  146. package/assets/workflow-generation-utils-CYxtSHl0.js +3 -0
  147. package/assets/workflow-submission-service-DygSzydV.js +4 -0
  148. package/assets/{xychartDiagram-e933f94c-CJX9_9WF.js → xychartDiagram-e933f94c-CvTTDwPb.js} +3 -3
  149. package/assets/{xychartDiagram-e933f94c-Cep8CQEH.js → xychartDiagram-e933f94c-Ga9zi9ha.js} +1 -1
  150. package/changelog.json +45 -0
  151. package/idle-prefetch-manifest.json +310 -306
  152. package/manifest.json +3 -3
  153. package/package.json +1 -1
  154. package/precache-manifest.json +10 -10
  155. package/sitemap.xml +37 -0
  156. package/sw-debug/app.js +269 -156
  157. package/sw-debug/backup-restore.js +235 -103
  158. package/sw-debug/crypto-helper.js +116 -120
  159. package/sw-debug/duplex-client.js +33 -19
  160. package/sw-debug/gist-management.js +938 -655
  161. package/sw-debug/sw-communication.js +87 -50
  162. package/sw.js +5 -5
  163. package/version.json +7 -17
  164. package/assets/CanvasAudioPlayer-DutgwdiU.js +0 -2
  165. package/assets/ChatDrawer-0jNvKIoI.css +0 -1
  166. package/assets/ChatDrawer-E6Fog16I.js +0 -11
  167. package/assets/ChatMessagesArea-Bgwiz_XP.js +0 -250
  168. package/assets/ChatMessagesArea-DyR_wHFQ.css +0 -1
  169. package/assets/DeferredAIInputBar-CPkD8Cv9.js +0 -8
  170. package/assets/DrawnixDeferredFeatures-Cul76-88.js +0 -2
  171. package/assets/ModelBenchmarkWorkbench-Dv9SNYTi.js +0 -2
  172. package/assets/MusicAnalyzer-DhtRGpAp.css +0 -1
  173. package/assets/ResizableDivider-CaG9JQbJ.js +0 -1
  174. package/assets/TaskQueuePanel-BNhNzGp5.js +0 -1
  175. package/assets/ai-generation-preferences-service-BF7QkuJp.js +0 -1
  176. package/assets/arc-DmGoDCEL.js +0 -1
  177. package/assets/channel-CZjE-WNp.js +0 -1
  178. package/assets/channel-SXZD6bG3.js +0 -1
  179. package/assets/classDiagram-v2-f2320105-CsxWGkSy.js +0 -2
  180. package/assets/clone-C4mvvMDb.js +0 -1
  181. package/assets/createText-2e5e7dd3-CkXS3l7I.js +0 -5
  182. package/assets/flowDiagram-v2-96b9c2cf-BCcJ-cre.js +0 -1
  183. package/assets/flowDiagram-v2-96b9c2cf-DCVaFEgV.js +0 -1
  184. package/assets/index-3eqA7Bag.js +0 -1
  185. package/assets/index-7Q-aiwln.js +0 -4
  186. package/assets/index-B1XP5g7P.css +0 -1
  187. package/assets/index-BHPTfCZM.js +0 -1
  188. package/assets/index-BqHZCcen.js +0 -2
  189. package/assets/index-DcZrElEK.js +0 -2
  190. package/assets/index-gQ7LgvSv.js +0 -12
  191. package/assets/main-BFEkxCOK.js +0 -56
  192. package/assets/model-benchmark-launcher-Ct3lYXVq.js +0 -1
  193. package/assets/ppt-generation-FzjP_rp0.js +0 -48
  194. package/assets/settings-dialog-CQM4v791.js +0 -1
  195. package/assets/stateDiagram-v2-d93cdb3a-DmnBjHpC.js +0 -1
  196. package/assets/styles-c10674c1-Bt89Yy8Q.js +0 -116
  197. package/assets/tool-windows-DOIu9TAD.js +0 -2975
  198. package/assets/ttd-dialog-DI4kQSg8.js +0 -99
  199. package/assets/useCharacters-Chv4Ky7x.js +0 -7
  200. package/assets/useCharacters-OrDbG69o.css +0 -1
  201. package/assets/video-recovery-service-BeRoh0s2.js +0 -1
  202. package/assets/workflow-generation-utils-me381Cax.js +0 -3
  203. package/assets/workflow-submission-service-YOpo7g37.js +0 -4
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * SW Debug Panel - Service Worker Communication Module
3
- *
3
+ *
4
4
  * 使用 postmessage-duplex 实现可靠的点对点通信
5
5
  */
6
6
 
@@ -74,7 +74,7 @@ function trackOutgoingRequest(requestId, cmdname) {
74
74
  requestIdToMethod.delete(id);
75
75
  }
76
76
  }
77
-
77
+
78
78
  requestIdToMethod.set(requestId, { cmdname, timestamp: now });
79
79
  }
80
80
 
@@ -102,14 +102,17 @@ let postMessageWrapped = false;
102
102
  */
103
103
  function wrapPostMessage() {
104
104
  if (postMessageWrapped) return;
105
-
105
+
106
106
  // We need to wrap the postMessage on any controller that gets set
107
107
  // Use a getter/setter on navigator.serviceWorker to catch controller changes
108
- const originalDescriptor = Object.getOwnPropertyDescriptor(ServiceWorkerContainer.prototype, 'controller');
109
-
108
+ const originalDescriptor = Object.getOwnPropertyDescriptor(
109
+ ServiceWorkerContainer.prototype,
110
+ 'controller'
111
+ );
112
+
110
113
  if (originalDescriptor && originalDescriptor.get) {
111
114
  let lastController = null;
112
-
115
+
113
116
  Object.defineProperty(navigator.serviceWorker, 'controller', {
114
117
  get() {
115
118
  const controller = originalDescriptor.get.call(this);
@@ -121,14 +124,16 @@ function wrapPostMessage() {
121
124
  },
122
125
  configurable: true,
123
126
  });
124
-
127
+
125
128
  // Also wrap the current controller if it exists
126
- const currentController = originalDescriptor.get.call(navigator.serviceWorker);
129
+ const currentController = originalDescriptor.get.call(
130
+ navigator.serviceWorker
131
+ );
127
132
  if (currentController) {
128
133
  wrapControllerPostMessage(currentController);
129
134
  }
130
135
  }
131
-
136
+
132
137
  postMessageWrapped = true;
133
138
  }
134
139
 
@@ -138,20 +143,25 @@ function wrapPostMessage() {
138
143
  */
139
144
  function wrapControllerPostMessage(controller) {
140
145
  if (controller._postMessageWrapped) return;
141
-
146
+
142
147
  const originalPostMessage = controller.postMessage.bind(controller);
143
-
144
- controller.postMessage = function(message, transfer) {
148
+
149
+ controller.postMessage = function (message, transfer) {
145
150
  // Track duplex protocol messages (those with requestId and cmdname)
146
- if (message && typeof message === 'object' && message.requestId && message.cmdname) {
151
+ if (
152
+ message &&
153
+ typeof message === 'object' &&
154
+ message.requestId &&
155
+ message.cmdname
156
+ ) {
147
157
  trackOutgoingRequest(message.requestId, message.cmdname);
148
158
  // Log the outgoing message
149
159
  logPostMessage('send', message.cmdname, message);
150
160
  }
151
-
161
+
152
162
  return originalPostMessage(message, transfer);
153
163
  };
154
-
164
+
155
165
  controller._postMessageWrapped = true;
156
166
  }
157
167
 
@@ -188,7 +198,9 @@ function isDebugPanelMessage(messageType) {
188
198
  if (!messageType || typeof messageType !== 'string') {
189
199
  return false;
190
200
  }
191
- return DEBUG_PANEL_MESSAGE_PREFIXES.some(prefix => messageType.startsWith(prefix));
201
+ return DEBUG_PANEL_MESSAGE_PREFIXES.some((prefix) =>
202
+ messageType.startsWith(prefix)
203
+ );
192
204
  }
193
205
 
194
206
  /**
@@ -225,13 +237,12 @@ function logPostMessage(direction, messageType, data, response, error) {
225
237
  */
226
238
  async function ensureDuplexInitialized() {
227
239
  if (duplexInitialized) return true;
228
-
240
+
229
241
  try {
230
242
  const success = await initDuplexClient();
231
243
  if (success) {
232
244
  duplexInitialized = true;
233
245
  setupDuplexEventHandlers();
234
- console.log('[SW Communication] Duplex communication initialized');
235
246
  }
236
247
  return success;
237
248
  } catch (error) {
@@ -294,7 +305,9 @@ function setupDuplexEventHandlers() {
294
305
  * Enable debug mode
295
306
  */
296
307
  export function enableDebug() {
297
- try { sessionStorage.setItem('sw-debug-enabled', 'true'); } catch {}
308
+ try {
309
+ sessionStorage.setItem('sw-debug-enabled', 'true');
310
+ } catch {}
298
311
  enableDebugMode();
299
312
  }
300
313
 
@@ -302,7 +315,9 @@ export function enableDebug() {
302
315
  * Disable debug mode
303
316
  */
304
317
  export function disableDebug() {
305
- try { sessionStorage.setItem('sw-debug-enabled', 'false'); } catch {}
318
+ try {
319
+ sessionStorage.setItem('sw-debug-enabled', 'false');
320
+ } catch {}
306
321
  disableDebugMode();
307
322
  }
308
323
 
@@ -318,7 +333,7 @@ export function heartbeat() {
318
333
  */
319
334
  export async function refreshStatus() {
320
335
  await ensureDuplexInitialized();
321
-
336
+
322
337
  try {
323
338
  const result = await getDebugStatus();
324
339
  if (messageHandlers['SW_DEBUG_STATUS']) {
@@ -337,7 +352,7 @@ export async function refreshStatus() {
337
352
  */
338
353
  export async function loadFetchLogs() {
339
354
  await ensureDuplexInitialized();
340
-
355
+
341
356
  try {
342
357
  const result = await getFetchLogs();
343
358
  if (messageHandlers['SW_DEBUG_LOGS']) {
@@ -354,7 +369,7 @@ export async function loadFetchLogs() {
354
369
  */
355
370
  export async function clearFetchLogs() {
356
371
  await ensureDuplexInitialized();
357
-
372
+
358
373
  try {
359
374
  await clearFetchLogsRPC();
360
375
  if (messageHandlers['SW_DEBUG_LOGS_CLEARED']) {
@@ -371,7 +386,7 @@ export async function clearFetchLogs() {
371
386
  */
372
387
  export async function clearConsoleLogs() {
373
388
  await ensureDuplexInitialized();
374
-
389
+
375
390
  try {
376
391
  await clearConsoleLogsRPC();
377
392
  if (messageHandlers['SW_DEBUG_CONSOLE_LOGS_CLEARED']) {
@@ -394,7 +409,10 @@ export async function loadConsoleLogs() {
394
409
  messageHandlers['SW_DEBUG_CONSOLE_LOGS'](result);
395
410
  }
396
411
  } catch (error) {
397
- console.error('[SW Communication] Failed to load console logs directly, falling back to RPC:', error);
412
+ console.error(
413
+ '[SW Communication] Failed to load console logs directly, falling back to RPC:',
414
+ error
415
+ );
398
416
  // Fallback to RPC
399
417
  try {
400
418
  await ensureDuplexInitialized();
@@ -413,7 +431,7 @@ export async function loadConsoleLogs() {
413
431
  */
414
432
  export async function loadPostMessageLogs() {
415
433
  await ensureDuplexInitialized();
416
-
434
+
417
435
  try {
418
436
  const result = await getPostMessageLogs(500);
419
437
  if (messageHandlers['SW_DEBUG_POSTMESSAGE_LOGS']) {
@@ -430,14 +448,17 @@ export async function loadPostMessageLogs() {
430
448
  */
431
449
  export async function clearPostMessageLogs() {
432
450
  await ensureDuplexInitialized();
433
-
451
+
434
452
  try {
435
453
  await clearPostMessageLogsRPC();
436
454
  if (messageHandlers['SW_DEBUG_POSTMESSAGE_LOGS_CLEARED']) {
437
455
  messageHandlers['SW_DEBUG_POSTMESSAGE_LOGS_CLEARED']({});
438
456
  }
439
457
  } catch (error) {
440
- console.error('[SW Communication] Failed to clear postmessage logs:', error);
458
+ console.error(
459
+ '[SW Communication] Failed to clear postmessage logs:',
460
+ error
461
+ );
441
462
  sendNativeMessage('SW_DEBUG_CLEAR_POSTMESSAGE_LOGS');
442
463
  }
443
464
  }
@@ -454,7 +475,10 @@ export async function loadLLMApiLogs(page = 1, pageSize = 20, filter = {}) {
454
475
  const result = await getLLMApiLogsDirect(page, pageSize, filter);
455
476
  return result;
456
477
  } catch (error) {
457
- console.error('[SW Communication] Failed to load LLM API logs directly, falling back to RPC:', error);
478
+ console.error(
479
+ '[SW Communication] Failed to load LLM API logs directly, falling back to RPC:',
480
+ error
481
+ );
458
482
  // Fallback to RPC
459
483
  try {
460
484
  await ensureDuplexInitialized();
@@ -472,7 +496,7 @@ export async function loadLLMApiLogs(page = 1, pageSize = 20, filter = {}) {
472
496
  */
473
497
  export async function clearLLMApiLogsInSW() {
474
498
  await ensureDuplexInitialized();
475
-
499
+
476
500
  try {
477
501
  await clearLLMApiLogsRPC();
478
502
  if (messageHandlers['SW_DEBUG_LLM_API_LOGS_CLEARED']) {
@@ -491,7 +515,7 @@ export async function clearLLMApiLogsInSW() {
491
515
  */
492
516
  export async function deleteLLMApiLogsInSW(logIds) {
493
517
  await ensureDuplexInitialized();
494
-
518
+
495
519
  try {
496
520
  const result = await deleteLLMApiLogsRPC(logIds);
497
521
  return result;
@@ -517,7 +541,10 @@ export async function getLLMApiLogByIdInSW(logId) {
517
541
  const linkedTask = await getLinkedTaskDebugDataForLLMLog(log);
518
542
  return linkedTask ? { ...log, linkedTask } : log;
519
543
  } catch (error) {
520
- console.error('[SW Communication] Failed to get LLM API log by ID directly, falling back to RPC:', error);
544
+ console.error(
545
+ '[SW Communication] Failed to get LLM API log by ID directly, falling back to RPC:',
546
+ error
547
+ );
521
548
  // Fallback to RPC
522
549
  try {
523
550
  await ensureDuplexInitialized();
@@ -548,7 +575,10 @@ export async function loadCrashSnapshots() {
548
575
  }
549
576
  return result;
550
577
  } catch (error) {
551
- console.error('[SW Communication] Failed to load crash snapshots directly, falling back to RPC:', error);
578
+ console.error(
579
+ '[SW Communication] Failed to load crash snapshots directly, falling back to RPC:',
580
+ error
581
+ );
552
582
  // Fallback to RPC
553
583
  try {
554
584
  await ensureDuplexInitialized();
@@ -569,7 +599,7 @@ export async function loadCrashSnapshots() {
569
599
  */
570
600
  export async function clearCrashSnapshotsInSW() {
571
601
  await ensureDuplexInitialized();
572
-
602
+
573
603
  try {
574
604
  await clearCrashSnapshotsRPC();
575
605
  if (messageHandlers['SW_DEBUG_CRASH_SNAPSHOTS_CLEARED']) {
@@ -593,7 +623,10 @@ export async function loadCacheStats() {
593
623
  }
594
624
  return result;
595
625
  } catch (error) {
596
- console.error('[SW Communication] Failed to load cache stats directly, falling back to RPC:', error);
626
+ console.error(
627
+ '[SW Communication] Failed to load cache stats directly, falling back to RPC:',
628
+ error
629
+ );
597
630
  // Fallback to RPC
598
631
  try {
599
632
  await ensureDuplexInitialized();
@@ -621,16 +654,16 @@ export async function checkSwReady() {
621
654
  if (!('serviceWorker' in navigator)) {
622
655
  return false;
623
656
  }
624
-
657
+
625
658
  const registration = await navigator.serviceWorker.ready;
626
659
  cachedRegistration = registration;
627
-
660
+
628
661
  // If SW is active, initialize duplex communication
629
662
  if (registration.active) {
630
663
  await ensureDuplexInitialized();
631
664
  return true;
632
665
  }
633
-
666
+
634
667
  return false;
635
668
  }
636
669
 
@@ -656,10 +689,10 @@ export function getActiveSW() {
656
689
  */
657
690
  export function registerMessageHandlers(handlers) {
658
691
  messageHandlers = handlers;
659
-
692
+
660
693
  // Initialize postMessage wrapper to track outgoing requests
661
694
  wrapPostMessage();
662
-
695
+
663
696
  // Also listen for native messages (for backward compatibility)
664
697
  navigator.serviceWorker.addEventListener('message', (event) => {
665
698
  // Extract message type from different message formats:
@@ -667,16 +700,21 @@ export function registerMessageHandlers(handlers) {
667
700
  // - postmessage-duplex requests: event.data.cmdname
668
701
  // - postmessage-duplex responses: event.data.req.cmdname
669
702
  // - postmessage-duplex responses without req: lookup by requestId
670
- let messageType = event.data?.type
671
- || event.data?.cmdname
672
- || event.data?.req?.cmdname;
673
-
703
+ let messageType =
704
+ event.data?.type || event.data?.cmdname || event.data?.req?.cmdname;
705
+
674
706
  // For duplex responses without embedded request info, try to look up the method
675
- if (!messageType && event.data?.requestId && event.data?.ret !== undefined) {
707
+ if (
708
+ !messageType &&
709
+ event.data?.requestId &&
710
+ event.data?.ret !== undefined
711
+ ) {
676
712
  const trackedMethod = lookupRequestMethod(event.data.requestId);
677
- messageType = trackedMethod ? `${trackedMethod} [response]` : '[response]';
713
+ messageType = trackedMethod
714
+ ? `${trackedMethod} [response]`
715
+ : '[response]';
678
716
  }
679
-
717
+
680
718
  messageType = messageType || 'unknown';
681
719
  const { type, cmdname, req, ...data } = event.data || {};
682
720
 
@@ -691,16 +729,15 @@ export function registerMessageHandlers(handlers) {
691
729
 
692
730
  /**
693
731
  * Register controller change handler
694
- * @param {Function} callback
732
+ * @param {Function} callback
695
733
  */
696
734
  export function onControllerChange(callback) {
697
735
  navigator.serviceWorker.addEventListener('controllerchange', async () => {
698
736
  if (navigator.serviceWorker.controller) {
699
- console.log('[SW Communication] Controller changed, resetting duplex client');
700
737
  // 完全重置 duplex 客户端
701
738
  resetDuplexClient();
702
739
  duplexInitialized = false;
703
-
740
+
704
741
  // 重新初始化
705
742
  await ensureDuplexInitialized();
706
743
  callback();