@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
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import "./modal.a533234c7c831be4.css.pnext-asset.js";
|
|
3
3
|
import { toChildArray } from "../../../../../../../node_modules/preact/dist/preact.mjs";
|
|
4
4
|
import { useEffect, useId, useRef } from "../../../../../../../node_modules/preact/hooks/dist/hooks.mjs";
|
|
5
|
-
import { Button, IconButton } from "./button.
|
|
6
|
-
import { iX } from "./icons.
|
|
5
|
+
import { Button, IconButton } from "./button.b62fa52e18fa338b.js";
|
|
6
|
+
import { iX } from "./icons.f769275420d072ce.js";
|
|
7
7
|
import { Icon } from "./icon.0874ca2f58f7db14.js";
|
|
8
8
|
import { jsx as _jsx, jsxs as _jsxs } from "../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
|
|
9
9
|
/** A modal with a title, a body and its actions after a cancel button; Escape, Cancel or a backdrop click closes it, never while busy. */
|
|
@@ -34,7 +34,8 @@ export function Modal({ open = true, class: className, tone, title, icon, dismis
|
|
|
34
34
|
onClick: (event) => event.target === event.currentTarget && close(),
|
|
35
35
|
children: /* @__PURE__ */ _jsxs("form", {
|
|
36
36
|
method: onSubmit ? undefined : "dialog",
|
|
37
|
-
|
|
37
|
+
// With nothing to submit, Enter in a field keeps the dialog open.
|
|
38
|
+
onSubmit: onSubmit ?? (dismiss && alone ? (event) => event.preventDefault() : undefined),
|
|
38
39
|
children: [
|
|
39
40
|
/* @__PURE__ */ _jsxs("header", { children: [
|
|
40
41
|
icon ? /* @__PURE__ */ _jsx(Icon, { d: icon }) : null,
|
|
@@ -49,11 +50,11 @@ export function Modal({ open = true, class: className, tone, title, icon, dismis
|
|
|
49
50
|
}) : null
|
|
50
51
|
] }),
|
|
51
52
|
children,
|
|
52
|
-
/* @__PURE__ */ _jsxs("div", {
|
|
53
|
+
dismiss && alone ? null : /* @__PURE__ */ _jsxs("div", {
|
|
53
54
|
class: "actions",
|
|
54
55
|
children: [/* @__PURE__ */ _jsx(Button, {
|
|
55
|
-
variant: alone ? "primary" : "ghost",
|
|
56
|
-
danger:
|
|
56
|
+
variant: alone && !cancelDanger ? "primary" : "ghost",
|
|
57
|
+
danger: cancelDanger,
|
|
57
58
|
disabled: busy,
|
|
58
59
|
autofocus: focus === "cancel",
|
|
59
60
|
onClick: close,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import "./select.419208bb34700af2.css.pnext-asset.js";
|
|
2
2
|
import { Fragment } from "../../../../../../../node_modules/preact/dist/preact.mjs";
|
|
3
3
|
import { useId, useLayoutEffect, useRef, useState } from "../../../../../../../node_modules/preact/hooks/dist/hooks.mjs";
|
|
4
|
-
import { iDown, iPlus } from "./icons.
|
|
4
|
+
import { iDown, iPlus } from "./icons.f769275420d072ce.js";
|
|
5
5
|
import { Icon } from "./icon.0874ca2f58f7db14.js";
|
|
6
|
-
import { MenuLabel, MenuOption, MenuPanel } from "./menu-items.
|
|
6
|
+
import { MenuLabel, MenuOption, MenuPanel } from "./menu-items.759a1b1f7c5ee365.js";
|
|
7
7
|
import { jsx as _jsx, jsxs as _jsxs } from "../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
|
|
8
8
|
const PAGE = 10;
|
|
9
9
|
/** A top-layer list's place at `anchor`, flipped up near the bottom, following scrolls and resizes; a dialog or scroll box never clips it. */
|
|
@@ -31,7 +31,7 @@ export function usePlace(anchor, list, open, max, deps = []) {
|
|
|
31
31
|
return place;
|
|
32
32
|
}
|
|
33
33
|
/** A select in the menu style, with keyboard, type-ahead and touch; `name` posts its value. */
|
|
34
|
-
export function Select({ label, options, value, defaultValue, onChange, onFocus, name, disabled, headings, subs, icons, action }) {
|
|
34
|
+
export function Select({ label, options, value, defaultValue, onChange, onFocus, name, disabled, headings, subs, unavailable, icons, action }) {
|
|
35
35
|
const [own, setOwn] = useState(defaultValue ?? options[0]?.[0] ?? "");
|
|
36
36
|
// A value the options no longer hold falls back to the first, as a native select does.
|
|
37
37
|
const selected = Math.max(0, options.findIndex(([key]) => key === (value ?? own)));
|
|
@@ -61,6 +61,7 @@ export function Select({ label, options, value, defaultValue, onChange, onFocus,
|
|
|
61
61
|
return;
|
|
62
62
|
}
|
|
63
63
|
const next = options[index]?.[0];
|
|
64
|
+
if (next !== undefined && unavailable?.[next]) return;
|
|
64
65
|
close();
|
|
65
66
|
if (next === undefined || next === current) return;
|
|
66
67
|
if (value === undefined) setOwn(next);
|
|
@@ -114,7 +115,8 @@ export function Select({ label, options, value, defaultValue, onChange, onFocus,
|
|
|
114
115
|
event.stopPropagation();
|
|
115
116
|
close();
|
|
116
117
|
} else if (key === "Tab") {
|
|
117
|
-
|
|
118
|
+
if (unavailable?.[options[active]?.[0] ?? ""]) close(false);
|
|
119
|
+
else pick(active);
|
|
118
120
|
return;
|
|
119
121
|
} else if (key.length === 1 && !event.ctrlKey && !event.metaKey) {
|
|
120
122
|
const found = seek(key, active);
|
|
@@ -186,10 +188,11 @@ export function Select({ label, options, value, defaultValue, onChange, onFocus,
|
|
|
186
188
|
selected: index === selected,
|
|
187
189
|
check: true,
|
|
188
190
|
icon: icons?.[key],
|
|
189
|
-
|
|
191
|
+
"aria-disabled": unavailable?.[key] ? "true" : undefined,
|
|
192
|
+
sub: unavailable?.[key] ?? (subs?.[key] ? /* @__PURE__ */ _jsx("bdi", {
|
|
190
193
|
dir: "ltr",
|
|
191
194
|
children: subs[key]
|
|
192
|
-
}) : null,
|
|
195
|
+
}) : null),
|
|
193
196
|
onPointerMove: () => index !== active && setActive(index),
|
|
194
197
|
// Picks without letting a wrapping label re-open the list.
|
|
195
198
|
onClick: (event) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./tail.0a5f3c0595e68610.css.pnext-asset.js";
|
|
2
|
-
import { Button } from "./button.
|
|
3
|
-
import { Loading } from "./card.
|
|
2
|
+
import { Button } from "./button.b62fa52e18fa338b.js";
|
|
3
|
+
import { Loading } from "./card.c0030eafd76587e3.js";
|
|
4
4
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
|
|
5
5
|
/** Below the rows: what is loading, what failed, and the mark that pulls in the next page. */
|
|
6
6
|
export function Tail({ sentinel, more, busy, error, retry, noun }) {
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import "./toolbar.
|
|
1
|
+
import "./toolbar.cdbd0357f2c5e1fe.css.pnext-asset.js";
|
|
2
2
|
import { useEffect, useRef, useState } from "../../../../../../../node_modules/preact/hooks/dist/hooks.mjs";
|
|
3
|
-
import { iSearch } from "./icons.
|
|
3
|
+
import { iSearch } from "./icons.f769275420d072ce.js";
|
|
4
4
|
import { readQuery, writeQuery } from "../../utils/paged.0e54c3044f8ca567.js";
|
|
5
5
|
import { Icon } from "./icon.0874ca2f58f7db14.js";
|
|
6
6
|
import { Sentinel } from "./sentinel.0ddf515b8f09ef9f.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useState } from "../../../../../../node_modules/preact/hooks/dist/hooks.mjs";
|
|
3
3
|
import { useRouter } from "../../../../../../node_modules/@wular/pnext/src/api/client-navigation.ts";
|
|
4
|
-
import { toastError } from "../comps/frame/task-toasts.
|
|
4
|
+
import { toastError } from "../comps/frame/task-toasts.3b7eeee29fc327de.js";
|
|
5
5
|
import { reasonText } from "./format.ceeaafa10a0563f3.js";
|
|
6
6
|
const FAILED = "Something went wrong";
|
|
7
7
|
/** A failure no action ran, as the same toast. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useEffect, useRef } from "../../../../../../node_modules/preact/hooks/dist/hooks.mjs";
|
|
3
|
-
import { ServerClient } from "../../../client/index.
|
|
3
|
+
import { ServerClient } from "../../../client/index.54c45900f2153d34.js";
|
|
4
4
|
export const client = new ServerClient("", { cookie: true }, {
|
|
5
5
|
// The page's organization, so a tab open in another one never changes what this one acts on.
|
|
6
6
|
fetch(input, init) {
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { Readable } from "node:stream";
|
|
2
|
+
import { pipeline } from "node:stream/promises";
|
|
3
|
+
import { decodeJson, encodeJson } from "../../utils/crypto.24a6439ff8d10d3d.js";
|
|
4
|
+
export function json(value, status = 200, headers = {}) {
|
|
5
|
+
return new Response(JSON.stringify(value), {
|
|
6
|
+
status,
|
|
7
|
+
headers: {
|
|
8
|
+
"content-type": "application/json",
|
|
9
|
+
...headers
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
export const paged = (url) => url.searchParams.has("cursor");
|
|
14
|
+
export function decodeParam(value) {
|
|
15
|
+
if (!value) return undefined;
|
|
16
|
+
try {
|
|
17
|
+
return decodeJson(value);
|
|
18
|
+
} catch {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export const decodeCursor = (url) => decodeParam(url.searchParams.get("cursor"));
|
|
23
|
+
export function pageLimit(url, fallback = 50, max = 200) {
|
|
24
|
+
const limit = Number(url.searchParams.get("limit") ?? fallback);
|
|
25
|
+
return Number.isInteger(limit) && limit > 0 ? Math.min(limit, max) : fallback;
|
|
26
|
+
}
|
|
27
|
+
export function page(rows, limit, cursor) {
|
|
28
|
+
const items = rows.slice(0, limit);
|
|
29
|
+
return {
|
|
30
|
+
items,
|
|
31
|
+
...rows.length > limit ? { next: encodeJson(cursor(items.at(-1))) } : {}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export const redirect = (location, status = 302) => new Response(null, {
|
|
35
|
+
status,
|
|
36
|
+
headers: { location }
|
|
37
|
+
});
|
|
38
|
+
export const forbidden = () => new Response("Forbidden", { status: 403 });
|
|
39
|
+
export const notFound = () => new Response("Not found", {
|
|
40
|
+
status: 404,
|
|
41
|
+
headers: { "content-type": "text/plain; charset=utf-8" }
|
|
42
|
+
});
|
|
43
|
+
export const notAllowed = () => new Response("Method not allowed", { status: 405 });
|
|
44
|
+
export const toLogin = (url) => redirect(`/login?return=${encodeURIComponent(`${url.pathname}${url.search}`)}`);
|
|
45
|
+
export function safeReturnPath(candidate, origin) {
|
|
46
|
+
const value = candidate ?? "/dash";
|
|
47
|
+
try {
|
|
48
|
+
const target = new URL(value, origin);
|
|
49
|
+
return target.origin === origin && !value.includes("\\") && !/^\/[/\\]/.test(target.pathname) ? `${target.pathname}${target.search}${target.hash}` : "/dash";
|
|
50
|
+
} catch {
|
|
51
|
+
return "/dash";
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export const bodyLimit = (path) => path.startsWith("/api/auth") ? 64 * 1024 : /\/tasks\/[^/]+\/history$/.test(path) ? 4 * 1024 * 1024 : 1024 * 1024;
|
|
55
|
+
async function readLimited(body, declared, limit) {
|
|
56
|
+
const length = Number(declared ?? 0);
|
|
57
|
+
if (Number.isFinite(length) && length > limit) throw Object.assign(new Error("Payload too large"), { status: 413 });
|
|
58
|
+
const chunks = [];
|
|
59
|
+
let size = 0;
|
|
60
|
+
for await (const chunk of body) {
|
|
61
|
+
size += chunk.byteLength;
|
|
62
|
+
if (size > limit) throw Object.assign(new Error("Payload too large"), { status: 413 });
|
|
63
|
+
chunks.push(chunk);
|
|
64
|
+
}
|
|
65
|
+
const result = new Uint8Array(size);
|
|
66
|
+
let offset = 0;
|
|
67
|
+
for (const chunk of chunks) {
|
|
68
|
+
result.set(chunk, offset);
|
|
69
|
+
offset += chunk.byteLength;
|
|
70
|
+
}
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
73
|
+
function headers(input) {
|
|
74
|
+
const result = new Headers();
|
|
75
|
+
for (const [key, value] of Object.entries(input)) if (value !== undefined) result.set(key, Array.isArray(value) ? value.join(", ") : value);
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
function webRequest(req, signal) {
|
|
79
|
+
const path = req.url ?? "/";
|
|
80
|
+
const body = req.method === "GET" || req.method === "HEAD" ? undefined : Readable.toWeb(req);
|
|
81
|
+
return new Request(`http://${req.headers.host ?? "localhost"}${path}`, {
|
|
82
|
+
method: req.method,
|
|
83
|
+
headers: headers(req.headers),
|
|
84
|
+
body,
|
|
85
|
+
duplex: "half",
|
|
86
|
+
signal
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
export function nodeListener(handle, { admit = () => true } = {}) {
|
|
90
|
+
return async (incoming, outgoing) => {
|
|
91
|
+
if (!admit(incoming)) return void outgoing.writeHead(404).end("Not found");
|
|
92
|
+
// A client that leaves aborts the request, so streams it opened stop.
|
|
93
|
+
const left = new AbortController();
|
|
94
|
+
const check = () => {
|
|
95
|
+
if (incoming.socket.destroyed) left.abort();
|
|
96
|
+
};
|
|
97
|
+
outgoing.once("close", () => left.abort());
|
|
98
|
+
check();
|
|
99
|
+
try {
|
|
100
|
+
const result = await handle(webRequest(incoming, left.signal), incoming.socket.remoteAddress?.replace(/^::ffff:/, ""));
|
|
101
|
+
check();
|
|
102
|
+
const head = Object.fromEntries(result.headers.entries());
|
|
103
|
+
const cookies = result.headers.getSetCookie();
|
|
104
|
+
if (cookies.length) head["set-cookie"] = cookies;
|
|
105
|
+
outgoing.writeHead(result.status, head);
|
|
106
|
+
// Streamed pages send each section as it is ready.
|
|
107
|
+
if (result.body) await pipeline(Readable.fromWeb(result.body), outgoing).catch(() => {});
|
|
108
|
+
else outgoing.end();
|
|
109
|
+
} catch (error) {
|
|
110
|
+
if (outgoing.headersSent) return void outgoing.destroy();
|
|
111
|
+
const explicit = typeof error === "object" && error && "status" in error;
|
|
112
|
+
if (!explicit) console.error("coder server: request failed", error);
|
|
113
|
+
const message = explicit ? error instanceof Error ? error.message : String(error) : "Internal server error";
|
|
114
|
+
outgoing.writeHead(explicit ? Number(error.status) : 500, { "content-type": "application/json" });
|
|
115
|
+
outgoing.end(JSON.stringify({ error: message }));
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
export async function limitBody(req, limit) {
|
|
120
|
+
if (req.method === "GET" || req.method === "HEAD" || !req.body) return req;
|
|
121
|
+
try {
|
|
122
|
+
const body = await readLimited(req.body, req.headers.get("content-length") ?? undefined, limit);
|
|
123
|
+
return new Request(req.url, {
|
|
124
|
+
method: req.method,
|
|
125
|
+
headers: req.headers,
|
|
126
|
+
body: body.byteLength ? Buffer.from(body) : undefined,
|
|
127
|
+
signal: req.signal
|
|
128
|
+
});
|
|
129
|
+
} catch (error) {
|
|
130
|
+
if (error.status === 413) return new Response("Payload too large", { status: 413 });
|
|
131
|
+
throw error;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
export function withCookies(response, cookies = []) {
|
|
135
|
+
if (!cookies.length) return response;
|
|
136
|
+
const headers = new Headers(response.headers);
|
|
137
|
+
for (const cookie of cookies) headers.append("set-cookie", cookie);
|
|
138
|
+
return new Response(response.body, {
|
|
139
|
+
status: response.status,
|
|
140
|
+
statusText: response.statusText,
|
|
141
|
+
headers
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
export function untilSent(response, end) {
|
|
145
|
+
const reader = response.body.getReader();
|
|
146
|
+
const body = new ReadableStream({
|
|
147
|
+
async pull(controller) {
|
|
148
|
+
try {
|
|
149
|
+
const { done, value } = await reader.read();
|
|
150
|
+
if (done) {
|
|
151
|
+
end();
|
|
152
|
+
controller.close();
|
|
153
|
+
} else controller.enqueue(value);
|
|
154
|
+
} catch (error) {
|
|
155
|
+
end();
|
|
156
|
+
controller.error(error);
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
cancel(reason) {
|
|
160
|
+
end();
|
|
161
|
+
return reader.cancel(reason);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
return new Response(body, response);
|
|
165
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createHash, timingSafeEqual } from "node:crypto";
|
|
2
|
+
/** Constant-time comparison of two strings or byte buffers; different lengths are unequal. */
|
|
3
|
+
export function safeEqual(a, b) {
|
|
4
|
+
const left = typeof a === "string" ? Buffer.from(a) : a;
|
|
5
|
+
const right = typeof b === "string" ? Buffer.from(b) : b;
|
|
6
|
+
return left.length === right.length && timingSafeEqual(left, right);
|
|
7
|
+
}
|
|
8
|
+
export const sha256 = (value) => createHash("sha256").update(value).digest("base64url");
|
|
9
|
+
export const encodeJson = (value) => Buffer.from(JSON.stringify(value)).toString("base64url");
|
|
10
|
+
/** Throws on input that is not base64url JSON. */
|
|
11
|
+
export const decodeJson = (value) => JSON.parse(Buffer.from(value, "base64url").toString("utf8"));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a as u}from"./list-16247e39898cd20e.js";import"./confirm-d6b2c5b1deccd1e8.js";import"./shared-init-953965859f7bf6b9.js";import"./shared-init-953965859f7bf6b9.js";import"./shared-init-926144b364908b3c.js";import"./shared-init-926144b364908b3c.js";import{$3o as h}from"./shared-init-926144b364908b3c.js";import"./wular-pnext-9b28886f3cbe0ed3-0.js";import"./shared-init-926144b364908b3c.js";import{$2Q as e,$2R as p,$2v as d}from"./shared-init-926144b364908b3c.js";import"./shared-init-9b28886f3cbe0ed3-2.js";import"./shared-init-9b28886f3cbe0ed3-2.js";import{$3h as c}from"./shared-init-9b28886f3cbe0ed3-2.js";function T({first:f,admin:r}){let n=u(f.config),o=n.value.network?.allowedHosts??[],[l,a]=c(""),i=t=>n.patch({network:{allowedHosts:t}});return e(h,{look:"filled",title:"Network",children:[e("p",{class:"body muted",children:"Hosts tasks reach without review, with their subdomains."}),e("div",{class:"hosts",children:[o.map(t=>e("span",{class:"host mono",children:[t,r?e("button",{type:"button","aria-label":`Remove ${t}`,onClick:()=>void i(o.filter(s=>s!==t)),children:e(p,{d})}):null]},t)),r?e("input",{class:"mono",value:l,onInput:t=>a(t.currentTarget.value),onKeyDown:t=>{let s=l.trim();t.key!=="Enter"||!s||(t.preventDefault(),a(""),o.includes(s)||i([...o,s]))},placeholder:o.length?"Add a host, then Enter":"registry.npmjs.org, then Enter","aria-label":"Add a host",autocomplete:"off",spellcheck:!1}):null]}),e("label",{class:"hosts-switch",children:[e("input",{type:"checkbox",role:"switch",class:"switch",checked:n.value.network?.readOnlyTasks??!1,disabled:!r,onChange:t=>void n.patch({network:{readOnlyTasks:t.currentTarget.checked}})}),"Read-only tasks reach these hosts too"]})]})}export{T as AdvancedList};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{$0E as b}from"./shared-init-926144b364908b3c.js";import{$3g as h,$3i as m,$3j as f,$3k as n}from"./shared-init-926144b364908b3c.js";import{$2Q as r,$2R as a,$2t as l}from"./shared-init-926144b364908b3c.js";import{$3c as u,$3n as g}from"./shared-init-9b28886f3cbe0ed3-2.js";var k=(e,o)=>e.replace(/\bid="([^"]+)"/g,`id="$1${o}"`).replace(/url\(#([^)]+)\)/g,`url(#$1${o})`).replace(/href="#([^"]+)"/g,`href="#$1${o}"`);function y({brand:e}){let o=g().replace(/[^a-zA-Z0-9_-]/g,"");return e.svg?r("span",{class:"brand-icon","aria-hidden":"true",dangerouslySetInnerHTML:{__html:k(e.svg,`-${o}`)}}):r("svg",{class:"brand-icon",width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",style:{color:e.dark?`light-dark(${e.color}, ${e.dark})`:e.color},children:r("path",{d:e.icon})})}function B({id:e,info:o,state:s}){let i=o?.name??e;return r("span",{class:`pf ${s}`,children:[o?r(y,{brand:o.brand}):null,i]})}function S({platforms:e,catalog:o,agent:s}){let i=e.length>=m?f:e.length,c=({id:t,state:I},d)=>{let p=r(B,{id:t,info:o.find(L=>L.id===t),state:I});return s?r(b,{class:d,href:"/dash/[org]/agents/[slug]/platforms",params:{slug:s},children:p},t):r("span",{class:d,children:p},t)};return r("span",{class:"pfs",children:[e.slice(0,i).map(t=>c(t)),e.length>i?r(h,{label:`+${e.length-i}`,children:e.map(t=>c(t,"pf-row"))}):null]})}var R={builtin:"built-in",upload:"dashboard",repo:"repository",home:"local"};function w(){return r(n,{tone:"warn",title:"Disabled in this workspace",children:"disabled"})}function E({agent:e,fix:o}){return r(u,{children:[e.source==="repo"&&e.repo?e.sourceUrl?r(n,{class:"link-pill",href:e.sourceUrl,external:!0,title:`Repository agent, opens ${e.repo}`,children:[r(a,{d:l}),e.repo]}):r(n,{class:"link-pill",title:"Repository agent",children:[r(a,{d:l}),e.repo]}):r(n,{tone:e.source==="builtin"?"acc":void 0,title:e.local&&e.source==="repo"?"Repo agent, a folder in this repository":e.source==="home"?"Local agent, a folder on this machine":e.source!=="upload"?"Ships with Coder":e.local?"Local agent, a folder on this machine":"Dashboard agent, made and edited here",children:e.local&&e.source==="upload"?"local":R[e.source]??e.source}),e.local?e.commit&&r(n,{title:"Last commit of the agent's folder",children:e.commit.slice(0,7)}):r(n,{children:["v",e.currentVersion]}),e.settings?.disabled?r(w,{}):null,e.problems?.length?r(n,{tone:"bad",title:e.problems.join(`
|
|
2
|
+
`),...o,children:"not running"}):null]})}export{y as a,S as b,w as c,E as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a as ee}from"./chain-hint-53675e299a865420.js";import{a as Y}from"./agent-pills-9f6fa120182db948.js";import{a as Z}from"./agent-toggle-521136f20a71400d.js";import{$1c as W}from"./shared-init-b42d2c06c25d1e2b.js";import{d as F,h as H,l as K}from"./model-options-d29e934a3de20ab4.js";import{b as R,c as X}from"./types-3eca2c7f47c46054.js";import{a as J}from"./confirm-d6b2c5b1deccd1e8.js";import{a as p}from"./field-4d374d5ed3f43d7e.js";import{$1b as D}from"./shared-init-953965859f7bf6b9.js";import"./shared-init-953965859f7bf6b9.js";import"./shared-init-926144b364908b3c.js";import{$0D as G,$0a as _,$0v as z,$0z as k}from"./shared-init-926144b364908b3c.js";import{$3c as T}from"./shared-init-926144b364908b3c.js";import"./wular-pnext-9b28886f3cbe0ed3-0.js";import"./shared-init-926144b364908b3c.js";import{$2Q as e,$2S as P,$2b as y}from"./shared-init-926144b364908b3c.js";import"./shared-init-9b28886f3cbe0ed3-2.js";import"./shared-init-9b28886f3cbe0ed3-2.js";import{$3c as b,$3h as c,$3k as V,$3l as Q}from"./shared-init-9b28886f3cbe0ed3-2.js";function Ie({agent:t,catalog:ne,shape:f,chain:te,runners:I,connections:$}){let se=_(),m=G(),[d,q]=c("run"),x=D({refresh:!0}),B=D({leaves:!0}),oe=!!x.pending,[N,O]=c(""),[w,ae]=c(""),[h,le]=c(),[ie,S]=c(!1),j=Q(null),r=t.settings??{},[A,re]=c(r.model?.includes("/")?r.model:[r.engine,r.model,r.effort].filter(Boolean).join("/")),[C,ce]=c(r.connections?"some":""),E=t.definition?.integrations??{},g=Object.keys(E).sort(),L=t.definition,U=t.source!=="builtin";V(()=>{let n=w.trim().toLowerCase(),o=[];j.current.querySelectorAll(".vpanel").forEach(i=>{let a=!1;i.querySelectorAll(".field").forEach(s=>{let l=[...s.querySelectorAll("input")].map(me=>me.value).join(" "),v=s.closest(".vplatform")?.querySelector("h3")?.textContent??"",u=!n||`${v} ${s.textContent} ${l}`.toLowerCase().includes(n);s.hidden=!u,a||=u}),i.querySelectorAll(".vplatform").forEach(s=>{s.hidden=!s.querySelector(".field:not([hidden])")}),a&&o.push(i.dataset.panel)}),le(n?o:void 0),n&&o.length&&!o.includes(d)&&q(o[0])},[w]);let de=()=>void B.run("delete",async()=>{await T.agents.remove(t.id),se.push("/dash/[org]/agents",{params:{org:m}})}).then(n=>n||S(!1)),M=(n,o)=>e("button",{type:"button","aria-current":d===n?"true":void 0,class:h&&!h.includes(n)?"miss":void 0,onClick:()=>q(n),children:o});return e("form",{ref:j,class:"vsettings card frame",onSubmit:async n=>{n.preventDefault();let o=new FormData(n.currentTarget),i=s=>String(o.get(s)??"").trim(),a={};i("runner")&&(a.runner=i("runner")),i("access")!==(L?.access??"auto")&&(a.access=i("access")),A.trim()&&(a.model=A.trim()),C&&(a.connections=o.getAll("connection").map(String));for(let s of g){let l={},v=R(E[s]?.events),u=o.getAll(`event:${s}`).map(String);v.length&&u.length<v.length&&(l.allowedEvents=u),Object.keys(l).length&&((a.integrations??={})[s]=l)}t.settings?.disabled&&(a.disabled=!0),O(""),await x.run("save",()=>T.agents.settings(t.id,a))&&O("Saved. New tasks use these settings.")},children:[e("nav",{class:"tabs vertical","aria-label":"Settings sections",children:[e("p",{class:"tabs-label",children:"Runtime"}),M("run","How it runs"),g.length?M("platforms","Platforms"):null,e("p",{class:"tabs-label",children:"Agent"}),M("manage","Manage")]}),e("div",{class:"vbody",children:[e("div",{class:"vsearch",children:[e(z,{value:w,label:"Search settings",onInput:ae}),h&&!h.length?e("span",{class:"muted",children:"No setting matches."}):null]}),e("section",{class:"vpanel","data-panel":"run",hidden:d!=="run",children:[e("h2",{children:"How it runs"}),e("p",{class:"muted",children:"Anything left empty follows the agent's own definition, then the workspace chain."}),e("div",{class:"fields",children:[e(p,{label:"Model",hint:e(ee,{org:m,own:t.definition?.model&&H(t.definition.model,f.builtin)}),group:!0,children:e(W,{shape:f,empty:t.definition?.model?{label:`Its own, ${H(t.definition.model,f.builtin)}`,sub:"from agent.json"}:K(te,f),value:A,onChange:re})}),e(p,{label:"Access",hint:"what its tasks, platforms and connections may do",group:!0,children:e(k,{name:"access",label:"Access",defaultValue:r.access??L?.access??"auto",options:L?.access==="read-only"?F.filter(([n])=>n==="read-only"):F})}),I.length>1?e(p,{label:"Runs on",group:!0,children:e(k,{name:"runner",label:"Runs on",defaultValue:r.runner??"",options:I})}):null,e(p,{label:"Connections",hint:"which workspace connections its tasks can use",group:!0,children:e(k,{label:"Connections",value:C,options:[["","Every workspace connection"],["some","Only the ones picked"]],onChange:ce})}),C?e("div",{class:"field picked",children:[e("span",{children:["Picked connections ",e("small",{children:"tasks can use only these"})]}),$.length?e("div",{class:"checks",children:$.map(n=>e("label",{class:"check",children:[e("input",{type:"checkbox",name:"connection",value:n.id,defaultChecked:r.connections?.includes(n.id)}),n.name]},n.id))}):e("span",{class:"muted",children:["This workspace has no connections yet."," ",e(y,{class:"link",href:"/dash/[org]/settings/[tab]",params:{org:m,tab:"connections"},children:"Add one in Settings"})]})]}):null]})]}),g.length?e("section",{class:"vpanel","data-panel":"platforms",hidden:d!=="platforms",children:[e("h2",{children:"Platforms"}),e("p",{class:"muted",children:["Turn events off for this workspace."," ",X(t)?e(b,{children:["To add an event or a platform,"," ",e(y,{href:"/dash/[org]/agents/[slug]/edit",params:{org:m,slug:t.id},search:{section:"platforms"},children:["edit ",t.name]}),"."]}):t.source==="repo"?e(b,{children:[t.name," comes from ",t.repo??"a repository","; add an event or a platform in its"," ",t.sourceUrl?e("a",{href:t.sourceUrl,target:"_blank",rel:"noreferrer",children:"agent.json"}):"agent.json"," ","there."]}):e(b,{children:[t.name," is built in, so its events and platforms ship with Coder. To listen anywhere else,"," ",e(y,{href:"/dash/[org]/agents/new",params:{org:m},children:"create your own agent"}),"."]})]}),g.map(n=>{let o=r.integrations?.[n]??{},i=R(E[n]?.events),a=o.allowedEvents,s=ne.find(l=>l.id===n);return e("div",{class:"vplatform",children:[e("h3",{children:[s?e(Y,{brand:s.brand}):null,s?.name??n]}),i.length?e("div",{class:"field",children:[e("span",{children:["Events"," ",e("small",{children:"the definition's events; turn off any it should ignore here"})]}),e("div",{class:"checks",children:i.map(l=>e("label",{class:"check",children:[e("input",{type:"checkbox",name:`event:${n}`,value:l,defaultChecked:!a||a.includes(l)}),l]},l))})]}):null]},n)})]}):null,e("section",{class:"vpanel","data-panel":"manage",hidden:d!=="manage",children:[e("h2",{children:"Manage"}),e("div",{class:"field row-action",children:[e("span",{children:["Disable agent",e("small",{children:"stops its events and new tasks in this workspace; its apps and tasks stay"})]}),e(Z,{agent:t})]}),e("div",{class:"field row-action",children:[e("span",{children:["Delete agent",e("small",{children:U?"removes it and every version; its tasks and platform apps stay":`${t.name} is built in and cannot be deleted; disable it above instead`})]}),e(P,{variant:"secondary",danger:!0,disabled:!U,onClick:()=>S(!0),children:"Delete agent"})]})]}),d==="manage"?null:e("div",{class:"form-actions save",children:[N?e("span",{class:"flash",role:"status",children:N}):null,e(P,{type:"submit",loading:oe,children:"Save"})]})]}),ie?e(J,{open:!0,title:`Delete ${t.name}?`,body:"It stops answering on every platform. This cannot be undone.",confirmLabel:"Delete agent",busy:!!B.pending,onClose:()=>S(!1),onConfirm:de}):null]})}export{Ie as AgentSettingsForm};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$1b as b}from"./shared-init-953965859f7bf6b9.js";import{$3c as r}from"./shared-init-926144b364908b3c.js";import{$2Q as s,$2S as c}from"./shared-init-926144b364908b3c.js";import{$3h as g}from"./shared-init-9b28886f3cbe0ed3-2.js";function A({agent:o,link:u}){let i=b({refresh:!0}),e=!!i.pending,t=!!o.settings?.disabled,[l,m]=g({saved:t,disabled:t}),n=l.saved===t?l.disabled:t,a=()=>void i.run("toggle",async()=>{await r.agents.settings(o.id,{...o.settings,disabled:!n}),m({saved:t,disabled:!n})}),d=n?"Enable":"Disable";return u?s("button",{type:"button",class:"link",disabled:e,"aria-busy":e,onClick:a,children:d}):s(c,{variant:"outline",loading:e,onClick:a,children:d})}export{A as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a as P,b as R,d as q}from"./agent-pills-9f6fa120182db948.js";import{a as L}from"./tail-d13c4cc0cf11ffd1.js";import{c as N}from"./types-3eca2c7f47c46054.js";import{$0g as k}from"./shared-init-953965859f7bf6b9.js";import{$0D as a,$0t as A,$0u as w,$0v as C,$0w as I,$0x as v}from"./shared-init-926144b364908b3c.js";import{$3c as f,$3q as y,$3s as b}from"./shared-init-926144b364908b3c.js";import"./wular-pnext-9b28886f3cbe0ed3-0.js";import{$2Q as e,$2T as h,$2b as g,$2c as u}from"./shared-init-926144b364908b3c.js";import"./shared-init-9b28886f3cbe0ed3-2.js";import"./shared-init-9b28886f3cbe0ed3-2.js";import{$3c as c}from"./shared-init-9b28886f3cbe0ed3-2.js";function B(){return e(h,{href:"/dash/[org]/agents/new",params:{org:a()},leftIcon:u,children:"New agent"})}function x({agent:t,catalog:i}){let n=a(),o=`/dash/${n}/agents/${encodeURIComponent(t.id)}`,l=N(t)?{href:`${o}/edit?section=platforms`}:t.source==="repo"&&t.sourceUrl?{href:t.sourceUrl,external:!0}:{href:`${o}/settings`};return e("li",{class:"agent-card",children:[e("div",{class:"bc-head",children:[e("span",{class:"mark",children:k(t.name)}),e("div",{class:"grow",children:[e("h3",{children:e(g,{class:"cover",href:"/dash/[org]/agents/[slug]",params:{org:n,slug:t.id},children:t.name})}),e("span",{class:"pills",children:e(q,{agent:t,fix:l})})]})]}),e("div",{class:"lead-clamp",children:e("span",{children:t.problems?.length?t.problems.join(" "):t.description??"No description yet."})}),t.platforms.length?e(R,{platforms:t.platforms,catalog:i,agent:t.id}):e("span",{class:"pfs muted",children:"No handles yet"})]})}var O=[["","All agents"],["dashboard","Dashboard agents"],["repository","Repository agents"],["builtin","Built-in"]];function te({first:t,limit:i,filters:n,catalog:o,head:l,children:K}){let{values:m,set:p,query:S}=w(n),s=b({name:"agents",fetchPage:r=>f.agents.list({cursor:r,limit:i,...m}),query:S,first:t,initial:A(n)});return e(c,{children:[e(I,{head:l,action:e(B,{}),children:[e(C,{value:m.q,label:"Search agents",onInput:r=>p("q",r,250)}),e(v,{name:"agents",facets:[{key:"platform",label:"Platform",options:o.map(r=>[r.id,r.name]),icon:r=>{let d=o.find(T=>T.id===r);return d?e(P,{brand:d.brand}):void 0}},{key:"type",label:"Source",options:O}],values:m,onChange:p})]}),K,s.rows.length?e("ul",{class:"agent-grid","aria-busy":s.stale,children:s.rows.map(r=>e(x,{agent:r,catalog:o},r.id))}):s.stale?null:e(y,{title:"No agents match",children:"Try another search or filter."}),e(L,{noun:"agents",...s})]})}export{te as AgentsGrid};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$0B as
|
|
1
|
+
import{$0B as c,$0D as a}from"./shared-init-926144b364908b3c.js";import{$2Q as r,$2T as i}from"./shared-init-926144b364908b3c.js";import{$3j as m}from"./shared-init-9b28886f3cbe0ed3-2.js";var n="coder-back";function s(o){let t=new RegExp(`(?:^|; )${n}=([^;]*)`).exec(o)?.[1];try{let e=t&&JSON.parse(decodeURIComponent(t));return e&&typeof e.path=="string"&&e.path.startsWith("/dash/")?e:null}catch{return null}}function x({label:o,children:t,...e}){let p=()=>{let l=encodeURIComponent(JSON.stringify({path:location.pathname,label:o}));document.cookie=`${n}=${l}; path=/dash; max-age=600; samesite=lax`};return r(i,{...e,href:"/dash/[org]/settings/[tab]",params:{org:a(),tab:"credentials"},onClick:p,children:t})}function B({initial:o}){let t=a(),e=typeof document>"u"?o:s(document.cookie);return m(()=>()=>void setTimeout(()=>{location.pathname.split("/")[3]!=="settings"&&(document.cookie=`${n}=; path=/dash; max-age=0`)}),[]),e?r(c,{href:"/dash/[org]",params:{org:t},label:"Back",back:e.path,named:e.label}):null}export{x as a,B as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$2Q as n,$2R as e,$2b as o,$2q as s}from"./shared-init-926144b364908b3c.js";import{$3c as r}from"./shared-init-9b28886f3cbe0ed3-2.js";var f=({org:t,own:i})=>i?n(r,{children:[i," from agent.json, unless picked here"]}):n(r,{children:[n(o,{class:"link",href:"/dash/[org]/settings/[tab]",params:{org:t,tab:"models"},children:["default chain",n(e,{d:s})]})," ","unless picked here"]});export{f as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$0A as S,$0n as E,$0y as M}from"./shared-init-926144b364908b3c.js";import{$2Q as r}from"./shared-init-926144b364908b3c.js";import{$3c as L,$3h as u,$3k as $,$3l as d,$3n as C}from"./shared-init-9b28886f3cbe0ed3-2.js";var H=50;function F({label:m,name:D,class:I,options:g,placeholder:O,value:f,onChange:k,onOpen:y}){let[T,o]=u(!1),[A,a]=u(!1),[l,c]=u(0),h=d(null),p=d(null),i=C(),w=A?f.trim().toLowerCase():"",s=(w?g.filter(e=>e.toLowerCase().includes(w)):g).slice(0,H),n=T&&s.length>0,b=e=>{let t=s[e];t&&k(t),o(!1),a(!1)},v=M(h,p,n,360,[s.length]);return $(()=>{n&&p.current?.querySelector(`[data-index="${l}"]`)?.scrollIntoView({block:"nearest"})},[n,l,v]),r(L,{children:[r("input",{ref:h,name:D,class:I,role:"combobox","aria-label":m,"aria-autocomplete":"list","aria-expanded":n,"aria-controls":`${i}-list`,"aria-activedescendant":n?`${i}-${l}`:void 0,autocomplete:"off",placeholder:O,value:f,onInput:e=>{k(e.currentTarget.value),a(!0),c(0),o(!0)},onFocus:()=>{a(!1),o(!0),y?.()},onClick:()=>{o(!0),y?.()},onBlur:()=>{o(!1),a(!1)},onKeyDown:e=>{if(n){if(e.key==="ArrowDown")c((l+1)%s.length);else if(e.key==="ArrowUp")c((l-1+s.length)%s.length);else if(e.key==="Enter")b(l);else if(e.key==="Escape")o(!1);else return;e.preventDefault()}}}),n?r(S,{id:i,label:m,listRef:p,place:v,children:s.map((e,t)=>r(E,{id:`${i}-${t}`,"data-index":t,active:t===l,selected:e===f,check:!0,onPointerMove:()=>t!==l&&c(t),onClick:()=>b(t),children:e},e))}):null]})}export{F as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a,b,c}from"./composer-92553de43276510b.js";import"./composer-data-890f71bade4f0616.js";import"./task-423e6a3f2527f534.js";import"./connect-repositories-226bf70aa81c29d8.js";import"./shared-init-b42d2c06c25d1e2b.js";import"./shared-init-b42d2c06c25d1e2b.js";import"./model-options-d29e934a3de20ab4.js";import"./types-3eca2c7f47c46054.js";import"./shared-init-953965859f7bf6b9.js";import"./shared-init-953965859f7bf6b9.js";import"./back-2d67134b122334f4.js";import"./shared-init-926144b364908b3c.js";import"./shared-init-926144b364908b3c.js";import"./shared-init-926144b364908b3c.js";import"./wular-pnext-9b28886f3cbe0ed3-0.js";import"./shared-init-926144b364908b3c.js";import"./shared-init-9b28886f3cbe0ed3-2.js";import"./shared-init-9b28886f3cbe0ed3-2.js";import"./shared-init-9b28886f3cbe0ed3-2.js";export{b as NeedsCredential,c as NewTaskButton,a as withEffort};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as ce,b as Ve,c as Ye,d as _e,f as et}from"./composer-data-890f71bade4f0616.js";import{m as Qe}from"./task-423e6a3f2527f534.js";import{a as We}from"./connect-repositories-226bf70aa81c29d8.js";import{$0a as tt}from"./shared-init-b42d2c06c25d1e2b.js";import{$1a as Ze,$1b as Ge}from"./shared-init-b42d2c06c25d1e2b.js";import{c as Je,d as Xe,h as le}from"./model-options-d29e934a3de20ab4.js";import{$1a as P,$1b as Ue}from"./shared-init-953965859f7bf6b9.js";import{$0a as Ke,$0h as x}from"./shared-init-953965859f7bf6b9.js";import{a as ot}from"./back-2d67134b122334f4.js";import{$4o as ze}from"./shared-init-926144b364908b3c.js";import{$0D as je,$0a as Le,$0c as Se,$0k as Fe,$0m as ie,$0n as Ie,$0o as $,$0p as He,$0r as qe,$0s as W,$0z as ae}from"./shared-init-926144b364908b3c.js";import{$3c as g,$3r as Be}from"./shared-init-926144b364908b3c.js";import{$2B as Pe,$2G as Te,$2J as Ne,$2P as Ae,$2Q as t,$2R as U,$2S as se,$2U as De,$2i as Oe,$2v as xe}from"./shared-init-926144b364908b3c.js";import{$3c as y,$3h as m,$3j as K,$3k as $e,$3l as v,$3n as ne}from"./shared-init-9b28886f3cbe0ed3-2.js";var vt=(l,i)=>[...l.split("/").filter(a=>!Je.some(([c])=>c===a)),i].join("/"),J="coder:draft",X="+connect",rt="+refresh",ue="+other",de="+pick",pe="+clone",Mt=/^\/(review|flow)(?:\s+(\S+))?\s*([\s\S]*)$/,Ct=(l,i,a)=>[["",l],...[...new Set([i,...a])].filter(Boolean).map(c=>[c,c])],nt=(l,i,a)=>{let c=[...l.recent,...i].map(d=>d.path);return[["","No folder"],...[...new Set([...c,a])].filter(d=>d&&d!==l.current.path).map(d=>[d,Qe(d)]),l.picker?[de,"Choose\u2026"]:[ue,"Type a path\u2026"],[pe,"Repository\u2026"]]};function st({label:l,options:i,value:a,onPick:c}){let d=`${ne()}-pick`;return t(qe,{children:[t(Fe,{title:i.find(([p])=>p===a)?.[1]??i[0]?.[1],"aria-label":l,"data-keep":!0,popovertarget:d}),t("button",{type:"button",class:"pop-chev","data-keep":!0,popovertarget:d,"aria-label":`${l} options`,children:t(U,{d:Oe})}),t(W,{id:d,class:"pop-flyout",popover:"auto",role:"group","aria-label":l,onBeforeToggle:Ge,children:i.map(([p,h])=>t(ie,{on:p===a,onPick:()=>c(p),children:h},p))})]})}function Et(l){let i=l.currentTarget,a=document.querySelector(`[popovertarget="${i.id}"]`)?.getBoundingClientRect();if(l.newState!=="open"||!a)return;let c=Math.round(a.bottom+6);i.style.top=`${c}px`,i.style.right=`${Math.round(document.documentElement.clientWidth-a.right)}px`,i.style.maxHeight=`${Math.max(160,window.innerHeight-c-16)}px`}function Rt(l){return Object.fromEntries(l.split(/\s+/).filter(Boolean).map(i=>{let a=i.indexOf("="),c=a<0?"true":i.slice(a+1);try{return[a<0?i:i.slice(0,a),JSON.parse(c)]}catch{return[i.slice(0,a),c]}}))}function $t({id:l,entries:i,active:a,selected:c,onActive:d}){return t(y,{children:i.flatMap((p,h)=>[p.head?t($,{role:"presentation",children:p.head},`h:${p.key}`):null,t(Ie,{id:`${l}-${h}`,active:h===a,selected:c===void 0?h===a:p.key===c,check:c!==void 0,end:p.hint?t("small",{children:p.hint}):null,onMouseDown:M=>M.preventDefault(),onPointerMove:()=>h!==a&&d(h),onClick:p.pick,children:p.label},p.key)])})}var Lt=(l,i,a,c)=>{let d={ArrowDown:1,ArrowUp:-1}[l.key];return!d||!a?!1:(l.preventDefault(),c((i+d+a)%a),!0)};function St({reason:l,label:i}){return t(tt,{tone:"warning",slim:!0,children:[t(U,{d:Ne}),t("span",{class:"grow",children:l||"Tasks need a model credential to run."}),t(ot,{variant:"outline",size:"sm",label:i,children:"Add credential"})]})}function Ot({initial:l,data:i,defaults:a,missing:c,connectLabel:d,tz:p}){let h=Le(),M=je(),[n,B]=m(()=>Ye({...Ve,...l},i)),[u,b]=m(i),[F,Z]=m(),[G,fe]=m(!1),[me,it]=m(),[L,Q]=m(""),[at,C]=m(!1),[lt,I]=m(0),[V,ct]=m([]),[E,T]=m(""),[S,ge]=m(!1),he=v(null),w=v(null),be=v(null),we=v(null),R=ne();K(()=>void(E&&we.current?.focus()),[E]),K(()=>{let e=localStorage.getItem(J);e&&w.current&&!w.current.value&&(w.current.value=e),Q(w.current?.value??""),H(w.current?.value??""),w.current?.focus(),C(!0)},[]);let H=(e,o=n.repo)=>{!o&&/^\/review\s/.test(e)&&ke(),!(!e.startsWith("/")||!o||F?.repo===o)&&(Z({repo:o}),g.pulls.list(o).then(s=>Z({repo:o,items:s})).catch(s=>{Z({repo:o,items:[]}),P(s)}),g.flows.list(o).then(s=>b(r=>({...r,flows:s.map(D=>D.name)}))).catch(s=>console.error("coder dashboard: flows",s)))},Y=v(!!i.repos),ke=()=>{Y.current||(Y.current=!0,g.repositories.list().catch(e=>(console.error("coder dashboard: repositories",e),[])).then(e=>b(o=>({...o,repos:e.map(s=>s.repo)}))))},ye=Ue(),ve=!!ye.pending,ut=()=>{Y.current=!0,ye.run("refresh",async()=>{let e=await g.repositories.refresh();b(o=>({...o,repos:e.map(s=>s.repo)}))})},N=(e,o)=>{if(o===ue)return T("path");if(o===pe)return T("url");if(o===de)return void pt();if(o===rt)return ve?void 0:ut();if(o===X)return void We(`/dash/${M}/tasks`).catch(P);O({[e]:o}),(e==="repo"||e==="cwd")&&w.current?.focus({preventScroll:!0})},O=e=>{let o={...n,...e};B(o),H(L,o.repo),document.cookie=`compose=${encodeURIComponent(JSON.stringify(o))}; path=/; max-age=31536000; samesite=lax`},_=e=>{if(!e.ok)return P(e.detail);T(""),ct(o=>[...o.filter(s=>s.path!==e.folder.path),e.folder]),N("cwd",e.folder.path===u.folders?.current.path?"":e.folder.path)},dt=async e=>{e.trim()&&_(await g.folders.check(e.trim()).catch(o=>({ok:!1,detail:x(o)})))},pt=async()=>{document.body.style.cursor="progress";let e=await g.folders.pick().catch(o=>({ok:!1,detail:x(o)}));document.body.style.cursor="",(e.ok||e.detail)&&_(e)},ft=async e=>{if(!e.trim())return;ge(!0),document.body.style.cursor="progress";let o=await g.folders.clone(e.trim()).catch(s=>({ok:!1,detail:x(s)}));document.body.style.cursor="",ge(!1),_(o)},ee=e=>{let o=w.current;o.value=e,localStorage.setItem(J,e),Q(e),H(e),I(0),C(!1),o.focus(),o.setSelectionRange(e.length,e.length)},q=async e=>{let o=w.current?.value.trim()??"";if(G||S||u.agentsOff||!(o||e))return;let[,s,r="",D=""]=Mt.exec(o)??[];if(!e&&s&&!(s==="flow"?r:/^#?\d+$/.test(r)))return void C(!1);let z=e??(s==="review"?Number(r.replace("#","")):void 0);if(z&&!n.repo)return P("Pick a repository first.");let{agent:Ee,model:ht,effort:te,access:Re,runner:bt}=n,[wt,kt]=u.folders?["",n.cwd]:[n.repo,""],oe=ht||(te?a.chain[0]:""),re=Object.fromEntries(Object.entries({repo:wt,cwd:kt,model:oe&&te?vt(oe,te):oe,access:Re==="auto"?"":Re,runner:bt}).filter(([,k])=>k));fe(!0);try{let k=z?await g.review({...re,repo:n.repo,pr:z}):s==="flow"?await g.flows.run(r,{...re,agent:Ee,args:Rt(D)}):await g.tasks.create({...re,agent:Ee,prompt:o});(!e||s)&&localStorage.removeItem(J),ze(k.task.id,"queued",o||`Review of #${z}`),h.push("/dash/[org]/tasks/[id]",{params:{org:M,id:k.task.id}})}catch(k){fe(!1),k.status===409?it(x(k)):P(k)}},f=(()=>{let e=/^\/(\S*)$/.exec(L)?.[1]?.toLowerCase();if(e!==void 0)return{label:"Commands",entries:[{key:"review",label:"/review",hint:"Review a pull request",pick:()=>ee("/review ")},...u.flows.map(r=>({key:`flow ${r}`,label:`/flow ${r}`,hint:`Run the ${r} flow`,pick:()=>ee(`/flow ${r} `)}))].filter(r=>r.key.includes(e)),note:"No command matches."};let o=/^\/flow\s+(\S*)$/.exec(L)?.[1];if(o!==void 0)return{label:"Flows",entries:u.flows.filter(r=>r.includes(o)).map(r=>({key:r,label:r,hint:`Run the ${r} flow`,pick:()=>r===o?void q():ee(`/flow ${r} `)})),note:"No flow matches."};let s=/^\/review\s+#?(\S*)$/.exec(L)?.[1];if(s!==void 0)return n.repo?F?.items?{label:`Pull requests in ${n.repo}`,entries:[...F.items.filter(r=>String(r.number).startsWith(s)||r.title.toLowerCase().includes(s.toLowerCase())).sort((r,D)=>+(String(D.number)===s)-+(String(r.number)===s)).map(r=>({key:`#${r.number}`,label:`#${r.number} ${r.title}`,hint:[r.author,r.createdAt?Ke(Date.parse(r.createdAt),p):""].filter(Boolean).join(" \xB7 "),pick:()=>void q(r.number)})),...s?[]:[{key:"",label:n.repo,hint:"Pick another repository",pick:()=>O({repo:""})}]],note:F.items.length?"No open pull request matches.":"No open pull requests."}:{label:`Pull requests in ${n.repo}`,entries:[],note:"loading"}:{label:"Pick a repository",entries:[...(u.repos??[]).filter(r=>r.includes(s)).map(r=>({key:r,label:r,pick:()=>N("repo",r)})),{key:X,label:d,pick:()=>N("repo",X)}]}})(),A=!!(f&&!at),j=f?Math.min(lt,Math.max(0,f.entries.length-1)):0;$e(()=>{let e=be.current;if(!e)return;if(!A)return void(e.matches(":popover-open")&&e.hidePopover());let o=()=>{let s=he.current.getBoundingClientRect();e.style.top=`${Math.round(s.bottom+6)}px`,e.style.left=`${Math.round(s.left)}px`,e.style.width=`${Math.round(Math.min(s.width,460))}px`};return o(),e.matches(":popover-open")||e.showPopover(),addEventListener("scroll",o,!0),addEventListener("resize",o),()=>{removeEventListener("scroll",o,!0),removeEventListener("resize",o)}},[A,L]);let mt=a.chain[0]??"",Me=u.agents.some(([e])=>e===n.agent)?u.agents:[...u.agents,[n.agent,n.agent]],gt=[[n.model||le(mt,a.builtin),!!n.model],[n.effort,!!n.effort],[n.access,n.access!=="auto"]].filter(([e])=>e),Ce=[n.agent!==u.defaultAgent&&n.agent,n.runner&&(u.runners.find(([e])=>e===n.runner)?.[1]??n.runner)].filter(Boolean).join(" \xB7 ");return t(y,{children:[t("form",{ref:he,class:"composer",onSubmit:e=>{e.preventDefault(),q()},children:[t("textarea",{ref:w,name:"prompt",rows:1,role:"combobox","aria-label":"What should the agent do?","aria-autocomplete":"list","aria-expanded":A,"aria-controls":`${R}-slash`,"aria-activedescendant":A&&f?.entries.length?`${R}-slash-${j}`:void 0,placeholder:ce,autofocus:!0,onFocus:()=>C(!1),onBlur:()=>C(!0),onInput:e=>{let o=e.currentTarget.value;localStorage.setItem(J,o),Q(o),H(o),I(0),C(!1)},onKeyDown:e=>{if(!e.isComposing){if(A&&f){if(Lt(e,j,f.entries.length,I))return;if(e.key==="Escape")return e.preventDefault(),C(!0);if(f.entries.length&&(e.key==="Enter"&&!e.shiftKey||e.key==="Tab"))return e.preventDefault(),f.entries[j].pick()}e.key!=="Enter"||e.shiftKey||(e.preventDefault(),q())}}}),t("div",{class:"composer-line",children:[u.folders?E?t(y,{children:[t("input",{class:"folder-path","aria-label":E==="url"?"Repository URL":"Folder path",ref:we,placeholder:E==="url"?"https://github.com/owner/repo":"Absolute path or ~/\u2026",readOnly:S,"aria-busy":S,onKeyDown:e=>{if(S)return e.preventDefault();if(e.key==="Escape")return e.preventDefault(),T("");e.key!=="Enter"||e.isComposing||(e.preventDefault(),(E==="url"?ft:dt)(e.currentTarget.value))},onBlur:e=>!S&&!e.currentTarget.value.trim()&&T("")}),S?t("span",{class:"folder-busy",children:"Cloning\u2026"}):null]}):t("span",{class:"folder",title:n.cwd||u.folders.current.path,children:t(ae,{label:"Folder",value:n.cwd,options:nt(u.folders,V,n.cwd),subs:Object.fromEntries(nt(u.folders,V,n.cwd).flatMap(([e])=>e&&e!==ue&&e!==de&&e!==pe?[[e,V.find(o=>o.path===e)?.url??e]]:[])),onChange:e=>N("cwd",e)})}):t(ae,{label:"Repository",value:n.repo,options:[...Ct("No repository",n.repo,u.repos??[]),[rt,ve?"Refreshing repositories\u2026":"Refresh repositories"],[X,d]],onChange:e=>N("repo",e),onFocus:ke}),t("button",{type:"button",class:"quiet",popovertarget:`${R}-settings`,"aria-label":"Run options",title:"Model, effort, access and more",children:[t(U,{d:Ae}),t("span",{class:"run-picks",children:gt.map(([e,o],s)=>t("span",{class:o?void 0:"dim",children:s?` \xB7 ${e}`:e},s))}),Ce?t("span",{children:Ce}):null]}),t(se,{type:"submit",size:"sm",class:"send",leftIcon:Te,disabled:!L.trim()||u.agentsOff,loading:G,"aria-label":G?"Starting task":"Start task",title:"Start task (Enter)"})]}),u.agentsOff?t("small",{class:"folder-hint",children:"Every agent here is disabled. Enable one in its settings to start tasks."}):null,E==="url"?t("small",{class:"folder-hint",children:"Uses this machine's git logins"}):null,t(W,{id:`${R}-settings`,class:"composer-settings",popover:"auto",onBeforeToggle:Et,children:[t($,{children:"Model"}),t(Ze,{groups:u.models,first:{label:`Default: ${a.chain.map(e=>le(e,a.builtin)).join(", then ")}`,efforts:!0},model:n.model,effort:n.effort,onPick:(e,o)=>{O({model:e,effort:o}),document.getElementById(`${R}-settings`)?.hidePopover()}}),t($,{children:"Access"}),t("div",{role:"group","aria-label":"Access",children:Xe.map(([e,o])=>t(ie,{on:n.access===e,onPick:()=>O({access:e}),children:o},e))}),Me.length>1?t(y,{children:[t($,{children:"Agent"}),t(st,{label:"Agent",options:Me,value:n.agent,onPick:e=>O({agent:e})})]}):null,u.runners.length>1?t(y,{children:[t($,{children:"Runs on"}),t(st,{label:"Runs on",options:u.runners,value:n.runner,onPick:e=>O({runner:e})})]}):null]}),t(W,{panelRef:be,id:`${R}-slash`,class:"composer-slash",popover:"manual",role:"listbox","aria-label":f?.label??"Commands",children:f?t(y,{children:[t($,{children:f.label}),t($t,{id:`${R}-slash`,entries:f.entries,active:j,onActive:I}),f.note==="loading"?t(Be,{label:"Loading pull requests",inline:!0}):f.note&&!f.entries.length?t(He,{children:f.note}):null]}):null})]}),me===void 0||c?null:t(St,{reason:me})]})}function xt(){return t("div",{class:"composer","aria-hidden":"true",children:[t("textarea",{rows:1,disabled:!0,tabIndex:-1,placeholder:ce}),t("div",{class:"composer-line"})]})}function ro({agent:l}){let i=v(null),[a,c]=m(),[d,p]=m(""),[h,M]=m(!1),n=v(),B=()=>{M(!0),i.current?.showModal(),n.current??=et(g).then(c,b=>p(x(b)))},u=Se().has("new");return K(()=>{if(!u)return;let b=new URL(location.href);b.searchParams.delete("new"),history.replaceState(history.state,"",b),B()},[u]),t(y,{children:[t(se,{class:"new-task",leftIcon:Pe,onClick:B,children:"New task"}),t("dialog",{ref:i,class:"compose-dialog","aria-label":l?`New task for ${l}`:"New task",onClose:()=>M(!1),onClick:b=>b.target===b.currentTarget&&i.current?.close(),children:[t("header",{children:[t("h2",{children:"New task"}),l?t("span",{class:"sub",children:l}):null,t(De,{icon:xe,label:"Close",onClick:()=>i.current?.close()})]}),h?a?t(Ot,{...a,initial:{..._e(document.cookie),...l?{agent:l}:{}},tz:Intl.DateTimeFormat().resolvedOptions().timeZone}):d?t("p",{class:"flash err",role:"alert",children:d}):t(xt,{}):null]})]})}export{vt as a,St as b,ro as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as s}from"./model-options-d29e934a3de20ab4.js";var p="What should the agent do? Type / for flows and reviews.",g={repo:"",cwd:"",agent:"",model:"",effort:"",access:"auto",runner:""};function h(n,e){let t=e.agents.map(([r])=>r);return!t.length||t.includes(n.agent)?n:{...n,agent:e.defaultAgent??t[0]}}function C(n){let e=n.match(/(?:^|; )compose=([^;]*)/)?.[1];try{return e?JSON.parse(decodeURIComponent(e)):{}}catch{return{}}}var c=n=>[...n].sort((e,t)=>Number(t.default)-Number(e.default)||e.name.localeCompare(t.name)),l=n=>{let e=n.find(t=>t.default);return[["",e?`Default \xB7 ${e.name}`:"Default"],...c(n).filter(t=>t!==e).map(t=>[t.id,t.name])]};async function w(n){let e=await n.composer(),t=e.agents.find(o=>o.default)?.id,r={agents:e.agents.map(({id:o,name:i})=>[o,i]),...t?{defaultAgent:t}:{},...e.agents.length?{}:{agentsOff:!0},models:s(e.models),runners:l(e.runners),flows:e.flows,folders:e.folders},a={chain:e.chain,builtin:e.models.builtin};return{data:r,defaults:a,connectLabel:e.connectLabel??"Connect repositories"}}export{p as a,g as b,h as c,C as d,c as e,w as f};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$1a as r}from"./shared-init-
|
|
1
|
+
import{$1a as r}from"./shared-init-926144b364908b3c.js";import{$2Q as o,$2S as i,$2x as e}from"./shared-init-926144b364908b3c.js";function b({open:l,title:m,body:n,confirmLabel:p,onConfirm:a,onClose:f,busy:t}){return o(r,{open:l,class:"confirm",title:m,busy:t,onSubmit:C=>{C.preventDefault(),a()},onClose:f,actions:o(i,{type:"submit",danger:!0,leftIcon:e,loading:t,children:p}),children:n?o("p",{children:n}):null})}export{b as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$3c as i}from"./shared-init-926144b364908b3c.js";async function u(o){let[a,n]=await Promise.all([i.apps.list(),i.integrations.list()]),r=new Set(n.filter(t=>t.repositories).map(t=>t.id)),e=a.map(t=>t.value).sort((t,l)=>+!!l.builtin-+!!t.builtin).find(t=>r.has(t.integration));if(!e)throw new Error("No app here can reach repositories yet.");let{url:s}=await i.apps.install(e.id,o);location.href=s}export{u as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a as on}from"./platform-step-5881a8be1e761e00.js";import{a as K}from"./agent-pills-9f6fa120182db948.js";import{d as pn}from"./model-options-d29e934a3de20ab4.js";import{b as Fn,c as $n}from"./list-16247e39898cd20e.js";import"./platform-actions-08e9b3816dcd62b1.js";import{a as Mn}from"./segmented-f646bfa8aa0aa449.js";import"./copy-294c6052b3b69424.js";import"./confirm-d6b2c5b1deccd1e8.js";import"./outcome-dialog-755fc581cbc2836e.js";import{a as E}from"./field-4d374d5ed3f43d7e.js";import{$1a as Bn,$1b as X}from"./shared-init-953965859f7bf6b9.js";import{$0h as Pn}from"./shared-init-953965859f7bf6b9.js";import"./shared-init-926144b364908b3c.js";import{$0D as tn,$0c as G,$0k as _,$0v as Rn,$0z as An}from"./shared-init-926144b364908b3c.js";import{$3c as N,$3f as vn,$3k as H,$3o as Cn,$3q as Sn,$3r as In}from"./shared-init-926144b364908b3c.js";import"./wular-pnext-9b28886f3cbe0ed3-0.js";import{$1a as Z}from"./shared-init-926144b364908b3c.js";import{$2A as bn,$2B as J,$2Q as n,$2R as j,$2S as F,$2U as wn,$2c as gn,$2g as hn,$2m as yn,$2o as kn}from"./shared-init-926144b364908b3c.js";import"./shared-init-9b28886f3cbe0ed3-2.js";import"./shared-init-9b28886f3cbe0ed3-2.js";import{$3c as S,$3h as A,$3j as fn,$3l as Y}from"./shared-init-9b28886f3cbe0ed3-2.js";var Dn=e=>(e.match(/"[^"]*"|'[^']*'|(?:\{[^}]+\}|[^\s])+/g)??[]).map(a=>a.replace(/^(["'])(.*)\1$/,"$2")),un=e=>/^https?:\/\//.test(e.trim()),En=e=>e.url??[e.command,...(e.args??[]).map(a=>a.replace(/\{((?:runtime|package):[^}]+)\}/g,(i,c)=>`{${e.argumentInputs?.find(r=>r.name===c)?.label??c}}`))].join(" ").trim(),Nn=e=>e.split("/")[0].split(".").reverse().join("."),Un=e=>[...e?.headers??[],...e?.env??[]].filter(a=>a.secret),Ln=e=>e.map(a=>a.name).join(", "),jn=[["workspace","Workspace"],["personal","Personal"]];function sn(e){let a=new URL(e,location.origin);return a.origin===location.origin&&a.pathname.startsWith("/connect/")&&a.searchParams.set("return",location.pathname),a.href}function an(e){let a=X({leaves:!0}),i=(r,m)=>void a.run("add",async()=>{let{authorize:u,...l}=await N.connections.add(r).catch(g=>{throw m?.(g),g});if(u)return location.assign(sn(u));e(l)}),c=r=>void a.run("add",async()=>location.assign(sn((await N.connections.authorize(r)).url)));return{busy:!!a.pending,add:i,signIn:c}}function mn({kind:e,list:a}){return n(S,{children:a.map(i=>n(E,{label:n("span",{class:"mono",children:i.label??i.name}),hint:i.description??(i.required?"required":"optional"),children:n("input",{name:`${e}:${i.name}`,placeholder:i.placeholder,defaultValue:e==="arg"?i.placeholder:void 0,autocomplete:"off",required:i.required})},i.name))})}function xn({platforms:e,onPick:a}){let[i,c]=A(""),[r,m]=A(),u=Y(),l=i.trim(),g=un(l)||/\s/.test(l),I=s=>{m(h=>h?.q===s?h:{q:s}),N.mcp.search(s).then(h=>m(v=>v?.q===s?{q:s,items:h}:v)).catch(h=>m(v=>v?.q===s?{q:s,error:Pn(h)}:v))},f=s=>{if(c(s),clearTimeout(u.current),!s.trim()||un(s)||/\s/.test(s.trim()))return m(void 0);m({q:s.trim()}),u.current=setTimeout(()=>I(s.trim()),250)},w=e.filter(s=>s.name.toLowerCase().includes(l.toLowerCase()));return n("div",{class:"conn-find",children:[n(Rn,{value:i,label:"Search platforms and MCP servers, or paste an MCP server URL",onInput:f,autofocus:!0}),n("div",{class:"conn-hits",role:"listbox","aria-label":"Services","aria-busy":!!(r&&!r.items),children:[g?n(_,{icon:J,title:"Use as an MCP server",sub:n("span",{class:"mono",children:l}),onClick:()=>a({kind:"mcp",target:l})}):null,g?null:w.map(s=>n(_,{icon:n(K,{brand:s.brand}),title:s.name,end:n("small",{class:"dim",children:"platform"}),onClick:()=>a({kind:"platform",info:s})},s.id)),g?null:r?.error?n("p",{class:"registry-note err",role:"alert",children:r.error}):r?r.items?r.items.length?n(S,{children:r.items.map(s=>n(_,{title:n(S,{children:[s.title,s.verified?n(H,{tone:"ok",children:["by ",Nn(s.name)]}):null]}),sub:s.description||s.name,end:n("small",{class:"dim",children:"MCP"}),onClick:()=>a({kind:"mcp",server:s})},s.name))}):l&&!w.length?n("p",{class:"registry-note",children:"Nothing matches. Paste the server's URL or command."}):null:n("p",{class:"registry-note",children:n(In,{label:"Searching MCP servers",inline:!0,dots:!0})}):null]})]})}function Hn({info:e,rows:a,scope:i,operator:c,builtin:r,onAdded:m}){let u=tn(),{busy:l,add:g,signIn:I}=an(m),f=a.find(h=>h.provider===e.id&&h.asker),w=r?.steps[e.id],s=w?n("div",{class:"conn-step",children:n(on,{step:w,info:e,org:u,agent:r.id,builtin:!0,operator:c})}):null;return i==="workspace"?{busy:l,status:null,hint:"The agent's app. Every turn.",notice:s?null:n("p",{class:"muted",children:["No agent here uses ",e.name,"."]}),submit:()=>{},actions:s}:{busy:l,status:e.connectable?f?n(H,{tone:f.status==="needs-auth"?"warn":"ok",children:f.status==="needs-auth"?"needs sign-in":f.account??"connected"}):n(H,{children:"not connected"}):null,hint:"The member\u2019s own account. Their turns only.",notice:null,submit:()=>{if(e.connectable){if(f)return I(f.id);g({name:e.name,provider:e.id})}},actions:e.connectable?n(F,{type:"submit",loading:l,children:[n(K,{brand:e.brand}),f?"Sign in again":`Sign in to ${e.name}`]}):s}}function _n({server:e,target:a,name:i,scope:c,onAdded:r}){let m=G(),[u,l]=A(i??e?.title??m.get("add")??""),[g,I]=A(e?En(e):a??""),[f,w]=A(!1),[s,h]=A(m.get("access")??"auto"),{busy:v,add:B}=an(r),P=Y(null),k=!g.trim()||un(g),$=Un(e),rn=!k||f||$.length>0,U=k?s:"auto",T=$.find(d=>d.required)??$[0],W=$.filter(d=>d!==T),L=W.some(d=>d.required),V=[...e?.argumentInputs??[],...e?.env??[],...e?.headers??[]].some(d=>!d.secret),nn=d=>{let x=[...new FormData(d)].map(([y,R])=>[y,String(R).trim()]),q=y=>x.find(([R])=>R===y)?.[1]??"",Q=y=>Object.fromEntries(x.filter(([R,D])=>R.startsWith(y)&&D).map(([R,D])=>[R.slice(y.length),D])),z=g.trim();if(!u.trim()||!z||L)return;let cn=e?.command?En(e):void 0,ln=e&&z===cn?[e.command,...e.args??[]]:Dn(z),[dn,...t]=ln.map(y=>y.replace(/\{([^}]+)\}/g,(R,D)=>{let M=e?.argumentInputs?.find(en=>en.name===D||en.label===D);return M?q(`arg:${M.name}`):R})),p=Q("env:"),o=Q("header:"),C=k?{url:z,...e?.url===z?{type:e.type}:{},...Object.keys(o).length?{headers:o}:{}}:{command:dn,...t.length?{args:t}:{},...Object.keys(p).length?{env:p}:{}};e?.description&&(C.description=e.description);let b=q("key");B({name:u.trim(),provider:"mcp",...c==="personal"?{scope:"personal"}:{},...U==="auto"?{}:{access:U},endpoint:C,...b?{auth:"key",key:b,keyIn:k?{header:q("header")}:{env:q("env")}}:k?{}:{auth:"none"}},y=>{y.needs==="key"&&(w(!0),requestAnimationFrame(()=>P.current?.querySelector("input[name=key]")?.focus()))})},O=n("div",{ref:P,class:"add-form",children:[e?.description?n("p",{class:"muted",children:e.description}):null,n("div",{class:"add-grid",children:[n(E,{label:"Name",children:n("input",{name:"name",value:u,onInput:d=>l(d.currentTarget.value),placeholder:"Acme docs",autocomplete:"off",required:!0})}),n(E,{label:"URL or command",children:n("input",{name:"target",class:"mono",value:g,onInput:d=>I(d.currentTarget.value),placeholder:"https://mcp.acme.dev/mcp",autocomplete:"off",spellcheck:!1,required:!0})})]}),V?n("div",{class:"add-grid",children:[n(mn,{kind:"arg",list:e?.argumentInputs??[]}),n(mn,{kind:"env",list:(e?.env??[]).filter(d=>!d.secret)}),n(mn,{kind:"header",list:(e?.headers??[]).filter(d=>!d.secret)})]}):null,W.length?n("p",{class:"muted",role:"note",children:L?`This server needs ${Ln($.filter(d=>d.required))}, and a connection holds one key. Add it in the server's own config instead.`:`A connection holds one key, sent as ${T.name}. Add ${Ln(W)} in the server's own config when needed.`}):null,rn?n("div",{class:"add-grid",children:[n(E,{label:"API key",hint:k?void 0:"optional",children:n("input",{name:"key",type:"password",placeholder:"acme_live_4f9a\u2026",autocomplete:"off",required:!!k},e?.name)}),k?n(E,{label:"Header",children:n("input",{name:"header",class:"mono",defaultValue:T?.name??"Authorization",placeholder:"Authorization",autocomplete:"off",required:!0},`header:${T?.name}`)}):n(E,{label:"Environment variable",children:n("input",{name:"env",class:"mono",defaultValue:T?.name,placeholder:"ACME_API_KEY",autocomplete:"off"},`env:${T?.name}`)})]}):null,n("details",{class:"add-more",children:[n("summary",{children:"More options"}),n("div",{class:"add-grid",children:n(E,{label:"Access",hint:"read-only keeps only its read-only tools",group:!0,children:n(An,{label:"Access",options:k?pn:pn.filter(([d])=>d==="auto"),value:U,onChange:h})})})]})]});return{busy:v,body:O,submit:nn,actions:n(F,{type:"submit",disabled:L,loading:v,children:"Add connection"})}}function Kn({pick:e,rows:a,local:i,admin:c,operator:r,builtin:m,scope:u,onBack:l,onAdded:g,onClose:I}){let f=e.kind==="platform",[w,s]=A(i?"workspace":u??(f||!c?"personal":"workspace")),h=f?Hn({info:e.info,rows:a,scope:w,operator:r,builtin:m,onAdded:g}):void 0,v=f?void 0:_n({...e,scope:w,onAdded:g}),B=h??v,P=f?e.info.name:e.server?.title??"MCP server";return n(Z,{class:"add-modal",title:n("span",{class:"conn-title",children:[l?n(wn,{label:"Back",onClick:l,children:n(j,{d:hn})}):null,f?n(K,{brand:e.info.brand}):null,P]}),dismiss:!0,busy:B.busy,onSubmit:k=>{k.preventDefault(),B.submit(k.currentTarget)},onClose:I,actions:B.actions,children:[i?null:n("div",{class:"conn-scope",children:[n(E,{label:"Acts as",group:!0,children:f||c?n(Mn,{label:"Acts as",options:jn,value:w,onChange:k=>s(k)}):n("p",{class:"muted",children:"Personal. Admins add workspace servers."})}),h?n("p",{class:"conn-state",children:[h.status,n("span",{class:"muted",children:h.hint})]}):n("p",{class:"muted",children:w==="workspace"?"An admin\u2019s account. Every turn.":"The member\u2019s own account. Their turns only."})]}),h?.notice??null,v?.body??null]})}function On({catalog:e,rows:a,local:i,admin:c,operator:r,builtin:m,start:u,onAdded:l,onClose:g}){let I=G(),f=I.get("add"),w=e.find(P=>P.id===f),[s,h]=A(u?.pick??(w?{kind:"platform",info:w}:I.has("url")?{kind:"mcp",target:I.get("url")??"",name:f??void 0}:void 0)),v=u?.scope??I.get("scope")??void 0,B=e.filter(P=>P.personal||a.some(k=>k.agent&&k.provider===P.id));return s?n(Kn,{pick:s,rows:a,local:i,admin:c,operator:r,builtin:m,scope:v,onBack:u?void 0:()=>h(void 0),onAdded:l,onClose:g},s.kind==="platform"?s.info.id:s.server?.name??s.target):n(Z,{class:"add-modal",title:"Add a connection",dismiss:!0,onClose:g,children:n(xn,{platforms:B,onPick:h})})}var Wn=e=>e.url?URL.canParse(e.url)?new URL(e.url).host:e.url:e.command;function Vn(e,a){let i=new Map;for(let c of a.filter(r=>r.personal))i.set(c.id,{key:c.id,name:c.name,info:c,rows:[]});for(let c of e){let r=a.find(l=>l.id===c.provider),m=r?r.id:`mcp:${c.name.replace(/-user$/,"")}`,u=i.get(m)??{key:m,name:r?.name??c.name.replace(/-user$/,""),info:r,where:r?void 0:Wn(c),rows:[]};u.rows.push(c),i.set(m,u)}return[...i.values()]}function qn({row:e,label:a,onReconnect:i,busy:c}){let r=e.status==="needs-auth";return n(S,{children:[n("i",{class:r?"conn-dot warn":e.status==="disabled"?"conn-dot off":"conn-dot"}),n("span",{class:"conn-name",children:r?"needs sign-in":a??e.account??e.name}),e.access==="read-only"?n("span",{class:"dim",title:"Read-only",children:n(j,{d:yn})}):null,r&&i?n(F,{variant:"ghost",size:"sm",loading:c,onClick:i,children:"Reconnect"}):null]})}function zn({row:e,onReconnect:a,onRemoved:i}){let c=Fn({title:`Remove ${e.name}?`,body:"Tasks stop using it, and its key or sign-in is deleted.",link:e.name,onRemove:()=>N.connections.remove(e.id).then(i,Bn)});return n(S,{children:[n(vn,{button:"icon",label:`${e.name} actions`,summary:n(j,{d:bn}),children:[n(_,{title:e.auth==="key"?"New key":"Sign in again",onClick:a}),c.item]}),c.dialog]})}function De({first:e,catalog:a,local:i,admin:c,operator:r,viewer:m,agents:u,builtins:l}){let[g,I]=A(e.filter(t=>t.provider!=="env")),f=G(),w=f.get("reconnect"),s=f.get("connect"),[h,v]=A(g.find(t=>t.name===w&&t.auth==="key")),B=$n("Add connection",["url","access","tools","scope"]),[P,k]=A(),$=X({leaves:!0}),rn=tn(),U=t=>I(p=>p.some(o=>o.id===t.id)?p.map(o=>o.id===t.id?t:o):[...p,t]),T=t=>I(p=>p.filter(o=>o.id!==t.id)),{add:W}=an(U),L=t=>{if(t.auth==="key")return v(t);$.run(t.id,async()=>location.assign(sn((await N.connections.authorize(t.id)).url)))},V=Vn(g,a),nn=()=>{k(void 0),B.close()},O=l[0],[d,x]=A(),q=({step:t,info:p,agent:o=O.id,quiet:C})=>n(on,{step:t,info:p,org:rn,agent:o,builtin:!0,operator:r,unreachable:a.some(b=>b.unreachable),quiet:C}),Q=({accounts:t,title:p})=>n(S,{children:[n("i",{class:"conn-dot"}),n("span",{class:"conn-name",title:p,children:[...new Set(t.filter(Boolean))].join(", ")||"installed"}),n("span",{class:"grow"})]}),z=({info:t})=>{let p=l.flatMap(o=>(o.steps[t.id]?.live??[]).map(C=>({agent:o.name,account:C.account})));return p.length?n(S,{children:[n(Q,{accounts:p.map(o=>o.account),title:p.map(o=>`${o.agent} in ${o.account??t.name}`).join(", ")}),n(F,{size:"sm",variant:"ghost",onClick:()=>x(t),children:"Manage"})]}):n(S,{children:[n(H,{children:"not set up"}),n(F,{size:"sm",onClick:()=>x(t),children:["Set up ",t.name]})]})},cn=t=>{let p=t.rows.filter(b=>b.agent),o=t.rows.find(b=>!b.owner&&!b.agent);if(t.info?.builtinApp==="own"&&l.some(b=>b.steps[t.info.id]))return n("div",{class:"conn-cell",children:n(z,{info:t.info})});if(t.info){let b=t.info,y=O?.steps[b.id],R=[...new Set(p.map(M=>M.agent))].filter(M=>M!==O?.id),D=M=>u.find(en=>en.id===M)?.name??M;return n("div",{class:"conn-cell",children:[y?.live.length?n(Q,{accounts:y.live.map(M=>M.account)}):null,R.length?n("span",{class:"conn-others",title:`Their own ${b.name} apps: ${R.map(D).join(", ")}`,children:[n(j,{d:gn}),R.length]}):null,y?n(q,{step:y,info:b,quiet:!0}):null,y||R.length?null:n("span",{class:"dim",children:"\u2014"})]})}if(o)return n("div",{class:"conn-cell",children:[n(qn,{row:o,label:o.name,busy:$.pending===o.id,onReconnect:c?()=>L(o):void 0}),n("span",{class:"grow"}),c?n(zn,{row:o,onReconnect:()=>L(o),onRemoved:()=>T(o)}):null]});let C=t.rows[0];return c&&C?n(F,{variant:"ghost",size:"sm",leftIcon:J,onClick:()=>k({pick:{kind:"mcp",target:C.url??C.command,name:t.name},scope:"workspace"}),children:"Connect"}):n("span",{class:"dim",children:"\u2014"})},ln=t=>{let p=t.rows.find(y=>y.asker),o=t.rows.filter(y=>y.owner&&!y.asker),C=t.rows[0],b=o.length?n("span",{class:"conn-others",title:o.map(y=>y.owner?.name??"A member").join(", "),children:[n(j,{d:kn}),o.length]}):null;return n("div",{class:"conn-cell",children:p?n(S,{children:[n(qn,{row:p,busy:$.pending===p.id,onReconnect:()=>L(p)}),n("span",{class:"grow"}),b,n(zn,{row:p,onReconnect:()=>L(p),onRemoved:()=>T(p)})]}):t.info&&!t.info.connectable?n(S,{children:[n("span",{class:"dim grow",children:"\u2014"}),b]}):n(S,{children:[n(F,{variant:"ghost",size:"sm",leftIcon:J,autoFocus:t.key===s,onClick:()=>t.info?W({name:t.info.name,provider:t.info.id}):k({pick:{kind:"mcp",target:C?.url??C?.command,name:t.name},scope:"personal"}),children:"Connect"}),n("span",{class:"grow"}),b]})})},dn=[["Platforms",V.filter(t=>t.info)],["MCP servers",V.filter(t=>!t.info)]].filter(([,t])=>t.length);return n(S,{children:[n(Cn,{look:"filled",title:"Connections",actions:B.button,children:[V.length?n(S,{children:[n("div",{class:"table-scroll",children:n("table",{class:"conns",children:[n("colgroup",{children:[n("col",{class:"conns-svc"}),n("col",{}),i?null:n("col",{})]}),n("thead",{children:n("tr",{children:[n("th",{children:"Service"}),n("th",{children:"Workspace"}),i?null:n("th",{children:m?`Personal \xB7 ${m}`:"Personal"})]})}),dn.map(([t,p])=>n("tbody",{children:[n("tr",{class:"conns-group",children:n("th",{colSpan:i?2:3,children:t})}),p.map(o=>n("tr",{class:o.key===s?"conns-marked":void 0,children:[n("td",{children:n("span",{class:"conn-svc",title:o.where,children:[o.info?n(K,{brand:o.info.brand}):n("span",{class:"conn-mark",children:o.name[0]}),n("b",{children:o.name})]})}),o.info&&!o.info.connectable&&!o.rows.length&&!l.some(C=>C.steps[o.info.id]?.live.length)?n("td",{colSpan:i?1:2,children:n("div",{class:"conn-cell",children:o.info.builtinApp==="own"&&l.some(C=>C.steps[o.info.id])?n(z,{info:o.info}):O?.steps[o.info.id]?n(q,{step:O.steps[o.info.id],info:o.info}):n("span",{class:"dim",children:"\u2014"})})}):n(S,{children:[n("td",{children:cn(o)}),i?null:n("td",{children:ln(o)})]})]},o.key))]},t))]})}),i?null:n("p",{class:"conns-hint",children:"Personal accounts run only on their owner's turns."})]}):n(Sn,{title:"No connections yet",children:"Add one so tasks can use another service, like an issue tracker or a database."}),h?n(Qn,{row:h,onSaved:t=>{U(t),v(void 0)},onClose:()=>v(void 0)}):null]}),d?n(Z,{title:`${d.name} apps`,dismiss:!0,onClose:()=>x(void 0),children:[n("p",{class:"muted",children:["Each agent has its own ",d.name," app, so each answers as its own @name in"," ",d.name,". Set one up for every built-in agent that should work there."]}),n("div",{class:"agent-apps",children:l.filter(t=>t.steps[d.id]).map(t=>n("div",{class:"agent-app",children:[n("b",{children:t.name}),n(q,{step:t.steps[d.id],info:d,agent:t.id})]},t.id))}),n("p",{class:"muted",children:"Other agents set theirs up on their own Platforms tab."})]}):null,B.open||P?n(On,{catalog:a,rows:g,local:i,admin:c,operator:r,builtin:O,start:P,onAdded:t=>{U(t),nn()},onClose:nn}):null]})}function Qn({row:e,onSaved:a,onClose:i}){let c=X({leaves:!0}),r=!!c.pending,m=Y(null);return fn(()=>m.current?.focus(),[]),n("form",{class:"add-row conn-key",method:"post",onSubmit:u=>{u.preventDefault();let l=String(new FormData(u.currentTarget).get("key")??"").trim();l&&c.run("save",async()=>a(await N.connections.update(e.id,{key:l})))},children:[n("input",{name:"key",type:"password","aria-label":`New key for ${e.name}`,placeholder:`New key for ${e.name}, then Enter`,ref:m,autocomplete:"off",required:!0}),n(F,{type:"submit",loading:r,children:"Save key"}),n(F,{variant:"ghost",disabled:r,onClick:i,children:"Cancel"})]})}export{De as ConnectionsList};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$2O as l,$2Q as e,$2U as c,$2w as r}from"./shared-init-926144b364908b3c.js";import{$3h as n}from"./shared-init-9b28886f3cbe0ed3-2.js";function p({value:o,label:i="Copy"}){let[t,d]=n(!1);return e(c,{icon:t?r:l,label:t?"Copied":i,class:t?"copied":void 0,onClick:()=>void navigator.clipboard.writeText(o).then(()=>d(!0))})}function g({value:o,label:i="Copy command",link:t}){return e("div",{class:"copy-line",children:[t?e("a",{href:o,target:"_blank",rel:"noreferrer",children:e("code",{children:o})}):e("code",{children:o}),e(p,{value:o,label:i})]})}export{p as a,g as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a as u,e as g}from"./platform-actions-08e9b3816dcd62b1.js";import"./segmented-f646bfa8aa0aa449.js";import"./copy-294c6052b3b69424.js";import"./confirm-d6b2c5b1deccd1e8.js";import"./outcome-dialog-755fc581cbc2836e.js";import"./field-4d374d5ed3f43d7e.js";import{$1a as l}from"./shared-init-953965859f7bf6b9.js";import"./shared-init-953965859f7bf6b9.js";import"./shared-init-926144b364908b3c.js";import"./shared-init-926144b364908b3c.js";import{$3c as c,$3r as f}from"./shared-init-926144b364908b3c.js";import"./wular-pnext-9b28886f3cbe0ed3-0.js";import"./shared-init-926144b364908b3c.js";import{$2Q as e,$2S as m}from"./shared-init-926144b364908b3c.js";import"./shared-init-9b28886f3cbe0ed3-2.js";import"./shared-init-9b28886f3cbe0ed3-2.js";import{$3h as t,$3j as p}from"./shared-init-9b28886f3cbe0ed3-2.js";function v({integration:r,state:i,info:o}){let[d,C]=t(!1),[b,a]=t(!0),[n,h]=t(),s=()=>c.apps.start(r,i);return p(()=>{u(o?.create,i,s).then(h).catch(y=>{C(!0),l(y)})},[]),d?null:n?b?e(g,{integration:r,step:n,start:s,unreachable:o?.unreachable,onClose:()=>a(!1)}):e(m,{onClick:()=>a(!0),children:n.submit}):e(f,{label:`Opening ${o?.name??r}`})}export{v as CreateLink};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a as te}from"./combo-cb2c62fe580a8903.js";import{e as Z,n as Q}from"./model-options-d29e934a3de20ab4.js";import{a as X}from"./types-3eca2c7f47c46054.js";import{d as ee,e as ne,f as Y}from"./list-16247e39898cd20e.js";import{a as F}from"./copy-294c6052b3b69424.js";import"./confirm-d6b2c5b1deccd1e8.js";import{$1a as E,$1b as O}from"./shared-init-953965859f7bf6b9.js";import{$0h as M}from"./shared-init-953965859f7bf6b9.js";import"./shared-init-926144b364908b3c.js";import{$0D as J,$0a as z,$0k as K,$0z as q}from"./shared-init-926144b364908b3c.js";import{$3c as g,$3e as N,$3k as W,$3o as A,$3r as L}from"./shared-init-926144b364908b3c.js";import"./wular-pnext-9b28886f3cbe0ed3-0.js";import{$1a as V}from"./shared-init-926144b364908b3c.js";import{$2Q as e,$2R as _,$2S as S,$2w as D}from"./shared-init-926144b364908b3c.js";import"./shared-init-9b28886f3cbe0ed3-2.js";import"./shared-init-9b28886f3cbe0ed3-2.js";import{$3c as k,$3h as C,$3j as B,$3l as $}from"./shared-init-9b28886f3cbe0ed3-2.js";var P=[{id:"claude",name:"Claude",key:"ANTHROPIC_API_KEY",signIn:"Claude"},{id:"codex",name:"Codex",key:"OPENAI_API_KEY",signIn:"ChatGPT"}],ie=[...P.map(t=>t.key),...Q.flatMap(t=>t.envKey||[])],se=(t,u)=>ie.find(l=>l!==u&&!t.some(f=>f.name===l))??"";function re({keys:t,admin:u,focus:l,ask:f}){let[c,h]=C(P.find(p=>p.id===l)?.key??(/^[A-Z][A-Z0-9_]*$/.test(l)?l:se(t))),[m,y]=C(u?"workspace":"personal"),o=$(null),d=O({toast:"Not saved",refresh:!0});return B(()=>{l&&o.current?.focus()},[]),e("form",{class:"cred-add",method:"post",onSubmit:p=>{p.preventDefault();let a=p.currentTarget,s=c.trim(),b=String(new FormData(a).get("key")??"").trim();if(!s||!b)return;let I=()=>void d.run("add",async()=>{await g.credentials.add({env:{[s]:b},...m==="workspace"?{workspace:!0}:{}}),a.reset(),h(se(t,s))});t.some(w=>w.name===s&&w.scope===m)?f(ee(s,m),I):I()},children:[e(te,{label:"Variable",name:"name",class:"mono cred-var",options:ie,placeholder:"OPENAI_API_KEY",value:c,onChange:h}),e("input",{type:"password",name:"key",autocomplete:"off","aria-label":"API key",placeholder:"API key",ref:o,"aria-busy":!!d.pending,required:!0}),u?e(q,{label:"Who can use this key",options:Z,value:m,onChange:y}):null,e(S,{type:"submit",loading:!!d.pending,children:"Add"})]})}function de({login:t,engine:u,onChange:l,onDone:f,onError:c,onCancel:h}){let[m,y]=C();N(t.id&&t.state!=="done"&&t.state!=="failed"?a=>g.credentials.loginStatus(t.id).then(s=>{if(!a.aborted){if(s.state==="done")return f();if(s.state==="failed")return c(s.error??"Sign-in failed. Try again.");t.state==="verifying"&&s.state==="open"&&s.url===m||l(s)}}).catch(s=>{if(a.aborted)return;let b=s.status;if(b===void 0||b>=500)return console.error("coder dashboard: sign-in status",s);c(M(s))}):void 0,800,[t.id]);let o=a=>{y(t.url),l({...t,state:"verifying"}),g.credentials.loginCode(t.id,a).catch(s=>c(M(s)))},d=t.state==="verifying",p=!!m&&t.state==="open"&&t.url!==m;return e(V,{class:"sign-in",title:`Sign in with ${u.signIn}`,cancelDanger:!0,onClose:h,children:[e("p",{class:"muted",children:"Coder signs in on a private machine and keeps the sign-in for your tasks."}),e("div",{class:"sign-link",children:t.url?e(k,{children:[e(S,{href:t.url,external:!0,autoFocus:!0,children:["Open ",new URL(t.url).host]}),e(F,{value:t.url,label:"Copy link"})]}):e(L,{label:"Starting the sign-in machine\u2026",inline:!0})}),e("ol",{class:"steps-list sign-steps",role:"status",children:t.engine==="codex"?e(k,{children:[e("li",{children:["Open the sign-in page and enter this code.",t.code?e("span",{class:"code-box",children:[t.code,e(F,{value:t.code,label:"Copy code"})]}):null]}),e("li",{children:t.url?e(L,{label:"Waiting for your approval on the sign-in page\u2026",inline:!0}):"Approve it there."})]}):e(k,{children:[e("li",{children:["Open the ",u.signIn," sign-in and approve it."]}),e("li",{children:[p?e("span",{class:"rejected",role:"alert",children:"That code did not work. Open the sign-in again and paste the new code."}):"Paste the code it shows.",e("input",{class:"mono",autocomplete:"off","aria-label":`Code from the ${u.signIn} sign-in page`,placeholder:"Paste the code from the sign-in page",disabled:t.state!=="open",onPaste:a=>{let s=a.clipboardData?.getData("text").trim();s&&(a.preventDefault(),a.currentTarget.value=s,o(s))},onKeyDown:a=>{let s=a.currentTarget.value.trim();a.key==="Enter"&&s&&o(s)}},t.url),d?e(L,{label:"Checking the code\u2026",inline:!0}):null]})]})})]})}function Te({status:t}){let[u,l]=C(t),f=O(),[c,h]=C(),m=f.pending??(c?`${c.engine}:login`:"");N(c?async o=>{let d=await g.engines.status();o.aborted||(l(d),(d[c.engine]?.signedIn||Date.now()>c.until)&&h(void 0))}:void 0,2e3,[c]);let y=(o,d)=>void f.run(`${o}:${d}`,async()=>{l(await g.engines[d](o)),d==="login"&&h({engine:o,until:Date.now()+5*6e4})});return e(k,{children:[P.map(o=>{let d=u[o.id],p=m===`${o.id}:login`;return e(A,{look:"filled",title:o.name,children:e("div",{class:"cred-new",children:[d?.signedIn?e("span",{class:"signed grow",children:[e(_,{d:D}),"Signed in to ",o.name]}):p?e("span",{class:"grow muted",children:["Finish signing in in the window ",o.name," opened."]}):e("span",{class:"grow muted",children:"Not signed in on this machine."}),d?.signedIn?e(S,{variant:"secondary",danger:!0,size:"sm",loading:m===`${o.id}:logout`,onClick:()=>y(o.id,"logout"),children:"Sign out"}):e(S,{variant:"secondary",size:"sm",loading:p,disabled:!!m,onClick:()=>y(o.id,"login"),children:"Sign in"}),p?e(S,{variant:"ghost",size:"sm",onClick:()=>h(void 0),children:"Cancel"}):null]})},o.id)}),e("p",{class:"muted",children:"On the local server, custom models read their key variable from this machine's environment."})]})}function Be({rows:t,me:u,focus:l}){let f=z(),c=J(),[h,m]=C({}),[y,o]=C(!1),d=X(u),p=P.filter(n=>u.user&&u.server?.subscriptions?.[n.id]),a=t.filter(n=>!n.subscription),s=O({refresh:!0}),b=ne(),I=`coder-logins:${c}`,w=()=>{try{return JSON.parse(sessionStorage.getItem(I)??"{}")}catch{return{}}},v=(n,i)=>{m(r=>({...r,[n]:i}));try{let r={...w(),[n]:i?.id||void 0};sessionStorage.setItem(I,JSON.stringify(r))}catch{}},R=$(new Set);B(()=>{for(let[n,i]of Object.entries(w()))g.credentials.loginStatus(i).then(r=>{if(!R.current.has(n)){if(r.state==="done")return x(n);if(r.state==="failed")return v(n),E(r.error??"Sign-in failed. Try again.");v(n,r)}}).catch(()=>{R.current.has(n)||v(n)})},[]);let x=n=>{v(n),f.refresh()},U=n=>{R.current.add(n),v(n,{id:"",engine:n,state:"starting"}),g.credentials.login(n).then(i=>v(n,i)).catch(i=>{v(n),E(i)})},G=n=>t.find(i=>i.subscription&&i.name===n),H=(n,i)=>G(n.id)?b.ask(`Replace the personal ${n.name} subscription?`,i):i(),j=n=>s.run(`remove:${n.scope}/${n.name}`,()=>g.credentials.remove(n.name,{workspace:n.scope==="workspace"}));return e(k,{children:[p.length?e(A,{look:"filled",title:"Subscriptions",children:e("div",{class:"cred-engine",children:[e("p",{class:"muted cred-note",children:["Personal: each member signs in with their own. A subscription runs its owner's tasks, and platform turns from accounts connected on"," ",e("a",{class:"link",href:`/dash/${c}/settings/connections`,children:"Connections"}),"."]}),e("table",{class:"rows creds",children:e("tbody",{children:p.map(n=>{let i=G(n.id),r=h[n.id],oe=[i?.account?.email,i?.account?.plan];return e(Y,{title:n.name,sub:i?oe.filter(Boolean).join(" \xB7 "):void 0,actions:e(k,{children:[i?e("span",{class:"signed",children:[e(_,{d:D}),"Connected"]}):e(S,{autoFocus:l===n.id,disabled:!!r,onClick:()=>U(n.id),children:["Sign in with ",n.signIn]}),r?e(de,{login:r,engine:n,onChange:T=>v(r.engine,T),onDone:()=>x(r.engine),onError:T=>{v(r.engine),E(T)},onCancel:()=>{v(r.engine),r.id&&g.credentials.cancelLogin(r.id).catch(E)}}):null]}),alignMenu:!0,menu:i||n.id==="claude"?e(k,{children:[i?e(K,{title:"Sign in again",disabled:!!r,onClick:()=>H(n,()=>U(n.id))}):null,n.id==="claude"?e(K,{title:"Paste a setup token",onClick:()=>o(!0)}):null]}):void 0,remove:i?{label:"Sign out",title:`Sign out of ${n.name}?`,body:"Tasks that use it stop running.",onRemove:()=>j(i)}:void 0},n.id)})})}),y?e("div",{class:"cred-new",children:e("form",{class:"cred-add",method:"post",onSubmit:n=>{n.preventDefault();let i=String(new FormData(n.currentTarget).get("token")??"");i.trim()&&H(P[0],()=>void s.run("token",async()=>{await g.credentials.add({env:{CLAUDE_CODE_OAUTH_TOKEN:i.trim()}}),o(!1)}))},children:[e("input",{type:"password",name:"token",autocomplete:"off","aria-label":"Your claude setup-token",placeholder:"Paste a claude setup-token",ref:n=>n?.focus(),required:!0}),e(S,{type:"submit",loading:s.pending==="token",children:"Add"})]})}):null]})}):null,e(A,{look:"filled",title:"API keys",count:a.length||void 0,children:e("div",{class:"cred-engine",children:[e("p",{class:"muted cred-note",children:["Tasks read each key as its variable. Claude uses ANTHROPIC_API_KEY, Codex uses OPENAI_API_KEY, and a"," ",e("a",{class:"link",href:`/dash/${c}/settings/models`,children:"custom model"})," ","uses the one it names."]}),a.length?e("table",{class:"rows creds",children:e("tbody",{children:a.map(n=>e(Y,{title:n.name,badges:e(W,{children:n.scope}),sub:n.masked,remove:n.scope==="personal"||d?{title:`Remove ${n.name}?`,body:"Tasks that use it stop running.",link:n.name,onRemove:()=>j(n)}:void 0},`${n.scope}/${n.name}`))})}):null,e("div",{class:"cred-new",children:e(re,{keys:a,admin:d,focus:p.some(n=>n.id===l)?"":l,ask:b.ask})})]})}),b.dialog]})}export{Be as CredentialsList,Te as EngineLogins};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./field-4d374d5ed3f43d7e.js";import{$0a as s,$0f as f,$0h as c}from"./shared-init-926144b364908b3c.js";import{$3f as p}from"./shared-init-926144b364908b3c.js";import{$2Q as t,$2R as u,$2S as l,$2h as i}from"./shared-init-926144b364908b3c.js";import{$3c as n}from"./shared-init-9b28886f3cbe0ed3-2.js";function x({page:o,from:d,to:g,today:m,on:h}){let y=s();return t(p,{class:h?"custom on":"custom",align:"left",summary:t(n,{children:["Custom",t(u,{d:i})]}),children:t("form",{class:"date-pop",onSubmit:r=>{r.preventDefault();let a=new FormData(r.currentTarget),[S,T]=[String(a.get("from")),String(a.get("to"))].sort();r.currentTarget.closest("[popover]")?.hidePopover(),y.push(o.href,{params:f(o).params,search:c(o.search,{from:String(S),to:String(T)}),scroll:!1})},children:[t(e,{label:"From",children:t("input",{type:"date",name:"from",defaultValue:d,max:m,required:!0})}),t(e,{label:"To",children:t("input",{type:"date",name:"to",defaultValue:g,max:m,required:!0})}),t(l,{type:"submit",size:"sm","data-keep":!0,children:"Apply"})]})})}export{x as a};
|