@ken-jo/agent-connector 0.4.8 → 0.4.43
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.
- package/README.md +36 -24
- package/dist/{action-RWPRIZIC.js → action-ZUHMOGLV.js} +12 -12
- package/dist/amazon-q-UFLBUSHG.js +570 -0
- package/dist/amazon-q-UFLBUSHG.js.map +1 -0
- package/dist/{amp-PU4LFSY6.js → amp-5DJK7VAL.js} +5 -7
- package/dist/{amp-PU4LFSY6.js.map → amp-5DJK7VAL.js.map} +1 -1
- package/dist/{amp-TULUPXXL.js → amp-BQZOL5GR.js} +2 -2
- package/dist/{antigravity-STHZWMP3.js → antigravity-EA4L225L.js} +2 -2
- package/dist/{antigravity-DWW35HZO.js → antigravity-NWP2TUG6.js} +5 -6
- package/dist/{antigravity-cli-P6HADOAO.js → antigravity-cli-B2HXZFYQ.js} +2 -2
- package/dist/{antigravity-cli-VTQ6DNWL.js → antigravity-cli-KPNLE7X4.js} +5 -6
- package/dist/{antigravity-cli-VTQ6DNWL.js.map → antigravity-cli-KPNLE7X4.js.map} +1 -1
- package/dist/{chunk-NLFPH4S2.js → chunk-2RPHDVHW.js} +2 -2
- package/dist/{chunk-CENEXP7K.js → chunk-3Q6YEDCG.js} +11 -6
- package/dist/chunk-3Q6YEDCG.js.map +1 -0
- package/dist/{chunk-A2T4Q7RM.js → chunk-3ZZK4KXG.js} +18 -18
- package/dist/{chunk-YYISBXOM.js → chunk-4CBHYWUG.js} +9 -8
- package/dist/{chunk-YYISBXOM.js.map → chunk-4CBHYWUG.js.map} +1 -1
- package/dist/{chunk-HOE2MN36.js → chunk-54B5HAVT.js} +4 -4
- package/dist/{chunk-XQUUNAGC.js → chunk-5HSLICR3.js} +36 -36
- package/dist/{chunk-CDVOBKSG.js → chunk-5TMIJ7AY.js} +26 -5
- package/dist/chunk-5TMIJ7AY.js.map +1 -0
- package/dist/{chunk-KG6T3YNJ.js → chunk-A767JFHW.js} +87 -7
- package/dist/chunk-A767JFHW.js.map +1 -0
- package/dist/{chunk-MOW2RKHX.js → chunk-AQ53TOH4.js} +8 -4
- package/dist/chunk-AQ53TOH4.js.map +1 -0
- package/dist/{chunk-YS2NYJ6R.js → chunk-ERV4TKRV.js} +3 -5
- package/dist/{chunk-YS2NYJ6R.js.map → chunk-ERV4TKRV.js.map} +1 -1
- package/dist/{chunk-BCHWFTV4.js → chunk-F4DSMVZ7.js} +2 -2
- package/dist/{chunk-OZ5EXXQV.js → chunk-H3BATOBP.js} +2 -2
- package/dist/{chunk-SCVBYSF7.js → chunk-IRUYJD23.js} +28 -28
- package/dist/{chunk-FAHIMJRU.js → chunk-L7ESV37V.js} +2 -2
- package/dist/{chunk-JNM3TPLX.js → chunk-LETB5HCK.js} +2 -2
- package/dist/{chunk-7TVBFRVI.js → chunk-M3H7PQWT.js} +2 -2
- package/dist/{chunk-JWNT5KW7.js → chunk-O7SDRBVB.js} +3 -1
- package/dist/chunk-O7SDRBVB.js.map +1 -0
- package/dist/{chunk-TRQKHP7D.js → chunk-QY42WGBX.js} +23 -2
- package/dist/chunk-QY42WGBX.js.map +1 -0
- package/dist/{chunk-VRKTVCYJ.js → chunk-RAJBLK2V.js} +33 -43
- package/dist/chunk-RAJBLK2V.js.map +1 -0
- package/dist/{chunk-WI6YSXOC.js → chunk-VDSXVNEH.js} +51 -28
- package/dist/chunk-VDSXVNEH.js.map +1 -0
- package/dist/{cursor-GJBSMXI6.js → chunk-XW46WVR2.js} +11 -12
- package/dist/chunk-XW46WVR2.js.map +1 -0
- package/dist/{chunk-NYR55UT7.js → chunk-YG3KFOOQ.js} +2 -2
- package/dist/{chunk-N6HH7K6P.js → chunk-ZY25RG4Y.js} +2 -2
- package/dist/{claude-code-W74MNTAC.js → claude-code-NMRKTAP7.js} +2 -2
- package/dist/{claude-code-64X6RR2S.js → claude-code-YNNKQCCR.js} +9 -11
- package/dist/{claude-code-64X6RR2S.js.map → claude-code-YNNKQCCR.js.map} +1 -1
- package/dist/cli/sdk.js +7 -7
- package/dist/cli.js +1 -1
- package/dist/{cline-T7ZDJYZQ.js → cline-AGFJF4AC.js} +5 -7
- package/dist/{cline-T7ZDJYZQ.js.map → cline-AGFJF4AC.js.map} +1 -1
- package/dist/{codebuff-3PMZJJHP.js → codebuff-ETYT5UBL.js} +2 -2
- package/dist/{codebuff-PPPY3SJV.js → codebuff-YUQ4PN7G.js} +5 -7
- package/dist/{codebuff-PPPY3SJV.js.map → codebuff-YUQ4PN7G.js.map} +1 -1
- package/dist/{codex-EEVN43C2.js → codex-FLU37DV3.js} +28 -13
- package/dist/codex-FLU37DV3.js.map +1 -0
- package/dist/{codex-Q3ATRRX3.js → codex-YAORPCOD.js} +2 -2
- package/dist/{continue-VLLZO4PM.js → continue-ZMI4YN75.js} +5 -6
- package/dist/{continue-VLLZO4PM.js.map → continue-ZMI4YN75.js.map} +1 -1
- package/dist/{copilot-cli-SJGIXVSD.js → copilot-cli-MZTAWMPW.js} +2 -2
- package/dist/{copilot-cli-A7G5WB4N.js → copilot-cli-XPRJ5MQB.js} +31 -7
- package/dist/copilot-cli-XPRJ5MQB.js.map +1 -0
- package/dist/{crush-AH24GDDB.js → crush-3OB5ZTCC.js} +13 -12
- package/dist/crush-3OB5ZTCC.js.map +1 -0
- package/dist/{crush-LN5QFFR2.js → crush-QBXLNN7T.js} +2 -2
- package/dist/{cursor-QZ6MTO74.js → cursor-DIW43TRZ.js} +2 -2
- package/dist/cursor-F4HYO2FP.js +22 -0
- package/dist/{detect-YDCZNV4W.js → detect-FXGBSNQU.js} +4 -4
- package/dist/{doctor-DGC7P3P7.js → doctor-2O65SAPG.js} +17 -14
- package/dist/{doctor-DGC7P3P7.js.map → doctor-2O65SAPG.js.map} +1 -1
- package/dist/{droid-RBWCFKL3.js → droid-NZCKYKOV.js} +5 -7
- package/dist/{droid-RBWCFKL3.js.map → droid-NZCKYKOV.js.map} +1 -1
- package/dist/{droid-W5WF5XEX.js → droid-U3ZBLQFO.js} +2 -2
- package/dist/{gemini-cli-CFPFEJEA.js → gemini-cli-3ZGCXUDD.js} +5 -7
- package/dist/{gemini-cli-CFPFEJEA.js.map → gemini-cli-3ZGCXUDD.js.map} +1 -1
- package/dist/{gemini-cli-CIRW37TU.js → gemini-cli-NMVVBO3K.js} +2 -2
- package/dist/{goose-A3M5GODH.js → goose-64V46Y2W.js} +2 -2
- package/dist/{goose-UBJVQFUE.js → goose-MGGNVXJP.js} +59 -12
- package/dist/goose-MGGNVXJP.js.map +1 -0
- package/dist/{hermes-ZYLMOFLZ.js → hermes-F3EGTK6N.js} +2 -2
- package/dist/{hermes-6FXGXLNL.js → hermes-L3CBJ37L.js} +11 -9
- package/dist/hermes-L3CBJ37L.js.map +1 -0
- package/dist/{hook-CDGSCASQ.js → hook-D3PY6TDK.js} +12 -12
- package/dist/index.d.ts +2 -2
- package/dist/index.js +5 -5
- package/dist/{install-2D3UKEME.js → install-SVBIK4VJ.js} +17 -14
- package/dist/{install-2D3UKEME.js.map → install-SVBIK4VJ.js.map} +1 -1
- package/dist/{introspect-Cn3MSA4_.d.ts → introspect-B164-hj3.d.ts} +1 -1
- package/dist/{jetbrains-copilot-K26KMA3U.js → jetbrains-copilot-M2LHJBAW.js} +5 -7
- package/dist/{jetbrains-copilot-K26KMA3U.js.map → jetbrains-copilot-M2LHJBAW.js.map} +1 -1
- package/dist/{kilo-BKZJ26RM.js → kilo-RMRP2EL7.js} +5 -7
- package/dist/{kilo-BKZJ26RM.js.map → kilo-RMRP2EL7.js.map} +1 -1
- package/dist/{kilo-NSWAVP6P.js → kilo-SW7BH6EG.js} +2 -2
- package/dist/{kilo-cli-6UVWCXQD.js → kilo-cli-6ITBNHTH.js} +16 -12
- package/dist/kilo-cli-6ITBNHTH.js.map +1 -0
- package/dist/{kilo-cli-EVBKUODA.js → kilo-cli-ZF272ZHN.js} +2 -2
- package/dist/{kimi-EI3UM3ZV.js → kimi-5FHEXGZD.js} +72 -13
- package/dist/kimi-5FHEXGZD.js.map +1 -0
- package/dist/{kimi-QALYPSRR.js → kimi-I35VOOY4.js} +69 -32
- package/dist/kimi-I35VOOY4.js.map +1 -0
- package/dist/{kiro-J5J42I5Z.js → kiro-2K5UJVGC.js} +13 -18
- package/dist/kiro-2K5UJVGC.js.map +1 -0
- package/dist/{kiro-UCLSLBW2.js → kiro-WGOI5CGT.js} +2 -2
- package/dist/{leaderboard-VZQXNWTX.js → leaderboard-ZMZST52G.js} +6 -6
- package/dist/{mimo-code-BEE622P2.js → mimo-code-K7AMX2QW.js} +38 -9
- package/dist/mimo-code-K7AMX2QW.js.map +1 -0
- package/dist/{mux-5HTNKK4K.js → mux-GT7FWVLH.js} +5 -7
- package/dist/{mux-5HTNKK4K.js.map → mux-GT7FWVLH.js.map} +1 -1
- package/dist/{mux-ZMLVAXOO.js → mux-XM6AP35L.js} +2 -2
- package/dist/{nemoclaw-DNFIZFDF.js → nemoclaw-GQMS6CUM.js} +5 -6
- package/dist/{nemoclaw-DNFIZFDF.js.map → nemoclaw-GQMS6CUM.js.map} +1 -1
- package/dist/{omp-I3UTRBNP.js → omp-2RPYIZUF.js} +4 -5
- package/dist/{omp-I3UTRBNP.js.map → omp-2RPYIZUF.js.map} +1 -1
- package/dist/{openclaw-IYA7ASL6.js → openclaw-5EQFGOWL.js} +2 -2
- package/dist/{openclaw-QE2LMWIF.js → openclaw-P5GMEEGC.js} +5 -6
- package/dist/openclaw-P5GMEEGC.js.map +1 -0
- package/dist/{opencode-ZFSUYJXI.js → opencode-5D2SK3EX.js} +5 -7
- package/dist/{opencode-ZFSUYJXI.js.map → opencode-5D2SK3EX.js.map} +1 -1
- package/dist/{opencode-HWT3RSMN.js → opencode-QGP4ALQY.js} +2 -2
- package/dist/{package-BSCCMW4E.js → package-EDYQF6C6.js} +13 -10
- package/dist/{package-BSCCMW4E.js.map → package-EDYQF6C6.js.map} +1 -1
- package/dist/{pi-UFX2OYFV.js → pi-GGDQREVG.js} +2 -2
- package/dist/{pi-H2KBBDDJ.js → pi-ZMM4KJTO.js} +4 -5
- package/dist/{pi-H2KBBDDJ.js.map → pi-ZMM4KJTO.js.map} +1 -1
- package/dist/{qwen-code-5LE34FNE.js → qwen-code-4ZLVGN2C.js} +12 -14
- package/dist/qwen-code-4ZLVGN2C.js.map +1 -0
- package/dist/{qwen-code-W7NUCDEN.js → qwen-code-GQILBJ5B.js} +2 -2
- package/dist/{roo-code-XH4GCYIS.js → roo-code-67QGLQRM.js} +6 -7
- package/dist/roo-code-67QGLQRM.js.map +1 -0
- package/dist/{roo-code-ZLKH4A7N.js → roo-code-SUWI4BBN.js} +2 -2
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.js +10 -10
- package/dist/sdk/index.d.ts +3 -3
- package/dist/sdk/index.js +6 -6
- package/dist/sdk/test.d.ts +2 -2
- package/dist/sdk/test.js +9 -9
- package/dist/{serve-MQNGPY2H.js → serve-427CCEYA.js} +12 -12
- package/dist/{status-MRHVRDFY.js → status-6IHRW6PI.js} +10 -10
- package/dist/{statusline-IYWA75TR.js → statusline-2CKH5RHO.js} +11 -11
- package/dist/{synthetic-UKR6SMGS.js → synthetic-6FRA7P5Q.js} +2 -2
- package/dist/{telemetry-IONIOMLC.js → telemetry-WNVKL7HW.js} +10 -10
- package/dist/{trae-PA26DPBW.js → trae-CPPYASR2.js} +2 -2
- package/dist/{trae-RVNRSV7X.js → trae-TMJPHWZ5.js} +5 -7
- package/dist/{trae-RVNRSV7X.js.map → trae-TMJPHWZ5.js.map} +1 -1
- package/dist/{types-_6arHbX9.d.ts → types-COSBYpKs.d.ts} +7 -5
- package/dist/{uninstall-ESLSVCLE.js → uninstall-QFCDXGKR.js} +17 -14
- package/dist/{uninstall-ESLSVCLE.js.map → uninstall-QFCDXGKR.js.map} +1 -1
- package/dist/{upgrade-VICY5T64.js → upgrade-PP46DURC.js} +17 -14
- package/dist/{upgrade-VICY5T64.js.map → upgrade-PP46DURC.js.map} +1 -1
- package/dist/{usage-TCUWV2YZ.js → usage-VDORZJPT.js} +3 -3
- package/dist/{usage-event-CBZZP37Q.js → usage-event-4533OURF.js} +11 -11
- package/dist/{vscode-copilot-B2QBBHJW.js → vscode-copilot-H7JKUKLZ.js} +21 -10
- package/dist/vscode-copilot-H7JKUKLZ.js.map +1 -0
- package/dist/{warp-JNQA7PBU.js → warp-NRBBJQR2.js} +2 -2
- package/dist/{warp-5R54ST3N.js → warp-SVDVKQQI.js} +5 -7
- package/dist/{warp-5R54ST3N.js.map → warp-SVDVKQQI.js.map} +1 -1
- package/dist/{windsurf-L32UEOLY.js → windsurf-H36YKOMR.js} +5 -7
- package/dist/{windsurf-L32UEOLY.js.map → windsurf-H36YKOMR.js.map} +1 -1
- package/dist/{zed-FDJHJZKD.js → zed-LHWJALLZ.js} +5 -7
- package/dist/{zed-FDJHJZKD.js.map → zed-LHWJALLZ.js.map} +1 -1
- package/dist/{zed-NNNX5MNT.js → zed-XJFOOKCO.js} +2 -2
- package/package.json +7 -2
- package/dist/amazon-q-5LJOB5L3.js +0 -264
- package/dist/amazon-q-5LJOB5L3.js.map +0 -1
- package/dist/chunk-CDVOBKSG.js.map +0 -1
- package/dist/chunk-CENEXP7K.js.map +0 -1
- package/dist/chunk-IEGR4TP3.js +0 -70
- package/dist/chunk-IEGR4TP3.js.map +0 -1
- package/dist/chunk-JWNT5KW7.js.map +0 -1
- package/dist/chunk-KG6T3YNJ.js.map +0 -1
- package/dist/chunk-MOW2RKHX.js.map +0 -1
- package/dist/chunk-TRQKHP7D.js.map +0 -1
- package/dist/chunk-VRKTVCYJ.js.map +0 -1
- package/dist/chunk-WI6YSXOC.js.map +0 -1
- package/dist/codex-EEVN43C2.js.map +0 -1
- package/dist/copilot-cli-A7G5WB4N.js.map +0 -1
- package/dist/crush-AH24GDDB.js.map +0 -1
- package/dist/cursor-GJBSMXI6.js.map +0 -1
- package/dist/goose-UBJVQFUE.js.map +0 -1
- package/dist/hermes-6FXGXLNL.js.map +0 -1
- package/dist/kilo-cli-6UVWCXQD.js.map +0 -1
- package/dist/kimi-EI3UM3ZV.js.map +0 -1
- package/dist/kimi-QALYPSRR.js.map +0 -1
- package/dist/kiro-J5J42I5Z.js.map +0 -1
- package/dist/mimo-code-BEE622P2.js.map +0 -1
- package/dist/qwen-code-5LE34FNE.js.map +0 -1
- package/dist/roo-code-XH4GCYIS.js.map +0 -1
- package/dist/vscode-copilot-B2QBBHJW.js.map +0 -1
- /package/dist/{action-RWPRIZIC.js.map → action-ZUHMOGLV.js.map} +0 -0
- /package/dist/{amp-TULUPXXL.js.map → amp-BQZOL5GR.js.map} +0 -0
- /package/dist/{antigravity-STHZWMP3.js.map → antigravity-EA4L225L.js.map} +0 -0
- /package/dist/{antigravity-DWW35HZO.js.map → antigravity-NWP2TUG6.js.map} +0 -0
- /package/dist/{antigravity-cli-P6HADOAO.js.map → antigravity-cli-B2HXZFYQ.js.map} +0 -0
- /package/dist/{chunk-NLFPH4S2.js.map → chunk-2RPHDVHW.js.map} +0 -0
- /package/dist/{chunk-A2T4Q7RM.js.map → chunk-3ZZK4KXG.js.map} +0 -0
- /package/dist/{chunk-HOE2MN36.js.map → chunk-54B5HAVT.js.map} +0 -0
- /package/dist/{chunk-XQUUNAGC.js.map → chunk-5HSLICR3.js.map} +0 -0
- /package/dist/{chunk-BCHWFTV4.js.map → chunk-F4DSMVZ7.js.map} +0 -0
- /package/dist/{chunk-OZ5EXXQV.js.map → chunk-H3BATOBP.js.map} +0 -0
- /package/dist/{chunk-SCVBYSF7.js.map → chunk-IRUYJD23.js.map} +0 -0
- /package/dist/{chunk-FAHIMJRU.js.map → chunk-L7ESV37V.js.map} +0 -0
- /package/dist/{chunk-JNM3TPLX.js.map → chunk-LETB5HCK.js.map} +0 -0
- /package/dist/{chunk-7TVBFRVI.js.map → chunk-M3H7PQWT.js.map} +0 -0
- /package/dist/{chunk-NYR55UT7.js.map → chunk-YG3KFOOQ.js.map} +0 -0
- /package/dist/{chunk-N6HH7K6P.js.map → chunk-ZY25RG4Y.js.map} +0 -0
- /package/dist/{claude-code-W74MNTAC.js.map → claude-code-NMRKTAP7.js.map} +0 -0
- /package/dist/{codebuff-3PMZJJHP.js.map → codebuff-ETYT5UBL.js.map} +0 -0
- /package/dist/{codex-Q3ATRRX3.js.map → codex-YAORPCOD.js.map} +0 -0
- /package/dist/{copilot-cli-SJGIXVSD.js.map → copilot-cli-MZTAWMPW.js.map} +0 -0
- /package/dist/{crush-LN5QFFR2.js.map → crush-QBXLNN7T.js.map} +0 -0
- /package/dist/{cursor-QZ6MTO74.js.map → cursor-DIW43TRZ.js.map} +0 -0
- /package/dist/{openclaw-QE2LMWIF.js.map → cursor-F4HYO2FP.js.map} +0 -0
- /package/dist/{detect-YDCZNV4W.js.map → detect-FXGBSNQU.js.map} +0 -0
- /package/dist/{droid-W5WF5XEX.js.map → droid-U3ZBLQFO.js.map} +0 -0
- /package/dist/{gemini-cli-CIRW37TU.js.map → gemini-cli-NMVVBO3K.js.map} +0 -0
- /package/dist/{goose-A3M5GODH.js.map → goose-64V46Y2W.js.map} +0 -0
- /package/dist/{hermes-ZYLMOFLZ.js.map → hermes-F3EGTK6N.js.map} +0 -0
- /package/dist/{hook-CDGSCASQ.js.map → hook-D3PY6TDK.js.map} +0 -0
- /package/dist/{kilo-NSWAVP6P.js.map → kilo-SW7BH6EG.js.map} +0 -0
- /package/dist/{kilo-cli-EVBKUODA.js.map → kilo-cli-ZF272ZHN.js.map} +0 -0
- /package/dist/{kiro-UCLSLBW2.js.map → kiro-WGOI5CGT.js.map} +0 -0
- /package/dist/{leaderboard-VZQXNWTX.js.map → leaderboard-ZMZST52G.js.map} +0 -0
- /package/dist/{mux-ZMLVAXOO.js.map → mux-XM6AP35L.js.map} +0 -0
- /package/dist/{openclaw-IYA7ASL6.js.map → openclaw-5EQFGOWL.js.map} +0 -0
- /package/dist/{opencode-HWT3RSMN.js.map → opencode-QGP4ALQY.js.map} +0 -0
- /package/dist/{pi-UFX2OYFV.js.map → pi-GGDQREVG.js.map} +0 -0
- /package/dist/{qwen-code-W7NUCDEN.js.map → qwen-code-GQILBJ5B.js.map} +0 -0
- /package/dist/{roo-code-ZLKH4A7N.js.map → roo-code-SUWI4BBN.js.map} +0 -0
- /package/dist/{serve-MQNGPY2H.js.map → serve-427CCEYA.js.map} +0 -0
- /package/dist/{status-MRHVRDFY.js.map → status-6IHRW6PI.js.map} +0 -0
- /package/dist/{statusline-IYWA75TR.js.map → statusline-2CKH5RHO.js.map} +0 -0
- /package/dist/{synthetic-UKR6SMGS.js.map → synthetic-6FRA7P5Q.js.map} +0 -0
- /package/dist/{telemetry-IONIOMLC.js.map → telemetry-WNVKL7HW.js.map} +0 -0
- /package/dist/{trae-PA26DPBW.js.map → trae-CPPYASR2.js.map} +0 -0
- /package/dist/{usage-TCUWV2YZ.js.map → usage-VDORZJPT.js.map} +0 -0
- /package/dist/{usage-event-CBZZP37Q.js.map → usage-event-4533OURF.js.map} +0 -0
- /package/dist/{warp-JNQA7PBU.js.map → warp-NRBBJQR2.js.map} +0 -0
- /package/dist/{zed-NNNX5MNT.js.map → zed-XJFOOKCO.js.map} +0 -0
|
@@ -5,12 +5,13 @@ import { createHash } from "crypto";
|
|
|
5
5
|
import {
|
|
6
6
|
chmodSync,
|
|
7
7
|
existsSync,
|
|
8
|
+
lstatSync,
|
|
8
9
|
mkdirSync,
|
|
9
10
|
readFileSync,
|
|
10
11
|
writeFileSync
|
|
11
12
|
} from "fs";
|
|
12
13
|
import { homedir } from "os";
|
|
13
|
-
import { basename, join, resolve } from "path";
|
|
14
|
+
import { basename, join, parse, relative, resolve, sep } from "path";
|
|
14
15
|
function dataRoot() {
|
|
15
16
|
const override = process.env.AGENT_CONNECTOR_DATA_DIR;
|
|
16
17
|
if (override && override.trim() !== "") return resolve(override);
|
|
@@ -35,6 +36,25 @@ function homeBinPath() {
|
|
|
35
36
|
function ensureDir(dir) {
|
|
36
37
|
if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
|
|
37
38
|
}
|
|
39
|
+
function firstSymlinkInPath(path) {
|
|
40
|
+
const abs = resolve(path);
|
|
41
|
+
const root = parse(abs).root;
|
|
42
|
+
const rest = relative(root, abs);
|
|
43
|
+
if (rest === "") return null;
|
|
44
|
+
let cur = root;
|
|
45
|
+
for (const part of rest.split(sep)) {
|
|
46
|
+
if (part === "") continue;
|
|
47
|
+
cur = join(cur, part);
|
|
48
|
+
try {
|
|
49
|
+
if (lstatSync(cur).isSymbolicLink()) return cur;
|
|
50
|
+
} catch (err) {
|
|
51
|
+
const code = err.code;
|
|
52
|
+
if (code === "ENOENT") return null;
|
|
53
|
+
throw err;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
38
58
|
function ensureHomeBin(cliEntry, nodePath = process.execPath) {
|
|
39
59
|
const binPath = homeBinPath();
|
|
40
60
|
ensureDir(join(dataRoot(), "bin"));
|
|
@@ -87,7 +107,8 @@ export {
|
|
|
87
107
|
telemetryPath,
|
|
88
108
|
homeBinPath,
|
|
89
109
|
ensureDir,
|
|
110
|
+
firstSymlinkInPath,
|
|
90
111
|
ensureHomeBin,
|
|
91
112
|
projectIdentity
|
|
92
113
|
};
|
|
93
|
-
//# sourceMappingURL=chunk-
|
|
114
|
+
//# sourceMappingURL=chunk-QY42WGBX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/paths.ts"],"sourcesContent":["/**\n * core/paths — home data-root, stable home binary, and project identity.\n *\n * Operating model (docs/ARCHITECTURE.md §3):\n * • One home data-root holds the single binary + shared telemetry + state.\n * Override with AGENT_CONNECTOR_DATA_DIR (the cross-agent shared-DB key).\n * This relocates FRAMEWORK state only — never platform-native config files.\n * • The home binary lives at a STABLE path so every host's pointer config\n * keeps working across updates (no versioned cache dir → no cache-heal bug).\n * • Per-project data is keyed by a stable project identity (git remote ||\n * normalized absolute path), hashed — not by code location.\n */\n\nimport { createHash } from \"node:crypto\";\nimport {\n chmodSync,\n existsSync,\n lstatSync,\n mkdirSync,\n readFileSync,\n writeFileSync,\n} from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { basename, join, parse, relative, resolve, sep } from \"node:path\";\n\n/** Framework data-root: AGENT_CONNECTOR_DATA_DIR || ~/.agent-connector. */\nexport function dataRoot(): string {\n const override = process.env.AGENT_CONNECTOR_DATA_DIR;\n if (override && override.trim() !== \"\") return resolve(override);\n return join(homedir(), \".agent-connector\");\n}\n\nexport function connectorsDir(): string {\n return join(dataRoot(), \"connectors\");\n}\nexport function connectorDir(id: string): string {\n return join(connectorsDir(), id);\n}\nexport function backupsDir(): string {\n return join(dataRoot(), \"backups\");\n}\nexport function logsDir(): string {\n return join(dataRoot(), \"logs\");\n}\n\n/** Telemetry store path for the selected backend. */\nexport function telemetryPath(store: \"ndjson\" | \"sqlite\" = \"ndjson\"): string {\n return join(dataRoot(), store === \"sqlite\" ? \"telemetry.db\" : \"telemetry.ndjson\");\n}\n\n/** Stable, OS-correct path to the single home binary pointer. */\nexport function homeBinPath(): string {\n const name = process.platform === \"win32\" ? \"agent-connector.cmd\" : \"agent-connector\";\n return join(dataRoot(), \"bin\", name);\n}\n\nexport function ensureDir(dir: string): void {\n if (!existsSync(dir)) mkdirSync(dir, { recursive: true });\n}\n\n/**\n * Return the first existing symbolic-link component in `path`, or null when the\n * existing prefix is symlink-free. Stops at the first missing component so new\n * directories/files can still be created normally.\n */\nexport function firstSymlinkInPath(path: string): string | null {\n const abs = resolve(path);\n const root = parse(abs).root;\n const rest = relative(root, abs);\n if (rest === \"\") return null;\n\n let cur = root;\n for (const part of rest.split(sep)) {\n if (part === \"\") continue;\n cur = join(cur, part);\n try {\n if (lstatSync(cur).isSymbolicLink()) return cur;\n } catch (err) {\n const code = (err as NodeJS.ErrnoException).code;\n if (code === \"ENOENT\") return null;\n throw err;\n }\n }\n return null;\n}\n\n/**\n * Write a stable launcher at homeBinPath() that execs the real CLI entry.\n * Avoids symlinks (Windows constraint) and versioned paths. Idempotent.\n *\n * @param cliEntry absolute path to the installed cli.js\n * @param nodePath node runtime to exec with (defaults to current process.execPath)\n * @returns the stable launcher path\n */\nexport function ensureHomeBin(cliEntry: string, nodePath: string = process.execPath): string {\n const binPath = homeBinPath();\n ensureDir(join(dataRoot(), \"bin\"));\n const node = nodePath.replace(/\\\\/g, \"/\");\n const cli = cliEntry.replace(/\\\\/g, \"/\");\n if (process.platform === \"win32\") {\n writeFileSync(binPath, `@echo off\\r\\n\"${node}\" \"${cli}\" %*\\r\\n`, \"utf8\");\n } else {\n writeFileSync(binPath, `#!/bin/sh\\nexec \"${node}\" \"${cli}\" \"$@\"\\n`, \"utf8\");\n chmodSync(binPath, 0o755);\n }\n return binPath;\n}\n\n/** Read remote.origin.url from a project's .git/config without spawning git. */\nfunction gitRemoteUrl(projectDir: string): string | null {\n const cfg = join(projectDir, \".git\", \"config\");\n if (!existsSync(cfg)) return null;\n try {\n const text = readFileSync(cfg, \"utf8\");\n // Find [remote \"origin\"] ... url = X\n const lines = text.split(/\\r?\\n/);\n let inOrigin = false;\n for (const line of lines) {\n const s = line.trim();\n if (s.startsWith(\"[\")) inOrigin = /^\\[remote\\s+\"origin\"\\]$/.test(s);\n else if (inOrigin) {\n const m = s.match(/^url\\s*=\\s*(.+)$/);\n if (m && m[1]) return m[1].trim();\n }\n }\n } catch {\n /* ignore */\n }\n return null;\n}\n\nexport interface ProjectIdentity {\n /** Hashed stable key used to partition telemetry/state. */\n key: string;\n /** Human-readable label (git remote or directory name). */\n label: string;\n /** Absolute project directory. */\n dir: string;\n}\n\n/**\n * Derive a stable project identity. Prefers the git origin URL (stable across\n * clones/locations); falls back to the normalized absolute path.\n */\nexport function projectIdentity(projectDir: string): ProjectIdentity {\n const dir = resolve(projectDir);\n const remote = gitRemoteUrl(dir);\n const basis = remote ?? dir;\n const key = createHash(\"sha256\").update(basis).digest(\"hex\").slice(0, 16);\n return { key, label: remote ?? basename(dir), dir };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
installInstructions,
|
|
4
4
|
packageConnector
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-5TMIJ7AY.js";
|
|
6
6
|
import {
|
|
7
7
|
MARKETPLACE_NAME,
|
|
8
8
|
agyPluginInstalled,
|
|
@@ -38,13 +38,13 @@ import {
|
|
|
38
38
|
readMarketplaceInstalls,
|
|
39
39
|
readNpmConfig,
|
|
40
40
|
writeMarketplaceInstalls
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-M3H7PQWT.js";
|
|
42
42
|
import {
|
|
43
43
|
spawnChild
|
|
44
44
|
} from "./chunk-7QRUZAUG.js";
|
|
45
45
|
import {
|
|
46
46
|
detectInstalledPlatforms
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-YG3KFOOQ.js";
|
|
48
48
|
import {
|
|
49
49
|
log
|
|
50
50
|
} from "./chunk-KHO5WNTP.js";
|
|
@@ -52,17 +52,17 @@ import {
|
|
|
52
52
|
deregisterConnector,
|
|
53
53
|
loadRegisteredConnector,
|
|
54
54
|
registerConnector
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-AQ53TOH4.js";
|
|
56
56
|
import {
|
|
57
57
|
REGISTERED_PLATFORM_IDS,
|
|
58
58
|
loadAdapter
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-5HSLICR3.js";
|
|
60
60
|
import {
|
|
61
61
|
configPatchManualEdit
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-L7ESV37V.js";
|
|
63
63
|
import {
|
|
64
64
|
hasMemoryLedger
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-ZY25RG4Y.js";
|
|
66
66
|
import {
|
|
67
67
|
connectorDir,
|
|
68
68
|
connectorsDir,
|
|
@@ -70,7 +70,7 @@ import {
|
|
|
70
70
|
ensureDir,
|
|
71
71
|
ensureHomeBin,
|
|
72
72
|
homeBinPath
|
|
73
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-QY42WGBX.js";
|
|
74
74
|
|
|
75
75
|
// src/core/installer.ts
|
|
76
76
|
import { existsSync, readdirSync, rmSync } from "fs";
|
|
@@ -2402,28 +2402,30 @@ function npmLocalDriver(platform) {
|
|
|
2402
2402
|
}
|
|
2403
2403
|
return driver;
|
|
2404
2404
|
}
|
|
2405
|
+
var DRIVER_RESOLVERS = [
|
|
2406
|
+
{ platforms: ["claude-code"], resolve: () => claudeDriver },
|
|
2407
|
+
{ platforms: ["codex"], resolve: () => codexDriver },
|
|
2408
|
+
{
|
|
2409
|
+
platforms: ["antigravity", "antigravity-cli"],
|
|
2410
|
+
resolve: (platform) => agyDriver(platform)
|
|
2411
|
+
},
|
|
2412
|
+
{ platforms: ["gemini-cli"], resolve: () => geminiDriver },
|
|
2413
|
+
{ platforms: ["qwen-code"], resolve: () => qwenDriver },
|
|
2414
|
+
{ platforms: ["droid"], resolve: () => droidDriver },
|
|
2415
|
+
{
|
|
2416
|
+
platforms: ["opencode", "kilo", "kilo-cli"],
|
|
2417
|
+
resolve: (platform) => npmLocalDriver(platform)
|
|
2418
|
+
}
|
|
2419
|
+
];
|
|
2420
|
+
var DRIVABLE_MARKETPLACE_PLATFORMS = DRIVER_RESOLVERS.flatMap((entry) => [...entry.platforms]);
|
|
2421
|
+
function hasMarketplaceDriver(platform) {
|
|
2422
|
+
return DRIVABLE_MARKETPLACE_PLATFORMS.includes(platform);
|
|
2423
|
+
}
|
|
2405
2424
|
function getMarketplaceDriver(platform) {
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
return codexDriver;
|
|
2411
|
-
case "antigravity":
|
|
2412
|
-
case "antigravity-cli":
|
|
2413
|
-
return agyDriver(platform);
|
|
2414
|
-
case "gemini-cli":
|
|
2415
|
-
return geminiDriver;
|
|
2416
|
-
case "qwen-code":
|
|
2417
|
-
return qwenDriver;
|
|
2418
|
-
case "droid":
|
|
2419
|
-
return droidDriver;
|
|
2420
|
-
case "opencode":
|
|
2421
|
-
case "kilo":
|
|
2422
|
-
case "kilo-cli":
|
|
2423
|
-
return npmLocalDriver(platform);
|
|
2424
|
-
default:
|
|
2425
|
-
return null;
|
|
2426
|
-
}
|
|
2425
|
+
const entry = DRIVER_RESOLVERS.find(
|
|
2426
|
+
(resolver) => resolver.platforms.includes(platform)
|
|
2427
|
+
);
|
|
2428
|
+
return entry?.resolve(platform) ?? null;
|
|
2427
2429
|
}
|
|
2428
2430
|
|
|
2429
2431
|
// src/core/marketplace.ts
|
|
@@ -2457,18 +2459,6 @@ var MARKETPLACE_FORMAT_BY_PLATFORM = {
|
|
|
2457
2459
|
openclaw: "claude-plugin",
|
|
2458
2460
|
omp: "claude-plugin"
|
|
2459
2461
|
};
|
|
2460
|
-
var DRIVABLE_MARKETPLACE_PLATFORMS = /* @__PURE__ */ new Set([
|
|
2461
|
-
"claude-code",
|
|
2462
|
-
"codex",
|
|
2463
|
-
"antigravity",
|
|
2464
|
-
"antigravity-cli",
|
|
2465
|
-
"gemini-cli",
|
|
2466
|
-
"qwen-code",
|
|
2467
|
-
"droid",
|
|
2468
|
-
"opencode",
|
|
2469
|
-
"kilo",
|
|
2470
|
-
"kilo-cli"
|
|
2471
|
-
]);
|
|
2472
2462
|
function newResult2(connectorId, dryRun) {
|
|
2473
2463
|
return { connectorId, dryRun, changes: [], warnings: [] };
|
|
2474
2464
|
}
|
|
@@ -2553,7 +2543,7 @@ async function installViaMarketplace(opts) {
|
|
|
2553
2543
|
});
|
|
2554
2544
|
continue;
|
|
2555
2545
|
}
|
|
2556
|
-
if (!
|
|
2546
|
+
if (!hasMarketplaceDriver(id)) {
|
|
2557
2547
|
result.changes.push({
|
|
2558
2548
|
platform: id,
|
|
2559
2549
|
action: explicit ? "warn" : "skip",
|
|
@@ -3032,4 +3022,4 @@ export {
|
|
|
3032
3022
|
upgradeViaMarketplace,
|
|
3033
3023
|
marketplaceDoctorChecks
|
|
3034
3024
|
};
|
|
3035
|
-
//# sourceMappingURL=chunk-
|
|
3025
|
+
//# sourceMappingURL=chunk-RAJBLK2V.js.map
|