wednesdayai 0.5.1-dev.21 → 0.5.1-dev.23

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 (443) hide show
  1. package/dist/{acp-cli-BmhbACSZ.js → acp-cli-D7pT9Bao.js} +2 -2
  2. package/dist/{acp-cli-Dblp7m2Z.js → acp-cli-DFqeyWQJ.js} +2 -2
  3. package/dist/{agent-scope-CeLIuOpq.js → agent-scope-DCgndASv.js} +3 -3
  4. package/dist/{agent-turn-enqueue-IiwTs8II.js → agent-turn-enqueue-B30hT0x-.js} +5 -5
  5. package/dist/{agent-turn-enqueue-DK8QApSV.js → agent-turn-enqueue-CI-A0Cuo.js} +5 -5
  6. package/dist/{agent-turn-execute-3cc3W1hp.js → agent-turn-execute-CFwfJKy2.js} +39 -37
  7. package/dist/{agent-turn-recovery-adapter-BkoX8bcd.js → agent-turn-recovery-adapter-DWGzJ2s-.js} +1 -1
  8. package/dist/{agent-turn-recovery-adapter-B909sIMD.js → agent-turn-recovery-adapter-TKOtg3bA.js} +1 -1
  9. package/dist/{agent-turn-runner-DUKUxZcn.js → agent-turn-runner-12Exv9CB.js} +1 -1
  10. package/dist/{agent-turn-runner-C3Buntbu.js → agent-turn-runner-Btk5sBH0.js} +1 -1
  11. package/dist/{agent-turn-runner-BglHs_p0.js → agent-turn-runner-CpsTt9uv.js} +6 -6
  12. package/dist/{agent-turn-runner-BTBy1i8Z.js → agent-turn-runner-XPJ75h7l.js} +4 -4
  13. package/dist/{agents-DJ_ssbNO.js → agents-BcHFvOHE.js} +6 -6
  14. package/dist/{agents.config-D-yD07v8.js → agents.config-C_4HsmOy.js} +1 -1
  15. package/dist/{agents.config-BcBusEWj.js → agents.config-DwW88u5f.js} +1 -1
  16. package/dist/{api-key-rotation-DQY1fynd.js → api-key-rotation-dv2YbGr8.js} +2 -2
  17. package/dist/{audio-preflight-DMq3PMsW.js → audio-preflight-Cv1eSuSU.js} +6 -6
  18. package/dist/{audio-preflight-DZdCHEnu.js → audio-preflight-DGyrDCsN.js} +7 -7
  19. package/dist/{audio-preflight-C0VnQEEN.js → audio-preflight-DKR8c6Qw.js} +7 -7
  20. package/dist/{audio-preflight-BTQmKMCZ.js → audio-preflight-DnuyzcBj.js} +29 -29
  21. package/dist/{audio-transcription-runner-C_DRSo6Z.js → audio-transcription-runner-BnmmtXUh.js} +1 -1
  22. package/dist/{audio-transcription-runner-C9Ld3zXw.js → audio-transcription-runner-CRxHRlMX.js} +1 -1
  23. package/dist/{audio-transcription-runner-BeC-knyy.js → audio-transcription-runner-DZa96tEn.js} +26 -26
  24. package/dist/{audio-transcription-runner-9GXPmTBK.js → audio-transcription-runner-DsqwKJ49.js} +1 -1
  25. package/dist/{audit-CmZAI3_9.js → audit-Dk69ufby.js} +6 -6
  26. package/dist/{audit-CH1D3iBG.js → audit-DkY9yUsn.js} +6 -6
  27. package/dist/{auth-choice-dWGUA_8g.js → auth-choice-BkWEr-Pe.js} +2 -2
  28. package/dist/{auth-choice-CEOnAk7f.js → auth-choice-kkL-bZp9.js} +2 -2
  29. package/dist/{banner-DWHiEk1H.js → banner-DOesQn79.js} +1 -1
  30. package/dist/{browser-cli-CfoUYSxy.js → browser-cli-Cy6LJQhv.js} +3 -3
  31. package/dist/{browser-cli-P7SKIutx.js → browser-cli-Mbn8pYZZ.js} +3 -3
  32. package/dist/build-info.json +3 -3
  33. package/dist/bundled/boot-md/handler.js +60 -60
  34. package/dist/bundled/bootstrap-extra-files/handler.js +6 -6
  35. package/dist/bundled/command-logger/handler.js +2 -2
  36. package/dist/bundled/session-journal/handler.js +60 -60
  37. package/dist/bundled/session-memory/handler.js +60 -60
  38. package/dist/{call-xB0MOQUF.js → call-B1surxJJ.js} +3 -1
  39. package/dist/{call-CUY8VoHh.js → call-CsmPnXmY.js} +3 -1
  40. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  41. package/dist/{channel-activity-DoBHFita.js → channel-activity-Kn1_ykXE.js} +3 -3
  42. package/dist/{channel-options-DCKEbe7Z.js → channel-options-Am9ZvwKB.js} +1 -1
  43. package/dist/{channel-options-DfjYj7oi.js → channel-options-TBxP7o5K.js} +1 -1
  44. package/dist/{channels-cli-DrcS29Pk.js → channels-cli-3ihKjjtq.js} +33 -33
  45. package/dist/{channels-cli-DHvavLcJ.js → channels-cli-CGWblqhQ.js} +32 -32
  46. package/dist/{chat-content-hesA0q3j.js → chat-content-B_nVIplC.js} +4 -4
  47. package/dist/{chat-content-BZeW5ciD.js → chat-content-C7_U4hJq.js} +34 -34
  48. package/dist/{chrome-DZ6ejAmp.js → chrome-Bukcguhv.js} +23 -23
  49. package/dist/{chrome-C2xK35m5.js → chrome-DNh94Pjx.js} +8 -8
  50. package/dist/{chunk-DOckmOyp.js → chunk-CEygNI3g.js} +3 -3
  51. package/dist/{clawbot-cli-CLz6KuWz.js → clawbot-cli-BRicu1s1.js} +5 -5
  52. package/dist/{clawbot-cli-CzDwX-gU.js → clawbot-cli-Be313PY0.js} +5 -5
  53. package/dist/cli/daemon-cli.js +1 -1
  54. package/dist/{cli-D2tBPn1z.js → cli-BFoMFw-E.js} +28 -28
  55. package/dist/{cli-DBqTAu56.js → cli-BcIWokUA.js} +29 -29
  56. package/dist/{client-CIDXfGgo.js → client-DA6hPHoC.js} +4 -1
  57. package/dist/{client-BCYzc-y7.js → client-MNdGt1bC.js} +4 -1
  58. package/dist/{client-profiles-BaJqyqVb.js → client-profiles-BkQpgWwd.js} +1 -1
  59. package/dist/{client-profiles-DGW7rrdk.js → client-profiles-CZqoxT_J.js} +1 -1
  60. package/dist/{command-queue-uNIrlK4C.js → command-queue-BiT79iw_.js} +1 -1
  61. package/dist/{command-queue-3hrr088f.js → command-queue-C4uOOl0Z.js} +1 -1
  62. package/dist/{command-queue-D360YW1L.js → command-queue-Cd0AajLX.js} +1 -1
  63. package/dist/{command-queue-D2t-RCzv.js → command-queue-DnPEEtOJ.js} +1 -1
  64. package/dist/{command-registry-DuGYq06B.js → command-registry-CKhdmVgi.js} +13 -13
  65. package/dist/{command-secret-targets-DAtwJ6C7.js → command-secret-targets-9z88Sdd9.js} +2 -2
  66. package/dist/{command-secret-targets-j8KBmpix.js → command-secret-targets-r25GrCux.js} +2 -2
  67. package/dist/{commands-registry-CZGO6Zk0.js → commands-registry-Cof4HjvY.js} +2 -2
  68. package/dist/{completion-cli-BmLGd23K.js → completion-cli-DCm06gIy.js} +2 -2
  69. package/dist/{completion-cli-DuJJOsOD.js → completion-cli-DPC7jSts.js} +1 -1
  70. package/dist/{config-cli-DmPS8dHv.js → config-cli-DSSYHC1h.js} +1 -1
  71. package/dist/{config-cli-D7Km0W0t.js → config-cli-DzKCSgly.js} +1 -1
  72. package/dist/{configure-Cv8WHggj.js → configure-c7eXMXPC.js} +6 -6
  73. package/dist/{configure-Dp_BDe0p.js → configure-ev80kp3h.js} +6 -6
  74. package/dist/contracts/gateway-protocol.schema.json +23 -0
  75. package/dist/control-ui/assets/{dreams-5cpOLdgU.js → dreams-CFX8_iO7.js} +2 -2
  76. package/dist/control-ui/assets/{dreams-5cpOLdgU.js.map → dreams-CFX8_iO7.js.map} +1 -1
  77. package/dist/control-ui/assets/{index-D6XwnS7I.js → index-CambJeDO.js} +4 -4
  78. package/dist/control-ui/assets/{index-D6XwnS7I.js.map → index-CambJeDO.js.map} +1 -1
  79. package/dist/control-ui/assets/{learning-BORaiTQ4.js → learning-XJj58fEK.js} +2 -2
  80. package/dist/control-ui/assets/{learning-BORaiTQ4.js.map → learning-XJj58fEK.js.map} +1 -1
  81. package/dist/control-ui/assets/{view-chat-ByDyhnLw.js → view-chat-DCakYJRB.js} +3 -3
  82. package/dist/control-ui/assets/{view-chat-ByDyhnLw.js.map → view-chat-DCakYJRB.js.map} +1 -1
  83. package/dist/control-ui/index.html +1 -1
  84. package/dist/{cron-cli-DcatymNM.js → cron-cli-B7av_Qj-.js} +3 -3
  85. package/dist/{cron-cli-Bxd1ztzh.js → cron-cli-D-MXQLbx.js} +3 -3
  86. package/dist/{daemon-cli-P_665VBl.js → daemon-cli-C0X7BA3B.js} +2 -2
  87. package/dist/{daemon-cli-sdDY3Rkr.js → daemon-cli-D-zUFs16.js} +2 -2
  88. package/dist/daemon-cli.js +5 -0
  89. package/dist/{deliver-BGZedjpd.js → deliver-CD-qJ08p.js} +7 -5
  90. package/dist/{deliver-C0DKFL-c.js → deliver-CpY1AlyA.js} +29 -29
  91. package/dist/{deliver-Lga2gynK.js → deliver-Czj8jts5.js} +5 -5
  92. package/dist/{deliver-6pCupDgE.js → deliver-D3zKg0i3.js} +4 -4
  93. package/dist/{devices-cli-5NqagsuD.js → devices-cli-Bx1kF97H.js} +2 -2
  94. package/dist/{devices-cli-D6FG7yBy.js → devices-cli-D55ggw6F.js} +2 -2
  95. package/dist/{diagnostic-DBospa-B.js → diagnostic-Bu6Kxc66.js} +1 -1
  96. package/dist/{diagnostic-CdJb6i0b.js → diagnostic-BzGocbak.js} +1 -1
  97. package/dist/{diagnostic-uYRm3RAs.js → diagnostic-CKFgwhkU.js} +5 -5
  98. package/dist/{diagnostic-BP20aK6Y.js → diagnostic-CWdhJ9KR.js} +1 -1
  99. package/dist/{dm-policy-shared-C8iB_a-f.js → dm-policy-shared-JZebmiY8.js} +1 -1
  100. package/dist/{doctor-completion-BtJqYgVS.js → doctor-completion-Bx2Vu53y.js} +1 -1
  101. package/dist/{doctor-completion-Br2pHonN.js → doctor-completion-C1c_Fm0b.js} +1 -1
  102. package/dist/entry.js +2 -2
  103. package/dist/{errors-83K08uTq.js → errors-COs_vQr3.js} +1 -1
  104. package/dist/{exec-approvals-cli-DzJlH70p.js → exec-approvals-cli-RX2L6dhB.js} +4 -4
  105. package/dist/{exec-approvals-cli-D61d8hgT.js → exec-approvals-cli-U1avv2dD.js} +4 -4
  106. package/dist/extensionAPI.js +16 -16
  107. package/dist/{fetch-fObya4WR.js → fetch-B1ohBh6A.js} +8 -8
  108. package/dist/{fetch-guard-BucfWGi8.js → fetch-guard-BXzVwvnJ.js} +3 -3
  109. package/dist/{frontmatter-IfoWyoLV.js → frontmatter-Cw_6jMAR.js} +5 -5
  110. package/dist/{fs-safe-joAzTKB9.js → fs-safe-BK5ALzKD.js} +26 -26
  111. package/dist/{gateway-cli-BZFHtE2A.js → gateway-cli-CrFsVy3G.js} +53 -50
  112. package/dist/{gateway-cli-CzrTOBz5.js → gateway-cli-rJFjYA1c.js} +54 -51
  113. package/dist/{gateway-rpc-D36kXOsx.js → gateway-rpc-BArMTxJU.js} +1 -1
  114. package/dist/{gateway-rpc-hfUfa0T-.js → gateway-rpc-k1CUY-d7.js} +1 -1
  115. package/dist/github-copilot-token-DYYKoDuV.js +106 -0
  116. package/dist/{health-CVUuZRpQ.js → health-DjlQU_Tv.js} +4 -4
  117. package/dist/{health-K3ylOag4.js → health-jZPF8weC.js} +4 -4
  118. package/dist/{hooks-cli-CNlH_Ckf.js → hooks-cli-CVygK2yq.js} +30 -30
  119. package/dist/{hooks-cli-BTxvzxSG.js → hooks-cli-b4k2GboY.js} +29 -29
  120. package/dist/{image-ops-DlAa1zGf.js → image-ops-C-5VgbLB.js} +1 -1
  121. package/dist/index.js +32 -32
  122. package/dist/{ir-Cs9qeaeL.js → ir-DioI2VyB.js} +5 -5
  123. package/dist/{legacy-names-Dh4RlQMQ.js → legacy-names-CghFcfry.js} +1 -1
  124. package/dist/llm-slug-generator.js +60 -60
  125. package/dist/{logger-vVASmiVr.js → logger-J4xjy-6D.js} +1 -1
  126. package/dist/{logs-cli-ZXfvpQn5.js → logs-cli-BeLB-Xck.js} +3 -3
  127. package/dist/{logs-cli-DwpuZXwp.js → logs-cli-CvF3EIE2.js} +3 -3
  128. package/dist/{manager-CTeCpzGz.js → manager-D728Thsn.js} +18 -18
  129. package/dist/{manager-CsTeZuhu.js → manager-DCXdygsq.js} +1 -1
  130. package/dist/{manager-d_jLZwIa.js → manager-gw84UdyQ.js} +1 -1
  131. package/dist/{markdown-tables-BQLg3bjX.js → markdown-tables-DfLMw9ti.js} +2 -2
  132. package/dist/{memory-cli-C6IsfNdf.js → memory-cli-BcjjHcwL.js} +2 -2
  133. package/dist/{memory-cli-Dm4vpHAU.js → memory-cli-H4nCh_8v.js} +2 -2
  134. package/dist/{model-selection-UX4A5pdj.js → model-selection-BHGpQSa9.js} +87 -87
  135. package/dist/{models-FSASF0m5.js → models-BBZ_Tvpf.js} +3 -3
  136. package/dist/{models-cli-CqhUy9E-.js → models-cli-7V9N158Z.js} +30 -30
  137. package/dist/{models-cli-BIWkA9C9.js → models-cli-BJK0d_IM.js} +28 -28
  138. package/dist/{models-config-CNw9rdH1.js → models-config-CJUMccZW.js} +2 -2
  139. package/dist/{node-cli-BsB2z4rN.js → node-cli-BUV9i73l.js} +4 -4
  140. package/dist/{node-cli-DFxjiUT-.js → node-cli-DEVZws2K.js} +4 -4
  141. package/dist/{node-command-policy-BG0trkgo.js → node-command-policy-C0OmboTh.js} +1 -1
  142. package/dist/{node-command-policy-CVGtgIFJ.js → node-command-policy-Dbm2r7IP.js} +1 -1
  143. package/dist/{nodes-cli-BbRJxfod.js → nodes-cli-CYpc3Yvq.js} +3 -3
  144. package/dist/{nodes-cli-Cos0b-Pr.js → nodes-cli-Chp9WqRe.js} +3 -3
  145. package/dist/{npm-resolution-CwoZ0zIw.js → npm-resolution-BNpY_aOs.js} +1 -1
  146. package/dist/{npm-resolution-BKhZg_qE.js → npm-resolution-DaXE7ULy.js} +1 -1
  147. package/dist/{onboard-Bhpqg04u.js → onboard-BOhVuXUR.js} +3 -3
  148. package/dist/{onboard-qzS9Ex3E.js → onboard-C-KqZZqX.js} +3 -3
  149. package/dist/{onboard-channels-CdETO6vp.js → onboard-channels-B89jrN2Y.js} +2 -2
  150. package/dist/{onboard-channels-DqqM-gZ4.js → onboard-channels-DmJGOEPI.js} +2 -2
  151. package/dist/{onboard-helpers-CyLVkn7p.js → onboard-helpers-BHTSdqFW.js} +1 -1
  152. package/dist/{onboard-helpers-BjlBFVLF.js → onboard-helpers-DFWV67fv.js} +1 -1
  153. package/dist/{onboard-remote-BoobabMS.js → onboard-remote-BL2_Vzie.js} +1 -1
  154. package/dist/{onboard-remote-CGfCa4Gn.js → onboard-remote-aFlQukcN.js} +1 -1
  155. package/dist/{onboard-skills-qXATWBbv.js → onboard-skills-DBsUD_Fs.js} +1 -1
  156. package/dist/{onboard-skills-CA3vVftf.js → onboard-skills-fb0X7sb5.js} +1 -1
  157. package/dist/{onboarding-9F7Zrfos.js → onboarding-C6Xs7G9Y.js} +7 -7
  158. package/dist/{onboarding-B0tWDl2D.js → onboarding-DjYLPv7p.js} +7 -7
  159. package/dist/{onboarding.finalize-D-GEVbwy.js → onboarding.finalize-BzPTRheS.js} +35 -35
  160. package/dist/{onboarding.finalize-DZaf33cl.js → onboarding.finalize-Sx0H879S.js} +33 -33
  161. package/dist/{onboarding.gateway-config-D2JKnTD-.js → onboarding.gateway-config-CkoaBZS4.js} +5 -5
  162. package/dist/{onboarding.gateway-config-BjNFm5qL.js → onboarding.gateway-config-DFk1lZ7k.js} +5 -5
  163. package/dist/{operator-commands-Cak1KHXQ.js → operator-commands-CMLC3NdV.js} +2 -2
  164. package/dist/{operator-commands-QumqWQQg.js → operator-commands-DWyDwJ5E.js} +2 -2
  165. package/dist/{outbound-attachment-CFHAAdf4.js → outbound-attachment-DtVXUXnX.js} +2 -2
  166. package/dist/{outbound-message-hooks-DD51nZnK.js → outbound-message-hooks-8LGAoYF_.js} +1 -1
  167. package/dist/{outbound-message-hooks-ZPwBUN_R.js → outbound-message-hooks-CsYq3_vL.js} +1 -1
  168. package/dist/{outbound-message-hooks-WWLXsRwc.js → outbound-message-hooks-DUHpZ2aL.js} +5 -5
  169. package/dist/{outbound-message-hooks-DC75UHT4.js → outbound-message-hooks-tjGZZOYq.js} +1 -1
  170. package/dist/{path-alias-guards-BzCkdlOk.js → path-alias-guards-E9ntDORB.js} +1 -1
  171. package/dist/paths-BIDPYPVC.js +233 -0
  172. package/dist/{pi-embedded-BSXEJok2.js → pi-embedded--18wTN8q.js} +279 -272
  173. package/dist/{pi-embedded-helpers-D7uD-CgK.js → pi-embedded-helpers-Brv2iTWi.js} +2 -2
  174. package/dist/{pi-embedded-helpers-StwgdB31.js → pi-embedded-helpers-ClJpdsSV.js} +2 -2
  175. package/dist/{pi-embedded-recovery-adapter-D7px7ESy.js → pi-embedded-recovery-adapter-BEKLsxLt.js} +10 -10
  176. package/dist/{pi-embedded-recovery-adapter-CfgLn9QF.js → pi-embedded-recovery-adapter-dQZ-gtY4.js} +10 -10
  177. package/dist/{pi-embedded-utils-DjVnTKKi.js → pi-embedded-utils-C-FQE63E.js} +1 -1
  178. package/dist/{pi-embedded-utils-BjqdCUkA.js → pi-embedded-utils-C7ErjdjF.js} +3 -3
  179. package/dist/{pi-embedded-utils-B8Raycd6.js → pi-embedded-utils-CKxA8dqZ.js} +1 -1
  180. package/dist/{pi-embedded-utils-CR3tST8r.js → pi-embedded-utils-D7vaAoE6.js} +1 -1
  181. package/dist/{pi-embedded-BhsFkp5Y.js → pi-embedded-vIZchQTO.js} +42 -35
  182. package/dist/{pi-model-discovery-CQdUMRm4.js → pi-model-discovery-BaH_6win.js} +7 -7
  183. package/dist/{pi-tools.policy-DXLQHQAj.js → pi-tools.policy-BSgFR5ag.js} +1 -1
  184. package/dist/{plugin-registry-DH7Hnw6l.js → plugin-registry-CDj1s2Qo.js} +1 -1
  185. package/dist/{plugin-registry-DgIkh9ii.js → plugin-registry-CmiGMpCp.js} +1 -1
  186. package/dist/plugin-sdk/{agent-turn-execute-CW7LtXMC.js → agent-turn-execute-DRGUpyj_.js} +15 -15
  187. package/dist/plugin-sdk/{agent-turn-execute-BxdAt_ht.js → agent-turn-execute-vNMPaEsb.js} +15 -15
  188. package/dist/plugin-sdk/{agent-turn-runner-orbrCxRO.js → agent-turn-runner-B48Ac2Mq.js} +5 -5
  189. package/dist/plugin-sdk/{agent-turn-runner-sOn9sAG9.js → agent-turn-runner-CJ061NAh.js} +4 -4
  190. package/dist/plugin-sdk/{agent-turn-runner-CRaNFFTm.js → agent-turn-runner-xP1KK6u-.js} +1 -1
  191. package/dist/plugin-sdk/{audio-preflight-CBBGdhe1.js → audio-preflight-BDZ7cLko.js} +5 -5
  192. package/dist/plugin-sdk/{audio-preflight-BZXIHlnM.js → audio-preflight-COb5kXAH.js} +6 -6
  193. package/dist/plugin-sdk/{audio-preflight-CNU5kpWj.js → audio-preflight-DpIgQPUE.js} +1 -1
  194. package/dist/plugin-sdk/{audio-transcription-runner-D5dYI82C.js → audio-transcription-runner-DqbgqKuA.js} +1 -1
  195. package/dist/plugin-sdk/{audio-transcription-runner-D8y2D8k8.js → audio-transcription-runner-tMxFDdPy.js} +1 -1
  196. package/dist/plugin-sdk/{chat-content-DB5Wz2lG.js → chat-content-B4kExRGx.js} +1 -1
  197. package/dist/plugin-sdk/{chat-content-aOAkouil.js → chat-content-CmG6uniC.js} +1 -1
  198. package/dist/plugin-sdk/{command-detection-AlAuh3r9.js → command-detection-Cx5GspTs.js} +37 -30
  199. package/dist/plugin-sdk/{command-queue-JvIhb__x.js → command-queue-BrpT-5Sy.js} +1 -1
  200. package/dist/plugin-sdk/{command-queue-J8WWtdem.js → command-queue-mdn12mZN.js} +2 -2
  201. package/dist/plugin-sdk/{command-queue-DMJXMFU-.js → command-queue-uRF0EuVO.js} +1 -1
  202. package/dist/plugin-sdk/{deliver-D77qfyGv.js → deliver-CckI3OJ8.js} +4 -4
  203. package/dist/plugin-sdk/{deliver-46BXvvk5.js → deliver-D3X61EfY.js} +4 -4
  204. package/dist/plugin-sdk/{deliver-tcGRRL8s.js → deliver-DOj7WTIw.js} +5 -5
  205. package/dist/plugin-sdk/{deliver-BOyf6UPp.js → deliver-qMYtKe1O.js} +5 -5
  206. package/dist/plugin-sdk/{diagnostic-DVk1j05H.js → diagnostic-BQhPQdFK.js} +1 -1
  207. package/dist/plugin-sdk/{diagnostic-C-BgFx1S.js → diagnostic-CcNUspD1.js} +1 -1
  208. package/dist/plugin-sdk/{diagnostic-CLyicI69.js → diagnostic-I0XYqjlG.js} +1 -1
  209. package/dist/plugin-sdk/index.js +16 -16
  210. package/dist/plugin-sdk/{monitor-D9AzoNHs.js → monitor-CjGR673h.js} +36 -29
  211. package/dist/plugin-sdk/{pi-embedded-utils-Bj86frFf.js → pi-embedded-utils-BeDAZIRN.js} +1 -1
  212. package/dist/plugin-sdk/{pi-embedded-utils-gWjx_FJu.js → pi-embedded-utils-CXRILg4X.js} +1 -1
  213. package/dist/plugin-sdk/{provider-dispatcher-BkgqrySb.js → provider-dispatcher-CaEeja4a.js} +15 -15
  214. package/dist/plugin-sdk/{provider-dispatcher-RG1EJhMg.js → provider-dispatcher-CwOOkcSh.js} +15 -15
  215. package/dist/plugin-sdk/{provider-image-CK8PByo3.js → provider-image-1--b__Rf.js} +1 -1
  216. package/dist/plugin-sdk/{provider-image-BRuhIUH4.js → provider-image-CWR1baFo.js} +4 -4
  217. package/dist/plugin-sdk/{provider-image-BsvAEUj7.js → provider-image-D3L7uRQL.js} +4 -4
  218. package/dist/plugin-sdk/{provider-image-BRiO1hJO.js → provider-image-DfMOZvCj.js} +1 -1
  219. package/dist/plugin-sdk/{replies-CNJcNn1X.js → replies-Bvgbr4Gl.js} +2 -2
  220. package/dist/plugin-sdk/{replies-CmfWsSdE.js → replies-DpAL4lju.js} +2 -2
  221. package/dist/plugin-sdk/{replies-Diq1jozB.js → replies-K0SP92k3.js} +3 -3
  222. package/dist/plugin-sdk/{replies-3-6UUC2y.js → replies-S7-hIwEu.js} +3 -3
  223. package/dist/plugin-sdk/{reply-directives-C_nV536z.js → reply-directives-3w5Sb0-K.js} +1 -1
  224. package/dist/plugin-sdk/{reply-directives--THCb2vc.js → reply-directives-CCmYO5TU.js} +1 -1
  225. package/dist/plugin-sdk/{runs-CmbFSwOD.js → runs-Bh-TSTul.js} +6 -6
  226. package/dist/plugin-sdk/{runs-nP6hONs2.js → runs-Ciq2OtzT.js} +5 -5
  227. package/dist/plugin-sdk/{runs-Cu-M6Lh7.js → runs-DgLRRHnl.js} +6 -6
  228. package/dist/plugin-sdk/{runs-BU1Eppml.js → runs-lzwgSAQQ.js} +5 -5
  229. package/dist/plugin-sdk/{send-LkmFhgsK.js → send-4L6l04nt.js} +2 -2
  230. package/dist/plugin-sdk/{send-D7UktRfh.js → send-DKVsq9M4.js} +1 -1
  231. package/dist/plugin-sdk/{send-C2QGhDII.js → send-RnIEnr9s.js} +2 -2
  232. package/dist/plugin-sdk/{send-aiyKj-5V.js → send-T7FFZ4GT.js} +1 -1
  233. package/dist/plugin-sdk/{session-context-DLi5r0L8.js → session-context-Ct8StxcQ.js} +1 -1
  234. package/dist/plugin-sdk/{session-context-D79uWb-f.js → session-context-DLVW1kjd.js} +1 -1
  235. package/dist/plugin-sdk/{session-meta-DwqjC-No.js → session-meta-CjpVFrUg.js} +1 -1
  236. package/dist/plugin-sdk/{sessions-D9WFZu21.js → sessions-55u1Rz4h.js} +1 -0
  237. package/dist/plugin-sdk/{sessions-CmLCbwdv.js → sessions-DgJUTr39.js} +1 -0
  238. package/dist/plugin-sdk/src/agents/tool-display-common.d.ts +10 -0
  239. package/dist/plugin-sdk/src/gateway/protocol/index.d.ts +3 -0
  240. package/dist/plugin-sdk/src/gateway/protocol/schema/protocol-schemas.d.ts +6 -0
  241. package/dist/plugin-sdk/src/gateway/protocol/schema/sessions.d.ts +6 -0
  242. package/dist/plugin-sdk/src/gateway/protocol/schema/types.d.ts +2 -0
  243. package/dist/plugin-sdk/src/gateway/session-utils.types.d.ts +2 -0
  244. package/dist/plugin-sdk/src/shared/session-visibility.d.ts +1 -1
  245. package/dist/plugin-sdk/src/tts/tts.d.ts +2 -0
  246. package/dist/plugin-sdk/{subagent-registry-D-9HI-_X.js → subagent-registry-CfMU3EOY.js} +15 -15
  247. package/dist/plugin-sdk/{subagent-registry-CuACJDRa.js → subagent-registry-n7onkQYC.js} +15 -15
  248. package/dist/plugin-sdk/testing.js +15 -15
  249. package/dist/{plugins-cli-D2epBFli.js → plugins-cli-BfVyfDVB.js} +30 -30
  250. package/dist/{plugins-cli-YMB3dwun.js → plugins-cli-RYPupoUU.js} +29 -29
  251. package/dist/{program-context-C0OAcdai.js → program-context-Bd6intne.js} +37 -37
  252. package/dist/{program-DhncJMbr.js → program-vHNIwjM_.js} +35 -35
  253. package/dist/{prompt-select-styled-pBLBu3w7.js → prompt-select-styled-BwIQiRks.js} +11 -11
  254. package/dist/{prompt-select-styled-B0HZWrVy.js → prompt-select-styled-CvmUNFDK.js} +11 -11
  255. package/dist/{provider-image-CApPjEsW.js → provider-image-BvBYtGGJ.js} +1 -1
  256. package/dist/{provider-image-D2FrDW-X.js → provider-image-DVTuOv92.js} +6 -6
  257. package/dist/{provider-image-CAWS0JMV.js → provider-image-KmAZWQje.js} +1 -1
  258. package/dist/{provider-image-B-KFl1me.js → provider-image-n0L8CIDm.js} +1 -1
  259. package/dist/{proxy-CPi-EHQf.js → proxy-CrSpy5Aw.js} +1 -1
  260. package/dist/{proxy-env-1eta-137.js → proxy-env-BxR4m86L.js} +1 -1
  261. package/dist/{proxy-fetch-SAeVJOzX.js → proxy-fetch-g109vqdt.js} +1 -1
  262. package/dist/{push-apns-BAZsfMOy.js → push-apns--0fj47Qj.js} +2 -2
  263. package/dist/{push-apns-PAONdNH4.js → push-apns-Cb0sjE90.js} +2 -2
  264. package/dist/{pw-ai-DtPiMDW2.js → pw-ai-BJiiE3V8.js} +1 -1
  265. package/dist/{pw-ai-Czj8Ud3z.js → pw-ai-CC8qsp4R.js} +1 -1
  266. package/dist/{pw-ai-D9Y__zb9.js → pw-ai-CNTt9O_x.js} +14 -14
  267. package/dist/{pw-ai-BZjpW2LJ.js → pw-ai-DMPGyJxJ.js} +1 -1
  268. package/dist/{qmd-manager-C0SNPJNQ.js → qmd-manager-CU9iEql0.js} +12 -12
  269. package/dist/{qr-cli-DAghVVtT.js → qr-cli-B1vszJrL.js} +3 -3
  270. package/dist/{qr-cli-C8WFS-12.js → qr-cli-BZy4AXuc.js} +3 -3
  271. package/dist/{query-expansion-lPFsJzxE.js → query-expansion-B_2rETEo.js} +13 -13
  272. package/dist/{recorder-Dtl7MFGH.js → recorder-Clg9Kbqu.js} +2 -2
  273. package/dist/{recovery-adapter-CZUNVpQO.js → recovery-adapter-D3YllPfB.js} +2 -2
  274. package/dist/{recovery-adapter-CRSPS8I2.js → recovery-adapter-Dyk72MfJ.js} +2 -2
  275. package/dist/{recovery-adapter-BSdwo2OS.js → recovery-adapter-Hdhf6HDW.js} +1 -1
  276. package/dist/{recovery-adapter-BpJ8BscF.js → recovery-adapter-y0rKMaw8.js} +1 -1
  277. package/dist/{redact-Da2jd8m8.js → redact-DpE5Tg36.js} +1 -1
  278. package/dist/{register.agent-FDTmtEUr.js → register.agent-CgPP5ADX.js} +31 -31
  279. package/dist/{register.agent-C4f6rhJo.js → register.agent-DfScK2hV.js} +33 -33
  280. package/dist/{register.configure-Dv5O2Xb5.js → register.configure-C8uYH0Yy.js} +35 -35
  281. package/dist/{register.configure-Hw_sXK-z.js → register.configure-dflFJ7N_.js} +34 -34
  282. package/dist/{register.maintenance-D8jjjhHB.js → register.maintenance-DYrx2td9.js} +35 -35
  283. package/dist/{register.maintenance-DK1PJ9oQ.js → register.maintenance-DplgYMC9.js} +37 -37
  284. package/dist/{register.message-D2APO70t.js → register.message-BBQ6Wdt9.js} +29 -29
  285. package/dist/{register.message-GNpuxvGM.js → register.message-jvrIPxVV.js} +30 -30
  286. package/dist/{register.onboard-0G3JduCW.js → register.onboard-eC1JSQFQ.js} +6 -6
  287. package/dist/{register.onboard-DONtll3f.js → register.onboard-mi8eEWxH.js} +6 -6
  288. package/dist/{register.setup-Ru94mK0C.js → register.setup-DZYxFj5L.js} +6 -6
  289. package/dist/{register.setup-BhN2hAJ-.js → register.setup-F0XMwrOq.js} +6 -6
  290. package/dist/{register.status-health-sessions-cUGfN2jZ.js → register.status-health-sessions-B-IdUdif.js} +33 -33
  291. package/dist/{register.status-health-sessions-BugOGdEq.js → register.status-health-sessions-DbjCFLPT.js} +35 -35
  292. package/dist/{register.subclis-BXGoL8Qv.js → register.subclis-Dobk1vvB.js} +25 -25
  293. package/dist/{replies-qljs_NZI.js → replies-B7XXdKjN.js} +2 -2
  294. package/dist/{replies-DS1VGy4W.js → replies-BKdOqGC9.js} +5 -5
  295. package/dist/{replies-CHagfAgN.js → replies-DrGGa5se.js} +2 -2
  296. package/dist/{replies-BuO733xx.js → replies-gGgLXY8D.js} +2 -2
  297. package/dist/{reply-CqYQeNjd.js → reply-BSMDupOw.js} +38 -36
  298. package/dist/{reply-directives-CJoSirgd.js → reply-directives-Bz18fvJe.js} +1 -1
  299. package/dist/{reply-directives-DBZR0dTg.js → reply-directives-CtSqkSzr.js} +2 -2
  300. package/dist/{reply-directives-B9hX-LBz.js → reply-directives-bPMJNW1Q.js} +1 -1
  301. package/dist/{reply-directives-GcBlocvi.js → reply-directives-tE0PyBK-.js} +1 -1
  302. package/dist/{reply-prefix-DfeMrD4g.js → reply-prefix-C-DjHvQK.js} +1 -1
  303. package/dist/{resolve-route-CAuL1p_4.js → resolve-route-DKZiteo6.js} +5 -5
  304. package/dist/{rpc-DJ9VPO9A.js → rpc-BZtZb4-6.js} +1 -1
  305. package/dist/{rpc-BoZa3Ve8.js → rpc-Ft_DUdSG.js} +1 -1
  306. package/dist/{run-main-08KWAl9e.js → run-main-BJFVebkS.js} +44 -44
  307. package/dist/{runs-DRxbDl12.js → runs-BIt97Q-K.js} +9 -9
  308. package/dist/{runs-CoWBHyeo.js → runs-BUywHXga.js} +4 -4
  309. package/dist/{runs-vCw_F2ZO.js → runs-TPOj4wqX.js} +4 -4
  310. package/dist/{runs-yIaQUPae.js → runs-wDxw0TX4.js} +5 -5
  311. package/dist/{sandbox-BijP-jd2.js → sandbox-389fAlDt.js} +2 -2
  312. package/dist/{sandbox-Cf0p0qcn.js → sandbox-CEDb7iCz.js} +2 -2
  313. package/dist/{sandbox-cli-DFLg4dmY.js → sandbox-cli-BJ4Z1CEE.js} +6 -6
  314. package/dist/{sandbox-cli-B0TGsg0B.js → sandbox-cli-kfxS44rH.js} +6 -6
  315. package/dist/{secrets-cli-BoYG9Zi_.js → secrets-cli-CgpBwEA_.js} +3 -3
  316. package/dist/{secrets-cli-CL3R38dk.js → secrets-cli-DFuIPeQ8.js} +3 -3
  317. package/dist/{security-cli-BuOut78W.js → security-cli-bxcpjEyc.js} +8 -8
  318. package/dist/{security-cli-DFTi9A0s.js → security-cli-zcQ5Hc8L.js} +8 -8
  319. package/dist/{send-Bmp8wi9T.js → send-Bf4geLyV.js} +8 -8
  320. package/dist/{send-DRJrureq.js → send-Ch1ruPj9.js} +1 -1
  321. package/dist/{send-DFasc8l1.js → send-CsDSBjFo.js} +6 -6
  322. package/dist/{send-CtSLexxo.js → send-DBqe2mPq.js} +30 -30
  323. package/dist/{send-DFAmNsWX.js → send-DQvfLvpJ.js} +6 -6
  324. package/dist/{send-DSRl6F0O.js → send-bwKTbNlJ.js} +7 -7
  325. package/dist/{send-DxkjyjYg.js → send-cRef_6f-.js} +1 -1
  326. package/dist/{send-7pf6IvCv.js → send-xXKNMsLi.js} +1 -1
  327. package/dist/{server-CRI0-vWV.js → server-CggrpKmd.js} +4 -4
  328. package/dist/{server-ks1TmG7W.js → server-D7EeBwPd.js} +4 -4
  329. package/dist/{server-context-DgKj77jj.js → server-context-CV1udh3Y.js} +2 -2
  330. package/dist/{server-context-BIoSfzI_.js → server-context-Dv15RG_H.js} +2 -2
  331. package/dist/{server-lifecycle-fJG-u89x.js → server-lifecycle-BIH58Hoe.js} +1 -1
  332. package/dist/{server-lifecycle-Cd0b010a.js → server-lifecycle-D8mfFIYf.js} +1 -1
  333. package/dist/{server-node-events-Ba1YD79n.js → server-node-events-C_xoK9Xb.js} +29 -29
  334. package/dist/{server-node-events-CqQhTT1T.js → server-node-events-mxzClNCx.js} +30 -30
  335. package/dist/{session-meta-BlSJMcbU.js → session-meta-5XI6vLtM.js} +1 -1
  336. package/dist/{session-storage-B-ES9i1k.js → session-storage-269JGGQ0.js} +1 -1
  337. package/dist/{session-storage-7x9X6Db3.js → session-storage-BbpL12Su.js} +1 -1
  338. package/dist/{session-storage-owner-DLQ3vsAz.js → session-storage-owner-ClZPCWep.js} +2 -2
  339. package/dist/{session-storage-owner-1-cQlOCZ.js → session-storage-owner-M7vbUIWw.js} +2 -2
  340. package/dist/{session-utils-BeYzkx__.js → session-utils-Be7zx7oZ.js} +4 -2
  341. package/dist/{sessions-BIgPumZV.js → sessions-BV1UJJsg.js} +37 -11
  342. package/dist/{sessions-rMRfoN3f.js → sessions-CIWeBs1M.js} +1 -0
  343. package/dist/{sessions-9SvxsXWP.js → sessions-CLcDtAGY.js} +1 -0
  344. package/dist/{sessions-bZHjdfaW.js → sessions-C_dBu7XC.js} +6 -5
  345. package/dist/{sessions-CLXwtR8F.js → sessions-CpqHo_Lm.js} +37 -11
  346. package/dist/{sessions-B03PIf-m.js → sessions-D4geZIf4.js} +1 -0
  347. package/dist/{sessions-DvCgCqqN.js → sessions-DR_ebiSs.js} +2 -2
  348. package/dist/{sessions-claims-status-DMdo7H9e.js → sessions-claims-status-CCWxZ_uS.js} +2 -2
  349. package/dist/{sessions-claims-status-CJ4Z16C-.js → sessions-claims-status-DcgKqzSM.js} +2 -2
  350. package/dist/{skill-commands-RBvFNztU.js → skill-commands-CAOvM2sb.js} +8 -8
  351. package/dist/{skills-Dj2sTIvh.js → skills-VN1CJK6W.js} +21 -21
  352. package/dist/{status-D_sJaQfK.js → status-B8Al6FzI.js} +18 -18
  353. package/dist/{status-Ccz-BtS_.js → status-Cuo3rz1n.js} +18 -18
  354. package/dist/{store-WpdMrmch.js → store-HgGweM4u.js} +7 -7
  355. package/dist/{subsystem-D_zHSy02.js → subsystem-BZy3aWdW.js} +71 -71
  356. package/dist/{system-cli-BGa0j96s.js → system-cli-Ba9jGCiM.js} +3 -3
  357. package/dist/{system-cli-CnsRY21W.js → system-cli-DcjUJVa8.js} +3 -3
  358. package/dist/{tables--lm0TIoo.js → tables-DkwNUhx1.js} +1 -1
  359. package/dist/{task-pipeline-boot-BMwRQ8Fe.js → task-pipeline-boot-C1v58b1_.js} +30 -30
  360. package/dist/{task-pipeline-boot-D5tuNVHj.js → task-pipeline-boot-Kxi1hpUn.js} +29 -29
  361. package/dist/{task-runlog-retention-D0XabfJk.js → task-runlog-retention-BdLkqRCi.js} +3 -3
  362. package/dist/{task-runlog-retention-vP8bhD14.js → task-runlog-retention-CJeUxN8v.js} +3 -3
  363. package/dist/{tasks-DEye0RYH.js → tasks-BIqKTj4l.js} +2 -2
  364. package/dist/{tasks-DIa6KmEw.js → tasks-nrh4KjHH.js} +2 -2
  365. package/dist/{tokens-B3OPeQh5.js → tokens-PMai9bNL.js} +1 -1
  366. package/dist/{tool-loop-detection-ST5jhih3.js → tool-loop-detection-BqyMjpvr.js} +2 -2
  367. package/dist/{tui-YpVnb92B.js → tui-DC-J_38B.js} +3 -3
  368. package/dist/{tui-DvN9w3dz.js → tui-DrLsIQv0.js} +3 -3
  369. package/dist/{tui-cli-B9yDRbjk.js → tui-cli-CAtLTzIA.js} +7 -7
  370. package/dist/{tui-cli-DoocDTJG.js → tui-cli-De9rMj3R.js} +7 -7
  371. package/dist/{update-cli-CUltMNat.js → update-cli-BEm9qrlV.js} +38 -38
  372. package/dist/{update-cli-DzokCnPQ.js → update-cli-CGSSTKTT.js} +36 -36
  373. package/dist/{update-runner-BOwq67Zr.js → update-runner-BMCWrif2.js} +1 -1
  374. package/dist/{update-runner-B2S-ijWA.js → update-runner-BUO6D2tP.js} +1 -1
  375. package/dist/{user-run-recording--_IhK-gN.js → user-run-recording-B1HujJiT.js} +2 -2
  376. package/dist/{validation-cli-C3tmcqKI.js → validation-cli-DHwddKWw.js} +29 -29
  377. package/dist/{validation-cli-BVO3QQdD.js → validation-cli-IGbMryvI.js} +30 -30
  378. package/dist/{with-timeout-BWtea6IA.js → with-timeout-BBKlU1es.js} +2 -2
  379. package/dist/{with-timeout-i0aj653V.js → with-timeout-CkVVKMZ5.js} +2 -2
  380. package/dist/{workspace-rViTESnr.js → workspace-Bj1Jegt-.js} +27 -27
  381. package/extensions/acpx/package.json +1 -1
  382. package/extensions/anthropic/package.json +1 -1
  383. package/extensions/bifrost/package.json +1 -1
  384. package/extensions/bluebubbles/package.json +1 -1
  385. package/extensions/copilot-proxy/package.json +1 -1
  386. package/extensions/deepgram/package.json +1 -1
  387. package/extensions/deepinfra/package.json +1 -1
  388. package/extensions/diagnostics-otel/package.json +1 -1
  389. package/extensions/diffs/package.json +1 -1
  390. package/extensions/discord/package.json +1 -1
  391. package/extensions/dream-cycle/package.json +1 -1
  392. package/extensions/elevenlabs/package.json +1 -1
  393. package/extensions/feishu/package.json +1 -1
  394. package/extensions/gemini-search/package.json +1 -1
  395. package/extensions/google/package.json +1 -1
  396. package/extensions/google-gemini-cli-auth/package.json +1 -1
  397. package/extensions/googlechat/package.json +1 -1
  398. package/extensions/grok-search/package.json +1 -1
  399. package/extensions/groq/package.json +1 -1
  400. package/extensions/imessage/package.json +1 -1
  401. package/extensions/irc/package.json +1 -1
  402. package/extensions/kimi-search/package.json +1 -1
  403. package/extensions/learning-core/package.json +1 -1
  404. package/extensions/line/package.json +1 -1
  405. package/extensions/llm-task/package.json +1 -1
  406. package/extensions/lobster/package.json +1 -1
  407. package/extensions/matrix/CHANGELOG.md +1 -1
  408. package/extensions/matrix/package.json +1 -1
  409. package/extensions/mattermost/package.json +1 -1
  410. package/extensions/memory-core/package.json +1 -1
  411. package/extensions/memory-lancedb/package.json +1 -1
  412. package/extensions/minimax/package.json +1 -1
  413. package/extensions/minimax-portal-auth/package.json +1 -1
  414. package/extensions/mistral/package.json +1 -1
  415. package/extensions/moonshot/package.json +1 -1
  416. package/extensions/msteams/CHANGELOG.md +1 -1
  417. package/extensions/msteams/package.json +1 -1
  418. package/extensions/nextcloud-talk/package.json +1 -1
  419. package/extensions/nostr/CHANGELOG.md +1 -1
  420. package/extensions/nostr/package.json +1 -1
  421. package/extensions/open-prose/package.json +1 -1
  422. package/extensions/openai/package.json +1 -1
  423. package/extensions/openai-realtime/package.json +1 -1
  424. package/extensions/openrouter/package.json +1 -1
  425. package/extensions/perplexity-search/package.json +1 -1
  426. package/extensions/searxng-search/package.json +1 -1
  427. package/extensions/signal/package.json +1 -1
  428. package/extensions/slack/package.json +1 -1
  429. package/extensions/synology-chat/package.json +1 -1
  430. package/extensions/telegram/package.json +1 -1
  431. package/extensions/tlon/package.json +1 -1
  432. package/extensions/twitch/CHANGELOG.md +1 -1
  433. package/extensions/twitch/package.json +1 -1
  434. package/extensions/ui-surfaces/package.json +1 -1
  435. package/extensions/voice-call/CHANGELOG.md +1 -1
  436. package/extensions/voice-call/package.json +1 -1
  437. package/extensions/whatsapp/package.json +1 -1
  438. package/extensions/zai/package.json +1 -1
  439. package/extensions/zalo/CHANGELOG.md +1 -1
  440. package/extensions/zalo/package.json +1 -1
  441. package/extensions/zalouser/CHANGELOG.md +1 -1
  442. package/extensions/zalouser/package.json +1 -1
  443. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import{D as e,k as t}from"./view-agents-DNhyzEgf.js";import{n,r}from"./view-chat-ByDyhnLw.js";import{I as i}from"./view-cron-BOjGaH8V.js";function a(e){switch(e){case`applied`:return`chip-ok`;case`rejected`:return`chip-danger`;case`quarantined`:return`chip-warn`;default:return``}}function o(o){return t`
1
+ import{D as e,k as t}from"./view-agents-DNhyzEgf.js";import{n,r}from"./view-chat-DCakYJRB.js";import{I as i}from"./view-cron-BOjGaH8V.js";function a(e){switch(e){case`applied`:return`chip-ok`;case`rejected`:return`chip-danger`;case`quarantined`:return`chip-warn`;default:return``}}function o(o){return t`
2
2
  <div class="proposals-sub-view" data-test-id="proposals-view">
3
3
  <div class="bulk-actions" data-test-id="bulk-actions">
4
4
  <button
@@ -145,4 +145,4 @@ import{D as e,k as t}from"./view-agents-DNhyzEgf.js";import{n,r}from"./view-chat
145
145
  ${n.subView===`lessons`?c(n):e}
146
146
  </div>
147
147
  `}export{l as renderLearning};
148
- //# sourceMappingURL=learning-BORaiTQ4.js.map
148
+ //# sourceMappingURL=learning-XJj58fEK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"learning-BORaiTQ4.js","names":[],"sources":["../../../ui/src/ui/views/learning.ts"],"sourcesContent":["import type { TemplateResult } from \"lit\";\nimport { html, nothing } from \"lit\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport { t } from \"../../i18n/index.ts\";\nimport type {\n LearningProposalRow,\n LearningLessonRow,\n LearningOverview,\n LearningProposalDetail,\n} from \"../controllers/learning.ts\";\nimport { toSanitizedMarkdownHtml } from \"../markdown.ts\";\n\nexport type LearningSubView = \"proposals\" | \"lessons\";\n\nexport type LearningProps = {\n subView: LearningSubView;\n loading: boolean;\n error: string | null;\n busy: boolean;\n overview: LearningOverview | null;\n proposals: LearningProposalRow[];\n lessons: LearningLessonRow[];\n selectedProposal: LearningProposalDetail | null;\n pendingApplyId: string | null;\n onSelectSubView: (v: LearningSubView) => void;\n onOpenProposal: (id: string) => void;\n onDecide: (id: string, action: \"reject\" | \"quarantine\") => void;\n onRequestApply: (id: string) => void;\n onConfirmApply: (id: string) => void;\n onCancelApply: () => void;\n onOpenLesson: (id: string) => void;\n searchQuery?: string;\n onSearch?: (query: string) => void;\n selectedProposalIds?: string[];\n onToggleProposal?: (id: string) => void;\n onBulkDecide?: (action: \"apply\" | \"reject\") => void;\n};\n\nfunction statusChipClass(status: string): string {\n switch (status) {\n case \"applied\":\n return \"chip-ok\";\n case \"rejected\":\n return \"chip-danger\";\n case \"quarantined\":\n return \"chip-warn\";\n default:\n return \"\";\n }\n}\n\nfunction renderProposals(props: LearningProps): import(\"lit\").TemplateResult {\n return html`\n <div class=\"proposals-sub-view\" data-test-id=\"proposals-view\">\n <div class=\"bulk-actions\" data-test-id=\"bulk-actions\">\n <button\n type=\"button\"\n data-test-id=\"bulk-approve\"\n ?disabled=${props.busy}\n @click=${() => props.onBulkDecide?.(\"apply\")}\n >\n ${t(\"learning.proposals.bulkApprove\")}\n </button>\n <button\n type=\"button\"\n data-test-id=\"bulk-reject\"\n ?disabled=${props.busy}\n @click=${() => props.onBulkDecide?.(\"reject\")}\n >\n ${t(\"learning.proposals.bulkReject\")}\n </button>\n </div>\n <div class=\"proposals-list\">\n ${props.proposals.map(\n (proposal) => html`\n <div\n class=\"proposal-row\"\n data-test-id=\"proposal-row\"\n role=\"button\"\n tabindex=\"0\"\n @click=${() => props.onOpenProposal(proposal.id)}\n @keydown=${(event: KeyboardEvent) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n props.onOpenProposal(proposal.id);\n }\n }}\n >\n <input\n type=\"checkbox\"\n data-test-id=\"proposal-select\"\n aria-label=${proposal.title}\n .checked=${props.selectedProposalIds?.includes(proposal.id) === true}\n @click=${(e: Event) => e.stopPropagation()}\n @change=${(e: Event) => {\n e.stopPropagation();\n props.onToggleProposal?.(proposal.id);\n }}\n />\n <span class=${`chip ${statusChipClass(proposal.status)}`}>${proposal.status}</span>\n <span class=\"proposal-title\">${proposal.title}</span>\n ${proposal.scopeLabel ? html`<span class=\"scope-label\">${proposal.scopeLabel.workspaceLabel}</span>` : nothing}\n ${proposal.findingCount !== undefined ? html`<span class=\"chip\">${proposal.findingCount} findings</span>` : nothing}\n ${\n props.pendingApplyId === proposal.id\n ? html`\n <button type=\"button\" data-test-id=\"confirm-apply\" ?disabled=${props.busy} @click=${(\n e: Event,\n ) => {\n e.stopPropagation();\n props.onConfirmApply(proposal.id);\n }}>\n ${t(\"learning.proposals.confirmApply\")}\n </button>\n <button type=\"button\" data-test-id=\"cancel-apply\" ?disabled=${props.busy} @click=${(\n e: Event,\n ) => {\n e.stopPropagation();\n props.onCancelApply();\n }}>\n ${t(\"learning.proposals.cancelApply\")}\n </button>\n `\n : html`\n <button type=\"button\" ?disabled=${props.busy} @click=${(e: Event) => {\n e.stopPropagation();\n props.onRequestApply(proposal.id);\n }}>\n ${t(\"learning.proposals.apply\")}\n </button>\n <button type=\"button\" ?disabled=${props.busy} @click=${(e: Event) => {\n e.stopPropagation();\n props.onDecide(proposal.id, \"reject\");\n }}>\n ${t(\"learning.proposals.reject\")}\n </button>\n <button type=\"button\" ?disabled=${props.busy} @click=${(e: Event) => {\n e.stopPropagation();\n props.onDecide(proposal.id, \"quarantine\");\n }}>\n ${t(\"learning.proposals.quarantine\")}\n </button>\n `\n }\n </div>\n `,\n )}\n </div>\n\n ${\n props.selectedProposal\n ? html`\n <div class=\"proposal-detail\" data-test-id=\"proposal-detail\">\n <div class=\"proposal-preview-label\">${t(\"learning.proposals.preview\")}</div>\n <div\n class=\"proposal-body\"\n data-test-id=\"proposal-preview\"\n >\n ${unsafeHTML(toSanitizedMarkdownHtml(props.selectedProposal.body))}\n </div>\n </div>\n `\n : nothing\n }\n </div>\n `;\n}\n\n// Mirrors isLessonActive in extensions/learning-core/src/lesson-record.ts. The gateway projects the\n// default list through listActiveLessons, so labelling any row with an invalidAt as \"inactive\"\n// contradicts the classification the operator was just served for future-dated windows.\nfunction isLessonActiveAt(\n lesson: { validFrom?: string; invalidAt?: string },\n now: string,\n): boolean {\n if (lesson.validFrom && lesson.validFrom > now) {\n return false;\n }\n return !lesson.invalidAt || lesson.invalidAt > now;\n}\n\nfunction renderLessons(props: LearningProps): TemplateResult {\n const nowIso = new Date().toISOString();\n const search = html`\n <label class=\"lesson-search\">\n <span>${t(\"learning.lessons.search\")}</span>\n <input\n type=\"search\"\n data-test-id=\"lesson-search\"\n placeholder=${t(\"learning.lessons.search\")}\n .value=${props.searchQuery ?? \"\"}\n @input=${(event: Event) => {\n const target = event.target as HTMLInputElement;\n props.onSearch?.(target.value);\n }}\n />\n </label>\n `;\n if (!props.lessons.length) {\n return html`\n ${search}\n <div class=\"empty-state\">${t(\"learning.lessons.empty\")}</div>\n `;\n }\n return html`\n ${search}\n <div class=\"lessons-sub-view\" data-test-id=\"lessons-view\">\n <div class=\"lessons-list\">\n ${props.lessons.map(\n (lesson) => html`\n <div\n class=\"lesson-row\"\n data-test-id=\"lesson-row\"\n role=\"button\"\n tabindex=\"0\"\n @click=${() => props.onOpenLesson(lesson.id)}\n @keydown=${(event: KeyboardEvent) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n props.onOpenLesson(lesson.id);\n }\n }}\n >\n <span class=\"chip chip-kind\">${lesson.kind}</span>\n <span class=\"chip chip-record-kind\" data-test-id=\"lesson-record-kind\">${t(`learning.lessons.recordKind.${lesson.recordKind ?? \"lesson\"}`)}</span>\n <span class=\"chip chip-durability\" data-test-id=\"lesson-durability\">${t(`learning.lessons.durability.${lesson.durability ?? \"decaying\"}`)}</span>\n <span class=\"chip chip-validity\" data-test-id=\"lesson-validity\"\n >${isLessonActiveAt(lesson, nowIso) ? t(\"learning.lessons.active\") : t(\"learning.lessons.inactive\")}</span>\n <span class=\"lesson-text\">${lesson.text}</span>\n ${lesson.scopeLabel ? html`<span class=\"scope-label\">${lesson.scopeLabel.workspaceLabel}</span>` : nothing}\n ${\n lesson.confidence !== undefined\n ? html`<span class=\"chip\">${Math.round(lesson.confidence * 100)}%</span>`\n : nothing\n }\n ${lesson.occurrences !== undefined ? html`<span class=\"chip\">${lesson.occurrences}×</span>` : nothing}\n ${\n lesson.distinctSessions !== undefined\n ? html`<span class=\"chip\">${lesson.distinctSessions} sessions</span>`\n : nothing\n }\n ${\n lesson.sessionId\n ? html`<a\n class=\"session-jump\"\n data-test-id=\"session-jump\"\n href=${`#session/${lesson.sessionId}`}\n title=${t(\"learning.lessons.jump\")}\n aria-label=${t(\"learning.lessons.jump\")}\n @click=${(event: Event) => event.stopPropagation()}\n >${lesson.sessionId}</a>`\n : nothing\n }\n </div>\n `,\n )}\n </div>\n </div>\n `;\n}\n\nexport function renderLearning(props: LearningProps): import(\"lit\").TemplateResult {\n return html`\n <div class=\"learning-view\">\n <div class=\"tab-bar\">\n <button\n @click=${() => props.onSelectSubView(\"proposals\")}\n class=${props.subView === \"proposals\" ? \"tab-btn tab-btn--active\" : \"tab-btn\"}\n >\n ${t(\"learning.tabs.proposals\")}\n </button>\n <button\n @click=${() => props.onSelectSubView(\"lessons\")}\n class=${props.subView === \"lessons\" ? \"tab-btn tab-btn--active\" : \"tab-btn\"}\n >\n ${t(\"learning.tabs.lessons\")}\n </button>\n </div>\n\n ${props.error ? html`<div class=\"error-banner\">${props.error}</div>` : nothing} ${\n props.loading ? html`<div class=\"loading\">${t(\"learning.loading\")}</div>` : nothing\n }\n ${props.subView === \"proposals\" ? renderProposals(props) : nothing}\n ${props.subView === \"lessons\" ? renderLessons(props) : nothing}\n </div>\n `;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"learning-XJj58fEK.js","names":[],"sources":["../../../ui/src/ui/views/learning.ts"],"sourcesContent":["import type { TemplateResult } from \"lit\";\nimport { html, nothing } from \"lit\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport { t } from \"../../i18n/index.ts\";\nimport type {\n LearningProposalRow,\n LearningLessonRow,\n LearningOverview,\n LearningProposalDetail,\n} from \"../controllers/learning.ts\";\nimport { toSanitizedMarkdownHtml } from \"../markdown.ts\";\n\nexport type LearningSubView = \"proposals\" | \"lessons\";\n\nexport type LearningProps = {\n subView: LearningSubView;\n loading: boolean;\n error: string | null;\n busy: boolean;\n overview: LearningOverview | null;\n proposals: LearningProposalRow[];\n lessons: LearningLessonRow[];\n selectedProposal: LearningProposalDetail | null;\n pendingApplyId: string | null;\n onSelectSubView: (v: LearningSubView) => void;\n onOpenProposal: (id: string) => void;\n onDecide: (id: string, action: \"reject\" | \"quarantine\") => void;\n onRequestApply: (id: string) => void;\n onConfirmApply: (id: string) => void;\n onCancelApply: () => void;\n onOpenLesson: (id: string) => void;\n searchQuery?: string;\n onSearch?: (query: string) => void;\n selectedProposalIds?: string[];\n onToggleProposal?: (id: string) => void;\n onBulkDecide?: (action: \"apply\" | \"reject\") => void;\n};\n\nfunction statusChipClass(status: string): string {\n switch (status) {\n case \"applied\":\n return \"chip-ok\";\n case \"rejected\":\n return \"chip-danger\";\n case \"quarantined\":\n return \"chip-warn\";\n default:\n return \"\";\n }\n}\n\nfunction renderProposals(props: LearningProps): import(\"lit\").TemplateResult {\n return html`\n <div class=\"proposals-sub-view\" data-test-id=\"proposals-view\">\n <div class=\"bulk-actions\" data-test-id=\"bulk-actions\">\n <button\n type=\"button\"\n data-test-id=\"bulk-approve\"\n ?disabled=${props.busy}\n @click=${() => props.onBulkDecide?.(\"apply\")}\n >\n ${t(\"learning.proposals.bulkApprove\")}\n </button>\n <button\n type=\"button\"\n data-test-id=\"bulk-reject\"\n ?disabled=${props.busy}\n @click=${() => props.onBulkDecide?.(\"reject\")}\n >\n ${t(\"learning.proposals.bulkReject\")}\n </button>\n </div>\n <div class=\"proposals-list\">\n ${props.proposals.map(\n (proposal) => html`\n <div\n class=\"proposal-row\"\n data-test-id=\"proposal-row\"\n role=\"button\"\n tabindex=\"0\"\n @click=${() => props.onOpenProposal(proposal.id)}\n @keydown=${(event: KeyboardEvent) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n props.onOpenProposal(proposal.id);\n }\n }}\n >\n <input\n type=\"checkbox\"\n data-test-id=\"proposal-select\"\n aria-label=${proposal.title}\n .checked=${props.selectedProposalIds?.includes(proposal.id) === true}\n @click=${(e: Event) => e.stopPropagation()}\n @change=${(e: Event) => {\n e.stopPropagation();\n props.onToggleProposal?.(proposal.id);\n }}\n />\n <span class=${`chip ${statusChipClass(proposal.status)}`}>${proposal.status}</span>\n <span class=\"proposal-title\">${proposal.title}</span>\n ${proposal.scopeLabel ? html`<span class=\"scope-label\">${proposal.scopeLabel.workspaceLabel}</span>` : nothing}\n ${proposal.findingCount !== undefined ? html`<span class=\"chip\">${proposal.findingCount} findings</span>` : nothing}\n ${\n props.pendingApplyId === proposal.id\n ? html`\n <button type=\"button\" data-test-id=\"confirm-apply\" ?disabled=${props.busy} @click=${(\n e: Event,\n ) => {\n e.stopPropagation();\n props.onConfirmApply(proposal.id);\n }}>\n ${t(\"learning.proposals.confirmApply\")}\n </button>\n <button type=\"button\" data-test-id=\"cancel-apply\" ?disabled=${props.busy} @click=${(\n e: Event,\n ) => {\n e.stopPropagation();\n props.onCancelApply();\n }}>\n ${t(\"learning.proposals.cancelApply\")}\n </button>\n `\n : html`\n <button type=\"button\" ?disabled=${props.busy} @click=${(e: Event) => {\n e.stopPropagation();\n props.onRequestApply(proposal.id);\n }}>\n ${t(\"learning.proposals.apply\")}\n </button>\n <button type=\"button\" ?disabled=${props.busy} @click=${(e: Event) => {\n e.stopPropagation();\n props.onDecide(proposal.id, \"reject\");\n }}>\n ${t(\"learning.proposals.reject\")}\n </button>\n <button type=\"button\" ?disabled=${props.busy} @click=${(e: Event) => {\n e.stopPropagation();\n props.onDecide(proposal.id, \"quarantine\");\n }}>\n ${t(\"learning.proposals.quarantine\")}\n </button>\n `\n }\n </div>\n `,\n )}\n </div>\n\n ${\n props.selectedProposal\n ? html`\n <div class=\"proposal-detail\" data-test-id=\"proposal-detail\">\n <div class=\"proposal-preview-label\">${t(\"learning.proposals.preview\")}</div>\n <div\n class=\"proposal-body\"\n data-test-id=\"proposal-preview\"\n >\n ${unsafeHTML(toSanitizedMarkdownHtml(props.selectedProposal.body))}\n </div>\n </div>\n `\n : nothing\n }\n </div>\n `;\n}\n\n// Mirrors isLessonActive in extensions/learning-core/src/lesson-record.ts. The gateway projects the\n// default list through listActiveLessons, so labelling any row with an invalidAt as \"inactive\"\n// contradicts the classification the operator was just served for future-dated windows.\nfunction isLessonActiveAt(\n lesson: { validFrom?: string; invalidAt?: string },\n now: string,\n): boolean {\n if (lesson.validFrom && lesson.validFrom > now) {\n return false;\n }\n return !lesson.invalidAt || lesson.invalidAt > now;\n}\n\nfunction renderLessons(props: LearningProps): TemplateResult {\n const nowIso = new Date().toISOString();\n const search = html`\n <label class=\"lesson-search\">\n <span>${t(\"learning.lessons.search\")}</span>\n <input\n type=\"search\"\n data-test-id=\"lesson-search\"\n placeholder=${t(\"learning.lessons.search\")}\n .value=${props.searchQuery ?? \"\"}\n @input=${(event: Event) => {\n const target = event.target as HTMLInputElement;\n props.onSearch?.(target.value);\n }}\n />\n </label>\n `;\n if (!props.lessons.length) {\n return html`\n ${search}\n <div class=\"empty-state\">${t(\"learning.lessons.empty\")}</div>\n `;\n }\n return html`\n ${search}\n <div class=\"lessons-sub-view\" data-test-id=\"lessons-view\">\n <div class=\"lessons-list\">\n ${props.lessons.map(\n (lesson) => html`\n <div\n class=\"lesson-row\"\n data-test-id=\"lesson-row\"\n role=\"button\"\n tabindex=\"0\"\n @click=${() => props.onOpenLesson(lesson.id)}\n @keydown=${(event: KeyboardEvent) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n props.onOpenLesson(lesson.id);\n }\n }}\n >\n <span class=\"chip chip-kind\">${lesson.kind}</span>\n <span class=\"chip chip-record-kind\" data-test-id=\"lesson-record-kind\">${t(`learning.lessons.recordKind.${lesson.recordKind ?? \"lesson\"}`)}</span>\n <span class=\"chip chip-durability\" data-test-id=\"lesson-durability\">${t(`learning.lessons.durability.${lesson.durability ?? \"decaying\"}`)}</span>\n <span class=\"chip chip-validity\" data-test-id=\"lesson-validity\"\n >${isLessonActiveAt(lesson, nowIso) ? t(\"learning.lessons.active\") : t(\"learning.lessons.inactive\")}</span>\n <span class=\"lesson-text\">${lesson.text}</span>\n ${lesson.scopeLabel ? html`<span class=\"scope-label\">${lesson.scopeLabel.workspaceLabel}</span>` : nothing}\n ${\n lesson.confidence !== undefined\n ? html`<span class=\"chip\">${Math.round(lesson.confidence * 100)}%</span>`\n : nothing\n }\n ${lesson.occurrences !== undefined ? html`<span class=\"chip\">${lesson.occurrences}×</span>` : nothing}\n ${\n lesson.distinctSessions !== undefined\n ? html`<span class=\"chip\">${lesson.distinctSessions} sessions</span>`\n : nothing\n }\n ${\n lesson.sessionId\n ? html`<a\n class=\"session-jump\"\n data-test-id=\"session-jump\"\n href=${`#session/${lesson.sessionId}`}\n title=${t(\"learning.lessons.jump\")}\n aria-label=${t(\"learning.lessons.jump\")}\n @click=${(event: Event) => event.stopPropagation()}\n >${lesson.sessionId}</a>`\n : nothing\n }\n </div>\n `,\n )}\n </div>\n </div>\n `;\n}\n\nexport function renderLearning(props: LearningProps): import(\"lit\").TemplateResult {\n return html`\n <div class=\"learning-view\">\n <div class=\"tab-bar\">\n <button\n @click=${() => props.onSelectSubView(\"proposals\")}\n class=${props.subView === \"proposals\" ? \"tab-btn tab-btn--active\" : \"tab-btn\"}\n >\n ${t(\"learning.tabs.proposals\")}\n </button>\n <button\n @click=${() => props.onSelectSubView(\"lessons\")}\n class=${props.subView === \"lessons\" ? \"tab-btn tab-btn--active\" : \"tab-btn\"}\n >\n ${t(\"learning.tabs.lessons\")}\n </button>\n </div>\n\n ${props.error ? html`<div class=\"error-banner\">${props.error}</div>` : nothing} ${\n props.loading ? html`<div class=\"loading\">${t(\"learning.loading\")}</div>` : nothing\n }\n ${props.subView === \"proposals\" ? renderProposals(props) : nothing}\n ${props.subView === \"lessons\" ? renderLessons(props) : nothing}\n </div>\n `;\n}\n"],"mappings":"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"}
@@ -78,8 +78,8 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
78
78
  <span class="chat-copy-btn__icon-check">${d.check}</span>
79
79
  </span>
80
80
  </button>
81
- `}function Ur(e){return Hr({text:()=>e,label:Lr})}function Wr(e){let t=e,n=typeof t.role==`string`?t.role:`unknown`,r=typeof t.toolCallId==`string`||typeof t.tool_call_id==`string`,i=t.content,a=Array.isArray(i)?i:null,o=Array.isArray(a)&&a.some(e=>{let t=e,n=(typeof t.type==`string`?t.type:``).toLowerCase();return n===`toolresult`||n===`tool_result`}),s=typeof t.toolName==`string`||typeof t.tool_name==`string`;(r||o||s)&&(n=`toolResult`);let c=[];typeof t.content==`string`?c=[{type:`text`,text:t.content}]:Array.isArray(t.content)?c=t.content.map(e=>({type:e.type||`text`,text:e.text,name:e.name,args:e.args||e.arguments})):typeof t.text==`string`&&(c=[{type:`text`,text:t.text}]);let l=typeof t.timestamp==`number`?t.timestamp:Date.now(),u=typeof t.id==`string`?t.id:void 0;return(n===`user`||n===`User`)&&(c=c.map(e=>e.type===`text`&&typeof e.text==`string`?{...e,text:ne(e.text)}:e)),{role:n,content:c,timestamp:l,id:u}}function Gr(e){let t=e.toLowerCase();return e===`user`||e===`User`?e:e===`assistant`?`assistant`:e===`system`?`system`:t===`toolresult`||t===`tool_result`||t===`tool`||t===`function`?`tool`:e}function Kr(e){let t=e,n=typeof t.role==`string`?t.role.toLowerCase():``;return n===`toolresult`||n===`tool_result`}function qr(e){return e&&typeof e==`object`?e:void 0}function Jr(e){return(e??`tool`).trim()}function Yr(e){let t=e.replace(/_/g,` `).trim();return t?t.split(/\s+/).map(e=>e.length<=2&&e.toUpperCase()===e?e:`${e.at(0)?.toUpperCase()??``}${e.slice(1)}`).join(` `):`Tool`}function Xr(e){let t=e?.trim();if(t)return t.replace(/_/g,` `)}function Zr(e){if(!e||typeof e!=`object`)return;let t=e.action;if(typeof t==`string`)return t.trim()||void 0}function Qr(e){return ki({toolKey:e.toolKey,args:e.args,meta:e.meta,action:Zr(e.args),spec:e.spec,fallbackDetailKeys:e.fallbackDetailKeys,detailMode:e.detailMode,detailCoerce:e.detailCoerce,detailMaxEntries:e.detailMaxEntries,detailFormatKey:e.detailFormatKey})}function $r(e,t={}){let n=t.maxStringChars??160,r=t.maxArrayEntries??3;if(e!=null){if(typeof e==`string`){let t=e.trim();if(!t)return;let r=t.split(/\r?\n/)[0]?.trim()??``;return r?r.length>n?`${r.slice(0,Math.max(0,n-3))}…`:r:void 0}if(typeof e==`boolean`)return!e&&!t.includeFalse?void 0:e?`true`:`false`;if(typeof e==`number`)return Number.isFinite(e)?e===0&&!t.includeZero?void 0:String(e):t.includeNonFinite?String(e):void 0;if(Array.isArray(e)){let n=e.map(e=>$r(e,t)).filter(e=>!!e);if(n.length===0)return;let i=n.slice(0,r).join(`, `);return n.length>r?`${i}…`:i}}}function ei(e,t){if(!e||typeof e!=`object`)return;let n=e;for(let e of t.split(`.`)){if(!e||!n||typeof n!=`object`)return;n=n[e]}return n}function ti(e){let t=qr(e);if(t)for(let e of[t.path,t.file_path,t.filePath]){if(typeof e!=`string`)continue;let t=e.trim();if(t)return t}}function ni(e){let t=qr(e);if(!t)return;let n=ti(t);if(!n)return;let r=typeof t.offset==`number`&&Number.isFinite(t.offset)?Math.floor(t.offset):void 0,i=typeof t.limit==`number`&&Number.isFinite(t.limit)?Math.floor(t.limit):void 0,a=r===void 0?void 0:Math.max(1,r),o=i===void 0?void 0:Math.max(1,i);return a!==void 0&&o!==void 0?`${o===1?`line`:`lines`} ${a}-${a+o-1} from ${n}`:a===void 0?o===void 0?`from ${n}`:`first ${o} ${o===1?`line`:`lines`} of ${n}`:`from line ${a} in ${n}`}function ri(e,t){let n=qr(t);if(!n)return;let r=ti(n)??(typeof n.url==`string`?n.url.trim():void 0);if(!r)return;if(e===`attach`)return`from ${r}`;let i=e===`edit`?`in`:`to`,a=typeof n.content==`string`?n.content:typeof n.newText==`string`?n.newText:typeof n.new_string==`string`?n.new_string:void 0;return a&&a.length>0?`${i} ${r} (${a.length} chars)`:`${i} ${r}`}function ii(e){let t=qr(e);if(!t)return;let n=typeof t.query==`string`?t.query.trim():void 0,r=typeof t.count==`number`&&Number.isFinite(t.count)&&t.count>0?Math.floor(t.count):void 0;if(n)return r===void 0?`for "${n}"`:`for "${n}" (top ${r})`}function ai(e){let t=qr(e);if(!t)return;let n=typeof t.url==`string`?t.url.trim():void 0;if(!n)return;let r=typeof t.extractMode==`string`?t.extractMode.trim():void 0,i=typeof t.maxChars==`number`&&Number.isFinite(t.maxChars)&&t.maxChars>0?Math.floor(t.maxChars):void 0,a=[r?`mode ${r}`:void 0,i===void 0?void 0:`max ${i} chars`].filter(e=>!!e).join(`, `);return a?`from ${n} (${a})`:`from ${n}`}function oi(e){if(!e)return e;let t=e.trim();return t.length>=2&&(t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`))?t.slice(1,-1).trim():t}function si(e,t=48){if(!e)return[];let n=[],r=``,i,a=!1;for(let o=0;o<e.length;o+=1){let s=e[o];if(a){r+=s,a=!1;continue}if(s===`\\`){a=!0;continue}if(i){s===i?i=void 0:r+=s;continue}if(s===`"`||s===`'`){i=s;continue}if(/\s/.test(s)){if(!r)continue;if(n.push(r),n.length>=t)return n;r=``;continue}r+=s}return r&&n.push(r),n}function ci(e){if(!e)return;let t=oi(e)??e;return(t.split(/[/]/).at(-1)??t).trim().toLowerCase()}function li(e,t){let n=new Set(t);for(let r=0;r<e.length;r+=1){let i=e[r];if(i){if(n.has(i)){let t=e[r+1];if(t&&!t.startsWith(`-`))return t;continue}for(let e of t)if(e.startsWith(`--`)&&i.startsWith(`${e}=`))return i.slice(e.length+1)}}}function ui(e,t=1,n=[]){let r=[],i=new Set(n);for(let n=t;n<e.length;n+=1){let t=e[n];if(t){if(t===`--`){for(let t=n+1;t<e.length;t+=1){let n=e[t];n&&r.push(n)}break}if(t.startsWith(`--`)){if(t.includes(`=`))continue;i.has(t)&&(n+=1);continue}if(t.startsWith(`-`)){i.has(t)&&(n+=1);continue}r.push(t)}}return r}function $(e,t=1,n=[]){return ui(e,t,n)[0]}function di(e){if(e.length===0)return e;let t=0;if(ci(e[0])===`env`){for(t=1;t<e.length;){let n=e[t];if(!n)break;if(n.startsWith(`-`)){t+=1;continue}if(/^[A-Za-z_][A-Za-z0-9_]*=/.test(n)){t+=1;continue}break}return e.slice(t)}for(;t<e.length&&/^[A-Za-z_][A-Za-z0-9_]*=/.test(e[t]);)t+=1;return e.slice(t)}function fi(e){let t=si(e,10);if(t.length<3)return e;let n=ci(t[0]);if(!(n===`bash`||n===`sh`||n===`zsh`||n===`fish`))return e;let r=t.findIndex((e,t)=>t>0&&(e===`-c`||e===`-lc`||e===`-ic`));if(r===-1)return e;let i=t.slice(r+1).join(` `).trim();return i?oi(i)??e:e}function pi(e,t){let n,r=!1;for(let i=0;i<e.length;i+=1){let a=e[i];if(r){r=!1;continue}if(a===`\\`){r=!0;continue}if(n){a===n&&(n=void 0);continue}if(a===`"`||a===`'`){n=a;continue}if(t(a,i)===!1)return}}function mi(e){let t=[],n=0;return pi(e,(r,i)=>r===`;`?(t.push(e.slice(n,i)),n=i+1,!0):(r===`&`||r===`|`)&&e[i+1]===r?(t.push(e.slice(n,i)),n=i+2,!0):!0),t.push(e.slice(n)),t.map(e=>e.trim()).filter(e=>e.length>0)}function hi(e){let t=[],n=0;return pi(e,(r,i)=>(r===`|`&&e[i-1]!==`|`&&e[i+1]!==`|`&&(t.push(e.slice(n,i)),n=i+1),!0)),t.push(e.slice(n)),t.map(e=>e.trim()).filter(e=>e.length>0)}function gi(e){let t=si(e,3),n=ci(t[0]);if(n===`cd`||n===`pushd`)return t[1]||void 0}function _i(e){let t=ci(si(e,2)[0]);return t===`cd`||t===`pushd`||t===`popd`}function vi(e){return ci(si(e,2)[0])===`popd`}function yi(e){let t=e.trim(),n;for(let e=0;e<4;e+=1){let r;pi(t,(e,n)=>{if(e===`&`&&t[n+1]===`&`)return r={index:n,length:2},!1;if(e===`|`&&t[n+1]===`|`)return r={index:n,length:2,isOr:!0},!1;if(e===`;`||e===`
82
- `)return r={index:n,length:1},!1});let i=(r?t.slice(0,r.index):t).trim(),a=(r?!r.isOr:e>0)&&_i(i);if(!(i.startsWith(`set `)||i.startsWith(`export `)||i.startsWith(`unset `)||a)||(a&&(n=vi(i)?void 0:gi(i)??n),t=r?t.slice(r.index+r.length).trimStart():``,!t))break}return{command:t.trim(),chdirPath:n}}function bi(e){if(e.length===0)return`run command`;let t=ci(e[0])??`command`;if(t===`git`){let t=new Set([`-C`,`-c`,`--git-dir`,`--work-tree`,`--namespace`,`--config-env`]),n=li(e,[`-C`]),r;for(let n=1;n<e.length;n+=1){let i=e[n];if(i){if(i===`--`){r=$(e,n+1);break}if(i.startsWith(`--`)){if(i.includes(`=`))continue;t.has(i)&&(n+=1);continue}if(i.startsWith(`-`)){t.has(i)&&(n+=1);continue}r=i;break}}let i={status:`check git status`,diff:`check git diff`,log:`view git history`,show:`show git object`,branch:`list git branches`,checkout:`switch git branch`,switch:`switch git branch`,commit:`create git commit`,pull:`pull git changes`,push:`push git changes`,fetch:`fetch git changes`,merge:`merge git changes`,rebase:`rebase git branch`,add:`stage git changes`,restore:`restore git files`,reset:`reset git state`,stash:`stash git changes`};return r&&i[r]?i[r]:!r||r.startsWith(`/`)||r.startsWith(`~`)||r.includes(`/`)?n?`run git command in ${n}`:`run git command`:`run git ${r}`}if(t===`grep`||t===`rg`||t===`ripgrep`){let t=ui(e,1,[`-e`,`--regexp`,`-f`,`--file`,`-m`,`--max-count`,`-A`,`--after-context`,`-B`,`--before-context`,`-C`,`--context`]),n=li(e,[`-e`,`--regexp`])??t[0],r=t.length>1?t.at(-1):void 0;return n?r?`search "${n}" in ${r}`:`search "${n}"`:`search text`}if(t===`find`){let t=e[1]&&!e[1].startsWith(`-`)?e[1]:`.`,n=li(e,[`-name`,`-iname`]);return n?`find files named "${n}" in ${t}`:`find files in ${t}`}if(t===`ls`){let t=$(e,1);return t?`list files in ${t}`:`list files`}if(t===`head`||t===`tail`){let n=li(e,[`-n`,`--lines`])??e.slice(1).find(e=>/^-\d+$/.test(e))?.slice(1),r=ui(e,1,[`-n`,`--lines`]),i=r.at(-1);i&&/^\d+$/.test(i)&&r.length===1&&(i=void 0);let a=t===`head`?`first`:`last`,o=n===`1`?`line`:`lines`;return n&&i?`show ${a} ${n} ${o} of ${i}`:n?`show ${a} ${n} ${o}`:i?`show ${i}`:`show ${t} output`}if(t===`cat`){let t=$(e,1);return t?`show ${t}`:`show output`}if(t===`sed`){let t=li(e,[`-e`,`--expression`]),n=ui(e,1,[`-e`,`--expression`,`-f`,`--file`]),r=t??n[0],i=t?n[0]:n[1];if(r){let e=(oi(r)??r).replace(/\s+/g,``),t=e.match(/^([0-9]+),([0-9]+)p$/);if(t)return i?`print lines ${t[1]}-${t[2]} from ${i}`:`print lines ${t[1]}-${t[2]}`;let n=e.match(/^([0-9]+)p$/);if(n)return i?`print line ${n[1]} from ${i}`:`print line ${n[1]}`}return i?`run sed on ${i}`:`run sed transform`}if(t===`printf`||t===`echo`)return`print text`;if(t===`cp`||t===`mv`){let n=ui(e,1,[`-t`,`--target-directory`,`-S`,`--suffix`]),r=n[0],i=n[1],a=t===`cp`?`copy`:`move`;return r&&i?`${a} ${r} to ${i}`:r?`${a} ${r}`:`${a} files`}if(t===`rm`){let t=$(e,1);return t?`remove ${t}`:`remove files`}if(t===`mkdir`){let t=$(e,1);return t?`create folder ${t}`:`create folder`}if(t===`touch`){let t=$(e,1);return t?`create file ${t}`:`create file`}if(t===`curl`||t===`wget`){let t=e.find(e=>/^https?:\/\//i.test(e));return t?`fetch ${t}`:`fetch url`}if(t===`npm`||t===`pnpm`||t===`yarn`||t===`bun`){let n=ui(e,1,[`--prefix`,`-C`,`--cwd`,`--config`]),r=n[0]??`command`;return{install:`install dependencies`,test:`run tests`,build:`run build`,start:`start app`,lint:`run lint`,run:n[1]?`run ${n[1]}`:`run script`}[r]??`run ${t} ${r}`}if(t===`node`||t===`python`||t===`python3`||t===`ruby`||t===`php`){if(e.slice(1).find(e=>e.startsWith(`<<`)))return`run ${t} inline script (heredoc)`;if((t===`node`?li(e,[`-e`,`--eval`]):t===`python`||t===`python3`?li(e,[`-c`]):void 0)!==void 0)return`run ${t} inline script`;let n=$(e,1,t===`node`?[`-e`,`--eval`,`-m`]:[`-c`,`-e`,`--eval`,`-m`]);return n?t===`node`?`${e.includes(`--check`)||e.includes(`-c`)?`check js syntax for`:`run node script`} ${n}`:`run ${t} ${n}`:`run ${t}`}if(t===`openclaw`){let t=$(e,1);return t?`run openclaw ${t}`:`run openclaw`}let n=$(e,1);return!n||n.length>48?`run ${t}`:/^[A-Za-z0-9._/-]+$/.test(n)?`run ${t} ${n}`:`run ${t}`}function xi(e){let t=hi(e);return t.length>1?`${bi(di(si(t[0])))} -> ${bi(di(si(t[t.length-1])))}${t.length>2?` (+${t.length-2} steps)`:``}`:bi(di(si(e)))}function Si(e){let{command:t,chdirPath:n}=yi(e);if(!t)return n?{text:``,chdirPath:n}:void 0;let r=mi(t);if(r.length===0)return;let i=r.map(e=>xi(e));return{text:i.length===1?i[0]:i.join(` → `),chdirPath:n,allGeneric:i.every(e=>wi(e))}}var Ci=`check git.view git.show git.list git.switch git.create git.pull git.push git.fetch git.merge git.rebase git.stage git.restore git.reset git.stash git.search .find files.list files.show first.show last.print line.print text.copy .move .remove .create folder.create file.fetch http.install dependencies.run tests.run build.start app.run lint.run openclaw.run node script.run node .run python.run ruby.run php.run sed.run git .run npm .run pnpm .run yarn .run bun .check js syntax`.split(`.`);function wi(e){return e===`run command`?!0:e.startsWith(`run `)?!Ci.some(t=>e.startsWith(t)):!1}function Ti(e,t=120){let n=e.replace(/\s*\n\s*/g,` `).replace(/\s{2,}/g,` `).trim();return n.length<=t?n:`${n.slice(0,Math.max(0,t-1))}…`}function Ei(e){let t=qr(e);if(!t)return;let n=typeof t.command==`string`?t.command.trim():void 0;if(!n)return;let r=fi(n),i=Si(r)??Si(n),a=i?.text||`run command`,o=(typeof t.workdir==`string`?t.workdir:typeof t.cwd==`string`?t.cwd:void 0)?.trim()||i?.chdirPath||void 0,s=Ti(r);if(i?.allGeneric!==!1&&wi(a))return o?`${s} (in ${o})`:s;let c=o?`${a} (in ${o})`:a;return s&&s!==c&&s!==a?`${c}\n\n\`${s}\``:c}function Di(e,t){if(!(!e||!t))return e.actions?.[t]??void 0}function Oi(e,t,n){if(n.mode===`first`){for(let r of t){let t=$r(ei(e,r),n.coerce);if(t)return t}return}let r=[];for(let i of t){let t=$r(ei(e,i),n.coerce);t&&r.push({label:n.formatKey?n.formatKey(i):i,value:t})}if(r.length===0)return;if(r.length===1)return r[0].value;let i=new Set,a=[];for(let e of r){let t=`${e.label}:${e.value}`;i.has(t)||(i.add(t),a.push(e))}if(a.length!==0)return a.slice(0,n.maxEntries??8).map(e=>`${e.label} ${e.value}`).join(` · `)}function ki(e){let t=Di(e.spec,e.action),n=e.toolKey===`web_search`?`search`:e.toolKey===`web_fetch`?`fetch`:e.toolKey.replace(/_/g,` `).replace(/\./g,` `),r=Xr(t?.label??e.action??n),i;e.toolKey===`exec`&&(i=Ei(e.args)),!i&&e.toolKey===`read`&&(i=ni(e.args)),!i&&(e.toolKey===`write`||e.toolKey===`edit`||e.toolKey===`attach`)&&(i=ri(e.toolKey,e.args)),!i&&e.toolKey===`web_search`&&(i=ii(e.args)),!i&&e.toolKey===`web_fetch`&&(i=ai(e.args));let a=t?.detailKeys??e.spec?.detailKeys??e.fallbackDetailKeys??[];return!i&&a.length>0&&(i=Oi(e.args,a,{mode:e.detailMode,coerce:e.detailCoerce,maxEntries:e.detailMaxEntries,formatKey:e.detailFormatKey})),!i&&e.meta&&(i=e.meta),{verb:r,detail:i}}function Ai(e,t={}){if(!e)return;let n=e.includes(` · `)?e.split(` · `).map(e=>e.trim()).filter(e=>e.length>0).join(`, `):e;if(n)return t.prefixWithWith?`with ${n}`:n}var ji={version:1,fallback:{emoji:`🧩`,detailKeys:[`command`,`path`,`url`,`targetUrl`,`targetId`,`ref`,`element`,`node`,`nodeId`,`id`,`requestId`,`to`,`channelId`,`guildId`,`userId`,`name`,`query`,`pattern`,`messageId`]},tools:{bash:{emoji:`🛠️`,title:`Bash`,detailKeys:[`command`]},process:{emoji:`🧰`,title:`Process`,detailKeys:[`sessionId`]},read:{emoji:`📖`,title:`Read`,detailKeys:[`path`]},write:{emoji:`✍️`,title:`Write`,detailKeys:[`path`]},edit:{emoji:`📝`,title:`Edit`,detailKeys:[`path`]},attach:{emoji:`📎`,title:`Attach`,detailKeys:[`path`,`url`,`fileName`]},browser:{emoji:`🌐`,title:`Browser`,actions:{status:{label:`status`},start:{label:`start`},stop:{label:`stop`},tabs:{label:`tabs`},open:{label:`open`,detailKeys:[`targetUrl`]},focus:{label:`focus`,detailKeys:[`targetId`]},close:{label:`close`,detailKeys:[`targetId`]},snapshot:{label:`snapshot`,detailKeys:[`targetUrl`,`targetId`,`ref`,`element`,`format`]},screenshot:{label:`screenshot`,detailKeys:[`targetUrl`,`targetId`,`ref`,`element`]},navigate:{label:`navigate`,detailKeys:[`targetUrl`,`targetId`]},console:{label:`console`,detailKeys:[`level`,`targetId`]},pdf:{label:`pdf`,detailKeys:[`targetId`]},upload:{label:`upload`,detailKeys:[`paths`,`ref`,`inputRef`,`element`,`targetId`]},dialog:{label:`dialog`,detailKeys:[`accept`,`promptText`,`targetId`]},act:{label:`act`,detailKeys:[`request.kind`,`request.ref`,`request.selector`,`request.text`,`request.value`]}}},canvas:{emoji:`🖼️`,title:`Canvas`,actions:{present:{label:`present`,detailKeys:[`target`,`node`,`nodeId`]},hide:{label:`hide`,detailKeys:[`node`,`nodeId`]},navigate:{label:`navigate`,detailKeys:[`url`,`node`,`nodeId`]},eval:{label:`eval`,detailKeys:[`javaScript`,`node`,`nodeId`]},snapshot:{label:`snapshot`,detailKeys:[`format`,`node`,`nodeId`]},a2ui_push:{label:`A2UI push`,detailKeys:[`jsonlPath`,`node`,`nodeId`]},a2ui_reset:{label:`A2UI reset`,detailKeys:[`node`,`nodeId`]}}},nodes:{emoji:`📱`,title:`Nodes`,actions:{status:{label:`status`},describe:{label:`describe`,detailKeys:[`node`,`nodeId`]},pending:{label:`pending`},approve:{label:`approve`,detailKeys:[`requestId`]},reject:{label:`reject`,detailKeys:[`requestId`]},notify:{label:`notify`,detailKeys:[`node`,`nodeId`,`title`,`body`]},camera_snap:{label:`camera snap`,detailKeys:[`node`,`nodeId`,`facing`,`deviceId`]},camera_list:{label:`camera list`,detailKeys:[`node`,`nodeId`]},camera_clip:{label:`camera clip`,detailKeys:[`node`,`nodeId`,`facing`,`duration`,`durationMs`]},screen_record:{label:`screen record`,detailKeys:[`node`,`nodeId`,`duration`,`durationMs`,`fps`,`screenIndex`]}}},cron:{emoji:`⏰`,title:`Cron`,actions:{status:{label:`status`},list:{label:`list`},add:{label:`add`,detailKeys:[`job.name`,`job.id`,`job.schedule`,`job.cron`]},update:{label:`update`,detailKeys:[`id`]},remove:{label:`remove`,detailKeys:[`id`]},run:{label:`run`,detailKeys:[`id`]},runs:{label:`runs`,detailKeys:[`id`]},wake:{label:`wake`,detailKeys:[`text`,`mode`]}}},gateway:{emoji:`🔌`,title:`Gateway`,actions:{restart:{label:`restart`,detailKeys:[`reason`,`delayMs`]}}},whatsapp_login:{emoji:`🟢`,title:`WhatsApp Login`,actions:{start:{label:`start`},wait:{label:`wait`}}},discord:{emoji:`💬`,title:`Discord`,actions:{react:{label:`react`,detailKeys:[`channelId`,`messageId`,`emoji`]},reactions:{label:`reactions`,detailKeys:[`channelId`,`messageId`]},sticker:{label:`sticker`,detailKeys:[`to`,`stickerIds`]},poll:{label:`poll`,detailKeys:[`question`,`to`]},permissions:{label:`permissions`,detailKeys:[`channelId`]},readMessages:{label:`read messages`,detailKeys:[`channelId`,`limit`]},sendMessage:{label:`send`,detailKeys:[`to`,`content`]},editMessage:{label:`edit`,detailKeys:[`channelId`,`messageId`]},deleteMessage:{label:`delete`,detailKeys:[`channelId`,`messageId`]},threadCreate:{label:`thread create`,detailKeys:[`channelId`,`name`]},threadList:{label:`thread list`,detailKeys:[`guildId`,`channelId`]},threadReply:{label:`thread reply`,detailKeys:[`channelId`,`content`]},pinMessage:{label:`pin`,detailKeys:[`channelId`,`messageId`]},unpinMessage:{label:`unpin`,detailKeys:[`channelId`,`messageId`]},listPins:{label:`list pins`,detailKeys:[`channelId`]},searchMessages:{label:`search`,detailKeys:[`guildId`,`content`]},memberInfo:{label:`member`,detailKeys:[`guildId`,`userId`]},roleInfo:{label:`roles`,detailKeys:[`guildId`]},emojiList:{label:`emoji list`,detailKeys:[`guildId`]},roleAdd:{label:`role add`,detailKeys:[`guildId`,`userId`,`roleId`]},roleRemove:{label:`role remove`,detailKeys:[`guildId`,`userId`,`roleId`]},channelInfo:{label:`channel`,detailKeys:[`channelId`]},channelList:{label:`channels`,detailKeys:[`guildId`]},voiceStatus:{label:`voice`,detailKeys:[`guildId`,`userId`]},eventList:{label:`events`,detailKeys:[`guildId`]},eventCreate:{label:`event create`,detailKeys:[`guildId`,`name`]},timeout:{label:`timeout`,detailKeys:[`guildId`,`userId`]},kick:{label:`kick`,detailKeys:[`guildId`,`userId`]},ban:{label:`ban`,detailKeys:[`guildId`,`userId`]}}}}},Mi={"🧩":`puzzle`,"🛠️":`wrench`,"🧰":`wrench`,"📖":`fileText`,"✍️":`edit`,"📝":`penLine`,"📎":`paperclip`,"🌐":`globe`,"📺":`monitor`,"🧾":`fileText`,"🔐":`settings`,"💻":`monitor`,"🔌":`plug`,"💬":`messageSquare`},Ni={icon:`messageSquare`,title:`Slack`,actions:{react:{label:`react`,detailKeys:[`channelId`,`messageId`,`emoji`]},reactions:{label:`reactions`,detailKeys:[`channelId`,`messageId`]},sendMessage:{label:`send`,detailKeys:[`to`,`content`]},editMessage:{label:`edit`,detailKeys:[`channelId`,`messageId`]},deleteMessage:{label:`delete`,detailKeys:[`channelId`,`messageId`]},readMessages:{label:`read messages`,detailKeys:[`channelId`,`limit`]},pinMessage:{label:`pin`,detailKeys:[`channelId`,`messageId`]},unpinMessage:{label:`unpin`,detailKeys:[`channelId`,`messageId`]},listPins:{label:`list pins`,detailKeys:[`channelId`]},memberInfo:{label:`member`,detailKeys:[`userId`]},emojiList:{label:`emoji list`}}};function Pi(e){return e?Mi[e]??`puzzle`:`puzzle`}function Fi(e){return{icon:Pi(e?.emoji),title:e?.title,label:e?.label,detailKeys:e?.detailKeys,actions:e?.actions}}var Ii=ji,Li=Fi(Ii.fallback??{emoji:`🧩`}),Ri=Object.fromEntries(Object.entries(Ii.tools??{}).map(([e,t])=>[e,Fi(t)]));Ri.slack=Ni;function zi(e){if(!e)return e;for(let t of[{re:/^\/Users\/[^/]+(\/|$)/,replacement:`~$1`},{re:/^\/home\/[^/]+(\/|$)/,replacement:`~$1`},{re:/^C:\\Users\\[^\\]+(\\|$)/i,replacement:`~$1`}])if(t.re.test(e))return e.replace(t.re,t.replacement);return e}function Bi(e){let t=Jr(e.name),n=t.toLowerCase(),r=Ri[n],i=r?.icon??Li.icon??`puzzle`,a=r?.title??Yr(t),o=r?.label??a,{verb:s,detail:c}=Qr({toolKey:n,args:e.args,meta:e.meta,spec:r,fallbackDetailKeys:Li.detailKeys,detailMode:`first`,detailCoerce:{includeFalse:!0,includeZero:!0}});return c&&=zi(c),{name:t,icon:i,title:a,label:o,verb:s,detail:c}}function Vi(e){return Ai(e.detail,{prefixWithWith:!0})}function Hi(e){let t=e.trim();if(t.startsWith(`{`)||t.startsWith(`[`))try{let e=JSON.parse(t);return"```json\n"+JSON.stringify(e,null,2)+"\n```"}catch{}return e}function Ui(e){let t=e.split(`
81
+ `}function Ur(e){return Hr({text:()=>e,label:Lr})}function Wr(e){let t=e,n=typeof t.role==`string`?t.role:`unknown`,r=typeof t.toolCallId==`string`||typeof t.tool_call_id==`string`,i=t.content,a=Array.isArray(i)?i:null,o=Array.isArray(a)&&a.some(e=>{let t=e,n=(typeof t.type==`string`?t.type:``).toLowerCase();return n===`toolresult`||n===`tool_result`}),s=typeof t.toolName==`string`||typeof t.tool_name==`string`;(r||o||s)&&(n=`toolResult`);let c=[];typeof t.content==`string`?c=[{type:`text`,text:t.content}]:Array.isArray(t.content)?c=t.content.map(e=>({type:e.type||`text`,text:e.text,name:e.name,args:e.args||e.arguments})):typeof t.text==`string`&&(c=[{type:`text`,text:t.text}]);let l=typeof t.timestamp==`number`?t.timestamp:Date.now(),u=typeof t.id==`string`?t.id:void 0;return(n===`user`||n===`User`)&&(c=c.map(e=>e.type===`text`&&typeof e.text==`string`?{...e,text:ne(e.text)}:e)),{role:n,content:c,timestamp:l,id:u}}function Gr(e){let t=e.toLowerCase();return e===`user`||e===`User`?e:e===`assistant`?`assistant`:e===`system`?`system`:t===`toolresult`||t===`tool_result`||t===`tool`||t===`function`?`tool`:e}function Kr(e){let t=e,n=typeof t.role==`string`?t.role.toLowerCase():``;return n===`toolresult`||n===`tool_result`}function qr(e){return e&&typeof e==`object`?e:void 0}function Jr(e){return(e??`tool`).trim()}function Yr(e){if(!e)return e;for(let t of[/^\/Users\/[^/]+(?=\/|$)/,/^\/home\/[^/]+(?=\/|$)/,/^[A-Za-z]:\\Users\\[^\\]+(?=\\|$)/i])if(t.test(e))return e.replace(t,`~`);return e.replace(/(^|\s)\/(?:Users|home)\/(?:[^/\s]+(?: [^/\s]+)*(?=\/)|[^/\s]+(?=\s|$))/g,`$1~`).replace(/(^|\s)[A-Za-z]:\\Users\\(?:[^\\\s]+(?: [^\\\s]+)*(?=\\)|[^\\\s]+(?=\s|$))/gi,`$1~`)}function Xr(e){let t=e.replace(/_/g,` `).trim();return t?t.split(/\s+/).map(e=>e.length<=2&&e.toUpperCase()===e?e:`${e.at(0)?.toUpperCase()??``}${e.slice(1)}`).join(` `):`Tool`}function Zr(e){let t=e?.trim();if(t)return t.replace(/_/g,` `)}function Qr(e){if(!e||typeof e!=`object`)return;let t=e.action;if(typeof t==`string`)return t.trim()||void 0}function $r(e){return Ai({toolKey:e.toolKey,args:e.args,meta:e.meta,action:Qr(e.args),spec:e.spec,fallbackDetailKeys:e.fallbackDetailKeys,detailMode:e.detailMode,detailCoerce:e.detailCoerce,detailMaxEntries:e.detailMaxEntries,detailFormatKey:e.detailFormatKey})}function ei(e,t={}){let n=t.maxStringChars??160,r=t.maxArrayEntries??3;if(e!=null){if(typeof e==`string`){let t=e.trim();if(!t)return;let r=t.split(/\r?\n/)[0]?.trim()??``;return r?r.length>n?`${r.slice(0,Math.max(0,n-3))}…`:r:void 0}if(typeof e==`boolean`)return!e&&!t.includeFalse?void 0:e?`true`:`false`;if(typeof e==`number`)return Number.isFinite(e)?e===0&&!t.includeZero?void 0:String(e):t.includeNonFinite?String(e):void 0;if(Array.isArray(e)){let n=e.map(e=>ei(e,t)).filter(e=>!!e);if(n.length===0)return;let i=n.slice(0,r).join(`, `);return n.length>r?`${i}…`:i}}}function ti(e,t){if(!e||typeof e!=`object`)return;let n=e;for(let e of t.split(`.`)){if(!e||!n||typeof n!=`object`)return;n=n[e]}return n}function ni(e){let t=qr(e);if(t)for(let e of[t.path,t.file_path,t.filePath]){if(typeof e!=`string`)continue;let t=e.trim();if(t)return t}}function ri(e){let t=qr(e);if(!t)return;let n=ni(t);if(!n)return;let r=typeof t.offset==`number`&&Number.isFinite(t.offset)?Math.floor(t.offset):void 0,i=typeof t.limit==`number`&&Number.isFinite(t.limit)?Math.floor(t.limit):void 0,a=r===void 0?void 0:Math.max(1,r),o=i===void 0?void 0:Math.max(1,i);return a!==void 0&&o!==void 0?`${o===1?`line`:`lines`} ${a}-${a+o-1} from ${n}`:a===void 0?o===void 0?`from ${n}`:`first ${o} ${o===1?`line`:`lines`} of ${n}`:`from line ${a} in ${n}`}function ii(e,t){let n=qr(t);if(!n)return;let r=ni(n)??(typeof n.url==`string`?n.url.trim():void 0);if(!r)return;if(e===`attach`)return`from ${r}`;let i=e===`edit`?`in`:`to`,a=typeof n.content==`string`?n.content:typeof n.newText==`string`?n.newText:typeof n.new_string==`string`?n.new_string:void 0;return a&&a.length>0?`${i} ${r} (${a.length} chars)`:`${i} ${r}`}function ai(e){let t=qr(e);if(!t)return;let n=typeof t.query==`string`?t.query.trim():void 0,r=typeof t.count==`number`&&Number.isFinite(t.count)&&t.count>0?Math.floor(t.count):void 0;if(n)return r===void 0?`for "${n}"`:`for "${n}" (top ${r})`}function oi(e){let t=qr(e);if(!t)return;let n=typeof t.url==`string`?t.url.trim():void 0;if(!n)return;let r=typeof t.extractMode==`string`?t.extractMode.trim():void 0,i=typeof t.maxChars==`number`&&Number.isFinite(t.maxChars)&&t.maxChars>0?Math.floor(t.maxChars):void 0,a=[r?`mode ${r}`:void 0,i===void 0?void 0:`max ${i} chars`].filter(e=>!!e).join(`, `);return a?`from ${n} (${a})`:`from ${n}`}function si(e){if(!e)return e;let t=e.trim();return t.length>=2&&(t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`))?t.slice(1,-1).trim():t}function ci(e,t=48){if(!e)return[];let n=[],r=``,i,a=!1;for(let o=0;o<e.length;o+=1){let s=e[o];if(a){r+=s,a=!1;continue}if(s===`\\`){a=!0;continue}if(i){s===i?i=void 0:r+=s;continue}if(s===`"`||s===`'`){i=s;continue}if(/\s/.test(s)){if(!r)continue;if(n.push(r),n.length>=t)return n;r=``;continue}r+=s}return r&&n.push(r),n}function li(e){if(!e)return;let t=si(e)??e;return(t.split(/[/]/).at(-1)??t).trim().toLowerCase()}function ui(e,t){let n=new Set(t);for(let r=0;r<e.length;r+=1){let i=e[r];if(i){if(n.has(i)){let t=e[r+1];if(t&&!t.startsWith(`-`))return t;continue}for(let e of t)if(e.startsWith(`--`)&&i.startsWith(`${e}=`))return i.slice(e.length+1)}}}function di(e,t=1,n=[]){let r=[],i=new Set(n);for(let n=t;n<e.length;n+=1){let t=e[n];if(t){if(t===`--`){for(let t=n+1;t<e.length;t+=1){let n=e[t];n&&r.push(n)}break}if(t.startsWith(`--`)){if(t.includes(`=`))continue;i.has(t)&&(n+=1);continue}if(t.startsWith(`-`)){i.has(t)&&(n+=1);continue}r.push(t)}}return r}function $(e,t=1,n=[]){return di(e,t,n)[0]}function fi(e){if(e.length===0)return e;let t=0;if(li(e[0])===`env`){for(t=1;t<e.length;){let n=e[t];if(!n)break;if(n.startsWith(`-`)){t+=1;continue}if(/^[A-Za-z_][A-Za-z0-9_]*=/.test(n)){t+=1;continue}break}return e.slice(t)}for(;t<e.length&&/^[A-Za-z_][A-Za-z0-9_]*=/.test(e[t]);)t+=1;return e.slice(t)}function pi(e){let t=ci(e,10);if(t.length<3)return e;let n=li(t[0]);if(!(n===`bash`||n===`sh`||n===`zsh`||n===`fish`))return e;let r=t.findIndex((e,t)=>t>0&&(e===`-c`||e===`-lc`||e===`-ic`));if(r===-1)return e;let i=t.slice(r+1).join(` `).trim();return i?si(i)??e:e}function mi(e,t){let n,r=!1;for(let i=0;i<e.length;i+=1){let a=e[i];if(r){r=!1;continue}if(a===`\\`){r=!0;continue}if(n){a===n&&(n=void 0);continue}if(a===`"`||a===`'`){n=a;continue}if(t(a,i)===!1)return}}function hi(e){let t=[],n=0;return mi(e,(r,i)=>r===`;`?(t.push(e.slice(n,i)),n=i+1,!0):(r===`&`||r===`|`)&&e[i+1]===r?(t.push(e.slice(n,i)),n=i+2,!0):!0),t.push(e.slice(n)),t.map(e=>e.trim()).filter(e=>e.length>0)}function gi(e){let t=[],n=0;return mi(e,(r,i)=>(r===`|`&&e[i-1]!==`|`&&e[i+1]!==`|`&&(t.push(e.slice(n,i)),n=i+1),!0)),t.push(e.slice(n)),t.map(e=>e.trim()).filter(e=>e.length>0)}function _i(e){let t=ci(e,3),n=li(t[0]);if(n===`cd`||n===`pushd`)return t[1]||void 0}function vi(e){let t=li(ci(e,2)[0]);return t===`cd`||t===`pushd`||t===`popd`}function yi(e){return li(ci(e,2)[0])===`popd`}function bi(e){let t=e.trim(),n;for(let e=0;e<4;e+=1){let r;mi(t,(e,n)=>{if(e===`&`&&t[n+1]===`&`)return r={index:n,length:2},!1;if(e===`|`&&t[n+1]===`|`)return r={index:n,length:2,isOr:!0},!1;if(e===`;`||e===`
82
+ `)return r={index:n,length:1},!1});let i=(r?t.slice(0,r.index):t).trim(),a=(r?!r.isOr:e>0)&&vi(i);if(!(i.startsWith(`set `)||i.startsWith(`export `)||i.startsWith(`unset `)||a)||(a&&(n=yi(i)?void 0:_i(i)??n),t=r?t.slice(r.index+r.length).trimStart():``,!t))break}return{command:t.trim(),chdirPath:n}}function xi(e){if(e.length===0)return`run command`;let t=li(e[0])??`command`;if(t===`git`){let t=new Set([`-C`,`-c`,`--git-dir`,`--work-tree`,`--namespace`,`--config-env`]),n=ui(e,[`-C`]),r;for(let n=1;n<e.length;n+=1){let i=e[n];if(i){if(i===`--`){r=$(e,n+1);break}if(i.startsWith(`--`)){if(i.includes(`=`))continue;t.has(i)&&(n+=1);continue}if(i.startsWith(`-`)){t.has(i)&&(n+=1);continue}r=i;break}}let i={status:`check git status`,diff:`check git diff`,log:`view git history`,show:`show git object`,branch:`list git branches`,checkout:`switch git branch`,switch:`switch git branch`,commit:`create git commit`,pull:`pull git changes`,push:`push git changes`,fetch:`fetch git changes`,merge:`merge git changes`,rebase:`rebase git branch`,add:`stage git changes`,restore:`restore git files`,reset:`reset git state`,stash:`stash git changes`};return r&&i[r]?i[r]:!r||r.startsWith(`/`)||r.startsWith(`~`)||r.includes(`/`)?n?`run git command in ${n}`:`run git command`:`run git ${r}`}if(t===`grep`||t===`rg`||t===`ripgrep`){let t=di(e,1,[`-e`,`--regexp`,`-f`,`--file`,`-m`,`--max-count`,`-A`,`--after-context`,`-B`,`--before-context`,`-C`,`--context`]),n=ui(e,[`-e`,`--regexp`])??t[0],r=t.length>1?t.at(-1):void 0;return n?r?`search "${n}" in ${r}`:`search "${n}"`:`search text`}if(t===`find`){let t=e[1]&&!e[1].startsWith(`-`)?e[1]:`.`,n=ui(e,[`-name`,`-iname`]);return n?`find files named "${n}" in ${t}`:`find files in ${t}`}if(t===`ls`){let t=$(e,1);return t?`list files in ${t}`:`list files`}if(t===`head`||t===`tail`){let n=ui(e,[`-n`,`--lines`])??e.slice(1).find(e=>/^-\d+$/.test(e))?.slice(1),r=di(e,1,[`-n`,`--lines`]),i=r.at(-1);i&&/^\d+$/.test(i)&&r.length===1&&(i=void 0);let a=t===`head`?`first`:`last`,o=n===`1`?`line`:`lines`;return n&&i?`show ${a} ${n} ${o} of ${i}`:n?`show ${a} ${n} ${o}`:i?`show ${i}`:`show ${t} output`}if(t===`cat`){let t=$(e,1);return t?`show ${t}`:`show output`}if(t===`sed`){let t=ui(e,[`-e`,`--expression`]),n=di(e,1,[`-e`,`--expression`,`-f`,`--file`]),r=t??n[0],i=t?n[0]:n[1];if(r){let e=(si(r)??r).replace(/\s+/g,``),t=e.match(/^([0-9]+),([0-9]+)p$/);if(t)return i?`print lines ${t[1]}-${t[2]} from ${i}`:`print lines ${t[1]}-${t[2]}`;let n=e.match(/^([0-9]+)p$/);if(n)return i?`print line ${n[1]} from ${i}`:`print line ${n[1]}`}return i?`run sed on ${i}`:`run sed transform`}if(t===`printf`||t===`echo`)return`print text`;if(t===`cp`||t===`mv`){let n=di(e,1,[`-t`,`--target-directory`,`-S`,`--suffix`]),r=n[0],i=n[1],a=t===`cp`?`copy`:`move`;return r&&i?`${a} ${r} to ${i}`:r?`${a} ${r}`:`${a} files`}if(t===`rm`){let t=$(e,1);return t?`remove ${t}`:`remove files`}if(t===`mkdir`){let t=$(e,1);return t?`create folder ${t}`:`create folder`}if(t===`touch`){let t=$(e,1);return t?`create file ${t}`:`create file`}if(t===`curl`||t===`wget`){let t=e.find(e=>/^https?:\/\//i.test(e));return t?`fetch ${t}`:`fetch url`}if(t===`npm`||t===`pnpm`||t===`yarn`||t===`bun`){let n=di(e,1,[`--prefix`,`-C`,`--cwd`,`--config`]),r=n[0]??`command`;return{install:`install dependencies`,test:`run tests`,build:`run build`,start:`start app`,lint:`run lint`,run:n[1]?`run ${n[1]}`:`run script`}[r]??`run ${t} ${r}`}if(t===`node`||t===`python`||t===`python3`||t===`ruby`||t===`php`){if(e.slice(1).find(e=>e.startsWith(`<<`)))return`run ${t} inline script (heredoc)`;if((t===`node`?ui(e,[`-e`,`--eval`]):t===`python`||t===`python3`?ui(e,[`-c`]):void 0)!==void 0)return`run ${t} inline script`;let n=$(e,1,t===`node`?[`-e`,`--eval`,`-m`]:[`-c`,`-e`,`--eval`,`-m`]);return n?t===`node`?`${e.includes(`--check`)||e.includes(`-c`)?`check js syntax for`:`run node script`} ${n}`:`run ${t} ${n}`:`run ${t}`}if(t===`openclaw`){let t=$(e,1);return t?`run openclaw ${t}`:`run openclaw`}let n=$(e,1);return!n||n.length>48?`run ${t}`:/^[A-Za-z0-9._/-]+$/.test(n)?`run ${t} ${n}`:`run ${t}`}function Si(e){let t=gi(e);return t.length>1?`${xi(fi(ci(t[0])))} -> ${xi(fi(ci(t[t.length-1])))}${t.length>2?` (+${t.length-2} steps)`:``}`:xi(fi(ci(e)))}function Ci(e){let{command:t,chdirPath:n}=bi(e);if(!t)return n?{text:``,chdirPath:n}:void 0;let r=hi(t);if(r.length===0)return;let i=r.map(e=>Si(e));return{text:i.length===1?i[0]:i.join(` → `),chdirPath:n,allGeneric:i.every(e=>Ti(e))}}var wi=`check git.view git.show git.list git.switch git.create git.pull git.push git.fetch git.merge git.rebase git.stage git.restore git.reset git.stash git.search .find files.list files.show first.show last.print line.print text.copy .move .remove .create folder.create file.fetch http.install dependencies.run tests.run build.start app.run lint.run openclaw.run node script.run node .run python.run ruby.run php.run sed.run git .run npm .run pnpm .run yarn .run bun .check js syntax`.split(`.`);function Ti(e){return e===`run command`?!0:e.startsWith(`run `)?!wi.some(t=>e.startsWith(t)):!1}function Ei(e,t=120){let n=e.replace(/\s*\n\s*/g,` `).replace(/\s{2,}/g,` `).trim();return n.length<=t?n:`${n.slice(0,Math.max(0,t-1))}…`}function Di(e){let t=qr(e);if(!t)return;let n=typeof t.command==`string`?t.command.trim():void 0;if(!n)return;let r=pi(n),i=Ci(r)??Ci(n),a=i?.text||`run command`,o=(typeof t.workdir==`string`?t.workdir:typeof t.cwd==`string`?t.cwd:void 0)?.trim()||i?.chdirPath||void 0,s=Ei(r);if(i?.allGeneric!==!1&&Ti(a))return o?`${s} (in ${o})`:s;let c=o?`${a} (in ${o})`:a;return s&&s!==c&&s!==a?`${c}\n\n\`${s}\``:c}function Oi(e,t){if(!(!e||!t))return e.actions?.[t]??void 0}function ki(e,t,n){if(n.mode===`first`){for(let r of t){let t=ei(ti(e,r),n.coerce);if(t)return t}return}let r=[];for(let i of t){let t=ei(ti(e,i),n.coerce);t&&r.push({label:n.formatKey?n.formatKey(i):i,value:t})}if(r.length===0)return;if(r.length===1)return r[0].value;let i=new Set,a=[];for(let e of r){let t=`${e.label}:${e.value}`;i.has(t)||(i.add(t),a.push(e))}if(a.length!==0)return a.slice(0,n.maxEntries??8).map(e=>`${e.label} ${e.value}`).join(` · `)}function Ai(e){let t=Oi(e.spec,e.action),n=e.toolKey===`web_search`?`search`:e.toolKey===`web_fetch`?`fetch`:e.toolKey.replace(/_/g,` `).replace(/\./g,` `),r=Zr(t?.label??e.action??n),i;e.toolKey===`exec`&&(i=Di(e.args)),!i&&e.toolKey===`read`&&(i=ri(e.args)),!i&&(e.toolKey===`write`||e.toolKey===`edit`||e.toolKey===`attach`)&&(i=ii(e.toolKey,e.args)),!i&&e.toolKey===`web_search`&&(i=ai(e.args)),!i&&e.toolKey===`web_fetch`&&(i=oi(e.args));let a=t?.detailKeys??e.spec?.detailKeys??e.fallbackDetailKeys??[];return!i&&a.length>0&&(i=ki(e.args,a,{mode:e.detailMode,coerce:e.detailCoerce,maxEntries:e.detailMaxEntries,formatKey:e.detailFormatKey})),!i&&e.meta&&(i=e.meta),{verb:r,detail:i}}function ji(e,t={}){if(!e)return;let n=e.includes(` · `)?e.split(` · `).map(e=>e.trim()).filter(e=>e.length>0).join(`, `):e;if(n)return t.prefixWithWith?`with ${n}`:n}var Mi={version:1,fallback:{emoji:`🧩`,detailKeys:[`command`,`path`,`url`,`targetUrl`,`targetId`,`ref`,`element`,`node`,`nodeId`,`id`,`requestId`,`to`,`channelId`,`guildId`,`userId`,`name`,`query`,`pattern`,`messageId`]},tools:{bash:{emoji:`🛠️`,title:`Bash`,detailKeys:[`command`]},process:{emoji:`🧰`,title:`Process`,detailKeys:[`sessionId`]},read:{emoji:`📖`,title:`Read`,detailKeys:[`path`]},write:{emoji:`✍️`,title:`Write`,detailKeys:[`path`]},edit:{emoji:`📝`,title:`Edit`,detailKeys:[`path`]},attach:{emoji:`📎`,title:`Attach`,detailKeys:[`path`,`url`,`fileName`]},browser:{emoji:`🌐`,title:`Browser`,actions:{status:{label:`status`},start:{label:`start`},stop:{label:`stop`},tabs:{label:`tabs`},open:{label:`open`,detailKeys:[`targetUrl`]},focus:{label:`focus`,detailKeys:[`targetId`]},close:{label:`close`,detailKeys:[`targetId`]},snapshot:{label:`snapshot`,detailKeys:[`targetUrl`,`targetId`,`ref`,`element`,`format`]},screenshot:{label:`screenshot`,detailKeys:[`targetUrl`,`targetId`,`ref`,`element`]},navigate:{label:`navigate`,detailKeys:[`targetUrl`,`targetId`]},console:{label:`console`,detailKeys:[`level`,`targetId`]},pdf:{label:`pdf`,detailKeys:[`targetId`]},upload:{label:`upload`,detailKeys:[`paths`,`ref`,`inputRef`,`element`,`targetId`]},dialog:{label:`dialog`,detailKeys:[`accept`,`promptText`,`targetId`]},act:{label:`act`,detailKeys:[`request.kind`,`request.ref`,`request.selector`,`request.text`,`request.value`]}}},canvas:{emoji:`🖼️`,title:`Canvas`,actions:{present:{label:`present`,detailKeys:[`target`,`node`,`nodeId`]},hide:{label:`hide`,detailKeys:[`node`,`nodeId`]},navigate:{label:`navigate`,detailKeys:[`url`,`node`,`nodeId`]},eval:{label:`eval`,detailKeys:[`javaScript`,`node`,`nodeId`]},snapshot:{label:`snapshot`,detailKeys:[`format`,`node`,`nodeId`]},a2ui_push:{label:`A2UI push`,detailKeys:[`jsonlPath`,`node`,`nodeId`]},a2ui_reset:{label:`A2UI reset`,detailKeys:[`node`,`nodeId`]}}},nodes:{emoji:`📱`,title:`Nodes`,actions:{status:{label:`status`},describe:{label:`describe`,detailKeys:[`node`,`nodeId`]},pending:{label:`pending`},approve:{label:`approve`,detailKeys:[`requestId`]},reject:{label:`reject`,detailKeys:[`requestId`]},notify:{label:`notify`,detailKeys:[`node`,`nodeId`,`title`,`body`]},camera_snap:{label:`camera snap`,detailKeys:[`node`,`nodeId`,`facing`,`deviceId`]},camera_list:{label:`camera list`,detailKeys:[`node`,`nodeId`]},camera_clip:{label:`camera clip`,detailKeys:[`node`,`nodeId`,`facing`,`duration`,`durationMs`]},screen_record:{label:`screen record`,detailKeys:[`node`,`nodeId`,`duration`,`durationMs`,`fps`,`screenIndex`]}}},cron:{emoji:`⏰`,title:`Cron`,actions:{status:{label:`status`},list:{label:`list`},add:{label:`add`,detailKeys:[`job.name`,`job.id`,`job.schedule`,`job.cron`]},update:{label:`update`,detailKeys:[`id`]},remove:{label:`remove`,detailKeys:[`id`]},run:{label:`run`,detailKeys:[`id`]},runs:{label:`runs`,detailKeys:[`id`]},wake:{label:`wake`,detailKeys:[`text`,`mode`]}}},gateway:{emoji:`🔌`,title:`Gateway`,actions:{restart:{label:`restart`,detailKeys:[`reason`,`delayMs`]}}},whatsapp_login:{emoji:`🟢`,title:`WhatsApp Login`,actions:{start:{label:`start`},wait:{label:`wait`}}},discord:{emoji:`💬`,title:`Discord`,actions:{react:{label:`react`,detailKeys:[`channelId`,`messageId`,`emoji`]},reactions:{label:`reactions`,detailKeys:[`channelId`,`messageId`]},sticker:{label:`sticker`,detailKeys:[`to`,`stickerIds`]},poll:{label:`poll`,detailKeys:[`question`,`to`]},permissions:{label:`permissions`,detailKeys:[`channelId`]},readMessages:{label:`read messages`,detailKeys:[`channelId`,`limit`]},sendMessage:{label:`send`,detailKeys:[`to`,`content`]},editMessage:{label:`edit`,detailKeys:[`channelId`,`messageId`]},deleteMessage:{label:`delete`,detailKeys:[`channelId`,`messageId`]},threadCreate:{label:`thread create`,detailKeys:[`channelId`,`name`]},threadList:{label:`thread list`,detailKeys:[`guildId`,`channelId`]},threadReply:{label:`thread reply`,detailKeys:[`channelId`,`content`]},pinMessage:{label:`pin`,detailKeys:[`channelId`,`messageId`]},unpinMessage:{label:`unpin`,detailKeys:[`channelId`,`messageId`]},listPins:{label:`list pins`,detailKeys:[`channelId`]},searchMessages:{label:`search`,detailKeys:[`guildId`,`content`]},memberInfo:{label:`member`,detailKeys:[`guildId`,`userId`]},roleInfo:{label:`roles`,detailKeys:[`guildId`]},emojiList:{label:`emoji list`,detailKeys:[`guildId`]},roleAdd:{label:`role add`,detailKeys:[`guildId`,`userId`,`roleId`]},roleRemove:{label:`role remove`,detailKeys:[`guildId`,`userId`,`roleId`]},channelInfo:{label:`channel`,detailKeys:[`channelId`]},channelList:{label:`channels`,detailKeys:[`guildId`]},voiceStatus:{label:`voice`,detailKeys:[`guildId`,`userId`]},eventList:{label:`events`,detailKeys:[`guildId`]},eventCreate:{label:`event create`,detailKeys:[`guildId`,`name`]},timeout:{label:`timeout`,detailKeys:[`guildId`,`userId`]},kick:{label:`kick`,detailKeys:[`guildId`,`userId`]},ban:{label:`ban`,detailKeys:[`guildId`,`userId`]}}}}},Ni={"🧩":`puzzle`,"🛠️":`wrench`,"🧰":`wrench`,"📖":`fileText`,"✍️":`edit`,"📝":`penLine`,"📎":`paperclip`,"🌐":`globe`,"📺":`monitor`,"🧾":`fileText`,"🔐":`settings`,"💻":`monitor`,"🔌":`plug`,"💬":`messageSquare`},Pi={icon:`messageSquare`,title:`Slack`,actions:{react:{label:`react`,detailKeys:[`channelId`,`messageId`,`emoji`]},reactions:{label:`reactions`,detailKeys:[`channelId`,`messageId`]},sendMessage:{label:`send`,detailKeys:[`to`,`content`]},editMessage:{label:`edit`,detailKeys:[`channelId`,`messageId`]},deleteMessage:{label:`delete`,detailKeys:[`channelId`,`messageId`]},readMessages:{label:`read messages`,detailKeys:[`channelId`,`limit`]},pinMessage:{label:`pin`,detailKeys:[`channelId`,`messageId`]},unpinMessage:{label:`unpin`,detailKeys:[`channelId`,`messageId`]},listPins:{label:`list pins`,detailKeys:[`channelId`]},memberInfo:{label:`member`,detailKeys:[`userId`]},emojiList:{label:`emoji list`}}};function Fi(e){return e?Ni[e]??`puzzle`:`puzzle`}function Ii(e){return{icon:Fi(e?.emoji),title:e?.title,label:e?.label,detailKeys:e?.detailKeys,actions:e?.actions}}var Li=Mi,Ri=Ii(Li.fallback??{emoji:`🧩`}),zi=Object.fromEntries(Object.entries(Li.tools??{}).map(([e,t])=>[e,Ii(t)]));zi.slack=Pi;function Bi(e){let t=Jr(e.name),n=t.toLowerCase(),r=zi[n],i=r?.icon??Ri.icon??`puzzle`,a=r?.title??Xr(t),o=r?.label??a,{verb:s,detail:c}=$r({toolKey:n,args:e.args,meta:e.meta,spec:r,fallbackDetailKeys:Ri.detailKeys,detailMode:`first`,detailCoerce:{includeFalse:!0,includeZero:!0}});return c&&=Yr(c),{name:t,icon:i,title:a,label:o,verb:s,detail:c}}function Vi(e){return ji(e.detail,{prefixWithWith:!0})}function Hi(e){let t=e.trim();if(t.startsWith(`{`)||t.startsWith(`[`))try{let e=JSON.parse(t);return"```json\n"+JSON.stringify(e,null,2)+"\n```"}catch{}return e}function Ui(e){let t=e.split(`
83
83
  `),n=t.slice(0,2),r=n.join(`
84
84
  `);return r.length>100?r.slice(0,100)+`…`:n.length<t.length?r+`…`:r}function Wi(e){let t=e,n=Ki(t.content),r=[];for(let e of n){let t=(typeof e.type==`string`?e.type:``).toLowerCase();([`toolcall`,`tool_call`,`tooluse`,`tool_use`].includes(t)||typeof e.name==`string`&&e.arguments!=null)&&r.push({kind:`call`,name:e.name??`tool`,args:qi(e.arguments??e.args)})}for(let e of n){let t=(typeof e.type==`string`?e.type:``).toLowerCase();if(t!==`toolresult`&&t!==`tool_result`)continue;let n=Ji(e),i=typeof e.name==`string`?e.name:`tool`;r.push({kind:`result`,name:i,text:n})}if(Kr(e)&&!r.some(e=>e.kind===`result`)){let n=typeof t.toolName==`string`&&t.toolName||typeof t.tool_name==`string`&&t.tool_name||`tool`,i=de(e)??void 0;r.push({kind:`result`,name:n,text:i})}return r}function Gi(e,t){let r=Bi({name:e.name,args:e.args}),i=Vi(r),a=!!e.text?.trim(),o=!!t,s=o?()=>{if(a){t(Hi(e.text));return}t(`## ${r.label}\n\n${i?`**Command:** \`${i}\`\n\n`:``}*No output — tool completed successfully.*`)}:void 0,c=a&&(e.text?.length??0)<=80,l=a&&!c,f=a&&c,p=!a;return u`
85
85
  <div
@@ -372,4 +372,4 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
372
372
  </div>
373
373
  </section>
374
374
  `}var ha=200;function ga(e){let t=[],n=null;for(let r of e){if(r.kind!==`message`){n&&=(t.push(n),null),t.push(r);continue}let e=Wr(r.message),i=Gr(e.role),a=e.timestamp||Date.now();!n||n.role!==i?(n&&t.push(n),n={kind:`group`,key:`group:${i}:${r.key}`,role:i,messages:[{message:r.message,key:r.key}],timestamp:a,isStreaming:!1}):n.messages.push({message:r.message,key:r.key})}return n&&t.push(n),t}function _a(e){let t=[],n=Array.isArray(e.messages)?e.messages:[],r=Array.isArray(e.toolMessages)?e.toolMessages:[],i=Math.max(0,n.length-ha);i>0&&t.push({kind:`message`,key:`chat:history:notice`,message:{role:`system`,content:`Showing last ${ha} messages (${i} hidden).`,timestamp:Date.now()}});for(let r=i;r<n.length;r++){let i=n[r],a=Wr(i),o=i.__openclaw;if(o&&o.kind===`compaction`){t.push({kind:`divider`,key:typeof o.id==`string`?`divider:compaction:${o.id}`:`divider:compaction:${a.timestamp}:${r}`,label:`Compaction`,timestamp:a.timestamp??Date.now()});continue}!e.showThinking&&a.role.toLowerCase()===`toolresult`||t.push({kind:`message`,key:va(i,r),message:i})}if(e.showThinking)for(let e=0;e<r.length;e++)t.push({kind:`message`,key:va(r[e],e+n.length),message:r[e]});if(e.stream!==null){let n=`stream:${e.sessionKey}:${e.streamStartedAt??`live`}`;e.stream.trim().length>0?t.push({kind:`stream`,key:n,text:e.stream,startedAt:e.streamStartedAt??Date.now()}):t.push({kind:`reading-indicator`,key:n})}return ga(t)}function va(e,t){let n=e,r=typeof n.toolCallId==`string`?n.toolCallId:``;if(r)return`tool:${r}`;let i=typeof n.id==`string`?n.id:``;if(i)return`msg:${i}`;let a=typeof n.messageId==`string`?n.messageId:``;if(a)return`msg:${a}`;let o=typeof n.timestamp==`number`?n.timestamp:null,s=typeof n.role==`string`?n.role:`unknown`;return o==null?`msg:${s}:${t}`:`msg:${s}:${o}:${t}`}export{Te as a,f as c,Ee as i,wr as n,ue as o,Ne as r,g as s,aa as t};
375
- //# sourceMappingURL=view-chat-ByDyhnLw.js.map
375
+ //# sourceMappingURL=view-chat-DCakYJRB.js.map