skykoi 2026.3.401 → 2026.3.403

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 (363) hide show
  1. package/dist/{APEv2Parser-aF9uvuWj.js → APEv2Parser-Ba7yIvMy.js} +5 -5
  2. package/dist/{AbstractID3Parser-C6T7VM07.js → AbstractID3Parser-Cf2LaaLC.js} +6 -6
  3. package/dist/{AiffParser-CihukODU.js → AiffParser-Cvx7vIj0.js} +7 -7
  4. package/dist/{AsfParser-5IoFj9Un.js → AsfParser-Bth1euSE.js} +6 -6
  5. package/dist/{DsdiffParser-BkALor_F.js → DsdiffParser-Djnj5Jvy.js} +7 -7
  6. package/dist/{DsfParser-Dhj6kDdz.js → DsfParser-BQpFZzaT.js} +7 -7
  7. package/dist/{FlacParser-BQ151mCK.js → FlacParser-DE4FjCdI.js} +7 -7
  8. package/dist/{ID3v1Parser-BfOq3_Yz.js → ID3v1Parser-3ia97CSy.js} +5 -5
  9. package/dist/{ID3v2Parser-DVcXrmaC.js → ID3v2Parser-UNJu2sI-.js} +6 -6
  10. package/dist/{ID3v2Token-CHyCfrHg.js → ID3v2Token-DK6kpMKy.js} +2 -2
  11. package/dist/{MP4Parser-D9rH9hiY.js → MP4Parser-BBDtQSXB.js} +9 -9
  12. package/dist/{MatroskaParser-C9foId4P.js → MatroskaParser-DAHp428F.js} +6 -6
  13. package/dist/{MpegParser-btC1Uy5P.js → MpegParser-iMWZ_SV9.js} +7 -7
  14. package/dist/{MusepackParser-B3UfJ8TQ.js → MusepackParser-CO4rWQod.js} +7 -7
  15. package/dist/{OggParser-BSjQh9p8.js → OggParser-Ch-yEZw-.js} +8 -8
  16. package/dist/{Util-GThona7t.js → Util-B_52glhk.js} +3 -3
  17. package/dist/{WavPackParser-Cl3OdDw_.js → WavPackParser-D0DsAM2G.js} +6 -6
  18. package/dist/{WaveParser-CnQrR6Id.js → WaveParser-CADBh0bK.js} +8 -8
  19. package/dist/{accounts-DiVdPd_D.js → accounts-C1p6Cppc.js} +2 -2
  20. package/dist/{acp-cli-CB12B240.js → acp-cli-B0oDXivn.js} +24 -22
  21. package/dist/action-ledger-CJ4wxgFj.js +212 -0
  22. package/dist/{admin-unlock-CxkAVK3J.js → admin-unlock-CjZRxHxf.js} +4 -4
  23. package/dist/{archive-BoAGGpfB.js → archive-BUi2UNbq.js} +1 -1
  24. package/dist/{audio-decode-jI5q94oj.js → audio-decode-C_GJII_g.js} +6 -6
  25. package/dist/audio-recovery-B79LVKSU.js +268 -0
  26. package/dist/{audit-BCI38aU2.js → audit-C9kPnb6f.js} +17 -17
  27. package/dist/{auth-ETZUkuev.js → auth-X5uq6vRI.js} +2 -2
  28. package/dist/{auth-health-DVgwYXcb.js → auth-health-FPMBFAsj.js} +1 -1
  29. package/dist/billing-alerts-DW7RyxM5.js +115 -0
  30. package/dist/{bonjour-discovery-C_SkOn7h.js → bonjour-discovery-3LKAHtHL.js} +2 -2
  31. package/dist/build-info.json +3 -3
  32. package/dist/{ca-director-CigEzkAv.js → ca-director-DQknKzfB.js} +1262 -28
  33. package/dist/{call-ByKQ2oSx.js → call-CqDndKP3.js} +8 -8
  34. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  35. package/dist/{graphics-protocol-Om06dOny.js → canvas-state-C3YRnkNr.js} +52 -3
  36. package/dist/{capture-service-CZVAtdtH.js → capture-service-Dx_4U2_g.js} +99 -20
  37. package/dist/{channel-auth-DOMFfsFe.js → channel-auth-DCGvsTTl.js} +7 -7
  38. package/dist/{channel-options-C9DEYpN1.js → channel-options-B6X75t0Z.js} +5 -5
  39. package/dist/{channel-selection-BSuFqCaq.js → channel-selection-Di4awirs.js} +2 -2
  40. package/dist/{channel-summary-DCMNnhoP.js → channel-summary-DNu96QpK.js} +260 -4
  41. package/dist/{channels-cli-JtkJberE.js → channels-cli-BknDGKl9.js} +102 -92
  42. package/dist/{channels-status-issues-CoUSLr5Y.js → channels-status-issues-CGTJwSbx.js} +1 -1
  43. package/dist/{chrome-CXOcEC_5.js → chrome-CRoiYOwt.js} +5 -5
  44. package/dist/{clack-prompter-DRdAQdPx.js → clack-prompter-clPzQ9p-.js} +5 -5
  45. package/dist/cli/daemon-cli.js +1 -1
  46. package/dist/{cli-auto-update-0dvTw4Ud.js → cli-auto-update-Fy66y_VY.js} +8 -8
  47. package/dist/cli-q_Y3mKmM.js +131 -0
  48. package/dist/{client-BravwEMC.js → client-Dzt29zIp.js} +34 -4
  49. package/dist/common-DDNLy4f0.js +130 -0
  50. package/dist/{completion-cli-CytmKnE4.js → completion-cli-DkfDnw7v.js} +1 -1
  51. package/dist/config-55EPjg8B.js +54 -0
  52. package/dist/{config-guard-CM2NpzWc.js → config-guard-g60mxcT7.js} +52 -50
  53. package/dist/{configure-DYAs6DoZ.js → configure-C-aAy1zB.js} +20 -20
  54. package/dist/{context-digest-eh5l1QGn.js → context-digest-Br8pwgY-.js} +98 -52
  55. package/dist/{control-service-BsDK7r-y.js → control-service-DQ32SBGJ.js} +5 -5
  56. package/dist/{control-ui-assets-BM8V8YzF.js → control-ui-assets-D4o4damy.js} +2 -2
  57. package/dist/{core-BbMOb92i.js → core-BlHif_ps.js} +4 -4
  58. package/dist/{cron-cli-Cusms5TW.js → cron-cli-B7PghB4q.js} +27 -25
  59. package/dist/{daemon-cli-Bjngr-YQ.js → daemon-cli-BNhNsZzp.js} +22 -22
  60. package/dist/{daemon-runtime-BnGqbyou.js → daemon-runtime-DIgqhoVa.js} +4 -4
  61. package/dist/{deliver-CPQeH-9Y.js → deliver-uOIbsOCt.js} +10 -10
  62. package/dist/{deps-BDTNdoeN.js → deps-B7x0T9m0.js} +2 -2
  63. package/dist/{devices-cli-TRcwFHnk.js → devices-cli-Cu-yCMqM.js} +21 -19
  64. package/dist/{diagnostics-BirX5oxG.js → diagnostics-6vXdnH8k.js} +1 -1
  65. package/dist/{directory-cli-CDrzk6hg.js → directory-cli-DstkgbDm.js} +23 -21
  66. package/dist/{dispatcher-DTV_p-9p.js → dispatcher-BHYC2Mdu.js} +1 -1
  67. package/dist/{dist-CpERBIN9.js → dist-3zY5f01M.js} +12 -12
  68. package/dist/dist-B01d37B6.js +7859 -0
  69. package/dist/{dist-CHfqAvJX.js → dist-Ck6BZtRQ.js} +5 -5
  70. package/dist/{dist-C3p_LVCC.js → dist-Pt-v-K0u.js} +15 -7863
  71. package/dist/{dist-BcBe246p.js → dist-UoOHg1p0.js} +1 -1
  72. package/dist/{dist-cjs-B3qyFTKM.js → dist-cjs-BEAwDaaU.js} +1 -1
  73. package/dist/{dist-cjs-Ba6pNFGg.js → dist-cjs-BVRU5Qt8.js} +3 -3
  74. package/dist/{dist-cjs-Bd9V9SqN.js → dist-cjs-BzLua_ko.js} +3 -3
  75. package/dist/{dist-cjs-B5aHqZRy.js → dist-cjs-D8BOnVEk.js} +2 -2
  76. package/dist/{dist-cjs-GvVXnjmm.js → dist-cjs-D9zWZLJo.js} +2 -2
  77. package/dist/{dist-cjs-ljWCJARL.js → dist-cjs-Du3syY2f.js} +1 -1
  78. package/dist/{dist-cjs-7228iF7U.js → dist-cjs-kBOJ196l.js} +8 -8
  79. package/dist/{dns-cli-DouTGeTw.js → dns-cli-C18PVD14.js} +19 -17
  80. package/dist/{docs-cli-4TMyvZj-.js → docs-cli-BTLH5vYy.js} +16 -15
  81. package/dist/{doctor-BnKH7P6D.js → doctor-Bv7Mv6zq.js} +40 -39
  82. package/dist/{doctor-completion-DhdfUR43.js → doctor-completion-WddhNnKy.js} +4 -4
  83. package/dist/{dotenv-Y3WsO11w.js → dotenv-d4aPJ7q2.js} +1 -1
  84. package/dist/{ensure-local-gateway-fPsGGZU2.js → ensure-local-gateway-Xk7ir7zS.js} +5 -5
  85. package/dist/entry.js +5 -5
  86. package/dist/{env-ChCKTuXK.js → env-C2ovlUPG.js} +1 -1
  87. package/dist/{exec-approvals-cli-CHM34IRa.js → exec-approvals-cli-CV8HbMJS.js} +28 -26
  88. package/dist/{exec-approvals-evaluate-BRTvE5NT.js → exec-approvals-evaluate-Mqaz3DKH.js} +1 -1
  89. package/dist/{exec-DdlIawm8.js → exec-f0H7lrAS.js} +2 -2
  90. package/dist/extension-api.js +82 -72
  91. package/dist/{first-run-0QWRgr0p.js → first-run-Bfh6lhfa.js} +2 -2
  92. package/dist/{flac-D7cbDL-Q.js → flac-C4DRRmjE.js} +0 -0
  93. package/dist/{gateway-cli-Coc4iOtL.js → gateway-cli-ByhoN9KQ.js} +228 -147
  94. package/dist/gateway-client.js +6 -6
  95. package/dist/{gateway-rpc-lb7pLXFe.js → gateway-rpc-DwTpsQgX.js} +3 -3
  96. package/dist/{github-copilot-auth-BZ1WQOZI.js → github-copilot-auth-DQZYnTtI.js} +9 -9
  97. package/dist/{gmail-setup-utils-CnOGevbQ.js → gmail-setup-utils-kVh_mWJI.js} +3 -3
  98. package/dist/{graphics-terminal-setup-w2dx46lC.js → graphics-terminal-setup-eucacjsj.js} +7 -5
  99. package/dist/{health-format-CLG8j0JY.js → health-format-DGVJTmBT.js} +16 -16
  100. package/dist/{help-format-dPXG6VQF.js → help-format-Bz-E4Xsi.js} +1 -1
  101. package/dist/{hooks-cli-CXed6Cr_.js → hooks-cli-DiaIlA_u.js} +86 -76
  102. package/dist/{hooks-status-BFBe2G4d.js → hooks-status-Cr0qf9U9.js} +4 -4
  103. package/dist/{identify-DFi1kVgv.js → identify-B7juRFHo.js} +17 -2
  104. package/dist/{image-B56lrMHs.js → image-BQrsvGIN.js} +6 -6
  105. package/dist/{image-ops-_y0NATN4.js → image-ops-5RRlAQ0c.js} +3 -3
  106. package/dist/index.js +136 -126
  107. package/dist/{installs-C66FfO07.js → installs-vo94okm5.js} +5 -5
  108. package/dist/{config-DMLMgvxl.js → io-BiSyGUoT.js} +8 -58
  109. package/dist/{koi-DOrE_RPh.js → koi-Cqm5OeFT.js} +17 -17
  110. package/dist/{koi-event-bridge-D9NAMsQa.js → koi-event-bridge-DeLARijk.js} +2 -2
  111. package/dist/{koi-scope-7GA83nWp.js → koi-scope-C15QLwY-.js} +3 -3
  112. package/dist/{koi-utterance-trigger-B4f_IIMa.js → koi-utterance-trigger-DBXY1dq5.js} +1 -1
  113. package/dist/ledger-cli-DjgehGEF.js +89 -0
  114. package/dist/{lib-iI713Gu9.js → lib-9wRl5N4X.js} +1 -1
  115. package/dist/{lib-Y8uwPBbl.js → lib-CbWkbLty.js} +2 -2
  116. package/dist/{lib-CUrKJVSd.js → lib-DGjy3PZ_.js} +24 -24
  117. package/dist/{lib-B2lQEF5z.js → lib-JFtVlWtn.js} +1 -1
  118. package/dist/{links-CFNtV6AI.js → links-BY_N2dMU.js} +1 -1
  119. package/dist/{logger-BKidfKRU.js → logger-Door90g0.js} +1 -1
  120. package/dist/{logging-truWYhq_.js → logging-C3sRv-iX.js} +1 -1
  121. package/dist/{login-C2PBCAPy.js → login-JCFx5Pzl.js} +11 -11
  122. package/dist/{login-qr-BmHkxUJ2.js → login-qr-DAZi8Nkf.js} +11 -11
  123. package/dist/{logs-cli-HCG8o1Sj.js → logs-cli-B64FQ0sG.js} +23 -21
  124. package/dist/{manager-BwHTvXSO.js → manager-DH-1An5c.js} +9 -9
  125. package/dist/{manifest-registry-DEGu_o5t.js → manifest-registry-Y19rtw98.js} +1 -1
  126. package/dist/{message-6EWET-eu.js → message-DLdOmEc7.js} +8 -8
  127. package/dist/{message-channel-Bhhyy2hp.js → message-channel-Cy9b1PGA.js} +1 -1
  128. package/dist/{model-selection-i7Sz3GGw.js → model-selection-CKLFiLpY.js} +19 -9
  129. package/dist/{models-cli-DJU1pPDt.js → models-cli-Dkuie_nv.js} +90 -80
  130. package/dist/{models-config-BJvU2gPz.js → models-config-DoNNjXe6.js} +2 -2
  131. package/dist/{mpg123-decoder-DeXo0n6Q.js → mpg123-decoder-ChMVLi_j.js} +0 -0
  132. package/dist/{multipart-parser-hNDQMHfP.js → multipart-parser-C4YpL2Da.js} +1 -1
  133. package/dist/{net-COR_ZMrL.js → net-CtMv6JrN.js} +1 -1
  134. package/dist/{node-cli-CFFmHZH9.js → node-cli-D4giluTo.js} +39 -37
  135. package/dist/{node-service-C_jH4QIC.js → node-service-Bb6tgGQx.js} +2 -2
  136. package/dist/{nodes-cli-DOkgNicw.js → nodes-cli-ChTsJXUH.js} +27 -25
  137. package/dist/{note-sNtAMorB.js → note-PNq_JEQe.js} +1 -1
  138. package/dist/{ogg-opus-decoder-DM9zWJfA.js → ogg-opus-decoder-rGN6IMJw.js} +0 -0
  139. package/dist/{ogg-vorbis-DuiMlJ-w.js → ogg-vorbis-BPcbvdod.js} +0 -0
  140. package/dist/{onboard-channels-Do-ZWUvL.js → onboard-channels-xmMSl7NY.js} +8 -8
  141. package/dist/{onboard-helpers-vTn9gV9u.js → onboard-helpers-nDN4y46S.js} +12 -12
  142. package/dist/{onboard-skills-CufnYZNw.js → onboard-skills-CjvE5SMy.js} +15 -15
  143. package/dist/{onboarding-B2BsLZ1z.js → onboarding-9nJQKphG.js} +43 -43
  144. package/dist/{opus-ml-bOYT0KYK.js → opus-ml-BMchJC0t.js} +0 -0
  145. package/dist/{pairing-cli-BDhojI21.js → pairing-cli-bpewtve0.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-CnhsG0TT.js} +2 -2
  149. package/dist/{photon_rs-B5YxA0gR.js → photon_rs-BV1jsHW1.js} +1 -1
  150. package/dist/{pi-embedded-helpers-Da2MkIg1.js → pi-embedded-helpers-DFn976W-.js} +15 -4
  151. package/dist/{pi-model-discovery-CQkU5DuG.js → pi-model-discovery-BUOhjZaJ.js} +1 -1
  152. package/dist/{pi-tool-definition-adapter-DyvBzoAn.js → pi-tool-definition-adapter-BjyavKfi.js} +5 -132
  153. package/dist/{pi-tools.policy-1bMRTs8v.js → pi-tools.policy-BFFg8jIe.js} +5 -5
  154. package/dist/platform-billing-BjToqDnR.js +90 -0
  155. package/dist/{plugin-auto-enable-D7B2IhaJ.js → plugin-auto-enable-7Sq0kaQq.js} +5 -5
  156. package/dist/{plugin-registry-S6Cqjwvj.js → plugin-registry-Da-Z2T3i.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 +422 -18
  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/shared/personal-digest.d.ts +34 -0
  182. package/dist/plugin-sdk/terminal/palette.d.ts +3 -3
  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-content.d.ts +14 -0
  186. package/dist/plugin-sdk/tui/surfaces/surface-preview.d.ts +19 -0
  187. package/dist/plugin-sdk/tui/surfaces/surface-schema.d.ts +176 -0
  188. package/dist/plugin-sdk/tui/tui-fast-lane.d.ts +12 -0
  189. package/dist/plugin-sdk/tui/zen/sgr.d.ts +16 -0
  190. package/dist/plugin-sdk/tui/zen/zen-surface.d.ts +63 -0
  191. package/dist/{plugins-BXfIVhTg.js → plugins-CD53Y-wp.js} +4 -4
  192. package/dist/{plugins-cli-JPJfMlvy.js → plugins-cli-DMGmUzik.js} +88 -78
  193. package/dist/{ports-P59I5wz6.js → ports-B03Y1yyv.js} +2 -2
  194. package/dist/proactive-eval-RHO4rbyx.js +1024 -0
  195. package/dist/{program-DkaBc_iL.js → program-GYRS5Ws2.js} +10 -10
  196. package/dist/{progress-B0j0uCjm.js → progress-B8PPYDDC.js} +2 -2
  197. package/dist/{prompt-style-ukndhQOw.js → prompt-style-CJRaWg4h.js} +1 -1
  198. package/dist/{pw-ai-qan9CSms.js → pw-ai-YPXPbYy6.js} +7 -7
  199. package/dist/{qmd-manager-QJjaDN5n.js → qmd-manager-ZItBTBzr.js} +10 -10
  200. package/dist/{register.subclis-Dv6NjUap.js → register.subclis-DSrvCxKF.js} +41 -34
  201. package/dist/{registry-BwlCjCgP.js → registry-xBtEGPIj.js} +1 -1
  202. package/dist/{reply-Bf4P9Ot1.js → reply-goFZVFOt.js} +1980 -408
  203. package/dist/rich-wmQhKBIx.js +173 -0
  204. package/dist/{routes-BulfbmL9.js → routes-DXSsSe_K.js} +5 -5
  205. package/dist/{rpc-iHZ4CdDy.js → rpc-Cq7TWXCW.js} +3 -3
  206. package/dist/{run-code-tool-C6xBmHR8.js → run-code-tool-hFlGv-m5.js} +3 -3
  207. package/dist/run-main-B7F6D7ci.js +269 -0
  208. package/dist/{runner-CJBcTtHm.js → runner-Dv3coC2q.js} +13 -13
  209. package/dist/{runtime-guard-DwWuihJc.js → runtime-guard-qFkyrhAB.js} +1 -1
  210. package/dist/{sandbox-BBVUHUOq.js → sandbox-B-lCuykD.js} +10 -10
  211. package/dist/{sandbox-cli-BAeOId4l.js → sandbox-cli-B199VfMw.js} +34 -31
  212. package/dist/{security-cli-D_LQmH7h.js → security-cli-BIn7mAm0.js} +42 -39
  213. package/dist/{server-context-BXVciJDs.js → server-context-CNfswlAM.js} +6 -6
  214. package/dist/{server-node-events-B9yF2Rle.js → server-node-events-sMeW8enG.js} +85 -75
  215. package/dist/{service-uVwIUnyd.js → service-D1-PnhZe.js} +3 -3
  216. package/dist/{service-audit-C3lXz7SM.js → service-audit-BVZGmzLW.js} +4 -4
  217. package/dist/{session-cost-usage-nkKUBhE6.js → session-cost-usage-C71VC_PD.js} +2 -3
  218. package/dist/{sessions-D4weFB4D.js → sessions-DnPG9BI4.js} +9 -9
  219. package/dist/{shared-BVoNuNpJ.js → shared-CHxb6-Fi.js} +3 -3
  220. package/dist/{shared-DFK_9l-h.js → shared-tNGHWtW-.js} +4 -4
  221. package/dist/{signin-IXYHg4Uc.js → signin-TesaorA1.js} +3 -3
  222. package/dist/{skills-B0HXzI_9.js → skills-C_t45j3T.js} +4 -4
  223. package/dist/{skills-cli-Ba0g4Ylv.js → skills-cli-GT4yy2a4.js} +24 -21
  224. package/dist/{skills-status-Bxqk1j9P.js → skills-status-sMAyGPXV.js} +4 -4
  225. package/dist/{sqlite-DOBJPTUL.js → sqlite-Ctl23tcn.js} +1 -1
  226. package/dist/{src-D3L_3lDz.js → src-Xm2tVyWL.js} +2 -2
  227. package/dist/{sso-oidc-CBT_5H0k.js → sso-oidc-BhUPsnaI.js} +3 -3
  228. package/dist/{status-BYUYY1Jk.js → status-CevpdXm-.js} +4 -4
  229. package/dist/{sts-DUuApX4j.js → sts-CaZ-4Vb6.js} +3 -3
  230. package/dist/{subsystem-hATE68va.js → subsystem-nnRnHSFk.js} +2 -1
  231. package/dist/surface-tool-Cebhf_Tf.js +1027 -0
  232. package/dist/{system-cli-q-dsgPiF.js → system-cli-BD9fmtCg.js} +22 -20
  233. package/dist/{system-prompt-snippet-BDBC6NFH.js → system-prompt-snippet-CVkVKHlK.js} +1 -1
  234. package/dist/{systemd-BHooCrgQ.js → systemd-DZP4s4qd.js} +3 -3
  235. package/dist/{systemd-linger-Cd_EluWx.js → systemd-linger-DHSd9ikR.js} +2 -2
  236. package/dist/{table-CkPRZ00Y.js → table-DIfWcies.js} +1 -1
  237. package/dist/{tailscale-DI3z_prJ.js → tailscale-BOh3Z_vn.js} +2 -2
  238. package/dist/{theme-C5EwWDWE.js → theme-CX-D7gOR.js} +3 -3
  239. package/dist/{tool-display-bfQcpWKs.js → tool-display-DvcBjgri.js} +2 -2
  240. package/dist/{tool-images-CfUP8C2Q.js → tool-images-BIkTcSan.js} +2 -2
  241. package/dist/transcript-tools-BByi9l-4.js +87 -0
  242. package/dist/tui-cli-VDRinP7B.js +94 -0
  243. package/dist/tui-shell-CVxb9g9k.js +1841 -0
  244. package/dist/{tui-D9jkHwEZ.js → tui-v3i8KyRm.js} +2577 -325
  245. package/dist/{update-xDMqC6sS.js → update-CnmP2qF5.js} +3 -3
  246. package/dist/{update-cli-CnlQ3d2e.js → update-cli-BXgxccZQ.js} +113 -103
  247. package/dist/{update-runner-jwOI-gT0.js → update-runner-DHNkj8-z.js} +4 -4
  248. package/dist/usage-reporter-CpMmHkw7.js +62 -0
  249. package/dist/{utilities-CV8S7znT.js → utilities-Dr7XUab8.js} +1 -1
  250. package/dist/{utils-D019Z2NU.js → utils-B1LOScGi.js} +1 -1
  251. package/dist/{voices-cli-C47TvBx-.js → voices-cli-DXqGMgtw.js} +3 -3
  252. package/dist/{webhooks-cli-ZiMv1bP2.js → webhooks-cli-BLPA1MZB.js} +23 -20
  253. package/dist/{widearea-dns-CBcJDOBk.js → widearea-dns-BjWuJvtM.js} +1 -1
  254. package/dist/{ws-log-OLBQeEZR.js → ws-log-BzGMbHM2.js} +2 -2
  255. package/dist/zen-surface-D4VY3jY0.js +1564 -0
  256. package/extensions/bluebubbles/package.json +1 -1
  257. package/extensions/copilot-proxy/package.json +1 -1
  258. package/extensions/diagnostics-otel/package.json +1 -1
  259. package/extensions/discord/package.json +1 -1
  260. package/extensions/feishu/package.json +1 -1
  261. package/extensions/google-antigravity-auth/package.json +1 -1
  262. package/extensions/google-gemini-cli-auth/package.json +1 -1
  263. package/extensions/googlechat/package.json +1 -1
  264. package/extensions/imessage/package.json +1 -1
  265. package/extensions/line/package.json +1 -1
  266. package/extensions/llm-task/package.json +1 -1
  267. package/extensions/lobster/package.json +1 -1
  268. package/extensions/matrix/CHANGELOG.md +5 -0
  269. package/extensions/matrix/package.json +1 -1
  270. package/extensions/mattermost/package.json +1 -1
  271. package/extensions/memory-core/package.json +1 -1
  272. package/extensions/memory-lancedb/package.json +1 -1
  273. package/extensions/minimax-portal-auth/package.json +1 -1
  274. package/extensions/msteams/CHANGELOG.md +5 -0
  275. package/extensions/msteams/package.json +1 -1
  276. package/extensions/nextcloud-talk/package.json +1 -1
  277. package/extensions/nostr/CHANGELOG.md +5 -0
  278. package/extensions/nostr/package.json +1 -1
  279. package/extensions/open-prose/package.json +1 -1
  280. package/extensions/signal/package.json +1 -1
  281. package/extensions/slack/package.json +1 -1
  282. package/extensions/telegram/package.json +1 -1
  283. package/extensions/tlon/package.json +1 -1
  284. package/extensions/twitch/CHANGELOG.md +5 -0
  285. package/extensions/twitch/package.json +1 -1
  286. package/extensions/voice-call/CHANGELOG.md +5 -0
  287. package/extensions/voice-call/package.json +1 -1
  288. package/extensions/whatsapp/package.json +1 -1
  289. package/extensions/zalo/CHANGELOG.md +5 -0
  290. package/extensions/zalo/package.json +1 -1
  291. package/extensions/zalouser/CHANGELOG.md +5 -0
  292. package/extensions/zalouser/package.json +1 -1
  293. package/package.json +4 -2
  294. package/dist/cli-CpGmYt2Y.js +0 -121
  295. package/dist/proactive-eval-BtFPtNwP.js +0 -1759
  296. package/dist/run-main-C3bgl9gZ.js +0 -259
  297. package/dist/transcript-tools-CVkBX-9k.js +0 -52
  298. package/dist/tui-cli-DctNZ30j.js +0 -85
  299. package/dist/usage-format-EdDmn0JB.js +0 -36
  300. /package/dist/{BasicParser-C6W1sr3t.js → BasicParser--n6FLqcE.js} +0 -0
  301. /package/dist/{brew-9xTQVvl4.js → brew-CqrvYCjs.js} +0 -0
  302. /package/dist/{capture-cli-DeRDbNaM.js → capture-cli-BF1NY1RT.js} +0 -0
  303. /package/dist/{cli-utils-DBV8EzWu.js → cli-utils-D4mTRuWj.js} +0 -0
  304. /package/dist/{codec-parser-DNgdIkZo.js → codec-parser-T4JNCFj4.js} +0 -0
  305. /package/dist/{companions-Beo2qBnF.js → companions-D-uSZqiI.js} +0 -0
  306. /package/dist/{constants-C4LZjcL0.js → constants-UedXN8EP.js} +0 -0
  307. /package/dist/{core-Cp6b38f5.js → core-CJWRLYUu.js} +0 -0
  308. /package/dist/{declarations-BLQN6vzU.js → declarations-izhxPnzy.js} +0 -0
  309. /package/dist/{device-identity-Bxhfs1xr.js → device-identity-CnlyT2Si.js} +0 -0
  310. /package/dist/{dist-cjs-mZuQohD2.js → dist-cjs-D2RXwDOe.js} +0 -0
  311. /package/dist/{dist-cjs-b__m_5I9.js → dist-cjs-Du0zR-Ai.js} +0 -0
  312. /package/dist/{esm-5V9F2UI9.js → esm-CZZtQIhc.js} +0 -0
  313. /package/dist/{esm-B_NgDkcJ.js → esm-kUSIWN2f.js} +0 -0
  314. /package/dist/{esm-shims-CCgr543I.js → esm-shims-CZxOEdhX.js} +0 -0
  315. /package/dist/{event-log-Dcegp3Ty.js → event-log-WbPUNukH.js} +0 -0
  316. /package/dist/{event-streams-DaNwcPzQ.js → event-streams-R6AXkEMn.js} +0 -0
  317. /package/dist/{exec-approvals-io-C7x-a9Hw.js → exec-approvals-io-Dzpqn78T.js} +0 -0
  318. /package/dist/{format-BukmQlAy.js → format-DtciOWIX.js} +0 -0
  319. /package/dist/{from-BSX7jrKl.js → from-Dfzfv9uw.js} +0 -0
  320. /package/dist/{helpers-DAB_ZzN_.js → helpers-4BXRutqw.js} +0 -0
  321. /package/dist/{helpers-Znu8d1r-.js → helpers-CI2sc-CB.js} +0 -0
  322. /package/dist/{is-main-t6udOkz0.js → is-main-CQX7mFIJ.js} +0 -0
  323. /package/dist/{koi-events-BZbg2_wc.js → koi-events-DVxTOxY3.js} +0 -0
  324. /package/dist/{lib-C2sG32ef.js → lib-C0cU2Bav.js} +0 -0
  325. /package/dist/{live-broadcast-DqBXFyuv.js → live-broadcast-CifQ8Lzc.js} +0 -0
  326. /package/dist/{logging-CeI8pPxx.js → logging-BQKv640H.js} +0 -0
  327. /package/dist/{native-window-hr8nARej.js → native-window-CMnOFmyK.js} +0 -0
  328. /package/dist/{node-pairing-CKU0Vndp.js → node-pairing-WRkSoKg6.js} +0 -0
  329. /package/dist/{node-pty-BC0IrNrz.js → node-pty-gtBUnxUN.js} +0 -0
  330. /package/dist/{node-wav-Dcsv0qJn.js → node-wav-CwlOpKY0.js} +0 -0
  331. /package/dist/{nodes-screen-Ce8fGLhD.js → nodes-screen-Bq-MvKAS.js} +0 -0
  332. /package/dist/{package-CYglbfBi.js → package-DhcmafWY.js} +0 -0
  333. /package/dist/{parse-DfgX5okr.js → parse-C-X5VUYI.js} +0 -0
  334. /package/dist/{parse-log-line-B7kujwuK.js → parse-log-line-BFXEIELd.js} +0 -0
  335. /package/dist/{parse-timeout-uTDpUWKR.js → parse-timeout-kGl8Fsas.js} +0 -0
  336. /package/dist/{paths-DNVGKsSx.js → paths-CizQHpAk.js} +0 -0
  337. /package/dist/{pdf-Mh9_16lK.js → pdf-BohVLTJL.js} +0 -0
  338. /package/dist/{permissions-cli-DFPDPZxw.js → permissions-cli-DXadkGgv.js} +0 -0
  339. /package/dist/{prompts-C1Vmrk7-.js → prompts-BC5TXS0_.js} +0 -0
  340. /package/dist/{proxy-from-env-NVPRlS0s.js → proxy-from-env-BCOB9yxp.js} +0 -0
  341. /package/dist/{qoa-format-7pjCrDI4.js → qoa-format-BboMlPJa.js} +0 -0
  342. /package/dist/{readability-CgQ4UgOG.js → readability-C_v10IzL.js} +0 -0
  343. /package/dist/{readiness-BWlDObOD.js → readiness-CCfUXab4.js} +0 -0
  344. /package/dist/{redact-CuHse7Ma.js → redact-ClVwO7Nn.js} +0 -0
  345. /package/dist/{restart-sentinel-CLogImVw.js → restart-sentinel-CDgY6TKs.js} +0 -0
  346. /package/dist/{satisfies-c71IS8Gf.js → satisfies-DCdzcNI3.js} +0 -0
  347. /package/dist/{skill-scanner-bplK_9eh.js → skill-scanner-CLckczzl.js} +0 -0
  348. /package/dist/{source-map-Bmak3bxf.js → source-map--hgaz8qG.js} +0 -0
  349. /package/dist/{sqlite-vec-oxBcWjn-.js → sqlite-vec-B9Q87Em9.js} +0 -0
  350. /package/dist/{src-CAVRZapq.js → src-BJiPQPqV.js} +0 -0
  351. /package/dist/{status-Cx1u-AZW.js → status-pq91F0kp.js} +0 -0
  352. /package/dist/{streams-cli-DJUX7C_p.js → streams-cli-DOF8VfLc.js} +0 -0
  353. /package/dist/{systemd-hints-FC3MfrkS.js → systemd-hints-CMiNS6NK.js} +0 -0
  354. /package/dist/{tailnet-Cz2pl07T.js → tailnet-7u3DZ0jI.js} +0 -0
  355. /package/dist/{tokens-BmRB1Mkz.js → tokens-DznGfpjQ.js} +0 -0
  356. /package/dist/{tool-policy-BYmiYVth.js → tool-policy-CjSq72TW.js} +0 -0
  357. /package/dist/{transcript-events-CJRvASY_.js → transcript-events-DNNIRVG1.js} +0 -0
  358. /package/dist/{types-CLcz00_s.js → types-DO4kgbma.js} +0 -0
  359. /package/dist/{uint8array-extras-BXjehc45.js → uint8array-extras-DBV0kdwr.js} +0 -0
  360. /package/dist/{version-BKRSzdyx.js → version-B_FpLmDY.js} +0 -0
  361. /package/dist/{warnings-Cl3wLuoe.js → warnings-Daj0i4A6.js} +0 -0
  362. /package/dist/{ws-DQzNsCSb.js → ws-D3TuFv3E.js} +0 -0
  363. /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-CJWRLYUu.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-C0cU2Bav.js";
4
+ import { t as require_src } from "./src-BJiPQPqV.js";
5
+ import { i as InternalParserError, r as FieldDecodingError, s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser--n6FLqcE.js";
6
+ import { i as findZero, t as a2hex } from "./Util-B_52glhk.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-CJWRLYUu.js";
3
+ import { t as require_src } from "./src-BJiPQPqV.js";
4
+ import { t as BasicParser } from "./BasicParser--n6FLqcE.js";
5
+ import { r as ID3v2Header } from "./ID3v2Token-DK6kpMKy.js";
6
+ import { n as ID3v1Parser } from "./ID3v1Parser-3ia97CSy.js";
7
+ import { t as ID3v2Parser } from "./ID3v2Parser-UNJu2sI-.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-CJWRLYUu.js";
3
+ import "./lib-JFtVlWtn.js";
4
+ import { b as Uint8ArrayType, d as UINT16_BE, h as UINT32_BE, u as StringType, y as UINT8 } from "./lib-C0cU2Bav.js";
5
+ import { t as require_src } from "./src-BJiPQPqV.js";
6
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser--n6FLqcE.js";
7
+ import { i as FourCcToken } from "./APEv2Parser-Ba7yIvMy.js";
8
+ import { t as ID3v2Parser } from "./ID3v2Parser-UNJu2sI-.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-C0cU2Bav.js";
3
+ import { t as require_src } from "./src-BJiPQPqV.js";
4
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser--n6FLqcE.js";
5
+ import { a as getBit, c as stripNulls, n as decodeString } from "./Util-B_52glhk.js";
6
+ import { t as AttachedPictureType } from "./ID3v2Token-DK6kpMKy.js";
7
+ import { n as TrackType } from "./types-DO4kgbma.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-CJWRLYUu.js";
3
+ import "./lib-JFtVlWtn.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-C0cU2Bav.js";
5
+ import { t as require_src } from "./src-BJiPQPqV.js";
6
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser--n6FLqcE.js";
7
+ import { i as FourCcToken } from "./APEv2Parser-Ba7yIvMy.js";
8
+ import { t as ID3v2Parser } from "./ID3v2Parser-UNJu2sI-.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-JFtVlWtn.js";
3
+ import { c as INT64_LE, o as INT32_LE, v as UINT64_LE } from "./lib-C0cU2Bav.js";
4
+ import { t as require_src } from "./src-BJiPQPqV.js";
5
+ import { s as makeUnexpectedFileContentError } from "./BasicParser--n6FLqcE.js";
6
+ import { i as FourCcToken } from "./APEv2Parser-Ba7yIvMy.js";
7
+ import { t as ID3v2Parser } from "./ID3v2Parser-UNJu2sI-.js";
8
+ import { t as AbstractID3Parser } from "./AbstractID3Parser-Cf2LaaLC.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-C0cU2Bav.js";
3
+ import { t as require_src } from "./src-BJiPQPqV.js";
4
+ import { s as makeUnexpectedFileContentError } from "./BasicParser--n6FLqcE.js";
5
+ import { a as getBit, o as getBitAllignedNumber } from "./Util-B_52glhk.js";
6
+ import { t as AttachedPictureType } from "./ID3v2Token-DK6kpMKy.js";
7
+ import { i as FourCcToken } from "./APEv2Parser-Ba7yIvMy.js";
8
+ import { t as AbstractID3Parser } from "./AbstractID3Parser-Cf2LaaLC.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-C0cU2Bav.js";
3
+ import { t as require_src } from "./src-BJiPQPqV.js";
4
+ import { t as BasicParser } from "./BasicParser--n6FLqcE.js";
5
+ import { u as trimRightNull } from "./Util-B_52glhk.js";
6
+ import { t as APEv2Parser } from "./APEv2Parser-Ba7yIvMy.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-C0cU2Bav.js";
3
+ import { t as require_src } from "./src-BJiPQPqV.js";
4
+ import { s as makeUnexpectedFileContentError } from "./BasicParser--n6FLqcE.js";
5
+ import { a as getBit, i as findZero, n as decodeString, r as decodeUintBE } from "./Util-B_52glhk.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-DK6kpMKy.js";
7
+ import { t as Genres } from "./ID3v1Parser-3ia97CSy.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-C0cU2Bav.js";
2
+ import { a as getBit } from "./Util-B_52glhk.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-JFtVlWtn.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-C0cU2Bav.js";
4
+ import { t as require_src } from "./src-BJiPQPqV.js";
5
+ import { n as uint8ArrayToHex } from "./uint8array-extras-DBV0kdwr.js";
6
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser--n6FLqcE.js";
7
+ import { a as getBit } from "./Util-B_52glhk.js";
8
+ import { i as FourCcToken } from "./APEv2Parser-Ba7yIvMy.js";
9
+ import { t as Genres } from "./ID3v1Parser-3ia97CSy.js";
10
+ import { n as TrackType } from "./types-DO4kgbma.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-CJWRLYUu.js";
3
+ import "./lib-JFtVlWtn.js";
4
+ import { _ as UINT64_BE, n as Float64_BE, t as Float32_BE, u as StringType, y as UINT8 } from "./lib-C0cU2Bav.js";
5
+ import { t as require_src } from "./src-BJiPQPqV.js";
6
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser--n6FLqcE.js";
7
+ import { n as TrackType, t as TargetType } from "./types-DO4kgbma.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-CJWRLYUu.js";
3
+ import "./lib-JFtVlWtn.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-C0cU2Bav.js";
5
+ import { t as require_src } from "./src-BJiPQPqV.js";
6
+ import { s as makeUnexpectedFileContentError } from "./BasicParser--n6FLqcE.js";
7
+ import { c as stripNulls, o as getBitAllignedNumber, s as isBitSet } from "./Util-B_52glhk.js";
8
+ import { t as AbstractID3Parser } from "./AbstractID3Parser-Cf2LaaLC.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-JFtVlWtn.js";
3
+ import { S as textDecode, f as UINT16_LE, g as UINT32_LE, u as StringType, y as UINT8 } from "./lib-C0cU2Bav.js";
4
+ import { t as require_src } from "./src-BJiPQPqV.js";
5
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser--n6FLqcE.js";
6
+ import { o as getBitAllignedNumber, s as isBitSet } from "./Util-B_52glhk.js";
7
+ import { i as FourCcToken, r as tryParseApeHeader } from "./APEv2Parser-Ba7yIvMy.js";
8
+ import { t as AbstractID3Parser } from "./AbstractID3Parser-Cf2LaaLC.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-CJWRLYUu.js";
3
+ import "./lib-JFtVlWtn.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-C0cU2Bav.js";
5
+ import { t as require_src } from "./src-BJiPQPqV.js";
6
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser--n6FLqcE.js";
7
+ import { a as getBit, u as trimRightNull } from "./Util-B_52glhk.js";
8
+ import { i as FourCcToken } from "./APEv2Parser-Ba7yIvMy.js";
9
+ import { a as BlockType, i as BlockStreamInfo, o as VorbisStream, r as BlockHeader, s as VorbisPictureToken, t as FlacParser } from "./FlacParser-DE4FjCdI.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-C0cU2Bav.js";
2
+ import { t as getUintBE } from "./uint8array-extras-DBV0kdwr.js";
3
+ import { r as FieldDecodingError } from "./BasicParser--n6FLqcE.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-JFtVlWtn.js";
3
+ import { b as Uint8ArrayType, f as UINT16_LE, g as UINT32_LE, m as UINT24_LE, y as UINT8 } from "./lib-C0cU2Bav.js";
4
+ import { t as require_src } from "./src-BJiPQPqV.js";
5
+ import { n as uint8ArrayToHex } from "./uint8array-extras-DBV0kdwr.js";
6
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser--n6FLqcE.js";
7
+ import { i as FourCcToken, r as tryParseApeHeader } from "./APEv2Parser-Ba7yIvMy.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-CJWRLYUu.js";
3
+ import "./lib-JFtVlWtn.js";
4
+ import { b as Uint8ArrayType, f as UINT16_LE, g as UINT32_LE, u as StringType } from "./lib-C0cU2Bav.js";
5
+ import { t as require_src } from "./src-BJiPQPqV.js";
6
+ import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser--n6FLqcE.js";
7
+ import { c as stripNulls } from "./Util-B_52glhk.js";
8
+ import { i as FourCcToken } from "./APEv2Parser-Ba7yIvMy.js";
9
+ import { t as ID3v2Parser } from "./ID3v2Parser-UNJu2sI-.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-CKLFiLpY.js";
10
+ import "./dist-3zY5f01M.js";
11
+ import "./dist-cjs-D9zWZLJo.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-BiSyGUoT.js";
18
+ import "./manifest-registry-Y19rtw98.js";
19
+ import "./config-55EPjg8B.js";
20
+ import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-Cy9b1PGA.js";
21
+ import "./device-identity-CnlyT2Si.js";
22
+ import { n as GatewayClient } from "./client-Dzt29zIp.js";
23
+ import { t as buildGatewayConnectionDetails } from "./call-CqDndKP3.js";
24
+ import { t as formatDocsLink } from "./links-BY_N2dMU.js";
25
+ import "./tailscale-BOh3Z_vn.js";
26
+ import { t as isMainModule } from "./is-main-CQX7mFIJ.js";
27
+ import { t as ensureSKYKOICliOnPath } from "./path-env-CnhsG0TT.js";
28
+ import { i as resolveGatewayAuth } from "./auth-X5uq6vRI.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 };