zidane 5.0.6 → 5.1.1
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 +37 -1
- package/dist/{agent-JhicgLOV.d.ts → agent-B0vrSTQ9.d.ts} +162 -4
- package/dist/agent-B0vrSTQ9.d.ts.map +1 -0
- package/dist/chat.d.ts +526 -81
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +2 -2
- package/dist/contexts/docker.d.ts +7 -0
- package/dist/contexts/docker.d.ts.map +1 -0
- package/dist/{contexts-3Arvn7yR.js → contexts/docker.js} +2 -128
- package/dist/contexts/docker.js.map +1 -0
- package/dist/contexts-BwiHIr2w.js +129 -0
- package/dist/contexts-BwiHIr2w.js.map +1 -0
- package/dist/contexts.d.ts +3 -2
- package/dist/contexts.js +2 -2
- package/dist/index-CFxhms_B.d.ts +1303 -0
- package/dist/index-CFxhms_B.d.ts.map +1 -0
- package/dist/index-DYcymRtr.d.ts +26 -0
- package/dist/index-DYcymRtr.d.ts.map +1 -0
- package/dist/{index-t_W9i7Ql.d.ts → index-X6Q9PN_A.d.ts} +3 -3
- package/dist/{index-t_W9i7Ql.d.ts.map → index-X6Q9PN_A.d.ts.map} +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.js +10 -9
- package/dist/index.js.map +1 -1
- package/dist/login-B7b7NNJQ.js +1277 -0
- package/dist/login-B7b7NNJQ.js.map +1 -0
- package/dist/{mcp-Dw-fRPVk.js → mcp-BgwK6ySj.js} +184 -9
- package/dist/mcp-BgwK6ySj.js.map +1 -0
- package/dist/mcp.d.ts +2 -2
- package/dist/mcp.js +1 -1
- package/dist/{messages-xaYMMFlb.js → messages-BAFLvH_z.js} +1 -1
- package/dist/{messages-xaYMMFlb.js.map → messages-BAFLvH_z.js.map} +1 -1
- package/dist/{presets-BRFH2qsQ.js → presets-CI8_fyvX.js} +2 -2
- package/dist/{presets-BRFH2qsQ.js.map → presets-CI8_fyvX.js.map} +1 -1
- package/dist/presets.d.ts +2 -2
- package/dist/presets.js +1 -1
- package/dist/{providers-BCbdv99U.js → providers-C6-vhaVu.js} +2 -2
- package/dist/{providers-BCbdv99U.js.map → providers-C6-vhaVu.js.map} +1 -1
- package/dist/providers.d.ts +1 -1
- package/dist/providers.js +2 -2
- package/dist/session/sqlite.d.ts +1 -1
- package/dist/{session-791hhrFa.js → session-pS4Vt4dl.js} +1 -1
- package/dist/{session-791hhrFa.js.map → session-pS4Vt4dl.js.map} +1 -1
- package/dist/session.d.ts +1 -1
- package/dist/session.js +2 -2
- package/dist/skills.d.ts +2 -2
- package/dist/{stats-DZIsGqzu.js → stats-DvCtBRwK.js} +1 -1
- package/dist/{stats-DZIsGqzu.js.map → stats-DvCtBRwK.js.map} +1 -1
- package/dist/{theme-C3JHZ5y9.d.ts → tool-formatters-D7cN3T_W.d.ts} +932 -31
- package/dist/tool-formatters-D7cN3T_W.d.ts.map +1 -0
- package/dist/{tools-CLazLRb4.js → tools-d1yeA6xK.js} +399 -13
- package/dist/tools-d1yeA6xK.js.map +1 -0
- package/dist/tools.d.ts +2 -2
- package/dist/tools.js +1 -1
- package/dist/tui.d.ts +426 -68
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +3966 -878
- package/dist/tui.js.map +1 -1
- package/dist/{turn-operations-BfEh-GER.js → turn-operations-lsUMITng.js} +2550 -206
- package/dist/turn-operations-lsUMITng.js.map +1 -0
- package/dist/types-Bx_F8jet.js.map +1 -1
- package/dist/{index-CXVvqTQj.d.ts → types-OtrV6LJT.d.ts} +2 -27
- package/dist/types-OtrV6LJT.d.ts.map +1 -0
- package/dist/types.d.ts +4 -3
- package/dist/types.js +1 -1
- package/package.json +5 -1
- package/dist/agent-JhicgLOV.d.ts.map +0 -1
- package/dist/contexts-3Arvn7yR.js.map +0 -1
- package/dist/index-2yLUyTbc.d.ts +0 -430
- package/dist/index-2yLUyTbc.d.ts.map +0 -1
- package/dist/index-CXVvqTQj.d.ts.map +0 -1
- package/dist/mcp-Dw-fRPVk.js.map +0 -1
- package/dist/theme-C3JHZ5y9.d.ts.map +0 -1
- package/dist/tools-CLazLRb4.js.map +0 -1
- package/dist/turn-operations-BfEh-GER.js.map +0 -1
package/dist/chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","names":[],"sources":["../src/chat/files-discovery.ts","../src/chat/completion-files.ts","../src/chat/completion-skills.ts","../src/chat/config-context.tsx","../src/chat/credentials.ts","../src/chat/format.ts","../src/chat/generate-title.ts","../src/chat/model-catalog.ts","../src/chat/oauth.ts","../src/chat/
|
|
1
|
+
{"version":3,"file":"chat.d.ts","names":[],"sources":["../src/chat/agent-prompt.ts","../src/chat/auto-compact.ts","../src/chat/browser.ts","../src/chat/files-discovery.ts","../src/chat/completion-files.ts","../src/chat/completion-skills.ts","../src/chat/config-context.tsx","../src/chat/credentials.ts","../src/chat/edit-diff.ts","../src/chat/format.ts","../src/chat/generate-title.ts","../src/chat/mcp-auth-state.ts","../src/chat/mcp-auth-context.tsx","../src/chat/mcp-credentials.ts","../src/chat/model-catalog.ts","../src/chat/oauth.ts","../src/chat/project-root.ts","../src/chat/project-user-paths.ts","../src/chat/safe-mode.ts","../src/chat/settings-context.tsx","../src/chat/skills-discovery.ts","../src/chat/streaming.ts","../src/chat/theme-context.tsx","../src/chat/themes/catppuccin.ts","../src/chat/themes/vaporwave.ts","../src/chat/turn-operations.ts"],"mappings":";;;;;;;;;;;;;;;;;;;AA6BA;;;;;AAOA;;;;;;;;cAPa,eAAA;AAAA,UAOI,iBAAA;EAuCD;;;;;AAoChB;EApEE,GAAA;;;;AAmFF;;;;;AAgBA;;EAxFE,WAAA;EAwFiC;EAtFjC,IAAA;EAqGW;EAnGX,QAAA;AAAA;;;AAiHF;;;;;AAgBA;;;;;AAsBA;;iBAtIgB,UAAA,CAAW,IAAA,EAAM,iBAAA;;;AA+IjC;;;;;;cA3Ga,oBAAA;;;;AAmJb;;;;cApIa,yBAAA;AAsJb;;;;;;;AAAA,cAtIa,sBAAA;AC/Gb;;;;;;;AAAA,cD8Ha,0BAAA;;;;AC7Fb;;;;;;cD2Ga,iBAAA;;;;;AC7Fb;;cD6Ga,kBAAA;;;;;;;;cAsBA,oBAAA;AAAA,UASI,kBAAA;EEvMD;EFyMd,GAAA;;;;;;;AGxMF;EHgNE,WAAA;;EAEA,IAAA;EGhNA;EHkNA,QAAA;AAAA;;;AGjKF;;;;;;;;;;iBH2LgB,gBAAA,CAAiB,IAAA,GAAM,kBAAA;;;;;;iBAkBvB,eAAA,CAAgB,IAAA,GAAM,kBAAA;;;;;;;;;;;;;;AAvPtC;;;;;AAOA;;;;;;;;;;AAuCA;;UC5CiB,gBAAA;ED4CgB;EC1C/B,OAAA;ED8EW;;;;;AAeb;;ECrFE,SAAA;EDqFoC;;AAgBtC;;;;EC9FE,WAAA;ED6GW;;;;;ECvGX,gBAAA;EDqH4B;;;;AAgB9B;;EC9HE,iBAAA;AAAA;AAAA,KAGU,mBAAA;EACJ,IAAA;EAAc,YAAA;EAAsB,eAAA;AAAA;EACpC,IAAA;EAAc,MAAA;AAAA;;;;;;;;;ADgMtB;;iBCpLgB,iBAAA,CAAkB,KAAA,EAAO,gBAAA,GAAmB,mBAAA;;;;;;;;;;;;;;ADjD5D;;;;;iBEVgB,cAAA,CAAe,GAAA;;;;;;;;;;;;;;AFU/B;;;UGTiB,SAAA;EHSW;EGP1B,IAAA;EHcgC;EGZhC,IAAA;EHYgC;EGVhC,MAAA;AAAA;;UA6Ce,uBAAA;EHbP;EGeR,GAAA;EHEc;EGAd,QAAA;;EAEA,MAAA,GAAS,WAAA;AAAA;AHkCX;;;;;AAeA;;;;AAfA,iBGtBsB,gBAAA,CAAiB,IAAA,GAAM,uBAAA,GAA+B,OAAA,CAAQ,SAAA;;;;cCrEvE,aAAA;;;AJgBb;;;;;;;;;;AAuCA;iBIrCgB,6BAAA,CAA8B,IAAA;uFAE5C,UAAA,iBAA2B,SAAA,IJmCqB;EIjChD,KAAA;AAAA,IACE,kBAAA,CAAmB,SAAA;;;;AJmFvB;;iBI4BgB,yBAAA,CACd,UAAA,WAAqB,mBAAA,cACpB,SAAA;;;;cCvIU,cAAA;;ALeb;;;;;;;iBKFgB,8BAAA,CAA+B,IAAA;ELwBrC,8EKtBR,UAAA,iBAA2B,WAAA,ILuCb;EKrCd,UAAA;AAAA,IACE,kBAAA,CAAmB,WAAA;;;ALwEvB;;;iBKagB,8BAAA,CACd,UAAA,WAAqB,mBAAA;;;iBChHP,cAAA,CAAA;EAAiB,MAAA;EAAQ;AAAA;EAAc,MAAA,EAAQ,cAAA;EAAgB,QAAA,EAAU,SAAA;AAAA,IAAW,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAIpF,SAAA,CAAA,GAAa,cAAA;;;UCaZ,gBAAA;EACf,IAAA;EACA,KAAA;AAAA;AAAA,UAEe,eAAA;EACf,IAAA;EACA,MAAA;EACA,OAAA;EACA,OAAA;EPyEW;EAAA,COvEV,KAAA;AAAA;AAAA,KAES,kBAAA,GAAqB,gBAAA,GAAmB,eAAA;;KAGxC,eAAA,GAAkB,MAAA,SAAe,kBAAA;;;;;APiG7C;;;iBOxFgB,eAAA,CAAgB,OAAA;;APuGhC;;;;;AAcA;;iBOzGgB,eAAA,CAAgB,OAAA,WAAkB,eAAA;;iBAuBlC,sBAAA,CAAuB,OAAA,UAAiB,UAAA,EAAY,kBAAA,GAAqB,kBAAA;APkGzF;;;;;AAsBA;;AAtBA,iBOvFgB,gBAAA,CAAiB,OAAA,UAAiB,KAAA,EAAO,eAAA;AAAA,iBAQzC,qBAAA,CACd,OAAA,UACA,UAAA,EAAY,kBAAA,EACZ,IAAA,EAAM,kBAAA;AAAA,iBAOQ,wBAAA,CAAyB,OAAA,UAAiB,UAAA,EAAY,kBAAA;APoGtE;;;;;;;;;;AAwCA;;;AAxCA,iBO9EgB,cAAA,CACd,OAAA,UACA,QAAA,EAAU,QAAA,CAAS,MAAA,SAAe,kBAAA;;;iBCtHpB,kBAAA,CACd,IAAA,UACA,KAAA,EAAO,MAAA,mBACP,YAAA,YACC,WAAA;AAAA,KAiES,MAAA;AAAA,UAEK,QAAA;EACf,EAAA,EAAI,MAAA;EACJ,IAAA;AAAA;AAAA,iBAGc,eAAA,CAAgB,SAAA,UAAmB,SAAA,WAAoB,QAAA;;;;ARvEvE;;iBQwHgB,UAAA,CAAW,CAAA;AAAA,UAwBV,aAAA;EACf,IAAA;EACA,OAAA;AAAA;AAAA,UAGe,UAAA;EACf,WAAA,EAAa,aAAA;EACb,WAAA,EAAa,aAAA;AAAA;AAAA,iBAGC,iBAAA,CAAkB,OAAA,UAAiB,OAAA,WAAkB,UAAA;;;;AR5GrE;;;;;iBQ8KgB,QAAA,CAAS,CAAA;AAAA,iBAgCT,gBAAA,CAAiB,OAAA,EAAS,WAAA;AAAA,iBA4D1B,gBAAA,CAAiB,IAAA;;;;iBClVjB,SAAA,CAAU,CAAA;;iBASV,SAAA,CAAU,EAAA,UAAY,GAAA;;iBAatB,OAAA,CAAQ,EAAA;;;;;;ATIxB;;;;;AAOA;;;;iBSOgB,WAAA,CAAY,IAAA,UAAc,QAAA,WAAmB,IAAA;;;UCjB5C,2BAAA;EACf,QAAA,EAAU,QAAA;EVEgB;EUA1B,KAAA;EVOe;EULf,KAAA,WAAgB,WAAA;;EAEhB,QAAA;EVUA;EURA,MAAA,GAAS,WAAA;AAAA;;;;AVwCX;;;;;AAoCA;;iBU/DsB,oBAAA,CAAA;EACpB,QAAA;EACA,KAAA;EACA,KAAA;EACA,QAAA;EACA;AAAA,GACC,2BAAA,GAA8B,OAAA;;;AVwEjC;;;;;AAgBA;;;;;AAeA;;iBUbgB,UAAA,CAAW,GAAA;;;;;;;;;;;;;;AVnH3B;;;;;AAOA;;;;;;;;;;AAuCA;KW/CY,aAAA;EAGJ,IAAA;AAAA;EAKA,IAAA;EAAoB,MAAA;AAAA;EAKpB,IAAA;EAAqB,GAAA;AAAA;EAErB,IAAA;AAAA;EAIA,IAAA;EAAe,KAAA;AAAA;AX+FvB;;;;;AAAA,KWxFY,eAAA,GAAkB,QAAA,CAAS,MAAA,SAAe,aAAA;;;;;AXqHtD;;KW7GY,YAAA;EACJ,IAAA;EAAuB,IAAA;EAAc,MAAA;AAAA;EACrC,IAAA;EAAkB,IAAA;EAAc,GAAA;AAAA;EAChC,IAAA;EAAsB,IAAA;AAAA;EACtB,IAAA;EAAoB,IAAA;EAAc,KAAA;AAAA;EAClC,IAAA;EAAmB,IAAA;AAAA;EACnB,IAAA;EAAqB,IAAA;AAAA;EACrB,IAAA;EAAsB,IAAA;AAAA;EACtB,IAAA;EAAgB,IAAA;AAAA;EAChB,IAAA;EAAe,IAAA;AAAA;;;;;;AVxCvB;;;iBUkDgB,aAAA,CAAc,KAAA,EAAO,eAAA,EAAiB,KAAA,EAAO,YAAA,GAAe,eAAA;;iBAqC5D,gBAAA,CAAiB,KAAA,EAAO,eAAA,EAAiB,IAAA,WAAe,aAAA;;;;AXPxE;;;iBYtEgB,eAAA,CAAA;EAAkB;AAAA;EAAc,QAAA,EAAU,SAAA;AAAA,IAAW,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAcrD,eAAA,CAAA,GAAmB,eAAA;AAAA,iBAInB,kBAAA,CAAA,IAAuB,KAAA,EAAO,YAAA;;;iBCzB9B,kBAAA,CAAmB,OAAA;AbyCnC;;;;;AAoCA;;;;;AAeA;AAnDA,iBaEgB,4BAAA,CAA6B,OAAA,WAAkB,kBAAA;;;;AbiE/D;;iBaxCgB,kBAAA,CACd,KAAA,EAAO,kBAAA,EACP,IAAA,UACA,KAAA,EAAO,OAAA,CAAQ,kBAAA;;;;UCzFA,YAAA;EACf,WAAA,EAAa,WAAA;EACb,aAAA;EACA,KAAA,EAAO,SAAA;;;;;;;;EAQP,YAAA;AAAA;;;;;AdoFF;;;;;AAeA;;;;iBcnFgB,iBAAA,CAAkB,IAAA;EAChC,SAAA,WAAoB,YAAA;EACpB,SAAA,GAAY,GAAA,EAAK,WAAA,cAAyB,SAAA;EAE1C,OAAA;IAAY,WAAA,EAAa,WAAA;IAAa,OAAA;EAAA;AAAA,IACpC,YAAA;;;Ad2HJ;;;;;AAgBA;;;iBclGgB,kBAAA,CACd,OAAA,WAAkB,YAAA,IAClB,KAAA,WACC,YAAA;;AdqHH;;;;iBcxGgB,YAAA,CACd,OAAA,WAAkB,YAAA,IAClB,MAAA;EAAU,WAAA,EAAa,WAAA;EAAa,OAAA;AAAA;;;iBC9FtB,aAAA,CAAc,UAAA,EAAY,kBAAA;AAAA,UAIzB,gBAAA;EfYW;EeV1B,KAAA,GAAQ,GAAA,UAAa,YAAA;EfUK;EeR1B,aAAA,SAAsB,OAAA;EfeP;Eebf,UAAA,IAAc,OAAA;;EAEd,MAAA,GAAS,WAAA;AAAA;;;;;;AfkDX;;iBexCsB,aAAA,CACpB,UAAA,EAAY,kBAAA,EACZ,OAAA,EAAS,gBAAA,GACR,OAAA,CAAQ,gBAAA;;;;;;;;;;;;;;AfTX;;;;;AAOA;;;;;;;;;;AAuCA;;;iBgB1CgB,WAAA,CAAY,GAAA;;;;;;;;;;;;;;AhBJ5B;;;;;AAOA;;;;;UiBViB,eAAA;EACf,IAAA;EACA,MAAA;AAAA;;AjB+CF;;;;;iBiBtCgB,gBAAA,CAAiB,IAAA;EjB0EA,6FiBxE/B,OAAA,UjBwE+B;EiBtE/B,GAAA,WjBqFW;EiBnFX,IAAA;EAEA,MAAA;AAAA,IACE,eAAA;;;;;;;;;;;;;;AjBjBJ;;;;;AAOA;;;;;;;UkBLiB,YAAA;EACf,QAAA;AAAA;AAAA,KAGU,YAAA,GAAe,MAAA,SAAe,YAAA;;iBAG1B,gBAAA,CAAiB,OAAA;AAAA,iBAIjB,YAAA,CAAa,OAAA,WAAkB,YAAA;;iBAsB/B,aAAA,CAAc,OAAA,UAAiB,IAAA,EAAM,YAAA;;;;;iBAYrC,aAAA,CACd,OAAA,UACA,UAAA,UACA,KAAA;;iBAac,WAAA,CAAY,OAAA,UAAiB,UAAA;;;AlBkD7C;;;;;AAeA;;;;;AAcA;ckB1Da,qBAAA;;;;AlB0Eb;;;;;AAsBA;;;;;AASA;;iBkBhBgB,oBAAA,CACd,KAAA,UACA,IAAA,UACA,KAAA,EAAO,MAAA;;iBAyBO,YAAA,CACd,OAAA,qBACA,IAAA,UACA,KAAA,EAAO,MAAA;;;;;;AlByBT;;;;;iBkBRgB,oBAAA,CACd,IAAA,UACA,KAAA,EAAO,MAAA;;;cCnPI,gBAAA,EAAkB,QAAA;AAAA,UAqFrB,oBAAA;EACR,QAAA,EAAU,QAAA;;EAEV,MAAA,GAAS,GAAA,EAAK,iBAAA;;EAEd,UAAA,mBAA6B,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,KAAA,EAAO,QAAA,CAAS,CAAA;AAAA;AAAA,iBAKjD,gBAAA,CAAA;EACd,OAAA;EACA,QAAA;EACA;AAAA;EAEA,OAAA,EAAS,QAAA;EACT,QAAA,IAAY,QAAA,EAAU,QAAA;EACtB,QAAA,EAAU,SAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBA2Ce,WAAA,CAAA,GAAe,oBAAA;;;;;;;;;;AnBhF/B;KmBiGY,iBAAA,iBACE,QAAA,KAAa,QAAA,CAAS,CAAA,oBAAqB,CAAA,iBACjD,QAAA;;AnB/DR;;;;UmBsEiB,cAAA;EACf,GAAA,EAAK,iBAAA;EACL,KAAA;EACA,WAAA;AAAA;AAAA,cAGW,gBAAA,WAA2B,cAAA;AnB7CxC;;;;;AAeA;;;;AAfA,UmBkEiB,cAAA,iBAA+B,QAAA,SAAiB,QAAA;EAC/D,GAAA,EAAK,CAAA;EACL,KAAA;EACA,WAAA;EACA,OAAA;IAAoB,KAAA,EAAO,QAAA,CAAS,CAAA;IAAI,KAAA;EAAA;AAAA;AAAA,cAG7B,gBAAA,WAA2B,cAAA;;;;;;;AnBnLxC;;;;iBoBXgB,qBAAA,CAAsB,IAAA;EACpC,GAAA;EACA,IAAA;EACA,MAAA;AAAA,IACO,eAAA;;ApB8CT;;;;;AAoCA;;;;;AAeA;iBoBjFsB,qBAAA,CAAsB,IAAA;EAC1C,GAAA;EACA,IAAA;EACA,MAAA;EACA,MAAA,GAAS,WAAA;AAAA,IACF,OAAA,CAAQ,WAAA;;;;ApB2GjB;;;;;AAcA;;;;;AAgBA;iBoBtHgB,iBAAA,CAAkB,IAAA;EAChC,IAAA,EAAM,eAAA;EACN,OAAA;AAAA,IACE,YAAA;;;;iBC4BY,yBAAA,CAA0B,MAAA,EAAQ,WAAA,KAAgB,WAAA;;iBAalD,iCAAA,CAAkC,MAAA,EAAQ,WAAA,IAAe,KAAA,EAAO,KAAA,GAAQ,WAAA;;;;;ArBpFxF;;;;;AAOA;;;iBqB6GgB,eAAA,CAAgB,KAAA,EAAO,SAAA;AAAA,UAetB,YAAA;ErB1Gf;EqB4GA,OAAA;ErBxGA;EqB0GA,KAAA;ErB1GQ;AAiBV;;;;;EqBgGE,MAAA;AAAA;AAAA,UAGe,YAAA;ErB/DgB;EqBiE/B,gBAAA,GAAmB,IAAA,2BAA+B,KAAA,UAAe,MAAA,GAAS,YAAA;ErBlD/D;EqBoDX,eAAA,GAAkB,GAAA,EAAK,WAAA;;EAEvB,cAAA,GAAiB,MAAA,GAAS,MAAA,EAAQ,WAAA,OAAkB,WAAA;ErBtDhB;EqBwDpC,KAAA;ErBxCiC;EqB0CjC,KAAA;AAAA;AAAA,iBAGc,eAAA,CAAgB,SAAA,EAAW,QAAA,CAAS,cAAA,CAAe,WAAA,OAAkB,YAAA;;;iBCtKrE,aAAA,CAAA;EAAgB,KAAA;EAAO;AAAA;EAAc,KAAA,EAAO,KAAA;EAAO,QAAA,EAAU,SAAA;AAAA,IAAW,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAIxE,QAAA,CAAA,GAAY,KAAA;;iBAKZ,SAAA,CAAA,GAAa,WAAA;;iBAKb,cAAA,CAAA,GAAkB,WAAA;AtBNlC;AAAA,iBsBWgB,WAAA,CAAA,GAAe,aAAA;;iBAKf,eAAA,CAAA,GAAmB,YAAA;;;cC2PtB,gBAAA,EAAgB,KAAA;AAAA,cAChB,oBAAA,EAAoB,KAAA;AAAA,cACpB,iBAAA,EAAiB,KAAA;AAAA,cAIjB,gBAAA,EAAgB,KAAA;;;cC3QhB,eAAA,EAAiB,KAAA;;;;;AxBC9B;;;;;;;;;;AAuCA;;;;;iByB1CgB,eAAA,CAAgB,KAAA,WAAgB,WAAA,IAAe,MAAA,WAAiB,WAAA;;;;;AzB6FhF;;;;;AAgBA;;;;;AAeA;;;iByBnGgB,gBAAA,CAAiB,KAAA,WAAgB,WAAA,IAAe,MAAA,WAAiB,WAAA;;AzBiHjF;;;;;AAgBA;;iByBzEgB,UAAA,CAAW,IAAA,EAAM,WAAA;;;AzB+FjC;;;iByBhEgB,cAAA,CACd,OAAA,qBACA,MAAA;EACG,MAAA;EAAgB,KAAA;AAAA"}
|
package/dist/chat.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
export { BUILD_AGENT, BUILTIN_AGENTS, BUILTIN_PROVIDERS, BUILTIN_THEMES, CATPPUCCIN_FRAPPE, CATPPUCCIN_LATTE, CATPPUCCIN_MACCHIATO, CATPPUCCIN_MOCHA, ConfigProvider, DEFAULT_AGENT_ID, DEFAULT_SETTINGS, DEFAULT_THEME, FILES_TRIGGER, IMPLICITLY_SAFE_TOOLS, PLAN_AGENT, SETTINGS_CHOICES, SETTINGS_TOGGLES, SKILLS_TRIGGER, SafeModeProvider, SettingsProvider, ThemeProvider, VAPORWAVE_THEME, addToSafelist, ageString, anthropicDescriptor, applyApiKeyEnv, applyInsert, buildMcpServers, buildModelCatalog, buildSkillsConfig, cerebrasDescriptor, cleanTitle, collectReferences, countNeighbors, createFilesCompletionProvider, createSkillsCompletionProvider, createStateStore, credKeyOf, credentialsPath, defaultMcpsConfigPaths, defaultSkillScanPaths, deleteTurnSafely, deriveSessionTitle, detectAuth, discoverProjectMcps, discoverProjectSkills, eventsFromTurns, filterModelCatalog, finalizeStreamingMarkdown, finalizeStreamingMarkdownForOwner, findActiveTrigger, fmtTokens, generateSessionTitle, getContextWindow, getModelInfo, getSafelist, indexOfEntry, isOnSafelist, lastContextSizeFromTurns, listProjectFiles, listSessionMeta, loadState, matchesSafelistEntry, mergeReferences, modelSupportsReasoning, modelsForDescriptor, openaiDescriptor, openrouterDescriptor, parseMcpsFile, piIdOf, projectsFilePath, readCredentials, readProjects, readProviderCredential, removeProviderCredential, renderSession, resolveAgentId, resolveChipColor, resolveConfig, resolveSessionExportTarget, resolveTheme, runOAuthLogin, saveState, selectableTurnIds, setProviderCredential, shortId, singleAgentRegistry, splitPromptSegments, stripSpawnTokensLine, suggestSafelistEntry, supportsOAuth, titleFromTurns, toolCallPreview, toolResultText, truncateTurnsAt, turnAsText, turnContextSize, uniqueFilesFromReferences, uniqueSkillNamesFromReferences, useColors, useCompletion, useConfig, useEnabledToggleSet, useSafeModeActions, useSafeModeQueue, useSelectStyle, useSettings, useStreamBuffer, useSurfaces, useSyntaxStyles, useTheme, writeCredentials, writeProjects, writeSessionExport };
|
|
1
|
+
import { $ as getMcpAuthStatus, $n as BUILD_AGENT, $t as toolResultText, A as isOnSafelist, An as tryOpenBrowser, At as VAPORWAVE_THEME, B as filterModelCatalog, Bn as BUILTIN_PROVIDERS, Bt as eventsFromTurns, C as writeSessionExport, Cn as createFilesCompletionProvider, Ct as SettingsProvider, D as IMPLICITLY_SAFE_TOOLS, Dn as findActiveTrigger, Dt as DEFAULT_THEME, E as useSafeModeQueue, En as collectReferences, Et as BUILTIN_THEMES, F as writeProjects, Fn as readCredentials, Ft as ConfigProvider, G as parseMcpsFile, Gn as effectiveContextWindow, Gt as listSessionMeta, H as buildMcpServers, Hn as anthropicDescriptor, Ht as isTurnHighlighted, I as splitPromptSegments, In as readProviderCredential, It as useConfig, J as mcpCredentialsPath, Jn as modelSupportsReasoning, Jt as saveState, K as projectUserPaths, Kn as getContextWindow, Kt as loadState, L as runOAuthLogin, Ln as removeProviderCredential, Lt as resolveConfig, M as projectsFilePath, Mn as detectAuth, Mt as CATPPUCCIN_LATTE, N as readProjects, Nn as applyApiKeyEnv, Nt as CATPPUCCIN_MACCHIATO, O as addToSafelist, On as mergeReferences, Ot as resolveChipColor, P as suggestSafelistEntry, Pn as credentialsPath, Pt as CATPPUCCIN_MOCHA, Q as useMcpAuthState, Qn as piIdOf, Qt as toolCallPreview, R as supportsOAuth, Rn as setProviderCredential, Rt as createStateStore, S as resolveSessionExportTarget, Sn as FILES_TRIGGER, St as SETTINGS_TOGGLES, T as useSafeModeActions, Tn as applyInsert, Tt as useSettings, U as defaultMcpsConfigPaths, Un as cerebrasDescriptor, Ut as isVisible, V as indexOfEntry, Vn as OUTPUT_RESERVE_TOKENS, Vt as isEditErrorResult, W as discoverProjectMcps, Wn as credKeyOf, Wt as lastContextSizeFromTurns, X as McpAuthProvider, Xn as openaiDescriptor, Xt as stripSpawnTokensLine, Y as patchMcpCredential, Yn as modelsForDescriptor, Yt as selectableTurnIds, Z as useMcpAuthDispatch, Zn as openrouterDescriptor, Zt as titleFromTurns, _ as useStreamBuffer, _n as readKeybindings, _r as envSection, _t as shortId, a as TOOL_DISPLAY, an as filetypeFromPath, ar as resolveAgentId, at as createInteractionTools, b as discoverProjectSkills, bn as createSkillsCompletionProvider, bt as DEFAULT_SETTINGS, c as ThemeProvider, cn as findGitRoot, cr as COMMUNICATION_DOCTRINE, ct as pendingInteractionsFromTurns, d as useSurfaces, dn as KEYBINDING_DEF_BY_ACTION, dr as INTERACTION_GUIDANCE, dt as useInteractionsQueue, en as turnSelectionOwnership, er as BUILTIN_AGENTS, et as reduceMcpAuth, f as useSyntaxStyles, fn as ensureKeybindingsFile, fr as PLAN_MODE_DOCTRINE, ft as cleanTitle, g as turnContextSize, gn as parseBindingSpec, gr as buildPlanSystem, gt as fmtTokens, h as finalizeStreamingMarkdownForOwner, hn as mergeKeybindings, hr as buildBuildSystem, ht as compactPath, i as turnAsText, in as extractEditPayload, ir as accentColor, it as buildResumedToolResultsTurn, j as matchesSafelistEntry, jn as shouldAutoCompact, jt as CATPPUCCIN_FRAPPE, k as getSafelist, kn as useCompletion, kt as resolveTheme, l as useColors, ln as DEFAULT_KEYBINDINGS, lr as DOING_TASKS_DOCTRINE, lt as serializeInteractionResponse, m as finalizeStreamingMarkdown, mn as matchesBinding, mr as TOKEN_DISCIPLINE_DOCTRINE, mt as ageString, n as deleteTurnSafely, nn as computeInlineDiff, nr as DEFAULT_PERSIST_EXCLUDE_TOOLS, nt as InteractionsProvider, o as displayNameFor, on as splitLines, or as singleAgentRegistry, ot as isInteractionTool, p as useTheme, pn as keybindingsPath, pr as SUBAGENT_GUIDANCE, pt as generateSessionTitle, q as createFileMcpCredentialStore, qn as getModelInfo, qt as marginTopFor, r as truncateTurnsAt, rn as computeLineDiff, rr as PLAN_AGENT, rt as PRESENT_PLAN_TOOL, s as formatToolCall, sn as tokenize, sr as ACTIONS_WITH_CARE_DOCTRINE, st as makeRequestInteraction, t as countNeighbors, tn as buildUnifiedDiff, tr as DEFAULT_AGENT_ID, tt as ASK_USER_TOOL, u as useSelectStyle, un as KEYBINDING_DEFS, ur as IDENTITY_PREFIX, ut as useInteractionsActions, v as buildSkillsConfig, vn as stripJsonComments, vt as listProjectFiles, w as SafeModeProvider, wn as uniqueFilesFromReferences, x as renderSession, xn as uniqueSkillNamesFromReferences, xt as SETTINGS_CHOICES, y as defaultSkillScanPaths, yn as SKILLS_TRIGGER, yt as useEnabledToggleSet, z as buildModelCatalog, zn as writeCredentials, zt as deriveSessionTitle } from "./turn-operations-lsUMITng.js";
|
|
2
|
+
export { ACTIONS_WITH_CARE_DOCTRINE, ASK_USER_TOOL, BUILD_AGENT, BUILTIN_AGENTS, BUILTIN_PROVIDERS, BUILTIN_THEMES, CATPPUCCIN_FRAPPE, CATPPUCCIN_LATTE, CATPPUCCIN_MACCHIATO, CATPPUCCIN_MOCHA, COMMUNICATION_DOCTRINE, ConfigProvider, DEFAULT_AGENT_ID, DEFAULT_KEYBINDINGS, DEFAULT_PERSIST_EXCLUDE_TOOLS, DEFAULT_SETTINGS, DEFAULT_THEME, DOING_TASKS_DOCTRINE, FILES_TRIGGER, IDENTITY_PREFIX, IMPLICITLY_SAFE_TOOLS, INTERACTION_GUIDANCE, InteractionsProvider, KEYBINDING_DEFS, KEYBINDING_DEF_BY_ACTION, McpAuthProvider, OUTPUT_RESERVE_TOKENS, PLAN_AGENT, PLAN_MODE_DOCTRINE, PRESENT_PLAN_TOOL, SETTINGS_CHOICES, SETTINGS_TOGGLES, SKILLS_TRIGGER, SUBAGENT_GUIDANCE, SafeModeProvider, SettingsProvider, TOKEN_DISCIPLINE_DOCTRINE, TOOL_DISPLAY, ThemeProvider, VAPORWAVE_THEME, accentColor, addToSafelist, ageString, anthropicDescriptor, applyApiKeyEnv, applyInsert, buildBuildSystem, buildMcpServers, buildModelCatalog, buildPlanSystem, buildResumedToolResultsTurn, buildSkillsConfig, buildUnifiedDiff, cerebrasDescriptor, cleanTitle, collectReferences, compactPath, computeInlineDiff, computeLineDiff, countNeighbors, createFileMcpCredentialStore, createFilesCompletionProvider, createInteractionTools, createSkillsCompletionProvider, createStateStore, credKeyOf, credentialsPath, defaultMcpsConfigPaths, defaultSkillScanPaths, deleteTurnSafely, deriveSessionTitle, detectAuth, discoverProjectMcps, discoverProjectSkills, displayNameFor, effectiveContextWindow, ensureKeybindingsFile, envSection, eventsFromTurns, extractEditPayload, filetypeFromPath, filterModelCatalog, finalizeStreamingMarkdown, finalizeStreamingMarkdownForOwner, findActiveTrigger, findGitRoot, fmtTokens, formatToolCall, generateSessionTitle, getContextWindow, getMcpAuthStatus, getModelInfo, getSafelist, indexOfEntry, isEditErrorResult, isInteractionTool, isOnSafelist, isTurnHighlighted, isVisible, keybindingsPath, lastContextSizeFromTurns, listProjectFiles, listSessionMeta, loadState, makeRequestInteraction, marginTopFor, matchesBinding, matchesSafelistEntry, mcpCredentialsPath, mergeKeybindings, mergeReferences, modelSupportsReasoning, modelsForDescriptor, openaiDescriptor, openrouterDescriptor, parseBindingSpec, parseMcpsFile, patchMcpCredential, pendingInteractionsFromTurns, piIdOf, projectUserPaths, projectsFilePath, readCredentials, readKeybindings, readProjects, readProviderCredential, reduceMcpAuth, removeProviderCredential, renderSession, resolveAgentId, resolveChipColor, resolveConfig, resolveSessionExportTarget, resolveTheme, runOAuthLogin, saveState, selectableTurnIds, serializeInteractionResponse, setProviderCredential, shortId, shouldAutoCompact, singleAgentRegistry, splitLines, splitPromptSegments, stripJsonComments, stripSpawnTokensLine, suggestSafelistEntry, supportsOAuth, titleFromTurns, tokenize, toolCallPreview, toolResultText, truncateTurnsAt, tryOpenBrowser, turnAsText, turnContextSize, turnSelectionOwnership, uniqueFilesFromReferences, uniqueSkillNamesFromReferences, useColors, useCompletion, useConfig, useEnabledToggleSet, useInteractionsActions, useInteractionsQueue, useMcpAuthDispatch, useMcpAuthState, useSafeModeActions, useSafeModeQueue, useSelectStyle, useSettings, useStreamBuffer, useSurfaces, useSyntaxStyles, useTheme, writeCredentials, writeProjects, writeSessionExport };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { i as ExecutionContext, o as SpawnConfig } from "../types-OtrV6LJT.js";
|
|
2
|
+
|
|
3
|
+
//#region src/contexts/docker.d.ts
|
|
4
|
+
declare function createDockerContext(config?: SpawnConfig): ExecutionContext;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { createDockerContext };
|
|
7
|
+
//# sourceMappingURL=docker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.d.ts","names":[],"sources":["../../src/contexts/docker.ts"],"mappings":";;;iBAoBgB,mBAAA,CAAoB,MAAA,GAAS,WAAA,GAAc,gBAAA"}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import { exec } from "node:child_process";
|
|
2
|
-
import { mkdir, readFile, readdir, writeFile } from "node:fs/promises";
|
|
3
|
-
import { dirname, resolve } from "node:path";
|
|
4
|
-
import { promisify } from "node:util";
|
|
5
1
|
//#region src/contexts/docker.ts
|
|
6
2
|
const SINGLE_QUOTE_RE = /'/g;
|
|
7
3
|
function createDockerContext(config) {
|
|
@@ -194,128 +190,6 @@ function createDockerContext(config) {
|
|
|
194
190
|
return ctx;
|
|
195
191
|
}
|
|
196
192
|
//#endregion
|
|
197
|
-
|
|
198
|
-
const execAsync = promisify(exec);
|
|
199
|
-
function createProcessContext(config) {
|
|
200
|
-
let counter = 0;
|
|
201
|
-
const handles = /* @__PURE__ */ new Map();
|
|
202
|
-
const defaultCwd = config?.cwd ?? process.cwd();
|
|
203
|
-
const defaultEnv = config?.env;
|
|
204
|
-
return {
|
|
205
|
-
type: "process",
|
|
206
|
-
capabilities: {
|
|
207
|
-
shell: true,
|
|
208
|
-
filesystem: true,
|
|
209
|
-
network: true,
|
|
210
|
-
gpu: false
|
|
211
|
-
},
|
|
212
|
-
async spawn(overrides) {
|
|
213
|
-
const id = `process-${++counter}`;
|
|
214
|
-
const cwd = overrides?.cwd ?? defaultCwd;
|
|
215
|
-
await mkdir(cwd, { recursive: true });
|
|
216
|
-
const handle = {
|
|
217
|
-
id,
|
|
218
|
-
type: "process",
|
|
219
|
-
cwd
|
|
220
|
-
};
|
|
221
|
-
handles.set(id, handle);
|
|
222
|
-
return handle;
|
|
223
|
-
},
|
|
224
|
-
async exec(handle, command, options) {
|
|
225
|
-
const cwd = options?.cwd ? resolve(handle.cwd, options.cwd) : handle.cwd;
|
|
226
|
-
try {
|
|
227
|
-
const { stdout, stderr } = await execAsync(command, {
|
|
228
|
-
cwd,
|
|
229
|
-
env: {
|
|
230
|
-
...process.env,
|
|
231
|
-
...defaultEnv,
|
|
232
|
-
...options?.env
|
|
233
|
-
},
|
|
234
|
-
timeout: (options?.timeout ?? config?.limits?.timeout ?? 30) * 1e3,
|
|
235
|
-
maxBuffer: 10 * 1024 * 1024
|
|
236
|
-
});
|
|
237
|
-
return {
|
|
238
|
-
stdout,
|
|
239
|
-
stderr,
|
|
240
|
-
exitCode: 0
|
|
241
|
-
};
|
|
242
|
-
} catch (err) {
|
|
243
|
-
const e = err;
|
|
244
|
-
return {
|
|
245
|
-
stdout: typeof e.stdout === "string" ? e.stdout : "",
|
|
246
|
-
stderr: typeof e.stderr === "string" ? e.stderr : typeof e.message === "string" ? e.message : String(err),
|
|
247
|
-
exitCode: typeof e.code === "number" ? e.code : 1
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
},
|
|
251
|
-
async readFile(handle, path) {
|
|
252
|
-
return readFile(resolve(handle.cwd, path), "utf-8");
|
|
253
|
-
},
|
|
254
|
-
async readFileBinary(handle, path) {
|
|
255
|
-
const buf = await readFile(resolve(handle.cwd, path));
|
|
256
|
-
return new Uint8Array(buf);
|
|
257
|
-
},
|
|
258
|
-
async writeFile(handle, path, content) {
|
|
259
|
-
const fullPath = resolve(handle.cwd, path);
|
|
260
|
-
await mkdir(dirname(fullPath), { recursive: true });
|
|
261
|
-
await writeFile(fullPath, content, "utf-8");
|
|
262
|
-
},
|
|
263
|
-
async listFiles(handle, path) {
|
|
264
|
-
return readdir(resolve(handle.cwd, path));
|
|
265
|
-
},
|
|
266
|
-
async destroy(handle) {
|
|
267
|
-
handles.delete(handle.id);
|
|
268
|
-
}
|
|
269
|
-
};
|
|
270
|
-
}
|
|
271
|
-
//#endregion
|
|
272
|
-
//#region src/contexts/sandbox.ts
|
|
273
|
-
function createSandboxContext(provider) {
|
|
274
|
-
const sandboxes = /* @__PURE__ */ new Map();
|
|
275
|
-
function getSandboxId(handle) {
|
|
276
|
-
const id = sandboxes.get(handle.id);
|
|
277
|
-
if (!id) throw new Error(`Sandbox ${handle.id} not found`);
|
|
278
|
-
return id;
|
|
279
|
-
}
|
|
280
|
-
return {
|
|
281
|
-
type: "sandbox",
|
|
282
|
-
capabilities: {
|
|
283
|
-
shell: true,
|
|
284
|
-
filesystem: true,
|
|
285
|
-
network: true,
|
|
286
|
-
gpu: false
|
|
287
|
-
},
|
|
288
|
-
async spawn(config) {
|
|
289
|
-
const result = await provider.spawn(config ?? {});
|
|
290
|
-
const handle = {
|
|
291
|
-
id: result.id,
|
|
292
|
-
type: "sandbox",
|
|
293
|
-
cwd: result.cwd
|
|
294
|
-
};
|
|
295
|
-
sandboxes.set(handle.id, result.id);
|
|
296
|
-
return handle;
|
|
297
|
-
},
|
|
298
|
-
async exec(handle, command, options) {
|
|
299
|
-
return provider.exec(getSandboxId(handle), command, options);
|
|
300
|
-
},
|
|
301
|
-
async readFile(handle, path) {
|
|
302
|
-
return provider.readFile(getSandboxId(handle), path);
|
|
303
|
-
},
|
|
304
|
-
async writeFile(handle, path, content) {
|
|
305
|
-
return provider.writeFile(getSandboxId(handle), path, content);
|
|
306
|
-
},
|
|
307
|
-
async listFiles(handle, path) {
|
|
308
|
-
return provider.listFiles(getSandboxId(handle), path);
|
|
309
|
-
},
|
|
310
|
-
async destroy(handle) {
|
|
311
|
-
const id = sandboxes.get(handle.id);
|
|
312
|
-
if (!id) return;
|
|
313
|
-
await provider.destroy(id);
|
|
314
|
-
sandboxes.delete(handle.id);
|
|
315
|
-
}
|
|
316
|
-
};
|
|
317
|
-
}
|
|
318
|
-
//#endregion
|
|
319
|
-
export { createProcessContext as n, createDockerContext as r, createSandboxContext as t };
|
|
193
|
+
export { createDockerContext };
|
|
320
194
|
|
|
321
|
-
//# sourceMappingURL=
|
|
195
|
+
//# sourceMappingURL=docker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.js","names":[],"sources":["../../src/contexts/docker.ts"],"sourcesContent":["/**\n * Docker execution context.\n *\n * Runs tools inside a Docker container via dockerode.\n * Full isolation with configurable resource limits.\n *\n * Requires `dockerode` as an optional peer dependency.\n */\n\nimport type { Buffer } from 'node:buffer'\nimport type { ContextCapabilities, ExecResult, ExecutionContext, ExecutionHandle, SpawnConfig } from './types'\n\nconst SINGLE_QUOTE_RE = /'/g\n\ninterface ContainerRef {\n handle: ExecutionHandle\n container: any\n docker: any\n}\n\nexport function createDockerContext(config?: SpawnConfig): ExecutionContext {\n let counter = 0\n const containers = new Map<string, ContainerRef>()\n const defaultImage = config?.image ?? 'oven/bun:latest'\n const defaultCwd = config?.cwd ?? '/workspace'\n const defaultEnv = config?.env\n const defaultLimits = config?.limits\n\n async function getDockerode() {\n try {\n const Dockerode = (await import('dockerode')).default\n return new Dockerode()\n }\n catch {\n throw new Error('dockerode is required for Docker execution context. Install it with: bun add dockerode')\n }\n }\n\n const ctx: ExecutionContext = {\n type: 'docker',\n\n capabilities: {\n shell: true,\n filesystem: true,\n network: true,\n gpu: false,\n } satisfies ContextCapabilities,\n\n async spawn(overrides?: SpawnConfig): Promise<ExecutionHandle> {\n const docker = await getDockerode()\n const id = `docker-${++counter}`\n const image = overrides?.image ?? defaultImage\n const cwd = overrides?.cwd ?? defaultCwd\n\n // Pull image if not available\n try {\n await docker.getImage(image).inspect()\n }\n catch {\n await new Promise<void>((resolve, reject) => {\n docker.pull(image, (err: Error | null, stream: NodeJS.ReadableStream) => {\n if (err)\n return reject(err)\n docker.modem.followProgress(stream, (err2: Error | null) => {\n err2 ? reject(err2) : resolve()\n })\n })\n })\n }\n\n const limits = { ...defaultLimits, ...overrides?.limits }\n const hostConfig: Record<string, unknown> = {}\n\n if (limits?.memory) {\n hostConfig.Memory = limits.memory * 1024 * 1024\n }\n if (limits?.cpu) {\n hostConfig.NanoCpus = Number.parseFloat(limits.cpu) * 1e9\n }\n\n const env = { ...defaultEnv, ...overrides?.env }\n\n const container = await docker.createContainer({\n Image: image,\n Cmd: ['sleep', 'infinity'],\n WorkingDir: cwd,\n Env: Object.entries(env).map(([k, v]) => `${k}=${v}`),\n HostConfig: hostConfig,\n })\n\n await container.start()\n\n const handle: ExecutionHandle = { id, type: 'docker', cwd }\n containers.set(id, { handle, container, docker })\n return handle\n },\n\n async exec(handle: ExecutionHandle, command: string, options?: { cwd?: string, env?: Record<string, string>, timeout?: number }): Promise<ExecResult> {\n const ref = containers.get(handle.id)\n if (!ref)\n throw new Error(`Container ${handle.id} not found`)\n\n const execCwd = options?.cwd ?? handle.cwd\n const env = options?.env\n ? Object.entries(options.env).map(([k, v]) => `${k}=${v}`)\n : []\n\n const exec = await ref.container.exec({\n Cmd: ['sh', '-c', command],\n WorkingDir: execCwd,\n Env: env,\n AttachStdout: true,\n AttachStderr: true,\n })\n\n const stream = await exec.start({ Detach: false })\n\n return new Promise<ExecResult>((resolve) => {\n let stdout = ''\n let stderr = ''\n let resolved = false\n\n // Docker's exec stream is a multiplexed protocol — a single byte\n // stream that interleaves stdout/stderr frames. `demuxStream`\n // splits the two onto separate writable sinks. Without it, every\n // byte landed on `stdout` and `stderr` was permanently empty.\n const stdoutSink = {\n write(chunk: Buffer | string) {\n stdout += typeof chunk === 'string' ? chunk : chunk.toString('utf-8')\n return true\n },\n end() {},\n on() {},\n once() {},\n emit() { return true },\n }\n const stderrSink = {\n write(chunk: Buffer | string) {\n stderr += typeof chunk === 'string' ? chunk : chunk.toString('utf-8')\n return true\n },\n end() {},\n on() {},\n once() {},\n emit() { return true },\n }\n try {\n ref.docker.modem.demuxStream(stream, stdoutSink, stderrSink)\n }\n catch {\n // Older / different transports may not be multiplexed (TTY mode);\n // fall back to a raw stdout reader so we don't lose output entirely.\n stream.on('data', (chunk: Buffer) => {\n stdout += chunk.toString('utf-8')\n })\n }\n\n const timeout = options?.timeout ?? defaultLimits?.timeout ?? 30\n const timer = setTimeout(() => {\n if (resolved)\n return\n resolved = true\n // Best-effort: detach the stream so we stop accumulating bytes\n // from a runaway exec. The exec itself can't be killed cleanly\n // through the dockerode exec API; the container's destroy() path\n // (or a manual `docker exec kill`) is the real cleanup.\n try { stream.destroy?.() }\n catch { /* swallow */ }\n resolve({ stdout, stderr: stderr ? `${stderr}\\n[timeout]` : '[timeout]', exitCode: 124 })\n }, timeout * 1000)\n\n stream.on('end', async () => {\n if (resolved)\n return\n resolved = true\n clearTimeout(timer)\n let exitCode = 0\n try {\n const inspect = await exec.inspect()\n exitCode = inspect.ExitCode ?? 0\n }\n catch {\n // If inspect fails after a clean stream end, treat as success\n // — we already received the full output stream.\n }\n resolve({ stdout, stderr, exitCode })\n })\n\n stream.on('error', (err: Error) => {\n if (resolved)\n return\n resolved = true\n clearTimeout(timer)\n resolve({ stdout, stderr: stderr ? `${stderr}\\n${err.message}` : err.message, exitCode: 1 })\n })\n })\n },\n\n async readFile(handle: ExecutionHandle, path: string): Promise<string> {\n const result = await ctx.exec(handle, `cat ${JSON.stringify(path)}`)\n if (result.exitCode !== 0)\n throw new Error(`Failed to read file: ${result.stderr}`)\n return result.stdout\n },\n\n async writeFile(handle: ExecutionHandle, path: string, content: string): Promise<void> {\n const escaped = content.replace(SINGLE_QUOTE_RE, String.raw`'\\''`)\n const result = await ctx.exec(handle, `mkdir -p \"$(dirname ${JSON.stringify(path)})\" && printf '%s' '${escaped}' > ${JSON.stringify(path)}`)\n if (result.exitCode !== 0)\n throw new Error(`Failed to write file: ${result.stderr}`)\n },\n\n async listFiles(handle: ExecutionHandle, path: string): Promise<string[]> {\n const result = await ctx.exec(handle, `ls -1 ${JSON.stringify(path)}`)\n if (result.exitCode !== 0)\n return []\n return result.stdout.trim().split('\\n').filter(Boolean)\n },\n\n async destroy(handle: ExecutionHandle): Promise<void> {\n const ref = containers.get(handle.id)\n if (!ref)\n return\n\n try {\n await ref.container.stop({ t: 5 })\n await ref.container.remove({ force: true })\n }\n catch {\n // Container may already be stopped\n }\n\n containers.delete(handle.id)\n },\n }\n\n return ctx\n}\n"],"mappings":";AAYA,MAAM,kBAAkB;AAQxB,SAAgB,oBAAoB,QAAwC;CAC1E,IAAI,UAAU;CACd,MAAM,6BAAa,IAAI,KAA2B;CAClD,MAAM,eAAe,QAAQ,SAAS;CACtC,MAAM,aAAa,QAAQ,OAAO;CAClC,MAAM,aAAa,QAAQ;CAC3B,MAAM,gBAAgB,QAAQ;CAE9B,eAAe,eAAe;EAC5B,IAAI;GACF,MAAM,aAAa,MAAM,OAAO,cAAc;GAC9C,OAAO,IAAI,WAAW;UAElB;GACJ,MAAM,IAAI,MAAM,yFAAyF;;;CAI7G,MAAM,MAAwB;EAC5B,MAAM;EAEN,cAAc;GACZ,OAAO;GACP,YAAY;GACZ,SAAS;GACT,KAAK;GACN;EAED,MAAM,MAAM,WAAmD;GAC7D,MAAM,SAAS,MAAM,cAAc;GACnC,MAAM,KAAK,UAAU,EAAE;GACvB,MAAM,QAAQ,WAAW,SAAS;GAClC,MAAM,MAAM,WAAW,OAAO;GAG9B,IAAI;IACF,MAAM,OAAO,SAAS,MAAM,CAAC,SAAS;WAElC;IACJ,MAAM,IAAI,SAAe,SAAS,WAAW;KAC3C,OAAO,KAAK,QAAQ,KAAmB,WAAkC;MACvE,IAAI,KACF,OAAO,OAAO,IAAI;MACpB,OAAO,MAAM,eAAe,SAAS,SAAuB;OAC1D,OAAO,OAAO,KAAK,GAAG,SAAS;QAC/B;OACF;MACF;;GAGJ,MAAM,SAAS;IAAE,GAAG;IAAe,GAAG,WAAW;IAAQ;GACzD,MAAM,aAAsC,EAAE;GAE9C,IAAI,QAAQ,QACV,WAAW,SAAS,OAAO,SAAS,OAAO;GAE7C,IAAI,QAAQ,KACV,WAAW,WAAW,OAAO,WAAW,OAAO,IAAI,GAAG;GAGxD,MAAM,MAAM;IAAE,GAAG;IAAY,GAAG,WAAW;IAAK;GAEhD,MAAM,YAAY,MAAM,OAAO,gBAAgB;IAC7C,OAAO;IACP,KAAK,CAAC,SAAS,WAAW;IAC1B,YAAY;IACZ,KAAK,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,EAAE,GAAG,IAAI;IACrD,YAAY;IACb,CAAC;GAEF,MAAM,UAAU,OAAO;GAEvB,MAAM,SAA0B;IAAE;IAAI,MAAM;IAAU;IAAK;GAC3D,WAAW,IAAI,IAAI;IAAE;IAAQ;IAAW;IAAQ,CAAC;GACjD,OAAO;;EAGT,MAAM,KAAK,QAAyB,SAAiB,SAAiG;GACpJ,MAAM,MAAM,WAAW,IAAI,OAAO,GAAG;GACrC,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,aAAa,OAAO,GAAG,YAAY;GAErD,MAAM,UAAU,SAAS,OAAO,OAAO;GACvC,MAAM,MAAM,SAAS,MACjB,OAAO,QAAQ,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,EAAE,GAAG,IAAI,GACxD,EAAE;GAEN,MAAM,OAAO,MAAM,IAAI,UAAU,KAAK;IACpC,KAAK;KAAC;KAAM;KAAM;KAAQ;IAC1B,YAAY;IACZ,KAAK;IACL,cAAc;IACd,cAAc;IACf,CAAC;GAEF,MAAM,SAAS,MAAM,KAAK,MAAM,EAAE,QAAQ,OAAO,CAAC;GAElD,OAAO,IAAI,SAAqB,YAAY;IAC1C,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,WAAW;IAMf,MAAM,aAAa;KACjB,MAAM,OAAwB;MAC5B,UAAU,OAAO,UAAU,WAAW,QAAQ,MAAM,SAAS,QAAQ;MACrE,OAAO;;KAET,MAAM;KACN,KAAK;KACL,OAAO;KACP,OAAO;MAAE,OAAO;;KACjB;IACD,MAAM,aAAa;KACjB,MAAM,OAAwB;MAC5B,UAAU,OAAO,UAAU,WAAW,QAAQ,MAAM,SAAS,QAAQ;MACrE,OAAO;;KAET,MAAM;KACN,KAAK;KACL,OAAO;KACP,OAAO;MAAE,OAAO;;KACjB;IACD,IAAI;KACF,IAAI,OAAO,MAAM,YAAY,QAAQ,YAAY,WAAW;YAExD;KAGJ,OAAO,GAAG,SAAS,UAAkB;MACnC,UAAU,MAAM,SAAS,QAAQ;OACjC;;IAGJ,MAAM,UAAU,SAAS,WAAW,eAAe,WAAW;IAC9D,MAAM,QAAQ,iBAAiB;KAC7B,IAAI,UACF;KACF,WAAW;KAKX,IAAI;MAAE,OAAO,WAAW;aAClB;KACN,QAAQ;MAAE;MAAQ,QAAQ,SAAS,GAAG,OAAO,eAAe;MAAa,UAAU;MAAK,CAAC;OACxF,UAAU,IAAK;IAElB,OAAO,GAAG,OAAO,YAAY;KAC3B,IAAI,UACF;KACF,WAAW;KACX,aAAa,MAAM;KACnB,IAAI,WAAW;KACf,IAAI;MAEF,YAAW,MADW,KAAK,SAAS,EACjB,YAAY;aAE3B;KAIN,QAAQ;MAAE;MAAQ;MAAQ;MAAU,CAAC;MACrC;IAEF,OAAO,GAAG,UAAU,QAAe;KACjC,IAAI,UACF;KACF,WAAW;KACX,aAAa,MAAM;KACnB,QAAQ;MAAE;MAAQ,QAAQ,SAAS,GAAG,OAAO,IAAI,IAAI,YAAY,IAAI;MAAS,UAAU;MAAG,CAAC;MAC5F;KACF;;EAGJ,MAAM,SAAS,QAAyB,MAA+B;GACrE,MAAM,SAAS,MAAM,IAAI,KAAK,QAAQ,OAAO,KAAK,UAAU,KAAK,GAAG;GACpE,IAAI,OAAO,aAAa,GACtB,MAAM,IAAI,MAAM,wBAAwB,OAAO,SAAS;GAC1D,OAAO,OAAO;;EAGhB,MAAM,UAAU,QAAyB,MAAc,SAAgC;GACrF,MAAM,UAAU,QAAQ,QAAQ,iBAAiB,OAAO,GAAG,OAAO;GAClE,MAAM,SAAS,MAAM,IAAI,KAAK,QAAQ,uBAAuB,KAAK,UAAU,KAAK,CAAC,qBAAqB,QAAQ,MAAM,KAAK,UAAU,KAAK,GAAG;GAC5I,IAAI,OAAO,aAAa,GACtB,MAAM,IAAI,MAAM,yBAAyB,OAAO,SAAS;;EAG7D,MAAM,UAAU,QAAyB,MAAiC;GACxE,MAAM,SAAS,MAAM,IAAI,KAAK,QAAQ,SAAS,KAAK,UAAU,KAAK,GAAG;GACtE,IAAI,OAAO,aAAa,GACtB,OAAO,EAAE;GACX,OAAO,OAAO,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,OAAO,QAAQ;;EAGzD,MAAM,QAAQ,QAAwC;GACpD,MAAM,MAAM,WAAW,IAAI,OAAO,GAAG;GACrC,IAAI,CAAC,KACH;GAEF,IAAI;IACF,MAAM,IAAI,UAAU,KAAK,EAAE,GAAG,GAAG,CAAC;IAClC,MAAM,IAAI,UAAU,OAAO,EAAE,OAAO,MAAM,CAAC;WAEvC;GAIN,WAAW,OAAO,OAAO,GAAG;;EAE/B;CAED,OAAO"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { exec } from "node:child_process";
|
|
2
|
+
import { mkdir, readFile, readdir, writeFile } from "node:fs/promises";
|
|
3
|
+
import { dirname, resolve } from "node:path";
|
|
4
|
+
import { promisify } from "node:util";
|
|
5
|
+
//#region src/contexts/process.ts
|
|
6
|
+
const execAsync = promisify(exec);
|
|
7
|
+
function createProcessContext(config) {
|
|
8
|
+
let counter = 0;
|
|
9
|
+
const handles = /* @__PURE__ */ new Map();
|
|
10
|
+
const defaultCwd = config?.cwd ?? process.cwd();
|
|
11
|
+
const defaultEnv = config?.env;
|
|
12
|
+
return {
|
|
13
|
+
type: "process",
|
|
14
|
+
capabilities: {
|
|
15
|
+
shell: true,
|
|
16
|
+
filesystem: true,
|
|
17
|
+
network: true,
|
|
18
|
+
gpu: false
|
|
19
|
+
},
|
|
20
|
+
async spawn(overrides) {
|
|
21
|
+
const id = `process-${++counter}`;
|
|
22
|
+
const cwd = overrides?.cwd ?? defaultCwd;
|
|
23
|
+
await mkdir(cwd, { recursive: true });
|
|
24
|
+
const handle = {
|
|
25
|
+
id,
|
|
26
|
+
type: "process",
|
|
27
|
+
cwd
|
|
28
|
+
};
|
|
29
|
+
handles.set(id, handle);
|
|
30
|
+
return handle;
|
|
31
|
+
},
|
|
32
|
+
async exec(handle, command, options) {
|
|
33
|
+
const cwd = options?.cwd ? resolve(handle.cwd, options.cwd) : handle.cwd;
|
|
34
|
+
try {
|
|
35
|
+
const { stdout, stderr } = await execAsync(command, {
|
|
36
|
+
cwd,
|
|
37
|
+
env: {
|
|
38
|
+
...process.env,
|
|
39
|
+
...defaultEnv,
|
|
40
|
+
...options?.env
|
|
41
|
+
},
|
|
42
|
+
timeout: (options?.timeout ?? config?.limits?.timeout ?? 30) * 1e3,
|
|
43
|
+
maxBuffer: 10 * 1024 * 1024
|
|
44
|
+
});
|
|
45
|
+
return {
|
|
46
|
+
stdout,
|
|
47
|
+
stderr,
|
|
48
|
+
exitCode: 0
|
|
49
|
+
};
|
|
50
|
+
} catch (err) {
|
|
51
|
+
const e = err;
|
|
52
|
+
return {
|
|
53
|
+
stdout: typeof e.stdout === "string" ? e.stdout : "",
|
|
54
|
+
stderr: typeof e.stderr === "string" ? e.stderr : typeof e.message === "string" ? e.message : String(err),
|
|
55
|
+
exitCode: typeof e.code === "number" ? e.code : 1
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
async readFile(handle, path) {
|
|
60
|
+
return readFile(resolve(handle.cwd, path), "utf-8");
|
|
61
|
+
},
|
|
62
|
+
async readFileBinary(handle, path) {
|
|
63
|
+
const buf = await readFile(resolve(handle.cwd, path));
|
|
64
|
+
return new Uint8Array(buf);
|
|
65
|
+
},
|
|
66
|
+
async writeFile(handle, path, content) {
|
|
67
|
+
const fullPath = resolve(handle.cwd, path);
|
|
68
|
+
await mkdir(dirname(fullPath), { recursive: true });
|
|
69
|
+
await writeFile(fullPath, content, "utf-8");
|
|
70
|
+
},
|
|
71
|
+
async listFiles(handle, path) {
|
|
72
|
+
return readdir(resolve(handle.cwd, path));
|
|
73
|
+
},
|
|
74
|
+
async destroy(handle) {
|
|
75
|
+
handles.delete(handle.id);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//#endregion
|
|
80
|
+
//#region src/contexts/sandbox.ts
|
|
81
|
+
function createSandboxContext(provider) {
|
|
82
|
+
const sandboxes = /* @__PURE__ */ new Map();
|
|
83
|
+
function getSandboxId(handle) {
|
|
84
|
+
const id = sandboxes.get(handle.id);
|
|
85
|
+
if (!id) throw new Error(`Sandbox ${handle.id} not found`);
|
|
86
|
+
return id;
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
type: "sandbox",
|
|
90
|
+
capabilities: {
|
|
91
|
+
shell: true,
|
|
92
|
+
filesystem: true,
|
|
93
|
+
network: true,
|
|
94
|
+
gpu: false
|
|
95
|
+
},
|
|
96
|
+
async spawn(config) {
|
|
97
|
+
const result = await provider.spawn(config ?? {});
|
|
98
|
+
const handle = {
|
|
99
|
+
id: result.id,
|
|
100
|
+
type: "sandbox",
|
|
101
|
+
cwd: result.cwd
|
|
102
|
+
};
|
|
103
|
+
sandboxes.set(handle.id, result.id);
|
|
104
|
+
return handle;
|
|
105
|
+
},
|
|
106
|
+
async exec(handle, command, options) {
|
|
107
|
+
return provider.exec(getSandboxId(handle), command, options);
|
|
108
|
+
},
|
|
109
|
+
async readFile(handle, path) {
|
|
110
|
+
return provider.readFile(getSandboxId(handle), path);
|
|
111
|
+
},
|
|
112
|
+
async writeFile(handle, path, content) {
|
|
113
|
+
return provider.writeFile(getSandboxId(handle), path, content);
|
|
114
|
+
},
|
|
115
|
+
async listFiles(handle, path) {
|
|
116
|
+
return provider.listFiles(getSandboxId(handle), path);
|
|
117
|
+
},
|
|
118
|
+
async destroy(handle) {
|
|
119
|
+
const id = sandboxes.get(handle.id);
|
|
120
|
+
if (!id) return;
|
|
121
|
+
await provider.destroy(id);
|
|
122
|
+
sandboxes.delete(handle.id);
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
//#endregion
|
|
127
|
+
export { createProcessContext as n, createSandboxContext as t };
|
|
128
|
+
|
|
129
|
+
//# sourceMappingURL=contexts-BwiHIr2w.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contexts-BwiHIr2w.js","names":["execCb"],"sources":["../src/contexts/process.ts","../src/contexts/sandbox.ts"],"sourcesContent":["/**\n * In-process execution context.\n *\n * Runs everything in the current Node/Bun process.\n * No isolation — fastest, used as the default.\n */\n\nimport type { ContextCapabilities, ExecResult, ExecutionContext, ExecutionHandle, SpawnConfig } from './types'\nimport { exec as execCb } from 'node:child_process'\nimport { mkdir, readdir, readFile, writeFile } from 'node:fs/promises'\nimport { dirname, resolve } from 'node:path'\nimport { promisify } from 'node:util'\n\nconst execAsync = promisify(execCb)\n\nexport function createProcessContext(config?: SpawnConfig): ExecutionContext {\n let counter = 0\n const handles = new Map<string, ExecutionHandle>()\n const defaultCwd = config?.cwd ?? process.cwd()\n const defaultEnv = config?.env\n\n return {\n type: 'process',\n\n capabilities: {\n shell: true,\n filesystem: true,\n network: true,\n gpu: false,\n } satisfies ContextCapabilities,\n\n async spawn(overrides?: SpawnConfig): Promise<ExecutionHandle> {\n const id = `process-${++counter}`\n const cwd = overrides?.cwd ?? defaultCwd\n\n await mkdir(cwd, { recursive: true })\n\n const handle: ExecutionHandle = { id, type: 'process', cwd }\n handles.set(id, handle)\n return handle\n },\n\n async exec(handle: ExecutionHandle, command: string, options?: { cwd?: string, env?: Record<string, string>, timeout?: number }): Promise<ExecResult> {\n const cwd = options?.cwd ? resolve(handle.cwd, options.cwd) : handle.cwd\n\n try {\n const { stdout, stderr } = await execAsync(command, {\n cwd,\n env: { ...process.env, ...defaultEnv, ...options?.env },\n timeout: (options?.timeout ?? config?.limits?.timeout ?? 30) * 1000,\n maxBuffer: 10 * 1024 * 1024,\n })\n return { stdout, stderr, exitCode: 0 }\n }\n catch (err) {\n // node's execAsync rejects with a decorated `Error` whose extra fields\n // carry captured output and exit code — narrow defensively so a stray\n // plain-string rejection doesn't crash the tool.\n const e = err as { stdout?: unknown, stderr?: unknown, message?: unknown, code?: unknown }\n return {\n stdout: typeof e.stdout === 'string' ? e.stdout : '',\n stderr: typeof e.stderr === 'string'\n ? e.stderr\n : (typeof e.message === 'string' ? e.message : String(err)),\n exitCode: typeof e.code === 'number' ? e.code : 1,\n }\n }\n },\n\n async readFile(handle: ExecutionHandle, path: string): Promise<string> {\n return readFile(resolve(handle.cwd, path), 'utf-8')\n },\n\n async readFileBinary(handle: ExecutionHandle, path: string): Promise<Uint8Array> {\n // No encoding → returns a Buffer (which is a Uint8Array). Used by\n // read_file to ferry image / binary content into the multimodal route.\n const buf = await readFile(resolve(handle.cwd, path))\n return new Uint8Array(buf)\n },\n\n async writeFile(handle: ExecutionHandle, path: string, content: string): Promise<void> {\n const fullPath = resolve(handle.cwd, path)\n await mkdir(dirname(fullPath), { recursive: true })\n await writeFile(fullPath, content, 'utf-8')\n },\n\n async listFiles(handle: ExecutionHandle, path: string): Promise<string[]> {\n return readdir(resolve(handle.cwd, path))\n },\n\n async destroy(handle: ExecutionHandle): Promise<void> {\n handles.delete(handle.id)\n },\n }\n}\n","/**\n * Remote sandbox execution context.\n *\n * Offloads execution to a remote sandbox API (e.g. Rivet, E2B).\n * Specific providers implement the SandboxProvider interface.\n */\n\nimport type { ContextCapabilities, ExecResult, ExecutionContext, ExecutionHandle, SpawnConfig } from './types'\n\n// ---------------------------------------------------------------------------\n// Sandbox provider interface\n// ---------------------------------------------------------------------------\n\nexport interface SandboxProvider {\n name: string\n spawn: (config: SpawnConfig) => Promise<{ id: string, cwd: string }>\n exec: (sandboxId: string, command: string, options?: { cwd?: string, env?: Record<string, string>, timeout?: number }) => Promise<ExecResult>\n readFile: (sandboxId: string, path: string) => Promise<string>\n writeFile: (sandboxId: string, path: string, content: string) => Promise<void>\n listFiles: (sandboxId: string, path: string) => Promise<string[]>\n destroy: (sandboxId: string) => Promise<void>\n}\n\n// ---------------------------------------------------------------------------\n// Sandbox execution context\n// ---------------------------------------------------------------------------\n\nexport function createSandboxContext(provider: SandboxProvider): ExecutionContext {\n const sandboxes = new Map<string, string>()\n\n function getSandboxId(handle: ExecutionHandle): string {\n const id = sandboxes.get(handle.id)\n if (!id)\n throw new Error(`Sandbox ${handle.id} not found`)\n return id\n }\n\n return {\n type: 'sandbox',\n\n capabilities: {\n shell: true,\n filesystem: true,\n network: true,\n gpu: false,\n } satisfies ContextCapabilities,\n\n async spawn(config?: SpawnConfig): Promise<ExecutionHandle> {\n const result = await provider.spawn(config ?? {})\n const handle: ExecutionHandle = { id: result.id, type: 'sandbox', cwd: result.cwd }\n sandboxes.set(handle.id, result.id)\n return handle\n },\n\n async exec(handle: ExecutionHandle, command: string, options?): Promise<ExecResult> {\n return provider.exec(getSandboxId(handle), command, options)\n },\n\n async readFile(handle: ExecutionHandle, path: string): Promise<string> {\n return provider.readFile(getSandboxId(handle), path)\n },\n\n async writeFile(handle: ExecutionHandle, path: string, content: string): Promise<void> {\n return provider.writeFile(getSandboxId(handle), path, content)\n },\n\n async listFiles(handle: ExecutionHandle, path: string): Promise<string[]> {\n return provider.listFiles(getSandboxId(handle), path)\n },\n\n async destroy(handle: ExecutionHandle): Promise<void> {\n const id = sandboxes.get(handle.id)\n if (!id)\n return\n await provider.destroy(id)\n sandboxes.delete(handle.id)\n },\n }\n}\n"],"mappings":"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"}
|
package/dist/contexts.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
|
|
1
|
+
import { a as ExecutionHandle, i as ExecutionContext, n as ContextType, o as SpawnConfig, r as ExecResult, t as ContextCapabilities } from "./types-OtrV6LJT.js";
|
|
2
|
+
import { n as createSandboxContext, r as createProcessContext, t as SandboxProvider } from "./index-DYcymRtr.js";
|
|
3
|
+
export { ContextCapabilities, ContextType, ExecResult, ExecutionContext, ExecutionHandle, SandboxProvider, SpawnConfig, createProcessContext, createSandboxContext };
|
package/dist/contexts.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as createProcessContext,
|
|
2
|
-
export {
|
|
1
|
+
import { n as createProcessContext, t as createSandboxContext } from "./contexts-BwiHIr2w.js";
|
|
2
|
+
export { createProcessContext, createSandboxContext };
|