skykoi 2026.3.378 → 2026.3.380

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 (347) hide show
  1. package/README.md +58 -58
  2. package/dist/{APEv2Parser-DQgtEcUs.js → APEv2Parser-BHajq6RP.js} +5 -5
  3. package/dist/{AbstractID3Parser-Qj24Vvf7.js → AbstractID3Parser-B802nSmR.js} +6 -6
  4. package/dist/{AiffParser-UxOPBTuz.js → AiffParser-spAK9mo-.js} +7 -7
  5. package/dist/{AsfParser-DvcvFe-f.js → AsfParser-_JM6YpAn.js} +6 -6
  6. package/dist/{DsdiffParser-B5aDs75x.js → DsdiffParser-D80huz6Z.js} +7 -7
  7. package/dist/{DsfParser-BJYa4c6M.js → DsfParser-CGvBxusJ.js} +7 -7
  8. package/dist/{FlacParser-BCNYRnkp.js → FlacParser-Bw0aH-hn.js} +7 -7
  9. package/dist/{ID3v1Parser-CqO2j3yK.js → ID3v1Parser-ZGzzBc4d.js} +5 -5
  10. package/dist/{ID3v2Parser-ClDAZiXt.js → ID3v2Parser-BoiN4J8h.js} +6 -6
  11. package/dist/{ID3v2Token-Y21Kqx5Y.js → ID3v2Token-BIMV8Sb_.js} +2 -2
  12. package/dist/{MP4Parser-M44Iq315.js → MP4Parser-DKJrgqnt.js} +9 -9
  13. package/dist/{MatroskaParser-U6U0XVxJ.js → MatroskaParser-DyqHOGs9.js} +6 -6
  14. package/dist/{MpegParser-CPhV2-G8.js → MpegParser-hkfWbcAa.js} +7 -7
  15. package/dist/{MusepackParser-BnyYlYms.js → MusepackParser-i61uJ25-.js} +7 -7
  16. package/dist/{OggParser-BVXz8Tuf.js → OggParser-CqXprjwG.js} +8 -8
  17. package/dist/{Util-CduVSpxk.js → Util-mnbdMZQ3.js} +3 -3
  18. package/dist/{WavPackParser-nKtSivj0.js → WavPackParser-Dab6hJm-.js} +6 -6
  19. package/dist/{WaveParser-BQyyg_KG.js → WaveParser-DjPc3PjT.js} +8 -8
  20. package/dist/{acp-cli-BV955-GX.js → acp-cli-B3BXJhm9.js} +13 -13
  21. package/dist/{admin-unlock-Dr4FqRVP.js → admin-unlock-CTCNN-zM.js} +10 -34
  22. package/dist/{archive-HTCu_pHy.js → archive-DC9ZuxRH.js} +1 -1
  23. package/dist/{audio-decode-S5it083p.js → audio-decode-BDWAUoQi.js} +6 -6
  24. package/dist/{audit-BhMw948Z.js → audit-Ch5Ei9l3.js} +13 -13
  25. package/dist/{auth-Vh115fQN.js → auth-DhTfD5Fu.js} +2 -2
  26. package/dist/{auth-health-DX1wRWrd.js → auth-health-DfT6NGrM.js} +1 -1
  27. package/dist/{bonjour-discovery-Du_kGDHQ.js → bonjour-discovery-BcGs4w0m.js} +1 -1
  28. package/dist/build-info.json +3 -3
  29. package/dist/{call-C9iXIbXI.js → call-BTi_uq-4.js} +6 -6
  30. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  31. package/dist/{capture-service-D5vu8pNR.js → capture-service-DLdRCovF.js} +377 -270
  32. package/dist/{channel-auth-DrJ2FCUT.js → channel-auth-DOqfPLIr.js} +5 -5
  33. package/dist/{channel-options-Dil5NGZ4.js → channel-options-BI4411cy.js} +2 -2
  34. package/dist/{channel-selection-Cd-vguDM.js → channel-selection-BSuFqCaq.js} +1 -1
  35. package/dist/channel-summary-B0GuJe6z.js +240 -0
  36. package/dist/{channels-cli-C_Zfs8fy.js → channels-cli-B0emQpME.js} +81 -75
  37. package/dist/{chrome-Dw_3cCvP.js → chrome-CXOcEC_5.js} +1 -1
  38. package/dist/{clack-prompter-B9o3eQeW.js → clack-prompter-BbdTlNx8.js} +4 -4
  39. package/dist/cli/daemon-cli.js +1 -1
  40. package/dist/cli-BIARwYBo.js +120 -0
  41. package/dist/{cli-auto-update-BcTBKikF.js → cli-auto-update-DT6nkiW_.js} +3 -3
  42. package/dist/{client-QUeLEngh.js → client-BravwEMC.js} +3 -3
  43. package/dist/{completion-cli-Bk_esTtK.js → completion-cli-Cfip458C.js} +1 -1
  44. package/dist/{config-BFoj5wyy.js → config-CLGE0n41.js} +2 -1
  45. package/dist/{config-guard-CHolPjNa.js → config-guard-v9v1pT6m.js} +43 -42
  46. package/dist/{configure-BdP5Uzdz.js → configure-BvYU7bZ4.js} +17 -17
  47. package/dist/{constants-BezzOOYJ.js → constants-C4LZjcL0.js} +5 -4
  48. package/dist/context-digest-1gUN9_9r.js +105 -0
  49. package/dist/{control-service-Bbl6R2bi.js → control-service-DuD-SWEI.js} +4 -4
  50. package/dist/{core-B7QS0Vnt.js → core-BbMOb92i.js} +4 -4
  51. package/dist/{cron-cli-BmfGLNRg.js → cron-cli-1kkoxbHT.js} +15 -15
  52. package/dist/{daemon-cli-pKyd_-Wt.js → daemon-cli-B_iflZzZ.js} +19 -19
  53. package/dist/{daemon-runtime-r19-i0S0.js → daemon-runtime-jkMiwykI.js} +3 -3
  54. package/dist/{deliver-DJbxwsAM.js → deliver-BhQ25p4H.js} +7 -7
  55. package/dist/{deps-Dmh--gZI.js → deps-CCbeQohF.js} +2 -2
  56. package/dist/{devices-cli-BVkazJ4w.js → devices-cli-g01sioF8.js} +10 -10
  57. package/dist/{diagnostics-CFV2YxpG.js → diagnostics-DPRvn_ky.js} +1 -1
  58. package/dist/{directory-cli-DcARszmY.js → directory-cli-DM4hy_7e.js} +11 -11
  59. package/dist/{dispatcher-D2EwEyDs.js → dispatcher-5Vas6KyX.js} +1 -1
  60. package/dist/{dist-e0cLWrWe.js → dist-BJQ4qJgE.js} +5 -5
  61. package/dist/{dist-Byt8U32D.js → dist-BcBe246p.js} +1 -1
  62. package/dist/{dist-BYg0IiMA.js → dist-DmzuSdk3.js} +5 -5
  63. package/dist/dist-cjs-BYzq75Jl.js +182 -0
  64. package/dist/{dist-cjs-DgoUOLp1.js → dist-cjs-BmV1kAkQ.js} +1 -1
  65. package/dist/{dist-cjs-qF7-tMDi.js → dist-cjs-CCkaJDIC.js} +3 -3
  66. package/dist/{dist-cjs-B3idC8K8.js → dist-cjs-DBFmgTw9.js} +2 -2
  67. package/dist/{dist-cjs-C9i3z5oP.js → dist-cjs-DW0Q8tmB.js} +2 -2
  68. package/dist/{dist-cjs-DkwYlwhi.js → dist-cjs-DlGbsuFG.js} +3 -3
  69. package/dist/{dist-cjs-CoQz9Fv2.js → dist-cjs-UglT2b7K.js} +8 -8
  70. package/dist/{dist-0-pT_XrC.js → dist-niRQNrwJ.js} +49 -49
  71. package/dist/{dns-cli-BUdTrB_Z.js → dns-cli-DXXQfbBE.js} +8 -8
  72. package/dist/{docs-cli-BmySW810.js → docs-cli-DH-gn5OF.js} +9 -9
  73. package/dist/{doctor-DAr5RKS3.js → doctor-CJujJmCX.js} +33 -33
  74. package/dist/{doctor-completion-qAQPkzxx.js → doctor-completion-D-na5SuC.js} +3 -3
  75. package/dist/dotenv-Y3WsO11w.js +34 -0
  76. package/dist/{ensure-local-gateway-VbJtdpui.js → ensure-local-gateway-B2qYYNsm.js} +5 -5
  77. package/dist/entry.js +2 -2
  78. package/dist/{dist-cjs-BRsy-QAZ.js → event-streams-Rl1ERUF4.js} +716 -153
  79. package/dist/{exec-approvals-cli-C05rnH9F.js → exec-approvals-cli-DolHfA4N.js} +17 -17
  80. package/dist/{exec-approvals-evaluate-Dt6WI0kw.js → exec-approvals-evaluate-BRTvE5NT.js} +1 -1
  81. package/dist/extension-api.js +61 -55
  82. package/dist/{first-run-Clv7YnAC.js → first-run--n9CHJUW.js} +1 -1
  83. package/dist/{flac-Cf6-rEYV.js → flac-B2MA13C6.js} +0 -0
  84. package/dist/{gateway-cli-B7BkMY4h.js → gateway-cli-D1Vd7gJU.js} +455 -227
  85. package/dist/gateway-client.js +3 -3
  86. package/dist/{gateway-rpc-CIxOsvvC.js → gateway-rpc-DYI5hnM6.js} +3 -3
  87. package/dist/{github-copilot-auth-Dp2ZARrB.js → github-copilot-auth-fS8wMQ0N.js} +6 -6
  88. package/dist/{gmail-setup-utils-B_tUL1-k.js → gmail-setup-utils-BIDuN_6p.js} +1 -1
  89. package/dist/{health-format-CwXEhdyY.js → health-format-Mqf6E6Pb.js} +11 -11
  90. package/dist/{hooks-cli-CZogMyyF.js → hooks-cli-CsjotJmL.js} +65 -59
  91. package/dist/{hooks-status-B0H9mn8K.js → hooks-status-CJBhXrQP.js} +1 -1
  92. package/dist/identify-DFi1kVgv.js +724 -0
  93. package/dist/{image-CZ_X0a5U.js → image-B-OBKjcj.js} +10 -120
  94. package/dist/{image-ops-DQULvF-U.js → image-ops-CrnZA40n.js} +2 -2
  95. package/dist/index.js +114 -108
  96. package/dist/{installs-mPMyOEQN.js → installs-Bs0peWXz.js} +2 -2
  97. package/dist/{koi-60QBEH1O.js → koi-Dykd-hEW.js} +14 -13
  98. package/dist/{koi-event-bridge-BWU_Rwh9.js → koi-event-bridge-DH_0c757.js} +2 -2
  99. package/dist/{koi-utterance-trigger-DujDdolf.js → koi-utterance-trigger-Br-B-yIh.js} +1 -1
  100. package/dist/{lib-vJO_QLgu.js → lib-B2lQEF5z.js} +1 -1
  101. package/dist/{lib-DT8mC0XK.js → lib-DSRmbvqt.js} +24 -24
  102. package/dist/{lib-DUSSzss9.js → lib-DXDl0UwS.js} +1 -1
  103. package/dist/{lib-B5mlCG26.js → lib-DwFfM5Cm.js} +2 -2
  104. package/dist/{login-C71-L2cR.js → login-Du7RjDym.js} +380 -363
  105. package/dist/{login-qr-CFZIqrOV.js → login-qr-Bq6nob7r.js} +7 -7
  106. package/dist/{logs-cli-BCrmp8yo.js → logs-cli-ChsZEPhD.js} +12 -12
  107. package/dist/{manager-D9gyRViO.js → manager-5g6D011m.js} +5 -5
  108. package/dist/{message-0gwe6UQ4.js → message-DGrPR19b.js} +12 -41
  109. package/dist/{model-selection-B8ZAcQCt.js → model-selection-DANeZg-K.js} +67 -6
  110. package/dist/{models-cli-C_PL2W40.js → models-cli-CBhIn14A.js} +69 -63
  111. package/dist/models-config-DaXllDcv.js +114 -0
  112. package/dist/{mpg123-decoder-Fn4czrY3.js → mpg123-decoder-BA-HYd49.js} +0 -0
  113. package/dist/{multipart-parser-BXv6E5JW.js → multipart-parser-Ky8Ujgrb.js} +1 -1
  114. package/dist/{net-jcB_A-aF.js → net-COR_ZMrL.js} +1 -1
  115. package/dist/{node-cli-CZMWmnHC.js → node-cli-BYctyrT1.js} +28 -28
  116. package/dist/{node-service-BzD7Bqwc.js → node-service--cl-zK26.js} +2 -2
  117. package/dist/{nodes-cli-DwqW2k2v.js → nodes-cli-BZ1b789X.js} +16 -16
  118. package/dist/{note-DRoVRuAi.js → note-BDX6ZDm1.js} +1 -1
  119. package/dist/{ogg-opus-decoder-BJ9mKf6n.js → ogg-opus-decoder-BcOD4iHE.js} +0 -0
  120. package/dist/{ogg-vorbis-CDxKpVF8.js → ogg-vorbis-Dh3PKS8l.js} +0 -0
  121. package/dist/{onboard-channels-BxnxB2za.js → onboard-channels-DSqwLtZ3.js} +5 -5
  122. package/dist/{onboard-helpers-DKhundDe.js → onboard-helpers-CYtM5OsS.js} +8 -8
  123. package/dist/{onboard-skills-DHsJKmOh.js → onboard-skills-CbhAiENM.js} +12 -12
  124. package/dist/{onboarding-DcbGvFE3.js → onboarding-YoKrr8S1.js} +36 -35
  125. package/dist/{opus-ml-DIcvvLYD.js → opus-ml-BT8HD4Wf.js} +0 -0
  126. package/dist/{pairing-cli-YCG-zMZV.js → pairing-cli-L04zzu_F.js} +10 -10
  127. package/dist/{pairing-labels-COEL5-l6.js → pairing-labels-CvFO0Xed.js} +1 -1
  128. package/dist/{path-env-gxBbRHVZ.js → path-env-C0IwmyXV.js} +1 -1
  129. package/dist/{photon_rs-CnEPM1hz.js → photon_rs-Bw1yquJb.js} +1 -1
  130. package/dist/{pi-embedded-helpers-VJ9hOBTv.js → pi-embedded-helpers-BpKFoEtW.js} +2 -2
  131. package/dist/{pi-model-discovery-1FYyRpLv.js → pi-model-discovery-Bp0moQmV.js} +1 -1
  132. package/dist/{pi-tool-definition-adapter-CgLxQsZ_.js → pi-tool-definition-adapter-B27FgU9e.js} +3 -3
  133. package/dist/{pi-tools.policy-DXLhV6cY.js → pi-tools.policy-PCx8J8un.js} +3 -3
  134. package/dist/{plugin-auto-enable-Cg3LRidd.js → plugin-auto-enable-Bh5EO2p2.js} +2 -2
  135. package/dist/{plugin-registry-i-7OCuRL.js → plugin-registry-Ct2B6APr.js} +2 -2
  136. package/dist/plugin-sdk/auto-reply/reply/memory-flush.d.ts +1 -0
  137. package/dist/plugin-sdk/capture/audio-echo.d.ts +84 -0
  138. package/dist/plugin-sdk/capture/capture-service.d.ts +1 -12
  139. package/dist/plugin-sdk/capture/capture-store.d.ts +6 -4
  140. package/dist/plugin-sdk/capture/context-block.d.ts +7 -0
  141. package/dist/plugin-sdk/capture/context-digest.d.ts +8 -0
  142. package/dist/plugin-sdk/capture/input-capture.d.ts +3 -1
  143. package/dist/plugin-sdk/capture/live-tail.d.ts +9 -0
  144. package/dist/plugin-sdk/capture/proactive/actor.d.ts +9 -0
  145. package/dist/plugin-sdk/capture/proactive/addressing.d.ts +148 -0
  146. package/dist/plugin-sdk/capture/proactive/context.d.ts +5 -0
  147. package/dist/plugin-sdk/capture/proactive/fast-responder.d.ts +32 -0
  148. package/dist/plugin-sdk/capture/proactive/inject.d.ts +7 -0
  149. package/dist/plugin-sdk/capture/proactive/notifications.d.ts +42 -0
  150. package/dist/plugin-sdk/capture/proactive/pipeline.d.ts +3 -0
  151. package/dist/plugin-sdk/capture/proactive/state.d.ts +3 -0
  152. package/dist/plugin-sdk/capture/proactive/triggers.d.ts +15 -0
  153. package/dist/plugin-sdk/capture/proactive-eval.d.ts +11 -3
  154. package/dist/plugin-sdk/capture/voiceid/embedder.d.ts +17 -0
  155. package/dist/plugin-sdk/capture/voiceid/identify.d.ts +24 -0
  156. package/dist/plugin-sdk/capture/voiceid/registry.d.ts +69 -0
  157. package/dist/plugin-sdk/config/types.koi-defaults.d.ts +7 -0
  158. package/dist/plugin-sdk/config/zod-schema.d.ts +1 -0
  159. package/dist/plugin-sdk/config/zod-schema.koi-defaults.d.ts +1 -0
  160. package/dist/plugin-sdk/config/zod-schema.kois.d.ts +1 -0
  161. package/dist/plugin-sdk/daemon/constants.d.ts +2 -2
  162. package/dist/plugin-sdk/gateway/live-broadcast.d.ts +20 -0
  163. package/dist/plugin-sdk/index.js +595 -57
  164. package/dist/plugin-sdk/koi/code-mode/run-code-tool.d.ts +6 -0
  165. package/dist/plugin-sdk/koi/context-window-guard.d.ts +23 -1
  166. package/dist/plugin-sdk/koi/defaults.d.ts +1 -1
  167. package/dist/plugin-sdk/koi/pi-embedded-runner/runs.d.ts +7 -0
  168. package/dist/plugin-sdk/koi/pi-extensions/compaction-token-warning.d.ts +66 -0
  169. package/dist/plugin-sdk/koi/smart-models.d.ts +24 -0
  170. package/dist/plugin-sdk/koi/tools/screen-tool.d.ts +2 -0
  171. package/dist/plugin-sdk/koi/tools/tui-command-tool.d.ts +6 -0
  172. package/dist/plugin-sdk/{pi-model-discovery-CBWcyyqn.js → pi-model-discovery-lynj0LAO.js} +33 -33
  173. package/dist/plugin-sdk/tui/commands.d.ts +19 -0
  174. package/dist/plugin-sdk/tui/tui-fast-lane.d.ts +92 -0
  175. package/dist/plugin-sdk/tui/tui-formatters.d.ts +19 -0
  176. package/dist/{plugins-cli-D2VbB67J.js → plugins-cli-sKHmCWJF.js} +67 -61
  177. package/dist/{ports-YIGvuUFy.js → ports-CVcXIoyn.js} +1 -1
  178. package/dist/proactive-eval-BqXgAAFe.js +1758 -0
  179. package/dist/{program-dkrklJ1-.js → program-L-wrMwW8.js} +6 -6
  180. package/dist/{pw-ai-DPYtM6g2.js → pw-ai-ByKRZUzk.js} +2 -2
  181. package/dist/{qmd-manager-C4GhIhEk.js → qmd-manager-BvrVCL-b.js} +4 -4
  182. package/dist/{register.subclis-D-MllcmA.js → register.subclis-DmQzWagl.js} +45 -31
  183. package/dist/registry-BwlCjCgP.js +312 -0
  184. package/dist/{reply-BVzxDpAq.js → reply-tSPOlwv_.js} +592 -968
  185. package/dist/{routes-rN1UjOYR.js → routes-CPAk9Y5f.js} +4 -4
  186. package/dist/{rpc-fRk3LjKi.js → rpc-TgNwEey5.js} +3 -3
  187. package/dist/{run-code-tool-DgaptjNR.js → run-code-tool-DUmBHY86.js} +53 -4
  188. package/dist/{run-main-yDGfHYJi.js → run-main-DUIUN49w.js} +118 -112
  189. package/dist/{runner-BKZKGx9n.js → runner-yx-BOgnv.js} +11 -11
  190. package/dist/{sandbox-o5syhP4X.js → sandbox-C0ZJwSVo.js} +7 -7
  191. package/dist/{sandbox-cli-CfAt2goU.js → sandbox-cli-D-w16RrM.js} +21 -21
  192. package/dist/{security-cli-BzRFeMPl.js → security-cli-CsTfeNRD.js} +29 -29
  193. package/dist/{server-context-Co6-risd.js → server-context-Bt0jHVZi.js} +4 -4
  194. package/dist/{server-node-events-DSy0EVXw.js → server-node-events-B8081Ywm.js} +64 -58
  195. package/dist/{service-BGkVTESM.js → service-CW9nUfWU.js} +2 -2
  196. package/dist/{service-audit-C3mNLBya.js → service-audit-B_swanYW.js} +4 -4
  197. package/dist/{session-cost-usage--3A8ZVbE.js → session-cost-usage-nkKUBhE6.js} +4 -54
  198. package/dist/{sessions-Cz4LlZH7.js → sessions-Nbm2FJjj.js} +6 -6
  199. package/dist/{shared-CwLJrrHf.js → shared-B4yQJnq9.js} +2 -2
  200. package/dist/{shared-BJlh4CKo.js → shared-CsJmoyjd.js} +3 -3
  201. package/dist/{signin-CKPJeM6c.js → signin-DlTUYE9c.js} +3 -3
  202. package/dist/{skills-BQWFFLxf.js → skills-BGeyO28-.js} +1 -1
  203. package/dist/{skills-cli-B8v_mVdS.js → skills-cli-BQ0jraxR.js} +12 -12
  204. package/dist/{skills-status-DakSfN8r.js → skills-status-Dij6qiDp.js} +2 -2
  205. package/dist/{sqlite-BNq8OiKY.js → sqlite-DOBJPTUL.js} +1 -1
  206. package/dist/{src-BundmGr4.js → src-IbYDzK8j.js} +2 -2
  207. package/dist/{sso-oidc-9TmsVsE-.js → sso-oidc-MdOIlkX8.js} +3 -3
  208. package/dist/{status-B8_GYF7B.js → status-BYGEnfFQ.js} +2 -2
  209. package/dist/streams-cli-PoD-4gEV.js +811 -0
  210. package/dist/{sts-DOzrP3NK.js → sts-DtED4J6N.js} +3 -3
  211. package/dist/{system-cli-QvhzOcHc.js → system-cli-CRrPbkqy.js} +11 -11
  212. package/dist/{system-prompt-snippet-DxhEuu4G.js → system-prompt-snippet-Cztbi-g5.js} +1 -1
  213. package/dist/{systemd-BzTSelz8.js → systemd-fjt-WYE7.js} +1 -1
  214. package/dist/{systemd-linger-Be49_NdF.js → systemd-linger-T7_vGBN4.js} +2 -2
  215. package/dist/{tool-display-DYOxwSs6.js → tool-display-bfQcpWKs.js} +1 -1
  216. package/dist/{tool-images-BqeQexfA.js → tool-images-D9CT6Zps.js} +1 -1
  217. package/dist/transcript-tools-CVkBX-9k.js +52 -0
  218. package/dist/tui-BE4qiT6o.js +8037 -0
  219. package/dist/{tui-cli-DjAjZ3ou.js → tui-cli-Da1h8hbA.js} +41 -37
  220. package/dist/tui-fast-lane-Ev2oUXQf.js +2164 -0
  221. package/dist/{update-CLiH8DXs.js → update-CM-GxSQ-.js} +1 -1
  222. package/dist/{update-cli-Bk2nv2Jp.js → update-cli-C9mUm5mZ.js} +92 -86
  223. package/dist/{update-runner-odTAl-uh.js → update-runner-BTHuBI1s.js} +3 -3
  224. package/dist/voices-cli-DQS8ZmP8.js +79 -0
  225. package/dist/{webhooks-cli-BXVdLR6R.js → webhooks-cli-DenQ4zGz.js} +11 -11
  226. package/dist/{ws-log-C9-8BLr6.js → ws-log--0j9nuD2.js} +1 -1
  227. package/docs/reference/session-management-compaction.md +25 -0
  228. package/extensions/bluebubbles/package.json +1 -1
  229. package/extensions/copilot-proxy/package.json +1 -1
  230. package/extensions/diagnostics-otel/package.json +1 -1
  231. package/extensions/discord/package.json +1 -1
  232. package/extensions/feishu/package.json +1 -1
  233. package/extensions/google-antigravity-auth/package.json +1 -1
  234. package/extensions/google-gemini-cli-auth/package.json +1 -1
  235. package/extensions/googlechat/package.json +1 -1
  236. package/extensions/imessage/package.json +1 -1
  237. package/extensions/line/package.json +1 -1
  238. package/extensions/llm-task/package.json +1 -1
  239. package/extensions/lobster/package.json +1 -1
  240. package/extensions/matrix/CHANGELOG.md +15 -0
  241. package/extensions/matrix/package.json +1 -1
  242. package/extensions/mattermost/package.json +1 -1
  243. package/extensions/memory-core/package.json +1 -1
  244. package/extensions/memory-lancedb/package.json +1 -1
  245. package/extensions/minimax-portal-auth/package.json +1 -1
  246. package/extensions/msteams/CHANGELOG.md +15 -0
  247. package/extensions/msteams/package.json +1 -1
  248. package/extensions/nextcloud-talk/package.json +1 -1
  249. package/extensions/nostr/CHANGELOG.md +15 -0
  250. package/extensions/nostr/package.json +1 -1
  251. package/extensions/open-prose/package.json +1 -1
  252. package/extensions/signal/package.json +1 -1
  253. package/extensions/slack/package.json +1 -1
  254. package/extensions/telegram/package.json +1 -1
  255. package/extensions/tlon/package.json +1 -1
  256. package/extensions/twitch/CHANGELOG.md +15 -0
  257. package/extensions/twitch/package.json +1 -1
  258. package/extensions/voice-call/CHANGELOG.md +15 -0
  259. package/extensions/voice-call/package.json +1 -1
  260. package/extensions/whatsapp/package.json +1 -1
  261. package/extensions/zalo/CHANGELOG.md +15 -0
  262. package/extensions/zalo/package.json +1 -1
  263. package/extensions/zalouser/CHANGELOG.md +15 -0
  264. package/extensions/zalouser/package.json +1 -1
  265. package/package.json +2 -1
  266. package/dist/capture-store-CW4hVLPX.js +0 -66
  267. package/dist/channel-summary-Bpd0YaF9.js +0 -1266
  268. package/dist/cli-Dc3ueJKy.js +0 -114
  269. package/dist/event-streams-CD5hdnsJ.js +0 -202
  270. package/dist/plugin-sdk/capture/clipboard-capture.d.ts +0 -3
  271. package/dist/plugin-sdk/capture/window-capture.d.ts +0 -3
  272. package/dist/proactive-eval-DaXqH_TQ.js +0 -385
  273. package/dist/tui-C8LwqY_j.js +0 -3929
  274. package/dist/utilities-CtLqF4ZL.js +0 -546
  275. /package/dist/{BasicParser-BDahKicO.js → BasicParser-ib29xNgX.js} +0 -0
  276. /package/dist/{accounts-DFSZwaCs.js → accounts-DiVdPd_D.js} +0 -0
  277. /package/dist/{brew-BJ9My-K-.js → brew-ByyjRLPe.js} +0 -0
  278. /package/dist/{capture-cli-ClZem-s-.js → capture-cli-8-FYeUCJ.js} +0 -0
  279. /package/dist/{channels-status-issues-BLygTpUh.js → channels-status-issues-D92ZMiSY.js} +0 -0
  280. /package/dist/{cli-utils-CwUbbnsD.js → cli-utils-DBV8EzWu.js} +0 -0
  281. /package/dist/{companions-yGGfCit3.js → companions-BIjcAyOW.js} +0 -0
  282. /package/dist/{control-ui-assets-B0N-n2rD.js → control-ui-assets-Dcc_8tht.js} +0 -0
  283. /package/dist/{core-BlxokmuT.js → core-Cp6b38f5.js} +0 -0
  284. /package/dist/{declarations-B_Cov-W-.js → declarations-DF6wUzmI.js} +0 -0
  285. /package/dist/{device-identity-BZ8FfIMK.js → device-identity-Bxhfs1xr.js} +0 -0
  286. /package/dist/{dist-cjs-CAmlYZvL.js → dist-cjs-B91cZxTi.js} +0 -0
  287. /package/dist/{dist-cjs-DU3POVA3.js → dist-cjs-D5RG_Z5Z.js} +0 -0
  288. /package/dist/{esm-NsDrT6No.js → esm-B_NgDkcJ.js} +0 -0
  289. /package/dist/{esm-ChQpJ6qP.js → esm-DqRYstC3.js} +0 -0
  290. /package/dist/{esm-shims-DvdTuZCJ.js → esm-shims-CCgr543I.js} +0 -0
  291. /package/dist/{event-log-BJRHlOn8.js → event-log-DixS9-PA.js} +0 -0
  292. /package/dist/{exec-approvals-io-8xsM0ZwU.js → exec-approvals-io-C7x-a9Hw.js} +0 -0
  293. /package/dist/{format-IoT-eUxs.js → format-lvtLJpBH.js} +0 -0
  294. /package/dist/{from-2w0h_mOr.js → from-CESiXX-I.js} +0 -0
  295. /package/dist/{help-format-BVBm9rU4.js → help-format-VHofKIT0.js} +0 -0
  296. /package/dist/{helpers-BwzKU4J1.js → helpers-BtH6pa6c.js} +0 -0
  297. /package/dist/{helpers-y1KKH5pe.js → helpers-C0u-oaDR.js} +0 -0
  298. /package/dist/{is-main-Cs8_TnVO.js → is-main-D5NmXew9.js} +0 -0
  299. /package/dist/{koi-events-c_9Lexjh.js → koi-events-BZbg2_wc.js} +0 -0
  300. /package/dist/{lib-pS0Bd7GL.js → lib-C2sG32ef.js} +0 -0
  301. /package/dist/{links-B0HTM-CT.js → links-CFNtV6AI.js} +0 -0
  302. /package/dist/{live-broadcast-4WHT3Ttd.js → live-broadcast-DTDbrEIa.js} +0 -0
  303. /package/dist/{logging-1Q_KlUsW.js → logging-CE47aZcO.js} +0 -0
  304. /package/dist/{logging-ADUQX6n5.js → logging-CeI8pPxx.js} +0 -0
  305. /package/dist/{message-channel-CaDAAMe0.js → message-channel-Bhhyy2hp.js} +0 -0
  306. /package/dist/{node-pairing-DxF2w-Rz.js → node-pairing-CKU0Vndp.js} +0 -0
  307. /package/dist/{node-pty-C9SB48vB.js → node-pty-ssbXF3lV.js} +0 -0
  308. /package/dist/{node-wav-Cww_PGxq.js → node-wav--R7GqqNY.js} +0 -0
  309. /package/dist/{nodes-screen-v1Zh-4mK.js → nodes-screen-Ce8fGLhD.js} +0 -0
  310. /package/dist/{package-BWtAGZQo.js → package-BCGxIGWs.js} +0 -0
  311. /package/dist/{pairing-store-DtLK_KGs.js → pairing-store-xsNgyCt9.js} +0 -0
  312. /package/dist/{parse-B6Z5uj5w.js → parse-DfgX5okr.js} +0 -0
  313. /package/dist/{parse-log-line-BOe9IEjO.js → parse-log-line-SrX551Mb.js} +0 -0
  314. /package/dist/{parse-timeout-Bqul9c7q.js → parse-timeout-uTDpUWKR.js} +0 -0
  315. /package/dist/{paths-DLKQOevr.js → paths-DNVGKsSx.js} +0 -0
  316. /package/dist/{pdf-BCUoSSbE.js → pdf-DGgmGXX6.js} +0 -0
  317. /package/dist/{permissions-cli-DIjlNmoA.js → permissions-cli-CB-DpLJe.js} +0 -0
  318. /package/dist/{progress-BPDEiFpj.js → progress-B0j0uCjm.js} +0 -0
  319. /package/dist/{prompt-style-e5zz5JM8.js → prompt-style-ukndhQOw.js} +0 -0
  320. /package/dist/{prompts-yNyvMdpp.js → prompts-D59uQQdA.js} +0 -0
  321. /package/dist/{proxy-from-env-BnenCgWg.js → proxy-from-env-NVPRlS0s.js} +0 -0
  322. /package/dist/{qoa-format-DKl8GnIB.js → qoa-format-Bja5jG7o.js} +0 -0
  323. /package/dist/{readability-gLPFkT51.js → readability-lhU95XlO.js} +0 -0
  324. /package/dist/{readiness-CV3vZbo6.js → readiness-BWfeT18A.js} +0 -0
  325. /package/dist/{redact-1AXapBET.js → redact-CuHse7Ma.js} +0 -0
  326. /package/dist/{restart-sentinel-Cu-Tbnik.js → restart-sentinel-CLogImVw.js} +0 -0
  327. /package/dist/{runtime-guard-C80qkv4W.js → runtime-guard-DQEzrjPX.js} +0 -0
  328. /package/dist/{satisfies-OaA965Ap.js → satisfies-c71IS8Gf.js} +0 -0
  329. /package/dist/{skill-scanner-CBHxr1An.js → skill-scanner-BX7BBBdM.js} +0 -0
  330. /package/dist/{source-map-CrpLpyUT.js → source-map-B_vA6VVS.js} +0 -0
  331. /package/dist/{sqlite-vec-BkdMOEHY.js → sqlite-vec-GPELZ-zq.js} +0 -0
  332. /package/dist/{src-ByySp9O0.js → src-CAVRZapq.js} +0 -0
  333. /package/dist/{status-BN46BKoK.js → status-C8ntwWk9.js} +0 -0
  334. /package/dist/{systemd-hints-CzaKNNI1.js → systemd-hints-C22cXhrH.js} +0 -0
  335. /package/dist/{table-B3RHVa0g.js → table-BFIT6RB5.js} +0 -0
  336. /package/dist/{tailnet-owCs1x2u.js → tailnet-Cz2pl07T.js} +0 -0
  337. /package/dist/{tailscale-BO36kRfh.js → tailscale-B0Nz70aN.js} +0 -0
  338. /package/dist/{tokens-9rhTb1EM.js → tokens-BmRB1Mkz.js} +0 -0
  339. /package/dist/{tool-policy-D7sC9oiD.js → tool-policy-BYmiYVth.js} +0 -0
  340. /package/dist/{transcript-events-DdnTeoR1.js → transcript-events-CJRvASY_.js} +0 -0
  341. /package/dist/{types-BYMsIb3Z.js → types-DxL6lwZL.js} +0 -0
  342. /package/dist/{uint8array-extras-CU0tDxpC.js → uint8array-extras-BXjehc45.js} +0 -0
  343. /package/dist/{usage-format-16I7JWKr.js → usage-format-EdDmn0JB.js} +0 -0
  344. /package/dist/{warnings-ZtUGH1-N.js → warnings-Cl3wLuoe.js} +0 -0
  345. /package/dist/{widearea-dns-Bb9eE_C1.js → widearea-dns-DmDtfScg.js} +0 -0
  346. /package/dist/{ws-JSp6UZJ5.js → ws-DQzNsCSb.js} +0 -0
  347. /package/dist/{wsl-DiiAe4Ci.js → wsl-DzPWlBsw.js} +0 -0
package/README.md CHANGED
@@ -59,7 +59,7 @@ flowchart LR
59
59
 
60
60
  ## What it is
61
61
 
62
- SkyKoi Runtime is the program that *is* a koi. It is published to npm and runs **wherever
62
+ SkyKoi Runtime is the program that _is_ a koi. It is published to npm and runs **wherever
63
63
  the koi lives**: today that is primarily the **user's own device** (the macOS menubar app,
64
64
  or any Mac/Linux/Windows host), reachable from the cloud through a tunnel. It can also run
65
65
  on a server or VM. (It is host-agnostic, so do not assume EC2; an earlier managed fleet has
@@ -135,15 +135,15 @@ flowchart TB
135
135
 
136
136
  These seven terms unlock the codebase.
137
137
 
138
- | Term | Meaning |
139
- |---|---|
140
- | **koi** | One agent identity. Has a workspace, memory, model config, and sessions. A host can run several. |
141
- | **gateway** | The always-on process. Hosts the WebSocket/RPC server, channels, cron, and the koi runtime. |
142
- | **session** | One conversation thread with a koi, keyed by `(koi, channel, account, peer)`. Persisted as a transcript. |
143
- | **channel** | A messaging surface (Telegram, iMessage, web...). A pluggable adapter translating native to internal messages. |
144
- | **command** vs **tool** | A **command** is owner-typed chat text (`/model`, `/reset`) intercepted *before* the LLM. A **tool** is an action the LLM itself calls (`exec`, `browser`, `email`). |
145
- | **the "Pi" runtime** | The embedded agent core (`@mariozechner/pi-*`). The koi loop wraps it; see `src/koi/pi-embedded*`. |
146
- | **workspace** | `~/.skykoi/...`: the koi's editable brain on disk (`KOI.md`, `SOUL.md`, `USER.md`, `MEMORY.md`, sessions). |
138
+ | Term | Meaning |
139
+ | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
140
+ | **koi** | One agent identity. Has a workspace, memory, model config, and sessions. A host can run several. |
141
+ | **gateway** | The always-on process. Hosts the WebSocket/RPC server, channels, cron, and the koi runtime. |
142
+ | **session** | One conversation thread with a koi, keyed by `(koi, channel, account, peer)`. Persisted as a transcript. |
143
+ | **channel** | A messaging surface (Telegram, iMessage, web...). A pluggable adapter translating native to internal messages. |
144
+ | **command** vs **tool** | A **command** is owner-typed chat text (`/model`, `/reset`) intercepted _before_ the LLM. A **tool** is an action the LLM itself calls (`exec`, `browser`, `email`). |
145
+ | **the "Pi" runtime** | The embedded agent core (`@mariozechner/pi-*`). The koi loop wraps it; see `src/koi/pi-embedded*`. |
146
+ | **workspace** | `~/.skykoi/...`: the koi's editable brain on disk (`KOI.md`, `SOUL.md`, `USER.md`, `MEMORY.md`, sessions). |
147
147
 
148
148
  ---
149
149
 
@@ -192,11 +192,11 @@ flowchart TB
192
192
  cmd --> deps["createDefaultDeps()<br/>injected config + helpers"]
193
193
  ```
194
194
 
195
- | Piece | Role |
196
- |---|---|
197
- | `src/cli/` | Commander-based CLI: program construction, argv helpers, help/version, and a **fast-path router** (`src/cli/route.ts`) that shortcuts common read-only commands past full parsing. |
198
- | `src/cli/deps.ts` | `createDefaultDeps()`: the dependency-injection container (config, workspace, koi helpers) passed into commands so they are testable. |
199
- | `src/runtime.ts` | The injectable `log` / `error` / `exit` surface, so tests can capture output. |
195
+ | Piece | Role |
196
+ | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
197
+ | `src/cli/` | Commander-based CLI: program construction, argv helpers, help/version, and a **fast-path router** (`src/cli/route.ts`) that shortcuts common read-only commands past full parsing. |
198
+ | `src/cli/deps.ts` | `createDefaultDeps()`: the dependency-injection container (config, workspace, koi helpers) passed into commands so they are testable. |
199
+ | `src/runtime.ts` | The injectable `log` / `error` / `exit` surface, so tests can capture output. |
200
200
 
201
201
  > The default action: `koi` with no args checks login, then drops into the **TUI** chat, or
202
202
  > shows the first-run welcome on a fresh machine.
@@ -208,31 +208,31 @@ flowchart TB
208
208
  The product is a **pnpm workspace**: the root package (`skykoi`) plus `extensions/*` (plugins)
209
209
  and `apps/*` (native apps). Start with `src/`.
210
210
 
211
- | Path | What lives here | Start here |
212
- |---|---|---|
213
- | `src/entry.ts`, `src/index.ts`, `src/runtime.ts` | Process bootstrap + public library entry | `src/entry.ts` |
214
- | `src/cli/`, `src/commands/` | The CLI: command registry + every subcommand | `command-registry.ts` |
215
- | **`src/koi/`** | **The agent.** The Pi-embedded loop, tools, prompt assembly, sessions, models, sandbox | `pi-embedded-runner/run.ts` |
216
- | `src/auto-reply/` | Inbound message to command-gating to koi turn to streamed reply | `reply.ts` |
217
- | **`src/gateway/`** | **The server.** WebSocket + RPC, sessions, heartbeat, control UI, OpenAI-compatible HTTP | `server.impl.ts` |
218
- | `src/gateway-client.ts` | The WS client apps/devices use to connect | `gateway-client.ts` |
219
- | `src/channels/` | Channel **plugin system**: adapter interfaces, discovery, allowlists, gating | `plugins/types.core.ts` |
220
- | `src/telegram/ discord/ slack/ signal/ imessage/ web/ whatsapp/ line/` | Per-channel adapters (native API to internal messages) | each dir entry |
221
- | `src/routing/`, `src/pairing/` | Map `(channel, account, peer)` to `(koi, session)`; DM pairing and allowlists | `routing/resolve-route.ts` |
222
- | `src/providers/`, `src/koi/models-config*.ts` | LLM provider adapters and model selection | `models-config.providers.ts` |
223
- | `src/config/` | Config schema, load/validate `~/.skykoi/skykoi.json`, hot-reload, migrations | `zod-schema.ts`, `paths.ts` |
224
- | `src/memory/` | Long-term memory: SQLite + vectors (`sqlite-vec`) + hybrid search | `manager.ts` |
225
- | `src/world-model/` | The per-koi context block injected into the system prompt | `renderer.ts` |
226
- | `src/cron/` | Scheduled, isolated koi turns | `service.ts` |
227
- | `src/infra/` | Backoff/retry, update/self-update, exec-approval policy, heartbeat | by filename |
228
- | `src/node-host/`, `src/browser/` | Device capabilities + Chrome automation (the `nodes` and `browser` tools) | `node-host/runner.ts`, `browser/client.ts` |
229
- | `src/security/`, `src/gateway/device-auth.ts` | Auth tokens, device pairing, exec policy | `device-auth.ts` |
230
- | `src/plugins/`, `src/plugin-sdk/` | The plugin loader + the public SDK `extensions/*` build against | `plugin-sdk/index.ts` |
231
- | `src/tui/` | The terminal chat UI | `tui/` |
232
- | `extensions/*` | Workspace plugins: extra channels and memory backends | each `package.json` |
233
- | `apps/macos ios android shared` | Native clients (Swift/Kotlin) that speak the gateway protocol | per-app folder |
234
- | `docs/` | The Mintlify docs site (docs.skykoi.com) | `docs/index.md` |
235
- | `dist/` | **Build output. Generated, never edit.** | - |
211
+ | Path | What lives here | Start here |
212
+ | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------ |
213
+ | `src/entry.ts`, `src/index.ts`, `src/runtime.ts` | Process bootstrap + public library entry | `src/entry.ts` |
214
+ | `src/cli/`, `src/commands/` | The CLI: command registry + every subcommand | `command-registry.ts` |
215
+ | **`src/koi/`** | **The agent.** The Pi-embedded loop, tools, prompt assembly, sessions, models, sandbox | `pi-embedded-runner/run.ts` |
216
+ | `src/auto-reply/` | Inbound message to command-gating to koi turn to streamed reply | `reply.ts` |
217
+ | **`src/gateway/`** | **The server.** WebSocket + RPC, sessions, heartbeat, control UI, OpenAI-compatible HTTP | `server.impl.ts` |
218
+ | `src/gateway-client.ts` | The WS client apps/devices use to connect | `gateway-client.ts` |
219
+ | `src/channels/` | Channel **plugin system**: adapter interfaces, discovery, allowlists, gating | `plugins/types.core.ts` |
220
+ | `src/telegram/ discord/ slack/ signal/ imessage/ web/ whatsapp/ line/` | Per-channel adapters (native API to internal messages) | each dir entry |
221
+ | `src/routing/`, `src/pairing/` | Map `(channel, account, peer)` to `(koi, session)`; DM pairing and allowlists | `routing/resolve-route.ts` |
222
+ | `src/providers/`, `src/koi/models-config*.ts` | LLM provider adapters and model selection | `models-config.providers.ts` |
223
+ | `src/config/` | Config schema, load/validate `~/.skykoi/skykoi.json`, hot-reload, migrations | `zod-schema.ts`, `paths.ts` |
224
+ | `src/memory/` | Long-term memory: SQLite + vectors (`sqlite-vec`) + hybrid search | `manager.ts` |
225
+ | `src/world-model/` | The per-koi context block injected into the system prompt | `renderer.ts` |
226
+ | `src/cron/` | Scheduled, isolated koi turns | `service.ts` |
227
+ | `src/infra/` | Backoff/retry, update/self-update, exec-approval policy, heartbeat | by filename |
228
+ | `src/node-host/`, `src/browser/` | Device capabilities + Chrome automation (the `nodes` and `browser` tools) | `node-host/runner.ts`, `browser/client.ts` |
229
+ | `src/security/`, `src/gateway/device-auth.ts` | Auth tokens, device pairing, exec policy | `device-auth.ts` |
230
+ | `src/plugins/`, `src/plugin-sdk/` | The plugin loader + the public SDK `extensions/*` build against | `plugin-sdk/index.ts` |
231
+ | `src/tui/` | The terminal chat UI | `tui/` |
232
+ | `extensions/*` | Workspace plugins: extra channels and memory backends | each `package.json` |
233
+ | `apps/macos ios android shared` | Native clients (Swift/Kotlin) that speak the gateway protocol | per-app folder |
234
+ | `docs/` | The Mintlify docs site (docs.skykoi.com) | `docs/index.md` |
235
+ | `dist/` | **Build output. Generated, never edit.** | - |
236
236
 
237
237
  > Some directories hold hundreds of files. The "start here" file is the door; the imports
238
238
  > take you the rest of the way. A directory's own `README.md` or doc page outranks this table.
@@ -259,14 +259,14 @@ flowchart LR
259
259
  class F done;
260
260
  ```
261
261
 
262
- | Area | Where | Notes |
263
- |---|---|---|
264
- | Orchestration | `pi-embedded-runner/` | `run.ts` drives the loop; `attempt.ts` is one step; `compact.ts` trims history; `model.ts` picks the model and fails over. |
265
- | System prompt | `system-prompt.ts` + `src/world-model/` | Assembled from runtime metadata, the world model, workspace files, tools, and channel rules. |
266
- | Tools | `src/koi/tools/` | One file per capability: `exec`, `browser-tool`, file read/write, `email-tool`, `memory-tool`, `nodes-tool`, `cron-tool`, sub-agents, per-channel `*-actions`. |
267
- | Sessions | `src/koi/` | Persisted per `(koi, sessionKey)`, guarded against concurrent writes and corruption. |
268
- | Auth and models | `auth-profiles/`, `model-selection.ts`, `models-config*.ts` | Resolve provider/key/model and fail over when one is unavailable. |
269
- | Sandbox | `src/koi/sandbox/` | Docker isolation for non-main (group/channel) sessions and risky tool runs. |
262
+ | Area | Where | Notes |
263
+ | --------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
264
+ | Orchestration | `pi-embedded-runner/` | `run.ts` drives the loop; `attempt.ts` is one step; `compact.ts` trims history; `model.ts` picks the model and fails over. |
265
+ | System prompt | `system-prompt.ts` + `src/world-model/` | Assembled from runtime metadata, the world model, workspace files, tools, and channel rules. |
266
+ | Tools | `src/koi/tools/` | One file per capability: `exec`, `browser-tool`, file read/write, `email-tool`, `memory-tool`, `nodes-tool`, `cron-tool`, sub-agents, per-channel `*-actions`. |
267
+ | Sessions | `src/koi/` | Persisted per `(koi, sessionKey)`, guarded against concurrent writes and corruption. |
268
+ | Auth and models | `auth-profiles/`, `model-selection.ts`, `models-config*.ts` | Resolve provider/key/model and fail over when one is unavailable. |
269
+ | Sandbox | `src/koi/sandbox/` | Docker isolation for non-main (group/channel) sessions and risky tool runs. |
270
270
 
271
271
  **The koi's brain on disk** is plain Markdown it reads each turn and can edit:
272
272
 
@@ -445,15 +445,15 @@ instead of a channel adapter.
445
445
 
446
446
  ## Where to add things
447
447
 
448
- | You want to... | Go to | Notes |
449
- |---|---|---|
450
- | Add a **tool** the koi can call | `src/koi/tools/` | One file per tool; register it in the runner's toolset. Mind the tool-schema guardrails in `AGENTS.md`. |
451
- | Add a **CLI command** | `src/commands/` + register in `command-registry.ts` | Take `deps` from `createDefaultDeps()`. |
452
- | Add a **gateway RPC method** | `src/gateway/server-methods*.ts` + protocol schema | Run `pnpm protocol:gen` and update clients. |
453
- | Add a **channel** | `extensions/<name>/` against `plugin-sdk` (or a `src/<channel>/` adapter) | Implement the `types.core.ts` interfaces; wire routing/allowlist/gating. |
454
- | Add an **LLM provider/model** | `models-config.providers.ts` | Add the client init + model defs; selection picks it up. |
455
- | Change the **system prompt / context** | `system-prompt.ts`, `src/world-model/` | Affects every koi; test broadly. |
456
- | Change **config shape** | `zod-schema.ts` (+ `types*.ts`, add a migration) | Schema is the runtime source of truth. |
448
+ | You want to... | Go to | Notes |
449
+ | -------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
450
+ | Add a **tool** the koi can call | `src/koi/tools/` | One file per tool; register it in the runner's toolset. Mind the tool-schema guardrails in `AGENTS.md`. |
451
+ | Add a **CLI command** | `src/commands/` + register in `command-registry.ts` | Take `deps` from `createDefaultDeps()`. |
452
+ | Add a **gateway RPC method** | `src/gateway/server-methods*.ts` + protocol schema | Run `pnpm protocol:gen` and update clients. |
453
+ | Add a **channel** | `extensions/<name>/` against `plugin-sdk` (or a `src/<channel>/` adapter) | Implement the `types.core.ts` interfaces; wire routing/allowlist/gating. |
454
+ | Add an **LLM provider/model** | `models-config.providers.ts` | Add the client init + model defs; selection picks it up. |
455
+ | Change the **system prompt / context** | `system-prompt.ts`, `src/world-model/` | Affects every koi; test broadly. |
456
+ | Change **config shape** | `zod-schema.ts` (+ `types*.ts`, add a migration) | Schema is the runtime source of truth. |
457
457
 
458
458
  ---
459
459
 
@@ -479,7 +479,7 @@ pnpm protocol:check # fail if the generated wire protocol is out of date
479
479
  `docs/platforms/mac/release.md` first, and never bump versions or `npm publish` without
480
480
  explicit owner sign-off (see `AGENTS.md`).
481
481
  - **Native version bumps** touch several files at once: see `AGENTS.md` -> "Version
482
- locations".
482
+ locations".
483
483
  </details>
484
484
 
485
485
  ---
@@ -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-BlxokmuT.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-pS0Bd7GL.js";
4
- import { t as require_src } from "./src-ByySp9O0.js";
5
- import { i as InternalParserError, r as FieldDecodingError, s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-BDahKicO.js";
6
- import { i as findZero, t as a2hex } from "./Util-CduVSpxk.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-ib29xNgX.js";
6
+ import { i as findZero, t as a2hex } from "./Util-mnbdMZQ3.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-BlxokmuT.js";
3
- import { t as require_src } from "./src-ByySp9O0.js";
4
- import { t as BasicParser } from "./BasicParser-BDahKicO.js";
5
- import { r as ID3v2Header } from "./ID3v2Token-Y21Kqx5Y.js";
6
- import { n as ID3v1Parser } from "./ID3v1Parser-CqO2j3yK.js";
7
- import { t as ID3v2Parser } from "./ID3v2Parser-ClDAZiXt.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-ib29xNgX.js";
5
+ import { r as ID3v2Header } from "./ID3v2Token-BIMV8Sb_.js";
6
+ import { n as ID3v1Parser } from "./ID3v1Parser-ZGzzBc4d.js";
7
+ import { t as ID3v2Parser } from "./ID3v2Parser-BoiN4J8h.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-BlxokmuT.js";
3
- import "./lib-vJO_QLgu.js";
4
- import { b as Uint8ArrayType, d as UINT16_BE, h as UINT32_BE, u as StringType, y as UINT8 } from "./lib-pS0Bd7GL.js";
5
- import { t as require_src } from "./src-ByySp9O0.js";
6
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-BDahKicO.js";
7
- import { i as FourCcToken } from "./APEv2Parser-DQgtEcUs.js";
8
- import { t as ID3v2Parser } from "./ID3v2Parser-ClDAZiXt.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-ib29xNgX.js";
7
+ import { i as FourCcToken } from "./APEv2Parser-BHajq6RP.js";
8
+ import { t as ID3v2Parser } from "./ID3v2Parser-BoiN4J8h.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-pS0Bd7GL.js";
3
- import { t as require_src } from "./src-ByySp9O0.js";
4
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-BDahKicO.js";
5
- import { a as getBit, c as stripNulls, n as decodeString } from "./Util-CduVSpxk.js";
6
- import { t as AttachedPictureType } from "./ID3v2Token-Y21Kqx5Y.js";
7
- import { n as TrackType } from "./types-BYMsIb3Z.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-ib29xNgX.js";
5
+ import { a as getBit, c as stripNulls, n as decodeString } from "./Util-mnbdMZQ3.js";
6
+ import { t as AttachedPictureType } from "./ID3v2Token-BIMV8Sb_.js";
7
+ import { n as TrackType } from "./types-DxL6lwZL.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-BlxokmuT.js";
3
- import "./lib-vJO_QLgu.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-pS0Bd7GL.js";
5
- import { t as require_src } from "./src-ByySp9O0.js";
6
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-BDahKicO.js";
7
- import { i as FourCcToken } from "./APEv2Parser-DQgtEcUs.js";
8
- import { t as ID3v2Parser } from "./ID3v2Parser-ClDAZiXt.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-ib29xNgX.js";
7
+ import { i as FourCcToken } from "./APEv2Parser-BHajq6RP.js";
8
+ import { t as ID3v2Parser } from "./ID3v2Parser-BoiN4J8h.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-vJO_QLgu.js";
3
- import { c as INT64_LE, o as INT32_LE, v as UINT64_LE } from "./lib-pS0Bd7GL.js";
4
- import { t as require_src } from "./src-ByySp9O0.js";
5
- import { s as makeUnexpectedFileContentError } from "./BasicParser-BDahKicO.js";
6
- import { i as FourCcToken } from "./APEv2Parser-DQgtEcUs.js";
7
- import { t as ID3v2Parser } from "./ID3v2Parser-ClDAZiXt.js";
8
- import { t as AbstractID3Parser } from "./AbstractID3Parser-Qj24Vvf7.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-ib29xNgX.js";
6
+ import { i as FourCcToken } from "./APEv2Parser-BHajq6RP.js";
7
+ import { t as ID3v2Parser } from "./ID3v2Parser-BoiN4J8h.js";
8
+ import { t as AbstractID3Parser } from "./AbstractID3Parser-B802nSmR.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-pS0Bd7GL.js";
3
- import { t as require_src } from "./src-ByySp9O0.js";
4
- import { s as makeUnexpectedFileContentError } from "./BasicParser-BDahKicO.js";
5
- import { a as getBit, o as getBitAllignedNumber } from "./Util-CduVSpxk.js";
6
- import { t as AttachedPictureType } from "./ID3v2Token-Y21Kqx5Y.js";
7
- import { i as FourCcToken } from "./APEv2Parser-DQgtEcUs.js";
8
- import { t as AbstractID3Parser } from "./AbstractID3Parser-Qj24Vvf7.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-ib29xNgX.js";
5
+ import { a as getBit, o as getBitAllignedNumber } from "./Util-mnbdMZQ3.js";
6
+ import { t as AttachedPictureType } from "./ID3v2Token-BIMV8Sb_.js";
7
+ import { i as FourCcToken } from "./APEv2Parser-BHajq6RP.js";
8
+ import { t as AbstractID3Parser } from "./AbstractID3Parser-B802nSmR.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-pS0Bd7GL.js";
3
- import { t as require_src } from "./src-ByySp9O0.js";
4
- import { t as BasicParser } from "./BasicParser-BDahKicO.js";
5
- import { u as trimRightNull } from "./Util-CduVSpxk.js";
6
- import { t as APEv2Parser } from "./APEv2Parser-DQgtEcUs.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-ib29xNgX.js";
5
+ import { u as trimRightNull } from "./Util-mnbdMZQ3.js";
6
+ import { t as APEv2Parser } from "./APEv2Parser-BHajq6RP.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-pS0Bd7GL.js";
3
- import { t as require_src } from "./src-ByySp9O0.js";
4
- import { s as makeUnexpectedFileContentError } from "./BasicParser-BDahKicO.js";
5
- import { a as getBit, i as findZero, n as decodeString, r as decodeUintBE } from "./Util-CduVSpxk.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-Y21Kqx5Y.js";
7
- import { t as Genres } from "./ID3v1Parser-CqO2j3yK.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-ib29xNgX.js";
5
+ import { a as getBit, i as findZero, n as decodeString, r as decodeUintBE } from "./Util-mnbdMZQ3.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-BIMV8Sb_.js";
7
+ import { t as Genres } from "./ID3v1Parser-ZGzzBc4d.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-pS0Bd7GL.js";
2
- import { a as getBit } from "./Util-CduVSpxk.js";
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-mnbdMZQ3.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-vJO_QLgu.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-pS0Bd7GL.js";
4
- import { t as require_src } from "./src-ByySp9O0.js";
5
- import { n as uint8ArrayToHex } from "./uint8array-extras-CU0tDxpC.js";
6
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-BDahKicO.js";
7
- import { a as getBit } from "./Util-CduVSpxk.js";
8
- import { i as FourCcToken } from "./APEv2Parser-DQgtEcUs.js";
9
- import { t as Genres } from "./ID3v1Parser-CqO2j3yK.js";
10
- import { n as TrackType } from "./types-BYMsIb3Z.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-ib29xNgX.js";
7
+ import { a as getBit } from "./Util-mnbdMZQ3.js";
8
+ import { i as FourCcToken } from "./APEv2Parser-BHajq6RP.js";
9
+ import { t as Genres } from "./ID3v1Parser-ZGzzBc4d.js";
10
+ import { n as TrackType } from "./types-DxL6lwZL.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-BlxokmuT.js";
3
- import "./lib-vJO_QLgu.js";
4
- import { _ as UINT64_BE, n as Float64_BE, t as Float32_BE, u as StringType, y as UINT8 } from "./lib-pS0Bd7GL.js";
5
- import { t as require_src } from "./src-ByySp9O0.js";
6
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-BDahKicO.js";
7
- import { n as TrackType, t as TargetType } from "./types-BYMsIb3Z.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-ib29xNgX.js";
7
+ import { n as TrackType, t as TargetType } from "./types-DxL6lwZL.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-BlxokmuT.js";
3
- import "./lib-vJO_QLgu.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-pS0Bd7GL.js";
5
- import { t as require_src } from "./src-ByySp9O0.js";
6
- import { s as makeUnexpectedFileContentError } from "./BasicParser-BDahKicO.js";
7
- import { c as stripNulls, o as getBitAllignedNumber, s as isBitSet } from "./Util-CduVSpxk.js";
8
- import { t as AbstractID3Parser } from "./AbstractID3Parser-Qj24Vvf7.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-ib29xNgX.js";
7
+ import { c as stripNulls, o as getBitAllignedNumber, s as isBitSet } from "./Util-mnbdMZQ3.js";
8
+ import { t as AbstractID3Parser } from "./AbstractID3Parser-B802nSmR.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-vJO_QLgu.js";
3
- import { S as textDecode, f as UINT16_LE, g as UINT32_LE, u as StringType, y as UINT8 } from "./lib-pS0Bd7GL.js";
4
- import { t as require_src } from "./src-ByySp9O0.js";
5
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-BDahKicO.js";
6
- import { o as getBitAllignedNumber, s as isBitSet } from "./Util-CduVSpxk.js";
7
- import { i as FourCcToken, r as tryParseApeHeader } from "./APEv2Parser-DQgtEcUs.js";
8
- import { t as AbstractID3Parser } from "./AbstractID3Parser-Qj24Vvf7.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-ib29xNgX.js";
6
+ import { o as getBitAllignedNumber, s as isBitSet } from "./Util-mnbdMZQ3.js";
7
+ import { i as FourCcToken, r as tryParseApeHeader } from "./APEv2Parser-BHajq6RP.js";
8
+ import { t as AbstractID3Parser } from "./AbstractID3Parser-B802nSmR.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-BlxokmuT.js";
3
- import "./lib-vJO_QLgu.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-pS0Bd7GL.js";
5
- import { t as require_src } from "./src-ByySp9O0.js";
6
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-BDahKicO.js";
7
- import { a as getBit, u as trimRightNull } from "./Util-CduVSpxk.js";
8
- import { i as FourCcToken } from "./APEv2Parser-DQgtEcUs.js";
9
- import { a as BlockType, i as BlockStreamInfo, o as VorbisStream, r as BlockHeader, s as VorbisPictureToken, t as FlacParser } from "./FlacParser-BCNYRnkp.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-ib29xNgX.js";
7
+ import { a as getBit, u as trimRightNull } from "./Util-mnbdMZQ3.js";
8
+ import { i as FourCcToken } from "./APEv2Parser-BHajq6RP.js";
9
+ import { a as BlockType, i as BlockStreamInfo, o as VorbisStream, r as BlockHeader, s as VorbisPictureToken, t as FlacParser } from "./FlacParser-Bw0aH-hn.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-pS0Bd7GL.js";
2
- import { t as getUintBE } from "./uint8array-extras-CU0tDxpC.js";
3
- import { r as FieldDecodingError } from "./BasicParser-BDahKicO.js";
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-ib29xNgX.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-vJO_QLgu.js";
3
- import { b as Uint8ArrayType, f as UINT16_LE, g as UINT32_LE, m as UINT24_LE, y as UINT8 } from "./lib-pS0Bd7GL.js";
4
- import { t as require_src } from "./src-ByySp9O0.js";
5
- import { n as uint8ArrayToHex } from "./uint8array-extras-CU0tDxpC.js";
6
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-BDahKicO.js";
7
- import { i as FourCcToken, r as tryParseApeHeader } from "./APEv2Parser-DQgtEcUs.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-ib29xNgX.js";
7
+ import { i as FourCcToken, r as tryParseApeHeader } from "./APEv2Parser-BHajq6RP.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-BlxokmuT.js";
3
- import "./lib-vJO_QLgu.js";
4
- import { b as Uint8ArrayType, f as UINT16_LE, g as UINT32_LE, u as StringType } from "./lib-pS0Bd7GL.js";
5
- import { t as require_src } from "./src-ByySp9O0.js";
6
- import { s as makeUnexpectedFileContentError, t as BasicParser } from "./BasicParser-BDahKicO.js";
7
- import { c as stripNulls } from "./Util-CduVSpxk.js";
8
- import { i as FourCcToken } from "./APEv2Parser-DQgtEcUs.js";
9
- import { t as ID3v2Parser } from "./ID3v2Parser-ClDAZiXt.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-ib29xNgX.js";
7
+ import { c as stripNulls } from "./Util-mnbdMZQ3.js";
8
+ import { i as FourCcToken } from "./APEv2Parser-BHajq6RP.js";
9
+ import { t as ID3v2Parser } from "./ID3v2Parser-BoiN4J8h.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);
@@ -6,24 +6,24 @@ import "./utils-D019Z2NU.js";
6
6
  import "./logger-BKidfKRU.js";
7
7
  import "./exec-DdlIawm8.js";
8
8
  import "./koi-scope-7GA83nWp.js";
9
- import "./model-selection-B8ZAcQCt.js";
10
- import "./dist-0-pT_XrC.js";
11
- import "./dist-cjs-C9i3z5oP.js";
9
+ import "./model-selection-DANeZg-K.js";
10
+ import "./dist-niRQNrwJ.js";
11
+ import "./dist-cjs-DW0Q8tmB.js";
12
12
  import "./boolean-D-3joTkO.js";
13
13
  import "./env-ChCKTuXK.js";
14
14
  import "./github-copilot-token-BqhLBQWA.js";
15
15
  import { t as VERSION } from "./version-BKRSzdyx.js";
16
- import { o as loadConfig } from "./config-BFoj5wyy.js";
16
+ import { o as loadConfig } from "./config-CLGE0n41.js";
17
17
  import "./manifest-registry-DEGu_o5t.js";
18
- import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-CaDAAMe0.js";
19
- import "./device-identity-BZ8FfIMK.js";
20
- import { n as GatewayClient } from "./client-QUeLEngh.js";
21
- import { t as buildGatewayConnectionDetails } from "./call-C9iXIbXI.js";
22
- import { t as formatDocsLink } from "./links-B0HTM-CT.js";
23
- import "./tailscale-BO36kRfh.js";
24
- import { t as isMainModule } from "./is-main-Cs8_TnVO.js";
25
- import { t as ensureSKYKOICliOnPath } from "./path-env-gxBbRHVZ.js";
26
- import { i as resolveGatewayAuth } from "./auth-Vh115fQN.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-BTi_uq-4.js";
22
+ import { t as formatDocsLink } from "./links-CFNtV6AI.js";
23
+ import "./tailscale-B0Nz70aN.js";
24
+ import { t as isMainModule } from "./is-main-D5NmXew9.js";
25
+ import { t as ensureSKYKOICliOnPath } from "./path-env-C0IwmyXV.js";
26
+ import { i as resolveGatewayAuth } from "./auth-DhTfD5Fu.js";
27
27
  import { fileURLToPath } from "node:url";
28
28
  import { spawn } from "node:child_process";
29
29
  import { Readable, Writable } from "node:stream";