@ken-jo/agent-connector 0.6.0 → 0.6.2

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 (212) hide show
  1. package/README.md +7 -4
  2. package/dist/{action-EKK6FMPY.js → action-BCD2GOJA.js} +8 -8
  3. package/dist/{amazon-q-7DPVJXJN.js → amazon-q-KCNHU3BI.js} +2 -2
  4. package/dist/{amp-VYXZWHXW.js → amp-HI6CGN36.js} +2 -2
  5. package/dist/{amp-BQZOL5GR.js → amp-NDP2J4K3.js} +2 -2
  6. package/dist/{antigravity-EA4L225L.js → antigravity-FY5553OR.js} +2 -2
  7. package/dist/{antigravity-VXHL6ZPM.js → antigravity-I2L4WSJN.js} +3 -3
  8. package/dist/{antigravity-cli-B2HXZFYQ.js → antigravity-cli-IUAE3SEX.js} +2 -2
  9. package/dist/{antigravity-cli-JHQ7JGNX.js → antigravity-cli-T24Y54NG.js} +3 -3
  10. package/dist/{audit-H7PQWIVH.js → audit-F47H2PLT.js} +5 -5
  11. package/dist/{chunk-O7SDRBVB.js → chunk-6ZZQXEL7.js} +2 -1
  12. package/dist/{chunk-O7SDRBVB.js.map → chunk-6ZZQXEL7.js.map} +1 -1
  13. package/dist/{chunk-IVJUPNLD.js → chunk-AN7QCLT7.js} +27 -27
  14. package/dist/{chunk-34RRWEWU.js → chunk-BD72ZF6D.js} +2 -2
  15. package/dist/{chunk-R4FABNAL.js → chunk-BGPVMJOG.js} +2 -2
  16. package/dist/{chunk-IY3SSCNK.js → chunk-HUL5CRF2.js} +4 -4
  17. package/dist/{chunk-4YOYR3T5.js → chunk-K67UJSJI.js} +5 -5
  18. package/dist/{chunk-XSR3GF55.js → chunk-LO6NIZSL.js} +5 -5
  19. package/dist/{chunk-6FRAVOVF.js → chunk-O7CFTOM5.js} +2 -2
  20. package/dist/{chunk-KY2VQGD7.js → chunk-OXANBA4I.js} +2 -2
  21. package/dist/{chunk-JTN3AKZO.js → chunk-PMOFA5BT.js} +12 -5
  22. package/dist/chunk-PMOFA5BT.js.map +1 -0
  23. package/dist/{chunk-XJSVJD5T.js → chunk-QG26JEJF.js} +43 -43
  24. package/dist/{chunk-JUBEM3OR.js → chunk-STR3CRH3.js} +4 -4
  25. package/dist/{chunk-CZOXXS77.js → chunk-W4GVN3TJ.js} +3 -3
  26. package/dist/{chunk-PWCBWAM4.js → chunk-W67GINTF.js} +2 -2
  27. package/dist/{chunk-XY3N2U6L.js → chunk-WAALPWR4.js} +2 -2
  28. package/dist/{chunk-4QXCNZMD.js → chunk-X2XEE4DO.js} +2 -2
  29. package/dist/{chunk-SA6CSOH5.js → chunk-ZHG7Q424.js} +19 -19
  30. package/dist/{claude-code-VEERATN5.js → claude-code-EIC4Q7OT.js} +5 -5
  31. package/dist/{claude-code-NMRKTAP7.js → claude-code-L4VXCHKA.js} +2 -2
  32. package/dist/cli/sdk.js +4 -4
  33. package/dist/cli.js +1 -1
  34. package/dist/{cline-UW6WCQRK.js → cline-AJZ67XEE.js} +2 -2
  35. package/dist/{codebuddy-GC7VAE2Y.js → codebuddy-EZZFEP35.js} +2 -2
  36. package/dist/{codebuff-ETYT5UBL.js → codebuff-GUNT2KBT.js} +2 -2
  37. package/dist/{codebuff-R7QBLCSJ.js → codebuff-HFI3MHNO.js} +2 -2
  38. package/dist/{codex-S2RADR5K.js → codex-C7ERS3TW.js} +2 -2
  39. package/dist/{codex-YAORPCOD.js → codex-H4MY6747.js} +2 -2
  40. package/dist/{continue-MECVDV4Z.js → continue-K2CWUNX5.js} +2 -2
  41. package/dist/{copilot-cli-MZTAWMPW.js → copilot-cli-FIQNEHFC.js} +2 -2
  42. package/dist/{copilot-cli-WVWAWNSM.js → copilot-cli-GCRZCLTV.js} +2 -2
  43. package/dist/{crush-QBXLNN7T.js → crush-HLM2DFW2.js} +2 -2
  44. package/dist/{crush-AJNQRFVE.js → crush-KFWUUVZ3.js} +2 -2
  45. package/dist/{cursor-RSLHA2CY.js → cursor-CKSMXWKG.js} +3 -3
  46. package/dist/{cursor-DIW43TRZ.js → cursor-Y3X7YK3S.js} +2 -2
  47. package/dist/{detect-ZC344YOJ.js → detect-IX6U2FBV.js} +4 -4
  48. package/dist/{devin-WPDN3MXE.js → devin-VD6VCB4Y.js} +2 -2
  49. package/dist/{doctor-ABYQF2YX.js → doctor-DEZPJXGY.js} +13 -13
  50. package/dist/{droid-HS6MX3IL.js → droid-BNWFLMZU.js} +2 -2
  51. package/dist/{droid-U3ZBLQFO.js → droid-SNF6TQK2.js} +2 -2
  52. package/dist/{gemini-cli-NMVVBO3K.js → gemini-cli-2B6TS7KU.js} +2 -2
  53. package/dist/{gemini-cli-VJ6X5DNF.js → gemini-cli-RH63NCVC.js} +2 -2
  54. package/dist/{goose-SXFRT7UF.js → goose-G4JBHXLJ.js} +2 -2
  55. package/dist/{goose-64V46Y2W.js → goose-KDHNJE7Z.js} +2 -2
  56. package/dist/{grok-build-EP2ZUFXZ.js → grok-build-FSN4TNLQ.js} +2 -2
  57. package/dist/{grok-cli-UUNPOUYY.js → grok-cli-TAIK7VEP.js} +2 -2
  58. package/dist/{hermes-AIVUE7LX.js → hermes-BOTDXP3F.js} +2 -2
  59. package/dist/{hermes-F3EGTK6N.js → hermes-MVCJAPSI.js} +2 -2
  60. package/dist/{hook-M3KQSEO3.js → hook-Q3MDXE56.js} +8 -8
  61. package/dist/index.js +2 -2
  62. package/dist/{install-4X4JDKGY.js → install-FD7XL3YC.js} +10 -10
  63. package/dist/{jetbrains-copilot-XBO2JZRO.js → jetbrains-copilot-TMU324FM.js} +2 -2
  64. package/dist/{junie-UCOS6Q37.js → junie-RU564IK7.js} +2 -2
  65. package/dist/{kilo-FVBFSS4Y.js → kilo-CHH3XI7H.js} +2 -2
  66. package/dist/{kilo-N5T6KXAG.js → kilo-P32GL6JM.js} +2 -2
  67. package/dist/{kilo-cli-ZF272ZHN.js → kilo-cli-L57AGENB.js} +2 -2
  68. package/dist/{kilo-cli-JOAEWYI4.js → kilo-cli-WBVPQNVP.js} +2 -2
  69. package/dist/{kimi-5FHEXGZD.js → kimi-BDW32HPV.js} +2 -2
  70. package/dist/{kimi-VLSUFLYV.js → kimi-GY2XXIJB.js} +2 -2
  71. package/dist/{kiro-AQFXGOJX.js → kiro-D73LXTUV.js} +2 -2
  72. package/dist/{kiro-WGOI5CGT.js → kiro-HZF4BADZ.js} +2 -2
  73. package/dist/{leaderboard-Q4YZ3LI7.js → leaderboard-44GN3NBH.js} +3 -3
  74. package/dist/{mimo-code-KETL7W7D.js → mimo-code-F3BZAQZK.js} +2 -2
  75. package/dist/{mistral-vibe-3AU7N2CA.js → mistral-vibe-ETTSQPK5.js} +2 -2
  76. package/dist/{mux-XM6AP35L.js → mux-H4PNZRKG.js} +2 -2
  77. package/dist/mux-H4PNZRKG.js.map +1 -0
  78. package/dist/{mux-WSZWWZOX.js → mux-WKBVW6DA.js} +2 -2
  79. package/dist/{nemoclaw-WA7RSKF2.js → nemoclaw-SGRSTG6V.js} +3 -3
  80. package/dist/{omp-UDYJ2PYY.js → omp-DBW2I6HC.js} +2 -2
  81. package/dist/{open-interpreter-WMBNM4MQ.js → open-interpreter-CXUCCZI3.js} +2 -2
  82. package/dist/{openclaw-3DHVHX5P.js → openclaw-CVCZR63Q.js} +3 -3
  83. package/dist/{openclaw-5EQFGOWL.js → openclaw-QC6ROV5Z.js} +2 -2
  84. package/dist/{opencode-IKMI3RI7.js → opencode-MSAR4Y42.js} +2 -2
  85. package/dist/{opencode-QGP4ALQY.js → opencode-USR7ONCJ.js} +2 -2
  86. package/dist/{openhands-QGXMQR6I.js → openhands-IWT4DWJC.js} +2 -2
  87. package/dist/{package-FY2QZWRM.js → package-3J7LLRIP.js} +8 -8
  88. package/dist/{pi-GGDQREVG.js → pi-34CVX5WX.js} +2 -2
  89. package/dist/{pi-A2HCGRJG.js → pi-5EPSCZ2G.js} +2 -2
  90. package/dist/{qwen-code-GQILBJ5B.js → qwen-code-42TRBZ47.js} +2 -2
  91. package/dist/{qwen-code-DNQTGJOF.js → qwen-code-JW5F5B5M.js} +2 -2
  92. package/dist/runtime/index.js +6 -6
  93. package/dist/sdk/index.js +3 -3
  94. package/dist/sdk/test.js +6 -6
  95. package/dist/{serve-XT76DWUN.js → serve-WCKL53H7.js} +8 -8
  96. package/dist/{status-DHVWBRLI.js → status-PMVGLWXM.js} +6 -6
  97. package/dist/{statusline-SY5UBQOJ.js → statusline-OKW44KFR.js} +7 -7
  98. package/dist/{synthetic-6FRA7P5Q.js → synthetic-YZ4FO7YR.js} +2 -2
  99. package/dist/{telemetry-TJIFAKWX.js → telemetry-7H2DLNON.js} +5 -5
  100. package/dist/{trae-CPPYASR2.js → trae-7PXIXNQO.js} +2 -2
  101. package/dist/{trae-VOJXUYRN.js → trae-IAAKEBFD.js} +2 -2
  102. package/dist/{uninstall-VQO36IQ4.js → uninstall-KSMFBGOR.js} +10 -10
  103. package/dist/{upgrade-QEYZOA7S.js → upgrade-AGC3ABMS.js} +10 -10
  104. package/dist/{usage-LV7UGO64.js → usage-NTSSJ2O5.js} +3 -3
  105. package/dist/{usage-event-MQMKMK2R.js → usage-event-FH3X232T.js} +7 -7
  106. package/dist/{vscode-copilot-ZBXRPKGG.js → vscode-copilot-WF2DX4AN.js} +2 -2
  107. package/dist/{warp-NRBBJQR2.js → warp-57BIWGD3.js} +2 -2
  108. package/dist/{warp-S444B2S3.js → warp-NCQPWGRZ.js} +2 -2
  109. package/dist/{windsurf-ZWVFNJ73.js → windsurf-YQOBRY2Y.js} +2 -2
  110. package/dist/{zed-XJFOOKCO.js → zed-23T4G4CT.js} +2 -2
  111. package/dist/{zed-JCOKXOLA.js → zed-U2T6VU6N.js} +2 -2
  112. package/package.json +1 -1
  113. package/dist/chunk-JTN3AKZO.js.map +0 -1
  114. package/dist/mux-XM6AP35L.js.map +0 -1
  115. /package/dist/{action-EKK6FMPY.js.map → action-BCD2GOJA.js.map} +0 -0
  116. /package/dist/{amazon-q-7DPVJXJN.js.map → amazon-q-KCNHU3BI.js.map} +0 -0
  117. /package/dist/{amp-VYXZWHXW.js.map → amp-HI6CGN36.js.map} +0 -0
  118. /package/dist/{amp-BQZOL5GR.js.map → amp-NDP2J4K3.js.map} +0 -0
  119. /package/dist/{antigravity-EA4L225L.js.map → antigravity-FY5553OR.js.map} +0 -0
  120. /package/dist/{antigravity-VXHL6ZPM.js.map → antigravity-I2L4WSJN.js.map} +0 -0
  121. /package/dist/{antigravity-cli-B2HXZFYQ.js.map → antigravity-cli-IUAE3SEX.js.map} +0 -0
  122. /package/dist/{antigravity-cli-JHQ7JGNX.js.map → antigravity-cli-T24Y54NG.js.map} +0 -0
  123. /package/dist/{audit-H7PQWIVH.js.map → audit-F47H2PLT.js.map} +0 -0
  124. /package/dist/{chunk-IVJUPNLD.js.map → chunk-AN7QCLT7.js.map} +0 -0
  125. /package/dist/{chunk-34RRWEWU.js.map → chunk-BD72ZF6D.js.map} +0 -0
  126. /package/dist/{chunk-R4FABNAL.js.map → chunk-BGPVMJOG.js.map} +0 -0
  127. /package/dist/{chunk-IY3SSCNK.js.map → chunk-HUL5CRF2.js.map} +0 -0
  128. /package/dist/{chunk-4YOYR3T5.js.map → chunk-K67UJSJI.js.map} +0 -0
  129. /package/dist/{chunk-XSR3GF55.js.map → chunk-LO6NIZSL.js.map} +0 -0
  130. /package/dist/{chunk-6FRAVOVF.js.map → chunk-O7CFTOM5.js.map} +0 -0
  131. /package/dist/{chunk-KY2VQGD7.js.map → chunk-OXANBA4I.js.map} +0 -0
  132. /package/dist/{chunk-XJSVJD5T.js.map → chunk-QG26JEJF.js.map} +0 -0
  133. /package/dist/{chunk-JUBEM3OR.js.map → chunk-STR3CRH3.js.map} +0 -0
  134. /package/dist/{chunk-CZOXXS77.js.map → chunk-W4GVN3TJ.js.map} +0 -0
  135. /package/dist/{chunk-PWCBWAM4.js.map → chunk-W67GINTF.js.map} +0 -0
  136. /package/dist/{chunk-XY3N2U6L.js.map → chunk-WAALPWR4.js.map} +0 -0
  137. /package/dist/{chunk-4QXCNZMD.js.map → chunk-X2XEE4DO.js.map} +0 -0
  138. /package/dist/{chunk-SA6CSOH5.js.map → chunk-ZHG7Q424.js.map} +0 -0
  139. /package/dist/{claude-code-VEERATN5.js.map → claude-code-EIC4Q7OT.js.map} +0 -0
  140. /package/dist/{claude-code-NMRKTAP7.js.map → claude-code-L4VXCHKA.js.map} +0 -0
  141. /package/dist/{cline-UW6WCQRK.js.map → cline-AJZ67XEE.js.map} +0 -0
  142. /package/dist/{codebuddy-GC7VAE2Y.js.map → codebuddy-EZZFEP35.js.map} +0 -0
  143. /package/dist/{codebuff-ETYT5UBL.js.map → codebuff-GUNT2KBT.js.map} +0 -0
  144. /package/dist/{codebuff-R7QBLCSJ.js.map → codebuff-HFI3MHNO.js.map} +0 -0
  145. /package/dist/{codex-S2RADR5K.js.map → codex-C7ERS3TW.js.map} +0 -0
  146. /package/dist/{codex-YAORPCOD.js.map → codex-H4MY6747.js.map} +0 -0
  147. /package/dist/{continue-MECVDV4Z.js.map → continue-K2CWUNX5.js.map} +0 -0
  148. /package/dist/{copilot-cli-MZTAWMPW.js.map → copilot-cli-FIQNEHFC.js.map} +0 -0
  149. /package/dist/{copilot-cli-WVWAWNSM.js.map → copilot-cli-GCRZCLTV.js.map} +0 -0
  150. /package/dist/{crush-QBXLNN7T.js.map → crush-HLM2DFW2.js.map} +0 -0
  151. /package/dist/{crush-AJNQRFVE.js.map → crush-KFWUUVZ3.js.map} +0 -0
  152. /package/dist/{cursor-RSLHA2CY.js.map → cursor-CKSMXWKG.js.map} +0 -0
  153. /package/dist/{cursor-DIW43TRZ.js.map → cursor-Y3X7YK3S.js.map} +0 -0
  154. /package/dist/{detect-ZC344YOJ.js.map → detect-IX6U2FBV.js.map} +0 -0
  155. /package/dist/{devin-WPDN3MXE.js.map → devin-VD6VCB4Y.js.map} +0 -0
  156. /package/dist/{doctor-ABYQF2YX.js.map → doctor-DEZPJXGY.js.map} +0 -0
  157. /package/dist/{droid-HS6MX3IL.js.map → droid-BNWFLMZU.js.map} +0 -0
  158. /package/dist/{droid-U3ZBLQFO.js.map → droid-SNF6TQK2.js.map} +0 -0
  159. /package/dist/{gemini-cli-NMVVBO3K.js.map → gemini-cli-2B6TS7KU.js.map} +0 -0
  160. /package/dist/{gemini-cli-VJ6X5DNF.js.map → gemini-cli-RH63NCVC.js.map} +0 -0
  161. /package/dist/{goose-SXFRT7UF.js.map → goose-G4JBHXLJ.js.map} +0 -0
  162. /package/dist/{goose-64V46Y2W.js.map → goose-KDHNJE7Z.js.map} +0 -0
  163. /package/dist/{grok-build-EP2ZUFXZ.js.map → grok-build-FSN4TNLQ.js.map} +0 -0
  164. /package/dist/{grok-cli-UUNPOUYY.js.map → grok-cli-TAIK7VEP.js.map} +0 -0
  165. /package/dist/{hermes-AIVUE7LX.js.map → hermes-BOTDXP3F.js.map} +0 -0
  166. /package/dist/{hermes-F3EGTK6N.js.map → hermes-MVCJAPSI.js.map} +0 -0
  167. /package/dist/{hook-M3KQSEO3.js.map → hook-Q3MDXE56.js.map} +0 -0
  168. /package/dist/{install-4X4JDKGY.js.map → install-FD7XL3YC.js.map} +0 -0
  169. /package/dist/{jetbrains-copilot-XBO2JZRO.js.map → jetbrains-copilot-TMU324FM.js.map} +0 -0
  170. /package/dist/{junie-UCOS6Q37.js.map → junie-RU564IK7.js.map} +0 -0
  171. /package/dist/{kilo-FVBFSS4Y.js.map → kilo-CHH3XI7H.js.map} +0 -0
  172. /package/dist/{kilo-N5T6KXAG.js.map → kilo-P32GL6JM.js.map} +0 -0
  173. /package/dist/{kilo-cli-ZF272ZHN.js.map → kilo-cli-L57AGENB.js.map} +0 -0
  174. /package/dist/{kilo-cli-JOAEWYI4.js.map → kilo-cli-WBVPQNVP.js.map} +0 -0
  175. /package/dist/{kimi-5FHEXGZD.js.map → kimi-BDW32HPV.js.map} +0 -0
  176. /package/dist/{kimi-VLSUFLYV.js.map → kimi-GY2XXIJB.js.map} +0 -0
  177. /package/dist/{kiro-AQFXGOJX.js.map → kiro-D73LXTUV.js.map} +0 -0
  178. /package/dist/{kiro-WGOI5CGT.js.map → kiro-HZF4BADZ.js.map} +0 -0
  179. /package/dist/{leaderboard-Q4YZ3LI7.js.map → leaderboard-44GN3NBH.js.map} +0 -0
  180. /package/dist/{mimo-code-KETL7W7D.js.map → mimo-code-F3BZAQZK.js.map} +0 -0
  181. /package/dist/{mistral-vibe-3AU7N2CA.js.map → mistral-vibe-ETTSQPK5.js.map} +0 -0
  182. /package/dist/{mux-WSZWWZOX.js.map → mux-WKBVW6DA.js.map} +0 -0
  183. /package/dist/{nemoclaw-WA7RSKF2.js.map → nemoclaw-SGRSTG6V.js.map} +0 -0
  184. /package/dist/{omp-UDYJ2PYY.js.map → omp-DBW2I6HC.js.map} +0 -0
  185. /package/dist/{open-interpreter-WMBNM4MQ.js.map → open-interpreter-CXUCCZI3.js.map} +0 -0
  186. /package/dist/{openclaw-3DHVHX5P.js.map → openclaw-CVCZR63Q.js.map} +0 -0
  187. /package/dist/{openclaw-5EQFGOWL.js.map → openclaw-QC6ROV5Z.js.map} +0 -0
  188. /package/dist/{opencode-IKMI3RI7.js.map → opencode-MSAR4Y42.js.map} +0 -0
  189. /package/dist/{opencode-QGP4ALQY.js.map → opencode-USR7ONCJ.js.map} +0 -0
  190. /package/dist/{openhands-QGXMQR6I.js.map → openhands-IWT4DWJC.js.map} +0 -0
  191. /package/dist/{package-FY2QZWRM.js.map → package-3J7LLRIP.js.map} +0 -0
  192. /package/dist/{pi-GGDQREVG.js.map → pi-34CVX5WX.js.map} +0 -0
  193. /package/dist/{pi-A2HCGRJG.js.map → pi-5EPSCZ2G.js.map} +0 -0
  194. /package/dist/{qwen-code-GQILBJ5B.js.map → qwen-code-42TRBZ47.js.map} +0 -0
  195. /package/dist/{qwen-code-DNQTGJOF.js.map → qwen-code-JW5F5B5M.js.map} +0 -0
  196. /package/dist/{serve-XT76DWUN.js.map → serve-WCKL53H7.js.map} +0 -0
  197. /package/dist/{status-DHVWBRLI.js.map → status-PMVGLWXM.js.map} +0 -0
  198. /package/dist/{statusline-SY5UBQOJ.js.map → statusline-OKW44KFR.js.map} +0 -0
  199. /package/dist/{synthetic-6FRA7P5Q.js.map → synthetic-YZ4FO7YR.js.map} +0 -0
  200. /package/dist/{telemetry-TJIFAKWX.js.map → telemetry-7H2DLNON.js.map} +0 -0
  201. /package/dist/{trae-CPPYASR2.js.map → trae-7PXIXNQO.js.map} +0 -0
  202. /package/dist/{trae-VOJXUYRN.js.map → trae-IAAKEBFD.js.map} +0 -0
  203. /package/dist/{uninstall-VQO36IQ4.js.map → uninstall-KSMFBGOR.js.map} +0 -0
  204. /package/dist/{upgrade-QEYZOA7S.js.map → upgrade-AGC3ABMS.js.map} +0 -0
  205. /package/dist/{usage-LV7UGO64.js.map → usage-NTSSJ2O5.js.map} +0 -0
  206. /package/dist/{usage-event-MQMKMK2R.js.map → usage-event-FH3X232T.js.map} +0 -0
  207. /package/dist/{vscode-copilot-ZBXRPKGG.js.map → vscode-copilot-WF2DX4AN.js.map} +0 -0
  208. /package/dist/{warp-NRBBJQR2.js.map → warp-57BIWGD3.js.map} +0 -0
  209. /package/dist/{warp-S444B2S3.js.map → warp-NCQPWGRZ.js.map} +0 -0
  210. /package/dist/{windsurf-ZWVFNJ73.js.map → windsurf-YQOBRY2Y.js.map} +0 -0
  211. /package/dist/{zed-XJFOOKCO.js.map → zed-23T4G4CT.js.map} +0 -0
  212. /package/dist/{zed-JCOKXOLA.js.map → zed-U2T6VU6N.js.map} +0 -0
package/README.md CHANGED
@@ -4,11 +4,14 @@
4
4
 
5
5
  # agent-connector
6
6
 
7
- ### Deploy one MCP to every agent CLI.
7
+ ### Deploy one MCP to every agent host.
8
+
9
+ **Focus on the implementation, not the distribution.**
8
10
 
9
11
  Write your server + hooks once with `defineConnector()`, then `install` it into
10
- the native config — or `package` it as a real plugin — across every detected agent CLI
11
- (Claude Code, Codex, Cursor, Copilot, Gemini, OpenCode, Warp, Zed…).
12
+ the native config — or `package` it as a real plugin — across every detected agent
13
+ host: terminal CLIs, IDE extensions and desktop apps alike (Claude Code, Codex,
14
+ Cursor, Copilot, Gemini, OpenCode, Warp, Zed…).
12
15
 
13
16
  [![npm](https://img.shields.io/npm/v/@ken-jo/agent-connector?color=cb3837&logo=npm)](https://www.npmjs.com/package/@ken-jo/agent-connector)
14
17
  [![license](https://img.shields.io/npm/l/@ken-jo/agent-connector?color=22c55e)](LICENSE)
@@ -76,7 +79,7 @@ npm install @ken-jo/agent-connector
76
79
  "name": "@acme/acme-db-mcp",
77
80
  "mcpName": "io.github.acme/acme-db",
78
81
  "bin": { "acme-db": "./bin.mjs" },
79
- "dependencies": { "@ken-jo/agent-connector": "^0.6.0" }
82
+ "dependencies": { "@ken-jo/agent-connector": "^0.6.2" }
80
83
  }
81
84
  ```
82
85
 
@@ -1,20 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  fail
4
- } from "./chunk-SA6CSOH5.js";
4
+ } from "./chunk-ZHG7Q424.js";
5
5
  import {
6
6
  runAction
7
- } from "./chunk-4YOYR3T5.js";
7
+ } from "./chunk-K67UJSJI.js";
8
8
  import "./chunk-OP4KBXUO.js";
9
9
  import "./chunk-GDIAHWNY.js";
10
- import "./chunk-KY2VQGD7.js";
11
- import "./chunk-CZOXXS77.js";
10
+ import "./chunk-OXANBA4I.js";
11
+ import "./chunk-W4GVN3TJ.js";
12
12
  import "./chunk-IVAWP6HH.js";
13
13
  import "./chunk-KHO5WNTP.js";
14
14
  import "./chunk-4NFDNY3C.js";
15
- import "./chunk-R4FABNAL.js";
16
- import "./chunk-6FRAVOVF.js";
17
- import "./chunk-XJSVJD5T.js";
15
+ import "./chunk-BGPVMJOG.js";
16
+ import "./chunk-O7CFTOM5.js";
17
+ import "./chunk-QG26JEJF.js";
18
18
  import "./chunk-NBYKLUF6.js";
19
19
  import "./chunk-QSY74NAP.js";
20
20
  import "./chunk-UMQ6NBQR.js";
@@ -53,4 +53,4 @@ async function run(argv) {
53
53
  export {
54
54
  run
55
55
  };
56
- //# sourceMappingURL=action-EKK6FMPY.js.map
56
+ //# sourceMappingURL=action-BCD2GOJA.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-BEFVJ2OE.js";
5
5
  import {
6
6
  BaseAdapter
7
- } from "./chunk-JTN3AKZO.js";
7
+ } from "./chunk-PMOFA5BT.js";
8
8
  import {
9
9
  buildWrappedStdio,
10
10
  isHomeBinHookCommand
@@ -563,4 +563,4 @@ export {
563
563
  adapter,
564
564
  amazon_q_default as default
565
565
  };
566
- //# sourceMappingURL=amazon-q-7DPVJXJN.js.map
566
+ //# sourceMappingURL=amazon-q-KCNHU3BI.js.map
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  BaseAdapter,
10
10
  renderSkillMd
11
- } from "./chunk-JTN3AKZO.js";
11
+ } from "./chunk-PMOFA5BT.js";
12
12
  import {
13
13
  buildWrappedStdio
14
14
  } from "./chunk-QSY74NAP.js";
@@ -608,4 +608,4 @@ export {
608
608
  adapter,
609
609
  amp_default as default
610
610
  };
611
- //# sourceMappingURL=amp-VYXZWHXW.js.map
611
+ //# sourceMappingURL=amp-HI6CGN36.js.map
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  firstExistingRoot,
8
8
  walkFiles
9
- } from "./chunk-O7SDRBVB.js";
9
+ } from "./chunk-6ZZQXEL7.js";
10
10
  import {
11
11
  emptyTokens,
12
12
  inferProvider
@@ -234,4 +234,4 @@ var amp_default = ampReader;
234
234
  export {
235
235
  amp_default as default
236
236
  };
237
- //# sourceMappingURL=amp-BQZOL5GR.js.map
237
+ //# sourceMappingURL=amp-NDP2J4K3.js.map
@@ -13,7 +13,7 @@ import {
13
13
  isDir,
14
14
  listSubdirs,
15
15
  walkFiles
16
- } from "./chunk-O7SDRBVB.js";
16
+ } from "./chunk-6ZZQXEL7.js";
17
17
  import {
18
18
  emptyTokens,
19
19
  inferProvider
@@ -168,4 +168,4 @@ var antigravity_default = antigravityReader;
168
168
  export {
169
169
  antigravity_default as default
170
170
  };
171
- //# sourceMappingURL=antigravity-EA4L225L.js.map
171
+ //# sourceMappingURL=antigravity-FY5553OR.js.map
@@ -3,10 +3,10 @@ import {
3
3
  AntigravityAdapter,
4
4
  adapter,
5
5
  antigravity_default
6
- } from "./chunk-4QXCNZMD.js";
6
+ } from "./chunk-X2XEE4DO.js";
7
7
  import "./chunk-H53QZQJI.js";
8
8
  import "./chunk-BEFVJ2OE.js";
9
- import "./chunk-JTN3AKZO.js";
9
+ import "./chunk-PMOFA5BT.js";
10
10
  import "./chunk-QSY74NAP.js";
11
11
  import "./chunk-UMQ6NBQR.js";
12
12
  import "./chunk-GZGLCCEE.js";
@@ -15,4 +15,4 @@ export {
15
15
  adapter,
16
16
  antigravity_default as default
17
17
  };
18
- //# sourceMappingURL=antigravity-VXHL6ZPM.js.map
18
+ //# sourceMappingURL=antigravity-I2L4WSJN.js.map
@@ -11,7 +11,7 @@ import {
11
11
  firstExistingRoot,
12
12
  isDir,
13
13
  walkFiles
14
- } from "./chunk-O7SDRBVB.js";
14
+ } from "./chunk-6ZZQXEL7.js";
15
15
  import {
16
16
  emptyTokens,
17
17
  inferProvider
@@ -118,4 +118,4 @@ var antigravity_cli_default = antigravityCliReader;
118
118
  export {
119
119
  antigravity_cli_default as default
120
120
  };
121
- //# sourceMappingURL=antigravity-cli-B2HXZFYQ.js.map
121
+ //# sourceMappingURL=antigravity-cli-IUAE3SEX.js.map
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  AntigravityAdapter,
4
4
  adapter
5
- } from "./chunk-4QXCNZMD.js";
5
+ } from "./chunk-X2XEE4DO.js";
6
6
  import {
7
7
  addLedgerOwner,
8
8
  createLedgerEntry,
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-NBYKLUF6.js";
19
19
  import "./chunk-H53QZQJI.js";
20
20
  import "./chunk-BEFVJ2OE.js";
21
- import "./chunk-JTN3AKZO.js";
21
+ import "./chunk-PMOFA5BT.js";
22
22
  import {
23
23
  buildHomeBinStatuslineCommand,
24
24
  isHomeBinStatuslineCommand
@@ -465,4 +465,4 @@ export {
465
465
  adapter2 as adapter,
466
466
  antigravity_cli_default as default
467
467
  };
468
- //# sourceMappingURL=antigravity-cli-JHQ7JGNX.js.map
468
+ //# sourceMappingURL=antigravity-cli-T24Y54NG.js.map
@@ -2,18 +2,18 @@
2
2
  import {
3
3
  fail,
4
4
  print
5
- } from "./chunk-SA6CSOH5.js";
5
+ } from "./chunk-ZHG7Q424.js";
6
6
  import {
7
7
  findConnectorConfig,
8
8
  loadConnectorFromPath
9
- } from "./chunk-R4FABNAL.js";
9
+ } from "./chunk-BGPVMJOG.js";
10
10
  import {
11
11
  deriveHostAliasFromMcpName,
12
12
  deriveHostAliasFromPackageName,
13
13
  findNearestPackageJson,
14
14
  readConnectorPackageMetadataFromPackageJson
15
- } from "./chunk-6FRAVOVF.js";
16
- import "./chunk-XJSVJD5T.js";
15
+ } from "./chunk-O7CFTOM5.js";
16
+ import "./chunk-QG26JEJF.js";
17
17
  import "./chunk-NBYKLUF6.js";
18
18
  import "./chunk-UMQ6NBQR.js";
19
19
  import "./chunk-GZGLCCEE.js";
@@ -308,4 +308,4 @@ async function run(argv) {
308
308
  export {
309
309
  run
310
310
  };
311
- //# sourceMappingURL=audit-H7PQWIVH.js.map
311
+ //# sourceMappingURL=audit-F47H2PLT.js.map
@@ -87,6 +87,7 @@ function hostRoots(platformId) {
87
87
  out.push(join(homedir(), ".factory", "sessions"));
88
88
  break;
89
89
  case "mux":
90
+ out.push(join(homedir(), ".xum", "sessions"));
90
91
  out.push(join(homedir(), ".mux", "sessions"));
91
92
  break;
92
93
  case "kiro":
@@ -196,4 +197,4 @@ export {
196
197
  walkFiles,
197
198
  listSubdirs
198
199
  };
199
- //# sourceMappingURL=chunk-O7SDRBVB.js.map
200
+ //# sourceMappingURL=chunk-6ZZQXEL7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/usage/paths.ts"],"sourcesContent":["/**\n * usage/paths — per-platform HOST storage-root resolution + small fs walkers.\n *\n * This is the read-only complement to core/paths.ts: where that module resolves\n * the FRAMEWORK data-root (~/.agent-connector), this one resolves each agent\n * CLI's OWN native storage roots (~/.qwen, ~/.claude, …) so the usage readers\n * can parse them. It NEVER writes; it only enumerates files.\n *\n * Ported from tokscale paths.rs (the tokscale cache dir) and from each reader's\n * storage-path spec (docs/research/usage-readers.json). Resolution order is\n * uniform across platforms:\n * 1. an explicit AGENT_CONNECTOR_<PLATFORM>_DIR env override (verbatim, when\n * non-empty — an empty string is treated as unset so we never resolve to \"\");\n * 2. the platform-specific default for the current OS.\n *\n * The \"tokscale cache dir\" (~/.config/tokscale, or AGENT_CONNECTOR_TOKSCALE_DIR)\n * is where synced readers (cursor/antigravity/antigravity-cli/trae/warp) look for\n * a local cache that a separate tokscale run may have produced — we read it if\n * present, but we never create or sync it. (Antigravity's own native store is\n * protobuf .pb with no public schema, so it too is synced-cache-or-skip.)\n */\n\nimport {\n existsSync,\n readdirSync,\n statSync,\n} from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { isAbsolute, join, resolve } from \"node:path\";\n\n// ─────────────────────────────────────────────────────────────────────────\n// Home / env helpers\n// ─────────────────────────────────────────────────────────────────────────\n\n/** Expand a leading \"~\" (and \"~/\") to the user's home directory. */\nexport function expandHome(p: string): string {\n if (p === \"~\") return homedir();\n if (p.startsWith(\"~/\") || p.startsWith(\"~\\\\\")) {\n return join(homedir(), p.slice(2));\n }\n return p;\n}\n\n/**\n * Read an env override, treating empty/blank as unset (mirrors tokscale's\n * is_config_dir_overridden contract: an empty override must NOT resolve to \"\").\n * Relative paths are resolved against the process CWD; \"~\" is expanded.\n */\nfunction envOverride(name: string): string | undefined {\n const raw = process.env[name];\n if (raw == null || raw.trim() === \"\") return undefined;\n const expanded = expandHome(raw.trim());\n return isAbsolute(expanded) ? expanded : resolve(expanded);\n}\n\n/** $XDG_DATA_HOME (when set & non-empty) else ~/.local/share. */\nfunction xdgDataHome(): string {\n const xdg = process.env.XDG_DATA_HOME;\n if (xdg && xdg.trim() !== \"\") return resolve(expandHome(xdg.trim()));\n return join(homedir(), \".local\", \"share\");\n}\n\n/** $XDG_CONFIG_HOME (when set & non-empty) else ~/.config. */\nfunction xdgConfigHome(): string {\n const xdg = process.env.XDG_CONFIG_HOME;\n if (xdg && xdg.trim() !== \"\") return resolve(expandHome(xdg.trim()));\n return join(homedir(), \".config\");\n}\n\n/** Windows %LOCALAPPDATA% else ~/AppData/Local. */\nfunction localAppData(): string {\n const v = process.env.LOCALAPPDATA;\n if (v && v.trim() !== \"\") return resolve(v.trim());\n return join(homedir(), \"AppData\", \"Local\");\n}\n\nconst isMac = process.platform === \"darwin\";\nconst isWin = process.platform === \"win32\";\n\n// ─────────────────────────────────────────────────────────────────────────\n// tokscale cache dir (for synced readers)\n// ─────────────────────────────────────────────────────────────────────────\n\n/**\n * Resolve the tokscale config dir (where synced caches live). Ported from\n * tokscale paths.rs get_config_dir():\n * 1. AGENT_CONNECTOR_TOKSCALE_DIR override (verbatim, non-empty);\n * 2. macOS: $HOME/.config/tokscale (NOT ~/Library/Application Support);\n * 3. Linux: $XDG_CONFIG_HOME/tokscale or ~/.config/tokscale;\n * 4. Windows: %APPDATA%/tokscale (config_dir equivalent) else ~/.config/tokscale.\n *\n * We use AGENT_CONNECTOR_TOKSCALE_DIR (not TOKSCALE_CONFIG_DIR) so the framework\n * never accidentally couples to a tokscale install's hermetic test env.\n */\nexport function tokscaleConfigDir(): string {\n const override = envOverride(\"AGENT_CONNECTOR_TOKSCALE_DIR\");\n if (override) return override;\n if (isMac) return join(homedir(), \".config\", \"tokscale\");\n if (isWin) {\n const appData = process.env.APPDATA;\n if (appData && appData.trim() !== \"\") return join(resolve(appData.trim()), \"tokscale\");\n return join(homedir(), \".config\", \"tokscale\");\n }\n return join(xdgConfigHome(), \"tokscale\");\n}\n\n/** The directory a synced platform's local cache lives under, e.g. `<tokscale>/cursor-cache`. */\nexport function tokscaleCacheDir(name: string): string {\n return join(tokscaleConfigDir(), name);\n}\n\n// ─────────────────────────────────────────────────────────────────────────\n// Antigravity native store roots (DETECTION ONLY — not parsed for usage)\n//\n// CONFIRMED-BY-INSTALL (2026-06-03, docs/research/antigravity-paths-confirmed.md):\n// the native Antigravity store is `~/.gemini/antigravity/conversations/<uuid>.pb`\n// — PROTOBUF with no public schema — and `brain/<uuid>/` holds only media +\n// `*.metadata.json`. There are NO `transcript*.jsonl` files. The `agy` CLI shares\n// this SAME `~/.gemini/antigravity/` dir (no separate config/storage dir). So the\n// native dir is used only for platform DETECTION (in the adapters); the usage\n// readers do NOT parse it (protobuf, unreadable) — they are SYNCED readers that\n// read the tokscale synced-cache instead (see hostRoots → antigravity-cache).\n//\n// These helpers are retained for any detection caller and honor the standard\n// AGENT_CONNECTOR_<PLATFORM>_DIR override (prepended, preferred when set).\n// ─────────────────────────────────────────────────────────────────────────\n\n/**\n * The native Antigravity store root for DETECTION: `~/.gemini/antigravity/`\n * (CONFIRMED). Its `conversations/<uuid>.pb` payloads are protobuf with no public\n * schema, so this dir is NOT parsed for usage — only its presence is a signal.\n *\n * Honors AGENT_CONNECTOR_ANTIGRAVITY_DIR (verbatim, when set) as the override.\n */\nexport function antigravityNativeRoots(): string[] {\n const out: string[] = [];\n const override = envOverride(\"AGENT_CONNECTOR_ANTIGRAVITY_DIR\");\n if (override) out.push(override);\n out.push(join(homedir(), \".gemini\", \"antigravity\"));\n return out;\n}\n\n/**\n * The native store root for the Antigravity CLI (`agy`) for DETECTION. CONFIRMED:\n * `agy` has NO separate dir — it SHARES the IDE's `~/.gemini/antigravity/` (also\n * protobuf, not parsed for usage).\n *\n * Honors AGENT_CONNECTOR_ANTIGRAVITY_CLI_DIR (verbatim, when set) as the override.\n */\nexport function antigravityCliNativeRoots(): string[] {\n const out: string[] = [];\n const override = envOverride(\"AGENT_CONNECTOR_ANTIGRAVITY_CLI_DIR\");\n if (override) out.push(override);\n out.push(join(homedir(), \".gemini\", \"antigravity\"));\n return out;\n}\n\n// ─────────────────────────────────────────────────────────────────────────\n// Per-platform host roots\n// ─────────────────────────────────────────────────────────────────────────\n\n/**\n * Candidate host storage roots for a platform, most-preferred first. Readers\n * iterate the returned list and use the first that exists (each variant is the\n * OS-correct default; the env override, when present, is prepended).\n *\n * Only the platforms this subsystem currently ships a reader for are listed in\n * detail; the table is structured so a new platform is one new case. Returning\n * `[]` (no candidate root) makes a reader fail-open to zero records.\n */\nexport function hostRoots(platformId: string): string[] {\n const out: string[] = [];\n const override = envOverride(`AGENT_CONNECTOR_${platformId.toUpperCase().replace(/-/g, \"_\")}_DIR`);\n if (override) out.push(override);\n\n switch (platformId) {\n case \"qwen-code\":\n // ~/.qwen/projects/*/chats/*.jsonl\n out.push(join(homedir(), \".qwen\", \"projects\"));\n break;\n case \"claude-code\":\n out.push(join(homedir(), \".claude\", \"projects\"));\n break;\n case \"codex\":\n out.push(join(homedir(), \".codex\", \"sessions\"));\n break;\n case \"gemini-cli\":\n out.push(join(homedir(), \".gemini\", \"tmp\"));\n break;\n case \"pi\":\n out.push(join(homedir(), \".pi\", \"agent\", \"sessions\"));\n break;\n case \"kimi\":\n // TWO Moonshot products share the \"kimi\" id with DIFFERENT session trees:\n // - Kimi Code (newer, @moonshot-ai/kimi-code): ~/.kimi-code/sessions/...\n // (deeper tree, see readers/kimi.ts) — the product our adapter targets.\n // - Kimi CLI (older): ~/.kimi/sessions/<GROUP>/<UUID>/wire.jsonl\n // Both are scanned (Kimi Code preferred first). $KIMI_CODE_HOME relocates\n // the Kimi Code home and is honored ahead of these in readers/kimi.ts.\n out.push(join(homedir(), \".kimi-code\", \"sessions\"));\n out.push(join(homedir(), \".kimi\", \"sessions\"));\n break;\n case \"copilot-cli\":\n out.push(join(xdgDataHome(), \"Copilot\", \"telemetry\"));\n out.push(join(xdgConfigHome(), \"copilot\", \"telemetry\"));\n break;\n case \"amp\":\n out.push(join(xdgDataHome(), \"amp\", \"threads\"));\n break;\n case \"droid\":\n out.push(join(homedir(), \".factory\", \"sessions\"));\n break;\n case \"mux\":\n out.push(join(homedir(), \".mux\", \"sessions\"));\n break;\n case \"kiro\":\n out.push(join(homedir(), \".kiro\", \"sessions\", \"cli\"));\n break;\n case \"opencode\":\n out.push(join(xdgDataHome(), \"opencode\", \"opencode.db\"));\n break;\n case \"goose\":\n if (isMac) out.push(join(homedir(), \"Library\", \"Application Support\", \"goose\", \"sessions\", \"sessions.db\"));\n out.push(join(xdgDataHome(), \"goose\", \"sessions\", \"sessions.db\"));\n out.push(join(xdgDataHome(), \"Block\", \"goose\", \"sessions\", \"sessions.db\"));\n break;\n case \"hermes\":\n out.push(join(homedir(), \".hermes\", \"state.db\"));\n break;\n case \"kilo-cli\":\n out.push(join(xdgDataHome(), \"kilo\", \"kilo.db\"));\n break;\n case \"crush\":\n out.push(join(homedir(), \".cache\", \"crush\", \"crush.db\"));\n break;\n case \"zed\":\n if (isMac) out.push(join(homedir(), \"Library\", \"Application Support\", \"Zed\", \"threads\", \"threads.db\"));\n else if (isWin) out.push(join(localAppData(), \"Zed\", \"threads\", \"threads.db\"));\n else out.push(join(xdgDataHome(), \"zed\", \"threads\", \"threads.db\"));\n break;\n // Synced platforms: local cache under the tokscale config dir.\n case \"cursor\":\n out.push(tokscaleCacheDir(\"cursor-cache\"));\n break;\n case \"antigravity\":\n // SYNCED: the native store is protobuf (.pb, no public schema) and NOT\n // parseable, so the reader reads only the tokscale synced-cache mirror if a\n // separate tokscale run produced one (else [] → \"requires sync\"). The\n // native `~/.gemini/antigravity/` dir is used only for detection.\n out.push(tokscaleCacheDir(\"antigravity-cache\"));\n break;\n case \"antigravity-cli\":\n // SYNCED: `agy` shares the IDE's protobuf (.pb) store (no schema), so the\n // reader reads only the tokscale synced-cache mirror if present (else [] →\n // \"requires sync\"). Shares the IDE's antigravity-cache name (same data).\n out.push(tokscaleCacheDir(\"antigravity-cache\"));\n break;\n case \"trae\":\n out.push(tokscaleCacheDir(\"trae-cache\"));\n break;\n case \"warp\":\n out.push(tokscaleCacheDir(\"warp-cache\"));\n break;\n default:\n break;\n }\n return out;\n}\n\n/** First existing host root for a platform, or undefined when none is present. */\nexport function firstExistingRoot(platformId: string): string | undefined {\n for (const root of hostRoots(platformId)) {\n if (existsSync(root)) return root;\n }\n return undefined;\n}\n\n// ─────────────────────────────────────────────────────────────────────────\n// Directory / glob walkers (tolerant — never throw)\n// ─────────────────────────────────────────────────────────────────────────\n\n/** Is the path an existing directory? Tolerant (false on any stat error). */\nexport function isDir(p: string): boolean {\n try {\n return statSync(p).isDirectory();\n } catch {\n return false;\n }\n}\n\n/** Is the path an existing regular file? Tolerant (false on any stat error). */\nexport function isFile(p: string): boolean {\n try {\n return statSync(p).isFile();\n } catch {\n return false;\n }\n}\n\n/**\n * Recursively list every file under `root` whose name matches `predicate`.\n * Tolerant: an unreadable directory is skipped, never thrown. Returns absolute\n * paths in directory-walk order. A non-existent root yields [].\n */\nexport function walkFiles(\n root: string,\n predicate: (name: string, absPath: string) => boolean,\n maxDepth = 12,\n): string[] {\n const out: string[] = [];\n if (!isDir(root)) return out;\n\n const stack: Array<{ dir: string; depth: number }> = [{ dir: root, depth: 0 }];\n while (stack.length > 0) {\n const { dir, depth } = stack.pop() as { dir: string; depth: number };\n let entries: import(\"node:fs\").Dirent[];\n try {\n entries = readdirSync(dir, { withFileTypes: true });\n } catch {\n continue; // unreadable dir → skip\n }\n for (const entry of entries) {\n const abs = join(dir, entry.name);\n if (entry.isDirectory()) {\n if (depth < maxDepth) stack.push({ dir: abs, depth: depth + 1 });\n } else if (entry.isFile() && predicate(entry.name, abs)) {\n out.push(abs);\n }\n }\n }\n return out;\n}\n\n/**\n * List immediate subdirectory names of `dir` (not recursive). Tolerant: returns\n * [] for a missing/unreadable directory.\n */\nexport function listSubdirs(dir: string): string[] {\n if (!isDir(dir)) return [];\n try {\n return readdirSync(dir, { withFileTypes: true })\n .filter((e) => e.isDirectory())\n .map((e) => join(dir, e.name));\n } catch {\n return [];\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/usage/paths.ts"],"sourcesContent":["/**\n * usage/paths — per-platform HOST storage-root resolution + small fs walkers.\n *\n * This is the read-only complement to core/paths.ts: where that module resolves\n * the FRAMEWORK data-root (~/.agent-connector), this one resolves each agent\n * CLI's OWN native storage roots (~/.qwen, ~/.claude, …) so the usage readers\n * can parse them. It NEVER writes; it only enumerates files.\n *\n * Ported from tokscale paths.rs (the tokscale cache dir) and from each reader's\n * storage-path spec (docs/research/usage-readers.json). Resolution order is\n * uniform across platforms:\n * 1. an explicit AGENT_CONNECTOR_<PLATFORM>_DIR env override (verbatim, when\n * non-empty — an empty string is treated as unset so we never resolve to \"\");\n * 2. the platform-specific default for the current OS.\n *\n * The \"tokscale cache dir\" (~/.config/tokscale, or AGENT_CONNECTOR_TOKSCALE_DIR)\n * is where synced readers (cursor/antigravity/antigravity-cli/trae/warp) look for\n * a local cache that a separate tokscale run may have produced — we read it if\n * present, but we never create or sync it. (Antigravity's own native store is\n * protobuf .pb with no public schema, so it too is synced-cache-or-skip.)\n */\n\nimport {\n existsSync,\n readdirSync,\n statSync,\n} from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { isAbsolute, join, resolve } from \"node:path\";\n\n// ─────────────────────────────────────────────────────────────────────────\n// Home / env helpers\n// ─────────────────────────────────────────────────────────────────────────\n\n/** Expand a leading \"~\" (and \"~/\") to the user's home directory. */\nexport function expandHome(p: string): string {\n if (p === \"~\") return homedir();\n if (p.startsWith(\"~/\") || p.startsWith(\"~\\\\\")) {\n return join(homedir(), p.slice(2));\n }\n return p;\n}\n\n/**\n * Read an env override, treating empty/blank as unset (mirrors tokscale's\n * is_config_dir_overridden contract: an empty override must NOT resolve to \"\").\n * Relative paths are resolved against the process CWD; \"~\" is expanded.\n */\nfunction envOverride(name: string): string | undefined {\n const raw = process.env[name];\n if (raw == null || raw.trim() === \"\") return undefined;\n const expanded = expandHome(raw.trim());\n return isAbsolute(expanded) ? expanded : resolve(expanded);\n}\n\n/** $XDG_DATA_HOME (when set & non-empty) else ~/.local/share. */\nfunction xdgDataHome(): string {\n const xdg = process.env.XDG_DATA_HOME;\n if (xdg && xdg.trim() !== \"\") return resolve(expandHome(xdg.trim()));\n return join(homedir(), \".local\", \"share\");\n}\n\n/** $XDG_CONFIG_HOME (when set & non-empty) else ~/.config. */\nfunction xdgConfigHome(): string {\n const xdg = process.env.XDG_CONFIG_HOME;\n if (xdg && xdg.trim() !== \"\") return resolve(expandHome(xdg.trim()));\n return join(homedir(), \".config\");\n}\n\n/** Windows %LOCALAPPDATA% else ~/AppData/Local. */\nfunction localAppData(): string {\n const v = process.env.LOCALAPPDATA;\n if (v && v.trim() !== \"\") return resolve(v.trim());\n return join(homedir(), \"AppData\", \"Local\");\n}\n\nconst isMac = process.platform === \"darwin\";\nconst isWin = process.platform === \"win32\";\n\n// ─────────────────────────────────────────────────────────────────────────\n// tokscale cache dir (for synced readers)\n// ─────────────────────────────────────────────────────────────────────────\n\n/**\n * Resolve the tokscale config dir (where synced caches live). Ported from\n * tokscale paths.rs get_config_dir():\n * 1. AGENT_CONNECTOR_TOKSCALE_DIR override (verbatim, non-empty);\n * 2. macOS: $HOME/.config/tokscale (NOT ~/Library/Application Support);\n * 3. Linux: $XDG_CONFIG_HOME/tokscale or ~/.config/tokscale;\n * 4. Windows: %APPDATA%/tokscale (config_dir equivalent) else ~/.config/tokscale.\n *\n * We use AGENT_CONNECTOR_TOKSCALE_DIR (not TOKSCALE_CONFIG_DIR) so the framework\n * never accidentally couples to a tokscale install's hermetic test env.\n */\nexport function tokscaleConfigDir(): string {\n const override = envOverride(\"AGENT_CONNECTOR_TOKSCALE_DIR\");\n if (override) return override;\n if (isMac) return join(homedir(), \".config\", \"tokscale\");\n if (isWin) {\n const appData = process.env.APPDATA;\n if (appData && appData.trim() !== \"\") return join(resolve(appData.trim()), \"tokscale\");\n return join(homedir(), \".config\", \"tokscale\");\n }\n return join(xdgConfigHome(), \"tokscale\");\n}\n\n/** The directory a synced platform's local cache lives under, e.g. `<tokscale>/cursor-cache`. */\nexport function tokscaleCacheDir(name: string): string {\n return join(tokscaleConfigDir(), name);\n}\n\n// ─────────────────────────────────────────────────────────────────────────\n// Antigravity native store roots (DETECTION ONLY — not parsed for usage)\n//\n// CONFIRMED-BY-INSTALL (2026-06-03, docs/research/antigravity-paths-confirmed.md):\n// the native Antigravity store is `~/.gemini/antigravity/conversations/<uuid>.pb`\n// — PROTOBUF with no public schema — and `brain/<uuid>/` holds only media +\n// `*.metadata.json`. There are NO `transcript*.jsonl` files. The `agy` CLI shares\n// this SAME `~/.gemini/antigravity/` dir (no separate config/storage dir). So the\n// native dir is used only for platform DETECTION (in the adapters); the usage\n// readers do NOT parse it (protobuf, unreadable) — they are SYNCED readers that\n// read the tokscale synced-cache instead (see hostRoots → antigravity-cache).\n//\n// These helpers are retained for any detection caller and honor the standard\n// AGENT_CONNECTOR_<PLATFORM>_DIR override (prepended, preferred when set).\n// ─────────────────────────────────────────────────────────────────────────\n\n/**\n * The native Antigravity store root for DETECTION: `~/.gemini/antigravity/`\n * (CONFIRMED). Its `conversations/<uuid>.pb` payloads are protobuf with no public\n * schema, so this dir is NOT parsed for usage — only its presence is a signal.\n *\n * Honors AGENT_CONNECTOR_ANTIGRAVITY_DIR (verbatim, when set) as the override.\n */\nexport function antigravityNativeRoots(): string[] {\n const out: string[] = [];\n const override = envOverride(\"AGENT_CONNECTOR_ANTIGRAVITY_DIR\");\n if (override) out.push(override);\n out.push(join(homedir(), \".gemini\", \"antigravity\"));\n return out;\n}\n\n/**\n * The native store root for the Antigravity CLI (`agy`) for DETECTION. CONFIRMED:\n * `agy` has NO separate dir — it SHARES the IDE's `~/.gemini/antigravity/` (also\n * protobuf, not parsed for usage).\n *\n * Honors AGENT_CONNECTOR_ANTIGRAVITY_CLI_DIR (verbatim, when set) as the override.\n */\nexport function antigravityCliNativeRoots(): string[] {\n const out: string[] = [];\n const override = envOverride(\"AGENT_CONNECTOR_ANTIGRAVITY_CLI_DIR\");\n if (override) out.push(override);\n out.push(join(homedir(), \".gemini\", \"antigravity\"));\n return out;\n}\n\n// ─────────────────────────────────────────────────────────────────────────\n// Per-platform host roots\n// ─────────────────────────────────────────────────────────────────────────\n\n/**\n * Candidate host storage roots for a platform, most-preferred first. Readers\n * iterate the returned list and use the first that exists (each variant is the\n * OS-correct default; the env override, when present, is prepended).\n *\n * Only the platforms this subsystem currently ships a reader for are listed in\n * detail; the table is structured so a new platform is one new case. Returning\n * `[]` (no candidate root) makes a reader fail-open to zero records.\n */\nexport function hostRoots(platformId: string): string[] {\n const out: string[] = [];\n const override = envOverride(`AGENT_CONNECTOR_${platformId.toUpperCase().replace(/-/g, \"_\")}_DIR`);\n if (override) out.push(override);\n\n switch (platformId) {\n case \"qwen-code\":\n // ~/.qwen/projects/*/chats/*.jsonl\n out.push(join(homedir(), \".qwen\", \"projects\"));\n break;\n case \"claude-code\":\n out.push(join(homedir(), \".claude\", \"projects\"));\n break;\n case \"codex\":\n out.push(join(homedir(), \".codex\", \"sessions\"));\n break;\n case \"gemini-cli\":\n out.push(join(homedir(), \".gemini\", \"tmp\"));\n break;\n case \"pi\":\n out.push(join(homedir(), \".pi\", \"agent\", \"sessions\"));\n break;\n case \"kimi\":\n // TWO Moonshot products share the \"kimi\" id with DIFFERENT session trees:\n // - Kimi Code (newer, @moonshot-ai/kimi-code): ~/.kimi-code/sessions/...\n // (deeper tree, see readers/kimi.ts) — the product our adapter targets.\n // - Kimi CLI (older): ~/.kimi/sessions/<GROUP>/<UUID>/wire.jsonl\n // Both are scanned (Kimi Code preferred first). $KIMI_CODE_HOME relocates\n // the Kimi Code home and is honored ahead of these in readers/kimi.ts.\n out.push(join(homedir(), \".kimi-code\", \"sessions\"));\n out.push(join(homedir(), \".kimi\", \"sessions\"));\n break;\n case \"copilot-cli\":\n out.push(join(xdgDataHome(), \"Copilot\", \"telemetry\"));\n out.push(join(xdgConfigHome(), \"copilot\", \"telemetry\"));\n break;\n case \"amp\":\n out.push(join(xdgDataHome(), \"amp\", \"threads\"));\n break;\n case \"droid\":\n out.push(join(homedir(), \".factory\", \"sessions\"));\n break;\n case \"mux\":\n // Xum renamed its home `.mux` → `.xum` and still reads the legacy one, so\n // a machine can hold either (or both, mid-migration). Both roots are\n // pushed — the reader is fail-open and merges whatever it finds.\n out.push(join(homedir(), \".xum\", \"sessions\"));\n out.push(join(homedir(), \".mux\", \"sessions\"));\n break;\n case \"kiro\":\n out.push(join(homedir(), \".kiro\", \"sessions\", \"cli\"));\n break;\n case \"opencode\":\n out.push(join(xdgDataHome(), \"opencode\", \"opencode.db\"));\n break;\n case \"goose\":\n if (isMac) out.push(join(homedir(), \"Library\", \"Application Support\", \"goose\", \"sessions\", \"sessions.db\"));\n out.push(join(xdgDataHome(), \"goose\", \"sessions\", \"sessions.db\"));\n out.push(join(xdgDataHome(), \"Block\", \"goose\", \"sessions\", \"sessions.db\"));\n break;\n case \"hermes\":\n out.push(join(homedir(), \".hermes\", \"state.db\"));\n break;\n case \"kilo-cli\":\n out.push(join(xdgDataHome(), \"kilo\", \"kilo.db\"));\n break;\n case \"crush\":\n out.push(join(homedir(), \".cache\", \"crush\", \"crush.db\"));\n break;\n case \"zed\":\n if (isMac) out.push(join(homedir(), \"Library\", \"Application Support\", \"Zed\", \"threads\", \"threads.db\"));\n else if (isWin) out.push(join(localAppData(), \"Zed\", \"threads\", \"threads.db\"));\n else out.push(join(xdgDataHome(), \"zed\", \"threads\", \"threads.db\"));\n break;\n // Synced platforms: local cache under the tokscale config dir.\n case \"cursor\":\n out.push(tokscaleCacheDir(\"cursor-cache\"));\n break;\n case \"antigravity\":\n // SYNCED: the native store is protobuf (.pb, no public schema) and NOT\n // parseable, so the reader reads only the tokscale synced-cache mirror if a\n // separate tokscale run produced one (else [] → \"requires sync\"). The\n // native `~/.gemini/antigravity/` dir is used only for detection.\n out.push(tokscaleCacheDir(\"antigravity-cache\"));\n break;\n case \"antigravity-cli\":\n // SYNCED: `agy` shares the IDE's protobuf (.pb) store (no schema), so the\n // reader reads only the tokscale synced-cache mirror if present (else [] →\n // \"requires sync\"). Shares the IDE's antigravity-cache name (same data).\n out.push(tokscaleCacheDir(\"antigravity-cache\"));\n break;\n case \"trae\":\n out.push(tokscaleCacheDir(\"trae-cache\"));\n break;\n case \"warp\":\n out.push(tokscaleCacheDir(\"warp-cache\"));\n break;\n default:\n break;\n }\n return out;\n}\n\n/** First existing host root for a platform, or undefined when none is present. */\nexport function firstExistingRoot(platformId: string): string | undefined {\n for (const root of hostRoots(platformId)) {\n if (existsSync(root)) return root;\n }\n return undefined;\n}\n\n// ─────────────────────────────────────────────────────────────────────────\n// Directory / glob walkers (tolerant — never throw)\n// ─────────────────────────────────────────────────────────────────────────\n\n/** Is the path an existing directory? Tolerant (false on any stat error). */\nexport function isDir(p: string): boolean {\n try {\n return statSync(p).isDirectory();\n } catch {\n return false;\n }\n}\n\n/** Is the path an existing regular file? Tolerant (false on any stat error). */\nexport function isFile(p: string): boolean {\n try {\n return statSync(p).isFile();\n } catch {\n return false;\n }\n}\n\n/**\n * Recursively list every file under `root` whose name matches `predicate`.\n * Tolerant: an unreadable directory is skipped, never thrown. Returns absolute\n * paths in directory-walk order. A non-existent root yields [].\n */\nexport function walkFiles(\n root: string,\n predicate: (name: string, absPath: string) => boolean,\n maxDepth = 12,\n): string[] {\n const out: string[] = [];\n if (!isDir(root)) return out;\n\n const stack: Array<{ dir: string; depth: number }> = [{ dir: root, depth: 0 }];\n while (stack.length > 0) {\n const { dir, depth } = stack.pop() as { dir: string; depth: number };\n let entries: import(\"node:fs\").Dirent[];\n try {\n entries = readdirSync(dir, { withFileTypes: true });\n } catch {\n continue; // unreadable dir → skip\n }\n for (const entry of entries) {\n const abs = join(dir, entry.name);\n if (entry.isDirectory()) {\n if (depth < maxDepth) stack.push({ dir: abs, depth: depth + 1 });\n } else if (entry.isFile() && predicate(entry.name, abs)) {\n out.push(abs);\n }\n }\n }\n return out;\n}\n\n/**\n * List immediate subdirectory names of `dir` (not recursive). Tolerant: returns\n * [] for a missing/unreadable directory.\n */\nexport function listSubdirs(dir: string): string[] {\n if (!isDir(dir)) return [];\n try {\n return readdirSync(dir, { withFileTypes: true })\n .filter((e) => e.isDirectory())\n .map((e) => join(dir, e.name));\n } catch {\n return [];\n }\n}\n"],"mappings":"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","names":[]}
@@ -11,136 +11,136 @@ var USAGE_READER_REGISTRY = [
11
11
  platformId: "claude-code",
12
12
  format: "jsonl",
13
13
  kind: "local",
14
- load: () => import("./claude-code-NMRKTAP7.js").then((m) => m.default)
14
+ load: () => import("./claude-code-L4VXCHKA.js").then((m) => m.default)
15
15
  },
16
16
  {
17
17
  platformId: "codex",
18
18
  format: "jsonl",
19
19
  kind: "local",
20
- load: () => import("./codex-YAORPCOD.js").then((m) => m.default)
20
+ load: () => import("./codex-H4MY6747.js").then((m) => m.default)
21
21
  },
22
22
  {
23
23
  platformId: "gemini-cli",
24
24
  format: "jsonl",
25
25
  kind: "local",
26
- load: () => import("./gemini-cli-NMVVBO3K.js").then((m) => m.default)
26
+ load: () => import("./gemini-cli-2B6TS7KU.js").then((m) => m.default)
27
27
  },
28
28
  {
29
29
  platformId: "qwen-code",
30
30
  format: "jsonl",
31
31
  kind: "local",
32
- load: () => import("./qwen-code-GQILBJ5B.js").then((m) => m.default)
32
+ load: () => import("./qwen-code-42TRBZ47.js").then((m) => m.default)
33
33
  },
34
34
  {
35
35
  platformId: "copilot-cli",
36
36
  format: "jsonl",
37
37
  kind: "local",
38
- load: () => import("./copilot-cli-MZTAWMPW.js").then((m) => m.default)
38
+ load: () => import("./copilot-cli-FIQNEHFC.js").then((m) => m.default)
39
39
  },
40
40
  {
41
41
  platformId: "pi",
42
42
  format: "jsonl",
43
43
  kind: "local",
44
- load: () => import("./pi-GGDQREVG.js").then((m) => m.default)
44
+ load: () => import("./pi-34CVX5WX.js").then((m) => m.default)
45
45
  },
46
46
  {
47
47
  platformId: "kimi",
48
48
  format: "jsonl",
49
49
  kind: "local",
50
- load: () => import("./kimi-5FHEXGZD.js").then((m) => m.default)
50
+ load: () => import("./kimi-BDW32HPV.js").then((m) => m.default)
51
51
  },
52
52
  {
53
53
  platformId: "openclaw",
54
54
  format: "jsonl",
55
55
  kind: "local",
56
- load: () => import("./openclaw-5EQFGOWL.js").then((m) => m.default)
56
+ load: () => import("./openclaw-QC6ROV5Z.js").then((m) => m.default)
57
57
  },
58
58
  // U2 — JSON readers
59
59
  {
60
60
  platformId: "amp",
61
61
  format: "json",
62
62
  kind: "local",
63
- load: () => import("./amp-BQZOL5GR.js").then((m) => m.default)
63
+ load: () => import("./amp-NDP2J4K3.js").then((m) => m.default)
64
64
  },
65
65
  {
66
66
  platformId: "droid",
67
67
  format: "json",
68
68
  kind: "local",
69
- load: () => import("./droid-U3ZBLQFO.js").then((m) => m.default)
69
+ load: () => import("./droid-SNF6TQK2.js").then((m) => m.default)
70
70
  },
71
71
  {
72
72
  platformId: "codebuff",
73
73
  format: "json",
74
74
  kind: "local",
75
- load: () => import("./codebuff-ETYT5UBL.js").then((m) => m.default)
75
+ load: () => import("./codebuff-GUNT2KBT.js").then((m) => m.default)
76
76
  },
77
77
  {
78
78
  platformId: "mux",
79
79
  format: "json",
80
80
  kind: "local",
81
- load: () => import("./mux-XM6AP35L.js").then((m) => m.default)
81
+ load: () => import("./mux-H4PNZRKG.js").then((m) => m.default)
82
82
  },
83
83
  {
84
84
  platformId: "kilo",
85
85
  format: "json",
86
86
  kind: "local",
87
- load: () => import("./kilo-FVBFSS4Y.js").then((m) => m.default)
87
+ load: () => import("./kilo-CHH3XI7H.js").then((m) => m.default)
88
88
  },
89
89
  {
90
90
  platformId: "kiro",
91
91
  format: "json",
92
92
  kind: "local",
93
- load: () => import("./kiro-WGOI5CGT.js").then((m) => m.default)
93
+ load: () => import("./kiro-HZF4BADZ.js").then((m) => m.default)
94
94
  },
95
95
  // U3 — SQLite readers (via sql.js wasm)
96
96
  {
97
97
  platformId: "opencode",
98
98
  format: "sqlite",
99
99
  kind: "local",
100
- load: () => import("./opencode-QGP4ALQY.js").then((m) => m.default)
100
+ load: () => import("./opencode-USR7ONCJ.js").then((m) => m.default)
101
101
  },
102
102
  {
103
103
  platformId: "goose",
104
104
  format: "sqlite",
105
105
  kind: "local",
106
- load: () => import("./goose-64V46Y2W.js").then((m) => m.default)
106
+ load: () => import("./goose-KDHNJE7Z.js").then((m) => m.default)
107
107
  },
108
108
  {
109
109
  platformId: "hermes",
110
110
  format: "sqlite",
111
111
  kind: "local",
112
- load: () => import("./hermes-F3EGTK6N.js").then((m) => m.default)
112
+ load: () => import("./hermes-MVCJAPSI.js").then((m) => m.default)
113
113
  },
114
114
  {
115
115
  platformId: "kilo-cli",
116
116
  format: "sqlite",
117
117
  kind: "local",
118
- load: () => import("./kilo-cli-ZF272ZHN.js").then((m) => m.default)
118
+ load: () => import("./kilo-cli-L57AGENB.js").then((m) => m.default)
119
119
  },
120
120
  {
121
121
  platformId: "synthetic",
122
122
  format: "sqlite",
123
123
  kind: "local",
124
- load: () => import("./synthetic-6FRA7P5Q.js").then((m) => m.default)
124
+ load: () => import("./synthetic-YZ4FO7YR.js").then((m) => m.default)
125
125
  },
126
126
  {
127
127
  platformId: "crush",
128
128
  format: "sqlite",
129
129
  kind: "local",
130
- load: () => import("./crush-QBXLNN7T.js").then((m) => m.default)
130
+ load: () => import("./crush-HLM2DFW2.js").then((m) => m.default)
131
131
  },
132
132
  {
133
133
  platformId: "zed",
134
134
  format: "sqlite",
135
135
  kind: "local",
136
- load: () => import("./zed-XJFOOKCO.js").then((m) => m.default)
136
+ load: () => import("./zed-23T4G4CT.js").then((m) => m.default)
137
137
  },
138
138
  // U4 — synced/cloud readers (read tokscale local cache if present, else skip)
139
139
  {
140
140
  platformId: "cursor",
141
141
  format: "synced-cache",
142
142
  kind: "synced",
143
- load: () => import("./cursor-DIW43TRZ.js").then((m) => m.default)
143
+ load: () => import("./cursor-Y3X7YK3S.js").then((m) => m.default)
144
144
  },
145
145
  {
146
146
  // Antigravity IDE: the native `~/.gemini/antigravity/conversations/<uuid>.pb`
@@ -150,7 +150,7 @@ var USAGE_READER_REGISTRY = [
150
150
  platformId: "antigravity",
151
151
  format: "synced-cache",
152
152
  kind: "synced",
153
- load: () => import("./antigravity-EA4L225L.js").then((m) => m.default)
153
+ load: () => import("./antigravity-FY5553OR.js").then((m) => m.default)
154
154
  },
155
155
  {
156
156
  // Antigravity CLI (`agy`): SHARES the IDE's protobuf (.pb) store (no separate
@@ -159,19 +159,19 @@ var USAGE_READER_REGISTRY = [
159
159
  platformId: "antigravity-cli",
160
160
  format: "synced-cache",
161
161
  kind: "synced",
162
- load: () => import("./antigravity-cli-B2HXZFYQ.js").then((m) => m.default)
162
+ load: () => import("./antigravity-cli-IUAE3SEX.js").then((m) => m.default)
163
163
  },
164
164
  {
165
165
  platformId: "trae",
166
166
  format: "synced-cache",
167
167
  kind: "synced",
168
- load: () => import("./trae-CPPYASR2.js").then((m) => m.default)
168
+ load: () => import("./trae-7PXIXNQO.js").then((m) => m.default)
169
169
  },
170
170
  {
171
171
  platformId: "warp",
172
172
  format: "synced-cache",
173
173
  kind: "synced",
174
- load: () => import("./warp-NRBBJQR2.js").then((m) => m.default)
174
+ load: () => import("./warp-57BIWGD3.js").then((m) => m.default)
175
175
  }
176
176
  ];
177
177
  var REGISTRY_BY_ID = new Map(
@@ -348,4 +348,4 @@ export {
348
348
  hostLeaderboard,
349
349
  formatHostLeaderboard
350
350
  };
351
- //# sourceMappingURL=chunk-IVJUPNLD.js.map
351
+ //# sourceMappingURL=chunk-AN7QCLT7.js.map
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  allAdapters,
4
4
  loadAdapter
5
- } from "./chunk-XJSVJD5T.js";
5
+ } from "./chunk-QG26JEJF.js";
6
6
 
7
7
  // src/sdk/introspect.ts
8
8
  function hostCanFireEvent(c, event) {
@@ -87,4 +87,4 @@ export {
87
87
  hostsSupporting,
88
88
  surfaceSupport
89
89
  };
90
- //# sourceMappingURL=chunk-34RRWEWU.js.map
90
+ //# sourceMappingURL=chunk-BD72ZF6D.js.map
@@ -3,7 +3,7 @@ import {
3
3
  defineConnector,
4
4
  readConnectorPackageMetadataNearFile,
5
5
  withConnectorPackageMetadata
6
- } from "./chunk-6FRAVOVF.js";
6
+ } from "./chunk-O7CFTOM5.js";
7
7
  import {
8
8
  assertNoSymlinkInPath,
9
9
  connectorDir,
@@ -193,4 +193,4 @@ export {
193
193
  connectorFromMeta,
194
194
  listRegisteredConnectors
195
195
  };
196
- //# sourceMappingURL=chunk-R4FABNAL.js.map
196
+ //# sourceMappingURL=chunk-BGPVMJOG.js.map
@@ -2,11 +2,11 @@
2
2
  import {
3
3
  compileMatcher,
4
4
  eventMatcherSubject
5
- } from "./chunk-CZOXXS77.js";
5
+ } from "./chunk-W4GVN3TJ.js";
6
6
  import {
7
7
  SURFACE_PREDICATES,
8
8
  hostCanFireEvent
9
- } from "./chunk-34RRWEWU.js";
9
+ } from "./chunk-BD72ZF6D.js";
10
10
  import {
11
11
  applyStatuslineOutputLimits,
12
12
  statuslineOptionsForHost
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  allAdapters,
16
16
  loadAdapter
17
- } from "./chunk-XJSVJD5T.js";
17
+ } from "./chunk-QG26JEJF.js";
18
18
 
19
19
  // src/sdk/test-harness.ts
20
20
  function declaredGlobalSurfaces(connector) {
@@ -399,4 +399,4 @@ export {
399
399
  simulate,
400
400
  explainHooks
401
401
  };
402
- //# sourceMappingURL=chunk-IY3SSCNK.js.map
402
+ //# sourceMappingURL=chunk-HUL5CRF2.js.map
@@ -9,13 +9,13 @@ import {
9
9
  } from "./chunk-GDIAHWNY.js";
10
10
  import {
11
11
  detectRuntimeHost
12
- } from "./chunk-KY2VQGD7.js";
12
+ } from "./chunk-OXANBA4I.js";
13
13
  import {
14
14
  attachLazyTelemetryUsage,
15
15
  buildTelemetryAccessor,
16
16
  measureToolCall,
17
17
  measureToolDefs
18
- } from "./chunk-CZOXXS77.js";
18
+ } from "./chunk-W4GVN3TJ.js";
19
19
  import {
20
20
  getTokenizer,
21
21
  inferModelFamily,
@@ -32,11 +32,11 @@ import {
32
32
  import {
33
33
  loadRegisteredConnector,
34
34
  readRegisteredMeta
35
- } from "./chunk-R4FABNAL.js";
35
+ } from "./chunk-BGPVMJOG.js";
36
36
  import {
37
37
  REGISTERED_PLATFORM_IDS,
38
38
  loadAdapter
39
- } from "./chunk-XJSVJD5T.js";
39
+ } from "./chunk-QG26JEJF.js";
40
40
  import {
41
41
  detectLaunchMethod
42
42
  } from "./chunk-QSY74NAP.js";
@@ -712,4 +712,4 @@ export {
712
712
  runStatusline,
713
713
  runAction
714
714
  };
715
- //# sourceMappingURL=chunk-4YOYR3T5.js.map
715
+ //# sourceMappingURL=chunk-K67UJSJI.js.map