skykoi 2026.3.400 → 2026.3.402

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 (355) hide show
  1. package/dist/{APEv2Parser-aF9uvuWj.js → APEv2Parser-C3g2BkLd.js} +5 -5
  2. package/dist/{AbstractID3Parser-C6T7VM07.js → AbstractID3Parser-DYMMNUGc.js} +6 -6
  3. package/dist/{AiffParser-CihukODU.js → AiffParser-CY3CkocQ.js} +7 -7
  4. package/dist/{AsfParser-5IoFj9Un.js → AsfParser-BMy4DFqV.js} +6 -6
  5. package/dist/{DsdiffParser-BkALor_F.js → DsdiffParser-MFT3lLjL.js} +7 -7
  6. package/dist/{DsfParser-Dhj6kDdz.js → DsfParser-D6Z53Ju3.js} +7 -7
  7. package/dist/{FlacParser-BQ151mCK.js → FlacParser-BwSDKV1A.js} +7 -7
  8. package/dist/{ID3v1Parser-BfOq3_Yz.js → ID3v1Parser-DFy4afSr.js} +5 -5
  9. package/dist/{ID3v2Parser-DVcXrmaC.js → ID3v2Parser-tAb38aE5.js} +6 -6
  10. package/dist/{ID3v2Token-CHyCfrHg.js → ID3v2Token-B8x5hqU0.js} +2 -2
  11. package/dist/{MP4Parser-D9rH9hiY.js → MP4Parser-BBcJ_TSZ.js} +9 -9
  12. package/dist/{MatroskaParser-C9foId4P.js → MatroskaParser-StFD8Ewr.js} +6 -6
  13. package/dist/{MpegParser-btC1Uy5P.js → MpegParser-DxM1-gF0.js} +7 -7
  14. package/dist/{MusepackParser-B3UfJ8TQ.js → MusepackParser-BalMqVPA.js} +7 -7
  15. package/dist/{OggParser-BSjQh9p8.js → OggParser-HkUkMdUl.js} +8 -8
  16. package/dist/{Util-GThona7t.js → Util-xNyaZSrh.js} +3 -3
  17. package/dist/{WavPackParser-Cl3OdDw_.js → WavPackParser-BPGKdCPi.js} +6 -6
  18. package/dist/{WaveParser-CnQrR6Id.js → WaveParser-B0S_2-ui.js} +8 -8
  19. package/dist/{accounts-DiVdPd_D.js → accounts-DmBf_BJ-.js} +2 -2
  20. package/dist/{acp-cli-CB12B240.js → acp-cli-BY8CZxur.js} +24 -22
  21. package/dist/action-ledger-DGKPjXA0.js +212 -0
  22. package/dist/{admin-unlock-CxkAVK3J.js → admin-unlock-DR_L_wMn.js} +4 -4
  23. package/dist/{archive-BPnoI7eX.js → archive-CK8l2yf8.js} +1 -1
  24. package/dist/{audio-decode-jI5q94oj.js → audio-decode-ClaDK9ym.js} +6 -6
  25. package/dist/audio-recovery-VVXLtvGx.js +268 -0
  26. package/dist/{audit-DTaPudD7.js → audit-Dszn_HXz.js} +17 -17
  27. package/dist/{auth-ETZUkuev.js → auth-D567kxkN.js} +2 -2
  28. package/dist/{auth-health-DVgwYXcb.js → auth-health-B9pN5Ab8.js} +1 -1
  29. package/dist/billing-alerts-DW7RyxM5.js +115 -0
  30. package/dist/{bonjour-discovery-C_SkOn7h.js → bonjour-discovery-DeqtrLi5.js} +2 -2
  31. package/dist/build-info.json +3 -3
  32. package/dist/{ca-director-DGYQJ3Mi.js → ca-director-C4EeXxho.js} +448 -24
  33. package/dist/{call-ByKQ2oSx.js → call-DNrbv6Wz.js} +8 -8
  34. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  35. package/dist/{graphics-protocol-BumlJTUE.js → canvas-state-CN8qvbSD.js} +52 -3
  36. package/dist/{capture-service--pQDaNzP.js → capture-service-D6L6jsag.js} +99 -20
  37. package/dist/{channel-auth-AkNEnZEb.js → channel-auth-W15QnwRV.js} +7 -7
  38. package/dist/{channel-options-B_7GQ1Ha.js → channel-options-BLjc3WZr.js} +5 -5
  39. package/dist/{channel-selection-BSuFqCaq.js → channel-selection-BYxK_hgu.js} +2 -2
  40. package/dist/{channel-summary-DCMNnhoP.js → channel-summary-D9rfTPAH.js} +260 -4
  41. package/dist/{channels-cli-D6JJXO7W.js → channels-cli-BjvTzV06.js} +99 -92
  42. package/dist/{channels-status-issues-CoUSLr5Y.js → channels-status-issues-Du13ETS5.js} +1 -1
  43. package/dist/{chrome-CXOcEC_5.js → chrome-CkniSdUw.js} +5 -5
  44. package/dist/{clack-prompter-DRdAQdPx.js → clack-prompter-CumAspIN.js} +5 -5
  45. package/dist/cli/daemon-cli.js +1 -1
  46. package/dist/cli-Czatebrt.js +128 -0
  47. package/dist/{cli-auto-update-0dvTw4Ud.js → cli-auto-update-CnU-EIac.js} +8 -8
  48. package/dist/{client-BravwEMC.js → client-Cc_zpn8i.js} +34 -4
  49. package/dist/common-C7XhLzlO.js +130 -0
  50. package/dist/{completion-cli-DGZVSVov.js → completion-cli-DOm3o91m.js} +1 -1
  51. package/dist/config-CuoBkVSq.js +54 -0
  52. package/dist/{config-guard-CPL1_BY3.js → config-guard-BI3LEX0B.js} +52 -50
  53. package/dist/{configure-8JRdIcDJ.js → configure-DVTSfEWf.js} +20 -20
  54. package/dist/{context-digest-eh5l1QGn.js → context-digest-DuPrdRd6.js} +98 -52
  55. package/dist/{control-service-BsDK7r-y.js → control-service-b49a3v-e.js} +5 -5
  56. package/dist/{control-ui-assets-BM8V8YzF.js → control-ui-assets-oMo9gc12.js} +2 -2
  57. package/dist/{core-BbMOb92i.js → core-CTAWUYtz.js} +4 -4
  58. package/dist/{cron-cli-Cusms5TW.js → cron-cli-LB63sPgS.js} +27 -25
  59. package/dist/{daemon-cli-_IWxEhHy.js → daemon-cli-DYyk-wtd.js} +22 -22
  60. package/dist/{daemon-runtime-BnGqbyou.js → daemon-runtime-BWLveNDT.js} +4 -4
  61. package/dist/{deliver-Bda6dx0M.js → deliver-77dJnZ4b.js} +10 -10
  62. package/dist/{deps-de9dBYPg.js → deps-N7pq2wY0.js} +2 -2
  63. package/dist/{devices-cli-TRcwFHnk.js → devices-cli-DGfzoOEd.js} +21 -19
  64. package/dist/{diagnostics-BirX5oxG.js → diagnostics-dj5sfSNL.js} +1 -1
  65. package/dist/{directory-cli-CDrzk6hg.js → directory-cli-CL5J1P36.js} +23 -21
  66. package/dist/{dispatcher-DTV_p-9p.js → dispatcher-DORW9W-3.js} +1 -1
  67. package/dist/{dist-BcBe246p.js → dist-B-t3QY_w.js} +1 -1
  68. package/dist/{dist-CHfqAvJX.js → dist-CtZ-YaNJ.js} +5 -5
  69. package/dist/{dist-BUWiugpW.js → dist-Cuq4NNm-.js} +6 -6
  70. package/dist/{dist-cjs-Bd9V9SqN.js → dist-cjs-4Xz3zp7A.js} +3 -3
  71. package/dist/{dist-cjs-GvVXnjmm.js → dist-cjs-6_Z6-SVf.js} +2 -2
  72. package/dist/{dist-cjs-7228iF7U.js → dist-cjs-CfcGsJW4.js} +8 -8
  73. package/dist/{dist-cjs-Ba6pNFGg.js → dist-cjs-D2AqnXLI.js} +3 -3
  74. package/dist/{dist-cjs-ljWCJARL.js → dist-cjs-DAdxqAed.js} +1 -1
  75. package/dist/{dist-cjs-B5aHqZRy.js → dist-cjs-DX66blM2.js} +2 -2
  76. package/dist/{dist-cjs-B3qyFTKM.js → dist-cjs-TRM9RL7i.js} +1 -1
  77. package/dist/{dist-CpERBIN9.js → dist-dIXX3mFh.js} +12 -12
  78. package/dist/{dns-cli-DouTGeTw.js → dns-cli-CZr1A9Wb.js} +19 -17
  79. package/dist/{docs-cli-IVecdy6e.js → docs-cli-C_8yHuCB.js} +15 -15
  80. package/dist/{doctor-DNHLc11E.js → doctor-CdP4lSf7.js} +40 -39
  81. package/dist/{doctor-completion-D5c7SFdc.js → doctor-completion-HM9QKLp_.js} +4 -4
  82. package/dist/{dotenv-Y3WsO11w.js → dotenv-d4aPJ7q2.js} +1 -1
  83. package/dist/{ensure-local-gateway-fPsGGZU2.js → ensure-local-gateway-VDbb92v9.js} +5 -5
  84. package/dist/entry.js +5 -5
  85. package/dist/{env-ChCKTuXK.js → env-C2ovlUPG.js} +1 -1
  86. package/dist/{exec-approvals-cli-CHM34IRa.js → exec-approvals-cli-B25cTIKo.js} +28 -26
  87. package/dist/{exec-approvals-evaluate-BRTvE5NT.js → exec-approvals-evaluate-Mqaz3DKH.js} +1 -1
  88. package/dist/{exec-DdlIawm8.js → exec-f0H7lrAS.js} +2 -2
  89. package/dist/extension-api.js +79 -72
  90. package/dist/{first-run-0QWRgr0p.js → first-run-JPIqb99d.js} +2 -2
  91. package/dist/{flac-D7cbDL-Q.js → flac-D0ERhqWb.js} +0 -0
  92. package/dist/{gateway-cli-BdToxizC.js → gateway-cli-D2rsa4Sh.js} +211 -147
  93. package/dist/gateway-client.js +6 -6
  94. package/dist/{gateway-rpc-lb7pLXFe.js → gateway-rpc-Dx6qTqV4.js} +3 -3
  95. package/dist/{github-copilot-auth-B6A9L67e.js → github-copilot-auth-CgvI_1kF.js} +9 -9
  96. package/dist/{gmail-setup-utils-_C71CMXE.js → gmail-setup-utils-CZ7hr1kc.js} +3 -3
  97. package/dist/{graphics-terminal-setup-BLLrXglJ.js → graphics-terminal-setup-BE-zQBZi.js} +7 -5
  98. package/dist/{health-format-Blis3nDt.js → health-format-DIuMX56Q.js} +16 -16
  99. package/dist/{help-format-dPXG6VQF.js → help-format-DGH-EtN0.js} +1 -1
  100. package/dist/{hooks-cli-DK_AzutO.js → hooks-cli-BSsW75S5.js} +83 -76
  101. package/dist/{hooks-status-B2VJmKo_.js → hooks-status-BQCGKgkw.js} +4 -4
  102. package/dist/{identify-DFi1kVgv.js → identify-BnZpdJI7.js} +17 -2
  103. package/dist/{image-D2-1xTs6.js → image-fYpTBICK.js} +6 -6
  104. package/dist/{image-ops-_y0NATN4.js → image-ops-BZkwjdUo.js} +3 -3
  105. package/dist/index.js +133 -126
  106. package/dist/{installs-DC0RNvVY.js → installs-DLFc2J5Q.js} +5 -5
  107. package/dist/{config-DMLMgvxl.js → io-olbsPkU1.js} +8 -58
  108. package/dist/{koi-BOEaYgFq.js → koi-CGoywt6D.js} +17 -17
  109. package/dist/{koi-event-bridge-D9NAMsQa.js → koi-event-bridge-DqLY8ksk.js} +2 -2
  110. package/dist/{koi-scope-7GA83nWp.js → koi-scope-C15QLwY-.js} +3 -3
  111. package/dist/{koi-utterance-trigger-B4f_IIMa.js → koi-utterance-trigger-C-re0YEV.js} +1 -1
  112. package/dist/ledger-cli-xdNwI0_u.js +89 -0
  113. package/dist/{lib-CUrKJVSd.js → lib-Bmy2iGrp.js} +24 -24
  114. package/dist/{lib-iI713Gu9.js → lib-CGXegTqH.js} +1 -1
  115. package/dist/{lib-B2lQEF5z.js → lib-ClzeDYaP.js} +1 -1
  116. package/dist/{lib-Y8uwPBbl.js → lib-oRHEVbm6.js} +2 -2
  117. package/dist/{links-CFNtV6AI.js → links-BY_N2dMU.js} +1 -1
  118. package/dist/{logger-BKidfKRU.js → logger-Door90g0.js} +1 -1
  119. package/dist/{logging-truWYhq_.js → logging-7o98cqVY.js} +1 -1
  120. package/dist/{login-DY1WmHjQ.js → login-BqfkpjO5.js} +11 -11
  121. package/dist/{login-qr-tmOJGxzx.js → login-qr-BIXezZGI.js} +14 -14
  122. package/dist/{logs-cli-HCG8o1Sj.js → logs-cli-CHrkpdpD.js} +23 -21
  123. package/dist/{manager-BwHTvXSO.js → manager-sW9w39Tv.js} +9 -9
  124. package/dist/{manifest-registry-DEGu_o5t.js → manifest-registry-Y19rtw98.js} +1 -1
  125. package/dist/{message-DSU4_12z.js → message-IPchAcKj.js} +8 -8
  126. package/dist/{message-channel-Bhhyy2hp.js → message-channel-pEq52jlI.js} +1 -1
  127. package/dist/{model-selection-i7Sz3GGw.js → model-selection-vcc0xd_D.js} +19 -9
  128. package/dist/{models-cli-BAh65UbV.js → models-cli--mCNlBLV.js} +87 -80
  129. package/dist/{models-config-BJvU2gPz.js → models-config-oOx-lXZ4.js} +2 -2
  130. package/dist/{mpg123-decoder-DeXo0n6Q.js → mpg123-decoder-B0HZTBtg.js} +0 -0
  131. package/dist/{multipart-parser-hNDQMHfP.js → multipart-parser-EYbJZxSs.js} +1 -1
  132. package/dist/{native-window-B_QLL1A4.js → native-window-6GtkXCpD.js} +43 -3
  133. package/dist/{net-COR_ZMrL.js → net-CtMv6JrN.js} +1 -1
  134. package/dist/{node-cli-CFFmHZH9.js → node-cli-BsKsvqFP.js} +39 -37
  135. package/dist/{node-service-C_jH4QIC.js → node-service-DUhN_djC.js} +2 -2
  136. package/dist/{nodes-cli-DOkgNicw.js → nodes-cli-Bn8NLSke.js} +27 -25
  137. package/dist/{note-sNtAMorB.js → note-C4EUI0UD.js} +1 -1
  138. package/dist/{ogg-opus-decoder-DM9zWJfA.js → ogg-opus-decoder-8jxlFm3u.js} +0 -0
  139. package/dist/{ogg-vorbis-DuiMlJ-w.js → ogg-vorbis-BTUEEcC4.js} +0 -0
  140. package/dist/{onboard-channels-CLXz6a8_.js → onboard-channels-iIK1KaHk.js} +8 -8
  141. package/dist/{onboard-helpers-vTn9gV9u.js → onboard-helpers-nxxLR07H.js} +12 -12
  142. package/dist/{onboard-skills-CCE_1H0M.js → onboard-skills-70sWeowh.js} +15 -15
  143. package/dist/{onboarding-Dovud5Lf.js → onboarding-B3mVV8PX.js} +43 -43
  144. package/dist/{opus-ml-bOYT0KYK.js → opus-ml-BCZCLS3I.js} +0 -0
  145. package/dist/{pairing-cli-BDhojI21.js → pairing-cli-D5MlKFSg.js} +22 -20
  146. package/dist/{pairing-labels-CvFO0Xed.js → pairing-labels-BuxC93RD.js} +1 -1
  147. package/dist/{pairing-store-xsNgyCt9.js → pairing-store-CAfuV0tG.js} +2 -2
  148. package/dist/{path-env-5sUMLbkI.js → path-env-l-vih3CM.js} +2 -2
  149. package/dist/{photon_rs-B5YxA0gR.js → photon_rs-BzZzizlY.js} +1 -1
  150. package/dist/{pi-embedded-helpers-BKHjGmkb.js → pi-embedded-helpers-BT9YN8EN.js} +15 -4
  151. package/dist/{pi-model-discovery-Be9FOWKo.js → pi-model-discovery-BXYEAo2_.js} +1 -1
  152. package/dist/{pi-tool-definition-adapter-DyvBzoAn.js → pi-tool-definition-adapter-DJBw_N6j.js} +5 -132
  153. package/dist/{pi-tools.policy-BqLznY7Y.js → pi-tools.policy-CF1TWHzI.js} +5 -5
  154. package/dist/platform-billing-C1NL-xYk.js +90 -0
  155. package/dist/{plugin-auto-enable-D7B2IhaJ.js → plugin-auto-enable-Dq9I_YrQ.js} +5 -5
  156. package/dist/{plugin-registry-BkVHEd2h.js → plugin-registry-DbjKlvxv.js} +4 -4
  157. package/dist/plugin-sdk/capture/audio-recovery.d.ts +13 -0
  158. package/dist/plugin-sdk/capture/context-digest.d.ts +20 -4
  159. package/dist/plugin-sdk/capture/proactive/addressing.d.ts +6 -1
  160. package/dist/plugin-sdk/capture/proactive/fast-responder.d.ts +4 -0
  161. package/dist/plugin-sdk/capture/proactive/handled-dedupe.d.ts +9 -0
  162. package/dist/plugin-sdk/capture/proactive/triggers.d.ts +2 -0
  163. package/dist/plugin-sdk/capture/screen-capture.d.ts +1 -0
  164. package/dist/plugin-sdk/gateway/client.d.ts +3 -0
  165. package/dist/plugin-sdk/index.js +433 -13
  166. package/dist/plugin-sdk/infra/billing-alerts.d.ts +35 -0
  167. package/dist/plugin-sdk/infra/platform-billing.d.ts +95 -0
  168. package/dist/plugin-sdk/infra/sound.d.ts +31 -0
  169. package/dist/plugin-sdk/infra/usage-reporter.d.ts +13 -0
  170. package/dist/plugin-sdk/infra/voice-lock.d.ts +4 -0
  171. package/dist/plugin-sdk/infra/voice-mode.d.ts +8 -0
  172. package/dist/plugin-sdk/koi/action-ledger.d.ts +68 -0
  173. package/dist/plugin-sdk/koi/missions/mission-store.d.ts +252 -0
  174. package/dist/plugin-sdk/koi/pi-tools.action-ledger.d.ts +16 -0
  175. package/dist/plugin-sdk/koi/tools/mission-tool.d.ts +4 -0
  176. package/dist/plugin-sdk/koi/tools/sound-tool.d.ts +2 -0
  177. package/dist/plugin-sdk/koi/tools/surface-tool.d.ts +6 -0
  178. package/dist/plugin-sdk/koi/tools/terminal-window-tool.d.ts +2 -0
  179. package/dist/plugin-sdk/koi/tools/tui-tool.d.ts +4 -0
  180. package/dist/plugin-sdk/{pi-model-discovery-ClImJtLC.js → pi-model-discovery-lynj0LAO.js} +3 -3
  181. package/dist/plugin-sdk/terminal/palette.d.ts +3 -3
  182. package/dist/plugin-sdk/tui/canvas/native-window.d.ts +23 -0
  183. package/dist/plugin-sdk/tui/commands.d.ts +21 -0
  184. package/dist/plugin-sdk/tui/surfaces/rich.d.ts +59 -0
  185. package/dist/plugin-sdk/tui/surfaces/surface-schema.d.ts +176 -0
  186. package/dist/plugin-sdk/tui/tui-fast-lane.d.ts +6 -0
  187. package/dist/{plugins-BXfIVhTg.js → plugins-CD53Y-wp.js} +4 -4
  188. package/dist/{plugins-cli-Cvd2AZr0.js → plugins-cli-DtT5Jky1.js} +85 -78
  189. package/dist/{ports-P59I5wz6.js → ports-BwC_YaV9.js} +2 -2
  190. package/dist/{proactive-eval-CSYN_jPd.js → proactive-eval-COKurBju.js} +120 -18
  191. package/dist/{program-HuCRUtnO.js → program-Bdan5Re0.js} +10 -10
  192. package/dist/{progress-B0j0uCjm.js → progress-B8PPYDDC.js} +2 -2
  193. package/dist/{prompt-style-ukndhQOw.js → prompt-style-CJRaWg4h.js} +1 -1
  194. package/dist/{pw-ai-qan9CSms.js → pw-ai-MRA0vtei.js} +7 -7
  195. package/dist/{qmd-manager-QJjaDN5n.js → qmd-manager-DTOZL6cb.js} +10 -10
  196. package/dist/{register.subclis-BRniFkE8.js → register.subclis-DLAxGibI.js} +41 -34
  197. package/dist/{registry-BwlCjCgP.js → registry-CeLGkFKP.js} +1 -1
  198. package/dist/{reply-CXnyxRT7.js → reply-CeakVs__.js} +1985 -407
  199. package/dist/{routes-BulfbmL9.js → routes-CzWLXx_5.js} +5 -5
  200. package/dist/{rpc-iHZ4CdDy.js → rpc-D60f3mQJ.js} +3 -3
  201. package/dist/{run-code-tool-C6xBmHR8.js → run-code-tool-D_IiYvXk.js} +3 -3
  202. package/dist/run-main-B447_VHV.js +266 -0
  203. package/dist/{runner-CJBcTtHm.js → runner-Clpozjbh.js} +13 -13
  204. package/dist/{runtime-guard-DwWuihJc.js → runtime-guard-n_6wqagw.js} +1 -1
  205. package/dist/{sandbox-BDgjUQMi.js → sandbox-Cbna_c5-.js} +10 -10
  206. package/dist/{sandbox-cli-Cby742TY.js → sandbox-cli-BB7HOBoE.js} +33 -31
  207. package/dist/{security-cli-CPmzj6Sz.js → security-cli-D0vW1wVa.js} +41 -39
  208. package/dist/{server-context-BXVciJDs.js → server-context-BJHsKqE-.js} +6 -6
  209. package/dist/{server-node-events-Ccqo9orb.js → server-node-events-D8GT8uk3.js} +82 -75
  210. package/dist/{service-uVwIUnyd.js → service-1PIPCZLN.js} +3 -3
  211. package/dist/{service-audit-C3lXz7SM.js → service-audit-4sWJC_8b.js} +4 -4
  212. package/dist/{session-cost-usage-nkKUBhE6.js → session-cost-usage-390r-k2C.js} +3 -3
  213. package/dist/{sessions-BZmo1ZOK.js → sessions-Bw-bW4LE.js} +9 -9
  214. package/dist/{shared-BVoNuNpJ.js → shared-B3D23vix.js} +3 -3
  215. package/dist/{shared-DFK_9l-h.js → shared-VahqF_rL.js} +4 -4
  216. package/dist/{signin-IXYHg4Uc.js → signin-BCQGcdwY.js} +3 -3
  217. package/dist/{skills-B-Ygkos2.js → skills-DNrmh4f5.js} +4 -4
  218. package/dist/{skills-cli-xPfXqJZK.js → skills-cli-BmwtHUOk.js} +23 -21
  219. package/dist/{skills-status-BsYpGjpf.js → skills-status-C_9Fng_J.js} +4 -4
  220. package/dist/{sqlite-DOBJPTUL.js → sqlite-BbqzXnP1.js} +1 -1
  221. package/dist/{src-D3L_3lDz.js → src-DdQjYrwa.js} +2 -2
  222. package/dist/{sso-oidc-CBT_5H0k.js → sso-oidc-DZB8jCfr.js} +3 -3
  223. package/dist/{status-BwV0-O-o.js → status-CrO76MFO.js} +4 -4
  224. package/dist/{sts-DUuApX4j.js → sts-BObA_n-X.js} +3 -3
  225. package/dist/{subsystem-hATE68va.js → subsystem-nnRnHSFk.js} +2 -1
  226. package/dist/surface-schema-oyrYt29a.js +352 -0
  227. package/dist/surface-tool-D3-t2zWo.js +737 -0
  228. package/dist/{system-cli-q-dsgPiF.js → system-cli-OVe0g_t-.js} +22 -20
  229. package/dist/{system-prompt-snippet-BDBC6NFH.js → system-prompt-snippet-Bqczx6N4.js} +1 -1
  230. package/dist/{systemd-BHooCrgQ.js → systemd-B-oxI1lo.js} +3 -3
  231. package/dist/{systemd-linger-Cd_EluWx.js → systemd-linger-7JLw0S1F.js} +2 -2
  232. package/dist/{table-CkPRZ00Y.js → table-D2ppyftY.js} +1 -1
  233. package/dist/{tailscale-DI3z_prJ.js → tailscale-g_N6Bh5V.js} +2 -2
  234. package/dist/{theme-C5EwWDWE.js → theme-CX-D7gOR.js} +3 -3
  235. package/dist/{tool-display-bfQcpWKs.js → tool-display-DuLUEXc4.js} +2 -2
  236. package/dist/{tool-images-CfUP8C2Q.js → tool-images-DuA3wEIF.js} +2 -2
  237. package/dist/{tui-DTXl7UC3.js → tui-DtWZHjbH.js} +2997 -418
  238. package/dist/tui-cli-B6tFp3m2.js +90 -0
  239. package/dist/tui-shell-CMF-EcWF.js +2488 -0
  240. package/dist/{update-BiUXBPHB.js → update-CyjGjW2B.js} +3 -3
  241. package/dist/{update-cli-A0bVt8gN.js → update-cli-B87NnXmu.js} +110 -103
  242. package/dist/{update-runner-jwOI-gT0.js → update-runner-C5I8to5U.js} +4 -4
  243. package/dist/usage-reporter-__hD-gmH.js +62 -0
  244. package/dist/{utilities-CV8S7znT.js → utilities-BsE-AIiU.js} +1 -1
  245. package/dist/{utils-D019Z2NU.js → utils-B1LOScGi.js} +1 -1
  246. package/dist/{voices-cli-C47TvBx-.js → voices-cli-Cljlrh9q.js} +3 -3
  247. package/dist/{webhooks-cli-DvT3Sgzy.js → webhooks-cli-0IOenv6i.js} +22 -20
  248. package/dist/{widearea-dns-CBcJDOBk.js → widearea-dns-144bz3_M.js} +1 -1
  249. package/dist/{ws-log-OLBQeEZR.js → ws-log-BKniqa5-.js} +2 -2
  250. package/extensions/bluebubbles/package.json +1 -1
  251. package/extensions/copilot-proxy/package.json +1 -1
  252. package/extensions/diagnostics-otel/package.json +1 -1
  253. package/extensions/discord/package.json +1 -1
  254. package/extensions/feishu/package.json +1 -1
  255. package/extensions/google-antigravity-auth/package.json +1 -1
  256. package/extensions/google-gemini-cli-auth/package.json +1 -1
  257. package/extensions/googlechat/package.json +1 -1
  258. package/extensions/imessage/package.json +1 -1
  259. package/extensions/line/package.json +1 -1
  260. package/extensions/llm-task/package.json +1 -1
  261. package/extensions/lobster/package.json +1 -1
  262. package/extensions/matrix/CHANGELOG.md +5 -0
  263. package/extensions/matrix/package.json +1 -1
  264. package/extensions/mattermost/package.json +1 -1
  265. package/extensions/memory-core/package.json +1 -1
  266. package/extensions/memory-lancedb/package.json +1 -1
  267. package/extensions/minimax-portal-auth/package.json +1 -1
  268. package/extensions/msteams/CHANGELOG.md +5 -0
  269. package/extensions/msteams/package.json +1 -1
  270. package/extensions/nextcloud-talk/package.json +1 -1
  271. package/extensions/nostr/CHANGELOG.md +5 -0
  272. package/extensions/nostr/package.json +1 -1
  273. package/extensions/open-prose/package.json +1 -1
  274. package/extensions/signal/package.json +1 -1
  275. package/extensions/slack/package.json +1 -1
  276. package/extensions/telegram/package.json +1 -1
  277. package/extensions/tlon/package.json +1 -1
  278. package/extensions/twitch/CHANGELOG.md +5 -0
  279. package/extensions/twitch/package.json +1 -1
  280. package/extensions/voice-call/CHANGELOG.md +5 -0
  281. package/extensions/voice-call/package.json +1 -1
  282. package/extensions/whatsapp/package.json +1 -1
  283. package/extensions/zalo/CHANGELOG.md +5 -0
  284. package/extensions/zalo/package.json +1 -1
  285. package/extensions/zalouser/CHANGELOG.md +5 -0
  286. package/extensions/zalouser/package.json +1 -1
  287. package/package.json +3 -1
  288. package/dist/cli-6zMDsfHU.js +0 -121
  289. package/dist/run-main-DaqITs8B.js +0 -259
  290. package/dist/tui-cli-Bxz-uEv7.js +0 -85
  291. /package/dist/{BasicParser-C6W1sr3t.js → BasicParser-U_VUNDqV.js} +0 -0
  292. /package/dist/{brew-9xTQVvl4.js → brew-3kNdt7Tb.js} +0 -0
  293. /package/dist/{capture-cli-DeRDbNaM.js → capture-cli-BXoDec2V.js} +0 -0
  294. /package/dist/{cli-utils-DBV8EzWu.js → cli-utils-D4mTRuWj.js} +0 -0
  295. /package/dist/{codec-parser-DNgdIkZo.js → codec-parser-CfLaB7hV.js} +0 -0
  296. /package/dist/{companions-Beo2qBnF.js → companions-BJ51VoNQ.js} +0 -0
  297. /package/dist/{constants-C4LZjcL0.js → constants-UedXN8EP.js} +0 -0
  298. /package/dist/{core-Cp6b38f5.js → core-DBlHTVnh.js} +0 -0
  299. /package/dist/{declarations-BLQN6vzU.js → declarations-BgNWvwRD.js} +0 -0
  300. /package/dist/{device-identity-Bxhfs1xr.js → device-identity-CnlyT2Si.js} +0 -0
  301. /package/dist/{dist-cjs-mZuQohD2.js → dist-cjs-BQP-IijP.js} +0 -0
  302. /package/dist/{dist-cjs-b__m_5I9.js → dist-cjs-BmnPB1jn.js} +0 -0
  303. /package/dist/{esm-5V9F2UI9.js → esm-Bwe0PhIx.js} +0 -0
  304. /package/dist/{esm-B_NgDkcJ.js → esm-DoTT4779.js} +0 -0
  305. /package/dist/{esm-shims-CCgr543I.js → esm-shims-CZxOEdhX.js} +0 -0
  306. /package/dist/{event-log-Dcegp3Ty.js → event-log-GjAdTbhH.js} +0 -0
  307. /package/dist/{event-streams-DaNwcPzQ.js → event-streams-Csvkf0H9.js} +0 -0
  308. /package/dist/{exec-approvals-io-C7x-a9Hw.js → exec-approvals-io-Dzpqn78T.js} +0 -0
  309. /package/dist/{format-BukmQlAy.js → format-VfkOx6-j.js} +0 -0
  310. /package/dist/{from-BSX7jrKl.js → from-CGdgVXVh.js} +0 -0
  311. /package/dist/{helpers-DAB_ZzN_.js → helpers-BQx04rHM.js} +0 -0
  312. /package/dist/{helpers-Znu8d1r-.js → helpers-BjRf8izo.js} +0 -0
  313. /package/dist/{is-main-t6udOkz0.js → is-main-DSI7jxxO.js} +0 -0
  314. /package/dist/{koi-events-BZbg2_wc.js → koi-events-DVxTOxY3.js} +0 -0
  315. /package/dist/{lib-C2sG32ef.js → lib-ByOt3MM6.js} +0 -0
  316. /package/dist/{live-broadcast-DqBXFyuv.js → live-broadcast-DCmC05EX.js} +0 -0
  317. /package/dist/{logging-CeI8pPxx.js → logging-_TuF9Wz5.js} +0 -0
  318. /package/dist/{node-pairing-CKU0Vndp.js → node-pairing-WRkSoKg6.js} +0 -0
  319. /package/dist/{node-pty-BC0IrNrz.js → node-pty-D6_yz-nj.js} +0 -0
  320. /package/dist/{node-wav-Dcsv0qJn.js → node-wav-C69hUXJQ.js} +0 -0
  321. /package/dist/{nodes-screen-Ce8fGLhD.js → nodes-screen-Bq-MvKAS.js} +0 -0
  322. /package/dist/{package-CYglbfBi.js → package-tSSXvvmw.js} +0 -0
  323. /package/dist/{parse-DfgX5okr.js → parse-C-X5VUYI.js} +0 -0
  324. /package/dist/{parse-log-line-B7kujwuK.js → parse-log-line-D3A_B887.js} +0 -0
  325. /package/dist/{parse-timeout-uTDpUWKR.js → parse-timeout-BLJlOyi9.js} +0 -0
  326. /package/dist/{paths-DNVGKsSx.js → paths-CSkT3OSc.js} +0 -0
  327. /package/dist/{pdf-Mh9_16lK.js → pdf-C_O50gj_.js} +0 -0
  328. /package/dist/{permissions-cli-DFPDPZxw.js → permissions-cli-5le2f2Nh.js} +0 -0
  329. /package/dist/{prompts-C1Vmrk7-.js → prompts-DYHiZQrN.js} +0 -0
  330. /package/dist/{proxy-from-env-NVPRlS0s.js → proxy-from-env-DLgZWuUz.js} +0 -0
  331. /package/dist/{qoa-format-7pjCrDI4.js → qoa-format-a2PKNmaO.js} +0 -0
  332. /package/dist/{readability-CgQ4UgOG.js → readability-CtdUWMao.js} +0 -0
  333. /package/dist/{readiness-BWlDObOD.js → readiness-CsTLW2HG.js} +0 -0
  334. /package/dist/{redact-CuHse7Ma.js → redact-C_niMCEt.js} +0 -0
  335. /package/dist/{restart-sentinel-CLogImVw.js → restart-sentinel-CDgY6TKs.js} +0 -0
  336. /package/dist/{satisfies-c71IS8Gf.js → satisfies-DCdzcNI3.js} +0 -0
  337. /package/dist/{skill-scanner-bplK_9eh.js → skill-scanner-CHERbcdS.js} +0 -0
  338. /package/dist/{source-map-Bmak3bxf.js → source-map-BPrZwUsc.js} +0 -0
  339. /package/dist/{sqlite-vec-oxBcWjn-.js → sqlite-vec-DjRUBaGJ.js} +0 -0
  340. /package/dist/{src-CAVRZapq.js → src-CmhBs-ok.js} +0 -0
  341. /package/dist/{status-Cx1u-AZW.js → status-BCbYlRxj.js} +0 -0
  342. /package/dist/{streams-cli-DJUX7C_p.js → streams-cli-CvA_PiEJ.js} +0 -0
  343. /package/dist/{systemd-hints-FC3MfrkS.js → systemd-hints-Iy9PbvSO.js} +0 -0
  344. /package/dist/{tailnet-Cz2pl07T.js → tailnet-7u3DZ0jI.js} +0 -0
  345. /package/dist/{tokens-BmRB1Mkz.js → tokens-BOqWQAHG.js} +0 -0
  346. /package/dist/{tool-policy-BYmiYVth.js → tool-policy-D0UyOgTa.js} +0 -0
  347. /package/dist/{transcript-events-CJRvASY_.js → transcript-events-CJYf92EG.js} +0 -0
  348. /package/dist/{transcript-tools-CVkBX-9k.js → transcript-tools-CuT_qMqy.js} +0 -0
  349. /package/dist/{types-CLcz00_s.js → types-BZ0NKYKW.js} +0 -0
  350. /package/dist/{uint8array-extras-BXjehc45.js → uint8array-extras-DljR8Tc5.js} +0 -0
  351. /package/dist/{usage-format-EdDmn0JB.js → usage-format-BtvBsfKP.js} +0 -0
  352. /package/dist/{version-BKRSzdyx.js → version-B_FpLmDY.js} +0 -0
  353. /package/dist/{warnings-Cl3wLuoe.js → warnings-By22Qhsf.js} +0 -0
  354. /package/dist/{ws-DQzNsCSb.js → ws-DPaVlhjj.js} +0 -0
  355. /package/dist/{wsl-DzPWlBsw.js → wsl-3CioBf4_.js} +0 -0
@@ -1,9 +1,9 @@
1
1
  import { o as __toESM, r as __exportAll } from "./chunk-D_gEzPfs.js";
2
- import { n as fromBuffer } from "./core-Cp6b38f5.js";
3
- import { C as textEncode, S as textDecode, b as Uint8ArrayType, f as UINT16_LE, g as UINT32_LE, u as StringType } from "./lib-C2sG32ef.js";
4
- import { t as require_src } from "./src-CAVRZapq.js";
5
- import { i as InternalParserError, r as FieldDecodingError, s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-C6W1sr3t.js";
6
- import { i as findZero, t as a2hex } from "./Util-GThona7t.js";
2
+ import { n as fromBuffer } from "./core-DBlHTVnh.js";
3
+ import { C as textEncode, S as textDecode, b as Uint8ArrayType, f as UINT16_LE, g as UINT32_LE, u as StringType } from "./lib-ByOt3MM6.js";
4
+ import { t as require_src } from "./src-CmhBs-ok.js";
5
+ import { i as InternalParserError, r as FieldDecodingError, s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-U_VUNDqV.js";
6
+ import { i as findZero, t as a2hex } from "./Util-xNyaZSrh.js";
7
7
 
8
8
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/common/FourCC.js
9
9
  const validFourCC = /^[\x21-\x7e©][\x20-\x7e\x00()]{3}/;
@@ -1,10 +1,10 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
- import { o as EndOfStreamError } from "./core-Cp6b38f5.js";
3
- import { t as require_src } from "./src-CAVRZapq.js";
4
- import { t as BasicParser } from "./BasicParser-C6W1sr3t.js";
5
- import { r as ID3v2Header } from "./ID3v2Token-CHyCfrHg.js";
6
- import { n as ID3v1Parser } from "./ID3v1Parser-BfOq3_Yz.js";
7
- import { t as ID3v2Parser } from "./ID3v2Parser-DVcXrmaC.js";
2
+ import { o as EndOfStreamError } from "./core-DBlHTVnh.js";
3
+ import { t as require_src } from "./src-CmhBs-ok.js";
4
+ import { t as BasicParser } from "./BasicParser-U_VUNDqV.js";
5
+ import { r as ID3v2Header } from "./ID3v2Token-B8x5hqU0.js";
6
+ import { n as ID3v1Parser } from "./ID3v1Parser-DFy4afSr.js";
7
+ import { t as ID3v2Parser } from "./ID3v2Parser-tAb38aE5.js";
8
8
 
9
9
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js
10
10
  var import_src = /* @__PURE__ */ __toESM(require_src(), 1);
@@ -1,11 +1,11 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
- import { n as fromBuffer, o as EndOfStreamError } from "./core-Cp6b38f5.js";
3
- import "./lib-B2lQEF5z.js";
4
- import { b as Uint8ArrayType, d as UINT16_BE, h as UINT32_BE, u as StringType, y as UINT8 } from "./lib-C2sG32ef.js";
5
- import { t as require_src } from "./src-CAVRZapq.js";
6
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-C6W1sr3t.js";
7
- import { i as FourCcToken } from "./APEv2Parser-aF9uvuWj.js";
8
- import { t as ID3v2Parser } from "./ID3v2Parser-DVcXrmaC.js";
2
+ import { n as fromBuffer, o as EndOfStreamError } from "./core-DBlHTVnh.js";
3
+ import "./lib-ClzeDYaP.js";
4
+ import { b as Uint8ArrayType, d as UINT16_BE, h as UINT32_BE, u as StringType, y as UINT8 } from "./lib-ByOt3MM6.js";
5
+ import { t as require_src } from "./src-CmhBs-ok.js";
6
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-U_VUNDqV.js";
7
+ import { i as FourCcToken } from "./APEv2Parser-C3g2BkLd.js";
8
+ import { t as ID3v2Parser } from "./ID3v2Parser-tAb38aE5.js";
9
9
 
10
10
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/aiff/AiffToken.js
11
11
  var import_src = /* @__PURE__ */ __toESM(require_src(), 1);
@@ -1,10 +1,10 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
- import { f as UINT16_LE, g as UINT32_LE, u as StringType, v as UINT64_LE } from "./lib-C2sG32ef.js";
3
- import { t as require_src } from "./src-CAVRZapq.js";
4
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-C6W1sr3t.js";
5
- import { a as getBit, c as stripNulls, n as decodeString } from "./Util-GThona7t.js";
6
- import { t as AttachedPictureType } from "./ID3v2Token-CHyCfrHg.js";
7
- import { n as TrackType } from "./types-CLcz00_s.js";
2
+ import { f as UINT16_LE, g as UINT32_LE, u as StringType, v as UINT64_LE } from "./lib-ByOt3MM6.js";
3
+ import { t as require_src } from "./src-CmhBs-ok.js";
4
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-U_VUNDqV.js";
5
+ import { a as getBit, c as stripNulls, n as decodeString } from "./Util-xNyaZSrh.js";
6
+ import { t as AttachedPictureType } from "./ID3v2Token-B8x5hqU0.js";
7
+ import { n as TrackType } from "./types-BZ0NKYKW.js";
8
8
 
9
9
  //#region node_modules/.pnpm/win-guid@0.2.1/node_modules/win-guid/lib/guid.js
10
10
  var import_src = /* @__PURE__ */ __toESM(require_src(), 1);
@@ -1,11 +1,11 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
- import { n as fromBuffer } from "./core-Cp6b38f5.js";
3
- import "./lib-B2lQEF5z.js";
4
- import { b as Uint8ArrayType, d as UINT16_BE, g as UINT32_LE, h as UINT32_BE, s as INT64_BE, u as StringType, y as UINT8 } from "./lib-C2sG32ef.js";
5
- import { t as require_src } from "./src-CAVRZapq.js";
6
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-C6W1sr3t.js";
7
- import { i as FourCcToken } from "./APEv2Parser-aF9uvuWj.js";
8
- import { t as ID3v2Parser } from "./ID3v2Parser-DVcXrmaC.js";
2
+ import { n as fromBuffer } from "./core-DBlHTVnh.js";
3
+ import "./lib-ClzeDYaP.js";
4
+ import { b as Uint8ArrayType, d as UINT16_BE, g as UINT32_LE, h as UINT32_BE, s as INT64_BE, u as StringType, y as UINT8 } from "./lib-ByOt3MM6.js";
5
+ import { t as require_src } from "./src-CmhBs-ok.js";
6
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-U_VUNDqV.js";
7
+ import { i as FourCcToken } from "./APEv2Parser-C3g2BkLd.js";
8
+ import { t as ID3v2Parser } from "./ID3v2Parser-tAb38aE5.js";
9
9
 
10
10
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/dsdiff/DsdiffToken.js
11
11
  var import_src = /* @__PURE__ */ __toESM(require_src(), 1);
@@ -1,11 +1,11 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
- import "./lib-B2lQEF5z.js";
3
- import { c as INT64_LE, o as INT32_LE, v as UINT64_LE } from "./lib-C2sG32ef.js";
4
- import { t as require_src } from "./src-CAVRZapq.js";
5
- import { s as makeUnexpectedFileContentError } from "./BasicParser-C6W1sr3t.js";
6
- import { i as FourCcToken } from "./APEv2Parser-aF9uvuWj.js";
7
- import { t as ID3v2Parser } from "./ID3v2Parser-DVcXrmaC.js";
8
- import { t as AbstractID3Parser } from "./AbstractID3Parser-C6T7VM07.js";
2
+ import "./lib-ClzeDYaP.js";
3
+ import { c as INT64_LE, o as INT32_LE, v as UINT64_LE } from "./lib-ByOt3MM6.js";
4
+ import { t as require_src } from "./src-CmhBs-ok.js";
5
+ import { s as makeUnexpectedFileContentError } from "./BasicParser-U_VUNDqV.js";
6
+ import { i as FourCcToken } from "./APEv2Parser-C3g2BkLd.js";
7
+ import { t as ID3v2Parser } from "./ID3v2Parser-tAb38aE5.js";
8
+ import { t as AbstractID3Parser } from "./AbstractID3Parser-DYMMNUGc.js";
9
9
 
10
10
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/dsf/DsfChunk.js
11
11
  var import_src = /* @__PURE__ */ __toESM(require_src(), 1);
@@ -1,11 +1,11 @@
1
1
  import { o as __toESM, r as __exportAll } from "./chunk-D_gEzPfs.js";
2
- import { S as textDecode, b as Uint8ArrayType, d as UINT16_BE, g as UINT32_LE, h as UINT32_BE, p as UINT24_BE, u as StringType, y as UINT8 } from "./lib-C2sG32ef.js";
3
- import { t as require_src } from "./src-CAVRZapq.js";
4
- import { s as makeUnexpectedFileContentError } from "./BasicParser-C6W1sr3t.js";
5
- import { a as getBit, o as getBitAllignedNumber } from "./Util-GThona7t.js";
6
- import { t as AttachedPictureType } from "./ID3v2Token-CHyCfrHg.js";
7
- import { i as FourCcToken } from "./APEv2Parser-aF9uvuWj.js";
8
- import { t as AbstractID3Parser } from "./AbstractID3Parser-C6T7VM07.js";
2
+ import { S as textDecode, b as Uint8ArrayType, d as UINT16_BE, g as UINT32_LE, h as UINT32_BE, p as UINT24_BE, u as StringType, y as UINT8 } from "./lib-ByOt3MM6.js";
3
+ import { t as require_src } from "./src-CmhBs-ok.js";
4
+ import { s as makeUnexpectedFileContentError } from "./BasicParser-U_VUNDqV.js";
5
+ import { a as getBit, o as getBitAllignedNumber } from "./Util-xNyaZSrh.js";
6
+ import { t as AttachedPictureType } from "./ID3v2Token-B8x5hqU0.js";
7
+ import { i as FourCcToken } from "./APEv2Parser-C3g2BkLd.js";
8
+ import { t as AbstractID3Parser } from "./AbstractID3Parser-DYMMNUGc.js";
9
9
 
10
10
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js
11
11
  /**
@@ -1,9 +1,9 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
- import { S as textDecode, u as StringType, y as UINT8 } from "./lib-C2sG32ef.js";
3
- import { t as require_src } from "./src-CAVRZapq.js";
4
- import { t as BasicParser } from "./BasicParser-C6W1sr3t.js";
5
- import { u as trimRightNull } from "./Util-GThona7t.js";
6
- import { t as APEv2Parser } from "./APEv2Parser-aF9uvuWj.js";
2
+ import { S as textDecode, u as StringType, y as UINT8 } from "./lib-ByOt3MM6.js";
3
+ import { t as require_src } from "./src-CmhBs-ok.js";
4
+ import { t as BasicParser } from "./BasicParser-U_VUNDqV.js";
5
+ import { u as trimRightNull } from "./Util-xNyaZSrh.js";
6
+ import { t as APEv2Parser } from "./APEv2Parser-C3g2BkLd.js";
7
7
 
8
8
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/id3v1/ID3v1Parser.js
9
9
  var import_src = /* @__PURE__ */ __toESM(require_src(), 1);
@@ -1,10 +1,10 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
- import { S as textDecode, b as Uint8ArrayType, h as UINT32_BE, p as UINT24_BE, y as UINT8 } from "./lib-C2sG32ef.js";
3
- import { t as require_src } from "./src-CAVRZapq.js";
4
- import { s as makeUnexpectedFileContentError } from "./BasicParser-C6W1sr3t.js";
5
- import { a as getBit, i as findZero, n as decodeString, r as decodeUintBE } from "./Util-GThona7t.js";
6
- import { a as SyncTextHeader, l as UINT32SYNCSAFE, n as ExtendedHeader, o as TextEncodingToken, r as ID3v2Header, s as TextHeader, t as AttachedPictureType } from "./ID3v2Token-CHyCfrHg.js";
7
- import { t as Genres } from "./ID3v1Parser-BfOq3_Yz.js";
2
+ import { S as textDecode, b as Uint8ArrayType, h as UINT32_BE, p as UINT24_BE, y as UINT8 } from "./lib-ByOt3MM6.js";
3
+ import { t as require_src } from "./src-CmhBs-ok.js";
4
+ import { s as makeUnexpectedFileContentError } from "./BasicParser-U_VUNDqV.js";
5
+ import { a as getBit, i as findZero, n as decodeString, r as decodeUintBE } from "./Util-xNyaZSrh.js";
6
+ import { a as SyncTextHeader, l as UINT32SYNCSAFE, n as ExtendedHeader, o as TextEncodingToken, r as ID3v2Header, s as TextHeader, t as AttachedPictureType } from "./ID3v2Token-B8x5hqU0.js";
7
+ import { t as Genres } from "./ID3v1Parser-DFy4afSr.js";
8
8
 
9
9
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/id3v2/ID3v2ChapterToken.js
10
10
  /**
@@ -1,5 +1,5 @@
1
- import { d as UINT16_BE, h as UINT32_BE, l as INT8, u as StringType, y as UINT8 } from "./lib-C2sG32ef.js";
2
- import { a as getBit } from "./Util-GThona7t.js";
1
+ import { d as UINT16_BE, h as UINT32_BE, l as INT8, u as StringType, y as UINT8 } from "./lib-ByOt3MM6.js";
2
+ import { a as getBit } from "./Util-xNyaZSrh.js";
3
3
 
4
4
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/id3v2/ID3v2Token.js
5
5
  /**
@@ -1,13 +1,13 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
- import "./lib-B2lQEF5z.js";
3
- import { S as textDecode, _ as UINT64_BE, a as INT32_BE, b as Uint8ArrayType, d as UINT16_BE, h as UINT32_BE, i as INT24_BE, l as INT8, p as UINT24_BE, r as INT16_BE, u as StringType, x as lib_exports, y as UINT8 } from "./lib-C2sG32ef.js";
4
- import { t as require_src } from "./src-CAVRZapq.js";
5
- import { n as uint8ArrayToHex } from "./uint8array-extras-BXjehc45.js";
6
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-C6W1sr3t.js";
7
- import { a as getBit } from "./Util-GThona7t.js";
8
- import { i as FourCcToken } from "./APEv2Parser-aF9uvuWj.js";
9
- import { t as Genres } from "./ID3v1Parser-BfOq3_Yz.js";
10
- import { n as TrackType } from "./types-CLcz00_s.js";
2
+ import "./lib-ClzeDYaP.js";
3
+ import { S as textDecode, _ as UINT64_BE, a as INT32_BE, b as Uint8ArrayType, d as UINT16_BE, h as UINT32_BE, i as INT24_BE, l as INT8, p as UINT24_BE, r as INT16_BE, u as StringType, x as lib_exports, y as UINT8 } from "./lib-ByOt3MM6.js";
4
+ import { t as require_src } from "./src-CmhBs-ok.js";
5
+ import { n as uint8ArrayToHex } from "./uint8array-extras-DljR8Tc5.js";
6
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-U_VUNDqV.js";
7
+ import { a as getBit } from "./Util-xNyaZSrh.js";
8
+ import { i as FourCcToken } from "./APEv2Parser-C3g2BkLd.js";
9
+ import { t as Genres } from "./ID3v1Parser-DFy4afSr.js";
10
+ import { n as TrackType } from "./types-BZ0NKYKW.js";
11
11
 
12
12
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/mp4/AtomToken.js
13
13
  var import_src = /* @__PURE__ */ __toESM(require_src(), 1);
@@ -1,10 +1,10 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
- import { o as EndOfStreamError } from "./core-Cp6b38f5.js";
3
- import "./lib-B2lQEF5z.js";
4
- import { _ as UINT64_BE, n as Float64_BE, t as Float32_BE, u as StringType, y as UINT8 } from "./lib-C2sG32ef.js";
5
- import { t as require_src } from "./src-CAVRZapq.js";
6
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-C6W1sr3t.js";
7
- import { n as TrackType, t as TargetType } from "./types-CLcz00_s.js";
2
+ import { o as EndOfStreamError } from "./core-DBlHTVnh.js";
3
+ import "./lib-ClzeDYaP.js";
4
+ import { _ as UINT64_BE, n as Float64_BE, t as Float32_BE, u as StringType, y as UINT8 } from "./lib-ByOt3MM6.js";
5
+ import { t as require_src } from "./src-CmhBs-ok.js";
6
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-U_VUNDqV.js";
7
+ import { n as TrackType, t as TargetType } from "./types-BZ0NKYKW.js";
8
8
 
9
9
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/ebml/types.js
10
10
  var import_src = /* @__PURE__ */ __toESM(require_src(), 1);
@@ -1,11 +1,11 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
- import { o as EndOfStreamError } from "./core-Cp6b38f5.js";
3
- import "./lib-B2lQEF5z.js";
4
- import { b as Uint8ArrayType, d as UINT16_BE, h as UINT32_BE, r as INT16_BE, u as StringType, y as UINT8 } from "./lib-C2sG32ef.js";
5
- import { t as require_src } from "./src-CAVRZapq.js";
6
- import { s as makeUnexpectedFileContentError } from "./BasicParser-C6W1sr3t.js";
7
- import { c as stripNulls, o as getBitAllignedNumber, s as isBitSet } from "./Util-GThona7t.js";
8
- import { t as AbstractID3Parser } from "./AbstractID3Parser-C6T7VM07.js";
2
+ import { o as EndOfStreamError } from "./core-DBlHTVnh.js";
3
+ import "./lib-ClzeDYaP.js";
4
+ import { b as Uint8ArrayType, d as UINT16_BE, h as UINT32_BE, r as INT16_BE, u as StringType, y as UINT8 } from "./lib-ByOt3MM6.js";
5
+ import { t as require_src } from "./src-CmhBs-ok.js";
6
+ import { s as makeUnexpectedFileContentError } from "./BasicParser-U_VUNDqV.js";
7
+ import { c as stripNulls, o as getBitAllignedNumber, s as isBitSet } from "./Util-xNyaZSrh.js";
8
+ import { t as AbstractID3Parser } from "./AbstractID3Parser-DYMMNUGc.js";
9
9
 
10
10
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/mpeg/ReplayGainDataFormat.js
11
11
  var import_src = /* @__PURE__ */ __toESM(require_src(), 1);
@@ -1,11 +1,11 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
- import "./lib-B2lQEF5z.js";
3
- import { S as textDecode, f as UINT16_LE, g as UINT32_LE, u as StringType, y as UINT8 } from "./lib-C2sG32ef.js";
4
- import { t as require_src } from "./src-CAVRZapq.js";
5
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-C6W1sr3t.js";
6
- import { o as getBitAllignedNumber, s as isBitSet } from "./Util-GThona7t.js";
7
- import { i as FourCcToken, r as tryParseApeHeader } from "./APEv2Parser-aF9uvuWj.js";
8
- import { t as AbstractID3Parser } from "./AbstractID3Parser-C6T7VM07.js";
2
+ import "./lib-ClzeDYaP.js";
3
+ import { S as textDecode, f as UINT16_LE, g as UINT32_LE, u as StringType, y as UINT8 } from "./lib-ByOt3MM6.js";
4
+ import { t as require_src } from "./src-CmhBs-ok.js";
5
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-U_VUNDqV.js";
6
+ import { o as getBitAllignedNumber, s as isBitSet } from "./Util-xNyaZSrh.js";
7
+ import { i as FourCcToken, r as tryParseApeHeader } from "./APEv2Parser-C3g2BkLd.js";
8
+ import { t as AbstractID3Parser } from "./AbstractID3Parser-DYMMNUGc.js";
9
9
 
10
10
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/musepack/sv8/StreamVersion8.js
11
11
  var import_src = /* @__PURE__ */ __toESM(require_src(), 1);
@@ -1,12 +1,12 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
- import { o as EndOfStreamError } from "./core-Cp6b38f5.js";
3
- import "./lib-B2lQEF5z.js";
4
- import { b as Uint8ArrayType, d as UINT16_BE, f as UINT16_LE, g as UINT32_LE, o as INT32_LE, p as UINT24_BE, u as StringType, v as UINT64_LE, y as UINT8 } from "./lib-C2sG32ef.js";
5
- import { t as require_src } from "./src-CAVRZapq.js";
6
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-C6W1sr3t.js";
7
- import { a as getBit, u as trimRightNull } from "./Util-GThona7t.js";
8
- import { i as FourCcToken } from "./APEv2Parser-aF9uvuWj.js";
9
- import { a as BlockType, i as BlockStreamInfo, o as VorbisStream, r as BlockHeader, s as VorbisPictureToken, t as FlacParser } from "./FlacParser-BQ151mCK.js";
2
+ import { o as EndOfStreamError } from "./core-DBlHTVnh.js";
3
+ import "./lib-ClzeDYaP.js";
4
+ import { b as Uint8ArrayType, d as UINT16_BE, f as UINT16_LE, g as UINT32_LE, o as INT32_LE, p as UINT24_BE, u as StringType, v as UINT64_LE, y as UINT8 } from "./lib-ByOt3MM6.js";
5
+ import { t as require_src } from "./src-CmhBs-ok.js";
6
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-U_VUNDqV.js";
7
+ import { a as getBit, u as trimRightNull } from "./Util-xNyaZSrh.js";
8
+ import { i as FourCcToken } from "./APEv2Parser-C3g2BkLd.js";
9
+ import { a as BlockType, i as BlockStreamInfo, o as VorbisStream, r as BlockHeader, s as VorbisPictureToken, t as FlacParser } from "./FlacParser-BwSDKV1A.js";
10
10
 
11
11
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/ogg/opus/Opus.js
12
12
  var import_src = /* @__PURE__ */ __toESM(require_src(), 1);
@@ -1,6 +1,6 @@
1
- import { u as StringType } from "./lib-C2sG32ef.js";
2
- import { t as getUintBE } from "./uint8array-extras-BXjehc45.js";
3
- import { r as FieldDecodingError } from "./BasicParser-C6W1sr3t.js";
1
+ import { u as StringType } from "./lib-ByOt3MM6.js";
2
+ import { t as getUintBE } from "./uint8array-extras-DljR8Tc5.js";
3
+ import { r as FieldDecodingError } from "./BasicParser-U_VUNDqV.js";
4
4
 
5
5
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/common/Util.js
6
6
  function getBit(buf, off, bit) {
@@ -1,10 +1,10 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
- import "./lib-B2lQEF5z.js";
3
- import { b as Uint8ArrayType, f as UINT16_LE, g as UINT32_LE, m as UINT24_LE, y as UINT8 } from "./lib-C2sG32ef.js";
4
- import { t as require_src } from "./src-CAVRZapq.js";
5
- import { n as uint8ArrayToHex } from "./uint8array-extras-BXjehc45.js";
6
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-C6W1sr3t.js";
7
- import { i as FourCcToken, r as tryParseApeHeader } from "./APEv2Parser-aF9uvuWj.js";
2
+ import "./lib-ClzeDYaP.js";
3
+ import { b as Uint8ArrayType, f as UINT16_LE, g as UINT32_LE, m as UINT24_LE, y as UINT8 } from "./lib-ByOt3MM6.js";
4
+ import { t as require_src } from "./src-CmhBs-ok.js";
5
+ import { n as uint8ArrayToHex } from "./uint8array-extras-DljR8Tc5.js";
6
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-U_VUNDqV.js";
7
+ import { i as FourCcToken, r as tryParseApeHeader } from "./APEv2Parser-C3g2BkLd.js";
8
8
 
9
9
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/wavpack/WavPackToken.js
10
10
  const SampleRates = [
@@ -1,12 +1,12 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
- import { n as fromBuffer, o as EndOfStreamError } from "./core-Cp6b38f5.js";
3
- import "./lib-B2lQEF5z.js";
4
- import { b as Uint8ArrayType, f as UINT16_LE, g as UINT32_LE, u as StringType } from "./lib-C2sG32ef.js";
5
- import { t as require_src } from "./src-CAVRZapq.js";
6
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-C6W1sr3t.js";
7
- import { c as stripNulls } from "./Util-GThona7t.js";
8
- import { i as FourCcToken } from "./APEv2Parser-aF9uvuWj.js";
9
- import { t as ID3v2Parser } from "./ID3v2Parser-DVcXrmaC.js";
2
+ import { n as fromBuffer, o as EndOfStreamError } from "./core-DBlHTVnh.js";
3
+ import "./lib-ClzeDYaP.js";
4
+ import { b as Uint8ArrayType, f as UINT16_LE, g as UINT32_LE, u as StringType } from "./lib-ByOt3MM6.js";
5
+ import { t as require_src } from "./src-CmhBs-ok.js";
6
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-U_VUNDqV.js";
7
+ import { c as stripNulls } from "./Util-xNyaZSrh.js";
8
+ import { i as FourCcToken } from "./APEv2Parser-C3g2BkLd.js";
9
+ import { t as ID3v2Parser } from "./ID3v2Parser-tAb38aE5.js";
10
10
 
11
11
  //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/riff/RiffChunk.js
12
12
  var import_src = /* @__PURE__ */ __toESM(require_src(), 1);
@@ -1,7 +1,7 @@
1
- import { S as getChildLogger, b as success, p as info, s as defaultRuntime } from "./subsystem-hATE68va.js";
1
+ import { S as getChildLogger, b as success, p as info, s as defaultRuntime } from "./subsystem-nnRnHSFk.js";
2
2
  import { m as resolveOAuthDir } from "./paths-VdmjGGyc.js";
3
3
  import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-B2OXLVi_.js";
4
- import { h as resolveUserPath, u as jidToE164 } from "./utils-D019Z2NU.js";
4
+ import { h as resolveUserPath, u as jidToE164 } from "./utils-B1LOScGi.js";
5
5
  import fs from "node:fs";
6
6
  import path from "node:path";
7
7
  import fs$1 from "node:fs/promises";
@@ -1,29 +1,31 @@
1
- import { s as defaultRuntime } from "./subsystem-hATE68va.js";
1
+ import { s as defaultRuntime } from "./subsystem-nnRnHSFk.js";
2
2
  import "./paths-VdmjGGyc.js";
3
- import { r as theme } from "./theme-C5EwWDWE.js";
3
+ import { r as theme } from "./theme-CX-D7gOR.js";
4
4
  import "./ansi-By7x1TI7.js";
5
- import "./utils-D019Z2NU.js";
6
- import "./logger-BKidfKRU.js";
7
- import "./exec-DdlIawm8.js";
8
- import "./koi-scope-7GA83nWp.js";
9
- import "./model-selection-i7Sz3GGw.js";
10
- import "./dist-CpERBIN9.js";
11
- import "./dist-cjs-GvVXnjmm.js";
5
+ import "./utils-B1LOScGi.js";
6
+ import "./logger-Door90g0.js";
7
+ import "./exec-f0H7lrAS.js";
8
+ import "./koi-scope-C15QLwY-.js";
9
+ import "./model-selection-vcc0xd_D.js";
10
+ import "./dist-dIXX3mFh.js";
11
+ import "./dist-cjs-6_Z6-SVf.js";
12
12
  import "./boolean-D-3joTkO.js";
13
- import "./env-ChCKTuXK.js";
13
+ import "./env-C2ovlUPG.js";
14
14
  import "./github-copilot-token-BqhLBQWA.js";
15
- import { t as VERSION } from "./version-BKRSzdyx.js";
16
- import { o as loadConfig } from "./config-DMLMgvxl.js";
17
- import "./manifest-registry-DEGu_o5t.js";
18
- import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-Bhhyy2hp.js";
19
- import "./device-identity-Bxhfs1xr.js";
20
- import { n as GatewayClient } from "./client-BravwEMC.js";
21
- import { t as buildGatewayConnectionDetails } from "./call-ByKQ2oSx.js";
22
- import { t as formatDocsLink } from "./links-CFNtV6AI.js";
23
- import "./tailscale-DI3z_prJ.js";
24
- import { t as isMainModule } from "./is-main-t6udOkz0.js";
25
- import { t as ensureSKYKOICliOnPath } from "./path-env-5sUMLbkI.js";
26
- import { i as resolveGatewayAuth } from "./auth-ETZUkuev.js";
15
+ import "./billing-alerts-DW7RyxM5.js";
16
+ import { t as VERSION } from "./version-B_FpLmDY.js";
17
+ import { i as loadConfig } from "./io-olbsPkU1.js";
18
+ import "./manifest-registry-Y19rtw98.js";
19
+ import "./config-CuoBkVSq.js";
20
+ import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-pEq52jlI.js";
21
+ import "./device-identity-CnlyT2Si.js";
22
+ import { n as GatewayClient } from "./client-Cc_zpn8i.js";
23
+ import { t as buildGatewayConnectionDetails } from "./call-DNrbv6Wz.js";
24
+ import { t as formatDocsLink } from "./links-BY_N2dMU.js";
25
+ import "./tailscale-g_N6Bh5V.js";
26
+ import { t as isMainModule } from "./is-main-DSI7jxxO.js";
27
+ import { t as ensureSKYKOICliOnPath } from "./path-env-l-vih3CM.js";
28
+ import { i as resolveGatewayAuth } from "./auth-D567kxkN.js";
27
29
  import { fileURLToPath } from "node:url";
28
30
  import { spawn } from "node:child_process";
29
31
  import { Readable, Writable } from "node:stream";
@@ -0,0 +1,212 @@
1
+ import { g as resolveStateDir } from "./paths-VdmjGGyc.js";
2
+ import path from "node:path";
3
+ import fs from "node:fs/promises";
4
+
5
+ //#region src/koi/action-ledger.ts
6
+ /**
7
+ * Action ledger — Phase 5 "reversible agency" v1.
8
+ *
9
+ * Append-only JSONL record of every koi tool action with a conservative risk
10
+ * tier (0-5, see koi-term AGENTS.md §14). The ledger is the substrate for
11
+ * future undo/rollback + timeline UI: before anything can be reversed, every
12
+ * meaningful action must be durably recorded with what/when/outcome.
13
+ *
14
+ * Storage: `<state-dir>/ledger/actions.jsonl` (state dir honors
15
+ * SKYKOI_STATE_DIR, default ~/.skykoi — see src/config/paths.ts).
16
+ *
17
+ * Design constraints:
18
+ * - Fail-open: callers must never let ledger errors break the tool call.
19
+ * - Near-zero overhead: appends are one small fs append; classification is
20
+ * a handful of regex tests against the tool name (+ a capped args snippet).
21
+ * - Tail reads are efficient: `readActions` reads the file backwards in
22
+ * chunks instead of loading the whole ledger.
23
+ */
24
+ /**
25
+ * Built-in conservative classification rules. Exported (and mutable) so
26
+ * plugins/config can extend or override classification. The highest tier
27
+ * among all matching rules wins; no match falls back to
28
+ * {@link DEFAULT_RISK_TIER}.
29
+ */
30
+ const RISK_TIER_RULES = [
31
+ {
32
+ tier: 0,
33
+ pattern: /(^|[_\-.])(read|list|ls|get|search|find|glob|grep|status|history|show|view|query|peek|tail|head|cat|watch|inspect)([_\-.]|$)/,
34
+ description: "Read-only lookups (read/list/get/search/…): no side effects"
35
+ },
36
+ {
37
+ tier: 1,
38
+ pattern: /(screenshot|screen[_-]?capture|snapshot|camera|clipboard|record)/,
39
+ description: "Local sensing/captures (screenshot/camera/clipboard): reads device state"
40
+ },
41
+ {
42
+ tier: 2,
43
+ pattern: /(^|[_\-.])(write|edit|apply[_-]?patch|patch|exec|bash|shell|process|run|spawn|install|create|save|copy|move|rename|mkdir|rm|remove|delete|kill)([_\-.]|$)/,
44
+ description: "Filesystem writes / process execution: local mutations"
45
+ },
46
+ {
47
+ tier: 3,
48
+ pattern: /(send|message|reply|post|email|mail\b|sms|whatsapp|telegram|discord|slack|signal|imessage|tweet|webhook|notify|upload|share|invite)/,
49
+ description: "Outbound network mutations (messaging/email/uploads): leaves the machine"
50
+ },
51
+ {
52
+ tier: 4,
53
+ pattern: /(deploy|publish|release|payment|charge|refund|transfer|delete[_-]?remote|terminate|destroy|drop[_-]?(db|database|table)|force[_-]?push)/,
54
+ matchArgs: true,
55
+ description: "Deploy/publish/remote-delete/payment: high-stakes external mutations"
56
+ }
57
+ ];
58
+ /** Tier for tools that match no rule — conservative middle ground. */
59
+ const DEFAULT_RISK_TIER = 2;
60
+ /**
61
+ * Build a small flat text snippet from tool args for rule matching and
62
+ * summaries. Shallow on purpose: never serializes nested giants (e.g. a full
63
+ * file body still gets capped per value).
64
+ */
65
+ function argsSnippet(args, cap = 2048) {
66
+ try {
67
+ if (args == null) return "";
68
+ if (typeof args === "string") return args.slice(0, cap);
69
+ if (typeof args === "number" || typeof args === "boolean" || typeof args === "bigint") return String(args).slice(0, cap);
70
+ if (typeof args !== "object") return "";
71
+ const parts = [];
72
+ let length = 0;
73
+ for (const [key, value] of Object.entries(args)) {
74
+ let rendered;
75
+ if (typeof value === "string") rendered = `${key}=${value.slice(0, 512)}`;
76
+ else if (typeof value === "number" || typeof value === "boolean") rendered = `${key}=${value}`;
77
+ if (!rendered) continue;
78
+ parts.push(rendered);
79
+ length += rendered.length;
80
+ if (length >= cap) break;
81
+ }
82
+ return parts.join(" ").slice(0, cap);
83
+ } catch {
84
+ return "";
85
+ }
86
+ }
87
+ /**
88
+ * Classify a tool call into a conservative risk tier. The highest tier among
89
+ * all matching rules wins ("when in doubt, rank it riskier"); unknown tools
90
+ * default to {@link DEFAULT_RISK_TIER}.
91
+ */
92
+ function classifyRiskTier(toolName, args) {
93
+ const name = (toolName || "").trim().toLowerCase();
94
+ let argsText;
95
+ let matched;
96
+ for (const rule of RISK_TIER_RULES) {
97
+ let hit = rule.pattern.test(name);
98
+ if (!hit && rule.matchArgs) {
99
+ argsText ??= argsSnippet(args).toLowerCase();
100
+ hit = argsText.length > 0 && rule.pattern.test(argsText);
101
+ }
102
+ if (hit && (matched === void 0 || rule.tier > matched)) matched = rule.tier;
103
+ }
104
+ return matched ?? DEFAULT_RISK_TIER;
105
+ }
106
+ /** Args keys most likely to carry the human-meaningful detail, in priority order. */
107
+ const SUMMARY_KEYS = [
108
+ "command",
109
+ "cmd",
110
+ "script",
111
+ "file_path",
112
+ "filePath",
113
+ "path",
114
+ "url",
115
+ "to",
116
+ "recipient",
117
+ "target",
118
+ "query",
119
+ "prompt",
120
+ "message",
121
+ "text",
122
+ "content",
123
+ "action",
124
+ "name",
125
+ "id"
126
+ ];
127
+ /** Build a short single-line human summary for a tool call. */
128
+ function summarizeToolCall(toolName, args, maxLength = 140) {
129
+ const name = (toolName || "tool").trim().toLowerCase();
130
+ let detail = "";
131
+ if (args && typeof args === "object" && !Array.isArray(args)) {
132
+ const record = args;
133
+ for (const key of SUMMARY_KEYS) {
134
+ const value = record[key];
135
+ if (typeof value === "string" && value.trim()) {
136
+ detail = value.trim();
137
+ break;
138
+ }
139
+ }
140
+ } else if (typeof args === "string") detail = args.trim();
141
+ const line = (detail ? `${name} ${detail}` : name).replace(/\s+/g, " ").trim();
142
+ return line.length > maxLength ? `${line.slice(0, maxLength - 1)}…` : line;
143
+ }
144
+ /** Resolved per call so tests (and tools) can redirect via SKYKOI_STATE_DIR. */
145
+ function resolveLedgerFilePath(env = process.env) {
146
+ return path.join(resolveStateDir(env), "ledger", "actions.jsonl");
147
+ }
148
+ /** Append one entry to the JSONL ledger (creates the directory on demand). */
149
+ async function appendAction(entry) {
150
+ const file = resolveLedgerFilePath();
151
+ await fs.mkdir(path.dirname(file), { recursive: true });
152
+ await fs.appendFile(file, `${JSON.stringify(entry)}\n`, "utf8");
153
+ }
154
+ function isLedgerEntry(value) {
155
+ if (typeof value !== "object" || value === null) return false;
156
+ const entry = value;
157
+ return typeof entry.ts === "string" && typeof entry.name === "string";
158
+ }
159
+ /**
160
+ * Read the most recent ledger entries, newest-first internally but returned
161
+ * in chronological order (oldest → newest). Reads the file backwards in
162
+ * chunks so large ledgers never get fully loaded.
163
+ */
164
+ async function readActions(options = {}) {
165
+ const limit = Math.max(1, Math.floor(options.limit ?? 50));
166
+ const sinceMs = options.since !== void 0 ? new Date(options.since).getTime() : void 0;
167
+ const chunkSize = Math.max(256, options.chunkSize ?? 64 * 1024);
168
+ const file = resolveLedgerFilePath();
169
+ let handle;
170
+ try {
171
+ handle = await fs.open(file, "r");
172
+ } catch {
173
+ return [];
174
+ }
175
+ try {
176
+ const { size } = await handle.stat();
177
+ const collected = [];
178
+ let position = size;
179
+ let carry = "";
180
+ while (position > 0 && collected.length < limit) {
181
+ const readSize = Math.min(chunkSize, position);
182
+ position -= readSize;
183
+ const buffer = Buffer.alloc(readSize);
184
+ await handle.read(buffer, 0, readSize, position);
185
+ const lines = (buffer.toString("utf8") + carry).split("\n");
186
+ carry = position > 0 ? lines.shift() ?? "" : "";
187
+ for (let i = lines.length - 1; i >= 0 && collected.length < limit; i--) {
188
+ const line = lines[i]?.trim();
189
+ if (!line) continue;
190
+ let parsed;
191
+ try {
192
+ parsed = JSON.parse(line);
193
+ } catch {
194
+ continue;
195
+ }
196
+ if (!isLedgerEntry(parsed)) continue;
197
+ if (options.koiId && parsed.koiId !== options.koiId) continue;
198
+ if (sinceMs !== void 0 && Number.isFinite(sinceMs)) {
199
+ const ts = Date.parse(parsed.ts);
200
+ if (Number.isFinite(ts) && ts < sinceMs) continue;
201
+ }
202
+ collected.push(parsed);
203
+ }
204
+ }
205
+ return collected.reverse();
206
+ } finally {
207
+ await handle.close();
208
+ }
209
+ }
210
+
211
+ //#endregion
212
+ export { readActions as a, classifyRiskTier as i, RISK_TIER_RULES as n, resolveLedgerFilePath as o, appendAction as r, summarizeToolCall as s, DEFAULT_RISK_TIER as t };