@wular/coder 0.5.1 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{actions-DO8MvHwc.js → actions-C35tq9KH.js} +2 -2
- package/dist/{agent-Cgala63h.js → agent-BZR4Eqdc.js} +1 -1
- package/dist/{apps-BORri-28.js → apps-CCqOsEZH.js} +4 -4
- package/dist/{async-BS9tyhva.js → async-BP5q3Une.js} +1 -1
- package/dist/{auth-C16ylySv.js → auth-CJOm9_Vh.js} +1 -1
- package/dist/{chat-czruXAt3.js → chat-BD2Fu3jU.js} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{cmd-C1gHyVG7.js → cmd-BH1bmZGs.js} +29 -29
- package/dist/{connection-CgA5_NJ7.js → connection-DNzNYpha.js} +1 -1
- package/dist/{context-C1XBbfEL.js → context-DVGPu7f_.js} +1 -1
- package/dist/dash/standalone/server/build-index.json +1 -1
- package/dist/dash/standalone/server/manifest.json +1231 -1231
- package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.91e126d7a389d4bd.js → index.a036e2c6ae93ec75.js} +3 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.858c062c7891a2c1.js → load.3e1c235ecb89201a.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.9375ab741dc9791e.js → page.ff03c26886d248d2.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.c36570a56d279ce2.js → notify.5b9c5a4ab975b01e.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.13fdd9cc55ad3a52.js → page.6e80433ca86c927d.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{sign-out.38a7f39cddc670f7.js → sign-out.e419e0eae59a1394.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.2385ffa8fdad08d6.js → agents-grid.53dc6597be8d6049.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{page.5ca6921e50484f8c.js → page.82a238c790c19a6c.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.afc4a8a5a8360975.js → layout.4a5c6f90ebaccf6f.js} +7 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.ba65063a1aa99a62.js → page.ed696703c6fb5796.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.03c5e72b0fe50ba9.js → page.12dbb62edaa16b4f.js} +11 -11
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-actions.7c8c75bd0c05df4a.js → platform-actions.1e7bb5f00112eeac.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-step.d6a980d1181dc940.js → platform-step.45adc3fb28e7d33b.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.b5299f5130a4e8af.js → agent-settings-form.1693e7dc34f5b94a.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.fad77cea17947d47.js → page.fbbcdf8fde222f1e.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.4120e6979eaed441.js → loading.099f0e549e964a5c.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.474b3524d5ea53b7.js → page.577e64210260faf2.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{page.7868a07efcaa26f4.js → page.2d10853615403293.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{versions-list.ba93a53773cab8a8.js → versions-list.e6088baf4de7f41e.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{loading.6e53829bd1f3021d.js → loading.f0dfaf4552b8cde1.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.5798ede8ba8ace97.js → page.9f09979ad3435fe3.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/{app-cards.55778a4b3177846d.js → app-cards.adaebe98ec9d32e8.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/{page.ce391cad0d78795f.js → page.e2dc60bbcac65b1f.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.0cec822c6099f058.js → agent-toggle.d795b7112534872c.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.7151c467e7ecf6a5.js → hero.b74c6eb40c45b498.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{connect-repositories.4e121d31ed0cfe02.js → connect-repositories.e27bcba279f82d7b.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.f314d92af0bb33b0.js → editor.288736c2a52c7df4.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.11028d5329ad537b.js → import-picker.58bad50dd8e60d63.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.1476d31e4554e88b.js → page.83a490948f585e69.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.150d950d191db477.js → layout.61ad05aceb425910.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{operator-apps.3e72de86b86a7338.js → operator-apps.6f71999915848a2c.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.6a4be3b1a473ff8c.js → page.4758811b7fc86d84.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{page.262ed73437c17872.js → page.7de674df6cd0e824.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{advanced-list.7180570379e2625c.js → advanced-list.851275e04f8e7305.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connection-add.632b1847c16ecd42.js → connection-add.45a224c5e612b15f.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connections-list.4378ae707b2092ed.js → connections-list.6cacd41c18de261d.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.e47897acb6867df8.js → credentials-list.79a1355d894b8642.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.6bd06f96afbe7329.js → credentials.30db114aef2c6ff6.js} +8 -8
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.38e70272eeb98cd0.js → list.fa3b9eff6657bc57.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{models-list.a08cd37d0f7ff86c.js → models-list.2a8f6a5679fc5c4d.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.f096b5a9ac419326.js → page.7681780b48e2aa3e.js} +13 -13
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.0df1f9329df1b67d.js → runners-list.e9834546550a3c2c.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.6d2f56fa7d6fcab0.js → secrets-list.ff9f3b3d88f2b8df.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.0fd865c865e5bab4.js → layout.3f8a61434ceaa186.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{page.c57b81c2197cce0f.js → page.e439da4bae9d6d6c.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{create-link.60aadbe43ea1e39c.js → create-link.371225925a83e900.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome-toast.e2b9ef0344b1a1a2.js → outcome-toast.c7d02e38464dec0b.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.c456ad99c8a9f875.js → page.885e5ae7913d8f5b.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{activity.2ec05d78d609b7b2.js → activity.f8d48c80747830ee.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.578be2f6c89fcba0.js → page.70ce5ef3bcf56310.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-actions.d131453dd2a423c3.js → task-actions.783070d7dbd198e4.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.3d72a4ecd2b3826e.js → task-view.db256c7f111b8f23.js} +20 -9
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.97be3e67214889c1.js → composer.6a331de70f3baff4.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{pending-approvals.9175908da02960e1.js → pending-approvals.7ff2eadf13a3ee90.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.028798c79227a366.js → tasks-list.57c90c66384141a0.js} +8 -8
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.9a9d13057b326f25.js → tasks-section.22e4f86847e1a3e2.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.045c6db0c56975b2.js → page.c6b9db3ca88aaa1f.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{page.938d29ff7edb678d.js → page.743fe359f09f5648.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.2cdb8eabd8f6df70.js → stream.c7ffa724145ce870.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.8733901ca0e4c246.js → task-toasts.b0ba5a1b4976ae27.js} +47 -20
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.56cea462eb725c39.js → action.44115286faf6c0f8.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.685154f230716834.js → client.b9225923da59febe.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{advanced-list-b75a9c2bd11026de.js → advanced-list-4a393f37c461986f.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{agent-pills-54564413a57d7fa7.js → agent-pills-f07bea43753a9342.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{agent-settings-form-55d294dad2ce5a0d.js → agent-settings-form-6c1b6776328cd046.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{agent-toggle-b5dcc4ea6292fb3d.js → agent-toggle-dabbca2fe4006852.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{agents-grid-69461c53abbba433.js → agents-grid-a9440caa1768bfd8.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{back-ba5e4340a9f8bbd2.js → back-8ca96656264a0d1c.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{chain-hint-491eb09a20a15702.js → chain-hint-c7994aad798ef430.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{combo-6df61e8a1cc31037.js → combo-7b125f3927083749.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{composer-198b844da57b82a3.js → composer-3efd63e2e0192937.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/composer-a6cf207b9c69b43f.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{confirm-14d018653fbe50fc.js → confirm-6e26ab941d655b9f.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{connect-repositories-5118edc019fc7890.js → connect-repositories-90f1aedea6de7a99.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{connections-list-5412dad7e0def52f.js → connections-list-90935e956e8f4626.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{copy-04781f9af4e10f06.js → copy-38fa78628f39ec10.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/create-link-a3c963721aa06a72.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{credentials-list-e64c973aee5602d3.js → credentials-list-ae950b9891d30c29.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{custom-range-b6919bab9846ebf7.js → custom-range-e9185a23187b3fe6.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{editor-68e9ccd1764fc512.js → editor-e0cc472111713852.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{field-adcb6e6a5f9b7131.js → field-444bab2e16b91c26.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/instructions-7d9131eb37c4619e.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{instructions-7b274685ceb26457.js → instructions-9f173d4229d9b77e.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{list-662f042656857c82.js → list-84356c9286747b10.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{models-list-ae1e2eff30d21824.js → models-list-eca9705ab89a2ce5.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/outcome-dialog-3006ae63624b3940.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{outcome-dialog-fd86ded4c44c2de7.js → outcome-dialog-c4d61a288688f53a.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{outcome-toast-c00becdb638cd9a8.js → outcome-toast-ba59a3c06c25f0fd.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/platform-actions-0c61a03082f9d169.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{platform-actions-f3979ab69a6ceb53.js → platform-actions-267a43c805e3c3a6.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{platform-step-5454b6c0a19caefd.js → platform-step-adfc87c1fa86e7e1.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/platform-step-fd1616528b2f6f12.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{runners-list-20d42f19fb4bec8a.js → runners-list-c858c5546c6fd513.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{secrets-list-89f89ee70edb3856.js → secrets-list-06cd41b5a2627452.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{segmented-66a8c77c6294fec3.js → segmented-15503e745dd97f56.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-02666a6f76606589.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/shared-init-7a7f1e623f0f5861.js +9 -0
- package/dist/dash/standalone/static/assets/chunks/{shared-init-96225b8c7758de9d.js → shared-init-a69029db2d72fb52.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/side-toggle-800f7bacd6de5aa8.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{tail-40f16e09eade7eee.js → tail-3024b828bce41f94.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{task-396d849e58e50d59.js → task-1e6f9ba22fb5e29f.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{task-actions-0b3054dc0f8d17c0.js → task-actions-c8fe1201a56901d9.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{task-view-9e026dc5da58af5b.js → task-view-531e243f8222f802.js} +3 -3
- package/dist/dash/standalone/static/assets/chunks/{tasks-list-04c6568d7f7237b7.js → tasks-list-5373f9a2772a386a.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{versions-list-ceb756236e69b761.js → versions-list-6642a24e9cef352b.js} +1 -1
- package/dist/dash/standalone/static/assets/pnext-client-02b9bb5ae78a37d6.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-063d14b5b5c893a3.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-1710a65c5b8280af.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-2936b44e963219bc.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-2f14cc4bf71bf456.js +1 -0
- package/dist/dash/standalone/static/assets/{pnext-client-27207e4f43f9a21b.js → pnext-client-2f81535a69d0c8a3.js} +1 -1
- package/dist/dash/standalone/static/assets/pnext-client-368d90341055d7ff.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-58e0efbceb6c595f.js +1 -0
- package/dist/dash/standalone/static/assets/{pnext-client-435db60553fa3a67.js → pnext-client-5fc693a6184e48a4.js} +1 -1
- package/dist/dash/standalone/static/assets/pnext-client-6ee756a74310a9fe.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-713f7a6bc55d23fb.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-7c91f8543cd360fa.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-827b030f2c8e738e.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-8b165b7e5c14a1f3.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-95a81597ac1bdea0.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-a4c2fb8a94ccce04.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-a7faaaf8c4cc8145.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-bab8ffb68e7dd229.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-d9fab2611c2e7246.js +1 -0
- package/dist/dash/standalone/static/assets/{pnext-client-b1af82c6f0db0033.js → pnext-client-f3804c9ffb299fe0.js} +1 -1
- package/dist/{drive-B7SBFfcb.js → drive-MggMiKA0.js} +1 -1
- package/dist/{exec-D9jF2F-H.js → exec-CNygM6yF.js} +1 -1
- package/dist/{executor-DBW7R7Tf.js → executor-Ds4wDCzV.js} +1 -1
- package/dist/flow/builtin/review/index.js +1 -1
- package/dist/flow/index.js +1 -1
- package/dist/{hook-DN__zYOG.js → hook-CVJU-ZD0.js} +1 -1
- package/dist/{local-BzMvgiwL.js → local-CqOUpEtl.js} +1 -1
- package/dist/{local-GIxwz_Or.js → local-DFrTuJFN.js} +1 -1
- package/dist/{login-LlZrIlxb.js → login-93jO9qjx.js} +1 -1
- package/dist/{maintenance-DyiyHI8S.js → maintenance-BuDKnfc7.js} +1 -1
- package/dist/{mcp-CrtKQoVi.js → mcp-CTVOR7r6.js} +1 -1
- package/dist/{mcp-Caq72REF.js → mcp-EwT2mCaa.js} +1 -1
- package/dist/{models-BVxs3I8o.js → models-mKyePWrV.js} +1 -1
- package/dist/{permission-RSZM3DUk.js → permission-F6F25GJU.js} +1 -1
- package/dist/remote-Cl-j8r3W.js +1 -0
- package/dist/{runner-CKMOh5Q3.js → runner-DK0jnzPr.js} +1 -1
- package/dist/runner.json +1 -1
- package/dist/runner.tgz +0 -0
- package/dist/schema.js +1 -1
- package/dist/sdk.d.ts +34 -0
- package/dist/sdk.js +1 -1
- package/dist/serve-Cqlkgdfd.js +8 -0
- package/dist/{serve-YlU04KO7.js → serve-DHe6dZM6.js} +1 -1
- package/dist/{session-D7eeJIaH.js → session-BMbMzzPu.js} +1 -1
- package/dist/{shared-BzNReirj.js → shared-D-KqAi7b.js} +1 -1
- package/dist/{sign-in-Dr6sU7vz.js → sign-in-Dv-rdYD4.js} +1 -1
- package/dist/{store-BrnWdtRw.js → store-BpDipcKB.js} +18 -18
- package/dist/{task-CyqtCXo3.js → task-BRHXn5y1.js} +1 -1
- package/dist/{task-DN4assR8.js → task-CzXNLREX.js} +1 -1
- package/dist/{tools-DVtBtED6.js → tools-BCm26CeV.js} +1 -1
- package/dist/{tools-Ck-ZWtmB.js → tools-C69W1B6S.js} +1 -1
- package/dist/{tools-search-BNDea9vZ.js → tools-search-BDaeCoWe.js} +1 -1
- package/dist/{worker-DeuC38Vp.js → worker-DGhRPDDt.js} +2 -2
- package/dist/{worker-DJANNSCT.js → worker-DHNBRRl-.js} +1 -1
- package/package.json +1 -1
- package/plugins/claude/.claude-plugin/plugin.json +1 -1
- package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
- package/dist/dash/standalone/static/assets/chunks/composer-b26a3332a1243461.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/create-link-0651addf1461f901.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/instructions-0022dd3bdd57c13f.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/outcome-dialog-546fe090efc129c2.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/platform-actions-2be223e68e648134.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/platform-step-9a52703f4c4f6a31.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-96cde32cd50254c0.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-abd7653140f37a0c.js +0 -9
- package/dist/dash/standalone/static/assets/chunks/side-toggle-8a410cc6d6bd9b1d.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-07b41bfab64b61c0.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-0d388d56250f9f46.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-1443e45181b60bb0.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-523dd4071aa294ba.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-5f6bda3919f68382.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-684fd8ad16563ed3.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-6b952cdda9a1eb2b.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-6fe9e98f7dd8dcbf.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-730c2c507a159f9e.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-7c46573e45b67166.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-83a865c3d75705bd.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-907d1db4fb398a1d.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-9baf701f3e641d09.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-a57705e4e1047a9e.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-cede3bd7b2735942.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-d9a3996f22b6816b.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-f95364a0073ca4ce.js +0 -1
- package/dist/remote-CY-qYX2C.js +0 -1
- package/dist/serve-D23JqDip.js +0 -12
|
@@ -3,18 +3,18 @@ import "./tasks-list.f3737549b4696cc8.css.pnext-asset.js";
|
|
|
3
3
|
import { Fragment } from "../../../../../../../../../../node_modules/preact/dist/preact.mjs";
|
|
4
4
|
import { dynamic } from "../../../../../../../../../../node_modules/@wular/pnext/src/api/dynamic.tsx";
|
|
5
5
|
import { useEffect, useRef, useState } from "../../../../../../../../../../node_modules/preact/hooks/dist/hooks.mjs";
|
|
6
|
-
import { client } from "../../../../../utils/client.
|
|
7
|
-
import { useAction } from "../../../../../utils/action.
|
|
6
|
+
import { client } from "../../../../../utils/client.b9225923da59febe.js";
|
|
7
|
+
import { useAction } from "../../../../../utils/action.44115286faf6c0f8.js";
|
|
8
8
|
import { formatCount, formatDate, formatDay, formatDuration } from "../../../../../utils/format.ceeaafa10a0563f3.js";
|
|
9
9
|
import { iAgent, iClock, iDots, iFolder, iMonitor, iPlug, iPlus, iTerminal } from "../../../../../comps/ui/icons.f769275420d072ce.js";
|
|
10
10
|
import { Menu } from "../../../../../comps/ui/menu.7f558c7c6f6345d5.js";
|
|
11
11
|
import { MenuItem } from "../../../../../comps/ui/menu-items.759a1b1f7c5ee365.js";
|
|
12
12
|
import { Link } from "../../../../../../../../../../node_modules/@wular/pnext/src/api/link.tsx";
|
|
13
|
-
import { PendingApprovals } from "./pending-approvals.
|
|
13
|
+
import { PendingApprovals } from "./pending-approvals.7ff2eadf13a3ee90.js";
|
|
14
14
|
import { useRouter } from "../../../../../../../../../../node_modules/@wular/pnext/src/api/client-navigation.ts";
|
|
15
15
|
import { usePaged } from "../../../../../utils/paged.0e54c3044f8ca567.js";
|
|
16
16
|
import { useZone } from "../../../../zone.0515a688ee5ff6ca.js";
|
|
17
|
-
import { pendingApproval } from "../[id]/task-actions.
|
|
17
|
+
import { pendingApproval } from "../[id]/task-actions.783070d7dbd198e4.js";
|
|
18
18
|
import { BrandIcon } from "../../agents/agent/agent-pills.1012e04bfbc7bffd.js";
|
|
19
19
|
import { Button } from "../../../../../comps/ui/button.b62fa52e18fa338b.js";
|
|
20
20
|
import { Card, Empty } from "../../../../../comps/ui/card.c0030eafd76587e3.js";
|
|
@@ -29,11 +29,11 @@ import { LIST_PAGE } from "../../../../../utils/paged.0e54c3044f8ca567.js";
|
|
|
29
29
|
import { Search, Toolbar, queryOf, useFilters } from "../../../../../comps/ui/toolbar.ff8367c641d28c1e.js";
|
|
30
30
|
import { Tail } from "../../../../../comps/ui/tail.7eb303330802ac18.js";
|
|
31
31
|
import { SOURCES, STATUSES, folderName, listFilters, sourceLabel } from "./task.a25847399a4dfb30.js";
|
|
32
|
-
import { NeedsCredential } from "../composer.
|
|
33
|
-
import { useTaskEvents } from "../../../../../comps/frame/task-toasts.
|
|
32
|
+
import { NeedsCredential } from "../composer.6a331de70f3baff4.js";
|
|
33
|
+
import { useTaskEvents } from "../../../../../comps/frame/task-toasts.b0ba5a1b4976ae27.js";
|
|
34
34
|
import { useOrg } from "../../../../../comps/nav/org.853d173b55368728.js";
|
|
35
35
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "../../../../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
|
|
36
|
-
const NewTaskButton = dynamic(() => import("../composer.
|
|
36
|
+
const NewTaskButton = dynamic(() => import("../composer.6a331de70f3baff4.js").then((m) => m.NewTaskButton), {
|
|
37
37
|
// TODO: stays disabled after client navigation until pnext SSRs nested dynamic() like Next.js.
|
|
38
38
|
loading: () => /* @__PURE__ */ _jsx(Button, {
|
|
39
39
|
class: "new-task",
|
|
@@ -43,7 +43,7 @@ loading: () => /* @__PURE__ */ _jsx(Button, {
|
|
|
43
43
|
}) }, {
|
|
44
44
|
"file": decodeURIComponent(new URL("../../../../../../../../../../../../../src/server/dash/app/dash/[org]/tasks/composer.tsx", import.meta.url).pathname),
|
|
45
45
|
"exportName": "NewTaskButton",
|
|
46
|
-
"id": "c-
|
|
46
|
+
"id": "c-6ad71039d9"
|
|
47
47
|
});
|
|
48
48
|
const SOURCE_ICONS = {
|
|
49
49
|
dashboard: iMonitor,
|
|
@@ -2,19 +2,19 @@ import "./tasks-list.f3737549b4696cc8.css.pnext-asset.js";
|
|
|
2
2
|
import { dynamic } from "../../../../../../../../../../node_modules/@wular/pnext/src/api/dynamic.tsx";
|
|
3
3
|
import { zoneOf } from "../../../../../utils/format.ceeaafa10a0563f3.js";
|
|
4
4
|
import { FILTER_ROWS, LIST_PAGE } from "../../../../../utils/paged.0e54c3044f8ca567.js";
|
|
5
|
-
import { load } from "../../../../../api/load.
|
|
6
|
-
import { Settle } from "../../../../../comps/frame/stream.
|
|
5
|
+
import { load } from "../../../../../api/load.3e1c235ecb89201a.js";
|
|
6
|
+
import { Settle } from "../../../../../comps/frame/stream.c7ffa724145ce870.js";
|
|
7
7
|
import { LoadingCard, LoadingToolbar } from "../../../../../comps/frame/loading-card.77bea8c5870b5d3c.js";
|
|
8
8
|
import { listFilters } from "./task.a25847399a4dfb30.js";
|
|
9
9
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "../../../../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
|
|
10
10
|
// Rows arrive rendered; paging and filters hydrate once the list is in view.
|
|
11
|
-
const TasksList = dynamic(() => import("./tasks-list.
|
|
11
|
+
const TasksList = dynamic(() => import("./tasks-list.57c90c66384141a0.js").then((m) => m.TasksList), {
|
|
12
12
|
load: "visible",
|
|
13
13
|
ssr: true
|
|
14
14
|
}, {
|
|
15
15
|
"file": decodeURIComponent(new URL("../../../../../../../../../../../../../src/server/dash/app/dash/[org]/tasks/list/tasks-list.tsx", import.meta.url).pathname),
|
|
16
16
|
"exportName": "TasksList",
|
|
17
|
-
"id": "c-
|
|
17
|
+
"id": "c-ca3ddc4b71"
|
|
18
18
|
});
|
|
19
19
|
/** A task list before it arrives; an agent's own tab has no head and no agent filter. */
|
|
20
20
|
export function TasksLoading({ head }) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { load } from "../../../../api/load.
|
|
1
|
+
import { load } from "../../../../api/load.3e1c235ecb89201a.js";
|
|
2
2
|
import { HEADS } from "../../../../comps/frame/heads.37e35439c02fc636.js";
|
|
3
3
|
import { Page } from "../../../../comps/frame/page-head.2eb1e0213eb50349.js";
|
|
4
|
-
import { TasksSection, loadTasks } from "./list/tasks-section.
|
|
4
|
+
import { TasksSection, loadTasks } from "./list/tasks-section.22e4f86847e1a3e2.js";
|
|
5
5
|
import { credentialMissing } from "./composer-data.c16854be11a561e4.js";
|
|
6
6
|
import { jsx as _jsx } from "../../../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
|
|
7
7
|
/** Every task, with New task in the head, and for an admin the changes waiting for their approval. */
|
|
@@ -2,11 +2,11 @@ import "./@/comps/ui/segmented.41728247cda62f82.css.pnext-asset.js";
|
|
|
2
2
|
import "./@/app/dash/[org]/usage/range-bar.85d30ec5f022f124.css.pnext-asset.js";
|
|
3
3
|
import { formatCompact, formatCount, formatDuration, zoneOf } from "../../../../utils/format.ceeaafa10a0563f3.js";
|
|
4
4
|
import { daysIn, rangeFor } from "../../../../utils/range.f73ba9cac0a60af1.js";
|
|
5
|
-
import { load, orgOf } from "../../../../api/load.
|
|
5
|
+
import { load, orgOf } from "../../../../api/load.3e1c235ecb89201a.js";
|
|
6
6
|
import { Card } from "../../../../comps/ui/card.c0030eafd76587e3.js";
|
|
7
7
|
import { Page, PageHead } from "../../../../comps/frame/page-head.2eb1e0213eb50349.js";
|
|
8
8
|
import { Stat, Stats } from "./stats.de820599cf126120.js";
|
|
9
|
-
import { Settle } from "../../../../comps/frame/stream.
|
|
9
|
+
import { Settle } from "../../../../comps/frame/stream.c7ffa724145ce870.js";
|
|
10
10
|
import { HEADS } from "../../../../comps/frame/heads.37e35439c02fc636.js";
|
|
11
11
|
import { TopAgents } from "./top-agents.93c916167299ffb6.js";
|
|
12
12
|
import { DayChart } from "./day-chart.20faaaf57c81ad9e.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Suspense } from "../../../../../../../node_modules/preact/compat/dist/compat.mjs";
|
|
2
|
-
import { signedOut } from "../../api/load.
|
|
2
|
+
import { signedOut } from "../../api/load.3e1c235ecb89201a.js";
|
|
3
3
|
import { Card } from "../ui/card.c0030eafd76587e3.js";
|
|
4
4
|
import { reasonText } from "../../utils/format.ceeaafa10a0563f3.js";
|
|
5
5
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import "./task-toasts.682322f6f729b33e.css.pnext-asset.js";
|
|
3
3
|
import { useEffect, useRef, useState } from "../../../../../../../node_modules/preact/hooks/dist/hooks.mjs";
|
|
4
4
|
import { serverEvents } from "../../../../client/http.e78b470f4ecf125b.js";
|
|
5
|
-
import { client } from "../../utils/client.
|
|
5
|
+
import { client } from "../../utils/client.b9225923da59febe.js";
|
|
6
6
|
import { Link } from "../../../../../../../node_modules/@wular/pnext/src/api/link.tsx";
|
|
7
7
|
import { usePathname, useRouter } from "../../../../../../../node_modules/@wular/pnext/src/api/client-navigation.ts";
|
|
8
8
|
import { Status, STATUS_LABEL } from "../../app/dash/[org]/tasks/list/status.d2c05c397780b833.js";
|
|
@@ -22,7 +22,7 @@ const SHOWN = new Set([...DONE, "waiting"]);
|
|
|
22
22
|
const KEEP = 20;
|
|
23
23
|
const MAX = 3;
|
|
24
24
|
const TTL = 8e3;
|
|
25
|
-
// The Web Lock that picks the one tab
|
|
25
|
+
// The Web Lock that picks the one tab polling the events, and the channel it shares them on.
|
|
26
26
|
const EVENTS = "coder:events";
|
|
27
27
|
const TASK = "coder:task";
|
|
28
28
|
const REPLAY = "coder:task-replay";
|
|
@@ -35,6 +35,7 @@ const RUNNERS = "coder:runners";
|
|
|
35
35
|
const RESYNC_MS = 6e4;
|
|
36
36
|
// Latest events a tab keeps, so a page that mounts later starts from them.
|
|
37
37
|
const LATEST = 200;
|
|
38
|
+
const POLL_MS = 5e3;
|
|
38
39
|
const read = () => {
|
|
39
40
|
try {
|
|
40
41
|
return JSON.parse(localStorage.getItem(WATCHED) ?? "{}") ?? {};
|
|
@@ -104,15 +105,18 @@ export function useTaskEvents(on, reset, resync) {
|
|
|
104
105
|
};
|
|
105
106
|
}, []);
|
|
106
107
|
}
|
|
107
|
-
/** One events
|
|
108
|
+
/** One events poll per browser and organization: the tab holding the lock polls, shares the events on a channel, and a tab that takes over resumes from the last event id. */
|
|
108
109
|
function useEventsStream(ids, leading, org) {
|
|
109
110
|
const asked = useRef(ids);
|
|
110
111
|
asked.current = ids;
|
|
111
112
|
const current = useRef();
|
|
113
|
+
const sync = useRef(() => {});
|
|
112
114
|
const key = [...ids].sort().join(",");
|
|
113
115
|
useEffect(() => {
|
|
114
116
|
const latest = new Map();
|
|
115
117
|
const deliver = (event) => {
|
|
118
|
+
// Each poll repeats what changed lately; pages hear a change once.
|
|
119
|
+
if (JSON.stringify(latest.get(event.id)) === JSON.stringify(event)) return;
|
|
116
120
|
latest.delete(event.id);
|
|
117
121
|
latest.set(event.id, event);
|
|
118
122
|
if (latest.size > LATEST) latest.delete(latest.keys().next().value);
|
|
@@ -123,6 +127,7 @@ function useEventsStream(ids, leading, org) {
|
|
|
123
127
|
};
|
|
124
128
|
addEventListener(REPLAY, replay);
|
|
125
129
|
let counts;
|
|
130
|
+
let runners = "";
|
|
126
131
|
const replayCounts = (event) => counts && event.detail(counts);
|
|
127
132
|
addEventListener(COUNTS_REPLAY, replayCounts);
|
|
128
133
|
const channel = typeof BroadcastChannel !== "undefined" && navigator.locks ? new BroadcastChannel(`${EVENTS}:${org}`) : undefined;
|
|
@@ -137,7 +142,10 @@ function useEventsStream(ids, leading, org) {
|
|
|
137
142
|
counts = message.counts;
|
|
138
143
|
dispatchEvent(new CustomEvent(COUNTS, { detail: counts }));
|
|
139
144
|
}
|
|
140
|
-
if (message.runners
|
|
145
|
+
if (message.runners && JSON.stringify(message.runners) !== runners) {
|
|
146
|
+
runners = JSON.stringify(message.runners);
|
|
147
|
+
dispatchEvent(new CustomEvent(RUNNERS, { detail: message.runners }));
|
|
148
|
+
}
|
|
141
149
|
if (message.resync) dispatchEvent(new Event(RESYNC));
|
|
142
150
|
if (!message.reset) return;
|
|
143
151
|
latest.clear();
|
|
@@ -145,7 +153,7 @@ function useEventsStream(ids, leading, org) {
|
|
|
145
153
|
};
|
|
146
154
|
channel?.addEventListener("message", ({ data }) => {
|
|
147
155
|
if (!data.hello) return receive(data);
|
|
148
|
-
// A tab that just loaded: the next
|
|
156
|
+
// A tab that just loaded: the next poll goes now, for it too.
|
|
149
157
|
soon ??= setTimeout(() => {
|
|
150
158
|
soon = undefined;
|
|
151
159
|
current.current?.abort.abort();
|
|
@@ -153,37 +161,38 @@ function useEventsStream(ids, leading, org) {
|
|
|
153
161
|
}, 300);
|
|
154
162
|
});
|
|
155
163
|
channel?.postMessage({ hello: true });
|
|
156
|
-
const lead = async () => {
|
|
164
|
+
const lead = async (signal) => {
|
|
157
165
|
leading.current = true;
|
|
158
166
|
const resync = setInterval(() => {
|
|
159
167
|
channel?.postMessage({ resync: true });
|
|
160
168
|
receive({ resync: true });
|
|
161
169
|
}, RESYNC_MS);
|
|
162
170
|
try {
|
|
163
|
-
await follow();
|
|
171
|
+
await follow(signal);
|
|
164
172
|
} finally {
|
|
165
173
|
clearInterval(resync);
|
|
174
|
+
leading.current = false;
|
|
166
175
|
}
|
|
167
176
|
};
|
|
168
|
-
const follow = async () => {
|
|
169
|
-
while (!
|
|
177
|
+
const follow = async (signal) => {
|
|
178
|
+
while (!signal.aborted) {
|
|
170
179
|
const once = new AbortController();
|
|
171
180
|
const stop = () => once.abort();
|
|
172
|
-
|
|
181
|
+
signal.addEventListener("abort", stop);
|
|
173
182
|
const ids = asked.current;
|
|
174
183
|
current.current = {
|
|
175
184
|
key: [...ids].sort().join(","),
|
|
176
185
|
abort: once
|
|
177
186
|
};
|
|
178
|
-
let wait =
|
|
187
|
+
let wait = POLL_MS;
|
|
179
188
|
try {
|
|
180
189
|
const response = await client.tasks.events(ids, last, once.signal);
|
|
181
190
|
// A server without the events stream: nothing to follow.
|
|
182
191
|
if (response.status === 404) return void (leading.current = false);
|
|
183
192
|
// Signed out: a tab that signs in again wakes the next try.
|
|
184
|
-
if (
|
|
185
|
-
else for await (const { event, data, id } of serverEvents(response.body)) {
|
|
186
|
-
// A
|
|
193
|
+
if ([401, 403].includes(response.status)) wait = 6e4;
|
|
194
|
+
else if (response.ok && response.body) for await (const { event, data, id } of serverEvents(response.body)) {
|
|
195
|
+
// A poll replaced by the next one says nothing more.
|
|
187
196
|
if (once.signal.aborted) break;
|
|
188
197
|
const message = {
|
|
189
198
|
...id ? { id } : {},
|
|
@@ -198,8 +207,8 @@ function useEventsStream(ids, leading, org) {
|
|
|
198
207
|
} catch (reason) {
|
|
199
208
|
if (!once.signal.aborted) console.error("coder dashboard: events", reason);
|
|
200
209
|
}
|
|
201
|
-
|
|
202
|
-
// A new task set
|
|
210
|
+
signal.removeEventListener("abort", stop);
|
|
211
|
+
// A new task set polls again at once.
|
|
203
212
|
if (once.signal.aborted) continue;
|
|
204
213
|
await new Promise((done) => {
|
|
205
214
|
const timer = setTimeout(done, wait);
|
|
@@ -211,21 +220,39 @@ function useEventsStream(ids, leading, org) {
|
|
|
211
220
|
wake = () => {};
|
|
212
221
|
}
|
|
213
222
|
};
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
223
|
+
// A hidden tab polls nothing, unless it notifies of a watched task still running.
|
|
224
|
+
let turn;
|
|
225
|
+
const wanted = () => document.visibilityState !== "hidden" || asked.current.length > 0 && localStorage.getItem(NOTIFY) === "1" && typeof Notification !== "undefined" && Notification.permission === "granted";
|
|
226
|
+
sync.current = () => {
|
|
227
|
+
if (!wanted()) {
|
|
228
|
+
turn?.abort();
|
|
229
|
+
turn = undefined;
|
|
230
|
+
return wake();
|
|
231
|
+
}
|
|
232
|
+
if (turn) return;
|
|
233
|
+
turn = new AbortController();
|
|
234
|
+
const signal = AbortSignal.any([abort.signal, turn.signal]);
|
|
235
|
+
if (channel) void navigator.locks.request(`${EVENTS}:${org}`, { signal }, () => lead(signal)).catch((reason) => {
|
|
236
|
+
if (!signal.aborted) console.error("coder dashboard: events", reason);
|
|
237
|
+
});
|
|
238
|
+
else void lead(signal);
|
|
239
|
+
};
|
|
240
|
+
const visibility = () => sync.current();
|
|
241
|
+
addEventListener("visibilitychange", visibility);
|
|
242
|
+
sync.current();
|
|
218
243
|
return () => {
|
|
219
244
|
abort.abort();
|
|
220
245
|
wake();
|
|
221
246
|
clearTimeout(soon);
|
|
222
247
|
channel?.close();
|
|
248
|
+
removeEventListener("visibilitychange", visibility);
|
|
223
249
|
removeEventListener(REPLAY, replay);
|
|
224
250
|
removeEventListener(COUNTS_REPLAY, replayCounts);
|
|
225
251
|
};
|
|
226
252
|
}, []);
|
|
227
253
|
useEffect(() => {
|
|
228
254
|
if (current.current && current.current.key !== key) current.current.abort.abort();
|
|
255
|
+
sync.current();
|
|
229
256
|
}, [key]);
|
|
230
257
|
}
|
|
231
258
|
/** Hears the runners this person sees whenever one is added, changed, removed, or goes on or offline. */
|
|
@@ -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.b0ba5a1b4976ae27.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.a036e2c6ae93ec75.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) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{a as u}from"./list-
|
|
1
|
+
"use client";import{a as u}from"./list-84356c9286747b10.js";import"./confirm-6e26ab941d655b9f.js";import"./shared-init-a69029db2d72fb52.js";import"./shared-init-a69029db2d72fb52.js";import"./shared-init-7a7f1e623f0f5861.js";import"./shared-init-7a7f1e623f0f5861.js";import{$0o as h}from"./shared-init-7a7f1e623f0f5861.js";import"./wular-pnext-3fcac605fffcc273-0.js";import"./shared-init-7a7f1e623f0f5861.js";import{$4Q as e,$4R as p,$4v as d}from"./shared-init-7a7f1e623f0f5861.js";import"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";import{$2h as c}from"./shared-init-3fcac605fffcc273-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};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$2E as b}from"./shared-init-7a7f1e623f0f5861.js";import{$0g as h,$0i as m,$0j as f,$0k as n}from"./shared-init-7a7f1e623f0f5861.js";import{$4Q as r,$4R as a,$4t as l}from"./shared-init-7a7f1e623f0f5861.js";import{$2c as u,$2n as g}from"./shared-init-3fcac605fffcc273-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
2
|
`),...o,children:"not running"}):null]})}export{y as a,S as b,w as c,E as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{a as ne}from"./chain-hint-
|
|
1
|
+
"use client";import{a as ne}from"./chain-hint-c7994aad798ef430.js";import{a as Z}from"./agent-pills-f07bea43753a9342.js";import{a as ee}from"./agent-toggle-dabbca2fe4006852.js";import{$1c as X}from"./shared-init-02666a6f76606589.js";import{d as H,h as R,l as W}from"./model-options-5e07b3318d69d218.js";import{b as I,c as Y}from"./types-3eca2c7f47c46054.js";import{a as K}from"./confirm-6e26ab941d655b9f.js";import{a as f}from"./field-444bab2e16b91c26.js";import{$1b as F}from"./shared-init-a69029db2d72fb52.js";import"./shared-init-a69029db2d72fb52.js";import{$1m as J}from"./shared-init-7a7f1e623f0f5861.js";import{$2D as G,$2a as _,$2v as z,$2z as w}from"./shared-init-7a7f1e623f0f5861.js";import{$0c as P}from"./shared-init-7a7f1e623f0f5861.js";import"./wular-pnext-3fcac605fffcc273-0.js";import"./shared-init-7a7f1e623f0f5861.js";import{$4Q as e,$4S as D,$4b as y}from"./shared-init-7a7f1e623f0f5861.js";import"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";import{$2c as b,$2h as d,$2k as V,$2l as Q}from"./shared-init-3fcac605fffcc273-2.js";function Ie({agent:t,catalog:te,shape:k,runners:$,connections:q}){let se=_(),p=G(),[m,x]=d("run"),B=F({refresh:!0}),N=F({leaves:!0}),oe=!!B.pending,[S,ae]=d(""),[h,ie]=d(),[le,A]=d(!1),O=Q(null),l=t.settings??{},[C,re]=d(l.model?.includes("/")?l.model:[l.engine,l.model,l.effort].filter(Boolean).join("/")),[E,ce]=d(l.connections?"some":""),L=t.definition?.integrations??{},g=Object.keys(L).sort(),T=t.definition,j=t.source!=="builtin";V(()=>{let n=S.trim().toLowerCase(),o=[];O.current.querySelectorAll(".vpanel").forEach(i=>{let a=!1;i.querySelectorAll(".field").forEach(s=>{let r=[...s.querySelectorAll("input")].map(v=>v.value).join(" "),c=s.closest(".vplatform")?.querySelector("h3")?.textContent??"",u=!n||`${c} ${s.textContent} ${r}`.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)}),ie(n?o:void 0),n&&o.length&&!o.includes(m)&&x(o[0])},[S]);let de=()=>void N.run("delete",async()=>{await P.agents.remove(t.id),se.push("/dash/[org]/agents",{params:{org:p}})}).then(n=>n||A(!1)),M=(n,o)=>e("button",{type:"button","aria-current":m===n?"true":void 0,class:h&&!h.includes(n)?"miss":void 0,onClick:()=>x(n),children:o});return e("form",{ref:O,class:"vsettings card frame",onSubmit:async n=>{n.preventDefault();let o=new FormData(n.currentTarget),i=c=>String(o.get(c)??"").trim(),a={};i("runner")&&(a.runner=i("runner")),i("access")!==(T?.access??"auto")&&(a.access=i("access")),C.trim()&&(a.model=C.trim()),E&&(a.connections=o.getAll("connection").map(String));for(let c of g){let u={},v=I(L[c]?.events),U=o.getAll(`event:${c}`).map(String);v.length&&U.length<v.length&&(u.allowedEvents=U),Object.keys(u).length&&((a.integrations??={})[c]=u)}t.settings?.disabled&&(a.disabled=!0);let s;await B.run("save",async()=>{({warning:s}=await P.agents.settings(t.id,a))})&&J("Saved",s??"New tasks use these settings.",s?"warning":"success")},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:S,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:m!=="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(f,{label:"Model",hint:e(ne,{org:p,own:t.definition?.model&&R(t.definition.model,k.builtin)}),group:!0,children:e(X,{shape:k,empty:t.definition?.model?{label:`Its own, ${R(t.definition.model,k.builtin)}`,sub:"from agent.json"}:W(),value:C,onChange:re})}),e(f,{label:"Access",hint:"what its tasks, platforms and connections may do",group:!0,children:e(w,{name:"access",label:"Access",defaultValue:l.access??T?.access??"auto",options:T?.access==="read-only"?H.filter(([n])=>n==="read-only"):H})}),$.length>1?e(f,{label:"Runs on",group:!0,children:e(w,{name:"runner",label:"Runs on",defaultValue:l.runner??"",options:$})}):null,e(f,{label:"Connections",hint:"which workspace connections its tasks can use",group:!0,children:e(w,{label:"Connections",value:E,options:[["","Every workspace connection"],["some","Only the ones picked"]],onChange:ce})}),E?e("div",{class:"field picked",children:[e("span",{children:["Picked connections ",e("small",{children:"tasks can use only these"})]}),q.length?e("div",{class:"checks",children:q.map(n=>e("label",{class:"check",children:[e("input",{type:"checkbox",name:"connection",value:n.id,defaultChecked:l.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:p,tab:"connections"},children:"Add one in Settings"})]})]}):null]})]}),g.length?e("section",{class:"vpanel","data-panel":"platforms",hidden:m!=="platforms",children:[e("h2",{children:"Platforms"}),e("p",{class:"muted",children:["Turn events off for this workspace."," ",Y(t)?e(b,{children:["To add an event or a platform,"," ",e(y,{href:"/dash/[org]/agents/[slug]/edit",params:{org:p,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:p},children:"create your own agent"}),"."]})]}),g.map(n=>{let o=l.integrations?.[n]??{},i=I(L[n]?.events),a=o.allowedEvents,s=te.find(r=>r.id===n);return e("div",{class:"vplatform",children:[e("h3",{children:[s?e(Z,{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(r=>e("label",{class:"check",children:[e("input",{type:"checkbox",name:`event:${n}`,value:r,defaultChecked:!a||a.includes(r)}),r]},r))})]}):null]},n)})]}):null,e("section",{class:"vpanel","data-panel":"manage",hidden:m!=="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(ee,{agent:t})]}),e("div",{class:"field row-action",children:[e("span",{children:["Delete agent",e("small",{children:j?"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(D,{variant:"secondary",danger:!0,disabled:!j,onClick:()=>A(!0),children:"Delete agent"})]})]}),m==="manage"?null:e("div",{class:"form-actions save",children:e(D,{type:"submit",loading:oe,children:"Save"})})]}),le?e(K,{open:!0,title:`Delete ${t.name}?`,body:"It stops answering on every platform. This cannot be undone.",confirmLabel:"Delete agent",busy:!!N.pending,onClose:()=>A(!1),onConfirm:de}):null]})}export{Ie as AgentSettingsForm};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$1b as b}from"./shared-init-a69029db2d72fb52.js";import{$0c as r}from"./shared-init-7a7f1e623f0f5861.js";import{$4Q as s,$4S as c}from"./shared-init-7a7f1e623f0f5861.js";import{$2h as g}from"./shared-init-3fcac605fffcc273-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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{a as P,b as R,d as q}from"./agent-pills-
|
|
1
|
+
"use client";import{a as P,b as R,d as q}from"./agent-pills-f07bea43753a9342.js";import{a as L}from"./tail-3024b828bce41f94.js";import{c as N}from"./types-3eca2c7f47c46054.js";import{$0g as k}from"./shared-init-a69029db2d72fb52.js";import{$2D as a,$2t as A,$2u as w,$2v as C,$2w as I,$2x as v}from"./shared-init-7a7f1e623f0f5861.js";import{$0c as f,$0q as y,$0s as b}from"./shared-init-7a7f1e623f0f5861.js";import"./wular-pnext-3fcac605fffcc273-0.js";import{$4Q as e,$4T as h,$4b as g,$4c as u}from"./shared-init-7a7f1e623f0f5861.js";import"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";import{$2c as c}from"./shared-init-3fcac605fffcc273-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{$
|
|
1
|
+
import{$2B as c,$2D as a}from"./shared-init-7a7f1e623f0f5861.js";import{$4Q as r,$4T as i}from"./shared-init-7a7f1e623f0f5861.js";import{$2j as m}from"./shared-init-3fcac605fffcc273-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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$4Q as n,$4R as e,$4b as o,$4q as s}from"./shared-init-7a7f1e623f0f5861.js";import{$2c as r}from"./shared-init-3fcac605fffcc273-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{$2A as S,$2n as E,$2y as M}from"./shared-init-7a7f1e623f0f5861.js";import{$4Q as r}from"./shared-init-7a7f1e623f0f5861.js";import{$2c as L,$2h as u,$2k as $,$2l as d,$2n as C}from"./shared-init-3fcac605fffcc273-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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as ne,b as ze,c as We,d as Je,f as Xe}from"./composer-data-b05f3d93fdc472d7.js";import{m as qe}from"./task-396d849e58e50d59.js";import{a as Ie}from"./connect-repositories-5118edc019fc7890.js";import{$1a as Ge}from"./shared-init-96cde32cd50254c0.js";import{$0a as Ke,$0b as Ue}from"./shared-init-96cde32cd50254c0.js";import{c as He,d as je,h as oe}from"./model-options-5e07b3318d69d218.js";import{$0a as H,$0b as Fe}from"./shared-init-96225b8c7758de9d.js";import{$1h as $}from"./shared-init-96225b8c7758de9d.js";import{a as Qe}from"./back-ba5e4340a9f8bbd2.js";import{$2o as Be}from"./shared-init-abd7653140f37a0c.js";import{$0D as De,$0a as ve,$0c as Me,$0k as Te,$0m as ee,$0n as Ae,$0o as E,$0p as Ne,$0r as Pe,$0s as I,$0z as te}from"./shared-init-abd7653140f37a0c.js";import{$1c as b,$1r as xe}from"./shared-init-abd7653140f37a0c.js";import{$3B as Re,$3G as Le,$3J as $e,$3P as Oe,$3Q as t,$3R as F,$3S as _,$3U as Se,$3i as Ce,$3v as Ee}from"./shared-init-abd7653140f37a0c.js";import{$2c as y,$2h as f,$2j as B,$2k as ye,$2l as w,$2n as Z}from"./shared-init-3fcac605fffcc273-2.js";var ht=(a,r)=>[...a.split("/").filter(s=>!He.some(([l])=>l===s)),r].join("/"),j="coder:draft",Ve="+connect",Ye="+refresh",re="+other",se="+pick",ie="+clone",bt=/^\/(flow)(?:\s+(\S+))?\s*([\s\S]*)$/,wt=(a,r,s)=>[["",a],...[...new Set([r,...s])].filter(Boolean).map(l=>[l,l])],Ze=(a,r,s)=>{let l=[...a.recent,...r].map(u=>u.path);return[["","No folder"],...[...new Set([...l,s])].filter(u=>u&&u!==a.current.path).map(u=>[u,qe(u)]),a.picker?[se,"Choose\u2026"]:[re,"Type a path\u2026"],[ie,"Repository\u2026"]]};function _e({label:a,options:r,value:s,onPick:l}){let u=`${Z()}-pick`;return t(Pe,{children:[t(Te,{title:r.find(([d])=>d===s)?.[1]??r[0]?.[1],"aria-label":a,"data-keep":!0,popovertarget:u}),t("button",{type:"button",class:"pop-chev","data-keep":!0,popovertarget:u,"aria-label":`${a} options`,children:t(F,{d:Ce})}),t(I,{id:u,class:"pop-flyout",popover:"auto",role:"group","aria-label":a,onBeforeToggle:Ue,children:r.map(([d,m])=>t(ee,{on:d===s,onPick:()=>l(d),children:m},d))})]})}function kt(a){let r=a.currentTarget,s=document.querySelector(`[popovertarget="${r.id}"]`)?.getBoundingClientRect();if(a.newState!=="open"||!s)return;let l=Math.round(s.bottom+6);r.style.top=`${l}px`,r.style.right=`${Math.round(document.documentElement.clientWidth-s.right)}px`,r.style.maxHeight=`${Math.max(160,window.innerHeight-l-16)}px`}function yt(a){return Object.fromEntries(a.split(/\s+/).filter(Boolean).map(r=>{let s=r.indexOf("="),l=s<0?"true":r.slice(s+1);try{return[s<0?r:r.slice(0,s),JSON.parse(l)]}catch{return[r.slice(0,s),l]}}))}function vt({id:a,entries:r,active:s,selected:l,onActive:u}){return t(y,{children:r.flatMap((d,m)=>[d.head?t(E,{role:"presentation",children:d.head},`h:${d.key}`):null,t(Ae,{id:`${a}-${m}`,active:m===s,selected:l===void 0?m===s:d.key===l,check:l!==void 0,end:d.hint?t("small",{children:d.hint}):null,onMouseDown:i=>i.preventDefault(),onPointerMove:()=>m!==s&&u(m),onClick:d.pick,children:d.label},d.key)])})}var Mt=(a,r,s,l)=>{let u={ArrowDown:1,ArrowUp:-1}[a.key];return!u||!s?!1:(a.preventDefault(),l((r+u+s)%s),!0)};function Ct({reason:a,label:r}){return t(Ge,{tone:"warning",slim:!0,children:[t(F,{d:$e}),t("span",{class:"grow",children:a||"Tasks need a model credential to run."}),t(Qe,{variant:"outline",size:"sm",label:r,children:"Add credential"})]})}function Et({initial:a,data:r,defaults:s,missing:l,connectLabel:u}){let d=ve(),m=De(),[i,K]=f(()=>We({...ze,...a},r)),[c,R]=f(r),g=w(),[U,ae]=f(!1),[le,et]=f(),[O,q]=f(""),[tt,v]=f(!1),[ot,A]=f(0),[z,nt]=f([]),[M,S]=f(""),[L,ce]=f(!1),ue=w(null),h=w(null),de=w(null),pe=w(null),C=Z();B(()=>void(M&&pe.current?.focus()),[M]),B(()=>{let e=localStorage.getItem(j);e&&h.current&&!h.current.value&&(h.current.value=e),q(h.current?.value??""),N(h.current?.value??""),h.current?.focus(),v(!0)},[]);let N=(e,o=i.repo)=>{!e.startsWith("/")||!o||g.current===o||(g.current=o,b.flows.list(o).then(n=>R(Q=>({...Q,flows:n.map(D=>D.name)}))).catch(n=>console.error("coder dashboard: flows",n)))},W=w(!!r.repos),rt=()=>{W.current||(W.current=!0,b.repositories.list().catch(e=>(console.error("coder dashboard: repositories",e),[])).then(e=>R(o=>({...o,repos:e.map(n=>n.repo)}))))},fe=Fe(),me=!!fe.pending,st=()=>{W.current=!0,fe.run("refresh",async()=>{let e=await b.repositories.refresh();R(o=>({...o,repos:e.map(n=>n.repo)}))})},J=(e,o)=>{if(o===re)return S("path");if(o===ie)return S("url");if(o===se)return void at();if(o===Ye)return me?void 0:st();if(o===Ve)return void Ie(`/dash/${m}/tasks`).catch(H);x({[e]:o}),(e==="repo"||e==="cwd")&&h.current?.focus({preventScroll:!0})},x=e=>{let o={...i,...e};K(o),N(O,o.repo),document.cookie=`compose=${encodeURIComponent(JSON.stringify(o))}; path=/; max-age=31536000; samesite=lax`},X=e=>{if(!e.ok)return H(e.detail);S(""),nt(o=>[...o.filter(n=>n.path!==e.folder.path),e.folder]),J("cwd",e.folder.path===c.folders?.current.path?"":e.folder.path)},it=async e=>{e.trim()&&X(await b.folders.check(e.trim()).catch(o=>({ok:!1,detail:$(o)})))},at=async()=>{document.body.style.cursor="progress";let e=await b.folders.pick().catch(o=>({ok:!1,detail:$(o)}));document.body.style.cursor="",(e.ok||e.detail)&&X(e)},lt=async e=>{if(!e.trim())return;ce(!0),document.body.style.cursor="progress";let o=await b.folders.clone(e.trim()).catch(n=>({ok:!1,detail:$(n)}));document.body.style.cursor="",ce(!1),X(o)},ge=e=>{let o=h.current;o.value=e,localStorage.setItem(j,e),q(e),N(e),A(0),v(!1),o.focus(),o.setSelectionRange(e.length,e.length)},G=async()=>{let e=h.current?.value.trim()??"";if(U||L||c.agentsOff||!e)return;let[,o,n="",Q=""]=bt.exec(e)??[];if(o&&!n)return void v(!1);let{agent:D,model:dt,effort:V,access:we,runner:pt}=i,[ft,mt]=c.folders?["",i.cwd]:[i.repo,""],Y=dt||(V?s.chain[0]:""),ke=Object.fromEntries(Object.entries({repo:ft,cwd:mt,model:Y&&V?ht(Y,V):Y,access:we==="auto"?"":we,runner:pt}).filter(([,k])=>k));ae(!0);try{let k=o==="flow"?await b.flows.run(n,{...ke,agent:D,args:yt(Q)}):await b.tasks.create({...ke,agent:D,prompt:e});localStorage.removeItem(j),Be(k.task.id,"queued",e),d.push("/dash/[org]/tasks/[id]",{params:{org:m,id:k.task.id}})}catch(k){ae(!1),k.status===409?et($(k)):H(k)}},p=(()=>{let e=/^\/(\S*)$/.exec(O)?.[1]?.toLowerCase();if(e!==void 0)return{label:"Commands",entries:[...c.flows.map(n=>({key:`flow ${n}`,label:`/flow ${n}`,hint:`Run the ${n} flow`,pick:()=>ge(`/flow ${n} `)}))].filter(n=>n.key.includes(e)),note:"No command matches."};let o=/^\/flow\s+(\S*)$/.exec(O)?.[1];if(o!==void 0)return{label:"Flows",entries:c.flows.filter(n=>n.includes(o)).map(n=>({key:n,label:n,hint:`Run the ${n} flow`,pick:()=>n===o?void G():ge(`/flow ${n} `)})),note:"No flow matches."}})(),T=!!(p&&!tt),P=p?Math.min(ot,Math.max(0,p.entries.length-1)):0;ye(()=>{let e=de.current;if(!e)return;if(!T)return void(e.matches(":popover-open")&&e.hidePopover());let o=()=>{let n=ue.current.getBoundingClientRect();e.style.top=`${Math.round(n.bottom+6)}px`,e.style.left=`${Math.round(n.left)}px`,e.style.width=`${Math.round(Math.min(n.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)}},[T,O]);let ct=s.chain[0]??"",he=c.agents.some(([e])=>e===i.agent)?c.agents:[...c.agents,[i.agent,i.agent]],ut=[[i.model||oe(ct,s.builtin),!!i.model],[i.effort,!!i.effort],[i.access,i.access!=="auto"]].filter(([e])=>e),be=[i.agent!==c.defaultAgent&&i.agent,i.runner&&(c.runners.find(([e])=>e===i.runner)?.[1]??i.runner)].filter(Boolean).join(" \xB7 ");return t(y,{children:[t("form",{ref:ue,class:"composer",onSubmit:e=>{e.preventDefault(),G()},children:[t("textarea",{ref:h,name:"prompt",rows:1,role:"combobox","aria-label":"What should the agent do?","aria-autocomplete":"list","aria-expanded":T,"aria-controls":`${C}-slash`,"aria-activedescendant":T&&p?.entries.length?`${C}-slash-${P}`:void 0,placeholder:ne,autofocus:!0,onFocus:()=>v(!1),onBlur:()=>v(!0),onInput:e=>{let o=e.currentTarget.value;localStorage.setItem(j,o),q(o),N(o),A(0),v(!1)},onKeyDown:e=>{if(!e.isComposing){if(T&&p){if(Mt(e,P,p.entries.length,A))return;if(e.key==="Escape")return e.preventDefault(),v(!0);if(p.entries.length&&(e.key==="Enter"&&!e.shiftKey||e.key==="Tab"))return e.preventDefault(),p.entries[P].pick()}e.key!=="Enter"||e.shiftKey||(e.preventDefault(),G())}}}),t("div",{class:"composer-line",children:[c.folders?M?t(y,{children:[t("input",{class:"folder-path","aria-label":M==="url"?"Repository URL":"Folder path",ref:pe,placeholder:M==="url"?"https://github.com/owner/repo":"Absolute path or ~/\u2026",readOnly:L,"aria-busy":L,onKeyDown:e=>{if(L)return e.preventDefault();if(e.key==="Escape")return e.preventDefault(),S("");e.key!=="Enter"||e.isComposing||(e.preventDefault(),(M==="url"?lt:it)(e.currentTarget.value))},onBlur:e=>!L&&!e.currentTarget.value.trim()&&S("")}),L?t("span",{class:"folder-busy",children:"Cloning\u2026"}):null]}):t("span",{class:"folder",title:i.cwd||c.folders.current.path,children:t(te,{label:"Folder",value:i.cwd,options:Ze(c.folders,z,i.cwd),subs:Object.fromEntries(Ze(c.folders,z,i.cwd).flatMap(([e])=>e&&e!==re&&e!==se&&e!==ie?[[e,z.find(o=>o.path===e)?.url??e]]:[])),onChange:e=>J("cwd",e)})}):t(te,{label:"Repository",value:i.repo,options:[...wt("No repository",i.repo,c.repos??[]),[Ye,me?"Refreshing repositories\u2026":"Refresh repositories"],[Ve,u]],onChange:e=>J("repo",e),onFocus:rt}),t("button",{type:"button",class:"quiet",popovertarget:`${C}-settings`,"aria-label":"Run options",title:"Model, effort, access and more",children:[t(F,{d:Oe}),t("span",{class:"run-picks",children:ut.map(([e,o],n)=>t("span",{class:o?void 0:"dim",children:n?` \xB7 ${e}`:e},n))}),be?t("span",{children:be}):null]}),t(_,{type:"submit",size:"sm",class:"send",leftIcon:Le,disabled:!O.trim()||c.agentsOff,loading:U,"aria-label":U?"Starting task":"Start task",title:"Start task (Enter)"})]}),c.agentsOff?t("small",{class:"folder-hint",children:"Every agent here is disabled. Enable one in its settings to start tasks."}):null,M==="url"?t("small",{class:"folder-hint",children:"Uses this machine's git logins"}):null,t(I,{id:`${C}-settings`,class:"composer-settings",popover:"auto",onBeforeToggle:kt,children:[t(E,{children:"Model"}),t(Ke,{groups:c.models,first:{label:`Default: ${s.chain.map(e=>oe(e,s.builtin)).join(", then ")}`,efforts:!0},model:i.model,effort:i.effort,onPick:(e,o)=>{x({model:e,effort:o}),document.getElementById(`${C}-settings`)?.hidePopover()}}),t(E,{children:"Access"}),t("div",{role:"group","aria-label":"Access",children:je.map(([e,o])=>t(ee,{on:i.access===e,onPick:()=>x({access:e}),children:o},e))}),he.length>1?t(y,{children:[t(E,{children:"Agent"}),t(_e,{label:"Agent",options:he,value:i.agent,onPick:e=>x({agent:e})})]}):null,c.runners.length>1?t(y,{children:[t(E,{children:"Runs on"}),t(_e,{label:"Runs on",options:c.runners,value:i.runner,onPick:e=>x({runner:e})})]}):null]}),t(I,{panelRef:de,id:`${C}-slash`,class:"composer-slash",popover:"manual",role:"listbox","aria-label":p?.label??"Commands",children:p?t(y,{children:[t(E,{children:p.label}),t(vt,{id:`${C}-slash`,entries:p.entries,active:P,onActive:A}),p.note==="loading"?t(xe,{label:"Loading pull requests",inline:!0}):p.note&&!p.entries.length?t(Ne,{children:p.note}):null]}):null})]}),le===void 0||l?null:t(Ct,{reason:le})]})}function Rt(){return t("div",{class:"composer","aria-hidden":"true",children:[t("textarea",{rows:1,disabled:!0,tabIndex:-1,placeholder:ne}),t("div",{class:"composer-line"})]})}function Yt({agent:a}){let r=w(null),[s,l]=f(),[u,d]=f(""),[m,i]=f(!1),K=w(),c=()=>{i(!0),r.current?.showModal(),K.current??=Xe(b).then(l,g=>d($(g)))},R=Me().has("new");return B(()=>{if(!R)return;let g=new URL(location.href);g.searchParams.delete("new"),history.replaceState(history.state,"",g),c()},[R]),t(y,{children:[t(_,{class:"new-task",leftIcon:Re,onClick:c,children:"New task"}),t("dialog",{ref:r,class:"compose-dialog","aria-label":a?`New task for ${a}`:"New task",onClose:()=>i(!1),onClick:g=>g.target===g.currentTarget&&r.current?.close(),children:[t("header",{children:[t("h2",{children:"New task"}),a?t("span",{class:"sub",children:a}):null,t(Se,{icon:Ee,label:"Close",onClick:()=>r.current?.close()})]}),m?s?t(Et,{...s,initial:{...Je(document.cookie),...a?{agent:a}:{}}}):u?t("p",{class:"flash err",role:"alert",children:u}):t(Rt,{}):null]})]})}export{ht as a,Ct as b,Yt as c};
|
|
1
|
+
import{a as ne,b as ze,c as We,d as Je,f as Xe}from"./composer-data-b05f3d93fdc472d7.js";import{m as qe}from"./task-1e6f9ba22fb5e29f.js";import{a as Ie}from"./connect-repositories-90f1aedea6de7a99.js";import{$0a as Ge}from"./shared-init-02666a6f76606589.js";import{$1a as Ke,$1b as Ue}from"./shared-init-02666a6f76606589.js";import{c as He,d as je,h as oe}from"./model-options-5e07b3318d69d218.js";import{$1a as H,$1b as Fe}from"./shared-init-a69029db2d72fb52.js";import{$0h as $}from"./shared-init-a69029db2d72fb52.js";import{a as Qe}from"./back-8ca96656264a0d1c.js";import{$1o as Be}from"./shared-init-7a7f1e623f0f5861.js";import{$2D as De,$2a as ve,$2c as Me,$2k as Te,$2m as ee,$2n as Ae,$2o as E,$2p as Ne,$2r as Pe,$2s as I,$2z as te}from"./shared-init-7a7f1e623f0f5861.js";import{$0c as b,$0r as xe}from"./shared-init-7a7f1e623f0f5861.js";import{$4B as Re,$4G as Le,$4J as $e,$4P as Oe,$4Q as t,$4R as F,$4S as _,$4U as Se,$4i as Ce,$4v as Ee}from"./shared-init-7a7f1e623f0f5861.js";import{$2c as y,$2h as f,$2j as B,$2k as ye,$2l as w,$2n as Z}from"./shared-init-3fcac605fffcc273-2.js";var ht=(a,r)=>[...a.split("/").filter(s=>!He.some(([l])=>l===s)),r].join("/"),j="coder:draft",Ve="+connect",Ye="+refresh",re="+other",se="+pick",ie="+clone",bt=/^\/(flow)(?:\s+(\S+))?\s*([\s\S]*)$/,wt=(a,r,s)=>[["",a],...[...new Set([r,...s])].filter(Boolean).map(l=>[l,l])],Ze=(a,r,s)=>{let l=[...a.recent,...r].map(u=>u.path);return[["","No folder"],...[...new Set([...l,s])].filter(u=>u&&u!==a.current.path).map(u=>[u,qe(u)]),a.picker?[se,"Choose\u2026"]:[re,"Type a path\u2026"],[ie,"Repository\u2026"]]};function _e({label:a,options:r,value:s,onPick:l}){let u=`${Z()}-pick`;return t(Pe,{children:[t(Te,{title:r.find(([d])=>d===s)?.[1]??r[0]?.[1],"aria-label":a,"data-keep":!0,popovertarget:u}),t("button",{type:"button",class:"pop-chev","data-keep":!0,popovertarget:u,"aria-label":`${a} options`,children:t(F,{d:Ce})}),t(I,{id:u,class:"pop-flyout",popover:"auto",role:"group","aria-label":a,onBeforeToggle:Ue,children:r.map(([d,m])=>t(ee,{on:d===s,onPick:()=>l(d),children:m},d))})]})}function kt(a){let r=a.currentTarget,s=document.querySelector(`[popovertarget="${r.id}"]`)?.getBoundingClientRect();if(a.newState!=="open"||!s)return;let l=Math.round(s.bottom+6);r.style.top=`${l}px`,r.style.right=`${Math.round(document.documentElement.clientWidth-s.right)}px`,r.style.maxHeight=`${Math.max(160,window.innerHeight-l-16)}px`}function yt(a){return Object.fromEntries(a.split(/\s+/).filter(Boolean).map(r=>{let s=r.indexOf("="),l=s<0?"true":r.slice(s+1);try{return[s<0?r:r.slice(0,s),JSON.parse(l)]}catch{return[r.slice(0,s),l]}}))}function vt({id:a,entries:r,active:s,selected:l,onActive:u}){return t(y,{children:r.flatMap((d,m)=>[d.head?t(E,{role:"presentation",children:d.head},`h:${d.key}`):null,t(Ae,{id:`${a}-${m}`,active:m===s,selected:l===void 0?m===s:d.key===l,check:l!==void 0,end:d.hint?t("small",{children:d.hint}):null,onMouseDown:i=>i.preventDefault(),onPointerMove:()=>m!==s&&u(m),onClick:d.pick,children:d.label},d.key)])})}var Mt=(a,r,s,l)=>{let u={ArrowDown:1,ArrowUp:-1}[a.key];return!u||!s?!1:(a.preventDefault(),l((r+u+s)%s),!0)};function Ct({reason:a,label:r}){return t(Ge,{tone:"warning",slim:!0,children:[t(F,{d:$e}),t("span",{class:"grow",children:a||"Tasks need a model credential to run."}),t(Qe,{variant:"outline",size:"sm",label:r,children:"Add credential"})]})}function Et({initial:a,data:r,defaults:s,missing:l,connectLabel:u}){let d=ve(),m=De(),[i,K]=f(()=>We({...ze,...a},r)),[c,R]=f(r),g=w(),[U,ae]=f(!1),[le,et]=f(),[O,q]=f(""),[tt,v]=f(!1),[ot,A]=f(0),[z,nt]=f([]),[M,S]=f(""),[L,ce]=f(!1),ue=w(null),h=w(null),de=w(null),pe=w(null),C=Z();B(()=>void(M&&pe.current?.focus()),[M]),B(()=>{let e=localStorage.getItem(j);e&&h.current&&!h.current.value&&(h.current.value=e),q(h.current?.value??""),N(h.current?.value??""),h.current?.focus(),v(!0)},[]);let N=(e,o=i.repo)=>{!e.startsWith("/")||!o||g.current===o||(g.current=o,b.flows.list(o).then(n=>R(Q=>({...Q,flows:n.map(D=>D.name)}))).catch(n=>console.error("coder dashboard: flows",n)))},W=w(!!r.repos),rt=()=>{W.current||(W.current=!0,b.repositories.list().catch(e=>(console.error("coder dashboard: repositories",e),[])).then(e=>R(o=>({...o,repos:e.map(n=>n.repo)}))))},fe=Fe(),me=!!fe.pending,st=()=>{W.current=!0,fe.run("refresh",async()=>{let e=await b.repositories.refresh();R(o=>({...o,repos:e.map(n=>n.repo)}))})},J=(e,o)=>{if(o===re)return S("path");if(o===ie)return S("url");if(o===se)return void at();if(o===Ye)return me?void 0:st();if(o===Ve)return void Ie(`/dash/${m}/tasks`).catch(H);x({[e]:o}),(e==="repo"||e==="cwd")&&h.current?.focus({preventScroll:!0})},x=e=>{let o={...i,...e};K(o),N(O,o.repo),document.cookie=`compose=${encodeURIComponent(JSON.stringify(o))}; path=/; max-age=31536000; samesite=lax`},X=e=>{if(!e.ok)return H(e.detail);S(""),nt(o=>[...o.filter(n=>n.path!==e.folder.path),e.folder]),J("cwd",e.folder.path===c.folders?.current.path?"":e.folder.path)},it=async e=>{e.trim()&&X(await b.folders.check(e.trim()).catch(o=>({ok:!1,detail:$(o)})))},at=async()=>{document.body.style.cursor="progress";let e=await b.folders.pick().catch(o=>({ok:!1,detail:$(o)}));document.body.style.cursor="",(e.ok||e.detail)&&X(e)},lt=async e=>{if(!e.trim())return;ce(!0),document.body.style.cursor="progress";let o=await b.folders.clone(e.trim()).catch(n=>({ok:!1,detail:$(n)}));document.body.style.cursor="",ce(!1),X(o)},ge=e=>{let o=h.current;o.value=e,localStorage.setItem(j,e),q(e),N(e),A(0),v(!1),o.focus(),o.setSelectionRange(e.length,e.length)},G=async()=>{let e=h.current?.value.trim()??"";if(U||L||c.agentsOff||!e)return;let[,o,n="",Q=""]=bt.exec(e)??[];if(o&&!n)return void v(!1);let{agent:D,model:dt,effort:V,access:we,runner:pt}=i,[ft,mt]=c.folders?["",i.cwd]:[i.repo,""],Y=dt||(V?s.chain[0]:""),ke=Object.fromEntries(Object.entries({repo:ft,cwd:mt,model:Y&&V?ht(Y,V):Y,access:we==="auto"?"":we,runner:pt}).filter(([,k])=>k));ae(!0);try{let k=o==="flow"?await b.flows.run(n,{...ke,agent:D,args:yt(Q)}):await b.tasks.create({...ke,agent:D,prompt:e});localStorage.removeItem(j),Be(k.task.id,"queued",e),d.push("/dash/[org]/tasks/[id]",{params:{org:m,id:k.task.id}})}catch(k){ae(!1),k.status===409?et($(k)):H(k)}},p=(()=>{let e=/^\/(\S*)$/.exec(O)?.[1]?.toLowerCase();if(e!==void 0)return{label:"Commands",entries:[...c.flows.map(n=>({key:`flow ${n}`,label:`/flow ${n}`,hint:`Run the ${n} flow`,pick:()=>ge(`/flow ${n} `)}))].filter(n=>n.key.includes(e)),note:"No command matches."};let o=/^\/flow\s+(\S*)$/.exec(O)?.[1];if(o!==void 0)return{label:"Flows",entries:c.flows.filter(n=>n.includes(o)).map(n=>({key:n,label:n,hint:`Run the ${n} flow`,pick:()=>n===o?void G():ge(`/flow ${n} `)})),note:"No flow matches."}})(),T=!!(p&&!tt),P=p?Math.min(ot,Math.max(0,p.entries.length-1)):0;ye(()=>{let e=de.current;if(!e)return;if(!T)return void(e.matches(":popover-open")&&e.hidePopover());let o=()=>{let n=ue.current.getBoundingClientRect();e.style.top=`${Math.round(n.bottom+6)}px`,e.style.left=`${Math.round(n.left)}px`,e.style.width=`${Math.round(Math.min(n.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)}},[T,O]);let ct=s.chain[0]??"",he=c.agents.some(([e])=>e===i.agent)?c.agents:[...c.agents,[i.agent,i.agent]],ut=[[i.model||oe(ct,s.builtin),!!i.model],[i.effort,!!i.effort],[i.access,i.access!=="auto"]].filter(([e])=>e),be=[i.agent!==c.defaultAgent&&i.agent,i.runner&&(c.runners.find(([e])=>e===i.runner)?.[1]??i.runner)].filter(Boolean).join(" \xB7 ");return t(y,{children:[t("form",{ref:ue,class:"composer",onSubmit:e=>{e.preventDefault(),G()},children:[t("textarea",{ref:h,name:"prompt",rows:1,role:"combobox","aria-label":"What should the agent do?","aria-autocomplete":"list","aria-expanded":T,"aria-controls":`${C}-slash`,"aria-activedescendant":T&&p?.entries.length?`${C}-slash-${P}`:void 0,placeholder:ne,autofocus:!0,onFocus:()=>v(!1),onBlur:()=>v(!0),onInput:e=>{let o=e.currentTarget.value;localStorage.setItem(j,o),q(o),N(o),A(0),v(!1)},onKeyDown:e=>{if(!e.isComposing){if(T&&p){if(Mt(e,P,p.entries.length,A))return;if(e.key==="Escape")return e.preventDefault(),v(!0);if(p.entries.length&&(e.key==="Enter"&&!e.shiftKey||e.key==="Tab"))return e.preventDefault(),p.entries[P].pick()}e.key!=="Enter"||e.shiftKey||(e.preventDefault(),G())}}}),t("div",{class:"composer-line",children:[c.folders?M?t(y,{children:[t("input",{class:"folder-path","aria-label":M==="url"?"Repository URL":"Folder path",ref:pe,placeholder:M==="url"?"https://github.com/owner/repo":"Absolute path or ~/\u2026",readOnly:L,"aria-busy":L,onKeyDown:e=>{if(L)return e.preventDefault();if(e.key==="Escape")return e.preventDefault(),S("");e.key!=="Enter"||e.isComposing||(e.preventDefault(),(M==="url"?lt:it)(e.currentTarget.value))},onBlur:e=>!L&&!e.currentTarget.value.trim()&&S("")}),L?t("span",{class:"folder-busy",children:"Cloning\u2026"}):null]}):t("span",{class:"folder",title:i.cwd||c.folders.current.path,children:t(te,{label:"Folder",value:i.cwd,options:Ze(c.folders,z,i.cwd),subs:Object.fromEntries(Ze(c.folders,z,i.cwd).flatMap(([e])=>e&&e!==re&&e!==se&&e!==ie?[[e,z.find(o=>o.path===e)?.url??e]]:[])),onChange:e=>J("cwd",e)})}):t(te,{label:"Repository",value:i.repo,options:[...wt("No repository",i.repo,c.repos??[]),[Ye,me?"Refreshing repositories\u2026":"Refresh repositories"],[Ve,u]],onChange:e=>J("repo",e),onFocus:rt}),t("button",{type:"button",class:"quiet",popovertarget:`${C}-settings`,"aria-label":"Run options",title:"Model, effort, access and more",children:[t(F,{d:Oe}),t("span",{class:"run-picks",children:ut.map(([e,o],n)=>t("span",{class:o?void 0:"dim",children:n?` \xB7 ${e}`:e},n))}),be?t("span",{children:be}):null]}),t(_,{type:"submit",size:"sm",class:"send",leftIcon:Le,disabled:!O.trim()||c.agentsOff,loading:U,"aria-label":U?"Starting task":"Start task",title:"Start task (Enter)"})]}),c.agentsOff?t("small",{class:"folder-hint",children:"Every agent here is disabled. Enable one in its settings to start tasks."}):null,M==="url"?t("small",{class:"folder-hint",children:"Uses this machine's git logins"}):null,t(I,{id:`${C}-settings`,class:"composer-settings",popover:"auto",onBeforeToggle:kt,children:[t(E,{children:"Model"}),t(Ke,{groups:c.models,first:{label:`Default: ${s.chain.map(e=>oe(e,s.builtin)).join(", then ")}`,efforts:!0},model:i.model,effort:i.effort,onPick:(e,o)=>{x({model:e,effort:o}),document.getElementById(`${C}-settings`)?.hidePopover()}}),t(E,{children:"Access"}),t("div",{role:"group","aria-label":"Access",children:je.map(([e,o])=>t(ee,{on:i.access===e,onPick:()=>x({access:e}),children:o},e))}),he.length>1?t(y,{children:[t(E,{children:"Agent"}),t(_e,{label:"Agent",options:he,value:i.agent,onPick:e=>x({agent:e})})]}):null,c.runners.length>1?t(y,{children:[t(E,{children:"Runs on"}),t(_e,{label:"Runs on",options:c.runners,value:i.runner,onPick:e=>x({runner:e})})]}):null]}),t(I,{panelRef:de,id:`${C}-slash`,class:"composer-slash",popover:"manual",role:"listbox","aria-label":p?.label??"Commands",children:p?t(y,{children:[t(E,{children:p.label}),t(vt,{id:`${C}-slash`,entries:p.entries,active:P,onActive:A}),p.note==="loading"?t(xe,{label:"Loading pull requests",inline:!0}):p.note&&!p.entries.length?t(Ne,{children:p.note}):null]}):null})]}),le===void 0||l?null:t(Ct,{reason:le})]})}function Rt(){return t("div",{class:"composer","aria-hidden":"true",children:[t("textarea",{rows:1,disabled:!0,tabIndex:-1,placeholder:ne}),t("div",{class:"composer-line"})]})}function Yt({agent:a}){let r=w(null),[s,l]=f(),[u,d]=f(""),[m,i]=f(!1),K=w(),c=()=>{i(!0),r.current?.showModal(),K.current??=Xe(b).then(l,g=>d($(g)))},R=Me().has("new");return B(()=>{if(!R)return;let g=new URL(location.href);g.searchParams.delete("new"),history.replaceState(history.state,"",g),c()},[R]),t(y,{children:[t(_,{class:"new-task",leftIcon:Re,onClick:c,children:"New task"}),t("dialog",{ref:r,class:"compose-dialog","aria-label":a?`New task for ${a}`:"New task",onClose:()=>i(!1),onClick:g=>g.target===g.currentTarget&&r.current?.close(),children:[t("header",{children:[t("h2",{children:"New task"}),a?t("span",{class:"sub",children:a}):null,t(Se,{icon:Ee,label:"Close",onClick:()=>r.current?.close()})]}),m?s?t(Et,{...s,initial:{...Je(document.cookie),...a?{agent:a}:{}}}):u?t("p",{class:"flash err",role:"alert",children:u}):t(Rt,{}):null]})]})}export{ht as a,Ct as b,Yt as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a,b,c}from"./composer-3efd63e2e0192937.js";import"./composer-data-b05f3d93fdc472d7.js";import"./task-1e6f9ba22fb5e29f.js";import"./connect-repositories-90f1aedea6de7a99.js";import"./shared-init-02666a6f76606589.js";import"./shared-init-02666a6f76606589.js";import"./model-options-5e07b3318d69d218.js";import"./types-3eca2c7f47c46054.js";import"./shared-init-a69029db2d72fb52.js";import"./shared-init-a69029db2d72fb52.js";import"./back-8ca96656264a0d1c.js";import"./shared-init-7a7f1e623f0f5861.js";import"./shared-init-7a7f1e623f0f5861.js";import"./shared-init-7a7f1e623f0f5861.js";import"./wular-pnext-3fcac605fffcc273-0.js";import"./shared-init-7a7f1e623f0f5861.js";import"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";export{b as NeedsCredential,c as NewTaskButton,a as withEffort};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$3a as r}from"./shared-init-7a7f1e623f0f5861.js";import{$4Q as o,$4S as i,$4x as e}from"./shared-init-7a7f1e623f0f5861.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{$0c as i}from"./shared-init-7a7f1e623f0f5861.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};
|