@wular/coder 0.4.10 → 0.4.12
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 -1
- package/dist/actions-BT7_eKXm.js +10 -0
- package/dist/{adapter-BeezVK-B.js → adapter-BT8ECcRG.js} +1 -1
- package/dist/{adapter-ChaISKgI.js → adapter-CU9H4g6c.js} +1 -1
- package/dist/{adapter-MD6ahqPR.js → adapter-CVd5klMH.js} +1 -1
- package/dist/{agent-B8ItyuHN.js → agent-BA6xr8QY.js} +2 -2
- package/dist/apps-D-v5sQJk.js +367 -0
- package/dist/args-CbO_Ck9Z.js +11 -0
- package/dist/async-XNO3nqum.js +3 -0
- package/dist/auth-DuXnSNf9.js +1 -0
- package/dist/base64url-CsVsW4Id.js +1 -0
- package/dist/chat-CgQdDRhs.js +13 -0
- package/dist/cli.js +19 -1
- package/dist/{client-DzwzCsue.js → client-C4QCT6cG.js} +2 -2
- package/dist/cmd-DX5ByXo3.js +119 -0
- package/dist/connection-DNxi2btM.js +1 -0
- package/dist/context-65bOofts.js +7 -0
- package/dist/dash/standalone/node_modules/contextjsx/dist/index.mjs +1 -0
- package/dist/dash/standalone/node_modules/contextjsx/dist/jsx-runtime.mjs +1 -0
- package/dist/dash/standalone/node_modules/contextjsx/dist/src-BJ0QFeB8.mjs +2 -0
- package/dist/dash/standalone/node_modules/contextjsx/package.json +70 -0
- package/dist/dash/standalone/server/build-index.json +1 -1
- package/dist/dash/standalone/server/manifest.json +1187 -1187
- package/dist/dash/standalone/server/modules-server-server-react-server/src/agent/context/turn.dac8eb211c500271.js +141 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.843431e3538fd9a4.js → index.0de14cb4e30bd70d.js} +1 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.7ae462ef36271be8.js → load.be791a5eaf328738.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/connect/{page.806027fde54ab723.js → page.0fbfdba5254f7ae5.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.bd04d2d3eba00676.js → page.70913bd4075da914.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.857748e260c691e3.js → notify.61aab176baeefebd.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.25153459858542f9.js → page.815371ed0d5dd4fa.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{sign-out.ff98573f362d76f3.js → sign-out.1d6af804f9ec043d.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.8efd14bc39281da9.js → agents-grid.f43bcc1148ce3650.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{connect-apps.d1e67db29b12dc0a.js → connect-apps.f3af8cc8540719d7.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{page.0f7d5e3e42462870.js → page.c6efd5432c1a4a75.js} +7 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.05210ffa6038791f.js → layout.a795379254982121.js} +7 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.19fe116c0f802cb1.js → page.a2cb6d1f1714259a.js} +8 -8
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.f87fd8eb66f73af0.js → page.996172c951739b35.js} +12 -16
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-actions.b6c3d3184e167d0b.js → platform-actions.8e7ca54dd1821e98.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.28220621573033d7.js → agent-settings-form.aa9e157d141481d7.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.2f7467868f599ebc.js → page.44d886e60ae04303.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.ec94096015346f2c.js → loading.521c9e7b8d77f557.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.a92a36a8ce21088c.js → page.828cfb8112404792.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{page.8935a5fe5c08bcf1.js → page.45e18b6dc3019af4.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{versions-list.5b97ab6d40e2e639.js → versions-list.c8d76988c734dda2.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{loading.bedcc1aba372fbce.js → loading.b1367e864b4fb406.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.14760e9eedd6ff8e.js → page.dd11f2618e08becd.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.a6ee8bd882178e29.js → agent-toggle.1579dc8acbaacf92.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.8be1dd4ea3ed6e17.js → hero.ad5cc342db794e5d.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{connect-repositories.59d89152fe845af2.js → connect-repositories.43b4b28f194ea842.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.77f68d431408745b.js → editor.776856fe1ed1a642.js} +6 -6
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.a7b01817a821819a.js → import-picker.eafa5b41a2ed571f.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.c4570fd80bdda68c.js → page.7d84ef2b178b34d2.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.19006c2d7dc8d114.js → layout.393cf7429eea189e.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{operator-apps.d350a52d27f69fa6.js → operator-apps.a244f3199e7cf09c.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.4a652f5080c2b863.js → page.980adfb7c5714752.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{page.d39f7a1719f50c6d.js → page.24a1987405ed7b17.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connections-list.ff7e1dadcd4df17f.js → connections-list.21ec9dc73ce68656.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.87a1f8ab71eb4bed.js → credentials-list.683476f62a9ecde7.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.a535c9c6dd8b4cdf.js → credentials.b43dd3d97c536c2a.js} +8 -8
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{engines-list.29fffd07c1c3b771.js → engines-list.9e116751bd34e2cc.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.0c87d55cf4ef382c.js → list.083f5c665df04b1b.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{models-list.6fea9faddb8300bb.js → models-list.537f63f8e5dd085d.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.295245052b93af90.js → page.dfed4ae6ffc74434.js} +12 -12
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.a4a38e54d834a1ec.js → runners-list.3afa989490bbe77c.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.50f487766f87383c.js → secrets-list.0d175ee815b22cd7.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.c42e0ab39cb2c0e0.js → layout.3e8289f888fa444c.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{page.6997506eaa1a4824.js → page.06feaa5fbb06f1e6.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{create-link.9458b49dc99bbaaa.js → create-link.ff95e4b6977d0474.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.77e402bb6e8e7f7e.js → page.f06fda0df59beeb5.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{activity.fcda6f18c8207c99.js → activity.3c79cf14feff12bf.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{loading.56520888d5270b88.js → loading.47cbb34ea8d2e33f.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.d0f039221a27b8ef.js → page.abed2a8424ef3da0.js} +4 -4
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-actions.f5f2016d2dc7f422.js → task-actions.587da79d68ab8d14.js} +3 -3
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.a292baa2410cdf64.js → task-view.dc294bb94b7437e1.js} +7 -7
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.2d4122eb33addbdd.js → composer.5072aacdce127689.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{task.a0c68180db5fb4c1.js → task.0a1b5878dccd3b37.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.021bdc2f3d90af2d.js → tasks-list.1162926f7498c732.js} +10 -10
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.13f64b0836ae406b.js → tasks-section.1d687c986db53a73.js} +5 -5
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.b78f0df100410db0.js → page.d5d8cb5033823c9c.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{page.93c2306069c03c68.js → page.fb21ebe90d49dac1.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.95a2468086aceb84.js → stream.e2915852cf82c86b.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.e1a484113e1df660.js → task-toasts.0ed8ccaae81b9d53.js} +2 -2
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.968bcab0f5e3665d.js → action.b9a5c37272250e82.js} +1 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.189224c16057d7a1.js → client.a3928fa2dcd27b75.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{action-410bdc82c416bc01.js → action-71685b2d5ad9f359.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{agent-pills-0c0b8d40b9bfc78f.js → agent-pills-15da36c2cb81991b.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/agent-settings-form-6e6a87d6e673daa8.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{agent-toggle-5ede0c449e88cb9d.js → agent-toggle-ca98586e3b4ce9ae.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{agents-grid-ffb18df48e951ecb.js → agents-grid-29c399e46b4e9e2b.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{back-602db2cfdccf2e7f.js → back-fa9d6e37f9828093.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{combo-df2685e277db02c0.js → combo-86f3e11d1f6f6cee.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{composer-e1cefed81ea89b7e.js → composer-85e0ec7163ae18b7.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/composer-910bb87127972f62.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{confirm-d163e6865d66dfab.js → confirm-c29a1db0130638d2.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{connect-apps-ce3c9d049ebad459.js → connect-apps-b73490e04ae6398d.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{connect-repositories-0aa9abc77b9c3d48.js → connect-repositories-0de82daaf654b1d3.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{connections-list-6eddeb8583ded10f.js → connections-list-c50f58b4b28d10bb.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{copy-0cc00656953531be.js → copy-445c11202f136275.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/create-link-6d64a2d5f9ce6de0.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{credentials-list-1b6a81e9b4934dc8.js → credentials-list-bee95799b2319b3b.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{custom-range-cae5567874db83ca.js → custom-range-a0630599f907b30e.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{editor-d55d247a1d7de5f0.js → editor-b9951819f21b2e43.js} +2 -2
- package/dist/dash/standalone/static/assets/chunks/{engines-list-288559344de4d4b9.js → engines-list-2720c3e8fa12b2f7.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{field-693bb870ad0bdee8.js → field-b82a0f895266791c.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{instructions-a3d7688e421f2a08.js → instructions-affaaeff366b1725.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/instructions-fd7402ac5aa8b50e.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{list-2a59237cb7cb0a7c.js → list-d918f79562d497eb.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{models-list-5ed9ee02f9b66d98.js → models-list-12bc7aceaa52f5b0.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{notice-7d84ffab32ff24ca.js → notice-57db7a1f05b7308c.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{outcome-dialog-3cffe3507ea92af2.js → outcome-dialog-5cf575a5e6921a5d.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/outcome-dialog-b219595be320108a.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/platform-actions-1d27d2ba7eee9ff1.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{platform-actions-4dc31567d00c4cb2.js → platform-actions-dba96dcb0f6513db.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{runners-list-984246a8f9450da1.js → runners-list-36f8c5ecfcf8e9ae.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{secrets-list-88f8b30abbab52f0.js → secrets-list-d7dbafd24dd18481.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{segmented-79c9c69b702e0b90.js → segmented-8f809ebe712e92a7.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-cc13a835f3508618.js +2 -0
- package/dist/dash/standalone/static/assets/chunks/shared-init-f475017dd5811e33.js +5 -0
- package/dist/dash/standalone/static/assets/chunks/side-toggle-0aa237eba3dfe9c1.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/{tail-99e29a541a072002.js → tail-b1c46587301ef397.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/task-681061023bdf0a49.js +5 -0
- package/dist/dash/standalone/static/assets/chunks/{task-actions-1cdca1e8d3eee490.js → task-actions-c9e46e81604e85c5.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{task-view-fdcde0e31f63b737.js → task-view-134186a544917ceb.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{tasks-list-3ad1c93deff4fb2e.js → tasks-list-352a3222d878de0f.js} +1 -1
- package/dist/dash/standalone/static/assets/chunks/{versions-list-60ac4d8f715bf5f7.js → versions-list-21cb854e6a7108a7.js} +1 -1
- package/dist/dash/standalone/static/assets/pnext-client-05df74b071ddb0b3.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-2c19cca257f78ae6.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-2db05dfa62642a65.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-36b0d6085a073880.js +1 -0
- package/dist/dash/standalone/static/assets/{pnext-client-0b3b70f1aefb9947.js → pnext-client-576c06599e241231.js} +1 -1
- package/dist/dash/standalone/static/assets/pnext-client-6aa0f19a30d58d63.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-6b30b71f452f2f07.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-6ccb4d4fff812db3.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-74eb465defba421e.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-8c692d12b2fd90d6.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-92e17d39063a9ced.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-93246aea268c2682.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-9954dcbc0c579e0d.js +1 -0
- package/dist/dash/standalone/static/assets/{pnext-client-8f96a4b8a00ff460.js → pnext-client-c0dfa1cdde9a9855.js} +1 -1
- package/dist/dash/standalone/static/assets/pnext-client-c28d38d4aafd4af6.js +1 -0
- package/dist/dash/standalone/static/assets/{pnext-client-ab36b406301fd2a4.js → pnext-client-c2c30dcb6dc31d60.js} +1 -1
- package/dist/dash/standalone/static/assets/pnext-client-dbf741073e11eac0.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-e29194a27280333f.js +1 -0
- package/dist/dash/standalone/static/assets/{pnext-client-0d90849808b6eb05.js → pnext-client-f8a7e692b27caad9.js} +1 -1
- package/dist/dash/standalone/static/assets/pnext-client-fc5b8cfcba2a9f63.js +1 -0
- package/dist/discover-CPZdprlQ.js +1 -0
- package/dist/docs-x-l7gjFE.js +2 -0
- package/dist/drive-Y-ZlgiUW.js +1 -0
- package/dist/env-B9JG6gwo.js +1 -0
- package/dist/errors-XBA-Ls4n.js +10 -0
- package/dist/exec-iFssTO5V.js +3 -0
- package/dist/executor-Dt2FFT-y.js +11 -0
- package/dist/flow/builtin/review/index.d.ts +2 -0
- package/dist/flow/builtin/review/index.js +16 -0
- package/dist/flow/index.d.ts +1 -1
- package/dist/flow/index.js +1 -1
- package/dist/http-BZfjbiov.js +1 -0
- package/dist/{types-8zO5Tc9c.d.ts → index-BdkdNI1v.d.ts} +710 -137
- package/dist/{integrations-DPxWtNnS.js → integrations-DyInAa5g.js} +2 -2
- package/dist/lib/broker.js +2 -2
- package/dist/load-zhcrwSRF.js +2 -0
- package/dist/local-D55UkW93.js +5 -0
- package/dist/maintenance-BfxcatXH.js +1 -0
- package/dist/{match-BfjPZ7gJ.js → match-Bq4sDuCy.js} +1 -1
- package/dist/mcp-Bta09QCU.js +13 -0
- package/dist/mcp-CUITALl1.js +1 -0
- package/dist/models-C1O2DrXx.js +1 -0
- package/dist/output-D95NoAA9.js +16 -0
- package/dist/prompt-onpyIyXK.js +8 -0
- package/dist/prompts-B8pKhMcu.js +4 -0
- package/dist/refresh-D-0K9fo3.js +1 -0
- package/dist/{remote-f-uny3XZ.js → remote-CDm0YUU3.js} +1 -1
- package/dist/runner-CTFTuaz_.js +1 -0
- package/dist/runner.json +1 -1
- package/dist/runner.tgz +0 -0
- package/dist/{runners-vsoGeyuc.js → runners-CYTicTb7.js} +3 -3
- package/dist/schema.d.ts +1 -1
- package/dist/schema.js +8 -1
- package/dist/sdk.d.ts +12552 -4
- package/dist/sdk.js +1 -1
- package/dist/serve-Bzs_lEg-.js +1 -0
- package/dist/serve-CWtLyyTz.js +12 -0
- package/dist/serve-DE6A-rBk.js +4 -0
- package/dist/{slack-Kpj-G9FE.js → slack-Bo5l13Rs.js} +4 -4
- package/dist/task-BU1JEK9X.js +7 -0
- package/dist/task-CPzBITsp.js +1 -0
- package/dist/tools-BMaKWTa6.js +1 -0
- package/dist/tools-CM4UCsId.js +1 -0
- package/dist/turn-DMvPfhb5.js +3 -0
- package/dist/{views-LmbLfqpu.js → views-DEdKqLm_.js} +1 -1
- package/dist/{wire-DshFMRsS.js → wire-JMNPv8f6.js} +1 -1
- package/dist/worker-BuP_Lem1.js +9 -0
- package/dist/worker-C1tuzq5n.js +1 -0
- package/docs/agents/index.md +19 -21
- package/docs/cli/agent.md +137 -0
- package/docs/cli/auth.md +48 -0
- package/docs/cli/connection.md +89 -0
- package/docs/cli/credentials.md +58 -0
- package/docs/cli/flow.md +158 -0
- package/docs/cli/index.md +139 -0
- package/docs/cli/model.md +116 -0
- package/docs/cli/runner.md +92 -0
- package/docs/cli/server.md +89 -0
- package/docs/cli/task.md +271 -0
- package/docs/flows.md +0 -6
- package/docs/mcp.md +8 -8
- package/docs/review.md +4 -0
- package/package.json +3 -1
- package/plugins/agents/skills/coder/SKILL.md +16 -1
- package/plugins/claude/.claude-plugin/plugin.json +1 -1
- package/plugins/claude/.mcp.json +5 -0
- package/plugins/claude/skills/dispatch/SKILL.md +16 -1
- package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
- package/plugins/cursor/skills/coder/SKILL.md +16 -1
- package/dist/actions-C3Mgpl9J.js +0 -2
- package/dist/add-B26QSwPY.js +0 -6
- package/dist/add-BbXuvqj1.js +0 -1
- package/dist/add-Bk8drM-8.js +0 -1
- package/dist/add-CD_L-WW8.js +0 -2
- package/dist/agent-DHpMqHVi.js +0 -1
- package/dist/alias-CScCzXhS.js +0 -2
- package/dist/app-wHQJHu6N.js +0 -1
- package/dist/approvals-BIGQBbCM.js +0 -2
- package/dist/approve-BnZ3v-3c.js +0 -1
- package/dist/approve-DFSy7Z72.js +0 -2
- package/dist/apps-6BgpUsFh.js +0 -372
- package/dist/archive-CU0nhUeJ.js +0 -4
- package/dist/archive-CY2lvp_c.js +0 -3
- package/dist/args-BekfmD9t.js +0 -1
- package/dist/ask-CLDgHB_Y.js +0 -4
- package/dist/auth-C3KrIUf1.js +0 -1
- package/dist/auth-CGeSfgNb.js +0 -1
- package/dist/chat-AbW-LOHo.js +0 -13
- package/dist/chat-bridge-WK-pKNfw.js +0 -2
- package/dist/cli-Fp28pM4Y.js +0 -9
- package/dist/config-DoVedq6T.js +0 -3
- package/dist/connection-5V8doFL7.js +0 -1
- package/dist/connection-Cb0TK201.js +0 -1
- package/dist/create-CrjRdQip.js +0 -1
- package/dist/credentials-DoL9w8D1.js +0 -1
- package/dist/dash/standalone/server/modules-server-server-react-server/src/core/event-prompt.87f064ca0141e796.js +0 -30
- package/dist/dash/standalone/static/assets/chunks/agent-settings-form-5a2601316e2ab283.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/composer-08e49d49c0c3ee94.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/create-link-bc365f8dfe88e6b3.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/instructions-3f18e035338b0d0b.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/outcome-dialog-f6fb8c69efa66508.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/platform-actions-ecd7200f7749c258.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/shared-init-962398d15ee67c92.js +0 -5
- package/dist/dash/standalone/static/assets/chunks/shared-init-ae95a674d381c095.js +0 -2
- package/dist/dash/standalone/static/assets/chunks/side-toggle-7ada95cc7601eb49.js +0 -1
- package/dist/dash/standalone/static/assets/chunks/task-95daa40d39de664f.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-12faa1754e3ef3be.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-23384b239b81a761.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-23e200dd9b7a79c0.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-2562299eef46e62c.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-3a4ada64991e6a40.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-71e7ecdfcf86be84.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-726c29bbb81054c0.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-825e9f5b63950ef4.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-894cff70289fb7a3.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-9bc9b14c08020649.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-b8c585cae8da7778.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-bab4305b41abb15a.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-bd80926822b3993d.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-cd4c7b4318fa1846.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-db55344d00b7888f.js +0 -1
- package/dist/dash/standalone/static/assets/pnext-client-eddcd5df2b28120f.js +0 -1
- package/dist/default-tTTSBdXq.js +0 -1
- package/dist/delete-DM2sA12f.js +0 -2
- package/dist/delete-DR37NTr1.js +0 -4
- package/dist/disable-Dz_zLPX5.js +0 -1
- package/dist/discover-CqabH4Fx.js +0 -3
- package/dist/dispatch-BJZqI7sj.js +0 -8
- package/dist/docs-BV9SC67g.js +0 -2
- package/dist/docs-b2mAKC8Z.js +0 -2
- package/dist/drive-CU2HOCfR.js +0 -1
- package/dist/enable-Cfeki-ne.js +0 -1
- package/dist/env-DSddo-fz.js +0 -1
- package/dist/exec-DcWxZar6.js +0 -3
- package/dist/executor-LkokKTTd.js +0 -11
- package/dist/flow/builtin/review.d.ts +0 -2
- package/dist/flow/builtin/review.js +0 -12
- package/dist/flow-BQcdyrVK.js +0 -1
- package/dist/history-D_A5odLI.js +0 -8
- package/dist/http-CXaW1e7x.js +0 -1
- package/dist/init-DU_S43NG.js +0 -1
- package/dist/integrations-Dwvxl7i2.js +0 -1
- package/dist/list-7yd9K7d8.js +0 -1
- package/dist/list-BJ0j5eP9.js +0 -4
- package/dist/list-Boaz5b5n.js +0 -2
- package/dist/list-CIS-GYO1.js +0 -1
- package/dist/list-CR0_Emod2.js +0 -4
- package/dist/list-CnHZriYt.js +0 -3
- package/dist/list-_EH6c041.js +0 -1
- package/dist/list-i2r3Nlyz.js +0 -1
- package/dist/load-C-GZnuok.js +0 -2
- package/dist/local-Fs-dx_dP.js +0 -5
- package/dist/login-CzD2EMD_.js +0 -1
- package/dist/login-DISw6--d.js +0 -1
- package/dist/logout-DMnc5yri.js +0 -1
- package/dist/maintenance-BVDuG9Hg.js +0 -1
- package/dist/mcp-B-hy3eM-.js +0 -11
- package/dist/mcp-CbN-QcpF.js +0 -1
- package/dist/mcp-server-DQqSgD3P.js +0 -1
- package/dist/model-Ckyoyji3.js +0 -1
- package/dist/models-VaiIYlOW.js +0 -1
- package/dist/output-BKeyLbvt.js +0 -5
- package/dist/prompt-DQyPCLUo.js +0 -8
- package/dist/prompts-CEf7z4i_.js +0 -77
- package/dist/push-BNomfHJ3.js +0 -1
- package/dist/reconnect-Bd_jna1M.js +0 -1
- package/dist/refresh-D-broYEx.js +0 -1
- package/dist/remove-CCYHc1FN.js +0 -1
- package/dist/remove-DMTz_c25.js +0 -1
- package/dist/remove-DdcQ-6by.js +0 -1
- package/dist/remove-VtavIuGm.js +0 -1
- package/dist/rename-CKMyelWN.js +0 -1
- package/dist/result-CH3_tVXO.js +0 -5
- package/dist/result-DvOqIwhh.js +0 -18
- package/dist/resume-6j3RUpqa.js +0 -3
- package/dist/review-B4ETH5ki.js +0 -7
- package/dist/review-DDYD3Yvq.d.ts +0 -566
- package/dist/rotate-key-Byk_wI73.js +0 -1
- package/dist/run-DKJW7qwy.js +0 -2
- package/dist/run-DkYzyUnp.js +0 -5
- package/dist/run-LCE1XiyU.js +0 -2
- package/dist/runner-CxtzTgVq.js +0 -1
- package/dist/runner-Dnu1Vx_i.js +0 -1
- package/dist/schema-Brm7WIKd.js +0 -8
- package/dist/sdk-CKTCrtGe.d.ts +0 -12655
- package/dist/serve-C1zag2nr.js +0 -1
- package/dist/serve-C6tsUF0D.js +0 -2
- package/dist/serve-CCxSxXgv.js +0 -1
- package/dist/serve-D8J-sEqm.js +0 -12
- package/dist/server-B4SRYM2L.js +0 -1
- package/dist/setup-host-EaP4GPKB.js +0 -6
- package/dist/show-CjUG_aIp.js +0 -1
- package/dist/show-xdsqD6de.js +0 -1
- package/dist/status-BxV_ITeF.js +0 -1
- package/dist/steer-DZ3nkHfC.js +0 -4
- package/dist/stop-DGTUYxd6.js +0 -3
- package/dist/stop-qDw_DjOB.js +0 -1
- package/dist/task-C506SkPR.js +0 -1
- package/dist/task-CQmx_2SI.js +0 -7
- package/dist/task-Ls_-kcSx.js +0 -1
- package/dist/test-DF_qVK6S.js +0 -1
- package/dist/tools-S3eRQOVm.js +0 -1
- package/dist/unalias-CklkAN1B.js +0 -1
- package/dist/update-CZaFjwOJ.js +0 -2
- package/dist/upgrade-CUhFmPhl.js +0 -2
- package/dist/usage-DTAlb2rC.js +0 -1
- package/dist/watch-CJruitc6.js +0 -5
- package/dist/watch-p0j69fVA.js +0 -9
- package/dist/worker-BHXjDzRp.js +0 -1
- package/dist/worker-nyRZuq4g.js +0 -2
- package/dist/workflow-CJJUiSfv.js +0 -1
- package/docs/agents/prompt.md +0 -220
- package/docs/cli.md +0 -155
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use client";import{a as We,b as Ge,c as Ue,d as Ve}from"./agent-pills-
|
|
1
|
+
"use client";import{a as We,b as Ge,c as Ue,d as Ve}from"./agent-pills-15da36c2cb81991b.js";import{b as Qe}from"./instructions-affaaeff366b1725.js";import{a as x}from"./segmented-8f809ebe712e92a7.js";import{a as ze}from"./agent-toggle-ca98586e3b4ce9ae.js";import{a as Oe}from"./connect-repositories-0de82daaf654b1d3.js";import{b as Me,c as te,f as ne,h as se,i as Fe,j as qe,k as He,l as je}from"./model-options-8d2170eebe0d061d.js";import{a as Ke}from"./notice-57db7a1f05b7308c.js";import{b as _e}from"./types-3eca2c7f47c46054.js";import{a as E}from"./field-b82a0f895266791c.js";import{a as G,b as U}from"./action-71685b2d5ad9f359.js";import{g as q}from"./format-a27067f0186e78ac.js";import{$1c as xe,$1d as ee}from"./shared-init-cc13a835f3508618.js";import{$3A as $e,$3B as W,$3a as _,$3h as Re,$3i as Pe,$3j as X,$3o as Be,$3t as K,$3x as De,$3z as Z}from"./shared-init-cc13a835f3508618.js";import{$2b as Ae,$2d as J,$2k as Ee,$2o as $,$2p as Te,$2q as Le,$2r as Ne}from"./shared-init-cc13a835f3508618.js";import"./wular-pnext-6e12333f12903a62-0.js";import{$0c as D}from"./shared-init-f475017dd5811e33.js";import{$1C as Ie,$1L as A,$1M as Se,$1a as e,$1b as H,$1e as ye,$1j as ke,$1r as j,$1w as Ce,$1z as Y}from"./shared-init-f475017dd5811e33.js";import"./shared-init-6e12333f12903a62-2.js";import"./shared-init-6e12333f12903a62-2.js";import{$3c as P,$3h as k,$3j as F,$3l as we}from"./shared-init-6e12333f12903a62-2.js";var V=2,Ye=({name:n,platform:i})=>e("li",{children:[e("b",{children:["@",n]})," on ",i]},`${i} ${n}`);function Je({agent:n,actions:i,back:v}){return e(P,{children:[e(Pe,{}),e("header",{class:"hero",children:[e("span",{class:"hero-mark",children:q(n.name)}),e("div",{class:"grow",children:[v,e("div",{class:"title-row",children:[e("h1",{children:n.name}),e(Ve,{agent:n}),n.settings?.disabled?e(ze,{agent:n,link:!0}):null]}),e("p",{class:"lead",children:n.description??"No description yet."})]}),i||n.handles?.length?e("div",{class:"hero-side",children:[i?e("div",{class:"actions",children:i}):null,n.handles?.length?e("ul",{class:"handles",title:"Mention it on its platforms by these names",children:[n.handles.slice(0,V).map(Ye),n.handles.length>V?e("li",{children:e(Ee,{label:`+${n.handles.length-V} more`,children:e("ul",{class:"handles",children:n.handles.slice(V).map(Ye)})})}):null]}):null]}):null]})]})}function Xe({port:n}){return e(Ae,{title:"Receive platform events",note:`Expose port ${n} so platforms can reach this server`,open:"Show",children:e("div",{class:"guide",children:[e("p",{children:["Platforms reach this server through a public address. Expose port ",n," with one of these."]}),e("ul",{class:"steps-list",children:[e("li",{children:e("code",{children:["ngrok http ",n]})}),e("li",{children:e("code",{children:["cloudflared tunnel --url http://localhost:",n]})}),e("li",{children:"VS Code's Ports panel, with the port's visibility set to Public"})]}),e("p",{children:["Then restart with ",e("code",{children:"PUBLIC_URL=<tunnel URL> coder server serve"}),". The tunnel serves only webhooks and app setup, never this dashboard."]})]})})}var Ze=/^[\w.-]+\/[\w.-]+$/,bt=n=>/^[0-9a-f]{12,}$/i.test(n)?n.slice(0,7):n;function wt({preview:n,onDone:i}){let[v,m]=k(new Set),h=U({leaves:!0});if(n.failed)return null;if(!n.agents)return e(J,{label:`Reading ${n.repo}`,h:180,late:!0});if(!n.agents.length)return e("p",{class:"muted",children:[n.repo," has no agents yet. Add a folder per agent under ",e("code",{children:".coder/agents"}),", with an ",e("code",{children:"agent.json"})," and a ",e("code",{children:"system.md"}),"."]});let r=n.agents.filter(o=>!o.taken&&!v.has(o.id)).map(o=>o.id);return e("form",{class:"import-agents",onSubmit:async o=>{o.preventDefault(),r.length&&await h.run("import",async()=>i((await D.agents.import(n.repo,void 0,r)).imported))},children:[e("ul",{class:"picks-list",children:n.agents.map(o=>e("li",{children:e("label",{class:"check",children:[e("input",{type:"checkbox",checked:!o.taken&&!v.has(o.id),disabled:o.taken,onChange:b=>{let d=new Set(v);b.currentTarget.checked?d.delete(o.id):d.add(o.id),m(d)}}),e("span",{children:[e("b",{children:o.name})," ",e(Ne,{value:o.id}),o.version?e($,{children:["v",o.version,o.commit?` \xB7 ${bt(o.commit)}`:""]}):null,e("small",{children:o.taken?"An agent with this id already exists here.":o.description??"No description."}),o.warnings?.map(b=>e("small",{role:"status",children:b},b))]})]})},o.id))}),e("p",{class:"muted",children:["Each push to ",n.repo," that changes an agent publishes its new version here."]}),e("div",{class:"form-actions end",children:e(A,{type:"submit",disabled:!!h.pending||!r.length,children:["Import ",r.length===1?"1 agent":`${r.length} agents`]})})]})}function et({connected:n,connectLabel:i,tunnel:v,port:m}){let h=_(),r=W(),[o,b]=k(),[d,O]=k(""),[S,R]=k(),y=we("");F(()=>{n&&D.repositories.list().then(c=>b(c.map(L=>L.repo))).catch(c=>{b([]),G(c)})},[]);let f=c=>{y.current=c,R({repo:c}),D.agents.preview(c).then(({agents:L})=>y.current===c&&R({repo:c,agents:L})).catch(L=>{y.current===c&&(R({repo:c,failed:!0}),G(L))})},N=c=>c.length===1?h.push("/dash/[org]/agents/[slug]",{params:{org:r,slug:c[0]}}):h.push("/dash/[org]/agents",{params:{org:r}}),z=d.trim().toLowerCase(),s=(o??[]).filter(c=>c.toLowerCase().includes(z)),w=Ze.test(d.trim())&&!o?.includes(d.trim())?d.trim():"";return e("div",{class:"import",children:[e("div",{class:"import-repos",children:[n?e(K,{value:d,label:"Search repositories or type owner/repo",onInput:O}):e(P,{children:[e(Ke,{children:[e(H,{d:j}),e("span",{class:"grow",children:"Connect to list your repositories here."}),e(A,{variant:"outline",size:"sm",onClick:()=>void Oe(`/dash/${r}/agents/new?template=import`).catch(G),children:i})]}),e("form",{class:"with-btn",onSubmit:c=>{c.preventDefault(),Ze.test(d.trim())&&f(d.trim())},children:[e("input",{class:"mono","aria-label":"Repository",placeholder:"owner/repo",autocomplete:"off",value:d,onInput:c=>O(c.currentTarget.value)}),e(A,{type:"submit",variant:"outline",children:"Look up"})]})]}),n?e("div",{class:"repo-list scroll-box",role:"list",children:o?e(P,{children:[w?e(X,{"aria-pressed":S?.repo===w,icon:j,title:w,onClick:()=>f(w)}):null,s.map(c=>e(X,{"aria-pressed":S?.repo===c,icon:j,title:c,onClick:()=>f(c)},c)),!s.length&&!w?e(Be,{children:"No repository matches. Type owner/repo to use another."}):null]}):e(J,{label:"Loading repositories",h:240,late:!0})}):null,!n&&v?e(Xe,{port:m}):null]}),e("div",{class:"import-preview",children:S?e(P,{children:[e("h3",{children:["Agents in ",S.repo]}),e(wt,{preview:S,onDone:N},S.repo)]}):e("p",{class:"muted",children:"Pick a repository to see the agents in its .coder/agents folder."})})]})}var tt=[["Brisk","Calm","Clever","Keen","Nimble","Quiet","Steady","Swift","Tidy","Bright","Patient","Lucky"],["Heron","Otter","Falcon","Lynx","Badger","Relay","Beacon","Compass","Lantern","Pilot","Sparrow","Harbor"]],nt=n=>n[Math.floor(Math.random()*n.length)],st=()=>`${nt(tt[0])} ${nt(tt[1])}`;var yt={"read-only":"reads the repository and changes nothing","workspace-write":"edits files inside the repository",auto:"edits files, reaches the network, and asks when it needs more"},kt=[["read","Read-only"],["write","Read-write"]],Ct={read:"reads its platforms and connections; replies and reacts in the conversation",write:"also changes things there, like opening pull requests"},It=[["blank","Blank","start from nothing"],["helper","Slack helper","answers questions in chat"],["reviewer","GitHub reviewer","reviews pull requests"]],St=6,Rt=`Review each pull request for bugs, risky changes and missing tests.
|
|
2
2
|
Comment on the lines that matter and keep it short.
|
|
3
3
|
When mentioned, answer questions about the code and cite file paths.`,Pt=`Answer the team's questions in the thread.
|
|
4
4
|
Read the code before you answer, cite file paths, and say when you are unsure.
|
|
5
|
-
If asked to change code, describe the change and stop.`,it=n=>n.toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40);function At(n,i,v){let m=n?.definition,h={name:n?.name??i,id:n?.id??it(i),description:n?.description??m?.description??"",platforms:[],events:{},match:{},access:m?.access??"write",permissions:m?.permissions??"
|
|
5
|
+
If asked to change code, describe the change and stop.`,it=n=>n.toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40);function At(n,i,v){let m=n?.definition,h={name:n?.name??i,id:n?.id??it(i),description:n?.description??m?.description??"",platforms:[],events:{},match:{},access:m?.access??"write",permissions:m?.permissions??"auto",systemPrompt:n?.systemPrompt??"",engine:m?.engine??"",model:m?.model??"",effort:m?.effort??""};for(let[r,o]of Object.entries(m?.integrations??{}))if(v.some(b=>b.id===r)&&(h.platforms.push(r),h.events[r]=_e(o.events),h.match[r]={},o.events&&!Array.isArray(o.events)))for(let[b,d]of Object.entries(o.events))d&&typeof d=="object"&&"match"in d&&(h.match[r][b]=String(d.match));return h}var rt=n=>Object.entries(n?.events??{}).filter(([,i])=>!i.noisy).map(([i])=>i);function ot(n,i){let v=m=>{let h=i.filter(m).map(r=>r.id);return{platforms:h,events:Object.fromEntries(h.map(r=>[r,rt(i.find(o=>o.id===r))])),match:{}}};return n==="reviewer"?{...v(m=>"pull_request"in m.events),description:"Reviews pull requests and answers questions about the code.",systemPrompt:Rt}:n==="helper"?{...v(m=>m.id==="slack"),description:"Answers the team's questions in chat.",systemPrompt:Pt}:{platforms:[],events:{},match:{},description:"",systemPrompt:""}}function Et(n,i,v){let m=n?.events&&!Array.isArray(n.events)?n.events:{},h=Object.fromEntries(i.map(r=>{let o=m[r],b=v[r]?.trim(),d=o&&typeof o=="object"?{...o}:{};return b?d.match=b:delete d.match,Object.keys(d).length?[r,d]:[r,o===void 0||typeof o=="object"?!0:o]}));return Object.values(h).every(r=>r===!0)?i:h}function zn({catalog:n,agent:i,suggested:v="",section:m,models:h,defaults:r={engine:"",engines:{},builtin:{}},template:o,connected:b=!1,connectLabel:d="Connect",tunnel:O=!1,port:S=""}){let R=_(),y=W(),f=!i,[N,z]=k(o??"blank"),[s,w]=k(()=>({...At(i,v,n),...f?ot(o??"blank",n):{}})),[c,L]=k(!1),[oe,at]=k("write"),[ie,lt]=k(""),re=U({toast:f?"Agent not created":"Not published",leaves:!0}),ct=!!re.pending,B=(t,l)=>w(p=>({...p,[t]:l})),ae=(t,l)=>Object.entries(r.builtin[t]??{}).find(([,p])=>p===l)?.[0]??l,M=s.engine||r.engine,Q=r.engines[M]??{},dt=[ne[r.engine]??r.engine,ae(r.engine,r.engines[r.engine]?.model)].filter(Boolean).join(" \xB7 "),le=te.find(([t])=>t===s.permissions)?.[1].toLowerCase(),pt=f?"you can change these later in its settings":(s.engine||s.model||s.effort?[ne[M]??M,s.model||ae(M,Q.model),s.effort||Q.effort,le]:["Default models",le]).filter(Boolean).join(" \xB7 ");F(()=>{if(!m)return;let t=document.getElementById(`agent-${m}`);t?.scrollIntoView({block:"start"}),t?.querySelector("input, textarea, button")?.focus({preventScroll:!0})},[]);let ce=t=>{z(t),t!=="import"&&w(l=>({...l,...ot(t,n)}))},de=t=>w(l=>({...l,name:t,...f&&!c?{id:it(t)}:{}})),mt=(t,l)=>w(p=>{let g=Object.keys(n.find(a=>a.id===t)?.events??{});return{...p,platforms:l?n.map(a=>a.id).filter(a=>a===t||p.platforms.includes(a)):p.platforms.filter(a=>a!==t),events:l&&!p.events[t]?.length?{...p.events,[t]:rt(n.find(a=>a.id===t))}:p.events}}),ut=(t,l,p)=>w(g=>{let a=g.events[t]??[],u=p?g.match:{...g.match,[t]:{...g.match[t],[l]:""}};return{...g,events:{...g.events,[t]:p?[...new Set([...a,l])]:a.filter(C=>C!==l)},match:u}}),ht=(t,l,p)=>w(g=>({...g,match:{...g.match,[t]:{...g.match[t],[l]:p}}})),ft=async()=>{let t=s.platforms.find(u=>!s.events[u]?.length);if(t)return ee("Not published",`Pick at least one event on ${t}, or turn ${t} off.`);let l={};for(let u of s.platforms)l[u]={events:Et(i?.definition?.integrations?.[u],s.events[u]??[],s.match[u]??{})};let p={...i?.definition,integrations:l,permissions:s.permissions,access:s.access};for(let u of["name","description","engine","model","effort"]){let C=s[u].trim();C?p[u]=C:delete p[u]}let g=f?s.id:i.id,a=s.name.trim();await re.run("publish",async()=>{let u=i?.files,{apps:C=[]}=await D.agents.put(g,{definition:p,...u?{files:u}:{},systemPrompt:s.systemPrompt,...a?{name:a}:{},...s.description.trim()?{description:s.description.trim()}:{}});for(let I of C){let be=n.find(vt=>vt.id===I.integration)?.name??I.integration;I.updated&&xe(`${be} app updated`,`${I.name} now matches the agent.`,"success"),I.error&&ee(`${be} app not updated`,I.error)}let ve=C.filter(I=>I.drift).map(I=>I.id);ve.length?R.push("/dash/[org]/agents/[slug]/platforms",{params:{org:y,slug:g},search:{update:ve.join(",")}}):f&&s.platforms.length?R.push("/dash/[org]/agents/[slug]/platforms",{params:{org:y,slug:g}}):R.push("/dash/[org]/agents/[slug]",{params:{org:y,slug:g}})})},pe=e(P,{children:[f?e(A,{variant:"outline","aria-pressed":N==="import",onClick:()=>ce("import"),children:"Import from repo"}):null,f?null:e(Se,{variant:"ghost",href:"/dash/[org]/agents/[slug]",params:{org:y,slug:i.id},children:"Cancel"}),e(A,{type:"submit",leftIcon:f?Y:Ce,disabled:!s.name.trim()||N==="import",loading:ct,children:f?"Create agent":"Publish new version"})]}),me=f?e($e,{...Re.newAgent,back:e(Z,{href:"/dash/[org]/agents",params:{org:y},label:"Agents"}),actions:pe}):e(Je,{agent:i,back:e(Z,{href:"/dash/[org]/agents/[slug]",params:{org:y,slug:i.id},label:i.name}),actions:pe}),ue=f?e("div",{class:"templates",role:"radiogroup","aria-label":"Start from",children:It.map(([t,l,p])=>e("button",{type:"button",role:"radio","aria-checked":N===t,class:"tile",onClick:()=>ce(t),children:[e("b",{children:l}),e("small",{children:p})]},t))}):null;if(N==="import"&&f)return e("div",{class:"agent-new",children:[me,ue,e(et,{connected:b,connectLabel:d,tunnel:O,port:S})]});let gt=ie.trim().toLowerCase(),he=n.filter(t=>`${t.id} ${t.description}`.toLowerCase().includes(gt)),fe=t=>!!t.featured||s.platforms.includes(t.id),ge=[...he.filter(fe),...he.filter(t=>!fe(t))];return e("form",{class:"agent-new",onSubmit:t=>{t.preventDefault(),ft()},children:[me,ue,e("div",{class:"agent-form",children:[e("div",{class:"agent-main",children:[e("section",{id:"agent-name",class:"form-part",children:[e("h2",{children:"Name and description"}),e("div",{class:"fields",children:[e(E,{label:"Name",hint:"its handle on every platform",children:e("span",{class:"with-btn",children:[e("input",{name:"name",required:!0,value:s.name,onInput:t=>de(t.currentTarget.value)}),f?e(A,{variant:"outline",leftIcon:Ie,title:"Suggest another name",onClick:()=>de(st()),children:"Suggest"}):null]})}),f?e(E,{label:"Id",hint:"the folder and command name",children:e("input",{class:"mono",name:"id",required:!0,pattern:"[a-z0-9][a-z0-9_\\-]*",autocomplete:"off",value:s.id,onInput:t=>{L(!0),B("id",t.currentTarget.value)}})}):e("div",{class:"field",children:[e("span",{children:["Id ",e("small",{children:"fixed once created"})]}),e("p",{class:"fixed mono",children:i.id})]})]}),e(E,{label:"Description",hint:"optional, shown in lists and added to the prompt",children:e("input",{name:"description",maxLength:240,placeholder:"Answers engineering questions about acme/app.",value:s.description,onInput:t=>B("description",t.currentTarget.value)})})]}),e("section",{id:"agent-instructions",class:"form-part",children:[e("div",{class:"part-head",children:[e("h2",{children:"Instructions"}),e(x,{label:"Instructions view",options:[["write","Write"],["preview","Preview"]],value:oe,onChange:at})]}),oe==="write"?e("textarea",{name:"systemPrompt",rows:10,"aria-label":"Instructions",placeholder:`Markdown. The system prompt every task starts from.
|
|
6
6
|
You answer questions about acme/app from its source. Cite file paths.`,value:s.systemPrompt,onInput:t=>B("systemPrompt",t.currentTarget.value)}):e("div",{class:"body md md-preview",children:s.systemPrompt.trim()?Qe(s.systemPrompt):e("p",{class:"muted",children:"Nothing written yet."})})]}),e("section",{id:"agent-platforms",class:"form-part",children:[e("div",{class:"part-head",onKeyDown:t=>t.key==="Enter"&&t.preventDefault(),children:[e("h2",{children:"Handles"}),n.length>St?e(K,{value:ie,label:"Search platforms",onInput:lt}):null]}),e("p",{class:"muted",children:["Each platform becomes the agent's handle there: its own app, set up on the next page, where ",e("span",{class:"semi",children:"@mentions"})," and events start tasks. The dashboard, the CLI and the SDK can always start it."]}),e("p",{class:"muted",children:[e("b",{children:"Connections"})," are separate and shared by all agents: add as many as tasks need, like an API key, an MCP server or a member's own account, in"," ",e(ye,{class:"link",href:"/dash/[org]/settings/[tab]",params:{org:y,tab:"connections"},children:"Settings"}),"."]}),e("ul",{class:"listen",children:[ge.map(t=>{let l=s.platforms.includes(t.id),p=s.events[t.id]??[],g=Object.entries(t.events);return e("li",{class:l?"on":void 0,children:[e("label",{class:"listen-row",children:[e("span",{class:"pf-mark","aria-hidden":"true",children:e(We,{brand:t.brand})}),e("span",{class:"grow",children:[e("b",{children:t.name}),e("small",{title:t.description,children:t.description})]}),e("input",{type:"checkbox",role:"switch",class:"switch",name:"platform",value:t.id,checked:l,onChange:a=>mt(t.id,a.currentTarget.checked)})]}),l?e("div",{class:"events",children:[e(Le,{label:`What wakes it on ${t.id}`,children:g.map(([a,u])=>{let C=p.includes(a);return e(Te,{"aria-pressed":C,title:u.description,onClick:()=>ut(t.id,a,!C),children:a.replace(/_/g," ")},a)})}),g.filter(([a,u])=>u.noisy&&p.includes(a)).map(([a])=>e("label",{class:"match",children:[e("span",{children:a.replace(/_/g," ")}),e("input",{class:"mono",name:`match:${t.id}:${a}`,placeholder:"only when the text matches, like ^help\\b","aria-label":`Text filter for ${a} on ${t.id}`,value:s.match[t.id]?.[a]??"",onInput:u=>ht(t.id,a,u.currentTarget.value)})]},a))]}):null]},t.id)}),ge.length?null:e("li",{class:"listen-none muted",children:"No platform matches."})]}),e(E,{label:"Access",hint:Ct[s.access],group:!0,children:e(x,{label:"Access",options:kt,value:s.access,onChange:t=>B("access",t)})})]}),e("details",{id:"agent-run",class:"form-part run",open:m==="run",children:[e("summary",{children:[e("h2",{children:"Run settings"}),e("span",{class:"grow muted",children:pt}),e(H,{d:ke})]}),e("div",{class:"run-body",children:[e("div",{class:"fields",children:[e(E,{label:"Engine and model",hint:"what runs each task",group:!0,children:e(De,{label:"Model",value:qe(s.engine,s.model),options:Fe(h,se(dt)),headings:je(h),action:{label:"Add models",icon:Y,onPick:()=>R.push("/dash/[org]/settings/[tab]",{params:{org:y,tab:"models"}})},onChange:t=>w(l=>({...l,...He(t)}))})}),e(E,{label:"Effort",hint:"how hard the model thinks",group:!0,children:e(x,{label:"Effort",options:[["",se(Q.effort)],...Me],value:s.effort,onChange:t=>B("effort",t)})})]}),e(E,{label:"Repository access",hint:yt[s.permissions],group:!0,children:e(x,{label:"Repository access",options:te,value:s.permissions,onChange:t=>B("permissions",t)})})]})]})]}),e("aside",{class:"agent-side","aria-label":"Preview",children:[e("span",{class:"side-label",children:"Preview"}),e("div",{class:"agent-card preview",children:[e("div",{class:"bc-head",children:[e("span",{class:"mark",children:q(s.name)}),e("div",{class:"grow",children:[e("h3",{children:s.name.trim()||"Unnamed agent"}),e("span",{class:"pills",children:[e($,{children:"dashboard"}),i?.local?null:e($,{children:["v",f?1:i.currentVersion+1]}),i?.settings?.disabled?e(Ue,{}):null]})]})]}),e("div",{class:"lead-clamp",children:e("span",{children:s.description.trim()||"No description yet."})}),s.platforms.length?e(Ge,{platforms:s.platforms.map(t=>({id:t,state:"none"})),catalog:n}):e("span",{class:"pfs muted",children:"No handles yet"})]})]})]})]})}export{zn as AgentEditor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{a as r,b as w,c as S,f,h as b}from"./model-options-8d2170eebe0d061d.js";import{a as k,b as N,f as p,g as u}from"./list-
|
|
1
|
+
"use client";import{a as r,b as w,c as S,f,h as b}from"./model-options-8d2170eebe0d061d.js";import{a as k,b as N,f as p,g as u}from"./list-d918f79562d497eb.js";import"./confirm-c29a1db0130638d2.js";import"./defaults-52f30e83d7666f7a.js";import"./action-71685b2d5ad9f359.js";import"./format-a27067f0186e78ac.js";import"./shared-init-cc13a835f3508618.js";import{$3j as d,$3x as m}from"./shared-init-cc13a835f3508618.js";import{$2o as a}from"./shared-init-cc13a835f3508618.js";import"./wular-pnext-6e12333f12903a62-0.js";import"./shared-init-cc13a835f3508618.js";import"./shared-init-f475017dd5811e33.js";import{$1L as E,$1a as t}from"./shared-init-f475017dd5811e33.js";import"./shared-init-6e12333f12903a62-2.js";import"./shared-init-6e12333f12903a62-2.js";import{$3c as c,$3h as v}from"./shared-init-6e12333f12903a62-2.js";function P({first:s,defaults:C}){let[R,g]=v(""),n=k(s.config),o=n.value.chain??s.effective.chain??r,l=n.value.approvals?.allowedNetworkHosts??[],B=[...o.filter(e=>r.includes(e)),...r.filter(e=>!o.includes(e))],I=(e,i)=>(s.config.engines?.[e]?.[i]?void 0:s.effective.engines?.[e]?.[i])??C[e]?.[i],h=(e,i,L)=>t("label",{children:[i,t(m,{label:`${f[e]} ${i}`,value:n.value.engines?.[e]?.[i]??"",options:[["",b(I(e,i)??(i==="permissions"?"auto":void 0))],...L],onChange:M=>void n.patch({engines:{[e]:{[i]:M||null}}})})]});return t(c,{children:[t(u,{title:"Engines",count:o.length,children:B.map(e=>t(p,{title:f[e],badges:t(c,{children:[o[0]===e?t(a,{tone:"acc",children:"default"}):null,o.includes(e)?null:t(a,{children:"off"})]}),sub:t("span",{class:"inline-picks",children:[h(e,"effort",w),h(e,"permissions",S)]}),actions:o[0]===e?null:t(E,{variant:"secondary",size:"sm",loading:R===e,onClick:()=>{g(e),n.patch({chain:[e,...o.filter(i=>i!==e)]}).finally(()=>g(""))},children:"Make default"}),menu:o.includes(e)?o.length>1?t(d,{title:"Disable",onClick:()=>void n.patch({chain:o.filter(i=>i!==e)})}):void 0:t(d,{title:"Enable",onClick:()=>void n.patch({chain:[...o,e]})})},e))}),t(u,{title:"Allowed network hosts",count:l.length,add:t(N,{fields:[["host","Host, like registry.npmjs.org"]],onAdd:({host:e})=>n.patch({approvals:{allowedNetworkHosts:[...new Set([...l,e])]}})}),children:l.map(e=>t(p,{title:e,remove:{title:`Remove ${e}?`,body:"Tasks lose access to it.",onRemove:()=>n.patch({approvals:{allowedNetworkHosts:l.filter(i=>i!==e)}})}},e))})]})}export{P as EnginesList};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$1a as n}from"./shared-init-f475017dd5811e33.js";function m({label:l,hint:e,group:o,children:a}){return n(o?"div":"label",{class:"field",children:[n("span",{children:[l,e?n("small",{children:e}):null]}),a]})}export{m as a};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$1L as x,$1a as t}from"./shared-init-f475017dd5811e33.js";import{$3b as g,$3h as f,$3k as C,$3l as b}from"./shared-init-6e12333f12903a62-2.js";function v({lines:c=10,class:e,children:o}){let n=b(null),[p,h]=f(!1),[l,u]=f(!1);return C(()=>{let s=n.current,r=()=>h(l||s.scrollHeight>s.clientHeight+1);r();let i=new ResizeObserver(r);i.observe(s);let a=new MutationObserver(r);return a.observe(s,{childList:!0,subtree:!0,characterData:!0}),()=>{i.disconnect(),a.disconnect()}},[l]),t("div",{class:`collapse${p?" long":""}${l?" open":""}`,style:`--lines:${c}`,children:[t("div",{class:e?`collapse-box ${e}`:"collapse-box",ref:n,children:o}),p?t(x,{variant:"ghost",size:"sm",class:"more-toggle","aria-expanded":l,onClick:()=>u(!l),children:l?"Show less":"Show more"}):null]})}var S=/`([^`\n]+)`|\*\*(.+?)\*\*|__(.+?)__|\*(\S(?:.*?\S)?)\*|(?<!\w)_(\S(?:.*?\S)?)_(?!\w)|\[([^\]\n]+)\]\(([^)\s]+)\)/g,_=/^(?:https?:|mailto:)/i,w=/^\s*(```|~~~)/,$=/^(#{1,6})\s+(.*?)(?:\s+#+)?\s*$/,E=/^\s*(?:([-*+])|\d+[.)])\s+(.*)$/,I=/^\s*(?:#{1,6}\s|```|~~~|[-*+]\s|\d+[.)]\s)/;function d(c){let e=[],o=0;for(let n of c.matchAll(S)){let[p,h,l,u,s,r,i,a]=n;n.index>o&&e.push(c.slice(o,n.index)),h?e.push(t("code",{children:h})):l||u?e.push(t("strong",{children:d(l||u)})):s||r?e.push(t("em",{children:d(s||r)})):_.test(a)?e.push(t("a",{class:"link",href:a,target:"_blank",rel:"noopener noreferrer",children:d(i)})):e.push(...d(i)),o=n.index+p.length}return o<c.length&&e.push(c.slice(o)),e}function L(c){let e=c.split(/\r?\n/),o=[];for(let n=0;n<e.length;){let p=e[n],h=w.exec(p),l=$.exec(p),u=E.exec(p);if(h){let s=e.findIndex((i,a)=>a>n&&i.trim().startsWith(h[1])),r=s<0?e.length:s;o.push(t("pre",{children:t("code",{children:e.slice(n+1,r).join(`
|
|
2
2
|
`)})})),n=r+1}else if(l)o.push(g(`h${Math.min(l[1].length+2,6)}`,null,d(l[2]))),n++;else if(u){let s=!u[1],r=[];for(let i;(i=E.exec(e[n]??""))&&!i[1]===s;n++)r.push(t("li",{children:d(i[2])}));o.push(s?t("ol",{children:r}):t("ul",{children:r}))}else if(!p.trim())n++;else{let s=[];for(;e[n]?.trim()&&(!s.length||!I.test(e[n]));n++)s.length&&s.push(t("br",{})),s.push(...d(e[n]));o.push(t("p",{children:s}))}}return o}function G({text:c}){return t(v,{class:"body md",children:L(c)})}export{v as a,L as b,G as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{b as a,c as b}from"./instructions-affaaeff366b1725.js";import"./shared-init-f475017dd5811e33.js";import"./shared-init-6e12333f12903a62-2.js";export{b as Instructions,a as markdown};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as p}from"./confirm-
|
|
1
|
+
import{a as p}from"./confirm-c29a1db0130638d2.js";import{g as R}from"./defaults-52f30e83d7666f7a.js";import{a as v}from"./action-71685b2d5ad9f359.js";import{$3j as y}from"./shared-init-cc13a835f3508618.js";import{$2a as C,$2j as h}from"./shared-init-cc13a835f3508618.js";import{$0c as f}from"./shared-init-f475017dd5811e33.js";import{$1L as b,$1a as e,$1b as d,$1y as g}from"./shared-init-f475017dd5811e33.js";import{$3h as u,$3l as c}from"./shared-init-6e12333f12903a62-2.js";function q(o){let[r,t]=u(o),n=c(0),i=c(o);return{value:r,patch:a=>{let s=++n.current;return t(m=>R(m,a)),f.config.patch(a).then(m=>(i.current=m,s===n.current&&t(m),!0),m=>(s===n.current&&(t(i.current),v(m)),!1))}}}function E({fields:o,onAdd:r}){return e("form",{class:"add-row",method:"post",onSubmit:async t=>{t.preventDefault();let n=t.currentTarget,i=Object.fromEntries([...new FormData(n)].map(([l,a])=>[l,String(a).trim()]));Object.values(i).some(l=>!l)||await r(i)&&n.reset()},children:[o.map(([t,n])=>e("input",{name:t,placeholder:n,"aria-label":n,autocomplete:"off"},t)),e(b,{type:"submit",children:"Add"})]})}function k(o){let[r,t]=u(!1),[n,i]=u(!1);if(!o)return{};let{title:l,body:a,label:s="Remove",onRemove:m}=o;return{item:e(y,{title:s,danger:!0,onClick:()=>t(!0)}),dialog:r?e(p,{open:!0,title:l,body:a,confirmLabel:s,busy:n,onClose:()=>t(!1),onConfirm:()=>{i(!0),m().finally(()=>{i(!1),t(!1)})}}):null}}var N=(o,r)=>r==="workspace"?`Replace ${o} for the workspace?`:`Replace your ${o}?`;function V(){let[o,r]=u();return{ask:(t,n)=>r({title:t,run:n}),dialog:o?e(p,{open:!0,title:o.title,body:"Tasks use the new one from now on.",confirmLabel:"Replace",onClose:()=>r(void 0),onConfirm:()=>{r(void 0),o.run()}}):null}}function z({title:o,badges:r,sub:t,actions:n,menu:i,alignMenu:l,remove:a}){let s=k(a);return e("tr",{children:[e("td",{children:[e("span",{class:"row-title",children:[e("b",{children:o}),r]}),t?e("span",{class:"sub mono",children:t}):null]}),e("td",{class:"acts",children:[n,i||s.item||l?e(h,{button:"icon",label:"Actions",summary:e(d,{d:g}),children:[i,s.item,i||s.item?null:e("p",{class:"menu-none",children:"No options"})]}):null,s.dialog]})]})}function G({title:o,count:r,children:t,add:n}){return e(C,{title:o,count:r,children:[e("div",{class:"table-scroll",children:e("table",{class:"rows settings",children:e("tbody",{children:t})})}),n]})}export{q as a,E as b,k as c,N as d,V as e,z as f,G as g};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{a as le}from"./combo-
|
|
1
|
+
"use client";import{a as le}from"./combo-86f3e11d1f6f6cee.js";import{a as j,b as X,d as J,f as G,h as Q,m as W}from"./model-options-8d2170eebe0d061d.js";import{a as ee,d as oe,e as te,f as ne,g as se}from"./list-d918f79562d497eb.js";import"./confirm-c29a1db0130638d2.js";import{a as p}from"./field-b82a0f895266791c.js";import"./defaults-52f30e83d7666f7a.js";import{b as V}from"./action-71685b2d5ad9f359.js";import{h as H}from"./format-a27067f0186e78ac.js";import"./shared-init-cc13a835f3508618.js";import{$3j as Z,$3x as U}from"./shared-init-cc13a835f3508618.js";import{$2b as Y,$2d as q,$2o as _}from"./shared-init-cc13a835f3508618.js";import"./wular-pnext-6e12333f12903a62-0.js";import"./shared-init-cc13a835f3508618.js";import{$0c as F}from"./shared-init-f475017dd5811e33.js";import{$1L as N,$1a as e}from"./shared-init-f475017dd5811e33.js";import"./shared-init-6e12333f12903a62-2.js";import"./shared-init-6e12333f12903a62-2.js";import{$3c as T,$3h as c,$3l as D}from"./shared-init-6e12333f12903a62-2.js";var ce=[["endpoint","Endpoint"],["alias","Engine alias"]],me=[["claude","Claude"],["codex","Codex"]],ue={claude:"sonnet",codex:"sol"},z=W,ae=z.at(-1),re=E=>E.split("/").pop().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),pe=(E,f)=>E.find(v=>!(v in f));function fe({builtin:E,credentials:f,admin:v,taken:B,efforts:a,onAdd:I}){let[g,C]=c("endpoint"),l=e(p,{label:"Kind",group:!0,children:e(U,{label:"Kind",options:ce,value:g,onChange:C})}),[h,y]=c("claude"),[A,K]=c(""),[M,m]=c(!1),[o,s]=c(0),n=te(),u=E[h]??{},P=u[ue[h]]??Object.values(u)[0],k=async(b,i)=>{m(!0);let d=g==="alias"?await I(()=>F.models.alias(i.name,[h,i.model,A].filter(Boolean).join(":"))):await I(async()=>{let S=i.envKey||"OPENAI_API_KEY";return i.key&&await F.credentials.add({env:{[S]:i.key},workspace:i.scope==="workspace"}),F.models.add({name:i.name,baseUrl:i.baseUrl,model:i.model,envKey:S})});m(!1),d&&(b.reset(),s(o+1))};return e(Y,{title:"Add a model",note:"A short name for an engine model, or an OpenAI-compatible endpoint",children:[e("form",{class:"add-form",method:"post",onSubmit:b=>{b.preventDefault();let i=b.currentTarget,d=Object.fromEntries([...new FormData(i)].map(([R,L])=>[R,String(L).trim()]));if(g==="endpoint"&&!d.name&&(d.name=re(d.model??"")),!d.name||!d.model||g==="endpoint"&&!d.baseUrl)return;let S=d.envKey||"OPENAI_API_KEY",$=d.scope||"personal";if(g==="endpoint"&&d.key&&f?.some(R=>R.name===S&&R.scope===$))return n.ask(oe(S,$),()=>void k(i,d));k(i,d)},children:g==="alias"?e("div",{class:"add-grid",children:[l,e(p,{label:"Engine",group:!0,children:e(U,{label:"Engine",options:me,value:h,onChange:y})}),e(p,{label:"Model id",children:e("input",{name:"model",placeholder:P??"model id",autocomplete:"off"})}),e(p,{label:"Short name",hint:"used as --model",children:e("input",{name:"name",placeholder:pe(["fast","deep","quick"],B),autocomplete:"off",pattern:"[a-z0-9][a-z0-9\\-]*"})}),e(p,{label:"Effort",hint:"optional",group:!0,children:e(U,{label:"Effort",options:[["",Q(a[h])],...X],value:A,onChange:K})}),e(N,{type:"submit",loading:M,children:"Add"})]}):e(ge,{kind:l,credentials:f,admin:v,busy:M},o)}),n.dialog]})}function ge({kind:E,credentials:f,admin:v,busy:B}){let[a,I]=c(z[0]??ae),[g,C]=c(a.baseUrl),[l,h]=c(a.envKey),[y,A]=c(""),[K,M]=c(v?"workspace":"personal"),[m,o]=c(null),s=D(0),[n,u]=c(""),P=(t,r)=>!!t&&!!f?.some(w=>w.name===t&&w.scope===r),k=(t,r=K)=>P(t,r)?r:!v&&P(t,"workspace")?"workspace":void 0,b=k(l,v?"workspace":"personal"),i=t=>t==="workspace"?"the workspace's":"your",[d,S]=c(!1),$=D(),R=(t,r,w)=>{let de=++s.current;if(!t.trim())return o(null);S(!0),F.models.probe({baseUrl:t.trim(),...r.trim()?{envKey:r.trim()}:{},...w.trim()?{key:w.trim()}:{}}).catch(O=>({reachable:!1,modelListed:null,models:null,detail:H(O)})).then(O=>{de===s.current&&(S(!1),o(O.models?{...O,models:[...O.models].sort()}:O))})},L=(t,r,w)=>{clearTimeout($.current),$.current=setTimeout(()=>R(t,r,w),250)},ie=m?m.reachable?m.models?`${m.models.length} listed`:"reachable, no model list":/HTTP 40[13]/.test(m.detail)?"key rejected":m.detail:void 0,x=a.needsKey&&f?e("div",{class:"add-grid",children:[e(p,{label:"API key",hint:e(T,{children:[k(l)?`uses ${i(k(l))} saved ${l}; enter one to replace it`:`a new key, stored as ${l}`,a.keyUrl?e(T,{children:[", ",e("a",{class:"link",href:a.keyUrl,target:"_blank",rel:"noopener noreferrer",children:"get a key"})]}):null]}),children:e("input",{name:"key",type:"password",autocomplete:"off",placeholder:k(l)?"Leave empty to use the saved key":`${a.name} API key`,value:y,onInput:t=>{A(t.currentTarget.value),L(g,l,t.currentTarget.value)}})}),v?e(p,{label:"Scope",group:!0,children:e(U,{label:"Scope",name:"scope",options:J,value:K,onChange:M})}):null]}):null;return e(T,{children:[e("div",{class:"add-grid",children:[E,e(p,{label:"Provider",group:!0,children:e(U,{label:"Provider",name:"provider",options:z.map(t=>[t.id,t.name]),value:a.id,onChange:t=>{let r=z.find(w=>w.id===t)??ae;I(r),C(r.baseUrl),h(r.envKey),o(null),(y.trim()||k(r.envKey)||!r.needsKey)&&R(r.baseUrl,r.envKey,y)}})}),e(p,{label:"Model id",group:!0,hint:d?e(q,{label:"Fetching models",inline:!0,dots:!0}):ie,children:e(le,{label:"Model id",onOpen:()=>{!m&&!d&&R(g,l,y)},name:"model",options:m?.models??[],placeholder:m?.models?.[0]??"qwen3-coder",value:n,onChange:u})}),e(p,{label:"Short name",hint:"used as --model; defaults to the model id",children:e("input",{name:"name",placeholder:re(n)||"kimi",autocomplete:"off",pattern:"[a-z0-9][a-z0-9\\-]*"})})]}),x&&b?e("details",{class:"add-more",children:[e("summary",{children:["API key \xB7 uses ",i(b)," saved ",l]}),x]},l):x,e("div",{class:"add-foot",children:[e("details",{class:"add-more",open:a.id==="other"||void 0,children:[e("summary",{children:"Advanced"}),e("div",{class:"add-grid",children:[e(p,{label:"Base URL",children:e("input",{name:"baseUrl",type:"url",placeholder:"http://localhost:11434/v1",autocomplete:"off",value:g,onInput:t=>{C(t.currentTarget.value),L(t.currentTarget.value,l,y)}})}),e(p,{label:"Key variable",children:e("input",{name:"envKey",class:"mono",placeholder:"OPENAI_API_KEY",autocomplete:"off",pattern:"[A-Za-z_][A-Za-z0-9_]*",value:l,onInput:t=>h(t.currentTarget.value)})})]})]}),e(N,{type:"submit",loading:B,children:"Add model"})]})]})}function Me({first:E,config:f,credentials:v,admin:B}){let[a,I]=c(E),g=V(),C=ee(f.config),l=(o,s)=>g.run("send",async()=>{let n=await o();I(u=>({...u,models:n.models??{}}))},{toast:s}),h=o=>C.value.engines?.[o]?.model??f.effective.engines?.[o]?.model,y=o=>a.models[o]?.disabled===!0,A=C.value.chain??f.effective.chain??j,K=Object.entries(a.models).filter(([,o])=>o.provider||o.baseUrl),M=[...Object.entries(a.builtin).flatMap(([o,s])=>Object.entries(s).filter(([n])=>!K.some(([u])=>u===n)).map(([n,u])=>({name:n,engine:o,target:u,entry:a.models[n],removable:!1}))),...K.map(([o,s])=>({name:o,engine:s.provider??"custom",target:s.baseUrl?`${s.model} \xB7 ${s.baseUrl}`:`${s.model}${s.effort?` \xB7 ${s.effort}`:""}`,entry:s,removable:!0}))],m=[...new Set([...A,...j])].map(o=>[o,M.filter(s=>s.engine===o)]).filter(([,o])=>o.length);return e(T,{children:[e(fe,{builtin:a.builtin,credentials:v,admin:B,taken:{...a.models,...Object.assign({},...Object.values(a.builtin))},efforts:Object.fromEntries(j.map(o=>[o,C.value.engines?.[o]?.effort??f.effective.engines?.[o]?.effort])),onAdd:o=>l(o,"Not saved")}),m.map(([o,s])=>e(se,{title:G[o]??o,count:s.length,children:s.map(({name:n,target:u,entry:P,removable:k})=>{let b=[n,u].includes(h(o)??"");return e(ne,{title:n,badges:e(T,{children:[b&&A[0]===o?e(_,{tone:"acc",children:"default for new tasks"}):null,b&&A[0]!==o?e(_,{children:["default for ",G[o]??o]}):null,P?.disabled?e(_,{children:"off"}):null]}),sub:u===n?void 0:`\u2192 ${u}`,actions:b||P?.disabled?null:e(N,{variant:"ghost",size:"sm",onClick:()=>void C.patch({engines:{[o]:{model:n}}}),children:"Make default"}),menu:e(Z,{title:y(n)?"Enable":"Disable",onClick:()=>void l(()=>F.models[y(n)?"enable":"disable"](n))}),remove:k?{title:`Remove ${n}?`,body:"Tasks that ask for it stop running.",onRemove:()=>l(()=>F.models.remove(n))}:void 0},n)})},o))]})}export{Me as ModelsList};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$1a as o}from"./shared-init-f475017dd5811e33.js";function t({tone:n,slim:e,children:i}){return o("div",{class:["notice",e&&"slim",n].filter(Boolean).join(" "),role:"status",children:i})}export{t as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$0a as m}from"./shared-init-cc13a835f3508618.js";import{$1E as p,$1L as u,$1a as o,$1u as c}from"./shared-init-f475017dd5811e33.js";import{$3c as l,$3e as a}from"./shared-init-6e12333f12903a62-2.js";function B({ok:t,title:e,text:n,issues:r,cancel:h="Close",focus:d,children:f}){let i=a(f),s=!t&&r?o(u,{variant:"outline",href:`${r}?${new URLSearchParams({title:e,body:n})}`,external:!0,children:"Report issue"}):null;return o(m,{class:"outcome-dialog",tone:t?"success":"error",title:e,icon:t?c:p,cancel:h,focus:d,actions:s||i.length?o(l,{children:[s,i]}):void 0,onClose:()=>history.replaceState(history.state,"",location.pathname),children:o("p",{role:"status",children:n})})}export{B as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a}from"./outcome-dialog-5cf575a5e6921a5d.js";import"./shared-init-cc13a835f3508618.js";import"./shared-init-f475017dd5811e33.js";import"./shared-init-6e12333f12903a62-2.js";export{a as OutcomeDialog};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a,b,c,d,e,f}from"./platform-actions-dba96dcb0f6513db.js";import"./copy-445c11202f136275.js";import"./segmented-8f809ebe712e92a7.js";import"./outcome-dialog-5cf575a5e6921a5d.js";import"./confirm-c29a1db0130638d2.js";import"./field-b82a0f895266791c.js";import"./action-71685b2d5ad9f359.js";import"./format-a27067f0186e78ac.js";import"./shared-init-cc13a835f3508618.js";import"./shared-init-cc13a835f3508618.js";import"./shared-init-cc13a835f3508618.js";import"./wular-pnext-6e12333f12903a62-0.js";import"./shared-init-cc13a835f3508618.js";import"./shared-init-f475017dd5811e33.js";import"./shared-init-f475017dd5811e33.js";import"./shared-init-6e12333f12903a62-2.js";import"./shared-init-6e12333f12903a62-2.js";import"./shared-init-6e12333f12903a62-2.js";export{d as CreateDialog,e as DriftQueue,c as InstallButton,f as PlatformActions,b as createForm,a as postTo};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as W,b as P}from"./copy-0cc00656953531be.js";import{a as pe}from"./segmented-79c9c69b702e0b90.js";import{a as me}from"./outcome-dialog-3cffe3507ea92af2.js";import{a as ue}from"./confirm-d163e6865d66dfab.js";import{a as M}from"./field-693bb870ad0bdee8.js";import{b as T}from"./action-410bdc82c416bc01.js";import{h as B}from"./format-a27067f0186e78ac.js";import{$2c as ce,$2d as E}from"./shared-init-ae95a674d381c095.js";import{$0a as I,$0j as R,$0x as le}from"./shared-init-ae95a674d381c095.js";import{$1j as ie,$1o as re}from"./shared-init-ae95a674d381c095.js";import{$3a as O}from"./shared-init-ae95a674d381c095.js";import{$1c as b}from"./shared-init-962398d15ee67c92.js";import{$0B as ae,$0L as $,$0a as e,$0b as K,$0j as Y,$0p as Z,$0q as ee,$0t as te,$0w as ne,$0y as oe,$0z as se}from"./shared-init-962398d15ee67c92.js";import{$3c as A,$3h as w,$3j as F,$3l as H}from"./shared-init-6e12333f12903a62-2.js";var j={private:{text:"Private",note:()=>"Only the account that owns it can install it.",owner:"Owns it and is the only place it installs. Leave empty for your personal account."},public:{text:"Public",note:o=>`Any account can install it. ${o} asks where on each install.`,owner:"Manages its settings; it still installs anywhere. Leave empty for your personal account."}},ge=(o,t,s={})=>t().then(({tx:i})=>b.apps.finish(o,{...s,tx:i})).then(({url:i})=>location.assign(i)),N=o=>o.split(/\*\*(.+?)\*\*/).map((t,s)=>s%2?e("span",{class:"ui-name",children:t},s):t),Ae=o=>o?.focus();function he({url:o,fields:t}){let s=Object.assign(document.createElement("form"),{method:"post",action:o});for(let[i,l]of Object.entries(t))s.append(Object.assign(document.createElement("input"),{type:"hidden",name:i,value:l}));document.body.append(s),s.submit()}var Te=(o,t,s)=>o&&!t.public?Promise.resolve(o):s().then(({post:i,create:l})=>i?void he(i):l??o),de=(o,t="",s=!1)=>({...Object.fromEntries(new URL(o,location.href).searchParams),...t?{owner:t}:{},...s?{public:"1"}:{}});function fe(){return e("p",{class:"flash err",children:["This server is only reachable from this machine, so"," ",e("a",{href:"#tunnel",onClick:o=>{o.currentTarget.closest("dialog").close(),document.querySelector("#tunnel details")?.setAttribute("open","")},children:"set a public address"})," ","first."]})}function be(){let o=T({toast:"Not installed",leaves:!0}),t=s=>void o.run("install",async()=>{location.href=(await b.apps.install(s,location.pathname)).url});return{busy:!!o.pending,install:t}}function Ke({app:o,label:t}){let{busy:s,install:i}=be();return e($,{loading:s,onClick:()=>i(o),children:t})}function Be({app:o,name:t,onClose:s}){let i=T({toast:"Not removed",refresh:!0,leaves:!0}),l=()=>void i.run("remove",async()=>{await b.apps.remove(o.id),history.replaceState(history.state,"",location.pathname)});return e(ue,{open:!0,title:`Remove ${o.name}?`,body:e(A,{children:["Coder forgets this app and its installs here, and the agent stops answering through it on"," ",t,".",e("br",{}),"Delete the app itself on ",t,o.settingsUrl?e(A,{children:[" ","in"," ",e("a",{class:"link",href:o.settingsUrl,target:"_blank",rel:"noreferrer",children:"its settings"})]}):null,"."]}),confirmLabel:"Remove",busy:!!i.pending,onConfirm:l,onClose:s})}function Re({integration:o,step:t,start:s,unreachable:i,onClose:l}){let h=T({leaves:!0}),r=!!h.pending,m=H(null),[c,u]=w(()=>Object.fromEntries(t.fields.map(n=>[n.name,n.options?.[0]?.value??""]))),f=({when:n})=>!n||c[n.field]===n.equals,C=t.steps.filter(f),y=t.fields.filter(f),d=(n,g)=>{let v=m.current.closest("dialog");if(!v.style.marginTop){let{top:S}=v.getBoundingClientRect();Object.assign(v.style,{marginTop:`${S}px`,maxHeight:`calc(100dvh - ${S+24}px)`})}u({...c,[n]:g})},k=n=>{n.preventDefault();let g=n.currentTarget;h.run("create",()=>ge(o,s,{...t.hidden,...Object.fromEntries(new FormData(g))}))};return e(O,{class:"create-dialog",title:t.submit,dismiss:!0,busy:r,onSubmit:k,onClose:l,actions:e($,{type:"submit",rightIcon:ae,loading:r,children:t.submit}),children:[i?e(fe,{}):null,e("p",{ref:m,class:"muted",children:t.intro}),y.filter(n=>n.options).map(n=>e(M,{label:n.label,hint:n.hint,group:!0,children:e(le,{label:n.label,name:n.name,options:n.options.map(({value:g,label:v})=>[g,v]),value:c[n.name],onChange:g=>d(n.name,g),disabled:r})},n.name)),C.length?e(A,{children:[e("div",{class:"create-link",children:[e($,{variant:"secondary",class:"create-open",href:t.link,external:!0,children:["Open ",new URL(t.link).host]}),e(W,{value:t.link,label:"Copy link"})]}),e("ol",{class:"create-steps",children:C.map(({text:n,link:g,copy:v=[]})=>e("li",{children:[e("p",{children:N(n)}),g&&g!==t.link?e("div",{class:"create-link",children:[e("a",{href:g,target:"_blank",rel:"noreferrer",children:g.replace(/^https:\/\//,"")}),e(W,{value:g,label:"Copy link"})]}):null,v.map(S=>e(P,{value:S,label:"Copy"},S))]},n))})]}):null,t.notes?.length?e("details",{class:"create-more",children:[e("summary",{children:"Advanced"}),e("ul",{children:t.notes.map(n=>e("li",{children:N(n)},n))})]}):null,y.filter(n=>!n.options).map(n=>e(M,{label:n.label,hint:n.hint??(n.required?void 0:"optional"),children:e("input",{ref:n.when?Ae:void 0,name:n.name,placeholder:n.placeholder,required:n.required,autocomplete:"off",spellcheck:!1})},n.name))]})}function Ee({integration:o,name:t,publicApps:s,organizationApps:i,unreachable:l,onSubmit:h,onClose:r}){let[m,c]=w("private"),u=T({leaves:!0}),f=!!u.pending,C=H(null);F(()=>{i&&b.installations.list(void 0,{limit:200,active:!0}).then(d=>{let[k]=d.map(n=>n.value).filter(n=>n.integration===o&&n.account.type&&n.account.type!=="User").map(n=>n.account.login).sort();k&&C.current&&!C.current.value&&(C.current.value=k)}).catch(d=>console.error("coder dashboard: installations",d))},[]);let y=d=>{d.preventDefault();let k=new FormData(d.currentTarget);u.run("submit",()=>h(String(k.get("owner")??"").trim(),m==="public"))};return e(O,{class:"create-dialog",title:`Create ${t} app`,dismiss:!0,busy:f,onSubmit:y,onClose:r,actions:e($,{type:"submit",rightIcon:Z,loading:f,children:["Continue to ",t]}),children:[l?e(fe,{}):null,s?e(M,{label:"Who can install it",group:!0,children:[e(pe,{label:"Who can install it",options:Object.entries(j).map(([d,{text:k}])=>[d,k]),value:m,onChange:d=>c(d),disabled:f}),e("small",{class:"where-note",children:j[m].note(t)})]}):null,i?e(M,{label:"Owner",hint:j[m].owner,children:e("input",{ref:C,name:"owner",placeholder:"your-org",autocomplete:"off",spellcheck:!1})}):null]})}function ye({app:o,name:t,check:s,onClose:i}){let l=T({toast:`${t} app not updated`,leaves:!0}),h=!!l.pending,r=!s.changed,m=c=>{let u=c.currentTarget.closest("dialog");l.run("confirm",async()=>{await b.apps.update(o.id),u.close()})};return e(O,{class:"create-dialog",title:`Update ${o.name} on ${t}`,busy:h,cancel:r?"Close":"Cancel",onClose:i,actions:r&&!s.confirm?null:e(A,{children:[s.confirm&&!r?e($,{variant:"secondary",loading:h,onClick:m,children:"I updated it"}):null,e($,{href:s.url,external:!0,children:s.label})]}),children:s.confirm?e(A,{children:[e("p",{class:"muted",children:r?`Up to date on ${t}. The app uses these values.`:`${t} cannot show Coder the app's settings. Enter the values marked changed in the app on ${t}, then confirm.`}),e("ul",{class:"create-steps update-values",children:s.lines.map(({text:c,copy:u,changed:f})=>e("li",{children:[e("p",{children:[c," ",f?e(re,{tone:"warn",children:"changed"}):null]}),u?e(P,{value:u,label:"Copy"}):null]},`${c} ${u}`))})]}):r?e("p",{children:["Up to date on ",t,"."]}):e(A,{children:[e("p",{class:"muted",children:["The app on ",t," differs from what the agent needs now. Make these changes in its settings and save them."]}),e("ol",{class:"create-steps",children:s.lines.map(({text:c,copy:u})=>e("li",{children:[e("p",{children:N(c)}),u?e(P,{value:u,label:"Copy"}):null]},c))})]})})}function Ye({apps:o}){let t=I(),[s,i]=w(o),[l,h]=w(),r=s[0],m=c=>{i(c),h(void 0);let[u]=c;if(!u){history.replaceState(history.state,"",location.pathname),t.refresh();return}b.apps.drift(u.id).then(h).catch(f=>{E(`Not read from ${u.platform}`,B(f)),m(c.slice(1))})};return F(()=>m(o),[]),r&&l?e(ye,{app:r,name:r.platform,check:l,onClose:()=>m(s.slice(1))}):null}function Me({name:o,issues:t,title:s=`Setting up ${o} failed`,text:i="Coder ran into an unexpected error, so nothing was set up. Try again, and if it fails again, report it on GitHub.",onRetry:l}){return e(me,{ok:!1,title:s,text:i,issues:t,focus:"actions",children:e($,{autofocus:!0,onClick:r=>{r.currentTarget.closest("dialog").close(),l()},children:"Try again"})})}function Ze({integration:o,name:t,apps:s,installed:i,reinstall:l,createUrl:h,create:r,unreachable:m,publicApps:c=!1,organizationApps:u=!1,shared:f=!1,appUpdate:C,failed:y}){let d=I(),{busy:k,install:n}=be(),[g,v]=w(!1),[S,q]=w(),[ve,D]=w(!1),[x,z]=w(),[L,_]=w(),Ce=c||u,G=s.find(a=>a.id===l)??s[0],ke=a=>(v(!0),b.apps.create(o,a).then(({post:p})=>p&&he(p)).catch(p=>{throw v(!1),p})),we=a=>(v(!0),ge(o,()=>b.apps.create(o,a),r.hidden).catch(p=>{throw v(!1),p})),Q=a=>r?r.fields.length?Te(r,a,()=>b.apps.create(o,a)).then(p=>{p&&(q({state:a,step:p}),D(!1))}):we(a):ke(a),U=()=>Ce?D(!0):void Q(de(h)).catch(a=>E("App not created",B(a))),V=S?e(Re,{integration:o,step:S.step,start:()=>b.apps.create(o,S.state),unreachable:m,onClose:()=>q(void 0)}):null,X=ve?e(Ee,{integration:o,name:t,publicApps:c,organizationApps:u,unreachable:m,onSubmit:(a,p)=>Q(de(h,a,p)),onClose:()=>D(!1)}):null,$e=a=>C==="push"?void b.apps.update(a.id).then(()=>{ce(`${t} app updated`,`${a.name} now matches the agent.`,"success"),d.refresh()}).catch(p=>E(`${t} app not updated`,B(p))):void b.apps.drift(a.id).then(p=>_({app:a,check:p})).catch(p=>E(`Not read from ${t}`,B(p))),Se=x&&s.some(a=>a.id===x.id)?e(Be,{app:x,name:t,onClose:()=>z(void 0)}):null,J=y?e(Me,{name:y.name,issues:y.issues,title:y.title,text:y.text,onRetry:()=>s.some(a=>a.id===y.app)?n(y.app):U()}):null;return s.length?e(A,{children:[e("span",{class:"split",children:[i?null:e($,{size:"sm",loading:k,onClick:()=>n(G.id),children:l?"Reinstall":"Install"}),e(ie,{button:i?"icon":{size:"sm",class:"split-more"},label:`More for ${o}`,wide:!0,summary:e(K,{d:i?oe:Y}),children:[s.map(a=>{if(!i&&a===G)return null;let p=s.length>1?` ${a.name}`:"";return e(R,{icon:se,title:`Install${p}`,sub:`On its owner's account, or any account if it is public on ${t}.`,onClick:()=>n(a.id)},a.id)}),f?null:e(R,{icon:ee,onClick:U,title:`Create another ${t} app`,sub:"A separate app with its own name."}),f||!C?null:s.map(a=>e(R,{icon:ne,title:s.length>1?`Update ${a.name} on ${t}`:`Update on ${t}`,sub:a.changed?"Changed since last update":void 0,onClick:()=>$e(a)},`update ${a.id}`)),f?null:s.map(a=>e(R,{icon:te,title:`Remove ${a.name}`,danger:!0,onClick:()=>z(a)},`remove ${a.id}`))]})]}),V,X,Se,J,L?e(ye,{app:L.app,name:t,check:L.check,onClose:()=>{_(void 0),d.refresh()}}):null]}):e(A,{children:[e($,{size:"sm",loading:g,onClick:U,children:r&&!r.fields.length?r.submit:"Create app"}),V,X,J]})}export{he as a,Te as b,Ke as c,Re as d,Ye as e,Ze as f};
|
|
1
|
+
import{a as W,b as P}from"./copy-445c11202f136275.js";import{a as pe}from"./segmented-8f809ebe712e92a7.js";import{a as me}from"./outcome-dialog-5cf575a5e6921a5d.js";import{a as ue}from"./confirm-c29a1db0130638d2.js";import{a as M}from"./field-b82a0f895266791c.js";import{b as T}from"./action-71685b2d5ad9f359.js";import{h as B}from"./format-a27067f0186e78ac.js";import{$1c as ce,$1d as E}from"./shared-init-cc13a835f3508618.js";import{$3a as I,$3j as R,$3x as le}from"./shared-init-cc13a835f3508618.js";import{$2j as ie,$2o as re}from"./shared-init-cc13a835f3508618.js";import{$0a as O}from"./shared-init-cc13a835f3508618.js";import{$0c as b}from"./shared-init-f475017dd5811e33.js";import{$1B as ae,$1L as $,$1a as e,$1b as K,$1j as Y,$1p as Z,$1q as ee,$1t as te,$1w as ne,$1y as oe,$1z as se}from"./shared-init-f475017dd5811e33.js";import{$3c as A,$3h as w,$3j as F,$3l as H}from"./shared-init-6e12333f12903a62-2.js";var j={private:{text:"Private",note:()=>"Only the account that owns it can install it.",owner:"Owns it and is the only place it installs. Leave empty for your personal account."},public:{text:"Public",note:o=>`Any account can install it. ${o} asks where on each install.`,owner:"Manages its settings; it still installs anywhere. Leave empty for your personal account."}},ge=(o,t,s={})=>t().then(({tx:i})=>b.apps.finish(o,{...s,tx:i})).then(({url:i})=>location.assign(i)),N=o=>o.split(/\*\*(.+?)\*\*/).map((t,s)=>s%2?e("span",{class:"ui-name",children:t},s):t),Ae=o=>o?.focus();function he({url:o,fields:t}){let s=Object.assign(document.createElement("form"),{method:"post",action:o});for(let[i,l]of Object.entries(t))s.append(Object.assign(document.createElement("input"),{type:"hidden",name:i,value:l}));document.body.append(s),s.submit()}var Te=(o,t,s)=>o&&!t.public?Promise.resolve(o):s().then(({post:i,create:l})=>i?void he(i):l??o),de=(o,t="",s=!1)=>({...Object.fromEntries(new URL(o,location.href).searchParams),...t?{owner:t}:{},...s?{public:"1"}:{}});function fe(){return e("p",{class:"flash err",children:["This server is only reachable from this machine, so"," ",e("a",{href:"#tunnel",onClick:o=>{o.currentTarget.closest("dialog").close(),document.querySelector("#tunnel details")?.setAttribute("open","")},children:"set a public address"})," ","first."]})}function be(){let o=T({toast:"Not installed",leaves:!0}),t=s=>void o.run("install",async()=>{location.href=(await b.apps.install(s,location.pathname)).url});return{busy:!!o.pending,install:t}}function Ke({app:o,label:t}){let{busy:s,install:i}=be();return e($,{loading:s,onClick:()=>i(o),children:t})}function Be({app:o,name:t,onClose:s}){let i=T({toast:"Not removed",refresh:!0,leaves:!0}),l=()=>void i.run("remove",async()=>{await b.apps.remove(o.id),history.replaceState(history.state,"",location.pathname)});return e(ue,{open:!0,title:`Remove ${o.name}?`,body:e(A,{children:["Coder forgets this app and its installs here, and the agent stops answering through it on"," ",t,".",e("br",{}),"Delete the app itself on ",t,o.settingsUrl?e(A,{children:[" ","in"," ",e("a",{class:"link",href:o.settingsUrl,target:"_blank",rel:"noreferrer",children:"its settings"})]}):null,"."]}),confirmLabel:"Remove",busy:!!i.pending,onConfirm:l,onClose:s})}function Re({integration:o,step:t,start:s,unreachable:i,onClose:l}){let h=T({leaves:!0}),r=!!h.pending,m=H(null),[c,u]=w(()=>Object.fromEntries(t.fields.map(n=>[n.name,n.options?.[0]?.value??""]))),f=({when:n})=>!n||c[n.field]===n.equals,C=t.steps.filter(f),y=t.fields.filter(f),d=(n,g)=>{let v=m.current.closest("dialog");if(!v.style.marginTop){let{top:S}=v.getBoundingClientRect();Object.assign(v.style,{marginTop:`${S}px`,maxHeight:`calc(100dvh - ${S+24}px)`})}u({...c,[n]:g})},k=n=>{n.preventDefault();let g=n.currentTarget;h.run("create",()=>ge(o,s,{...t.hidden,...Object.fromEntries(new FormData(g))}))};return e(O,{class:"create-dialog",title:t.submit,dismiss:!0,busy:r,onSubmit:k,onClose:l,actions:e($,{type:"submit",rightIcon:ae,loading:r,children:t.submit}),children:[i?e(fe,{}):null,e("p",{ref:m,class:"muted",children:t.intro}),y.filter(n=>n.options).map(n=>e(M,{label:n.label,hint:n.hint,group:!0,children:e(le,{label:n.label,name:n.name,options:n.options.map(({value:g,label:v})=>[g,v]),value:c[n.name],onChange:g=>d(n.name,g),disabled:r})},n.name)),C.length?e(A,{children:[e("div",{class:"create-link",children:[e($,{variant:"secondary",class:"create-open",href:t.link,external:!0,children:["Open ",new URL(t.link).host]}),e(W,{value:t.link,label:"Copy link"})]}),e("ol",{class:"create-steps",children:C.map(({text:n,link:g,copy:v=[]})=>e("li",{children:[e("p",{children:N(n)}),g&&g!==t.link?e("div",{class:"create-link",children:[e("a",{href:g,target:"_blank",rel:"noreferrer",children:g.replace(/^https:\/\//,"")}),e(W,{value:g,label:"Copy link"})]}):null,v.map(S=>e(P,{value:S,label:"Copy"},S))]},n))})]}):null,t.notes?.length?e("details",{class:"create-more",children:[e("summary",{children:"Advanced"}),e("ul",{children:t.notes.map(n=>e("li",{children:N(n)},n))})]}):null,y.filter(n=>!n.options).map(n=>e(M,{label:n.label,hint:n.hint??(n.required?void 0:"optional"),children:e("input",{ref:n.when?Ae:void 0,name:n.name,placeholder:n.placeholder,required:n.required,autocomplete:"off",spellcheck:!1})},n.name))]})}function Ee({integration:o,name:t,publicApps:s,organizationApps:i,unreachable:l,onSubmit:h,onClose:r}){let[m,c]=w("private"),u=T({leaves:!0}),f=!!u.pending,C=H(null);F(()=>{i&&b.installations.list(void 0,{limit:200,active:!0}).then(d=>{let[k]=d.map(n=>n.value).filter(n=>n.integration===o&&n.account.type&&n.account.type!=="User").map(n=>n.account.login).sort();k&&C.current&&!C.current.value&&(C.current.value=k)}).catch(d=>console.error("coder dashboard: installations",d))},[]);let y=d=>{d.preventDefault();let k=new FormData(d.currentTarget);u.run("submit",()=>h(String(k.get("owner")??"").trim(),m==="public"))};return e(O,{class:"create-dialog",title:`Create ${t} app`,dismiss:!0,busy:f,onSubmit:y,onClose:r,actions:e($,{type:"submit",rightIcon:Z,loading:f,children:["Continue to ",t]}),children:[l?e(fe,{}):null,s?e(M,{label:"Who can install it",group:!0,children:[e(pe,{label:"Who can install it",options:Object.entries(j).map(([d,{text:k}])=>[d,k]),value:m,onChange:d=>c(d),disabled:f}),e("small",{class:"where-note",children:j[m].note(t)})]}):null,i?e(M,{label:"Owner",hint:j[m].owner,children:e("input",{ref:C,name:"owner",placeholder:"your-org",autocomplete:"off",spellcheck:!1})}):null]})}function ye({app:o,name:t,check:s,onClose:i}){let l=T({toast:`${t} app not updated`,leaves:!0}),h=!!l.pending,r=!s.changed,m=c=>{let u=c.currentTarget.closest("dialog");l.run("confirm",async()=>{await b.apps.update(o.id),u.close()})};return e(O,{class:"create-dialog",title:`Update ${o.name} on ${t}`,busy:h,cancel:r?"Close":"Cancel",onClose:i,actions:r&&!s.confirm?null:e(A,{children:[s.confirm&&!r?e($,{variant:"secondary",loading:h,onClick:m,children:"I updated it"}):null,e($,{href:s.url,external:!0,children:s.label})]}),children:s.confirm?e(A,{children:[e("p",{class:"muted",children:r?`Up to date on ${t}. The app uses these values.`:`${t} cannot show Coder the app's settings. Enter the values marked changed in the app on ${t}, then confirm.`}),e("ul",{class:"create-steps update-values",children:s.lines.map(({text:c,copy:u,changed:f})=>e("li",{children:[e("p",{children:[c," ",f?e(re,{tone:"warn",children:"changed"}):null]}),u?e(P,{value:u,label:"Copy"}):null]},`${c} ${u}`))})]}):r?e("p",{children:["Up to date on ",t,"."]}):e(A,{children:[e("p",{class:"muted",children:["The app on ",t," differs from what the agent needs now. Make these changes in its settings and save them."]}),e("ol",{class:"create-steps",children:s.lines.map(({text:c,copy:u})=>e("li",{children:[e("p",{children:N(c)}),u?e(P,{value:u,label:"Copy"}):null]},c))})]})})}function Ye({apps:o}){let t=I(),[s,i]=w(o),[l,h]=w(),r=s[0],m=c=>{i(c),h(void 0);let[u]=c;if(!u){history.replaceState(history.state,"",location.pathname),t.refresh();return}b.apps.drift(u.id).then(h).catch(f=>{E(`Not read from ${u.platform}`,B(f)),m(c.slice(1))})};return F(()=>m(o),[]),r&&l?e(ye,{app:r,name:r.platform,check:l,onClose:()=>m(s.slice(1))}):null}function Me({name:o,issues:t,title:s=`Setting up ${o} failed`,text:i="Coder ran into an unexpected error, so nothing was set up. Try again, and if it fails again, report it on GitHub.",onRetry:l}){return e(me,{ok:!1,title:s,text:i,issues:t,focus:"actions",children:e($,{autofocus:!0,onClick:r=>{r.currentTarget.closest("dialog").close(),l()},children:"Try again"})})}function Ze({integration:o,name:t,apps:s,installed:i,reinstall:l,createUrl:h,create:r,unreachable:m,publicApps:c=!1,organizationApps:u=!1,shared:f=!1,appUpdate:C,failed:y}){let d=I(),{busy:k,install:n}=be(),[g,v]=w(!1),[S,q]=w(),[ve,D]=w(!1),[x,z]=w(),[L,_]=w(),Ce=c||u,G=s.find(a=>a.id===l)??s[0],ke=a=>(v(!0),b.apps.create(o,a).then(({post:p})=>p&&he(p)).catch(p=>{throw v(!1),p})),we=a=>(v(!0),ge(o,()=>b.apps.create(o,a),r.hidden).catch(p=>{throw v(!1),p})),Q=a=>r?r.fields.length?Te(r,a,()=>b.apps.create(o,a)).then(p=>{p&&(q({state:a,step:p}),D(!1))}):we(a):ke(a),U=()=>Ce?D(!0):void Q(de(h)).catch(a=>E("App not created",B(a))),V=S?e(Re,{integration:o,step:S.step,start:()=>b.apps.create(o,S.state),unreachable:m,onClose:()=>q(void 0)}):null,X=ve?e(Ee,{integration:o,name:t,publicApps:c,organizationApps:u,unreachable:m,onSubmit:(a,p)=>Q(de(h,a,p)),onClose:()=>D(!1)}):null,$e=a=>C==="push"?void b.apps.update(a.id).then(()=>{ce(`${t} app updated`,`${a.name} now matches the agent.`,"success"),d.refresh()}).catch(p=>E(`${t} app not updated`,B(p))):void b.apps.drift(a.id).then(p=>_({app:a,check:p})).catch(p=>E(`Not read from ${t}`,B(p))),Se=x&&s.some(a=>a.id===x.id)?e(Be,{app:x,name:t,onClose:()=>z(void 0)}):null,J=y?e(Me,{name:y.name,issues:y.issues,title:y.title,text:y.text,onRetry:()=>s.some(a=>a.id===y.app)?n(y.app):U()}):null;return s.length?e(A,{children:[e("span",{class:"split",children:[i?null:e($,{size:"sm",loading:k,onClick:()=>n(G.id),children:l?"Reinstall":"Install"}),e(ie,{button:i?"icon":{size:"sm",class:"split-more"},label:`More for ${o}`,wide:!0,summary:e(K,{d:i?oe:Y}),children:[s.map(a=>{if(!i&&a===G)return null;let p=s.length>1?` ${a.name}`:"";return e(R,{icon:se,title:`Install${p}`,sub:`On its owner's account, or any account if it is public on ${t}.`,onClick:()=>n(a.id)},a.id)}),f?null:e(R,{icon:ee,onClick:U,title:`Create another ${t} app`,sub:"A separate app with its own name."}),f||!C?null:s.map(a=>e(R,{icon:ne,title:s.length>1?`Update ${a.name} on ${t}`:`Update on ${t}`,sub:a.changed?"Changed since last update":void 0,onClick:()=>$e(a)},`update ${a.id}`)),f?null:s.map(a=>e(R,{icon:te,title:`Remove ${a.name}`,danger:!0,onClick:()=>z(a)},`remove ${a.id}`))]})]}),V,X,Se,J,L?e(ye,{app:L.app,name:t,check:L.check,onClose:()=>{_(void 0),d.refresh()}}):null]}):e(A,{children:[e($,{size:"sm",loading:g,onClick:U,children:r&&!r.fields.length?r.submit:"Create app"}),V,X,J]})}export{he as a,Te as b,Ke as c,Re as d,Ye as e,Ze as f};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{b as C}from"./copy-
|
|
1
|
+
"use client";import{b as C}from"./copy-445c11202f136275.js";import{e as tn}from"./composer-data-5fed6c271a4791ca.js";import{d as F}from"./model-options-8d2170eebe0d061d.js";import{a as en}from"./types-3eca2c7f47c46054.js";import{c as on}from"./list-d918f79562d497eb.js";import"./confirm-c29a1db0130638d2.js";import{a as $}from"./field-b82a0f895266791c.js";import"./defaults-52f30e83d7666f7a.js";import{a as nn,b as O}from"./action-71685b2d5ad9f359.js";import{d as W,e as _}from"./format-a27067f0186e78ac.js";import{$1g as Z}from"./shared-init-cc13a835f3508618.js";import{$3j as D,$3l as Y,$3x as L}from"./shared-init-cc13a835f3508618.js";import{$2a as X,$2d as I,$2j as E,$2o as A}from"./shared-init-cc13a835f3508618.js";import"./wular-pnext-6e12333f12903a62-0.js";import"./shared-init-cc13a835f3508618.js";import{$0c as d}from"./shared-init-f475017dd5811e33.js";import{$1F as Q,$1I as S,$1L as T,$1a as n,$1b as v,$1j as z,$1n as q,$1q as G,$1r as U,$1y as V,$1z as J}from"./shared-init-f475017dd5811e33.js";import"./shared-init-6e12333f12903a62-2.js";import"./shared-init-6e12333f12903a62-2.js";import{$3c as w,$3h as u,$3j as P,$3l as H}from"./shared-init-6e12333f12903a62-2.js";var K={local:q,"local-docker":Q,"vercel-sandbox":G,"github-actions":U,http:S},dn=new Set(["default","local"]);function cn({runner:t,tested:o}){return o==="testing"?n("span",{class:"sub runner-status",children:[n("i",{class:"dot"}),"Testing\u2026"]}):o?n("span",{class:`sub runner-status ${o.ok?"ok":"bad"}`,children:[n("i",{class:"dot"}),o.ok?`Reached in ${W(o.ms)}`:o.detail]}):n("span",{class:`sub runner-status${t.online?" ok":""}`,children:[n("i",{class:"dot"}),t.online?"Online":t.lastSeen?`Last seen ${_(t.lastSeen)}`:"Not seen yet"]})}function mn({runner:t,manage:o,onChange:r}){let[l,b]=u(!1),[p,s]=u(!1),[c,a]=u(),m=H(null);P(()=>m.current?.select(),[p]);let R=dn.has(t.id),k=on(o&&!R?{title:`Remove ${t.name}?`,body:"Its tasks go to another runner.",onRemove:()=>r(()=>d.runners.remove(t.id))}:void 0),h=()=>{a("testing"),d.runners.test(t.id).then(a,f=>{a(void 0),nn(f)})};return n("tr",{children:[n("td",{children:[n("span",{class:"row-title",children:[n("b",{class:"runner-name",children:[n(v,{d:K[t.kind]??S}),p?n("input",{class:"runner-rename","aria-label":"Runner name",defaultValue:t.name,ref:m,onKeyDown:f=>{let y=f.currentTarget.value.trim();f.key==="Escape"&&s(!1),f.key==="Enter"&&y&&r(()=>d.runners.update(t.id,{name:y})).then(()=>s(!1))},onBlur:()=>s(!1)}):t.name]}),n(A,{children:t.scope}),t.default?n(A,{tone:"acc",children:"default"}):null]}),n(cn,{runner:t,tested:c})]}),n("td",{class:"acts",children:[t.default||!o?null:n(T,{variant:"secondary",size:"sm",loading:l,onClick:()=>{b(!0),r(()=>d.runners.update(t.id,{default:!0})).finally(()=>b(!1))},children:"Make default"}),n(E,{button:"icon",label:"Actions",summary:n(v,{d:V}),children:[n(D,{title:"Test",onClick:h}),o&&!R?n(D,{title:"Rename",onClick:()=>s(!0)}):null,k.item]}),k.dialog]})]})}function pn({pairing:t,onCancel:o}){return n("div",{class:"runner-pair",children:[n("details",{class:"runner-step",children:[n("summary",{children:"Install the Coder CLI on that computer, if it is not there yet"}),n(C,{value:"npm install -g @wular/coder"})]}),n("div",{class:"runner-step",children:[n("p",{children:"Run this there. The token works once and expires in 15 minutes."}),n(C,{value:t.command})]}),n("details",{class:"runner-step",children:[n("summary",{children:"Behind a firewall? This server has to reach that computer over HTTPS"}),n("p",{children:["Open a tunnel on that computer first, then add its address to the command above as"," ",n("code",{children:"--runner-url"}),"."]}),n(C,{value:"cloudflared tunnel --url http://localhost:4100"})]}),n("div",{class:"runner-wait",children:[n(I,{label:"Waiting for that computer to connect",inline:!0,dots:!0}),n(T,{variant:"secondary",danger:!0,size:"sm",onClick:o,children:"Cancel"})]})]})}function fn({catalog:t,admin:o,personal:r,known:l,onAdded:b}){let[p,s]=u(),[c,a]=u(r?"personal":"workspace"),m=O(),R=!!m.pending,[k,h]=u(),[f,y]=u(l),N=!!k&&l.some(e=>!f.includes(e)),x=N?void 0:p,g=N?void 0:k,i=t.find(e=>e.kind===x);P(()=>{if(!g)return;let e=setTimeout(j,Math.min(g.expiresAt-Date.now(),15*6e4));return()=>clearTimeout(e)},[g]);let j=()=>{h(void 0),s(void 0)},an=e=>{h(void 0),s(e.kind),e.connect==="pair"&&(y(l),m.run("pair",async()=>h(await d.runners.pair({scope:c}))).then(B=>B||s(void 0)))};return n("form",{class:"runner-add",method:"post",onSubmit:async e=>{if(e.preventDefault(),!i||R)return;let B=Object.fromEntries([...new FormData(e.currentTarget)].map(([M,ln])=>[M,String(ln).trim()])),{name:sn,...rn}=B;await m.run("add",async()=>{await d.runners.add({kind:i.kind,name:sn||i.name,scope:c,config:Object.fromEntries(Object.entries(rn).filter(([,M])=>M))}),b(await d.runners.list()),s(void 0)})},children:[n("div",{class:"runner-pick",children:[n(E,{button:{variant:"secondary"},label:"Runner kind",align:"left",wide:!0,summary:n(w,{children:[n(v,{d:i?K[i.kind]:J}),i?i.name:"Add a runner",n(v,{d:z})]}),children:t.filter(e=>e.available).map(e=>n(Y,{on:e.kind===x,onPick:()=>an(e),icon:K[e.kind]??S,sub:e.available?e.description:e.reason,children:e.name},e.kind))}),i?.connect==="fields"?n(w,{children:[i.help?n("p",{class:"muted runner-help",children:i.help}):null,n("div",{class:"add-grid",children:[n($,{label:"Name",hint:"shown in the list",children:n("input",{name:"name",placeholder:i.name,autocomplete:"off"})}),i.fields.map(e=>n($,{label:e.label,hint:e.hint??(e.optional?"optional":void 0),children:n("input",{name:e.key,type:e.secret?"password":"text",placeholder:e.placeholder,required:!e.optional,autocomplete:"off"})},`${i.kind}:${e.key}`))]})]}):null,i?.connect==="fields"?n("div",{class:"runner-foot",children:[r?n(L,{label:"Who can use this runner",options:F,value:o?c:"personal",onChange:a,disabled:!o}):null,n(T,{type:"submit",loading:R,children:"Add runner"})]}):n(w,{children:[i&&r?n(L,{label:"Who can use this runner",options:F,value:o?c:"personal",onChange:a,disabled:!o||!!g}):null,R&&!g?n(I,{label:"Pairing",inline:!0}):null]})]}),g?n(pn,{pairing:g,onCancel:j}):null]})}function Nn({first:t,me:o}){let[r,l]=u(t),b=O(),p=en(o),s=tn(r.items);Z(({items:a})=>l(m=>({...m,items:a})));let c=a=>b.run("change",async()=>{await a(),l(await d.runners.list())});return n(X,{title:"Runners",count:s.length,children:[n("div",{class:"table-scroll",children:n("table",{class:"rows settings",children:n("tbody",{children:s.map(a=>n(mn,{runner:a,manage:a.scope==="personal"||p,onChange:c},a.id))})})}),n(fn,{catalog:r.catalog,admin:p,personal:!!o.user,known:s.map(a=>a.id),onAdded:l})]})}export{Nn as RunnersList};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{e as N}from"./model-options-8d2170eebe0d061d.js";import{f as I}from"./list-
|
|
1
|
+
"use client";import{e as N}from"./model-options-8d2170eebe0d061d.js";import{f as I}from"./list-d918f79562d497eb.js";import"./confirm-c29a1db0130638d2.js";import"./defaults-52f30e83d7666f7a.js";import{a as A,b as E}from"./action-71685b2d5ad9f359.js";import"./format-a27067f0186e78ac.js";import"./shared-init-cc13a835f3508618.js";import{$3x as T}from"./shared-init-cc13a835f3508618.js";import{$2a as B,$2o as m}from"./shared-init-cc13a835f3508618.js";import"./wular-pnext-6e12333f12903a62-0.js";import"./shared-init-cc13a835f3508618.js";import{$0c as r}from"./shared-init-f475017dd5811e33.js";import{$1L as l,$1N as R,$1a as t,$1z as C}from"./shared-init-f475017dd5811e33.js";import"./shared-init-6e12333f12903a62-2.js";import"./shared-init-6e12333f12903a62-2.js";import{$3c as h,$3h as a}from"./shared-init-6e12333f12903a62-2.js";function G({first:_,local:u,admin:p}){let[s,f]=a(_),[w,v]=a(!1),[g,D]=a(p||u?"":"me"),[P,y]=a(""),c=E(),i=!!c.pending,b=w||!s.length,k=e=>f(n=>n.some(o=>o.id===e.id)?n.map(o=>o.id===e.id?e:o):[...n,e]);return t(B,{title:"Task secrets",count:s.length||void 0,actions:b?null:t(R,{icon:C,label:"Add a task secret",onClick:()=>v(!0)}),children:t("div",{class:"cred-engine",children:[t("p",{class:"muted cred-note",children:"Tasks read these as environment variables, like a test API key or a deploy token."}),s.length?t("table",{class:"rows creds",children:t("tbody",{children:s.map(e=>t(I,{title:e.env??e.name,badges:t(h,{children:[t(m,{children:e.owner?e.mine?"personal":"member":"workspace"}),e.status==="ok"?null:t(m,{tone:"warn",children:"needs a new value"})]}),actions:P===e.id?t("form",{class:"cred-add",method:"post",onSubmit:n=>{n.preventDefault();let o=String(new FormData(n.currentTarget).get("key")??"");o.trim()&&c.run("renew",async()=>{k(await r.connections.update(e.id,{key:o.trim()})),y("")})},children:[t("input",{name:"key",type:"password","aria-label":`New value for ${e.env??e.name}`,placeholder:"New value",autocomplete:"off","aria-busy":i,ref:n=>n?.focus()}),t(l,{type:"submit",loading:i,children:"Save"})]}):t(l,{variant:"ghost",size:"sm",onClick:()=>y(e.id),children:e.status==="ok"?"Replace":"Reconnect"}),remove:{title:`Remove ${e.env??e.name}?`,body:"Tasks stop getting it, and its value is deleted.",onRemove:()=>r.connections.remove(e.id).then(()=>f(n=>n.filter(o=>o.id!==e.id)),A)}},e.id))})}):null,b?t("div",{class:"cred-new",children:t("form",{class:"cred-add",method:"post",onSubmit:e=>{e.preventDefault();let n=e.currentTarget,o=new FormData(n),d=String(o.get("env")??"").trim(),S=String(o.get("key")??"").trim();!d||!S||c.run("add",async()=>{k(await r.connections.add({name:d,provider:"env",key:S,keyIn:{env:d},...g?{owner:"me"}:{}})),n.reset(),v(!1)},{toast:"Not saved"})},children:[t("input",{name:"env",class:"mono cred-var","aria-label":"Secret variable",placeholder:"STRIPE_SECRET_KEY",pattern:"[A-Za-z_][A-Za-z0-9_]*",autocomplete:"off",spellcheck:!1,required:!0}),t("input",{name:"key",type:"password","aria-label":"Secret value",placeholder:"Value",autocomplete:"off","aria-busy":i,required:!0}),p&&!u?t(T,{label:"Who can use this secret",options:N,value:g,onChange:D}):null,t(l,{type:"submit",loading:i,children:"Add"})]})}):null]})})}export{G as TaskSecrets};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$1a as t,$1e as f}from"./shared-init-f475017dd5811e33.js";function w({label:d,options:n,value:a,onChange:s,link:l,class:i,disabled:m,children:c}){if(!s)return t("div",{class:i?`seg-btns ${i}`:"seg-btns",role:"group","aria-label":d,children:[n.map(([e,r])=>l?t(f,{...l(e),"aria-current":e===a?"page":void 0,children:r},e):t("a",{children:r},e)),c]});let u=Math.max(0,n.findIndex(([e])=>e===a));return t("div",{class:i?`seg-btns ${i}`:"seg-btns",role:"radiogroup","aria-label":d,onKeyDown:e=>{let r=e.currentTarget.closest("form");if(e.key==="Enter"&&r)return e.preventDefault(),r.requestSubmit();let o={ArrowRight:1,ArrowDown:1,ArrowLeft:-1,ArrowUp:-1}[e.key];if(!o)return;e.preventDefault();let p=(u+o+n.length)%n.length;s(n[p][0]),e.currentTarget.children[p]?.focus()},children:n.map(([e,r],o)=>t("button",{type:"button",role:"radio","aria-checked":e===a,tabIndex:o===u?0:-1,disabled:m,onClick:()=>s(e),children:r},e))})}export{w as a};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{$1L as mt,$1N as gt,$1a as B,$1b as vt,$1t as bt}from"./shared-init-f475017dd5811e33.js";import{$3e as wt,$3j as yt,$3l as $t,$3n as kt}from"./shared-init-6e12333f12903a62-2.js";function xt({open:e=!0,class:t,tone:n,title:r,icon:s,dismiss:o,busy:c,cancel:l="Cancel",cancelDanger:d,focus:h="cancel",actions:p,onSubmit:g,onClose:L,children:_}){let x=$t(null),$=kt();yt(()=>{let w=x.current;e&&!w.open?w.showModal():!e&&w.open&&w.close()},[e]);let b=()=>!c&&x.current.close(),S=wt(p).length===0;return B("dialog",{ref:x,class:["modal",t,n&&`tone ${n}`].filter(Boolean).join(" "),"aria-labelledby":$,onClose:L,onCancel:w=>{w.preventDefault(),b()},onClick:w=>w.target===w.currentTarget&&b(),children:B("form",{method:g?void 0:"dialog",onSubmit:g,children:[B("header",{children:[s?B(vt,{d:s}):null,B("h2",{id:$,children:r}),o?B(gt,{icon:bt,label:"Close",onClick:b}):null]}),_,B("div",{class:"actions",children:[B(mt,{variant:S?"primary":"ghost",danger:!S&&d,disabled:c,autofocus:h==="cancel",onClick:b,children:l}),p]})]})})}import{$1L as ae,$1N as Et,$1a as m,$1b as Lt,$1x as Ct,$1z as St}from"./shared-init-f475017dd5811e33.js";import{$3h as re,$3j as V,$3l as H,$3n as Ae}from"./shared-init-6e12333f12903a62-2.js";function Pt({id:e,title:t,count:n,actions:r,tone:s,children:o}){return m("section",{id:e,class:s?`card frame ${s}`:"card frame",children:[t?m("div",{class:"bar",children:[m("h2",{children:[t,n!==void 0?m("span",{class:"n",children:n}):null]}),r?m("span",{class:"bar-r",children:r}):null]}):null,o]})}function _t({title:e,note:t,actions:n,open:r="Add",opened:s,children:o}){return m("details",{class:"card frame fold",open:s,children:[m("summary",{class:"bar",children:[m("h2",{children:e}),m("span",{class:"fold-note",children:t}),n?m("span",{class:"bar-r",children:n}):null,m(ae,{as:"span",variant:"outline",size:"sm",class:"fold-open",leftIcon:r==="Add"?St:void 0,children:r}),m(ae,{as:"span",variant:"ghost",size:"sm",class:"fold-close",children:"Close"})]}),o]})}function Tt({title:e,children:t}){return m("div",{class:"empty",children:[m("b",{children:e}),t?m("span",{children:t}):null]})}function It({label:e,inline:t,dots:n,late:r,h:s}){return m(t?"span":"div",{class:["loading",t&&"inline",r&&"late"].filter(Boolean).join(" "),role:"status",style:s?`--h:${s}px`:void 0,children:m("span",{children:[n?m("i",{class:"dots",children:[m("b",{}),m("b",{}),m("b",{})]}):m("i",{class:"spin"}),e]})})}var Re=e=>`${history.state?.__pnextEntry??location.pathname}|${e}`,jt=e=>history.state?.coderPages?.[e],Dt=(e,t)=>history.replaceState({...history.state,coderPages:{...history.state?.coderPages,[e]:t}},""),Mt=6e4,Y=(e,t)=>({query:e,rows:t.items,next:t.next,meta:t});function Ot({name:e,query:t,first:n,initial:r,root:s,fetchPage:o}){let c=H(new Map([[r,{page:n,at:Date.now()}]])),[l,d]=re(()=>Y(r,n)),[h,p]=re(""),[g,L]=re(!1),_=H(null),x=H(l);x.current=l;let $=H(void 0),b=H(void 0),S=(a,f,u)=>{let v=`${f}|${a}`;if($.current?.key===v)return;let k={key:v};$.current=k,p(""),L(!0);let C=Re(e),P=u?void 0:c.current.get(f);P&&Date.now()-P.at<Mt&&d(Y(f,P.page)),o(a).then(T=>{$.current===k&&(u||c.current.set(f,{page:T,at:Date.now()}),p(""),b.current=void 0,d(j=>{if(u&&(j.query!==f||j.next!==a))return j;let J=u&&j.query===f?{...j,rows:[...j.rows,...T.items],next:T.next}:Y(f,T);return Re(e)===C&&Dt(e,J),J}))}).catch(T=>{$.current===k&&(b.current=()=>S(a,f,u),p(T instanceof Error?T.message:String(T)))}).finally(()=>{$.current===k&&($.current=void 0,L(!1))})};V(()=>()=>{$.current=void 0},[]);let w=H(n);return V(()=>{w.current!==n&&(w.current=n,$.current=void 0,L(!1),c.current.set(r,{page:n,at:Date.now()}),d(Y(r,n)))},[n]),V(()=>{$.current=void 0,b.current=void 0,p(""),L(!1);let a=jt(e);if(a&&a.query===t&&a.rows.length>x.current.rows.length){d(a);return}t!==x.current.query&&S("",t,!1)},[t]),V(()=>{let a=_.current;if(!a||!l.next||h)return;let f=new IntersectionObserver(([u])=>{u?.isIntersecting&&x.current.next&&x.current.query===t&&S(x.current.next,t,!0)},{root:s?.()??null,rootMargin:"0px 0px 300px 0px"});return f.observe(a),()=>f.disconnect()},[l.next,l.rows.length,t,h]),{rows:l.rows,meta:l.meta,more:!!l.next,busy:g,error:h,stale:g&&l.query!==t,sentinel:_,retry:()=>{p(""),b.current?.()}}}function le(e){let t=new URL(location.href);for(let[n,r]of Object.entries(e))r?t.searchParams.set(n,r):t.searchParams.delete(n);history.replaceState(history.state,"",t)}function ie(e){let t=new URLSearchParams(location.search);return Object.fromEntries(e.map(n=>[n,t.get(n)??""]))}var Rt=20,K=20;function oe({summary:e,summaryClass:t,button:n,label:r,tip:s,align:o="right",wide:c,class:l,children:d}){let h=Ae();return m("span",{class:`menu ${o}${l?` ${l}`:""}`,children:[n==="icon"?m(Et,{popovertarget:h,label:r??"",children:e}):n?m(ae,{...n,popovertarget:h,"aria-label":r,title:s?void 0:r,children:e}):m("button",{popovertarget:h,type:"button",class:t,"aria-label":r,title:s?void 0:r,"data-tip":s,children:e}),m("div",{id:h,class:c?"pop wide":"pop",popover:"auto",onBeforeToggle:p=>{if(p.newState!=="open")return;let g=p.currentTarget,L=g.parentElement?.querySelector("button")?.getBoundingClientRect();if(!L)return;g.style.cssText="display: block; visibility: hidden; max-height: none";let _=g.offsetHeight;g.style.cssText="";let x=window.innerHeight-L.bottom-20,$=L.top-20,[b,S]=o==="up"?[$,x]:[x,$],w=_>b&&S>b;g.classList.toggle("flip",w),g.style.maxHeight=`${Math.max(120,Math.round(w?S:b))}px`},onClick:p=>{p.target.closest("a, button:not([data-keep])")&&p.currentTarget.hidePopover()},children:d})]})}function ce({label:e,title:t,class:n,children:r}){let s=Ae(),o=H(null),c=H(),l=d=>h=>{h.pointerType==="mouse"&&(clearTimeout(c.current),d?o.current.togglePopover(!0):c.current=setTimeout(()=>o.current?.togglePopover(!1),150))};return m("span",{class:n?`more ${n}`:"more",onPointerEnter:l(!0),onPointerLeave:l(!1),children:[m("button",{popovertarget:s,type:"button","aria-label":t,children:e}),m("div",{id:s,ref:o,class:"more-list scroll-box",popover:"auto",children:r})]})}var At=({label:e,children:t})=>m(ce,{label:m(Lt,{d:Ct}),title:e,class:"info",children:t}),Ne=5,se=3;function Nt({tone:e,title:t,onClick:n,href:r,external:s,class:o,children:c}){let l=["badge",e,o].filter(Boolean).join(" ");return r?m("a",{class:l,href:r,title:t,...s?{target:"_blank",rel:"noopener noreferrer"}:{},children:c}):n?m("button",{type:"button",class:l,title:t,onClick:n,children:c}):m("span",{class:l,title:t,children:c})}function G({onClick:e,children:t,...n}){return e?m("button",{...n,type:"button",class:"chip",onClick:e,children:t}):m("span",{class:"chip",children:t})}function qt({values:e,label:t,children:n}){if(n)return m("span",{class:"chips",role:"group","aria-label":t,children:n});let r=(e??[]).filter(c=>!!c);if(!r.length)return m("span",{class:"muted",children:"None"});let s=c=>m(G,{children:c},c),o=r.length>=Ne;return m("span",{class:"chips",children:[(o?r.slice(0,se):r).map(s),o?m(ce,{label:`+${r.length-se}`,children:m("span",{class:"chips",children:r.map(s)})}):null]})}function Bt({value:e,title:t}){return m("span",{class:"id",title:t??e,children:e})}import{f as Ht,i as Ut,j as qe,k as Be}from"./wular-pnext-6e12333f12903a62-0.js";import{$1D as zt,$1a as i,$1b as z,$1d as Ft,$1e as ve,$1i as We,$1j as Wt,$1k as Jt,$1t as Kt,$1u as Je,$1z as Xt}from"./shared-init-f475017dd5811e33.js";import{$2a as Ke,$2b as Vt}from"./shared-init-6e12333f12903a62-2.js";import{$0a as Yt,$0d as Gt}from"./shared-init-6e12333f12903a62-2.js";import{$3a as Qt,$3c as A,$3h as M,$3j as N,$3k as he,$3l as U,$3n as Zt}from"./shared-init-6e12333f12903a62-2.js";var Q=class extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}},en=class extends URLSearchParams{append(){throw new Q}delete(){throw new Q}set(){throw new Q}sort(){throw new Q}};Ht();function be(){return tn}var tn={push(e,...[t]){ze(de(e,t),"push",t?.scroll)},replace(e,...[t]){ze(de(e,t),"replace",t?.scroll)},prefetch(e,...[t]){Vt(de(e,t),{strict:!0,full:t?.kind==="full",onInvalidate:t?.onInvalidate})},refresh(){Ke(window.location.href,{replace:!0,scroll:!1})},back(){window.history.back()},forward(){window.history.forward()},get bfcacheId(){return Xe().bfcacheId??""}};function de(e,t){return nn(t)?Ft(e,t):String(e)}function nn(e){return!!(e&&("params"in e||"search"in e||"hash"in e))}function we(){return ye().pathname}function rn(){return new en(ye().search)}function an(){return ye(),Xe().params??{}}function sn(){let e=Qt,t=e.__h,n;e.__h=(o,...c)=>{n=o.__P,t?.(o,...c)};let[r,s]=M(!1);return e.__h=t,N(()=>{let o=n?.closest("a[data-pnext-link]");if(!o)return;let c=o.__pnextHints??=new Set;return c.add(s),()=>c.delete(s)},[]),{pending:r}}function ye(){let e=Ue(),[,t]=M(()=>He(e));return N(()=>{ln();let n=()=>t(r=>{let s=He(Ue());return r===s?r:s});return qe().add(n),n(),()=>qe().delete(n)},[]),e}function He(e){return`${e.pathname}${e.search}${e.hash}`}function Ue(){return{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}}function Xe(){let e=history.state??{},t=window.__PNEXT_ROUTE__??{},n=typeof e.__pnextBfcacheId=="string"?e.__pnextBfcacheId:void 0;return n?{...t,bfcacheId:n}:t}function ze(e,t,n=!0){if(Gt(e))return;let r=new URL(e,window.location.href);if(r.origin!==window.location.origin){let s=globalThis;s.__pnextMpaNavigation=(s.__pnextMpaNavigation??0)+1,requestAnimationFrame(()=>requestAnimationFrame(()=>{t==="replace"?window.location.replace(r.href):window.location.assign(r.href)}));return}if(r.pathname!==window.location.pathname||r.search!==window.location.search){Ke(r.href,{replace:t==="replace",scroll:n});return}t==="replace"?window.history.replaceState(history.state,"",r):window.history.pushState(history.state,"",r),Ut(r,{scroll:n}),Yt.settleLink?.()}function ln(){if(window.__PNEXT_HISTORY_PATCHED__)return;window.__PNEXT_HISTORY_PATCHED__=!0;let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history);function n(r){let s=window.history.state??{},o={};for(let l of Object.keys(s))l.startsWith("__pnext")&&(o[l]=s[l]);if(Object.keys(o).length===0)return r;let c=r??{};return Object.keys(c).some(l=>l.startsWith("__pnext"))?r:{...c,...o}}window.history.pushState=function(r,s,o){let c=window.location.href,l=e(n(r),s,o);return window.location.href!==c&&Be(),l},window.history.replaceState=function(r,s,o){let c=window.location.href,l=t(n(r),s,o);return window.location.href!==c&&Be(),l}}var Ve={agents:{title:"Agents",lead:"Each agent listens on the platforms it declares and answers as itself."},tasks:{title:"Tasks"},newAgent:{title:"New agent",lead:"Start from a template or a repository. Everything but the name has a sensible default."},usage:{title:"Usage",lead:"Tasks, runner time, and tokens by agent. Pick a range, or open an agent for its breakdown."}};function $e(){let e=U(null);return N(()=>{let t=e.current,n=t.nextElementSibling??t.parentElement.nextElementSibling,r=n.closest(".page"),s=()=>{let h=n.classList.contains("stuck"),p=n.offsetHeight;n.classList.toggle("stuck",!h);let g=n.offsetHeight;return n.classList.toggle("stuck",h),Math.max(0,h?g-p:p-g)},o,c=()=>{o?.disconnect();let h=56-s();o=new IntersectionObserver(([p])=>{let g=!p.isIntersecting&&p.boundingClientRect.top<h;if(g===n.classList.contains("stuck"))return;let L=n.offsetHeight;r&&(r.style.paddingBottom=`${L}px`),n.classList.toggle("stuck",g),n.style.marginBottom=g?`${L-n.offsetHeight}px`:"",r&&(r.style.paddingBottom="")},{rootMargin:`${-h}px 0px 0px 0px`}),o.observe(t)};c();let l=n.offsetWidth,d=new ResizeObserver(()=>{r?.style.setProperty("--head",`${n.offsetHeight}px`),n.offsetWidth!==l&&(l=n.offsetWidth,c())});return d.observe(n,{box:"border-box"}),()=>{o?.disconnect(),d.disconnect(),r?.style.removeProperty("--head")}},[]),i("i",{class:"sentinel",ref:e})}var Z=(...e)=>["pop-item",...e].filter(Boolean).join(" ");function ee({icon:e,sub:t,end:n,children:r}){return i(A,{children:[typeof e=="string"?i(z,{d:e}):e,i("span",{class:"grow",children:[r,t?i("small",{children:t}):null]}),n]})}function pe({icon:e,title:t,sub:n,end:r,href:s,type:o="button",disabled:c,danger:l,...d}){let h=Z(n?"rich":!1,l&&"danger"),p=i(ee,{icon:e,sub:n,end:r,children:t});return c?i("div",{class:h,"aria-disabled":"true",children:p}):s?i("a",{...d,class:h,href:s,children:p}):i("button",{...d,type:o,class:h,children:p})}function on({icon:e,sub:t,end:n,class:r,children:s,...o}){return i(ve,{...o,class:Z(t?"rich":!1,r),children:i(ee,{icon:e,sub:t,end:n,children:s})})}function fe({on:e,onPick:t,href:n,disabled:r,icon:s,sub:o,end:c,children:l}){let d={role:"menuitemradio","aria-checked":e,class:Z(e&&"on",o?"rich":!1)},h=i(ee,{icon:s,sub:o,end:i(A,{children:[c,i(z,{d:Je})]}),children:l});return r?i("div",{...d,"aria-disabled":"true",children:h}):n?i("a",{href:n,...d,children:h}):i("button",{type:"button",...d,onClick:t,children:h})}function me({active:e,selected:t,check:n,icon:r,sub:s,end:o,class:c,children:l,...d}){return i("div",{...d,role:"option","aria-selected":t,class:Z(e&&"on",c),children:i(ee,{icon:r,sub:s,end:i(A,{children:[o,n?i(z,{d:Je}):null]}),children:l})})}var ke=({children:e,...t})=>i("p",{...t,class:"pop-label",children:e}),ge=({children:e})=>i("p",{class:"pop-note",children:e}),cn=({children:e})=>i("div",{class:"pop-row",children:e});function Ye({panelRef:e,class:t,children:n,...r}){return i("div",{...r,ref:e,class:t?`pop ${t}`:"pop",children:n})}var Ge=e=>new URLSearchParams(Object.entries(e).filter(([,t])=>t)).toString();function dn(e){let[t,n]=M(e),[r,s]=M(e),o=U();return N(()=>{let c=ie(Object.keys(e));Object.keys(e).some(l=>c[l]!==e[l])&&(n(c),s(c))},[]),N(()=>()=>clearTimeout(o.current),[]),{values:t,set:(c,l,d=0)=>{let h={...t,[c]:l};n(h),clearTimeout(o.current);let p=()=>{s(h),le(h)};d?o.current=setTimeout(p,d):p()},query:Ge(r)}}function Qe({value:e,label:t,onInput:n,disabled:r,...s}){return i("label",{class:"search","aria-hidden":r||void 0,children:[i(z,{d:zt}),i("input",{...s,type:"search",value:e,placeholder:t,"aria-label":t,disabled:r,tabIndex:r?-1:void 0,onInput:o=>n?.(o.currentTarget.value)})]})}function un({head:e,action:t,children:n}){return e?i(A,{children:[i($e,{}),i("header",{class:"head tools",children:[i("div",{children:[i("h1",{children:e.title}),e.lead?i("p",{class:"lead",children:e.lead}):null]}),i("div",{class:"filters",children:n}),t?i("div",{class:"actions",children:t}):null]})]}):i("div",{class:"filters",children:[n,t?i("span",{class:"end",children:t}):null]})}var Ze="coder:filters",hn=5,ue=5;function pn(e,t){if(e.length<=ue)return e;let n=e.slice(0,ue),r=e.find(([s])=>s===t);return r&&!n.includes(r)?[...n.slice(0,ue-1),r]:n}var fn=e=>e.options.filter(([t])=>t).length>=hn;function mn(e,t,n={}){return t?e.options.find(([r])=>r===t)?.[1]??n[`${e.key}:${t}`]??t:"Any"}function gn(e,t,n={}){return e.filter(r=>t[r.key]).map(r=>{let s=mn(r,t[r.key],n);return{key:r.key,text:r.inline?s:`${r.label}: ${s}`}})}function vn(e,t,n){let r=n.trim().toLowerCase(),s=t.filter(([,c])=>c.toLowerCase().includes(r)),o=[...s,...e.filter(([c])=>!s.some(([l])=>l===c))];return{shown:o.slice(0,K),more:o.length>K}}function xe(){try{return JSON.parse(localStorage.getItem(Ze)??"{}")??{}}catch{return{}}}function bn(e,t){let n=xe();n[e]=[t,...(n[e]??[]).filter(([r])=>r!==t[0])].slice(0,5),localStorage.setItem(Ze,JSON.stringify(n))}function wn({name:e,facets:t,values:n,onChange:r}){let[s,o]=M({}),c=(d,h)=>o(p=>({...p,...Object.fromEntries(h.map(([g,L])=>[`${d}:${g}`,L]))}));N(()=>{let d=xe();for(let h of t)c(h.key,d[`${e}:${h.key}`]??[])},[]);let l=gn(t,n,s);return i(A,{children:[i(oe,{class:"filter-more",summaryClass:`field-btn${l.length?" on":""}`,summary:l.length?`Filter \xB7 ${l.length}`:"Filter",children:i(yn,{name:e,facets:t,values:n,seen:s,onFound:c,onPick:(d,[h,p])=>{!d.inline&&h!==n[d.key]&&(bn(`${e}:${d.key}`,[h,p]),c(d.key,[[h,p]])),r(d.key,d.inline||h!==n[d.key]?h:"")}})}),i("span",{class:"filter-chips",children:l.map(d=>i(G,{title:d.text,"aria-label":`Clear ${d.text}`,onClick:()=>r(d.key,""),children:[i("span",{class:"grow",children:d.text}),i(z,{d:Kt})]},d.key))})]})}function yn({name:e,facets:t,values:n,seen:r,onFound:s,onPick:o}){let c=U(null),[l,d]=M(),[h,p]=M(""),[g,L]=M(),_=U(0),x=U(),$=h.trim(),b=u=>c.current?.querySelector(u)?.focus(),S=u=>{u&&(x.current=u.key),d(u),p(""),L(void 0)};N(()=>{let u=c.current.closest("[popover]"),v=k=>{k.newState==="open"?b("button"):S()};return u.addEventListener("toggle",v),()=>u.removeEventListener("toggle",v)},[]),N(()=>{c.current?.closest(":popover-open")&&b(l?"input":`[data-facet="${x.current}"]`)},[l]),N(()=>{if(!l?.search||!$)return;let u=++_.current,v=setTimeout(()=>void l.search($,K+1).then(k=>{_.current===u&&(L(k),s(l.key,k))},()=>_.current===u&&L([])),200);return()=>clearTimeout(v)},[l,$]);let w=l?l.search&&$?g??[]:l.options.filter(([u,v])=>u&&v.toLowerCase().includes($.toLowerCase())):[],a=l?vn(w,xe()[`${e}:${l.key}`]??[],$):{shown:[],more:!1},f=!!(l?.search&&$&&!g);return i("div",{ref:c,class:"filter-panel",onKeyDown:u=>{let v=[...c.current.querySelectorAll("input, button")],k=v.indexOf(document.activeElement),C=u.target,P=u.key;if(P==="ArrowDown")v[(k+1)%v.length]?.focus();else if(P==="ArrowUp")v[(k-1+v.length)%v.length]?.focus();else if(P==="ArrowRight"&&C.dataset.facet)C.click();else if(P==="ArrowLeft"&&l&&C.tagName!=="INPUT")S();else if(P==="Enter"&&C.tagName==="INPUT")b("[role=menuitemradio]");else if(P==="Escape"&&l)u.stopPropagation(),S();else return;u.preventDefault()},children:l?i(A,{children:[i(pe,{"data-keep":!0,icon:We,title:l.label,onClick:()=>S()}),fn(l)?i(Qe,{value:h,label:`Find ${l.label.toLowerCase()}`,autocomplete:"off",onInput:p}):null,i("div",{role:"group","aria-label":l.label,"aria-busy":f,children:a.shown.map(([u,v])=>i(fe,{icon:l.icon?.(u),on:n[l.key]===u,onPick:()=>o(l,[u,v]),children:v},u))}),a.more?i(ge,{children:"Type to find more."}):!a.shown.length&&!f?i(ge,{children:"Nothing matches."}):null]}):t.map(u=>{let v=u.options.filter(([C])=>u.inline||C);if(!v.length)return null;let k=pn(v,n[u.key]);return i(A,{children:[i(ke,{children:u.label}),i("div",{role:"group","aria-label":u.label,children:k.map(([C,P])=>i(fe,{icon:u.icon?.(C),on:n[u.key]===C,onPick:()=>o(u,[C,P]),children:P},C))}),v.length>k.length?i(pe,{"data-keep":!0,"data-facet":u.key,"aria-haspopup":"true",title:"More",end:i(A,{children:[i("span",{class:"muted",children:v.length-k.length}),i(z,{d:Jt})]}),onClick:()=>S(u)}):null]},u.key)})})}var Fe=10;function et(e,t,n,r,s=[]){let[o,c]=M("");return he(()=>{if(!n)return;t.current?.showPopover();let l=()=>{let d=e.current?.getBoundingClientRect(),h=t.current;if(!d||!h)return;let p=innerHeight-d.bottom-12,g=p<Math.min(h.scrollHeight,240)&&d.top>p;c(`left:${Math.round(Math.min(d.left,innerWidth-h.offsetWidth-8))}px;min-width:${Math.round(d.width)}px;`+(g?`bottom:${Math.round(innerHeight-d.top+4)}px;max-height:${Math.round(Math.min(r,d.top-12))}px`:`top:${Math.round(d.bottom+4)}px;max-height:${Math.round(Math.min(r,p))}px`))};return l(),addEventListener("resize",l),addEventListener("scroll",l,!0),()=>{removeEventListener("resize",l),removeEventListener("scroll",l,!0)}},[n,...s]),o}function $n({label:e,options:t,value:n,defaultValue:r,onChange:s,onFocus:o,name:c,disabled:l,headings:d,subs:h,icons:p,action:g}){let[L,_]=M(r??t[0]?.[0]??""),x=Math.max(0,t.findIndex(([y])=>y===(n??L))),$=t[x]?.[0]??"",[b,S]=M(!1),[w,a]=M(x),f=U(null),u=U(null),v=et(f,u,b,560),k=U({text:"",at:0}),C=Zt(),P=(y=x)=>{a(y),S(!0)},T=(y=!0)=>{S(!1),y&&f.current?.focus()},j=y=>{if(g&&y===t.length){T(),g.onPick();return}let I=t[y]?.[0];T(),!(I===void 0||I===$)&&(n===void 0&&_(I),s?.(I))},J=(y,I)=>{let E=Date.now(),D=E-k.current.at>600?y:k.current.text+y;k.current={text:D,at:E};let Me=/^(.)\1*$/.test(D)?D[0]:D,ft=Me.length===1?I+1:I;for(let ne=0;ne<t.length;ne++){let Oe=(ft+ne)%t.length;if(t[Oe][1].toLowerCase().startsWith(Me.toLowerCase()))return Oe}return-1},pt=y=>{let I=t.length-1+(g?1:0),E=y.key;if(!b){if(["ArrowDown","ArrowUp","Enter"," "].includes(E))P();else if(E==="Home")P(0);else if(E==="End")P(I);else if(E.length===1&&!y.ctrlKey&&!y.metaKey){let D=J(E,x);if(D>=0)P(D);else return}else return;y.preventDefault();return}if(E==="ArrowDown")a(Math.min(I,w+1));else if(E==="ArrowUp"&&y.altKey)j(w);else if(E==="ArrowUp")a(Math.max(0,w-1));else if(E==="Home")a(0);else if(E==="End")a(I);else if(E==="PageDown")a(Math.min(I,w+Fe));else if(E==="PageUp")a(Math.max(0,w-Fe));else if(E==="Enter"||E===" "&&Date.now()-k.current.at>600)j(w);else if(E==="Escape")y.stopPropagation(),T();else if(E==="Tab"){j(w);return}else if(E.length===1&&!y.ctrlKey&&!y.metaKey){let D=J(E,w);D>=0&&a(D)}else return;y.preventDefault()};return he(()=>{if(!b)return;let y=I=>{let E=I.target;!f.current?.contains(E)&&!u.current?.contains(E)&&T(!1)};return document.addEventListener("pointerdown",y),()=>document.removeEventListener("pointerdown",y)},[b]),he(()=>{b&&u.current?.querySelector(`[data-index="${w}"]`)?.scrollIntoView({block:"nearest"})},[b,w,v]),i("span",{class:"select",children:[i("button",{ref:f,type:"button",role:"combobox","data-keep":!0,"aria-label":e,"aria-haspopup":"listbox","aria-expanded":b,"aria-controls":`${C}-list`,"aria-activedescendant":b?`${C}-${w}`:void 0,disabled:l,onFocus:o,onPointerDown:o,onClick:y=>{y.preventDefault(),b?T():P()},onKeyDown:pt,children:[p?.[$]??null,i("span",{class:"grow",children:t[x]?.[1]??""}),i(z,{d:Wt})]}),c?i("input",{type:"hidden",name:c,value:$}):null,b?i(tt,{id:C,label:e,listRef:u,place:v,children:[t.map(([y,I],E)=>i(A,{children:[d?.[y]?i(ke,{children:d[y]}):null,i(me,{id:`${C}-${E}`,"data-index":E,active:E===w,selected:E===x,check:!0,icon:p?.[y],sub:h?.[y]?i("bdi",{dir:"ltr",children:h[y]}):null,onPointerMove:()=>E!==w&&a(E),onClick:D=>{D.preventDefault(),j(E)},children:I})]},y)),g?i(me,{id:`${C}-${t.length}`,"data-index":t.length,active:w===t.length,selected:!1,class:"action",icon:g.icon??Xt,onPointerMove:()=>w!==t.length&&a(t.length),onClick:y=>{y.preventDefault(),j(t.length)},children:g.label}):null]}):null]})}var tt=({id:e,label:t,listRef:n,place:r,children:s})=>i(Ye,{panelRef:n,id:`${e}-list`,class:"select-pop",popover:"manual",role:"listbox","aria-label":t,style:r||"visibility:hidden",onMouseDown:o=>o.preventDefault(),children:s}),Ee=e=>e,kn=e=>{let t=e.params??{};return e.href.replace(/\[([^\]]+)\]/g,(n,r)=>encodeURIComponent(String(t[r]??"")))};function xn(e,t){let n=new URLSearchParams((e instanceof URLSearchParams,e));for(let[r,s]of Object.entries(t))n.set(r,s);return n}function En(e){if(!e?.startsWith("/"))return;let t=new URL(e,"http://dash");if(t.origin!=="http://dash"||!/^\/dash(\/|$)/.test(t.pathname))return;let[,,,n,r]=t.pathname.split("/"),s=Ve[n]?.title??"Back";if(n==="tasks"&&r&&(s="Task"),n==="agents"&&r)try{s=decodeURIComponent(r)}catch{}return{to:{href:t.pathname,search:t.searchParams},label:s}}function nt({label:e,back:t,named:n,...r}){let s=En(t),o=n??s?.label??e;return i(ve,{class:"back","aria-label":o,...Ee(s?.to??r),children:[i(z,{d:We}),i("span",{children:o})]})}function Ln({title:e,lead:t,actions:n,meta:r,back:s}){return i(A,{children:[i($e,{}),i("header",{class:"head",children:[i("div",{children:[s,i("div",{class:"title-row",children:[i("h1",{children:e}),r?i("div",{class:"meta",children:r}):null]}),t?i("p",{class:"lead",children:t}):null]}),n?i("div",{class:"actions",children:n}):null]})]})}var F=()=>an().org;function Cn({href:e,params:t,...n}){return i(ve,{...n,...Ee({href:e,params:{...t,org:F()}})})}function Sn({href:e,label:t}){return i(nt,{href:e,params:{org:F()},label:t})}import{$0b as Pn,$0c as _n}from"./shared-init-f475017dd5811e33.js";import{$1a as O,$1e as Tn}from"./shared-init-f475017dd5811e33.js";import{$3h as W,$3j as R,$3l as q}from"./shared-init-6e12333f12903a62-2.js";function lt({status:e}){return O("span",{class:`st ${e}`,children:[O("i",{}),it[e]??e]})}var it={queued:"waiting for slot",running:"running",waiting:"needs approval",completed:"completed",failed:"failed",cancelled:"cancelled"},X="coder:watched",ot="coder:notify",te="coder:toast",De=new Set(["completed","failed","cancelled"]),In=new Set([...De,"waiting"]),jn=20,rt=3,Dn=8e3,at="coder:events",Le="coder:task",Ce="coder:task-replay",Se="coder:task-reset",Pe="coder:task-resync",_e="coder:task-counts",Te="coder:task-counts-replay",Ie="coder:runners",Mn=6e4,On=200,je=()=>{try{return JSON.parse(localStorage.getItem(X)??"{}")??{}}catch{return{}}},ct=e=>{let t=Object.entries(e).sort(([,n],[,r])=>r.at-n.at).slice(0,jn);localStorage.setItem(X,JSON.stringify(Object.fromEntries(t))),dispatchEvent(new Event(X))},dt=(e,t,n)=>dispatchEvent(new CustomEvent(te,{detail:{title:e,line:t,tone:n}})),Rn=(e,t)=>dt(e,t,"error");function ut(e,t,n){let r=je(),s=r[e];!s&&De.has(t)||s?.status===t&&(!n||s.title===n)||(r[e]={title:n||s?.title||e,status:t,at:s?.at??Date.now(),org:s?.org??location.pathname.split("/")[2]},ct(r))}var st=e=>/^\/dash\/[^/]+\/tasks\/([^/]+)$/.exec(e)?.[1];function An(e){let t=s=>typeof s=="string"?s.trim().split(`
|
|
2
|
+
`)[0]:"",n=e.approval??{},r=typeof e.result=="object"?e.result?.output:e.result;return e.status==="waiting"?t(n.summary)||t(n.reason)||t(n.kind)||"It is waiting for your approval.":e.status==="completed"?t(r)||"It finished.":t(e.error)||(e.status==="failed"?"It failed.":"It was stopped.")}function ht(e,t,n){let r=q({on:e,reset:t,resync:n});r.current={on:e,reset:t,resync:n},R(()=>{let s=l=>r.current.on(l.detail),o=()=>r.current.reset?.(),c=()=>r.current.resync?.();return addEventListener(Le,s),addEventListener(Se,o),addEventListener(Pe,c),dispatchEvent(new CustomEvent(Ce,{detail:l=>r.current.on(l)})),()=>{removeEventListener(Le,s),removeEventListener(Se,o),removeEventListener(Pe,c)}},[])}function Nn(e,t,n){let r=q(e);r.current=e;let s=q(),o=[...e].sort().join(",");R(()=>{let c=new Map,l=a=>{c.delete(a.id),c.set(a.id,a),c.size>On&&c.delete(c.keys().next().value),dispatchEvent(new CustomEvent(Le,{detail:a}))},d=a=>{for(let f of c.values())a.detail(f)};addEventListener(Ce,d);let h,p=a=>h&&a.detail(h);addEventListener(Te,p);let g=typeof BroadcastChannel<"u"&&navigator.locks?new BroadcastChannel(`${at}:${n}`):void 0,L=new AbortController,_,x=()=>{},$,b=a=>{_=a.id??_,a.event&&l(a.event),a.counts&&(h=a.counts,dispatchEvent(new CustomEvent(_e,{detail:h}))),a.runners&&dispatchEvent(new CustomEvent(Ie,{detail:a.runners})),a.resync&&dispatchEvent(new Event(Pe)),a.reset&&(c.clear(),dispatchEvent(new Event(Se)))};g?.addEventListener("message",({data:a})=>{if(!a.hello)return b(a);$??=setTimeout(()=>{$=void 0,s.current?.abort.abort(),x()},300)}),g?.postMessage({hello:!0});let S=async()=>{t.current=!0;let a=setInterval(()=>{g?.postMessage({resync:!0}),b({resync:!0})},Mn);try{await w()}finally{clearInterval(a)}},w=async()=>{for(;!L.signal.aborted;){let a=new AbortController,f=()=>a.abort();L.signal.addEventListener("abort",f);let u=r.current;s.current={key:[...u].sort().join(","),abort:a};let v=1e3;try{let k=await _n.tasks.events(u,_,a.signal);if(k.status===404)return void(t.current=!1);if(!k.ok||!k.body)v=[401,403].includes(k.status)?6e4:5e3;else for await(let{event:C,data:P,id:T}of Pn(k.body)){if(a.signal.aborted)break;let j={...T?{id:T}:{},...C==="task"?{event:JSON.parse(P)}:{},...C==="counts"?{counts:JSON.parse(P)}:{},...C==="runners"?{runners:JSON.parse(P)}:{},...C==="reset"?{reset:!0}:{}};g?.postMessage(j),b(j)}}catch(k){a.signal.aborted||console.error("coder dashboard: events",k)}L.signal.removeEventListener("abort",f),!a.signal.aborted&&(await new Promise(k=>{let C=setTimeout(k,v);x=()=>{clearTimeout(C),k()}}),x=()=>{})}};return g?navigator.locks.request(`${at}:${n}`,{signal:L.signal},S).catch(a=>{L.signal.aborted||console.error("coder dashboard: events",a)}):S(),()=>{L.abort(),x(),clearTimeout($),g?.close(),removeEventListener(Ce,d),removeEventListener(Te,p)}},[]),R(()=>{s.current&&s.current.key!==o&&s.current.abort.abort()},[o])}function qn(e){let t=q(e);t.current=e,R(()=>{let n=r=>t.current(r.detail);return addEventListener(Ie,n),()=>removeEventListener(Ie,n)},[])}function Bn(){let[e,t]=W();return R(()=>{let n=r=>t(r.detail.active);return addEventListener(_e,n),dispatchEvent(new CustomEvent(Te,{detail:r=>t(r.active)})),()=>removeEventListener(_e,n)},[]),e?O("span",{class:"n",title:`${e} active`,children:e}):null}function Hn({toast:e,paused:t,dismiss:n}){let r=F(),s=q(Dn);return R(()=>{if(t)return;let o=Date.now(),c=setTimeout(()=>n(e.key),s.current);return()=>{clearTimeout(c),s.current-=Date.now()-o}},[t]),O("div",{class:e.tone?`toast ${e.tone}`:"toast",onClick:()=>n(e.key),children:[O("p",{class:"toast-head",children:[e.id?O(Tn,{class:"cover",href:"/dash/[org]/tasks/[id]",params:{org:r,id:e.id},children:e.title}):O("span",{class:"cover",children:e.title}),e.status?O(lt,{status:e.status}):null]}),O("p",{class:"toast-line",children:e.line})]})}function Un(){let e=F(),t=we(),n=be(),[r,s]=W({}),[o,c]=W([]),[l,d]=W(!1),[h,p]=W(!1),[g,L]=W(!1),_=q(st(t));_.current=st(t);let x=q({}),$=q(!1);R(()=>{let a=()=>{let f=je();for(let[u,v]of Object.entries(f))x.current[u]??=v.status;s(f)};return a(),addEventListener(X,a),addEventListener("storage",a),()=>{removeEventListener(X,a),removeEventListener("storage",a)}},[]),R(()=>{let a=f=>{let u=f.detail;c(v=>[{key:`${te}:${Date.now()}`,...u},...v].slice(0,rt))};return addEventListener(te,a),()=>removeEventListener(te,a)},[]),R(()=>{if(!o.length)return;let a=f=>f.key==="Escape"&&c([]);return addEventListener("keydown",a),()=>removeEventListener("keydown",a)},[o.length]);let b=q(null);R(()=>{let a=b.current;a.matches(":popover-open")&&a.hidePopover(),o.length&&a.showPopover()},[o[0]?.key]);let S=a=>c(f=>f.filter(u=>u.key!==a));ht(a=>{let f=r[a.id];if(f?.org!==e)return;if(a.deleted){let v=je();return delete v[a.id],ct(v)}let u=x.current[a.id]??f.status;x.current[a.id]=a.status,u!==a.status&&w(a.id,{...a,result:a.result??void 0,error:a.error??void 0},f)});let w=(a,f,u)=>{if(ut(a,f.status),!In.has(f.status)||_.current===a)return;let v={key:`${a}:${Date.now()}`,id:a,title:u.title,status:f.status,line:An(f)};if(c(C=>[v,...C].slice(0,rt)),!$.current||localStorage.getItem(ot)!=="1"||typeof Notification>"u"||Notification.permission!=="granted")return;let k=new Notification(`${v.title} (${it[v.status]})`,{body:v.line,tag:a});k.onclick=()=>{focus(),n.push("/dash/[org]/tasks/[id]",{params:{org:e,id:a}})}};return Nn(Object.entries(r).filter(([,a])=>a.org===e&&!De.has(a.status)).map(([a])=>a),$,e),R(()=>{let a=()=>L(!0),f=()=>L(!1);return addEventListener("blur",a),addEventListener("focus",f),()=>{removeEventListener("blur",a),removeEventListener("focus",f)}},[]),O("section",{ref:b,class:"toasts",popover:"manual","aria-label":"Task updates","aria-live":"polite",onPointerOver:()=>d(!0),onPointerOut:a=>d(!!b.current?.contains(a.relatedTarget)),onFocusIn:()=>p(!0),onFocusOut:a=>p(!!b.current?.contains(a.relatedTarget)),children:o.map(a=>O(Hn,{toast:a,paused:l||h||g,dismiss:S},a.key))})}export{xt as $0a,lt as $1a,ot as $1b,dt as $1c,Rn as $1d,ut as $1e,ht as $1f,qn as $1g,Bn as $1h,Un as $1i,Pt as $2a,_t as $2b,Tt as $2c,It as $2d,Ot as $2e,le as $2f,ie as $2g,Rt as $2h,K as $2i,oe as $2j,ce as $2k,At as $2l,Ne as $2m,se as $2n,Nt as $2o,G as $2p,qt as $2q,Bt as $2r,Ln as $3A,F as $3B,Cn as $3C,Sn as $3D,be as $3a,we as $3b,rn as $3c,sn as $3d,Ee as $3e,kn as $3f,xn as $3g,Ve as $3h,$e as $3i,pe as $3j,on as $3k,fe as $3l,me as $3m,ke as $3n,ge as $3o,cn as $3p,Ye as $3q,Ge as $3r,dn as $3s,Qe as $3t,un as $3u,wn as $3v,et as $3w,$n as $3x,tt as $3y,nt as $3z};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{$3j as _,$3l as T}from"./shared-init-6e12333f12903a62-2.js";var p=class extends Error{code;hint;taskId;payload;approval;result;runId;status;needs;constructor(e,t,n={}){super(t),this.name="CoderError",this.code=e,Object.assign(this,n)}},C=class extends p{constructor(e,t,n="",s,a){super("server",t,{status:e,...s?{hint:s}:{}}),this.authenticate=n,this.needs=a}};function S(e){try{let t=new URL(e).hostname.toLowerCase();return t==="localhost"||t==="[::1]"||/^127(?:\.\d{1,3}){3}$/.test(t)}catch{return!1}}function z(e){let t;try{t=new URL(e)}catch{throw new p("invalid-option","Give the server as a URL, e.g. https://agents.example.com.")}if(t.protocol!=="https:"&&!(t.protocol==="http:"&&S(t.origin)))throw new p("invalid-option","Coder servers require HTTPS unless they are loopback.",{hint:"Use https://, or http://localhost for a local server."});if(t.username||t.password||t.search||t.hash)throw new p("invalid-option","The server must be an origin without credentials, query, or fragment.");return t.toString().replace(/\/+$/,"")}var d=(e,t)=>{let n=new URLSearchParams;"cursor"in t&&typeof t.cursor=="string"&&n.set("cursor",t.cursor);for(let[s,a]of Object.entries(t))s!=="cursor"&&a!==void 0&&a!==!1&&a!==""&&n.set(s,a===!0?"1":Array.isArray(a)?a.join(","):String(a));return`${e}?${n}`},A=new Set(["completed","failed","cancelled"]),H=class{url;fetchImpl;organization;renewal;onError;token;cookie;constructor(e,t,n={}){if(this.cookie="cookie"in t,this.url=e?z(e):"",!this.cookie&&!this.url)throw new p("invalid-option","Bearer clients need a server URL.");this.token="token"in t?t.token:void 0,this.fetchImpl=n.fetch??((s,a)=>fetch(s,a)),this.organization=n.organization,this.renewal=n.renewal,this.onError=n.onError}request(e,t={}){let n=this.read(e,t);return n.catch(()=>{}),n}async read(e,t){this.renewal&&this.renewal.expiresAt()-Date.now()<3e4&&(this.token=await this.renewal.renew());let n=await this.send(e,t);n.status===401&&this.renewal&&/invalid_token/.test(n.headers.get("www-authenticate")??"")&&(this.token=await this.renewal.renew(),n=await this.send(e,t));let s=await n.text().catch(()=>""),a={},r;try{s&&n.status!==204&&(a=JSON.parse(s))}catch{if(n.ok)throw new p("server",`The server answered ${n.status} with a body that is not JSON.`);this.cookie&&s&&(r=s)}if(!n.ok){let i=new C(n.status,a.error??a.message??r??`The server answered ${n.status}.`,n.headers.get("www-authenticate")??"",a.hint,a.needs==="key"?a.needs:void 0);throw this.onError?.(i),i}return a}send(e,t){let n=new Headers(t.headers);return t.body&&!n.has("content-type")&&n.set("content-type","application/json"),this.cookie||n.set("authorization",`Bearer ${this.token}`),this.organization&&n.set("x-coder-organization",this.organization),this.fetchImpl(`${this.url}${e}`,{...t,headers:n,...this.cookie?{credentials:"same-origin"}:{}}).catch(s=>{throw s instanceof p||s.name==="AbortError"?s:new p("server",this.url?`No Coder server answers at ${this.url}: ${s.message}`:"The server did not answer. Check the connection and try again.")})}post(e,t){return this.request(e,{method:"POST",...t!==void 0?{body:JSON.stringify(t)}:{}})}me(){return this.request("/me")}info(){return this.request("/api/auth/capabilities")}linkAccount(e){return this.post("/connect",{token:e})}signOut(){return this.post("/api/auth/sign-out",{})}agents={list:e=>this.request(d("/admin/agents",{...e,...e?.connect?{connect:1}:{}})),get:(e,t)=>this.request(d(`/admin/agents/${encodeURIComponent(e)}`,{...t?.versions===!1?{versions:0}:{},...t?.content===!1?{content:0}:{},...t?.handles?{handles:1}:{}})),versions:(e,t={})=>this.request(d(`/admin/agents/${encodeURIComponent(e)}/versions`,t)),remove:e=>this.request(`/admin/agents/${encodeURIComponent(e)}`,{method:"DELETE"}),preview:(e,t)=>this.request(d("/admin/agents/import",{repo:e,ref:t})),version:(e,t)=>this.request(`/admin/agents/${encodeURIComponent(e)}/versions/${t}`),put:(e,t)=>this.request(`/admin/agents/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify(t)}).then(n=>({id:e,version:n.version,unchanged:n.unchanged,...n.apps?.length?{apps:n.apps}:{}})),settings:(e,t)=>this.request(`/admin/agents/${encodeURIComponent(e)}/settings`,{method:"PATCH",body:JSON.stringify(t)}),import:(e,t,n)=>this.post("/admin/agents/import",{repo:e,ref:t,...n?{agents:n}:{}})};composer(){return this.request("/admin/composer")}folders={list:()=>this.request("/admin/folders"),check:e=>this.post("/admin/folders/check",{path:e}),clone:e=>this.post("/admin/folders/clone",{url:e}),pick:()=>this.post("/admin/folders/pick",{})};tasks={list:e=>this.request(d("/admin/tasks",{limit:20,...e,...e?.archived?{archived:1}:{},...e?.summary?{summary:1}:{},...e?.counts?{counts:1}:{}})),get:e=>this.request(`/admin/tasks/${encodeURIComponent(e)}`),logs:(e,t=-1,n)=>this.request(d(`/admin/tasks/${encodeURIComponent(e)}/logs`,{after:t,limit:n})),stream:(e,t=-1,n)=>this.send(`/admin/tasks/${encodeURIComponent(e)}/stream?after=${t}`,{headers:{accept:"text/event-stream"},signal:n}),events:(e,t,n)=>this.send(d("/admin/events",{tasks:e}),{headers:{accept:"text/event-stream",...t?{"last-event-id":t}:{}},signal:n}),cancel:e=>this.post(`/admin/tasks/${encodeURIComponent(e)}/cancel`),steer:(e,t,n={})=>this.post(`/admin/tasks/${encodeURIComponent(e)}/steer`,{text:t,...n}),ask:(e,t)=>this.post(`/admin/tasks/${encodeURIComponent(e)}/ask`,{question:t}),approve:(e,t,n)=>this.post(`/admin/tasks/${encodeURIComponent(e)}/approve`,{approvalId:t,decision:n}),archive:e=>this.post(`/admin/tasks/${encodeURIComponent(e)}/archive`),delete:e=>this.request(`/admin/tasks/${encodeURIComponent(e)}`,{method:"DELETE"}),create:e=>this.post("/admin/tasks",e),wait:async(e,t={})=>{let n=-1;for(;;){let s=await this.tasks.stream(e,n);if(!s.ok||!s.body){let r=await this.tasks.get(e);if(A.has(r.status))return r;if(s.status===401)continue;throw new p("server",`The task stream answered ${s.status}.`)}let a=!1;for await(let r of R(s.body))if(r.event==="log"){let i=JSON.parse(r.data);n=i.seq,t.onLog?.(i)}else r.event==="end"&&(a=!0);if(a)return this.tasks.get(e)}}};credentials={list:e=>this.request(d("/admin/credentials",e??{})),add:e=>this.post("/admin/credentials",e),remove:(e,{workspace:t}={})=>this.request(`/admin/credentials/${encodeURIComponent(e)}${t?"?workspace":""}`,{method:"DELETE"}),login:e=>this.post("/admin/logins",{engine:e}),loginStatus:(e,t)=>this.request(`/admin/logins/${encodeURIComponent(e)}${t?`?state=${encodeURIComponent(t)}`:""}`),loginCode:(e,t)=>this.post(`/admin/logins/${encodeURIComponent(e)}`,{code:t}),cancelLogin:e=>this.request(`/admin/logins/${encodeURIComponent(e)}`,{method:"DELETE"})};runners={list:()=>this.request("/admin/runners"),add:e=>this.post("/admin/runners",e),pair:e=>this.post("/admin/runners/pair",e),update:(e,t)=>this.request(`/admin/runners/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify(t)}),test:e=>this.post(`/admin/runners/${encodeURIComponent(e)}/test`,{}),remove:e=>this.request(`/admin/runners/${encodeURIComponent(e)}`,{method:"DELETE"})};integrations={list:e=>this.request(d("/admin/integrations",{agent:e}))};repositories={list:()=>this.request("/admin/repositories"),refresh:()=>this.post("/admin/repositories/refresh",{})};engines={status:()=>this.request("/admin/engines/status"),login:e=>this.post(`/admin/engines/${encodeURIComponent(e)}/login`,{}),logout:e=>this.post(`/admin/engines/${encodeURIComponent(e)}/logout`,{})};apps={list:e=>this.request(d("/admin/apps",{agent:e})),install:(e,t)=>this.post(d(`/admin/apps/${encodeURIComponent(e)}/install`,{back:t})),remove:e=>this.request(`/admin/apps/${encodeURIComponent(e)}`,{method:"DELETE"}),update:e=>this.post(`/admin/apps/${encodeURIComponent(e)}/update`,{}),drift:e=>this.request(`/admin/apps/${encodeURIComponent(e)}/drift`),create:(e,t)=>this.post(`/admin/apps/create/${encodeURIComponent(e)}`,t),start:(e,t)=>this.post(d(`/create/${encodeURIComponent(e)}`,t)),finish:(e,t)=>this.request(`/create/${encodeURIComponent(e)}/callback`,{method:"POST",headers:{accept:"application/json","content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t)})};operator={apps:()=>this.request("/admin/operator/apps"),setUp:(e,t)=>this.post(`/admin/operator/apps/${encodeURIComponent(e)}`,t),audit:()=>this.request("/admin/operator/audit")};installations={list:(e,t={})=>this.request(d("/admin/installations",{agent:e,limit:t.limit,...t.active?{active:1}:{}}))};connections={list:(e,t)=>this.request(d("/admin/connections",{authorization:e,wait:t})),add:e=>this.post("/admin/connections",e),update:(e,t)=>this.request(`/admin/connections/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify(t)}),remove:e=>this.request(`/admin/connections/${encodeURIComponent(e)}`,{method:"DELETE"}),authorize:e=>this.post(`/admin/connections/${encodeURIComponent(e)}/authorize`)};config={get:()=>this.request("/admin/config"),patch:e=>this.request("/admin/config",{method:"PATCH",headers:{"content-type":"application/merge-patch+json"},body:JSON.stringify(e)})};models={list:()=>this.request("/admin/models"),add:e=>this.post("/admin/models",e),probe:e=>this.post("/admin/models/probe",e),remove:e=>this.request(`/admin/models/${encodeURIComponent(e)}`,{method:"DELETE"}),alias:(e,t)=>this.post(`/admin/models/${encodeURIComponent(e)}/alias`,{spec:t}),enable:e=>this.post(`/admin/models/${encodeURIComponent(e)}/enable`),disable:e=>this.post(`/admin/models/${encodeURIComponent(e)}/disable`)};mcp={search:e=>this.request(d("/admin/mcp-registry",{q:e}))};flows={list:e=>this.request(d("/admin/flows",{repo:e})),run:(e,t)=>this.post(`/admin/flows/${encodeURIComponent(e)}/run`,t)};pulls={list:e=>this.request(d("/admin/pulls",{repo:e}))};review(e){return this.post("/admin/review",e)}usage(e={}){return this.request(d("/admin/usage/totals",{...e,since:e.since??Date.now()-10080*60*1e3}))}usageRows(e){return this.request(d("/admin/usage",{installation:e}))}};async function*R(e){let t=new TextDecoder,n="";for await(let s of e){n+=t.decode(s,{stream:!0});let a;for(;(a=n.indexOf(`
|
|
2
|
+
|
|
3
|
+
`))>=0;){let r=n.slice(0,a);n=n.slice(a+2);let i="message",o,h=[];for(let l of r.split(`
|
|
4
|
+
`))l.startsWith("event: ")?i=l.slice(7):l.startsWith("data: ")?h.push(l.slice(6)):l.startsWith("id: ")&&(o=l.slice(4));(h.length||o)&&(yield{event:i,data:h.join(`
|
|
5
|
+
`),...o?{id:o}:{}})}}}var U=new H("",{cookie:!0},{fetch(e,t){let n=/^\/dash\/([^/]+)/.exec(globalThis.location?.pathname??"")?.[1];if(!n)return fetch(e,t);let s=new Headers(t?.headers);return s.set("x-coder-organization",decodeURIComponent(n)),fetch(e,{...t,headers:s})},onError(e){e.status===401&&(e.authenticate||/^Sign in/.test(e.message))&&(location.href=`/login?return=${encodeURIComponent(location.pathname+location.search)}`)}});async function P(){let{url:e}=await U.signOut();location.href=e??"/?signed_out=1"}function N(e,t){let n,s=!1,a=()=>{s||(n=setTimeout(r,t))},r=()=>{if(document.visibilityState==="hidden")return a();e().catch(i=>console.error("coder dashboard: poll",i)).finally(a)};return a(),()=>{s=!0,clearTimeout(n)}}function O(e,t,n=[]){let s=T(e);s.current=e;let a=!!e;_(()=>{if(!a)return;let r=new AbortController,i=N(async()=>s.current?.(r.signal),t);return()=>{r.abort(),i()}},[a,t,...n])}import{$3a as b,$3b as j,$3c as D,$3j as V,$3l as J}from"./shared-init-6e12333f12903a62-2.js";var B=0;function c(e,t,n,s,a,r){t||(t={});var i,o,h=t;if("ref"in h)for(o in h={},t)o=="ref"?i=t[o]:h[o]=t[o];var l={type:e,props:h,key:n,ref:i,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--B,__i:-1,__u:0,__source:a,__self:r};if(typeof e=="function"&&(i=e.defaultProps))for(o in i)h[o]===void 0&&(h[o]=i[o]);return b.vnode&&b.vnode(l),l}function g({d:e,class:t}){return c("svg",{class:t?`ic ${t}`:"ic",viewBox:"0 0 24 24","aria-hidden":"true",children:c("path",{d:e})})}function Z(){return c("svg",{class:"coder-mark",viewBox:"0 0 16 16","aria-hidden":"true",children:c("path",{d:"M5 0h3v3h-3zM9 0h3v3h-3zM13 0h3v3h-3zM0 4h3v3h-3zM0 9h3v3h-3zM5 13h3v3h-3zM9 13h3v3h-3zM13 13h3v3h-3z"})})}function q(e,t={}){let n=G(F(e,t.params??{})),s=Q(t.search),a=ee(t.hash);return`${n}${s}${a}`}function K(){return window.__PNEXT_TRAILING_SLASH__===!0}function W(){let e=window.__PNEXT_PREFETCH__;return e===void 0?"visible":e}function G(e){let[,t="",n=""]=/^([^?#]*)([\s\S]*)$/.exec(e)??[];return t.startsWith("/")?K()?t==="/"||t.endsWith("/")||/\.[^/]+$/.test(t)?e:`${t}/${n}`:t==="/"||!t.endsWith("/")||/\.[^/]+\/$/.test(t)?e:`${t.replace(/\/+$/,"")}${n}`:e}function F(e,t){let n=e.replace(/\[\[\.\.\.([^\]]+)\]\]/g,(s,a)=>y(t[a],!0)).replace(/\[\.\.\.([^\]]+)\]/g,(s,a)=>y(t[a],!0)).replace(/\[([^\]]+)\]/g,(s,a)=>y(t[a],!1));return X(n)}function X(e){return e.length<=1?e:e.replace(/\/+$/,"")||"/"}function y(e,t){if(Array.isArray(e)){let n=e.map(s=>encodeURIComponent(s));return t?n.join("/"):n[0]??""}return encodeURIComponent(e??"")}function Q(e){if(!e)return"";let t=(e instanceof URLSearchParams?e:Y(e)).toString();return t?`?${t}`:""}function Y(e){let t=new URLSearchParams;for(let[n,s]of Object.entries(e)){let a=Array.isArray(s)?s:[s];for(let r of a)r!=null&&t.append(n,String(r))}return t}function ee(e){return e?e.startsWith("#")?e:`#${e}`:""}function E({href:e,params:t,prefetch:n,replace:s,scroll:a,search:r,hash:i,onClick:o,onNavigate:h,onPrefetchStart:l,onPrefetchFinish:$,children:M,...w}){let I=q(e,{params:t??{},search:r,hash:i}),u=n??W(),m=te(l,$);return j("a",{...w,ref:m,href:I,"data-pnext-link":!0,"data-prefetch":u===!1?"false":u,"data-pnext-replace":s?"true":void 0,"data-pnext-scroll":a===!1?"false":void 0,onClick:f=>{let v=f;if(o?.(v),v.defaultPrevented||!h||!se(v))return;let k=ne();h(k),k.defaultPrevented&&v.preventDefault()}},M)}function te(e,t){let n=J(null);return V(()=>{let s=n.current;if(!s||!e&&!t)return;let a=()=>e?.(),r=()=>t?.();return s.addEventListener("pnext:prefetchstart",a),s.addEventListener("pnext:prefetchfinish",r),()=>{s.removeEventListener("pnext:prefetchstart",a),s.removeEventListener("pnext:prefetchfinish",r)}},[e,t]),n}function ne(){return{defaultPrevented:!1,preventDefault(){this.defaultPrevented=!0}}}function se(e){return e.button===0&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&!e.currentTarget.target&&!e.currentTarget.download}var ae="M12 8V4H8M6 8h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2ZM2 14h2M20 14h2M15 13v2M9 13v2",re="M22 12h-4l-3 9L9 3l-3 9H2",ie="M3 3v18h18M18 17V9M13 17V5M8 17v-3",oe="m15 18-6-6 6-6",de="m6 9 6 6 6-6",he="m9 18 6-6-6-6",ce="M8 12a4 4 0 1 0 8 0a4 4 0 1 0 -8 0M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M6.3 17.7l-1.4 1.4M19.1 4.9l-1.4 1.4",le="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",pe="M4 4h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1ZM8 20h8M12 16v4",ue="M2 15.5a5.5 5.5 0 1 0 11 0a5.5 5.5 0 1 0 -11 0M21 2l-9.6 9.6M15.5 7.5l3 3L22 7l-3-3",me="M7 17 17 7M8 7h9v9",fe="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9",ve="m12 3 1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9ZM19 3v4M17 5h4",ge="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.7-.9l-.8-1.2A2 2 0 0 0 7.9 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2ZM10 13a2 2 0 1 0 4 0a2 2 0 1 0 -4 0M14 13h3M7 13h3",$e="M4 6h16M4 12h16M4 18h16",Me="M18 6 6 18M6 6l12 12",we="M20 6 9 17l-5-5",Ie="M3 6h18M8 6V4h8v2M19 6l-1 14H6L5 6M10 11v6M14 11v6",ye="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12",ke="M12 16v-4M12 8h.01M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0",Ce="M4 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0M18 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",Re="M12 5v14M5 12h14",Ue="M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.6A8 8 0 1 1 21 12Z",be="M4 12h12M12 6l6 6-6 6",qe="M16 4h4v4M20 4l-7 7M4 20l6-6M16 20h4v-4M20 20l-5-5M4 4l5 5",Ee="M4 11a7 7 0 1 0 14 0a7 7 0 1 0 -14 0M20 20l-3.5-3.5",Le="m21.7 18-8-14a2 2 0 0 0-3.4 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.7-3M12 9v4M12 17h.01",xe="m4 17 6-6-6-6M12 19h8",_e="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.7-.9l-.8-1.2A2 2 0 0 0 7.9 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",Te="M12 7v5l3 2M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",Se="M9 2v6M15 2v6M6 8h12v4a6 6 0 0 1-12 0ZM12 18v4",ze="M9 9h11v11H9ZM5 15H4V4h11v1",Ae="M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6",L=({variant:e,danger:t,size:n,wide:s,class:a})=>["btn",e!=="primary"&&e,t&&"danger",n,s&&"wide",a].filter(Boolean).join(" ");function x({leftIcon:e,rightIcon:t,loading:n,children:s}){let a=c("i",{class:"btn-spin"});return c(D,{children:[e?n?a:c(g,{d:e}):null,s,t?n&&!e?a:c(g,{d:t}):null]})}function He({variant:e,danger:t,size:n,wide:s,leftIcon:a,rightIcon:r,loading:i,disabled:o,href:h,external:l,as:$,type:M="button",class:w,children:I,...u}){let m=L({variant:e,danger:t,size:n,wide:s,class:w}),f=c(x,{leftIcon:a,rightIcon:r??(l?me:void 0),loading:i,children:I});return $==="span"?c("span",{class:m,"aria-hidden":"true",children:f}):h&&!o&&!i?c("a",{...u,class:m,href:h,...l?{target:"_blank",rel:"noopener noreferrer"}:{},children:f}):c("button",{"aria-busy":i||void 0,...u,type:M,class:m,disabled:o||i,children:f})}function Pe({variant:e,danger:t,size:n,wide:s,leftIcon:a,rightIcon:r,class:i,children:o,...h}){return c(E,{...h,class:L({variant:e,danger:t,size:n,wide:s,class:i}),children:c(x,{leftIcon:a,rightIcon:r,children:o})})}function Ne({icon:e,label:t,tip:n,type:s="button",class:a,children:r,...i}){return c("button",{...i,type:s,class:a?`icon-btn ${a}`:"icon-btn","aria-label":t,title:n?void 0:t,"data-tip":n,children:e?c(g,{d:e}):r})}export{C as $0a,R as $0b,U as $0c,P as $0d,O as $0e,Ue as $1A,be as $1B,qe as $1C,Ee as $1D,Le as $1E,xe as $1F,_e as $1G,Te as $1H,Se as $1I,ze as $1J,Ae as $1K,He as $1L,Pe as $1M,Ne as $1N,c as $1a,g as $1b,Z as $1c,q as $1d,E as $1e,ae as $1f,re as $1g,ie as $1h,oe as $1i,de as $1j,he as $1k,ce as $1l,le as $1m,pe as $1n,ue as $1o,fe as $1p,ve as $1q,ge as $1r,$e as $1s,Me as $1t,we as $1u,Ie as $1v,ye as $1w,ke as $1x,Ce as $1y,Re as $1z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$3b as g,$3d as R,$3f as T,$3j as P,$3l as A}from"./shared-init-cc13a835f3508618.js";import{$0a as B}from"./shared-init-cc13a835f3508618.js";import{$0d as y}from"./shared-init-f475017dd5811e33.js";import{$1E as x,$1L as d,$1N as f,$1a as t,$1e as b,$1i as L,$1k as S,$1l as E,$1m as O,$1n as C,$1p as M,$1s as w}from"./shared-init-f475017dd5811e33.js";import{$3c as l,$3h as a,$3j as p,$3k as h,$3l as k}from"./shared-init-6e12333f12903a62-2.js";var $="side";function F({collapsed:n}){let[r,s]=a(n);p(()=>{let o=document.querySelector(".app");if(!o)return;let c=()=>s(o.classList.contains("side-min"));c();let u=new MutationObserver(c);return u.observe(o,{attributes:!0,attributeFilter:["class"]}),()=>u.disconnect()},[]);let i=()=>{let o=!r;document.querySelector(".app")?.classList.toggle("side-min",o),document.cookie=`${$}=${o?"min":"max"}; path=/; max-age=31536000; samesite=lax`},e=r?"Expand sidebar":"Collapse sidebar";return t(f,{icon:r?S:L,label:e,tip:e,class:"side-toggle",onClick:i})}function J({link:n}){let r=`/api/auth/sign-in?${new URLSearchParams({return:n,prompt:"login"})}`;return t(B,{class:"outcome-dialog",tone:"warning",title:"Not in this workspace",icon:x,cancel:"Stay here",actions:t(d,{href:r,children:"Sign in with another account"}),onClose:()=>history.replaceState(history.state,"",location.pathname),children:t("p",{role:"status",children:"The link you followed does not belong to this workspace."})})}function et({menu:n}){let r=()=>void y().catch(()=>location.reload());return n?t(P,{icon:M,title:"Sign out",onClick:r}):t(d,{variant:"secondary",danger:!0,onClick:r,children:"Sign out"})}var v=3600*24*365,I=[["light","Light",E],["dark","Dark",O],["system","System",C]];function at({theme:n}){let[r,s]=a(n),i=e=>{let o=document.documentElement;e==="system"?delete o.dataset.theme:o.dataset.theme=e,document.cookie=`theme=${e}; path=/; max-age=${v}; samesite=lax`,s(e)};return t(l,{children:I.map(([e,o,c])=>t(A,{on:r===e,onPick:()=>i(e),icon:c,children:o},e))})}function bt(){let n=g(),[r,s]=a(),i=r===n,e=o=>s(o?n:void 0);return p(()=>{if(document.documentElement.classList.toggle("drawer",i),!i)return;let o=c=>c.key==="Escape"&&e(!1);return addEventListener("keydown",o),()=>removeEventListener("keydown",o)},[i]),t(l,{children:[t(f,{icon:w,label:"Open navigation",class:"only-m",onClick:()=>e(!i)}),t("div",{class:"scrim",onClick:()=>e(!1)})]})}function xt({within:n,children:r,onClick:s,...i}){let e=g(),o=e===T(i)||n!==void 0&&(e===n||e.startsWith(`${n}/`)),c=k(null);return t(b,{...i,"aria-current":o?"page":void 0,onClick:u=>{c.current=u.currentTarget,s?.(u)},children:[r,t(H,{anchor:c,current:o})]})}function H({anchor:n,current:r}){let{pending:s}=R();return h(()=>{n.current&&(s&&!r?n.current.setAttribute("data-pending",""):n.current.removeAttribute("data-pending"))},[s,r]),null}export{F as a,J as b,et as c,at as d,bt as e,xt as f};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$2d as i}from"./shared-init-cc13a835f3508618.js";import{$1L as o,$1a as t}from"./shared-init-f475017dd5811e33.js";import{$3c as n}from"./shared-init-6e12333f12903a62-2.js";function g({sentinel:l,more:r,busy:a,error:e,retry:s,noun:u}){return!r&&!e?null:t("div",{class:e?"tail err":"tail",ref:l,role:"status",children:e?t(n,{children:[e," ",t(o,{variant:"ghost",size:"sm",onClick:s,children:"Retry"})]}):a?t(i,{label:`Loading more ${u}`,inline:!0,late:!0}):null})}export{g as a};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{e as h,f as y}from"./defaults-52f30e83d7666f7a.js";function x(t,e){return{type:t,props:e}}function l(t){return t.children}var w={"&":"&","<":"<",">":">",'"':""","'":"'"},v=(t,e)=>t.replace(e,r=>w[r]);function a(t,e,r){if(t==null||typeof t=="boolean")return;if(typeof t=="string"||typeof t=="number"){let i=String(t);r.push(e?v(i,/[&<>]/g):i);return}if(Array.isArray(t)){for(let i of t)a(i,e,r);return}let{type:n,props:s}=t,o=s.children;if(n===l)return s.value!==void 0&&a(JSON.stringify(s.value,null,2),!0,r),a(o,!0,r);if(typeof n=="function")return a(n(s),e,r);let m=[];a(o,e,m);let f=k(m);if(!f.length&&!s.keep)return;let g="";for(let i in s){let u=s[i];if(i!=="children"&&i!=="keep"&&u!=null){if(typeof u!="string"&&typeof u!="number"&&typeof u!="boolean")throw Error(`contextjsx: attribute ${i} on <${n}> must be a string, number or boolean`);g+=` ${i}="${v(String(u),/[&<>"']/g)}"`}}r.push({name:n,attributes:g,children:f})}function k(t){let e=[],r="",n=()=>{let s=r.trim();s&&e.push(s),r=""};for(let s of t)typeof s=="string"?r+=s:(n(),e.push(s));return n(),e}function R(t,e,r){return t.map(n=>typeof n=="string"?e?n.replace(/^(?=.)/gm,e):n:n.children.length?`${e}<${n.name}${n.attributes}>
|
|
2
|
+
${R(n.children,e+r,r)}
|
|
3
|
+
${e}</${n.name}>`:`${e}<${n.name}${n.attributes}/>`).join(`
|
|
4
|
+
`)}function d(t,e={}){let r=[];return a(t,!1,r),R(k(r),""," ".repeat(e.indent??1))}var S=t=>t.replace(/&(amp|lt|gt);/g,(e,r)=>({amp:"&",lt:"<",gt:">"})[r]);function p(t="",e=!1){let r=/<event>\n([^]*?)\n<\/event>/g;if(!e&&(!t.trimStart().startsWith("<event>")||t.replace(r,"").trim()))return;let n=[];for(let[,s]of t.matchAll(r))try{let o=JSON.parse(S(s));if(!o||typeof o!="object"||Array.isArray(o)){if(!e)return;continue}n.push(o)}catch(o){if(console.error("coder: unreadable event prompt",o),!e)return}return n.length?n:void 0}function b(t,e,r=[]){let n=[t??"",...r].flatMap(s=>(p(s,!0)??[]).flatMap(o=>typeof o.mustReply=="boolean"?[o.mustReply]:[]));return n.length?n.includes(!0):e}var K=d(x("summary-request",{children:["Summarize this conversation so a new engine conversation can continue it. Return only the summary: no tools, no reply to the platform.","Use these headings in order, each even if empty: Goal; Decisions; Preferences and constraints; Files and PRs touched; Open items.","Name who asked for or decided each thing. Keep durable facts, including any earlier summary. Leave out details a speaker asked to forget, without quoting them."].filter(Boolean).join(`
|
|
5
|
+
`)}));var Y=["Conversation","Activity"],H=[["","Recent"],["active","Active"],["waiting","Needs approval"],["running","Running"],["queued","Queued"],["completed","Completed"],["failed","Failed"],["cancelled","Cancelled"],["archived","Archived"]];function X(t){let{status:e,...r}=t;return e==="archived"?{...r,archived:!0}:{...r,status:e}}var E=[["","All sources"],["dashboard","Dashboard"],["cli","CLI"],["schedule","Schedule"]],Z=t=>(E.find(([e])=>e===t)??[t,t])[1],tt=t=>t.status==="queued"||t.status==="running"||t.status==="waiting",A=t=>({rank:h(t.status),createdAt:t.createdAt,id:t.task.id}),T=(t,e)=>y(A(t),A(e));function et(t,e){let r=new Set(e.map(n=>n.task.id));return[...e,...t.filter(n=>!r.has(n.task.id))].sort(T)}function nt(t,e,r={}){let n=new Set(t.map(s=>s.task.id));return[...e.filter(s=>!n.has(s.task.id)),...t].map(s=>r[s.task.id]??s).sort(T)}function rt(t,e,r,n){let s=t.at(-1);return{rows:t.filter(o=>(r[o.task.id]??0)<=n),cursor:s?{since:s.updatedAt,sinceId:s.task.id}:e}}function $(t){return p(t)?.flatMap(e=>e.reactions?e.reactions.map(({emoji:r,by:n})=>({author:n.join(", "),text:`reacted ${r}`,reaction:!0})):(e.messages??(e.message?[e.message]:[])).map(({text:r,author:n})=>({author:n.handle??n.name??n.id,text:r||(e.event??"")})))}var st=(t,e)=>b(e,t.task.event?.mustReply!==!1);function ot(t){let e=t.task.prompt?.trim(),r=!e||$(e)?t.task.event?.text?.trim()||$(t.turns?.[0]?.prompt??e)?.find(n=>!n.reaction)?.text.trim():e;return t.task.name?.trim()||r||`${t.task.event?.type??"task"} on ${t.task.agent}`}var it=t=>t.split(/[\\/]/).filter(Boolean).at(-1)??t;export{Y as a,H as b,X as c,E as d,Z as e,tt as f,et as g,nt as h,rt as i,$ as j,st as k,ot as l,it as m};
|