@wular/coder 0.4.13 → 0.5.0
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 +3 -3
- package/dist/actions-CkMAM1Km.js +3 -0
- package/dist/agent-Bi5nbUhA.js +1 -0
- package/dist/app-server-BTpa5GBV.js +6 -0
- package/dist/approvals-CRwkc9vB.js +5 -0
- package/dist/apps-B6mUToTa.js +18 -0
- package/dist/args-CJsHYWbt.js +66 -0
- package/dist/async-CNhQ4wyZ.js +3 -0
- package/dist/auth-oCvlHitk.js +1 -0
- package/dist/builtin/coder/agent.json +6 -6
- package/dist/builtin/coder/system.md +4 -5
- package/dist/chat-4AiZEqKh.js +13 -0
- package/dist/{chat-bwKd3y6V.js → chat-Bfu9XKRa.js} +1 -1
- package/dist/cli.js +18 -13
- package/dist/{client-C4QCT6cG.js → client-nBo9Mhsr.js} +4 -4
- package/dist/cmd-Cu3OquA_.js +122 -0
- package/dist/config-D_RuO6gX.js +5 -0
- package/dist/connection-BXjn7gCC.js +1 -0
- package/dist/connections-Cswv7r8Z.js +2 -0
- package/dist/context-CFrDYenS.js +6 -0
- package/dist/crypto-Ittsv-m4.js +1 -0
- package/dist/dash/standalone/server/build-index.json +1 -1
- package/dist/dash/standalone/server/manifest.json +1682 -1444
- package/dist/dash/standalone/server/modules-server-server-react-server/src/agent/event-json.856d33f567e58d0e.js +30 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/client/http.e78b470f4ecf125b.js +58 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.de1f1311bab4252f.js → index.54c45900f2153d34.js} +46 -72
- package/dist/dash/standalone/server/modules-server-server-react-server/src/core/task/{log-view.ec6391dbf3063330.js → view.e20379d8f741754a.js} +38 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/core/types.5bf5a41cedb54154.js +37 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.30ed8c28774a1a82.js → load.252f972b42c690e2.js} +18 -11
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.118a70787eff1761.js → page.11efd0e175db9053.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{loading.fcdfd50c21031895.js → loading.56c14183236be231.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.98dfcd316c306258.js → notify.59ae138dc182d7c3.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.74c59322f5fe8a2c.js → page.e9386951cedea737.js} +9 -9
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{sign-out.730aa96b086ac996.js → sign-out.713d3ec10951fde5.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agent-menu.1be5795272b245c8.js → agent-menu.5c780867b82081b1.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.2c30ace077893029.js → agents-grid.f989d6f2d9ece6e4.js} +9 -9
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{loading.733f0acc2af5ceda.js → loading.0130f8533d8f1b1e.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/page.0f88720e52db99a2.js +48 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.b26006f060cd48f0.js → layout.8d2f0997462fc958.js} +89 -32
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{loading.388aeaf0c2edf8f8.js → loading.90bf37c903ce6f0d.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.4b23e9df21433bd3.js → page.bc93891522c8120d.js} +22 -88
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{loading.e06845585ca67abc.js → loading.d56ef50b0694f975.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.4048048acb374c67.js → page.cf5cf9afe38ab0e4.js} +51 -123
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-actions.000f2f87a48bfbc6.js → platform-actions.c44c7df7841719f2.js} +234 -134
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/platform-state.6b6132518ca61635.js +21 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/platform-step.6e90cbfe308f28a0.js +82 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.ee0bb2dc4d403ec3.js → agent-settings-form.61de585104c2be10.js} +44 -66
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{loading.0e3641f3e4abaa7c.js → loading.2800c65e45a4a1d9.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.649b4ba135ded99b.js → page.4d06f759984a63b3.js} +11 -11
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.195e168e8e41d797.js → loading.ea2925eab1d2e594.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.96f7573208644f40.js → page.fb069bf82b727d27.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{loading.905293c9aa9afbc9.js → loading.3a615597ca648452.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{page.5f2b8585db8b27ad.js → page.0a472a0e269b8c01.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{versions-list.8700f0106f4e8c15.js → versions-list.7ef7dfd5d8f5de43.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{loading.f94b2f9ab04aaf21.js → loading.007326a04f05d46c.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.e898c4b5ef16ecb0.js → page.a26aa7bc6ab655f0.js} +10 -10
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/app-cards.361918fe58349aa1.js +142 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/loading.f0d91d48e2b79e50.js +14 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/page.3f60cf67517d0d31.js +99 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-pills.44e689e546fb042b.js → agent-pills.1012e04bfbc7bffd.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.4c67dfbb7d28a416.js → agent-toggle.ffbf9a8b8b2fbde7.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.9740a8e2f4b41f28.js → hero.0ae015a4fbe6321e.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{instructions.85b1cd986a9edbb5.js → instructions.1b8c9189961c5a4f.js} +13 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{connect-repositories.ff8b78a03153239b.js → connect-repositories.9abe365f0098d358.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.471af698b8060eba.js → editor.6548f8f757578f90.js} +164 -127
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.b7b5c89e618e8f89.js → import-picker.577b1d84c7ab84e1.js} +11 -11
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{loading.ecb9dfd4d0f9d107.js → loading.9b65a8c1cdc8346f.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.880bdac7fe843635.js → page.2b326d00ccef5544.js} +9 -8
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.81f7e055829854a3.js → layout.45a09107b19f0a7e.js} +89 -26
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/operator-apps.f8d679f2d06b0ebc.js +155 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.8f8697b1b6b34ad7.js → page.5aa3ddc669366703.js} +10 -10
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{page.fe608b8e661aba1d.js → page.5a5188f0fc75dcd2.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/advanced-list.73cdadb2968a39d2.js +63 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/connection-add.353ec01fbb814f78.js +526 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/connections-list.cf4061ae909272c3.js +439 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.a4d8338c7f6a5702.js → credentials-list.fc4cff0289267551.js} +116 -101
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.1443bbed1ff1d441.js → credentials.db01de2581ac65f3.js} +9 -9
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/list.e7d6a422f6a869ea.js +201 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{loading.7ca95dcb4fb3362b.js → loading.71ca4f6c99a8a9d5.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/models-list.acb92b39cab1d11c.js +635 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.805d0f8a2c5817d6.js → page.95fe939e36e5be55.js} +67 -41
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.1e83449aa6593224.js → runners-list.5764eac3307d67cc.js} +42 -37
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.17ac06593005b8ba.js → secrets-list.d316bb157f747f6c.js} +19 -17
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/chain-hint.65c4cc04c78e8bfd.js +18 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.8c4a2b31b194ba3e.js → layout.4eb70f2de8674f93.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/model-options.dc630cb6e2cbf83a.js +150 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/model-pick.a143e77f5ed5f9d3.js +160 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{page.a77996786278cda0.js → page.70cad0e981c33fa5.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{settings-head.705be0b1129b97af.js → settings-head.004ced21e02ffa48.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{tunnel-guide.29eee1a0b1852168.js → tunnel-guide.1bc6bff9d8019098.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{create-link.19b4c50ef497aca1.js → create-link.18bd2b92cd23b73f.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome-dialog.18cf32fa42247b91.js → outcome-dialog.a74e686aaed0c584.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/outcome-toast.95f7be49430248eb.js +24 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome.cbbc8cd1bbbee01b.js → outcome.22a83d756e4020a7.js} +3 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.616f0b36bf7925bc.js → page.e39ee9236664d043.js} +8 -8
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{activity.a911169a820ba604.js → activity.441e82ab00344fb2.js} +12 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{loading.76f851da5cc5268d.js → loading.779ecdd9c9d2ff09.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.ddb594bb6567ee13.js → page.24e121ea6eb578ba.js} +16 -9
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-actions.4a4052a38db4bad3.js +408 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-missing.33ec27a4a5eafefe.js +27 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.3276538e8306fd8a.js → task-view.0cd3ec2655f44cc7.js} +43 -34
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer-data.05fc39e1a7fd1ab7.js → composer-data.73225456d60d63e3.js} +4 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.dbf06b05c5e2eba3.js → composer.ee326fbf5e526fb1.js} +114 -121
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/pending-approvals.7607998094780fdd.js +40 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{status.cb704b48ce86cc7d.js → status.d2c05c397780b833.js} +7 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{task.f089c1c122ed6dd2.js → task.a25847399a4dfb30.js} +9 -26
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.5a00d69851dae119.js → tasks-list.e486cbd16ea3e963.js} +43 -35
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.36e70c93f7d0feee.js → tasks-section.01510523d1556d59.js} +16 -10
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.185b1ba0c803db3f.js → page.ede64f82388f9480.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{custom-range.2e21c7f891966c15.js → custom-range.fe91164d7a311356.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{day-chart.261b6651df2d3966.js → day-chart.20faaaf57c81ad9e.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{loading.a7e0ec01bfa769e3.js → loading.5b973a8bb29197d5.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{page.d41fea7676e37bfc.js → page.0499098badd3f5f8.js} +7 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{range-bar.69e68c9dae09f238.js → range-bar.0b9038e9df707843.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{top-agents.18fc469e781e2305.js → top-agents.93c916167299ffb6.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{layout.296d70b95894209f.js → layout.94ea3908b03bede6.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/login/{page.a82be2fd23e9ac67.js → page.4827d64c71c0690a.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{drawer.d3e61538dbc8ec39.js → drawer.1a08ff611df7fe38.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{foreign-link.8c6adf9c5a6f467c.js → foreign-link.1d4f63a0379cbd1d.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{loading-card.1cea8a722c10b998.js → loading-card.77bea8c5870b5d3c.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{page-head.87b92529dbb53ceb.js → page-head.2eb1e0213eb50349.js} +3 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.c32d78562f75db25.js → stream.e3800e736f832124.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.44075fa7e04575e8.js → task-toasts.3b7eeee29fc327de.js} +28 -18
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{theme-choices.85100ed66d6f9200.js → theme-choices.fc86071c1b634176.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{back.d6109e72fbd04b45.js → back.7aa0ae82dbec38cd.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{org.d3abfd4053b711ce.js → org.853d173b55368728.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{side-toggle.489faf1a259479f7.js → side-toggle.be7d2a7529557435.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{badge.c0bc352791a95fd6.js → badge.9f63fd615cf0ee22.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/button.2b18ba19ae01e2bb.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{button.ce9e6cdb08ca86db.js → button.b62fa52e18fa338b.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/card.4ab7ad42a0770726.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{card.9f0d45b73bc78b4f.js → card.c0030eafd76587e3.js} +21 -9
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{collapse.93e4d1b20c2873ed.js → collapse.eb578fdf42029754.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{combo.54270c0251466fda.js → combo.e4e08287494081a3.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{confirm.29e198be34578222.js → confirm.e21b7f5e486dafb8.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{copy.bd6fc1577a393965.js → copy.043e0695c08c72f9.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.81bb9a5c60cd1089.js → filter.0730dccad6332327.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/filter.6fdff1e7355aaa0e.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{icons.e36c72f54750663a.js → icons.f769275420d072ce.js} +4 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu-items.1d082ac4dae8f3d4.js → menu-items.759a1b1f7c5ee365.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu.ee45bace979944b6.js → menu.7f558c7c6f6345d5.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/menu.cd96fa0495fe0fde.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{modal.0b69c7fd9db025b9.js → modal.08ac85d31f4c76c1.js} +7 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{select.2eb33e5bea28d804.js → select.0ee9e8f04ddd8b47.js} +9 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tail.04132db0c5033d4f.js → tail.7eb303330802ac18.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/toolbar.cdbd0357f2c5e1fe.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.8b3a460a65edf85a.js → toolbar.ff8367c641d28c1e.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.67dd6f8ab1ae067d.js → action.f22057e7dfac40fe.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.78267fa3d7905d17.js → client.c8d7efefb6194d7d.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/routes/http.394704f4f12ada08.js +165 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/utils/crypto.24a6439ff8d10d3d.js +11 -0
- package/dist/dash/standalone/static/assets/chunks/advanced-list-850a950afe4f6996.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/agent-pills-9f6fa120182db948.js +2 -0
- package/dist/dash/standalone/static/assets/chunks/agent-settings-form-a8ee12513a02b1c5.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/agent-toggle-521136f20a71400d.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/agents-grid-bcd13cd7a46224a6.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{back-e29cb10f5548ddae.js → back-2d67134b122334f4.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/chain-hint-53675e299a865420.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{combo-702c94817bf6ac17.js → combo-cb2c62fe580a8903.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/composer-4a46a458495ce3ba.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/composer-92553de43276510b.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/composer-data-890f71bade4f0616.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{confirm-a78147b6ecef3847.js → confirm-d6b2c5b1deccd1e8.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{connect-repositories-7770ab805160028d.js → connect-repositories-226bf70aa81c29d8.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/connections-list-a33d6637e2d52fcf.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{copy-bdc60bdafe336316.js → copy-294c6052b3b69424.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/create-link-b2480a7601967e94.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/credentials-list-90fc1c6d202e1461.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/custom-range-efa1b6a71ba84597.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/editor-53a3e1a893644fff.js +6 -0
- package/dist/dash/standalone/static/assets/chunks/{field-bb8191aa02d07282.js → field-4d374d5ed3f43d7e.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/instructions-734d21dfb8f6393e.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/instructions-d3dc01b2f90820db.js +2 -0
- package/dist/dash/standalone/static/assets/chunks/list-16247e39898cd20e.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/model-options-d29e934a3de20ab4.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/models-list-6d93523660503dfb.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{outcome-dialog-fde11a52c282301d.js → outcome-dialog-755fc581cbc2836e.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/outcome-dialog-77e13c848000a3dc.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/outcome-toast-9d5e9713c23882f5.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/platform-actions-08e9b3816dcd62b1.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/platform-actions-832904f5694ef902.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/platform-step-29469fd4eaddc42a.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/platform-step-5881a8be1e761e00.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/runners-list-dd759d408c643a29.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{runtime-6e12333f12903a62-1.js → runtime-9b28886f3cbe0ed3-1.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/secrets-list-be1f634a1b077baa.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{segmented-0b6dc6b93c35e0f5.js → segmented-f646bfa8aa0aa449.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-926144b364908b3c.js +9 -0
- package/dist/dash/standalone/static/assets/chunks/shared-init-953965859f7bf6b9.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/shared-init-9b28886f3cbe0ed3-2.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/shared-init-b42d2c06c25d1e2b.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/side-toggle-8c21d39a1e284887.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{tail-f8804b80cf32f8d0.js → tail-d13c4cc0cf11ffd1.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/task-423e6a3f2527f534.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/task-actions-5917357eac6504ca.js +3 -0
- package/dist/dash/standalone/static/assets/chunks/task-view-c6ee43d2ddb6db90.js +3 -0
- package/dist/dash/standalone/static/assets/chunks/tasks-list-2c5ce592e00fda45.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/versions-list-177ae397ad64dcea.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{wular-pnext-6e12333f12903a62-0.js → wular-pnext-9b28886f3cbe0ed3-0.js} +1 -1
- package/dist/dash/standalone/static/assets/create-param-id-2c72f3e32e7f8b8d.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-a7f30a8c5a6fa651.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-account-76fffb9337b633f2.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-cc5d59edfc3cf0b1.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-new-170499c849114150.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-00243b34eb094b95.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-199a9991de1bf2d9.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-25ae07e0b3f5b252.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-param-app-a6d559f0e26bd01b.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-9f8faa8f7d714699.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-129adcdc293ceac8.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-0e037c66e3977f33.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-operator-8d5ef55834d8deba.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-settings-7138821f5422d087.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-586fec34f285e9cb.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-setup-67679c1f84f352cf.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-tasks-8a44e171984d32a1.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-b9d3a7a1bd1dd666.css +1 -0
- package/dist/dash/standalone/static/assets/dash-param-org-usage-c534db20ce538fd2.css +1 -0
- package/dist/dash/standalone/static/assets/global-df2c26ad15039e8a.css +1 -0
- package/dist/dash/standalone/static/assets/{login-9760b85feae40270.css → login-148795638d6ff5d4.css} +1 -1
- package/dist/dash/standalone/static/assets/pnext-client-095026242a079175.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-1dfeb8c3ef155f87.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-2358423351524403.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-28a6557216627768.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-31a4ee73945fee19.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-3dfdc76bb8712b82.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-4355ac87961d78c1.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-43c7a0046572e0c9.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-53dc7db68d67e0b1.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-5835cb35488bdf7f.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-638b390bc23ab1ae.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-67f832c6c51a66cd.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-6fc99f0abe77c2ea.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-7d99965f28ac7604.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-7ecbd7a0cbe4e231.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-8250bd3b86d038a3.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-bfd06805a43c6dee.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-ce2943f17e9d9ac3.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-ed31510d4615a5a5.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-f0496bf51e161ddd.js +1 -0
- package/dist/definition-4on4SG5J.js +1 -0
- package/dist/discover-DvzAbQvU.js +1 -0
- package/dist/dispatch-BaW2X6Sc.js +12 -0
- package/dist/{dist-DAnSqY1s.js → dist-B5qUdWUG.js} +35 -35
- package/dist/{dist-B2jiMMxZ.js → dist-Clxdruuu.js} +3 -3
- package/dist/{dist-ClCNj65n.js → dist-CymLGfHl.js} +4 -4
- package/dist/{adapter-Bz0E-DAY.js → dist-DX0JzVC6.js} +990 -990
- package/dist/{adapter-CsacmMmv.js → dist-DfD9WmV8.js} +39 -39
- package/dist/dist-node-B8VIVzUc.js +20 -0
- package/dist/docs-CbgaMPvq.js +2 -0
- package/dist/drive-Tk6JvQK5.js +1 -0
- package/dist/drizzle-orm-CYU7WOQS.js +2 -0
- package/dist/{emit-BrkJJPUE.js → emit-BgeqsCkC.js} +3 -3
- package/dist/env-_AxrvBXP.js +1 -0
- package/dist/errors-DK_trCff.js +1 -0
- package/dist/exec-CAaYFJD1.js +3 -0
- package/dist/executor-Chc0zawh.js +11 -0
- package/dist/flow/builtin/review/index.d.ts +2 -2
- package/dist/flow/builtin/review/index.js +9 -9
- package/dist/flow/index.d.ts +1 -1
- package/dist/flow/index.js +1 -1
- package/dist/github-actions-2RjyRseX.js +36 -0
- package/dist/{hook-CIipj9MJ.js → hook-COWDSO4a.js} +1 -1
- package/dist/http-615JJgHo.js +5 -0
- package/dist/http-DRk8cDjf.js +1 -0
- package/dist/{index-ChcxzFdB.d.ts → index-ezhbF5wC.d.ts} +335 -244
- package/dist/integrations-BVmsk64f.js +9 -0
- package/dist/lib/broker.js +2 -2
- package/dist/load-PqaDHiHX.js +2 -0
- package/dist/local-BMGcCk8N.js +1 -0
- package/dist/local-BzZuOwgI.js +5 -0
- package/dist/login-BDKTNynK.js +8 -0
- package/dist/maintenance-d43Ml540.js +1 -0
- package/dist/mcp-BGam3G_B.js +1 -0
- package/dist/mcp-BGx48pyR.js +25 -0
- package/dist/mcp-BNz_l5TV2.js +1 -0
- package/dist/metadata-D_bBfr3H.js +1 -0
- package/dist/models-D1NXi6ni.js +1 -0
- package/dist/output-BKeyLbvt.js +5 -0
- package/dist/permission-BkYxjiFR.js +1 -0
- package/dist/prompt-CpwbsEWM.js +4 -0
- package/dist/refresh-yfEi5SQs.js +1 -0
- package/dist/remote-BbXx6S9P.js +1 -0
- package/dist/remote-rArUa01V.js +2 -0
- package/dist/runner-DG9jrX5H.js +1 -0
- package/dist/runner.json +1 -1
- package/dist/runner.tgz +0 -0
- package/dist/schema.d.ts +2 -2
- package/dist/schema.js +2 -3
- package/dist/sdk.d.ts +2858 -1376
- package/dist/sdk.js +1 -1
- package/dist/serve-B-5rDiZm.js +1 -0
- package/dist/serve-CvnrGAj7.js +12 -0
- package/dist/serve-DoYbHm_k.js +5 -0
- package/dist/session-Dtje9y-r.js +1 -0
- package/dist/sessions-DIz9fyRN.js +1 -0
- package/dist/shared--aE4olIO.js +1 -0
- package/dist/sign-in-wWkyaq5X.js +3 -0
- package/dist/state-Br-Fuaxg.js +6 -0
- package/dist/store-CzQLgCzt.js +352 -0
- package/dist/task-CFt85vTy.js +1 -0
- package/dist/task-N0qhnKpK.js +7 -0
- package/dist/tool-search-BkdgVolu.js +6 -0
- package/dist/tools-DNgEptor.js +1 -0
- package/dist/tools-oQvFAnh5.js +1 -0
- package/dist/tools-search-D1zArRyJ.js +1 -0
- package/dist/turn-Cc-v-eSy.js +3 -0
- package/dist/types-DHBqXFE2.js +1 -0
- package/dist/update-check-UyRob3yy.js +1 -0
- package/dist/view-D-rbQ1Kz.js +4 -0
- package/dist/views-3TxH367C.js +2 -0
- package/dist/worker-BMuKKiIa.js +1 -0
- package/dist/worker-CIHY9L42.js +7 -0
- package/dist/zod-_-snqfdO.js +1 -0
- package/dist/zod.js +65 -1
- package/docs/agents/coder.md +5 -1
- package/docs/agents/index.md +53 -82
- package/docs/approvals.md +47 -0
- package/docs/cli/agent.md +34 -13
- package/docs/cli/auth.md +1 -1
- package/docs/cli/connection.md +22 -21
- package/docs/cli/index.md +14 -12
- package/docs/cli/model.md +11 -11
- package/docs/cli/task.md +28 -30
- package/docs/config.md +37 -65
- package/docs/connections.md +80 -0
- package/docs/dash.md +23 -19
- package/docs/flows.md +46 -213
- package/docs/models.md +48 -78
- package/docs/review.md +20 -17
- package/docs/runners.md +49 -0
- package/docs/sdk.md +49 -73
- package/docs/self-host.md +79 -81
- package/package.json +4 -5
- package/plugins/agents/skills/coder/SKILL.md +3 -3
- package/plugins/claude/skills/dispatch/SKILL.md +3 -3
- package/plugins/cursor/README.md +3 -3
- package/plugins/cursor/skills/coder/SKILL.md +3 -3
- package/dist/actions-D12xDiQS.js +0 -4
- package/dist/adapter-DzpdWewB.js +0 -1
- package/dist/agent-JJStALIx.js +0 -8
- package/dist/apps-Bnk7F3A2.js +0 -379
- package/dist/args-Dqf5Y1RP.js +0 -1
- package/dist/async-Tj4zKHXR.js +0 -3
- package/dist/auth-BhpnOCbn.js +0 -1
- package/dist/base64url-CsVsW4Id.js +0 -1
- package/dist/chat-CSepnsrK.js +0 -13
- package/dist/cmd-BHZwhrfa.js +0 -118
- package/dist/connection-BkYTuJjV.js +0 -1
- package/dist/context-zhSlmXOp.js +0 -7
- package/dist/conversation-DT-35cEt.js +0 -1
- package/dist/core-DwsAMCnL.js +0 -65
- package/dist/dash/standalone/node_modules/contextjsx/dist/index.mjs +0 -1
- package/dist/dash/standalone/node_modules/contextjsx/dist/jsx-runtime.mjs +0 -1
- package/dist/dash/standalone/node_modules/contextjsx/dist/src-BJ0QFeB8.mjs +0 -2
- package/dist/dash/standalone/node_modules/contextjsx/package.json +0 -70
- package/dist/dash/standalone/server/modules-server-server-react-server/src/agent/context/turn.6bb73458768e222e.js +0 -129
- package/dist/dash/standalone/server/modules-server-server-react-server/src/core/defaults.e972c134a1ae918f.js +0 -55
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/auth/sign-in.661b3a4139af5bd7.js +0 -11
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/connect/page.04762872666a6f0a.js +0 -26
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/connect-apps.8a20501ccb244421.js +0 -36
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/page.d066b77dd3187026.js +0 -65
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/operator-apps.09bf294d753ee9d7.js +0 -115
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/connections-list.97381888bfdd711b.js +0 -642
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/engines-list.d47db60d7dc01ebd.js +0 -73
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/list.a5b273558fb7f0f0.js +0 -156
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/models-list.31d369f1b7ab45da.js +0 -444
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/model-options.73f8d0d54f79d8e3.js +0 -100
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-actions.51fbeac76459433a.js +0 -240
- package/dist/dash/standalone/static/assets/chunks/action-a76e495fb39a73d3.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/agent-pills-4d3c6a2aa9eb1522.js +0 -2
- package/dist/dash/standalone/static/assets/chunks/agent-settings-form-f7231a66e391f6b6.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/agent-toggle-d7d27123f2070f18.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/agents-grid-185ecb3d86c6c447.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/composer-56ebf36d63400423.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/composer-a686289a79f64bae.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/composer-data-f46a9bc7a14b4f9a.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/connect-apps-696726aedab42c96.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/connections-list-07559f145f3e3da3.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/create-link-426b0a5871ee41dd.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/credentials-list-f07d090410104148.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/custom-range-6618f32ef6cd4e80.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/editor-0860e370cbfc6b03.js +0 -6
- package/dist/dash/standalone/static/assets/chunks/engines-list-31b9bb7885924b05.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/format-a27067f0186e78ac.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/instructions-06b63e558f879da5.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/instructions-2d9fbcbfadac4f40.js +0 -2
- package/dist/dash/standalone/static/assets/chunks/list-2773686bf8df64c7.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/model-options-8d2170eebe0d061d.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/models-list-03611e64b6a07efe.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/notice-d14fdac28139c0a8.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/outcome-dialog-d3ba8ef89c59f801.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/platform-actions-2a71c62b9f7eaef3.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/platform-actions-70600c9943320152.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/runners-list-edf536eb8003eab5.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/secrets-list-e86122f73525ff95.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-6e12333f12903a62-2.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-b281027d465e004f.js +0 -5
- package/dist/dash/standalone/static/assets/chunks/shared-init-c3bd249cf1eca6d1.js +0 -2
- package/dist/dash/standalone/static/assets/chunks/side-toggle-9b3af821cfe4c824.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/task-a37e7c26e82eb77d.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/task-actions-705395565f2d83b8.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/task-view-cb21169f38b56d15.js +0 -6
- package/dist/dash/standalone/static/assets/chunks/tasks-list-d7dccfd7e0623ae0.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/versions-list-f8f2e71df691efda.js +0 -1
- package/dist/dash/standalone/static/assets/connect-a550b6f3a8c00186.css +0 -1
- package/dist/dash/standalone/static/assets/create-param-id-c2c756f652f2fc30.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-account-702f8a1b213e4026.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-aad2f9f93c06e9ab.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-new-f9dcbcec36586f2b.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-8ff47f5d622c1f9b.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-907036d553cfeb36.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-5cc77badad15f00c.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-705d7c15868b4fd6.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-04e189c045098772.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-76fcd1ce7b3dae71.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-eccb6bb9297a53e6.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-operator-635a121f7a9a95bd.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-settings-a3297dc4d9e0c961.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-bcb06f81d9e8268d.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-setup-df4be8b188b9777f.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-tasks-16f9866a1b4801cd.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-02ae551dcd852b57.css +0 -1
- package/dist/dash/standalone/static/assets/dash-param-org-usage-f2175403069aab99.css +0 -1
- package/dist/dash/standalone/static/assets/global-e1de614478b64717.css +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-0dc829ba60df5c26.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-14d191f7f1da6602.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-169eaa63783b71fd.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-1e34cfefafa70fac.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-285d61f00a80f40b.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-35b89c3ba23ee845.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-6c42784e005d4b87.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-6cd93f9bd4cf6ffd.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-7355f473fade532d.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-815c3c297f75efb0.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-87fe73c10a4dc33c.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-98b56a142d441260.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-b4bafe68a40f720b.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-bf61ff39bdc0db48.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-c9fa86c244813f74.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-d2e7a75e16221224.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-d34e774405ea8da8.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-d511822afdb41d1d.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-e113aa2f25ecfe01.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-eb62f461d0c32266.js +0 -1
- package/dist/discover-CHfF4cEz.js +0 -1
- package/dist/dist-node-Bv1kCqyi.js +0 -20
- package/dist/docs-KHc0_gFX.js +0 -2
- package/dist/drive-Bwl7Bjme.js +0 -1
- package/dist/env-6Y-NNnYD.js +0 -1
- package/dist/errors-DO_IltpP.js +0 -16
- package/dist/exec-BmTa0vcO.js +0 -4
- package/dist/executor-ufWRqhdS.js +0 -11
- package/dist/http-Cg8PSe-c.js +0 -1
- package/dist/integrations-I7fRDk_l.js +0 -4
- package/dist/load-BDlEFetB.js +0 -2
- package/dist/local-COlczLwI.js +0 -5
- package/dist/log-view-CfX9lakH.js +0 -4
- package/dist/maintenance-CKCIWOvn.js +0 -1
- package/dist/match-CufHAZQH.js +0 -1
- package/dist/mcp-BkwmRHI9.js +0 -2
- package/dist/mcp-CGU7aoJ-.js +0 -1
- package/dist/mcp-DAHbhfUh.js +0 -13
- package/dist/models-CzggS7p2.js +0 -1
- package/dist/output-SNqdgh9A.js +0 -17
- package/dist/permission-MWFjKxqX.js +0 -1
- package/dist/prompt-CIx4jwQF.js +0 -8
- package/dist/refresh-CxsaX5R9.js +0 -1
- package/dist/remote-C9Hj2cby.js +0 -2
- package/dist/remote-HUZCWgfl.js +0 -3
- package/dist/runner-DYysY1-G.js +0 -1
- package/dist/runners-CfaGE0nV.js +0 -36
- package/dist/serve-DdAdw7Su.js +0 -4
- package/dist/serve-NQykWAKV.js +0 -1
- package/dist/serve-vKNqVaVy.js +0 -12
- package/dist/slack-BtKvW_4v.js +0 -5
- package/dist/task-CFxs0E_J.js +0 -1
- package/dist/task-iuYQ0zAK.js +0 -7
- package/dist/tools-B6ZxcqRi.js +0 -2
- package/dist/tools-FVop8XYG.js +0 -1
- package/dist/tools-search-kjKKolwp.js +0 -1
- package/dist/turn-DQ13lkPF.js +0 -2
- package/dist/types-DPtbvoo3.js +0 -1
- package/dist/types-DmThhjcW.js +0 -1
- package/dist/views-CMHXBMJp.js +0 -3
- package/dist/wire-C9CupY_A.js +0 -1
- package/dist/worker-BQpx1dPr.js +0 -9
- package/dist/worker-sTJL2eoe.js +0 -1
- package/dist/zod-BoqHoRCH.js +0 -1
- package/docs/access.md +0 -33
- package/docs/mcp.md +0 -54
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{errors.1bd0542d832ae0c0.js → errors.200335e62a9d9564.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.061f6006f2685f5e.css.pnext-asset.js → page.abe7a6d16eb15c41.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.107e622830bff31d.css.pnext-asset.js → page.1c7947d6f79d6447.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{settings/agent-settings-form.ca926c58d15044aa.css.pnext-asset.js → platforms/platform-step.a722e3b8539a0f85.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/{agent/instructions.446bccc375f30eeb.css.pnext-asset.js → [slug]/(tabs)/settings/agent-settings-form.bf5430862c505c55.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/{editor/editor.1eb1bce282b289c9.css.pnext-asset.js → [slug]/platforms/[app]/@/app/dash/[org]/agents/[slug]/(tabs)/platforms/page.db05694ed4113dab.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.a4efa8d807fe5416.css.pnext-asset.js → agents/[slug]/platforms/[app]/app-cards.d2f5c8d620066e05.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{settings/[tab]/@/app/dash/[org]/setup/outcome.3ad5f7ec67e5238d.css.pnext-asset.js → agents/agent/instructions.4c31196fcbf9846c.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{settings/[tab]/connections-list.46786fe36b121a43.css.pnext-asset.js → agents/editor/editor.6b9a1d5c0a490153.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{settings/[tab]/credentials-list.f7c27f170ec1e868.css.pnext-asset.js → layout.52abe52dcfa736d7.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{engines-list.9927d602ebe9e7fc.css.pnext-asset.js → advanced-list.819e410e4178b328.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.8cbee173a5aff98d.css.pnext-asset.js → connections-list.87962937438296f1.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.53c7ea80b6fb734c.css.pnext-asset.js → credentials-list.973f91751525bcb6.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{tasks/[id]/task-view.42337a0d7c6ad0b6.css.pnext-asset.js → settings/[tab]/list.69d1b62c4066015b.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{tasks/composer.5b8687662e1629fa.css.pnext-asset.js → settings/[tab]/models-list.efd3f5781314c1d9.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{tasks/list/tasks-list.2f90c4410f843fff.css.pnext-asset.js → settings/[tab]/runners-list.df35d33aba0c8b07.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{globals.f8ac779f0ebf888b.css.pnext-asset.js → dash/[org]/settings/model-pick.74fababc0cc0bba7.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{responsive.ebc5f7d77b4b86a0.css.pnext-asset.js → dash/[org]/tasks/[id]/task-view.aae9fa481b9015d1.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/frame/task-toasts.d13d9f628e530552.css.pnext-asset.js → app/dash/[org]/tasks/composer.33d49ad218253703.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/badge.0cb1513f8b077560.css.pnext-asset.js → app/dash/[org]/tasks/list/pending-approvals.07e59a9cae7ccf29.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/button.d7f4433f4e7faa80.css.pnext-asset.js → app/dash/[org]/tasks/list/tasks-list.f3737549b4696cc8.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/card.f80288cc42f9bcae.css.pnext-asset.js → app/globals.3b53a3feaa1d72e1.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/filter.b53f21acc3e2cfef.css.pnext-asset.js → app/responsive.2979ffa0161a5afd.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/{ui/menu.25b184f68cba7b46.css.pnext-asset.js → frame/task-toasts.682322f6f729b33e.css.pnext-asset.js} +0 -0
- /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.19e1ce5224a23acf.css.pnext-asset.js → badge.8e2a9842b28f44a6.css.pnext-asset.js} +0 -0
package/README.md
CHANGED
|
@@ -63,7 +63,7 @@ To make it the default, add this line to your project's `AGENTS.md` or `CLAUDE.m
|
|
|
63
63
|
Always use Coder for implementation and exploration.
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
Every task runs under the
|
|
66
|
+
Every task runs under the access you set and stays yours to watch, steer or stop. See them all in the browser:
|
|
67
67
|
|
|
68
68
|
```bash
|
|
69
69
|
coder dash
|
|
@@ -71,7 +71,7 @@ coder dash
|
|
|
71
71
|
|
|
72
72
|
> **Recommended setup:** Claude Code as the host (Fable, low or medium effort) and Codex (sol) as the engine, the best split of performance and cost.
|
|
73
73
|
|
|
74
|
-
[Models](docs/models.md) · [Configuration](docs/config.md) · [
|
|
74
|
+
[Models](docs/models.md) · [Configuration](docs/config.md) · [Approvals](docs/approvals.md) · [Connections](docs/connections.md)
|
|
75
75
|
|
|
76
76
|
## Coder Cloud
|
|
77
77
|
|
|
@@ -135,4 +135,4 @@ Run all of Coder Cloud on your own infrastructure: one server, one Postgres data
|
|
|
135
135
|
|
|
136
136
|
Everything else is at **[coder.wular.ai/docs](https://coder.wular.ai/docs)**.
|
|
137
137
|
|
|
138
|
-
`coder --help` lists every command, and `coder docs [topic]` prints the bundled
|
|
138
|
+
`coder --help` lists every command, and `coder docs [topic]` prints the bundled docs. `coder upgrade` keeps the CLI and host plugins current.
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{Ea as e,l as t}from"./args-CJsHYWbt.js";import{t as n}from"./errors-DK_trCff.js";import{$ as r,A as i,C as a,F as o,J as s,M as c,O as l,P as u,Q as d,S as f,T as p,V as m,W as h,b as g,c as _,dt as ee,et as v,ft as y,g as te,gt as ne,h as re,i as ie,k as ae,m as oe,mt as se,n as ce,o as b,ot as x,q as le,s as ue,tt as S,w as C}from"./state-Br-Fuaxg.js";import{C as de,M as fe,R as pe,w,z as me}from"./config-D_RuO6gX.js";import{_ as he,a as ge}from"./connections-Cswv7r8Z.js";import{m as _e}from"./app-server-BTpa5GBV.js";import{n as ve,t as ye}from"./crypto-Ittsv-m4.js";import{i as be,n as xe}from"./http-615JJgHo.js";import{n as Se,t as Ce}from"./remote-BbXx6S9P.js";import{F as we,I as Te,N as Ee,P as De,R as T,T as Oe,_ as E,a as ke,b as Ae,c as je,d as D,f as O,g as Me,i as Ne,m as Pe,n as Fe,o as Ie,p as Le,r as k,u as Re,w as ze,x as Be,z as Ve}from"./dispatch-BaW2X6Sc.js";import{n as He}from"./sessions-DIz9fyRN.js";import{_ as A,b as j,f as Ue,h as M,l as We,o as Ge,v as Ke}from"./approvals-CRwkc9vB.js";import{c as qe,s as Je,u as Ye}from"./view-D-rbQ1Kz.js";import{a as N,i as P,n as F,o as I,r as Xe,t as Ze}from"./remote-rArUa01V.js";import L from"node:path";import R from"node:process";import z from"node:fs";import{randomUUID as Qe}from"node:crypto";var $e=e({answerTaskApproval:()=>U,approvals:()=>Tt,approve:()=>$,archive:()=>Dt,ask:()=>Ct,askTask:()=>V,claudeAskOptions:()=>ct,collectApprovals:()=>H,collectTasks:()=>ut,deleteTask:()=>K,heldConnections:()=>et,list:()=>vt,recentTasks:()=>W,remove:()=>Ot,result:()=>gt,run:()=>ht,steer:()=>xt,steerTask:()=>B,stop:()=>Et,stopTask:()=>G,stream:()=>kt,streamTask:()=>dt,turnServers:()=>tt,watch:()=>Q});function et(e,t,n=e=>e){return async r=>({...ge(Object.fromEntries(Re(e,R.env,t).flatMap(e=>{let t=e.connection??e.name;return r.includes(t)?[[t,n(e)]]:[]}))),warnings:[]})}function tt(e,t){let n=e.mcp?.map(t=>{let n=t.connection??(t.resolved&&e.connections?.includes(t.name)?t.name:void 0);return n?{...t,connection:n,resolved:!1}:t})??[],r=e.mcpBindings??n.filter(e=>e.connection).map(({name:e,connection:t,tools:n})=>({name:e,connection:t,...n?{tools:n}:{}})),i=new Set(r.map(e=>e.connection));return{selected:O([...r,...n.filter(e=>!i.has(e.connection))],{},{},t),bindings:r}}async function nt(e,t,n,r,i={}){if(t.status!==`running`)return null;let a=t.engine===`claude`?await(i.claude??Be)(t.steerEndpoint,n,void 0,r):await(i.codex??we)(e,{endpoint:t.steerEndpoint,threadId:t.threadId,turnId:t.turnId,text:n,command:r});if(a.steered)return b(e,t.id,{kind:`steer`,message:`${ce}${n}`}),{taskId:t.id,steered:`live`};if(!a.retryable)throw b(e,t.id,{kind:`error`,message:`Live steer failed: ${a.detail}`}),Error(`Could not steer running task ${t.id}: ${a.detail}`);return null}function rt(e,t,n,r){oe(e,t,n,r)&&b(e,t,{kind:`steer`,message:`Steer queued for the next turn:\n${n}`})}async function B(e,t,r,i={},a={}){if(t=p(e,t.id)??t,!t.threadId)throw new n(`invalid-option`,`Task ${t.id} has no thread to steer yet (status: ${t.status}).`,{hint:`Wait for it to start: coder task watch ${t.id}`});let o=await nt(e,t,r,i.command,a);if(o){let n=p(e,t.id)??t;return n.archived&&d(e,n),o}return{taskId:t.id,steered:await at(e,t,r,i)}}function it(e){let t=z.mkdtempSync(`${e}-`),n=`${R.pid}-${l(R.pid)??0}-${Qe()}`;z.mkdirSync(L.join(t,n));try{for(let n=0;n<2;n++){try{return z.renameSync(t,e),!0}catch(e){if(![`EEXIST`,`ENOTEMPTY`,`ENOTDIR`].includes(e.code??``))throw e}try{if(z.statSync(e).isFile()){if(Date.now()-z.statSync(e).mtimeMs<6e4)return!1;z.unlinkSync(e);continue}for(let t of z.readdirSync(e)){let n=t.split(`-`),r=Number(n[0]),i=Number(n[1]),a=!1;if(Number.isInteger(r)&&r>0)try{R.kill(r,0),a=!0}catch(e){a=e.code===`EPERM`}let o=a?l(r):null;if(a&&(!i||o===null||o===i))return!1;z.rmdirSync(L.join(e,t))}z.rmdirSync(e)}catch(e){if(![`ENOENT`,`ENOTEMPTY`].includes(e.code??``))throw e}}return!1}finally{z.rmSync(t,{recursive:!0,force:!0})}}async function at(e,t,n,r){if(t.connectionSource===`server`&&!r.resolveConnections)throw Error(`Server connection resolver is required to resume this task`);let{model:i,effort:a}=ot(e,t,r.model),o=await v(e,t.id,()=>{let r=p(e,t.id)??t,i=r.resumeOwner&&!g(r.resumeOwner)?u(e,r):r,a=[i?.completedAt,i?.resumedAt].map(e=>Date.parse(e??``)||0),o=L.join(m(e,t.id),`resume-${a.join(`-`)}`);if(i&&!i.steerClosed&&(x.includes(i.status)||i.status===`completed`&&i.steerClosed===!1&&g(i.pid))||!it(o)){i.archived&&d(e,i),rt(e,t.id,n);return}return i.archived&&d(e,i),{fresh:i,claim:o,preparing:S(e,t.id,{status:`queued`,pid:null,resumeOwner:R.pid,dispatchId:Qe(),resumedAt:new Date().toISOString(),currentPrompt:n,resumeThreadId:i.threadId,steerClosed:!1,steerEndpoint:null,error:void 0})}});if(!o)return`queued`;let{fresh:s,claim:c,preparing:l}=o;t=s??t;try{for(let n of z.readdirSync(m(e,t.id)))/^resume-\d+-\d+$/.test(n)&&n!==L.basename(c)&&z.rmSync(L.join(m(e,t.id),n),{recursive:!0,force:!0});let o=t.agentId?await(await import(`./exec-CAaYFJD1.js`).then(e=>e.i)).localAgentPrompt(e,t.agentId):void 0,s=me(r.access,t.access),u=r.resolveConnections?await r.resolveConnections(t.connections??[]):await he(void 0,t.connections??[],void 0,me(o?.access,s)),{selected:f,bindings:h}=tt(t,u.mcp);t.archived&&d(e,t),await v(e,t.id,()=>{let c=p(e,t.id);if(c?.status!==`queued`||c.dispatchId!==l.dispatchId||c.resumeOwner!==R.pid)throw Error(`Task changed while preparing its resumed turn`);S(e,t.id,{...o?.developer&&t.promptParts?{promptParts:{...t.promptParts,developer:{...o.developer,notes:t.promptParts.developer?.notes}}}:{},mcp:f.mcp,mcpBindings:h,status:`queued`,pid:null,steerClosed:!1,resumeOwner:void 0,currentPrompt:n,...r.outputSchema?{outputSchema:r.outputSchema}:{},resumeThreadId:t.threadId,steerEndpoint:null,model:i,effort:a,access:s,error:void 0}),b(e,t.id,{kind:`steer`,message:`Resuming with steer:\n${n}`});for(let n of[...u.warnings,...f.warnings??[]])b(e,t.id,{kind:`status`,message:n});let d=Le(t.cwd??e,t.id,{...Object.fromEntries(Object.keys(R.env).filter(e=>e.startsWith(`CODER_CONNECTION_`)).map(e=>[e,void 0])),...u.env,...r.credentialEnv});r.onWorker?.(d)})}catch(n){let r=p(e,t.id);throw r&&r.dispatchId===l.dispatchId&&x.includes(r.status)&&S(e,t.id,{status:`failed`,resumeOwner:void 0,steerClosed:!0,completedAt:new Date().toISOString(),error:n instanceof Error?n.message:String(n)}),z.rmSync(L.join(m(e,t.id),L.basename(c)),{recursive:!0,force:!0}),n}return`resumed`}function ot(e,t,r){if(!r)return{model:t.model??null,effort:t.effort??null};let i=pe(r),{engine:a,model:o,effort:s}=D({...i.model?{}:{engine:t.engine},model:r},w(e));if(a!==t.engine)throw new n(`invalid-option`,`Task ${t.id} runs on ${t.engine}, so its follow-ups take a ${t.engine} model.`);return{model:o,effort:s}}const st=[`Read`,`Glob`,`Grep`];function ct(e,t,n,r){return{prompt:n,model:r.model??e.model,effort:r.effort,access:`read-only`,additionalDirectories:[t],taskRoot:t,readOnlyAllowedTools:st}}async function V(e,t,n,r={}){let{model:i,effort:a}=ot(e,t,r.model),o=m(e,t.id),s=_e(t,{log:L.join(o,`log.jsonl`),result:L.join(o,`result.json`),worker:L.join(o,`worker.log`)},n,r.command?T(r.command):void 0),c=r.command?e=>{let t=L.join(o,`inbox-control`);z.mkdirSync(t,{recursive:!0}),z.appendFileSync(L.join(t,`${T(r.command)}.transcript.jsonl`),JSON.stringify({command:r.command,result:e.finalMessage??e.error?.message??``})+`
|
|
2
|
+
`)}:void 0;if(t.engine===`claude`)return Ae(t.cwd??e,{...ct(t,o,s,{model:i??void 0,effort:a}),command:r.command,onResult:c});let l=w(e),u=i?l.models?.[i]:void 0;return De(t.cwd??e,{prompt:s,model:fe(i??null),...u&&i&&de(u)?{customModel:{alias:i,entry:u}}:{},effort:a,sandbox:`read-only`,approvalPolicy:`never`,ephemeral:!0,onResult:c})}function H(e,t,n=`active`){return C(e).filter(e=>n===`all`||x.includes(e.status)).flatMap(n=>t(m(e,n.id)).map(e=>({...e,taskId:n.id})))}async function U(e,t,n,r,i={}){let a=m(e,t.id),o=A(a).find(e=>e.id===n),s=o?.response?.decision===r&&!o.response.deliveredAt?o:null,c=s??Ge(a,n,r,i.reason,i.by);return s||b(e,t.id,{kind:`approval-answered`,approvalId:n,decision:r,summary:c.actions.join(`
|
|
3
|
+
`),...i.reason?{reason:i.reason}:{},...c.response?.by?{by:c.response.by}:{},message:We(c)}),await lt(e,t,c,i),Ke(a,c)}async function lt(e,t,n,r){let i=We(n),a=`${n.id}:${n.response.answeredAt}`,o=r.command??Ve(t.id,a),s=p(e,t.id)??t;if((s.currentPrompt??s.prompt)===i&&x.includes(s.status))return;let c=await v(e,t.id,()=>{let n=p(e,t.id)??s;return le(e,t.id,a)?!0:n.steerClosed||!x.includes(n.status)||n.threadId?!1:(rt(e,t.id,i,a),!0)}),l=!x.includes((p(e,t.id)??s).status);!c&&!(l&&await r.resume?.(i))&&await B(e,s,i,{command:o,...r.resolveConnections?{resolveConnections:r.resolveConnections}:{}})}function W(e){return C(e).filter(t=>!y.includes(t.status)||!ue(Date.parse(t.completedAt??t.updatedAt??t.createdAt??``))||(_(e,t,{auto:!0}),!1))}function ut(e,t={}){let n=t.limit===`all`?void 0:t.limit,r=e=>y.includes(e.status),o=i(e),s=new Set(o.map(e=>e.id)),c=e=>e.filter(e=>!s.has(e.id)),l=[...c(W(e)),...o.filter(e=>!e.archived)];if(t.archived?l=[...c(a(e)),...o.filter(e=>e.archived)]:t.running?l=l.filter(e=>x.includes(e.status)):t.stopped&&(l=l.filter(r)),t.dir){let e=h(L.resolve(String(t.dir))),n=new Map;l=l.filter(t=>t.cwd?(n.has(t.cwd)||n.set(t.cwd,h(t.cwd)),n.get(t.cwd)===e):!1)}let u=e=>({rank:qe(e.status),createdAt:Date.parse(e.createdAt??``)||0,id:e.id});l=[...l].sort((e,t)=>Je(u(e),u(t)));let d=n===void 0?0:Math.max(0,l.length-n);return n!==void 0&&(l=l.slice(0,n)),{tasks:l,clipped:d}}async function*dt(e,t,n={}){let i=r(e,t);try{let r=ae(),a=p(e,t);if(!a)throw Error(`No task found for "${t}".`);let o=n.tail??1,c=se(L.join(m(e,t),`log.jsonl`)),l=!0,d=()=>{let e=c().map(e=>{try{return JSON.parse(e)}catch{return{message:e}}});return l?(l=!1,o===`all`?e:s(e,o)):e};for(yield*d();a=u(e,p(e,t)??a,r),!y.includes(a.status);)await i.wait(1e3),yield*d();yield*d()}finally{i.close()}}async function G(e,t,n={}){let r=t.engine===`claude`?{detail:`claude worker terminated`}:await(n.interrupt??Ee)(e,{endpoint:t.steerEndpoint,threadId:t.threadId,turnId:t.turnId});if(t.engine!==`claude`&&Te(t.steerEndpoint),t.pid&&t.status===`running`)try{R.kill(t.pid,`SIGTERM`)}catch{}return S(e,t.id,{status:`cancelled`,error:ee,steerEndpoint:null,completedAt:new Date().toISOString()}),Ue(m(e,t.id)),{taskId:t.id,status:`cancelled`,interrupt:r.detail}}function K(e,t){for(let n of ze(t))t.engine===`claude`?Oe(n):He(e,n);return o(e,t.id)}function ft(){let{CODER_SERVER:e,CODER_TASK_TOKEN:t}=R.env;if(!(!R.env.CODER_WORKER||R.env.CODER_MCP_MODE===`cloud`||!e||!t))return xe(e)?Ce(e,{token:t}):void 0}function q(e){let t=e.server===void 0?ft():Se(e);return{cwd:e.cwd?L.resolve(e.cwd):R.cwd(),...t?{api:t}:{}}}function J(e,t){let r=re(e,t);if(r)return r;throw new n(`invalid-option`,t?`No task found for "${t}".`:`No tasks found for this workspace.`,{hint:t?[`List tasks: coder task list`,`Start one: coder run "<text>"`]:[`Start one: coder run "<text>"`]})}async function Y(e,t){if(t)return e.tasks.get(t);let[r]=await e.tasks.list({limit:1});if(!r)throw new n(`server`,`No server tasks found.`);return r}function X(e){throw new n(`invalid-option`,`Missing task id.`,{hint:e})}async function Z(e,t){for(;;){let r=await e.tasks.wait(t),i=F(r).find(e=>!e.answered);if(i)throw new n(`approval-pending`,`Approval needed for task ${t}: ${i.reason}`,{taskId:t,approval:i});if(y.includes(r.status))return r}}function pt(e,n){let r=t({server:n.server,workspace:n.organization});return{result:`coder task result ${e} --wait${r}`,steer:`coder task steer ${e} "<follow-up>"${r}`,stop:`coder task stop ${e}${r}`,list:`coder task list${r}`}}function mt(e,t){let n=t?.error?.message||e.error;return{taskId:e.id,status:e.status,finalMessage:t?.finalMessage,...n?{error:n}:{},tokens:t?.tokens??null,model:t?.model??e.model??null}}async function ht(e,t={}){if(t.outputSchema!==void 0&&(!t.outputSchema||typeof t.outputSchema!=`object`||Array.isArray(t.outputSchema)))throw new n(`invalid-option`,`outputSchema must be an object.`);let{cwd:r,api:i}=q(t),a=t.server===void 0;if(i){let n=await i.tasks.create({source:`cli`,prompt:e,...t.cwd&&!a?{cwd:t.cwd}:{},...t.outputSchema?{outputSchema:t.outputSchema}:{},...t.repo?{repo:t.repo}:{},...t.agent?{agent:t.agent}:{},...t.model?{model:t.model}:{},...t.access?{access:t.access}:{},...t.runner?{runner:t.runner}:{},...t.mcp?{mcp:t.mcp.split(`,`).map(e=>e.trim())}:{},...t.connections?{connections:t.connections}:{},...t.name?{name:t.name}:{},...t.appendSystem?{appendSystem:t.appendSystem}:{},...t.addDirs?.length?{addDirs:t.addDirs.map(e=>L.resolve(r,e))}:{}}),o=n.task.id,s=t.addDirs?.length?Ne(n.task.runner):void 0;if(s&&t.onNote?.(s),!t.wait)return{taskId:o,status:n.status,startupCheck:`pending`,commands:pt(o,t)};t.onWaiting?.(o);let c=await Z(i,o);return mt(I(c),P(c))}let o=t.agent?await(await import(`./exec-CAaYFJD1.js`).then(e=>e.i)).agentTaskOptions(r,t.agent,t.mcp,void 0,t.connections,t.access):void 0,s=o?.connected??await he(t.connections,void 0,void 0,t.access);for(let e of s.warnings)t.onNote?.(e);let c=w(r),l=o??O(t.mcp,c.mcp,{},s.mcp),u={prompt:e,outputSchema:t.outputSchema,cwd:r,engine:t.model?void 0:o?.engine,model:t.model??o?.model,effort:t.model?void 0:o?.effort,access:o?.access??t.access,name:t.name,appendSystem:t.appendSystem,...o?{agentPrompt:{developer:o.developer}}:{},wait:t.wait,addDirs:t.addDirs,...t.agent?{agentId:t.agent}:{},mcp:l.mcp,mcpBindings:l.mcpBindings,mcpWarnings:l.warnings,connectionEnv:s.env,connections:s.ids,nativeMcp:l.nativeMcp,...t.onFallback?{onFallback:t.onFallback}:{},...t.onNote?{onNote:t.onNote}:{}},d=Ie(c,D(u,c)),f=await k(u,{config:c,models:d});if(!t.wait){let e=f.taskId;return{taskId:e,status:f.task.status,startupCheck:f.startupCheck,commands:pt(e,t)}}for(;;){let i=f.taskId;t.onWaiting?.(i);let a=await E(r,i),{task:o,result:s}=a,l=s?.error?.message??``;if(o.status===`failed`&&ke(o.access??`auto`,l))throw new n(`read-only-unavailable`,l);let p=Pe(r,a,d);if(p!==void 0){if(p===null)throw new n(`chain-exhausted`,l,{payload:Fe(f.engine,l,o.access??`auto`,t.appendSystem,e)});t.onFallback?.({model:te(o),detail:l,next:te(p)}),f=await k({...u,name:void 0},{config:c,models:d.slice(d.indexOf(p))});continue}return mt(o,s)}}async function gt(e,t={}){let{cwd:r,api:i}=q(t);if(i){let n=await Y(i,e);t.wait&&([`completed`,`failed`,`cancelled`].includes(n.status)||t.onWaiting?.(n.task.id),n=await Z(i,n.task.id));let r=t.tail?await i.tasks.logs(n.task.id):[],a=(t.tail===`all`?r:r.slice(-Number(t.tail))).map(N);return Xe(n,a)}let a=J(r,e);if(t.wait){x.includes(a.status)&&t.onWaiting?.(a.id);let e=await Me(r,a);if(a=e.task,e.reason===`approval`)throw new n(`approval-pending`,`Approval needed for task ${a.id}: ${e.approval.reason}`,{taskId:a.id,approval:e.approval})}let{steps:o,result:s,turns:l}=je(r,a.id,{tail:t.tail,task:a}),u=j(m(r,a.id)),d=x.includes(a.status),p=d?f(r,a):a.updatedAt,h=ie(p),g=d?c(r,a.id,200):[];return{taskId:a.id,status:d&&u.length?`waiting-approval`:a.status,task:a,result:s,steps:o,turns:l,pendingApprovals:u.map(({id:e,reason:t,actions:n})=>({id:e,reason:t,actions:n})),...d?{idleMs:h,lastActivityAt:p??null,stalled:u.length===0&&h>6e5,lastLog:g.at(-1),liveTokens:g.reverse().find(e=>e.kind===`usage`&&String(e.at??``)>=(a.resumedAt??``))?.tokens??null}:{}}}function _t(e,t,n,r=Ye(e.prompt)){let i=x.includes(e.status);return{taskId:e.id,status:i&&t?`waiting-approval`:e.status,pendingApprovals:t,engine:e.engine??null,model:e.model??null,effort:e.effort??null,name:e.name??null,cwd:e.cwd??null,prompt:String(r??``).replace(/\s+/g,` `).trim().slice(0,80),updatedAt:e.updatedAt,archived:e.archived??!1,flowRunId:e.flowRunId??null,idleMs:i?ie(n??void 0):null}}async function vt(e={}){let{cwd:t,api:r}=q(e),i=e.limit??50;if(r){let t=[],n=e.cursor??``,a;do{let o=await r.tasks.list({cursor:n,limit:i===`all`?200:Math.min(200,i-t.length),status:e.running?`active`:void 0,archived:e.archived});for(let n of o.items)(!e.stopped||y.includes(n.status))&&t.push(_t(I(n),F(n).filter(e=>!e.answered).length,Ze(n.lastActivityAt??n.updatedAt),Ye(n.turns?.[0]?.prompt??n.task.prompt,n.task.event?.text)));a=o.next,n=a??``}while(a&&(i===`all`||t.length<i));return{items:Object.assign(t,{archived:0}),...a?{next:a}:{}}}let{tasks:o}=ut(t,{...e,limit:`all`,dir:e.dir??e.cwd}),s=o.map(e=>_t(e,x.includes(e.status)?j(m(t,e.id)).length:0,x.includes(e.status)?f(t,e):null)),c=0;if(e.cursor){let t;try{if(t=ye(e.cursor),typeof t!=`string`)throw Error()}catch{throw new n(`invalid-option`,`Invalid task list cursor.`)}let r=s.findIndex(e=>e.taskId===t);if(r<0)throw new n(`invalid-option`,`Task list cursor is no longer available; start a new list.`);c=r+1}let l=s.slice(c,i===`all`?void 0:c+i),u=!s.length&&!e.archived?a(t,{migrate:!1}).length:0;return{items:Object.assign(l,{archived:u}),...c+l.length<s.length?{next:ve(l.at(-1).taskId)}:{}}}async function*yt(e,t){let r=-1;for(;;){let i=await e.tasks.stream(t,r);if(!i.ok||!i.body){let r=await e.tasks.get(t);if(y.includes(r.status))return;if(i.status===401)continue;throw new n(`server`,`The task stream answered ${i.status}.`)}let a=!1;for await(let e of be(i.body))if(e.event===`log`){let t=JSON.parse(e.data);r=t.seq,yield N(t)}else e.event===`end`&&(a=!0);if(a)return}}async function*bt(e){yield*await e}async function Q(e,t={}){let{cwd:n,api:r}=q(t);if(r){let n=I(await Y(r,e));return{task:n,events:t.from===void 0?yt(r,n.id):bt(r.tasks.logs(n.id,t.from-1).then(e=>e.map(N))),async final(){let e=await r.tasks.get(n.id),t=I(e);return{taskId:n.id,status:t.status,result:P(e),task:t}}}}let i=J(n,e);return{task:i,events:t.from===void 0?dt(n,i.id,{tail:t.tail}):bt(c(n,i.id,1/0).slice(t.from)),async final(){let e=u(n,p(n,i.id)??i),t=ne(L.join(m(n,i.id),`result.json`));return{taskId:i.id,status:e.status,result:t,task:e}}}}async function xt(e,t,n={}){let{cwd:r,api:i}=q(n);if(i){let r=await i.tasks.steer(e,t,{...n.model?{model:n.model}:{},...n.access?{access:n.access}:{}}),a=r.steered??(r.task?`resumed`:`live`);if(!n.wait||a===`queued`)return{taskId:e,steered:a};let o=await Z(i,e);return{taskId:e,steered:a,status:I(o).status,finalMessage:P(o)?.finalMessage??null}}let a=await B(r,J(r,e),t,{model:n.model,access:n.access});if(!n.wait||a.steered===`queued`)return a;let o=p(r,a.taskId),s=o?(await E(r,o.id)).task:null,c=ne(L.join(m(r,a.taskId),`result.json`));return{...a,status:s?.status??null,finalMessage:c?.finalMessage??null}}async function St(e,t,r,i){let a=(await e.tasks.get(t)).answer?.length??0,o=new AbortController,s=await e.tasks.events([t],void 0,o.signal);try{let c=(await e.tasks.ask(t,r,i?{model:i}:{})).answer,l=!1,u;for(;c===void 0&&!l;){if(!s.ok||!s.body)throw new n(`server`,`The task events stream answered ${s.status}.`);for await(let e of be(s.body)){if(u=e.id??u,e.event!==`task`)continue;let n=JSON.parse(e.data);if(n.id===t&&((n.answer?.length??0)>a?c=n.answer[a]:l=!!n.deleted||y.includes(n.status),c!==void 0||l))break}c===void 0&&!l&&(s=await e.tasks.events([t],u,o.signal))}let d=typeof c==`string`?c:``;return{taskId:t,answer:d||null,...c===void 0?{error:`The task ended before it answered.`}:{},ok:!!d}}finally{o.abort()}}async function Ct(e,t,n={}){let{cwd:r,api:i}=q(n);if(i)return n.onAsking?.(e),St(i,e,t,n.model);let a=J(r,e);n.onAsking?.(a.id);let o=await V(r,a,t,{model:n.model});return{taskId:a.id,answer:o.finalMessage||null,...o.error?{error:o.error.message}:{},ok:o.status===0}}const wt=(e,t)=>({taskId:e,id:t.id,reason:t.reason,actions:t.actions,createdAt:t.createdAt,answered:t.response?.decision??null,deniedReason:t.response?.decision===`decline`?t.response.reason??null:null});async function Tt(e,t={}){let{cwd:n,api:r}=q(t);if(r)return(e?[await r.tasks.get(e)]:await r.tasks.list({limit:200})).flatMap(n=>F(n).filter(n=>t.denied?n.answered===`decline`:e||!n.answered).map(e=>({taskId:n.task.id,...e})));let i=t.denied?M:j;if(!e)return H(n,i,`all`).map(({taskId:e,...t})=>wt(e,t));let a=J(n,e);return(t.denied?M:A)(m(n,a.id)).map(e=>wt(a.id,e))}async function $(e,t,r={}){let{cwd:i,api:a}=q(r),o=r.deny?`decline`:`accept`;if(a){if(!e||!t)throw new n(`invalid-option`,`Server approvals need a task id and approval id.`,{hint:`Usage: coder task approve <task-id> <approval-id> --server <url>`});return await a.tasks.approve(e,t,o,r.reason?{reason:r.reason}:{}),{taskId:e,approvalId:t,decision:o}}if(e&&!t&&e.startsWith(`apr-`)&&(t=e,e=H(i,A,`all`).find(e=>e.id===t)?.taskId,!e))throw new n(`invalid-option`,`No approval "${t}".`,{hint:`List them: coder task approvals`});if(!e||!t)throw new n(`invalid-option`,`Missing approval id.`,{hint:[`List them: coder task approvals`,`Usage: coder task approve [task-id] <approval-id> [--deny] [--reason <why>]`]});let s=J(i,e);return await U(i,s,t,o,{reason:r.reason}),{taskId:s.id,approvalId:t,decision:o}}async function Et(e,t={}){let{cwd:n,api:r}=q(t);if(r){let t=e??(await Y(r)).task.id;return await r.tasks.cancel(t),{taskId:t,status:`cancelled`,interrupt:`stop requested on the server`}}let i=J(n,e),{interrupt:a}=await G(n,i);return{taskId:i.id,status:`cancelled`,interrupt:a}}async function Dt(e,t={}){let{cwd:n,api:r}=q(t);if(r){let n=t.allStopped?(await r.tasks.list({limit:200})).filter(e=>y.includes(e.status)).map(e=>e.task.id):[];return t.allStopped?(await Promise.all(n.map(e=>r.tasks.archive(e))),{archived:n,count:n.length}):(e||X([`Archive one: coder task archive <task-id> --server`]),await r.tasks.archive(e),{taskId:e,archived:!0})}if(t.allStopped){let e=C(n).filter(e=>y.includes(e.status));for(let t of e)_(n,t);return{archived:e.map(e=>e.id),count:e.length}}e||X([`Archive one: coder task archive <task-id>`,`Archive all stopped: coder task archive --all-stopped`]);let i=J(n,e);return _(n,i),{taskId:i.id,archived:!0}}async function Ot(e,t={}){let{cwd:r,api:i}=q(t);if(i){let n=t.allArchived?(await i.tasks.list({limit:200,archived:!0})).map(e=>e.task.id):[];return t.allArchived?(await Promise.all(n.map(e=>i.tasks.delete(e))),{deleted:n,count:n.length}):(e||X([`Delete one: coder task delete <task-id> --server`]),await i.tasks.delete(e),{taskId:e,deleted:!0})}if(t.allArchived){let e=a(r).filter(e=>K(r,e)).map(e=>e.id);return{deleted:e,count:e.length}}e||X([`Delete one: coder task delete <task-id>`,`Delete all archived: coder task delete --all-archived`]);let o=J(r,e);if(o.status===`running`)throw new n(`invalid-option`,`Task ${o.id} is still running.`,{hint:`Stop it first: coder task stop ${o.id}`});return K(r,o),{taskId:o.id,deleted:!0}}async function*kt(e,t={}){yield*(await Q(e,t)).events}export{Et as _,Dt as a,Q as b,K as c,W as d,Ot as f,B as g,xt as h,$ as i,et as l,ht as m,U as n,Ct as o,gt as p,Tt as r,V as s,$e as t,vt as u,G as v,kt as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ea as e}from"./args-CJsHYWbt.js";import{t}from"./errors-DK_trCff.js";import{c as n,s as r}from"./load-PqaDHiHX.js";import{t as i}from"./integrations-BVmsk64f.js";import{c as a,f as o,m as s}from"./definition-4on4SG5J.js";import{i as c,n as l}from"./remote-BbXx6S9P.js";import"./dispatch-BaW2X6Sc.js";import{l as u,r as d}from"./exec-CAaYFJD1.js";import f from"node:path";import p from"node:process";import m from"node:fs/promises";var h=e({agents:()=>_});const g=e=>e.cwd?f.resolve(e.cwd):p.cwd(),_={list:(e={})=>e.server===void 0?n(g(e),i):l(e).agents.list(),async show(e,r={}){if(!e)throw new t(`invalid-option`,`Missing agent id.`,{hint:`Usage: coder agent show <id>`});if(r.server===void 0){let a=(await n(g(r),i)).find(t=>t.id===e);if(!a)throw new t(`invalid-option`,`No agent named "${e}".`,{hint:`List agents: coder agent list`});return a}let a=l(r),o=await a.agents.get(e,{installations:!0}),s=await a.agents.version(e,o.currentVersion);return{...o,definition:s.definition}},async settings(e,n){if(!e)throw new t(`invalid-option`,`Missing agent id.`,{hint:`Usage: coder agent settings <id> --model <name[/effort]|engine/model[/effort]>`});let r=Object.fromEntries([`model`,`access`].flatMap(e=>n[e]?[[e,n[e]]]:[]));n.connections!==void 0&&(r.connections=n.connections);let i=Object.entries(n.events??{}),a=n.matches??{},c=n.instructions!==void 0||Object.keys(a).length;if(!Object.keys(r).length&&!i.length&&!c)throw new t(`invalid-option`,`Give --model, --access, --connections, --events, --instructions or --match.`);let u=l(n),d=await u.agents.get(e);i.length&&(r.integrations={...d.settings?.integrations,...Object.fromEntries(i.map(([e,t])=>[e,{allowedEvents:t}]))});let f=[],p=e=>e.catch(e=>{if(!(e instanceof t)||e.code!==`approval-pending`)throw e;f.push(e)});if(c){let t=await u.agents.version(e,d.currentVersion);await p(u.agents.put(e,{definition:s(t.definition,a),systemPrompt:n.instructions??t.systemPrompt,...t.files?{files:t.files}:{}}))}let m=o(d.settings??{}),h=Object.keys(r).length?await p(u.agents.settings(e,{...m,...r})):void 0;if(f.length)throw new t(`approval-pending`,f.map(e=>e.message).join(` `),{approval:f[0].approval});return h??u.agents.get(e)},init:r,push:(e,t={})=>c(l(t),g(t),e),async run(e,r,o={}){if(o.wait&&o.server===void 0)throw new t(`invalid-option`,`--wait needs --server.`,{hint:`Offline runs print their reply as they finish`});if(!e||!r)throw new t(`invalid-option`,`Missing agent id or event file.`,{hint:`Usage: coder agent run <agent> <event.json>`});let s=g(o),c=typeof r==`string`?JSON.parse(await m.readFile(f.resolve(s,r),`utf8`)):r;if(o.server!==void 0){let t=l(o),n=await t.tasks.create({agent:e,event:c});if(!o.wait||!n.tasks.length)return n;let r=[];for(let e of n.tasks){let n=await t.tasks.wait(e,{onLog:o.onLog});r.push(n),o.onDone?.(n)}return r}let p=await n(s,i),h=p.find(t=>t.id===e);if(!h)throw new t(`invalid-option`,`No agent named "${e}".`);if(!a(c,p).some(t=>t.agent.id===e))throw new t(`invalid-option`,`Agent "${e}" does not match event "${c.type}".`);return d({cwd:s,agent:e,flow:`default`,task:{...u(h,c),tools:{}},post:!1})},async usage(e={}){if(e.by&&![`agent`,`installation`,`engine`].includes(e.by))throw new t(`invalid-option`,`Invalid --by value.`,{hint:`Use agent, installation, or engine`});let n=e.by;if(e.server!==void 0)return l(e).usage({since:e.since,by:n});let[{localUsage:r},{usageSummary:i}]=await Promise.all([import(`./apps-B6mUToTa.js`).then(e=>e.on),import(`./apps-B6mUToTa.js`).then(e=>e.bt)]);return i(r(g(e)).map(([,e])=>e),e.since??0,n)},integrations:{list:()=>Object.entries(i).map(([e,t])=>({id:e,description:t.description,events:Object.keys(t.events),tools:t.tools.presets.auto})),show(e){if(!e)throw new t(`invalid-option`,`Missing integration id.`,{hint:`Usage: coder agent integrations show <id>`});let n=i[e];if(!n)throw new t(`invalid-option`,`Unknown integration "${e}".`,{hint:`List integrations: coder agent integrations list`});return{id:e,events:Object.fromEntries(Object.entries(n.events).map(([e,t])=>[e,t.description])),tools:n.tools.presets}}}};export{_ as n,h as t};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{Ca as e,Sa as t,_a as n,ma as r,wa as i,ya as a}from"./args-CJsHYWbt.js";import{B as o,vt as s}from"./state-Br-Fuaxg.js";import{b as c,n as l}from"./config-D_RuO6gX.js";import{g as u,o as d}from"./connections-Cswv7r8Z.js";import f from"node:path";import p from"node:process";import{fileURLToPath as m}from"node:url";import h from"node:fs";import{spawn as g,spawnSync as _}from"node:child_process";import v from"node:net";import y from"node:os";import ee from"node:readline";import b,{createHash as te}from"node:crypto";import{channel as ne}from"node:diagnostics_channel";import re from"node:http";const x={false:`broker.json`,true:`broker-network.json`};function S(e=`coder-`){return h.mkdtempSync(f.join(y.tmpdir(),e))}function C(e){let t=j(e);return v.createConnection({path:t.path})}async function w(e,t=2e3){let n=j(e);return!!await s(f.dirname(n.path)).until(()=>new Promise(t=>{let n=C(e);n.on(`connect`,()=>{n.end(),t(!0)}),n.on(`error`,()=>t(void 0))}),t,void 0,n.kind===`pipe`?250:1e3)}function ie({scriptPath:e,cwd:t,endpoint:n,pidFile:r,logFile:i,networkAccess:a=!1,env:o=p.env}){let s=h.openSync(i,`a`),c=g(p.execPath,[e,`serve`,`--endpoint`,n,`--cwd`,t,`--pid-file`,r,`--network-access`,String(a)],{cwd:t,env:{...u(o),...o.CODER_CONNECTION_ENV_VALUES?{CODER_CONNECTION_ENV_VALUES:o.CODER_CONNECTION_ENV_VALUES}:{}},detached:!0,stdio:[`ignore`,s,s]});return c.unref(),h.closeSync(s),c}function ae(){let e=[new URL(`./lib/broker.js`,import.meta.url),new URL(`./main.js`,import.meta.url)];for(let t of e){let e=m(t);if(h.existsSync(e))return e}throw Error("Coder broker script not found next to the runtime. Rebuild with `bun run build`.")}function T(e,t=!1,n){let r=x[t?`true`:`false`];return f.join(o(e),n?r.replace(`.json`,`-${n}.json`):r)}function E(e,t=!1,n){let r=T(e,t,n);if(!h.existsSync(r))return null;try{let e=JSON.parse(h.readFileSync(r,`utf8`));return(e.networkAccess??!1)===t?e:null}catch{return null}}function D(e){let t=o(e),n;try{n=h.readdirSync(t)}catch{return[]}return n.flatMap(e=>{if(!/^broker(?:-network)?(?:-[a-f0-9]{64})?\.json$/.test(e))return[];try{let n=JSON.parse(h.readFileSync(f.join(t,e),`utf8`));return typeof n.endpoint==`string`?[n]:[]}catch{return[]}})}function O(e,t,n=t.networkAccess??!1,r){let i=o(e);h.mkdirSync(i,{recursive:!0}),h.writeFileSync(T(e,n,r),`${JSON.stringify(t,null,2)}\n`,`utf8`)}function k(e,t=!1,n){let r=T(e,t,n);h.existsSync(r)&&h.unlinkSync(r)}async function oe(e){if(!e)return!1;try{return await w(e,150)}catch{return!1}}async function se(e,t={}){let n=t.scriptPath??ae(),i=r(),a=t.networkAccess??!1,o=E(e,a,t.connectionKey),s=o?.version===i&&o?.scriptPath===n&&(o?.networkAccess??!1)===a;if(o&&s&&await oe(o.endpoint))return o;o&&(A({endpoint:o.endpoint??null,pidFile:o.pidFile??null,logFile:o.logFile??null,sessionDir:o.sessionDir??null,pid:o.pid??null,killProcess:t.killProcess??null}),k(e,a,t.connectionKey));let c=S(),l=le(c),u=f.join(c,`broker.pid`),d=f.join(c,`broker.log`),m=ie({scriptPath:n,cwd:e,endpoint:l,pidFile:u,logFile:d,networkAccess:a,env:t.env??p.env});if(!await w(l,t.timeoutMs??2e3))return A({endpoint:l,pidFile:u,logFile:d,sessionDir:c,pid:m.pid??null,killProcess:t.killProcess??null}),null;let h={endpoint:l,pidFile:u,logFile:d,sessionDir:c,pid:m.pid??null,networkAccess:a,version:i,scriptPath:n};return O(e,h,a,t.connectionKey),h}function A({endpoint:e=null,pidFile:t,logFile:n,sessionDir:r=null,pid:i=null,killProcess:a=null}){if(Number.isFinite(i)&&a)try{a(i)}catch{}if(t&&h.existsSync(t)&&h.unlinkSync(t),n&&h.existsSync(n)&&h.unlinkSync(n),e)try{let t=j(e);t.kind===`unix`&&h.existsSync(t.path)&&h.unlinkSync(t.path)}catch{}let o=r??(t?f.dirname(t):n?f.dirname(n):null);if(o&&h.existsSync(o))try{h.rmdirSync(o)}catch{}}function ce(e){return String(e??``).replace(/[^A-Za-z0-9._-]/g,`-`).replace(/^-+|-+$/g,``)}function le(e){return p.platform===`win32`?`pipe:\\\\.\\pipe\\${ce(`${f.win32.basename(e)}-codex-app-server`)}`:`unix:${f.join(e,`broker.sock`)}`}function j(e){if(typeof e!=`string`||e.length===0)throw Error(`Missing broker endpoint.`);if(e.startsWith(`pipe:`)){let t=e.slice(5);if(!t)throw Error(`Broker pipe endpoint is missing its path.`);return{kind:`pipe`,path:t}}if(e.startsWith(`unix:`)){let t=e.slice(5);if(!t)throw Error(`Broker Unix socket endpoint is missing its path.`);return{kind:`unix`,path:t}}throw Error(`Unsupported broker endpoint: ${e}`)}function M(e,t){let n=ne(`coder.timing`);n.hasSubscribers&&n.publish({at:Date.now(),pid:p.pid,stage:e,...t})}function N(e,t=[],n={}){let r=_(e,t,{cwd:n.cwd,env:n.env,encoding:`utf8`,input:n.input,maxBuffer:n.maxBuffer,stdio:n.stdio??`pipe`,shell:p.platform===`win32`?p.env.SHELL||!0:!1,windowsHide:!0});return{command:e,args:t,status:r.status??0,signal:r.signal??null,stdout:r.stdout??``,stderr:r.stderr??``,error:r.error??null}}function P(e,t=[`--version`],n={}){let r=N(e,t,n);return r.error&&r.error.code===`ENOENT`?{available:!1,detail:`not found`}:r.error?{available:!1,detail:r.error.message}:r.status===0?{available:!0,detail:r.stdout.trim()||r.stderr.trim()||`ok`}:{available:!1,detail:r.stderr.trim()||r.stdout.trim()||`exit ${r.status}`}}function F(e){return new Promise(t=>{let n=g(e,p.argv.slice(1),{env:p.env,shell:!1,stdio:`inherit`}),r=()=>n.kill(`SIGINT`),i=()=>n.kill(`SIGTERM`);p.once(`SIGINT`,r),p.once(`SIGTERM`,i);let a=e=>{p.off(`SIGINT`,r),p.off(`SIGTERM`,i),t(e)};n.once(`error`,e=>a({error:e,status:null,signal:null})),n.once(`close`,(e,t)=>a({status:e,signal:t}))})}function I(r,o,s,c){let l=a(i(e,{children:[t(`instructions`,{children:[`Answer one question about a Coder task, read-only.`,`You are not the task: never continue, redo or fix its work. The task never sees this question or your answer.`,`Grep or read the files selectively; events can be large.`,`Answer directly and concisely.`].join(`
|
|
2
|
+
`)}),t(`task`,{children:t(n,{value:{id:r.id,name:r.name??void 0,status:r.status,engine:r.engine,model:r.model??void 0,effort:r.effort??void 0,workspace:r.cwd??void 0,created:r.createdAt??void 0,finished:r.completedAt??void 0}})}),t(`task-prompt`,{children:t(n,{children:r.prompt??`(unknown)`})}),t(`files`,{children:[`progress log, one JSON event per line: ${o.log}`,`final result: ${o.result}`,`worker output: ${o.worker}`,r.cwd&&`workspace with the task's code and changes: ${r.cwd}`].filter(Boolean).join(`
|
|
3
|
+
`)}),t(`question`,{children:t(n,{children:s})})]}));return c?`${l}\n\nCoder command ${c}`:l}function L(e){return e?`Reply with only one JSON object matching this JSON Schema, without prose or markdown fences:\n${JSON.stringify(e)}`:`Reply with only one JSON object matching the requested shape, without prose or markdown fences.`}const R=e=>`Your last reply did not match the required JSON: ${e}\nReply again with only the JSON object.`,z=e=>e.namespace?`${e.namespace}__${e.name}`:e.name;function B(e){let t=new Map;for(let n of Array.isArray(e.tools)?e.tools:[])if(n?.type===`function`&&t.set(n.name,{name:n.name,tool:n}),n?.type===`namespace`&&Array.isArray(n.tools))for(let e of n.tools)e?.type===`function`&&t.set(z({name:e.name,namespace:n.name}),{name:e.name,namespace:n.name,tool:e});return t}function V(e){let t=[];typeof e.instructions==`string`&&e.instructions&&t.push({role:`system`,content:e.instructions});let n=Array.isArray(e.input)?e.input:[];for(let e of n)switch(e?.type){case`message`:{let n=Array.isArray(e.content)?e.content.map(e=>e?.text??``).join(``):String(e.content??``);t.push({role:e.role===`developer`?`system`:e.role,content:n});break}case`function_call`:{let n={id:e.call_id,type:`function`,function:{name:z(e),arguments:e.arguments??`{}`}},r=t.at(-1);r?.role===`assistant`&&r.tool_calls?r.tool_calls.push(n):t.push({role:`assistant`,content:null,tool_calls:[n]});break}case`function_call_output`:{let n=e.output;t.push({role:`tool`,tool_call_id:e.call_id,content:typeof n==`string`?n:JSON.stringify(n??``)});break}}return t}function H(e){let t=[...B(e)].map(([e,{tool:t}])=>({type:`function`,function:{name:e,description:t.description??``,parameters:t.parameters??{type:`object`,properties:{}}}})),n=e.text?.format;return{model:e.model,messages:V(e),...t.length?{tools:t,tool_choice:e.tool_choice??`auto`}:{},...typeof e.parallel_tool_calls==`boolean`?{parallel_tool_calls:e.parallel_tool_calls}:{},...e.reasoning?.effort?{reasoning:{effort:e.reasoning.effort}}:{},...n?.type===`json_schema`?{response_format:{type:`json_schema`,json_schema:{name:n.name,schema:n.schema,strict:n.strict??!1}}}:{},stream:!0,stream_options:{include_usage:!0}}}var U=class{send;model;functions;responseId=`resp_bridge_${b.randomUUID()}`;text=``;textOpen=!1;toolCalls=new Map;usage=null;buffer=``;constructor(e,t,n){this.model=e,this.functions=t,this.send=n,this.send({type:`response.created`,response:{id:this.responseId,object:`response`,status:`in_progress`,model:e,output:[]}})}push(e){this.buffer+=e;let t=this.buffer.split(`
|
|
4
|
+
`);this.buffer=t.pop()??``;for(let e of t){let t=e.trim();if(!t.startsWith(`data:`))continue;let n=t.slice(5).trim();if(!n||n===`[DONE]`)continue;let r;try{r=JSON.parse(n)}catch{continue}r.usage&&(this.usage=r.usage);let i=r.choices?.[0]?.delta;if(i){typeof i.content==`string`&&i.content&&(this.textOpen||(this.textOpen=!0,this.send({type:`response.output_item.added`,output_index:0,item:{type:`message`,id:`msg_bridge_0`,status:`in_progress`,role:`assistant`,content:[]}})),this.text+=i.content,this.send({type:`response.output_text.delta`,item_id:`msg_bridge_0`,output_index:0,content_index:0,delta:i.content}));for(let e of i.tool_calls??[]){let t=this.toolCalls.get(e.index)??{id:``,name:``,args:``};e.id&&(t.id=e.id),e.function?.name&&(t.name+=e.function.name),e.function?.arguments&&(t.args+=e.function.arguments),this.toolCalls.set(e.index,t)}}}}finish(){let e=[];if(this.text){let t={type:`message`,id:`msg_bridge_0`,status:`completed`,role:`assistant`,content:[{type:`output_text`,text:this.text,annotations:[]}]};e.push(t),this.send({type:`response.output_item.done`,output_index:0,item:t})}let t=e.length;for(let n of this.toolCalls.values()){let r=this.functions.get(n.name),i={type:`function_call`,id:`fc_bridge_${t}`,call_id:n.id||`call_bridge_${t}`,name:r?.name??n.name,...r?.namespace?{namespace:r.namespace}:{},arguments:n.args||`{}`,status:`completed`};e.push(i),this.send({type:`response.output_item.done`,output_index:t,item:i}),t+=1}this.send({type:`response.completed`,response:{id:this.responseId,object:`response`,status:`completed`,model:this.model,output:e,usage:{input_tokens:this.usage?.prompt_tokens??0,input_tokens_details:{cached_tokens:this.usage?.prompt_tokens_details?.cached_tokens??0},output_tokens:this.usage?.completion_tokens??0,output_tokens_details:{reasoning_tokens:this.usage?.completion_tokens_details?.reasoning_tokens??0},total_tokens:this.usage?.total_tokens??0}}})}};async function W(){let e=new Map;async function t(t,n,r){let i=t.wireApi===`responses`,a=c(t.baseUrl,i?`responses`:`chat/completions`),o=`${t.wireApi} ${t.baseUrl}`,s=e.get(o)??{resolvedTarget:null,schemaSupported:!0};e.set(o,s);async function l(e){let t=s.resolvedTarget?[s.resolvedTarget]:a,n=null;for(let i of t)if(n=await fetch(i,{method:`POST`,headers:{"content-type":`application/json`,...r?{authorization:r}:{}},body:e}),n.status!==404)return s.resolvedTarget=i,n;return n}let u=n.text?.format,d=i?n:H(n),f=()=>{let e=L(u.schema);if(i){let{format:t,...r}=n.text;return{...n,text:r,input:[...n.input??[],{type:`message`,role:`user`,content:[{type:`input_text`,text:e}]}]}}let{response_format:t,...r}=d;return{...r,messages:[...V(n),{role:`user`,content:e}]}};if(u?.type!==`json_schema`)return l(JSON.stringify(d));if(!s.schemaSupported)return l(JSON.stringify(f()));let p=await l(JSON.stringify(d));if(![400,422,501].includes(p.status))return p;let m=await p.clone().text();return/(invalid.{0,30}schema|schema.{0,30}invalid|unsupported.{0,30}(keyword|constraint)|(keyword|constraint).{0,30}unsupported)/i.test(m)||!/(response_format|json_schema|text[.\s]format)/i.test(m)||!/(not supported|unsupported|unknown parameter|unrecognized|not available)/i.test(m)?p:(s.schemaSupported=!1,await p.body?.cancel(),l(JSON.stringify(f())))}let n=b.randomBytes(16).toString(`hex`),r=re.createServer((e,r)=>{let i=t=>[e.headers[t]].flat()[0],a=i(l.baseUrl),o=i(l.wireApi)===`responses`?`responses`:`chat`;if(e.method!==`POST`||!RegExp(`^/${n}/v1/responses/*$`).test(e.url??``)||!a){r.writeHead(404,{"content-type":`application/json`}),r.end(JSON.stringify({error:{message:`coder chat bridge: only POST /v1/responses with ${l.baseUrl} is supported`}}));return}let s={baseUrl:a,wireApi:o},c=``;e.on(`data`,e=>c+=e),e.on(`end`,async()=>{let n;try{n=JSON.parse(c)}catch{r.writeHead(400,{"content-type":`application/json`}),r.end(JSON.stringify({error:{message:`invalid JSON`}}));return}try{let i=await t(s,n,e.headers.authorization);if(s.wireApi===`responses`){if(r.writeHead(i.status,{"content-type":i.headers.get(`content-type`)??`application/json`,"cache-control":`no-store`}),i.body)for await(let e of i.body)r.write(e);r.end();return}if(!i.ok||!i.body){let e=await i.text().catch(()=>``);r.writeHead(i.status,{"content-type":`application/json`}),r.end(e||JSON.stringify({error:{message:`upstream HTTP ${i.status}`}}));return}r.writeHead(200,{"content-type":`text/event-stream`,"cache-control":`no-store`});let a=new U(n.model,B(n),e=>r.write(`data: ${JSON.stringify(e)}\n\n`)),o=new TextDecoder;for await(let e of i.body)a.push(o.decode(e,{stream:!0}));a.finish(),r.end()}catch(e){let t=e instanceof Error?e.message:String(e);r.writeHead(502,{"content-type":`application/json`}),r.end(JSON.stringify({error:{message:`coder chat bridge: ${t}`}}))}})});await new Promise(e=>r.listen(0,`127.0.0.1`,e));let i=r.address();return{url:`http://127.0.0.1:${typeof i==`object`&&i?i.port:0}/${n}`,close:()=>new Promise(e=>{r.close(()=>e()),r.closeAllConnections?.()})}}const ue=-32001,de=`coder/notice`,fe=`coder/appServerExited`,G=`broker/recycle`;function K(){return{title:`Coder`,name:`coder`,version:r()}}const q={experimentalApi:!0,requestAttestation:!1,optOutNotificationMethods:[`item/agentMessage/delta`,`item/reasoning/summaryTextDelta`,`item/reasoning/summaryPartAdded`,`item/reasoning/textDelta`]};function J(e,t,n){return n===void 0?{code:e,message:t}:{code:e,message:t,data:n}}function Y(e,t){let n=Error(e);return n.data=t,t?.code!==void 0&&(n.rpcCode=t.code),n}var X=class{cwd;options;pending;nextId;stderr;closed;exitError;notificationHandler;serverRequestHandler;noticeHandler;lineBuffer;transport;bridgeUrl;exitPromise;exitResolved;resolveExit;handleServerRequest;constructor(e,t={}){this.cwd=e,this.options=t,this.pending=new Map,this.nextId=1,this.stderr=``,this.closed=!1,this.exitError=null,this.notificationHandler=null,this.serverRequestHandler=null,this.noticeHandler=null,this.lineBuffer=``,this.transport=`unknown`,this.handleServerRequest=e=>this.defaultHandleServerRequest(e),this.exitPromise=new Promise(e=>{this.resolveExit=e})}setNotificationHandler(e){this.notificationHandler=e}setServerRequestHandler(e){this.serverRequestHandler=e}setNoticeHandler(e){this.noticeHandler=e}request(e,t){if(this.closed)throw Error(`codex app-server client is closed.`);if(this.exitResolved)return Promise.reject(this.exitError??Error(`codex app-server connection closed.`));let n=this.nextId;return this.nextId+=1,new Promise((r,i)=>{this.pending.set(n,{resolve:r,reject:i,method:e}),this.sendMessage({id:n,method:e,params:t})})}notify(e,t={}){this.closed||this.sendMessage({method:e,params:t})}handleChunk(e){this.lineBuffer+=e;let t=this.lineBuffer.indexOf(`
|
|
5
|
+
`);for(;t!==-1;){let e=this.lineBuffer.slice(0,t);this.lineBuffer=this.lineBuffer.slice(t+1),this.handleLine(e),t=this.lineBuffer.indexOf(`
|
|
6
|
+
`)}}handleLine(e){if(!e.trim())return;let t;try{t=JSON.parse(e)}catch(t){this.handleExit(Y(`Failed to parse codex app-server JSONL: ${t instanceof Error?t.message:String(t)}`,{line:e}));return}if(t.id!==void 0&&t.method){this.handleServerRequest(t);return}if(t.id!==void 0){let e=this.pending.get(t.id);if(!e)return;this.pending.delete(t.id),t.error?e.reject(Y(t.error.message??`codex app-server ${e.method} failed.`,t.error)):e.resolve(t.result??{});return}if(t.method===`coder/notice`){this.noticeHandler?.(String(t.params?.message??``));return}if(t.method===`coder/appServerExited`){this.handleExit(Y(String(t.params?.message??`codex app-server exited.`)));return}t.method&&this.notificationHandler&&this.notificationHandler(t)}defaultHandleServerRequest(e){let t=this.serverRequestHandler;if(!t){this.sendMessage({id:e.id,error:J(-32601,`Unsupported server request: ${e.method}`)});return}Promise.resolve().then(()=>t(e.method,e.params??{})).then(t=>{this.sendMessage({id:e.id,result:t??{}})}).catch(t=>{this.sendMessage({id:e.id,error:J(-32e3,t instanceof Error?t.message:String(t))})})}handleExit(e){if(!this.exitResolved){this.exitResolved=!0,this.exitError=e??null;for(let e of this.pending.values())e.reject(this.exitError??Error(`codex app-server connection closed.`));this.pending.clear(),this.resolveExit(void 0)}}sendMessage(e){throw Error(`sendMessage must be implemented by subclasses.`)}},pe=class extends X{proc;readline;bridge;constructor(e,t={}){super(e,t),this.transport=`direct`,this.exitPromise=this.exitPromise.then(()=>this.bridge?.close())}async initialize(){let e=this.options.networkAccess??!1;this.bridge=this.options.bridgeUrl?void 0:await W(),this.bridgeUrl=this.options.bridgeUrl??this.bridge.url,M(`codex.spawn`),this.proc=g(`codex`,me(e,this.options.nativeMcp),{cwd:this.cwd,env:u(this.options.env??p.env),stdio:[`pipe`,`pipe`,`pipe`],shell:p.platform===`win32`?p.env.SHELL||!0:!1,windowsHide:!0});let t=this.proc.stdout,n=this.proc.stderr;if(!t||!n)throw Error(`codex app-server did not expose stdio streams.`);t.setEncoding(`utf8`),n.setEncoding(`utf8`),n.on(`data`,e=>{this.stderr+=e}),this.proc.on(`error`,e=>{this.handleExit(e)}),this.proc.stdin?.on(`error`,()=>{}),this.proc.on(`exit`,(e,t)=>{let n=this.stderr.trim(),r=e===0?null:Y(`codex app-server exited unexpectedly (${t?`signal ${t}`:`exit ${e}`}).${n?`\n${n}`:``}`);this.handleExit(r)}),this.readline=ee.createInterface({input:t}),this.readline.on(`line`,e=>{this.handleLine(e)}),await this.request(`initialize`,{clientInfo:K(),capabilities:q}),this.notify(`initialized`,{}),M(`codex.initialized`)}async close(){if(this.closed){await this.exitPromise;return}this.closed=!0,this.readline&&this.readline.close(),this.proc&&!this.proc.killed&&(this.proc.stdin?.end(),setTimeout(()=>{if(this.proc&&!this.proc.killed&&this.proc.exitCode===null)if(p.platform===`win32`)try{_(`taskkill`,[`/PID`,String(this.proc.pid),`/T`,`/F`],{stdio:`ignore`})}catch{}else this.proc.kill(`SIGTERM`)},50).unref?.()),await this.exitPromise}sendMessage(e){let t=`${JSON.stringify(e)}\n`,n=this.proc?.stdin;if(!n)throw Error(`codex app-server stdin is not available.`);n.write(t)}};function me(e,t=!1){return[`-c`,`sandbox_workspace_write.network_access=${e}`,`app-server`,...t?[]:[`--disable`,`plugins`,`--disable`,`apps`]]}var he=class extends X{endpoint;socket;constructor(e,t={}){super(e,t),this.transport=`broker`,this.endpoint=t.brokerEndpoint}async initialize(){await new Promise((e,t)=>{let n=j(this.endpoint);this.socket=v.createConnection({path:n.path}),this.socket.setEncoding(`utf8`),this.socket.on(`connect`,e),this.socket.on(`data`,e=>{this.handleChunk(e)}),this.socket.on(`error`,e=>{this.exitResolved||t(e),this.handleExit(e)}),this.socket.on(`close`,()=>{this.handleExit(this.exitError)})});let e=await this.request(`initialize`,{clientInfo:K(),capabilities:q});this.bridgeUrl=e.bridgeUrl,this.notify(`initialized`,{}),M(`codex.initialized`)}async close(){if(this.closed){await this.exitPromise;return}this.closed=!0,this.socket&&this.socket.end(),await this.exitPromise}sendMessage(e){let t=`${JSON.stringify(e)}\n`,n=this.socket;if(!n)throw Error(`codex app-server broker connection is not connected.`);n.write(t)}},Z=class{static async connect(e,t={}){let n=t.env??p.env,r=d(n);t={...t,env:u(n)};let i=t.networkAccess??!1,a=null;!t.disableBroker&&!t.nativeMcp&&(a=r?null:t.brokerEndpoint??t.env?.CODER_APP_SERVER_ENDPOINT??p.env.CODER_APP_SERVER_ENDPOINT??null,!a&&t.reuseExistingBroker&&(a=E(e,i,r)?.endpoint??null),!a&&!t.reuseExistingBroker&&(a=(await se(e,{env:n,networkAccess:i,connectionKey:r}))?.endpoint??null));let o=a?new he(e,{...t,brokerEndpoint:a}):new pe(e,t);return await o.initialize(),o}};async function ge(e,t,n={}){let r=n.connect??Z.connect,i={...n.networkAccess===void 0?{}:{networkAccess:n.networkAccess},nativeMcp:n.nativeMcp??!1,disableBroker:n.disableBroker??!1},a=null;try{a=await r(e,i);let n=await t(a);return await a.close(),n}catch(n){let o=n,s=a?.transport===`broker`||!!p.env.CODER_APP_SERVER_ENDPOINT,c=a?.transport===`broker`&&o?.rpcCode===-32001||s&&(o?.code===`ENOENT`||o?.code===`ECONNREFUSED`);if(a&&=(await a.close().catch(()=>{}),null),!c)throw n;let l=await r(e,{...i,disableBroker:!0});try{return await t(l)}finally{await l.close()}}}async function _e(e){e.transport===`broker`&&await e.request(G,{}).catch(()=>{})}const ve=/access token could not be refreshed/i,ye=/model is not supported|Codex cannot run model/i;function Q(e){return e instanceof Error?e.message:String(e??``)}function be(e){return ve.test(e??``)}function $(e){return ye.test(e??``)}function xe(e,t){return!$(e)||/Codex cannot run model/.test(e??``)?null:`Codex cannot run model ${/'([^']+)' model/.exec(e??``)?.[1]??t??`this model`} on the signed-in account. Run \`codex login\` with an account that has it, or pick another alias (coder model list).`}function Se(e=p.env){return f.join(e.CODEX_HOME||f.join(y.homedir(),`.codex`),`auth.json`)}function Ce(e){try{let t=JSON.parse(Buffer.from(String(e).split(`.`)[1]??``,`base64url`).toString(`utf8`));return String(t.sub??t.email??``)}catch{return``}}function we(e=p.env,t){let n=Se(e),r;try{r=h.statSync(n).mtimeMs}catch{return``}if(t?.file===n&&t.mtimeMs===r)return t.fingerprint??``;try{let e=JSON.parse(h.readFileSync(n,`utf8`)),i=e.OPENAI_API_KEY?te(`sha256`).update(String(e.OPENAI_API_KEY)).digest(`hex`):``,a=[e.auth_mode??``,e.tokens?.account_id??``,Ce(e.tokens?.id_token),i].join(`|`);return t&&Object.assign(t,{file:n,mtimeMs:r,fingerprint:a}),a}catch{return t?.file===n?t.fingerprint??``:``}}export{j as C,E as S,P as _,Z as a,k as b,Q as c,_e as d,ge as f,R as g,L as h,G as i,be as l,I as m,ue as n,we as o,W as p,de as r,xe as s,fe as t,$ as u,M as v,D as x,F as y};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{Ea as e}from"./args-CJsHYWbt.js";import{gt as t,o as n}from"./state-Br-Fuaxg.js";import r from"node:path";import i from"node:fs";var a=e({APPROVERS:()=>s,ApprovalRefusedError:()=>S,NOT_ALLOWED:()=>o,SIMULATE_APPROVAL_ENV:()=>v,actionLines:()=>k,answerApproval:()=>y,approvalActionsLabel:()=>A,approvalFor:()=>u,approvalMessage:()=>D,changeDecisionMessage:()=>E,closeApprovals:()=>h,closedResponse:()=>m,codexApprovalHandler:()=>j,deniedApprovals:()=>f,escalate:()=>_,listApprovals:()=>l,markDelivered:()=>b,mergeApprovals:()=>T,pendingApprovals:()=>d,refusedAnswer:()=>C,requestApproval:()=>g,restoreApprovals:()=>w,stoppedMessage:()=>p,withDecisions:()=>O});const o=`Not allowed here. If the task truly needs this, escalate it with the exact command and why, then continue or end your turn; the decision arrives as a message, in this turn while it runs, else in a new one.`,s={agent:`a linked member`,workspace:`a workspace admin`,personal:`the member who asked`},c=e=>r.join(e,`approvals`);function l(e){let n=c(e);return i.existsSync(n)?i.readdirSync(n).filter(e=>e.endsWith(`.request.json`)).flatMap(e=>{let i=e.replace(/\.request\.json$/,``),a=t(r.join(n,e));if(!a)return[];let o=t(r.join(n,`${i}.response.json`));return[{...a,id:i,response:o}]}).sort((e,t)=>String(e.createdAt).localeCompare(String(t.createdAt))):[]}const u=(e,t)=>l(e).find(e=>e.response?.decision===`accept`&&e.actions.some(e=>e.trim()===t.trim())),d=e=>l(e).filter(e=>!e.response),f=e=>l(e).filter(e=>e.response?.decision===`decline`),p=e=>`The task was stopped, so approval "${e}" is closed.`,m=(e=new Date().toISOString())=>({decision:`closed`,answeredAt:e,deliveredAt:e});function h(e){let t=m();return d(e).map(n=>(x(e,n.id,t),{...n,response:t}))}function g(e,t){let n=c(e);i.mkdirSync(n,{recursive:!0});let a=`apr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`,o={id:a,reason:t.reason,actions:t.actions,createdAt:new Date().toISOString()},{id:s,response:l,...u}=o;return i.writeFileSync(r.join(n,`${a}.request.json`),`${JSON.stringify(u,null,2)}\n`,`utf8`),o}function _(e,t,r,i){let a=g(r,i);return n(e,t,{kind:`approval-escalated`,approvalId:a.id,summary:a.actions.join(`
|
|
2
|
+
`),actions:a.actions,reason:a.reason,message:`Approval needed (${a.id}): ${a.reason}`}),a}const v=`CODER_SIMULATE_APPROVAL`;function y(e,t,n,r,i){let a=l(e).find(e=>e.id===t);if(!a)throw Error(`No approval "${t}" for this task.`);if(a.response?.decision===`closed`)throw Error(p(t));if(a.response?.decision===`accept`)throw Error(`Approval "${t}" is already approved.`);let o={decision:n,...r?{reason:r}:{},answeredAt:new Date().toISOString(),...i?{by:i}:{}};return x(e,t,o),{...a,response:o}}function b(e,t){let n=l(e).find(e=>e.id===t.id)?.response;if(n?.decision!==t.response?.decision||n?.answeredAt!==t.response?.answeredAt)return t;let r={...t.response,deliveredAt:new Date().toISOString()};return x(e,t.id,r),{...t,response:r}}function x(e,t,n){i.writeFileSync(r.join(c(e),`${t}.response.json`),`${JSON.stringify(n,null,2)}\n`,`utf8`)}var S=class extends Error{};function C(e,t){return e?.response?.decision===`closed`&&t.response?.decision!==`closed`?p(t.id):e?.response?.decision===`accept`&&t.response?.decision!==`accept`?`Approval "${t.id}" is already approved`:null}function w(e,t){if(!t.length)return;let n=c(e);i.mkdirSync(n,{recursive:!0});for(let{id:e,response:a,...o}of t){let t=r.join(n,`${e}.request.json`);i.existsSync(t)||i.writeFileSync(t,`${JSON.stringify(o,null,2)}\n`,`utf8`),a&&i.writeFileSync(r.join(n,`${e}.response.json`),`${JSON.stringify(a,null,2)}\n`,`utf8`)}}function T(e,t){let n=new Set(e.filter(e=>e.change).map(e=>e.id));t=t.filter(e=>!n.has(e.id)||e.change);let r=new Map(e.map(e=>[e.id,e.response])),i=new Set(t.map(e=>e.id)),a=(e,t)=>e?.decision!==`closed`&&(!e||!t||String(t.answeredAt??``)>=String(e.answeredAt??``))?t??e:e;return[...t.map(e=>({...e,response:(n.has(e.id)&&r.get(e.id)?.decision!==`closed`?e.response:a(r.get(e.id),e.response))??null})),...e.filter(e=>!i.has(e.id))].sort((e,t)=>String(e.createdAt).localeCompare(String(t.createdAt)))}function E(e){let{decision:t,reason:n,by:r}=e.response,i=r?` by ${r}`:``;return t===`accept`?`Approved${i} and applied: ${e.reason}`:`Denied${i}: ${e.reason}${n?` ${n}`:``}`}function D(e){let{decision:t,reason:n}=e.response,{actions:r}=e,i=r.map((e,t)=>`${t+1}. ${e}`).join(` `);return t===`decline`?`Denied: ${i}${n?`: ${n}`:``}`:t===`closed`?`Closed, the task was stopped: ${i}`:r.length===1?`The user approved doing exactly this outside the sandbox for the rest of this task: ${r[0]}. Retry it outside the sandbox now, exactly as written.`:`The user approved doing exactly these outside the sandbox for the rest of this task: ${i}. Retry them outside the sandbox now, each exactly as written.`}const O=(e,t=[])=>e.map(e=>{let n=t.find(t=>t.response&&D(t)===e.prompt);return n?{...e,approval:n.id}:e}),k=e=>e.map((e,t)=>` ${t+1}. ${e.replaceAll(`
|
|
3
|
+
`,`
|
|
4
|
+
`)}`).join(`
|
|
5
|
+
`);function A(e){let t=e.actions.length;return`${t} action${t===1?``:`s`}`}function j(e){return async(t,n)=>(e({kind:`approval-decision`,method:t,decision:`decline`,summary:n.command??t,reason:o}),{decision:`decline`})}export{p as C,w as S,l as _,k as a,d as b,u as c,E as d,h as f,_ as g,f as h,v as i,D as l,j as m,S as n,y as o,m as p,o as r,A as s,s as t,a as u,b as v,O as w,C as x,T as y};
|