@wular/coder 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions-FzDNxMFf.js +20 -0
- package/dist/{adapter-BKVzTDnn.js → adapter-7SEiVsmp.js} +1 -1
- package/dist/{adapter-B0oYCI0S.js → adapter-BLEfUqoQ.js} +1 -1
- package/dist/{adapter-DPInwbJG.js → adapter-H4GlcKQz.js} +1 -1
- package/dist/{add-DRsPpQFl.js → add-B50dIJGd.js} +1 -1
- package/dist/{add-DkpUwhtO.js → add-D7X3gxap.js} +1 -1
- package/dist/{add-C2y-mVzl.js → add-DOEUHIe7.js} +1 -1
- package/dist/{add-CLYTF_up.js → add-QExQhTzi.js} +1 -1
- package/dist/{add-json-5uPnWPoD.js → add-json-Ck4KIZrT.js} +1 -1
- package/dist/{agent-r5mMcehf.js → agent-BPtnEf1q.js} +1 -1
- package/dist/{agent-hw3zKw8y.js → agent-BlQ_dNNm.js} +2 -2
- package/dist/{alias-_0Rwf2cA.js → alias-BwQBovke.js} +1 -1
- package/dist/{app-oE8G1-bi.js → app-y6BYm2eH.js} +1 -1
- package/dist/{approvals-DbVrsxec.js → approvals-Cc9cq5T1.js} +2 -2
- package/dist/{approve-DeAhFL-m.js → approve-oO9k2fnK.js} +2 -2
- package/dist/{apps-eujHiNca.js → apps-CU2YalX8.js} +1 -1
- package/dist/{archive-BCUfymIB.js → archive-C5c_HQS1.js} +2 -2
- package/dist/{archive-DZ6vpMHb.js → archive-CemlWlVY.js} +2 -2
- package/dist/archive-sweep-ehg-fWIt.js +1 -0
- package/dist/{args-BOEEdpWk.js → args-DcBCtXhz.js} +1 -1
- package/dist/{ask-BU2WVxVM.js → ask-Chu7Twu_.js} +2 -2
- package/dist/auth-BOyXPOtu.js +1 -0
- package/dist/auth-XbqKSbcD.js +1 -0
- package/dist/{chat-bridge-BS9WtP3X.js → chat-bridge-DXgZItGP.js} +1 -1
- package/dist/{chat-B_yhNTo0.js → chat-cknlIhVh.js} +1 -1
- package/dist/{cli-DWCR7iqa.js → cli-B1ObVrL4.js} +5 -5
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +1 -1
- package/dist/{client-D9IoAuDD.js → client-31YzOj-i.js} +1 -1
- package/dist/{config-12pK4qW7.js → config-DAE_qHYA.js} +1 -1
- package/dist/{create-D3f6q0Yq.js → create-CM8B8JxD.js} +1 -1
- package/dist/credentials-BXD4Qptk.js +1 -0
- package/dist/dash/manifest.json +949 -915
- package/dist/dash/public/assets/chunks/{agent-pills-dd0b7643e125bbf1.js → agent-pills-b6a6da91c9559d9f.js} +1 -1
- package/dist/dash/public/assets/chunks/{agent-settings-form-45ae6aeaaed2b568.js → agent-settings-form-b615c677046cd6f2.js} +1 -1
- package/dist/dash/public/assets/chunks/agents-grid-f2e7b4ff9e11b6e3.js +1 -0
- package/dist/dash/public/assets/chunks/{badge-676b01e0c615bf7b.js → badge-215c7b2631dafc69.js} +1 -1
- package/dist/dash/public/assets/chunks/{card-e0901d68b79dfa93.js → card-e86dcc81326d2b14.js} +1 -1
- package/dist/dash/public/assets/chunks/{combo-952a457d52360d88.js → combo-09e246dc9a517fa8.js} +1 -1
- package/dist/dash/public/assets/chunks/composer-417166b029f48c47.js +1 -0
- package/dist/dash/public/assets/chunks/composer-645ae8fa97a35280.js +1 -0
- package/dist/dash/public/assets/chunks/{confirm-f2fe4ba9905a89c6.js → confirm-5ae484241ad888fd.js} +1 -1
- package/dist/dash/public/assets/chunks/{connect-apps-661f3b3a85f1776a.js → connect-apps-4147c45f45fde2b1.js} +1 -1
- package/dist/dash/public/assets/chunks/{connect-repositories-5389ec8701a3deac.js → connect-repositories-77591110836bdf03.js} +1 -1
- package/dist/dash/public/assets/chunks/credentials-list-e005a0783ec93465.js +2 -0
- package/dist/dash/public/assets/chunks/{custom-range-03ba6fb2ade7d282.js → custom-range-463e119af4681c61.js} +1 -1
- package/dist/dash/public/assets/chunks/{editor-34cb529d6d8a4b09.js → editor-804b84f4fe6539cd.js} +4 -4
- package/dist/dash/public/assets/chunks/{engines-list-2f1acee3ecc8461a.js → engines-list-ceab51f13c690e8c.js} +1 -1
- package/dist/dash/public/assets/chunks/{field-901f1f35c18c39c9.js → field-aa0a4b98a976781e.js} +1 -1
- package/dist/dash/public/assets/chunks/filter-91144ac2eec6297f.js +1 -0
- package/dist/dash/public/assets/chunks/format-105c706345987fb2.js +1 -0
- package/dist/dash/public/assets/chunks/heads-a42817b32d2d7f08.js +1 -0
- package/dist/dash/public/assets/chunks/{instructions-052fa45a9daf6db6.js → instructions-3a1dcaff2d868aa5.js} +1 -1
- package/dist/dash/public/assets/chunks/instructions-6c6f981fffaa31e4.js +1 -0
- package/dist/dash/public/assets/chunks/{list-87b359bebd26986a.js → list-7270361464fc3c04.js} +1 -1
- package/dist/dash/public/assets/chunks/{mcp-list-b42f0d2ee463b37d.js → mcp-list-2e715d48666b54ad.js} +1 -1
- package/dist/dash/public/assets/chunks/{models-list-0669d26fd662aec3.js → models-list-d3c40f94c761a6e5.js} +1 -1
- package/dist/dash/public/assets/chunks/paged-3ddb6077bef42752.js +1 -0
- package/dist/dash/public/assets/chunks/{platform-actions-c92ca3c6198a9387.js → platform-actions-271ec3b99a64280b.js} +1 -1
- package/dist/dash/public/assets/chunks/runners-list-767e49c7d0ec833a.js +1 -0
- package/dist/dash/public/assets/chunks/{segmented-358ff2b4992b8384.js → segmented-de4386ccaac7304d.js} +1 -1
- package/dist/dash/public/assets/chunks/{select-1013702bdfb1ade4.js → select-a90307706cffa6e0.js} +1 -1
- package/dist/dash/public/assets/chunks/{sentinel-c972a33dc69a5135.js → sentinel-b5e032b38604dfd3.js} +1 -1
- package/dist/dash/public/assets/chunks/shared-init-7f81ae7bc8c82438.js +2 -0
- package/dist/dash/public/assets/chunks/shared-init-933c7f9ee85be766.js +5 -0
- package/dist/dash/public/assets/chunks/{tail-7c27aab8ba268bd9.js → tail-4891e727ee526792.js} +1 -1
- package/dist/dash/public/assets/chunks/task-actions-ce854925a2dc78fd.js +1 -0
- package/dist/dash/public/assets/chunks/task-ddfddeaf07fb684c.js +1 -0
- package/dist/dash/public/assets/chunks/task-view-c37dcee08f21a279.js +5 -0
- package/dist/dash/public/assets/chunks/tasks-list-baef587999f322d8.js +1 -0
- package/dist/dash/public/assets/chunks/{toolbar-f964fa864699f095.js → toolbar-8d98313606ad8a2d.js} +1 -1
- package/dist/dash/public/assets/chunks/{versions-list-fc2e0d2a7382e049.js → versions-list-532690efd9f1b0ea.js} +1 -1
- package/dist/dash/public/assets/{dash-account-96fc41be318839fa.css → dash-account-edc56e85dbaaabe0.css} +1 -1
- package/dist/dash/public/assets/dash-agents-edba57b67e4005d0.css +1 -0
- package/dist/dash/public/assets/dash-agents-new-fe22253fbada2fbf.css +1 -0
- package/dist/dash/public/assets/dash-agents-param-slug-adf52e9dacb2d825.css +1 -0
- package/dist/dash/public/assets/dash-agents-param-slug-edit-a2937a347689ef29.css +1 -0
- package/dist/dash/public/assets/dash-agents-param-slug-platforms-265ba13db32a460d.css +1 -0
- package/dist/dash/public/assets/dash-agents-param-slug-settings-8afc52eb0372bc4b.css +1 -0
- package/dist/dash/public/assets/dash-agents-param-slug-tasks-6193e646be68dbd2.css +1 -0
- package/dist/dash/public/assets/dash-agents-param-slug-usage-ceadb3a1c911c402.css +1 -0
- package/dist/dash/public/assets/{dash-settings-53b8e6a8f656fa1a.css → dash-settings-cf1997cd7f72e518.css} +1 -1
- package/dist/dash/public/assets/dash-settings-param-tab-b44dac8e79a560e6.css +1 -0
- package/dist/dash/public/assets/dash-tasks-916c7100a8058aa3.css +1 -0
- package/dist/dash/public/assets/dash-tasks-param-id-194a6ffc20e872f2.css +1 -0
- package/dist/dash/public/assets/{dash-usage-884943221f76ad93.css → dash-usage-40940b289f85e0b6.css} +1 -1
- package/dist/dash/public/assets/pnext-client-13aee92bef5c9e3f.js +1 -0
- package/dist/dash/public/assets/pnext-client-1f2686b2044f0df6.js +1 -0
- package/dist/dash/public/assets/pnext-client-26130234ebad7067.js +1 -0
- package/dist/dash/public/assets/pnext-client-311e35b0076bf406.js +1 -0
- package/dist/dash/public/assets/pnext-client-4ade1bf75c9c3d87.js +1 -0
- package/dist/dash/public/assets/pnext-client-61cd31b687ede1da.js +1 -0
- package/dist/dash/public/assets/{pnext-client-2693db10b197ade1.js → pnext-client-61db65dc4223217a.js} +1 -1
- package/dist/dash/public/assets/pnext-client-6ea656e7705e3f2a.js +1 -0
- package/dist/dash/public/assets/pnext-client-7fd0f793f0322cb9.js +1 -0
- package/dist/dash/public/assets/pnext-client-88159c0840fcfa4a.js +1 -0
- package/dist/dash/public/assets/pnext-client-b03f0c47c066b4f3.js +1 -0
- package/dist/dash/public/assets/{pnext-client-1afa4148bea69ad2.js → pnext-client-d6478835f543f901.js} +1 -1
- package/dist/dash/public/assets/pnext-client-dadb8359021ed590.js +1 -0
- package/dist/dash/public/assets/pnext-client-de07532d6aaebf2c.js +1 -0
- package/dist/dash/public/assets/pnext-client-f87a31890c8ff224.js +1 -0
- package/dist/dash/public/assets/pnext-client-ffe1c123a8e2a350.js +1 -0
- package/dist/{default-CwQXCtoB.js → default-BMvUMTFp.js} +1 -1
- package/dist/default-B_nKaX0-.js +1 -0
- package/dist/{delete-cS01oOIb.js → delete-Bjteibld.js} +2 -2
- package/dist/{delete-BD6AnCLg.js → delete-riCIKZwj.js} +2 -2
- package/dist/{disable-BMWWeYFQ.js → disable-DQC56YFy.js} +1 -1
- package/dist/{discover-Dvr_3_Xr.js → discover-Qanr5TEO.js} +1 -1
- package/dist/{discover-Cfx5RPU7.js → discover-lgTYwoQp.js} +2 -2
- package/dist/dispatch-BsW_1m7e.js +14 -0
- package/dist/{docs-DWegDRiu.js → docs-DFs7lOJp.js} +1 -1
- package/dist/{docs-BX65z2Iu.js → docs-DKROso-4.js} +2 -2
- package/dist/{enable-Cfzeau2x.js → enable-D2DqZvcU.js} +1 -1
- package/dist/{env-CRf6wkM2.js → env-YRY3I60r.js} +1 -1
- package/dist/exec-DuUkLMqg.js +11 -0
- package/dist/executor-vMppVLB6.js +10 -0
- package/dist/flow/builtin/review.js +1 -1
- package/dist/flow/index.d.ts +1 -1
- package/dist/flow/index.js +1 -1
- package/dist/{flow-kAxxVOiR.js → flow-DmERAnR8.js} +1 -1
- package/dist/{github-actions-DwUzm4hC.js → github-actions-C_NkHVJq.js} +1 -1
- package/dist/http-D01Udu4u.js +1 -0
- package/dist/{index-CZjFX5zV.d.ts → index-B1L4zXZH.d.ts} +2 -1
- package/dist/{init-C4tDFH4G.js → init-Bd6JHzBc.js} +1 -1
- package/dist/integrations-B2CavXR1.js +5 -0
- package/dist/integrations-D1Dwy1kt.js +1 -0
- package/dist/lib/broker.js +2 -2
- package/dist/{list-DuPqU3fk.js → list-4Uo-0v9s.js} +1 -1
- package/dist/{list-COAo7eZd.js → list-B0ujEZhd.js} +3 -3
- package/dist/{list-5Ljf9TxF.js → list-B5oa1Bhy.js} +2 -2
- package/dist/{list-vOvIpbOH.js → list-BjE_l6la.js} +1 -1
- package/dist/{list-J8d_zh-o.js → list-Ck9ibCs1.js} +1 -1
- package/dist/{list-vpyS-hv8.js → list-DhgK4Zc4.js} +1 -1
- package/dist/{list-way5oLO0.js → list-KvL7AUhD.js} +2 -2
- package/dist/{list-DzGuMkQy.js → list-byYLBl1U.js} +1 -1
- package/dist/{load-BpEsAn51.js → load-SnZd7xG1.js} +1 -1
- package/dist/{local-H3uvqEbq.js → local-BRy1EUq2.js} +1 -1
- package/dist/log-view-DeJstSkw.js +3 -0
- package/dist/{login-BBw95-S3.js → login-C-ahtDKV.js} +1 -1
- package/dist/{login-CNmeRAL7.js → login-zpwke8g1.js} +1 -1
- package/dist/{logout-j0dTo_Ib.js → logout-CI6Kf-T6.js} +1 -1
- package/dist/{maintenance-DkLVtqM7.js → maintenance-BAzr9Jlr.js} +1 -1
- package/dist/{match-CXAjDhg7.js → match-DxV1d49D.js} +1 -1
- package/dist/{mcp-BgKb2Cdk.js → mcp-CmcL1MCG.js} +1 -1
- package/dist/{mcp-CsmBtlW9.js → mcp-mhXwtGQT.js} +1 -1
- package/dist/{migrate-N-85_N7J.js → migrate-Czh3TEK5.js} +1 -1
- package/dist/{migrate-D4nzYhk8.js → migrate-w7KfzUAR.js} +1 -1
- package/dist/{model-B79MFtRV.js → model-JRoTH9QK.js} +1 -1
- package/dist/models-C-S7HqSb.js +1 -0
- package/dist/{prompt-CEuBMNhk.js → prompt-CMXmt2l9.js} +4 -4
- package/dist/{push-DbdnbZYt.js → push-B8BhTyZs.js} +1 -1
- package/dist/queue-CirjEskI.js +117 -0
- package/dist/refresh-Bmy2r1Ee.js +1 -0
- package/dist/{remote-miQNTVRa.js → remote-CxFnEjZl.js} +1 -1
- package/dist/{remove-BNzbUhaK.js → remove-C15WLaXT.js} +1 -1
- package/dist/{remove-D-QeeZQL.js → remove-CTZYjjSr.js} +1 -1
- package/dist/{remove-CLpL12Ya.js → remove-CTl-H0f0.js} +1 -1
- package/dist/{remove-CaYH9Cna.js → remove-DX2FVo5b.js} +1 -1
- package/dist/rename-D1g4TnHQ.js +1 -0
- package/dist/{result-BfTfJayl.js → result-D49VN8PM.js} +3 -3
- package/dist/result-DGWyUHYU.js +18 -0
- package/dist/{resume-aZ8yWDBh.js → resume-ywzc7z6A.js} +2 -2
- package/dist/{review-BEhDcX4b.js → review-ZC0xG8XY.js} +2 -2
- package/dist/{rotate-key-BqnKhTK8.js → rotate-key-Bf8_99ck.js} +1 -1
- package/dist/{run-BWbabvub.js → run-D7SJ-ieT.js} +2 -2
- package/dist/run-DoRQSC_K.js +2 -0
- package/dist/{run-BdPjxaZU.js → run-ukCf2Mdy.js} +1 -1
- package/dist/runner-D-REfOUe.js +1 -0
- package/dist/{runner-sUpWJ_k0.js → runner-wDYhkVsM.js} +1 -1
- package/dist/schema-DoNO0dPh.js +1 -0
- package/dist/sdk.d.ts +4 -2
- package/dist/sdk.js +1 -1
- package/dist/serve-BJ_Mbm2m.js +8 -0
- package/dist/{serve-C0WC-QrV.js → serve-C1MMhM1F.js} +2 -2
- package/dist/{serve-CcObDKKQ.js → serve-DtrOHaoS.js} +2 -2
- package/dist/{serve-Ck95047c.js → serve-P9pFkEnE.js} +1 -1
- package/dist/{serve-BTeomYxW.js → serve-yjSw0B1a.js} +1 -1
- package/dist/{server-BxLFZL80.js → server-DDWTnmbx.js} +1 -1
- package/dist/{setup-host-DLd_j2Uw.js → setup-host-L6Rnn5Cz.js} +1 -1
- package/dist/{shared-BLkGRKty.js → shared-XsUX_ZZb.js} +1 -1
- package/dist/{show-DzoQIs75.js → show-CU-jqJ90.js} +1 -1
- package/dist/{show-FC3dJcD-.js → show-DVJmB2u-.js} +1 -1
- package/dist/{status-BU3DR1XU.js → status-CBydR7LE.js} +1 -1
- package/dist/{steer-P_38hRRD.js → steer-Cm_sHZqs.js} +2 -2
- package/dist/{stop-BJGDRPsp.js → stop-DJS7DAPJ.js} +1 -1
- package/dist/{stop-BWY6k6v5.js → stop-TrebIIuv.js} +2 -2
- package/dist/store-BrNMqJgk.js +42 -0
- package/dist/store-j8icrG0v.js +19 -0
- package/dist/task-C8lmcNsf.js +1 -0
- package/dist/{task-DeglY79z.js → task-CpUI19o2.js} +4 -4
- package/dist/task-CvSqiwxo.js +1 -0
- package/dist/{test-BrSrhop9.js → test-CDKz4jY_.js} +1 -1
- package/dist/{tools-CgswhJzh.js → tools-DBFeoosk.js} +1 -1
- package/dist/{types-I5Cwtl_K.d.ts → types-DMGBYB_K.d.ts} +3 -1
- package/dist/{unalias-mMHXqok7.js → unalias-BfQFBnuK.js} +1 -1
- package/dist/{update-DbOWToPy.js → update-C4FFOie8.js} +1 -1
- package/dist/{upgrade-D6oC9HQI.js → upgrade-DLJqMnUQ.js} +2 -2
- package/dist/{usage-Cb8Dtv9V.js → usage-CSh-xwQ2.js} +1 -1
- package/dist/{usage-DMs-IIJC.js → usage-D8mc4qXK.js} +1 -1
- package/dist/{watch-BcMQXGYO.js → watch-CQu-tJKZ.js} +2 -2
- package/dist/{watch-eE2XiwsC.js → watch-DmwaEvoi.js} +2 -2
- package/dist/{wire-BeT1Axeo.js → wire-DzGLZ3-O.js} +1 -1
- package/dist/worker-BLKTMLqa.js +1 -0
- package/dist/worker-nHemduM_.js +9 -0
- package/dist/{workflow-Cshghoas.js → workflow-IrouAus_.js} +1 -1
- package/docs/mcp.md +1 -1
- package/migrations/0000_initial.sql +8 -0
- package/migrations/meta/0000_snapshot.json +75 -1
- package/migrations/meta/_journal.json +1 -1
- package/package.json +1 -1
- package/plugins/agents/skills/coder/SKILL.md +1 -0
- package/plugins/claude/.claude-plugin/plugin.json +1 -1
- package/plugins/claude/skills/dispatch/SKILL.md +1 -1
- package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
- package/plugins/cursor/skills/coder/SKILL.md +1 -0
- package/src/client/index.ts +10 -2
- package/src/client/types.ts +18 -0
- package/src/core/defaults.ts +11 -0
- package/src/core/task/log-view.ts +120 -6
- package/src/server/dash/app/dash/agents/(list)/agent-menu.tsx +4 -0
- package/src/server/dash/app/dash/agents/(list)/agents-grid.tsx +18 -35
- package/src/server/dash/app/dash/agents/(list)/loading.tsx +7 -1
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/layout.tsx +2 -1
- package/src/server/dash/app/dash/layout.tsx +13 -3
- package/src/server/dash/app/dash/settings/[tab]/credentials-list.tsx +20 -13
- package/src/server/dash/app/dash/settings/[tab]/runners-list.tsx +13 -12
- package/src/server/dash/app/dash/tasks/[id]/activity.tsx +49 -4
- package/src/server/dash/app/dash/tasks/[id]/task-actions.tsx +43 -6
- package/src/server/dash/app/dash/tasks/[id]/task-view.css +52 -31
- package/src/server/dash/app/dash/tasks/[id]/task-view.tsx +143 -51
- package/src/server/dash/app/dash/tasks/composer.css +4 -0
- package/src/server/dash/app/dash/tasks/composer.tsx +6 -5
- package/src/server/dash/app/dash/tasks/list/task.ts +29 -1
- package/src/server/dash/app/dash/tasks/list/tasks-list.css +20 -7
- package/src/server/dash/app/dash/tasks/list/tasks-list.tsx +256 -109
- package/src/server/dash/app/dash/tasks/list/tasks-section.tsx +9 -13
- package/src/server/dash/app/dash/tasks/page.tsx +3 -35
- package/src/server/dash/comps/frame/loading-card.tsx +4 -3
- package/src/server/dash/comps/frame/page-head.css +10 -0
- package/src/server/dash/comps/frame/page-head.tsx +3 -2
- package/src/server/dash/comps/frame/task-toasts.tsx +196 -50
- package/src/server/dash/comps/nav/side-toggle.tsx +15 -4
- package/src/server/dash/comps/ui/card.css +1 -0
- package/src/server/dash/comps/ui/filter.css +64 -0
- package/src/server/dash/comps/ui/filter.tsx +336 -0
- package/src/server/dash/comps/ui/icons.ts +2 -0
- package/src/server/dash/comps/ui/menu.tsx +4 -0
- package/src/server/dash/comps/ui/select.tsx +2 -2
- package/src/server/dash/comps/ui/toolbar.css +14 -0
- package/src/server/dash/utils/client.ts +21 -0
- package/src/server/dash/utils/format.ts +12 -4
- package/src/server/dash/utils/paged.ts +14 -6
- package/dist/actions-Mk3FSlpJ.js +0 -20
- package/dist/archive-sweep-Cxbh8yAI.js +0 -1
- package/dist/auth-CBWTmAPA.js +0 -1
- package/dist/auth-Dmn2U7rr.js +0 -1
- package/dist/credentials-l6dsrZLL.js +0 -1
- package/dist/dash/public/assets/chunks/agents-grid-b906da80c31fc035.js +0 -1
- package/dist/dash/public/assets/chunks/composer-49f9e7c5c4dfda3b.js +0 -1
- package/dist/dash/public/assets/chunks/composer-f331d00837143aee.js +0 -1
- package/dist/dash/public/assets/chunks/credentials-list-e6177d0943517929.js +0 -2
- package/dist/dash/public/assets/chunks/format-eb03fc9d9744d960.js +0 -1
- package/dist/dash/public/assets/chunks/heads-1570a3a6db331979.js +0 -1
- package/dist/dash/public/assets/chunks/instructions-d0a4b0d95009c262.js +0 -1
- package/dist/dash/public/assets/chunks/paged-bc6fa0c2b9d52ed7.js +0 -1
- package/dist/dash/public/assets/chunks/runners-list-9fffa50432c470c9.js +0 -1
- package/dist/dash/public/assets/chunks/shared-init-20e199043ff5d00f.js +0 -2
- package/dist/dash/public/assets/chunks/shared-init-88cce66bb3cfe1e5.js +0 -5
- package/dist/dash/public/assets/chunks/task-actions-a9603d520434baab.js +0 -1
- package/dist/dash/public/assets/chunks/task-fa8b82e95e771c4a.js +0 -1
- package/dist/dash/public/assets/chunks/task-view-f7039cb330bcb0b5.js +0 -3
- package/dist/dash/public/assets/chunks/tasks-list-2a905b4a0c3a9042.js +0 -1
- package/dist/dash/public/assets/dash-agents-290a7b21c7dc0c92.css +0 -1
- package/dist/dash/public/assets/dash-agents-new-a7a07bf4ebda24c2.css +0 -1
- package/dist/dash/public/assets/dash-agents-param-slug-69a72fb0bbd14cc2.css +0 -1
- package/dist/dash/public/assets/dash-agents-param-slug-edit-397bdfb2f0ca328c.css +0 -1
- package/dist/dash/public/assets/dash-agents-param-slug-platforms-a7b3b7247c27f1d2.css +0 -1
- package/dist/dash/public/assets/dash-agents-param-slug-settings-8389b7d0555e8ccf.css +0 -1
- package/dist/dash/public/assets/dash-agents-param-slug-tasks-5987b8aea5e8f30d.css +0 -1
- package/dist/dash/public/assets/dash-agents-param-slug-usage-19abc69e1d4e6b0a.css +0 -1
- package/dist/dash/public/assets/dash-settings-param-tab-ac61fdfdd6fd533f.css +0 -1
- package/dist/dash/public/assets/dash-tasks-cc0b1d32874b731c.css +0 -1
- package/dist/dash/public/assets/dash-tasks-param-id-02b8c7bd99cc1090.css +0 -1
- package/dist/dash/public/assets/pnext-client-17ba55bb57a1f4da.js +0 -1
- package/dist/dash/public/assets/pnext-client-43f52a07f8067b1b.js +0 -1
- package/dist/dash/public/assets/pnext-client-4594b693fe612835.js +0 -1
- package/dist/dash/public/assets/pnext-client-73f73e24f8141fb6.js +0 -1
- package/dist/dash/public/assets/pnext-client-7574da4651b40eae.js +0 -1
- package/dist/dash/public/assets/pnext-client-7b3a2c1092cbbb02.js +0 -1
- package/dist/dash/public/assets/pnext-client-816fe5fc96d3f768.js +0 -1
- package/dist/dash/public/assets/pnext-client-86cb956b448b0887.js +0 -1
- package/dist/dash/public/assets/pnext-client-8b64e3c030164288.js +0 -1
- package/dist/dash/public/assets/pnext-client-8f6161084c595a22.js +0 -1
- package/dist/dash/public/assets/pnext-client-9203ec11926e5d04.js +0 -1
- package/dist/dash/public/assets/pnext-client-a38b446f941d44df.js +0 -1
- package/dist/dash/public/assets/pnext-client-bd8d51aaa095e8a4.js +0 -1
- package/dist/dash/public/assets/pnext-client-e9821d1f1bdb281d.js +0 -1
- package/dist/default-De8FXiWz.js +0 -1
- package/dist/dispatch-BKeAch9E.js +0 -14
- package/dist/exec-RZFLclKX.js +0 -11
- package/dist/executor-BvAA7Cgw.js +0 -10
- package/dist/http-Bkg_OQ6r.js +0 -1
- package/dist/integrations-BAgdVDhj.js +0 -5
- package/dist/integrations-D-L3uQRj.js +0 -1
- package/dist/log-view-dg0TlKLA.js +0 -1
- package/dist/models-_5LVGC3m.js +0 -1
- package/dist/queue-C9fSdE_X.js +0 -116
- package/dist/refresh-BDmap1RA.js +0 -1
- package/dist/rename-Bhcb4t9F.js +0 -1
- package/dist/result-D8DsvJDu.js +0 -15
- package/dist/run-Dqe38jX8.js +0 -2
- package/dist/runner-BPpiJvHx.js +0 -1
- package/dist/schema-CU2iFkp8.js +0 -1
- package/dist/serve-DA5I2qXj.js +0 -4
- package/dist/store-B3ZHoBJY.js +0 -8
- package/dist/store-BLi19UDE.js +0 -42
- package/dist/task-C6VAg5WU.js +0 -1
- package/dist/task-b2BK481M.js +0 -1
- package/dist/worker-CXndxmGF.js +0 -9
- package/dist/worker-DrucI22w.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as t}from"./badge-
|
|
1
|
+
import{a as t}from"./badge-215c7b2631dafc69.js";import{$0m as n}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as l}from"./shared-init-933c7f9ee85be766.js";import{$1a as o}from"./shared-init-933c7f9ee85be766.js";import{$1c as a,$1m as c}from"./shared-init-8f2ac936c95a7f7b.js";var d={installed:"installed",created:"app created, not installed yet",none:"no app yet"},u=(r,e)=>r.replace(/\bid="([^"]+)"/g,`id="$1${e}"`).replace(/url\(#([^)]+)\)/g,`url(#$1${e})`).replace(/href="#([^"]+)"/g,`href="#$1${e}"`);function m({brand:r}){let e=c().replace(/[^a-zA-Z0-9_-]/g,"");return r.svg?o("span",{class:"brand-icon","aria-hidden":"true",dangerouslySetInnerHTML:{__html:u(r.svg,`-${e}`)}}):o("svg",{class:"brand-icon",width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",style:{color:r.dark?`light-dark(${r.color}, ${r.dark})`:r.color},children:o("path",{d:r.icon})})}function k({id:r,info:e,state:i}){let s=e?.name??r;return o("span",{class:`pf ${i}`,title:`${s}, ${d[i]}`,"data-s":d[i],children:[e?o(m,{brand:e.brand}):null,s]})}var h={builtin:"built-in",upload:"dashboard",repo:"repository",home:"local"};function v({agent:r}){return o(a,{children:[r.source==="repo"&&r.repo?r.sourceUrl?o("a",{class:"badge link-pill",href:r.sourceUrl,target:"_blank",rel:"noreferrer",title:`Repository agent, opens ${r.repo}`,children:[o(l,{d:n}),r.repo]}):o("span",{class:"badge link-pill",title:"Repository agent",children:[o(l,{d:n}),r.repo]}):o(t,{title:r.local&&r.source==="repo"?"Repo agent, a folder in this repository":r.source==="home"?"Local agent, a folder on this machine":r.source!=="upload"?"Ships with Coder":r.local?"Local agent, a folder on this machine":"Dashboard agent, made and edited here",children:r.local&&r.source==="upload"?"local":h[r.source]??r.source}),r.local?r.commit&&o(t,{title:"Last commit of the agent's folder",children:r.commit.slice(0,7)}):o(t,{children:["v",r.currentVersion]})]})}export{m as a,k as b,v as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{c as J}from"./toolbar-
|
|
1
|
+
"use client";import{c as J}from"./toolbar-8d98313606ad8a2d.js";import"./paged-3ddb6077bef42752.js";import{b as z}from"./badge-215c7b2631dafc69.js";import{c as G,e as y,f as Q,g as C,h as M,i as _}from"./model-options-15c53331a2f28a4f.js";import{a as O}from"./select-a90307706cffa6e0.js";import{a as T,b as I}from"./field-aa0a4b98a976781e.js";import{g as B}from"./format-105c706345987fb2.js";import"./sentinel-b5e032b38604dfd3.js";import"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-933c7f9ee85be766.js";import{$2b as V}from"./shared-init-933c7f9ee85be766.js";import{$1a as e}from"./shared-init-933c7f9ee85be766.js";import{$1g as m,$1j as D,$1k as q}from"./shared-init-8f2ac936c95a7f7b.js";var ee=["low","medium","high"],te=["read-only","workspace-write","auto"],ne=["observe","comment","write"],K=o=>Array.isArray(o)?o.map(String):o&&typeof o=="object"?Object.keys(o):[];function H({name:o,label:g,hint:h,value:f,options:c,blank:b}){let F=f&&!c.includes(f)?[...c,f]:c;return e(T,{label:g,hint:h,group:!0,children:e(O,{name:o,label:g,defaultValue:f??"",options:[["",b],...F.map(v=>[v,v])]})})}function ge({agent:o,models:g,defaults:h,runners:f}){let[c,b]=m(0),[F,v]=m(""),[L,P]=m(""),[U,$]=m(!1),[N,W]=m(""),[p,X]=m(),j=q(null),i=o.settings??{},[R,Y]=m(C(i.engine,i.model)),w=o.definition?.integrations??{},k=Object.keys(w).sort(),S=o.definition,E=S?.engine??h.engine;return D(()=>{let n=N.trim().toLowerCase(),s=[];j.current.querySelectorAll(".vpanel").forEach((l,a)=>{let r=!1;l.querySelectorAll(".field").forEach(t=>{let d=[...t.querySelectorAll("input")].map(A=>A.value).join(" "),u=!n||`${t.textContent} ${d}`.toLowerCase().includes(n);t.hidden=!u,r||=u}),r&&s.push(a)}),X(n?s:void 0),n&&s.length&&!s.includes(c)&&b(s[0])},[N]),e("form",{ref:j,class:"vsettings card frame",onSubmit:async n=>{n.preventDefault();let s=new FormData(n.currentTarget),l=t=>String(s.get(t)??"").trim(),a={};for(let t of["effort","permissions","runner"])l(t)&&(a[t]=l(t));let r=M(R);r.engine&&(a.engine=r.engine),r.model&&(a.model=r.model);for(let t of k){let d=i.integrations?.[t]??{},u={};Array.isArray(d.allowedTools)?u.allowedTools=d.allowedTools:l(`tools:${t}`)&&(u.allowedTools=l(`tools:${t}`));let A=K(w[t]?.triggers),x=s.getAll(`event:${t}`).map(String);A.length&&x.length<A.length&&(u.allowedEvents=x),Object.keys(u).length&&((a.integrations??={})[t]=u)}$(!0),v(""),P("");try{await V.agents.settings(o.id,a),P("Saved. New tasks use these settings.")}catch(t){v(B(t))}$(!1)},children:[e("nav",{class:"tabs vertical","aria-label":"Settings sections",children:[e("p",{class:"tabs-label",children:"Runtime"}),e("button",{type:"button","aria-current":c===0?"true":void 0,class:p&&!p.includes(0)?"miss":void 0,onClick:()=>b(0),children:"How it runs"}),k.length?e("p",{class:"tabs-label",children:"Platforms"}):null,k.map((n,s)=>e("button",{type:"button","aria-current":c===s+1?"true":void 0,class:p&&!p.includes(s+1)?"miss":void 0,onClick:()=>b(s+1),children:n},n))]}),e("div",{class:"vbody",children:[e("div",{class:"vsearch",children:[e(J,{value:N,label:"Search settings",onInput:W}),p&&!p.length?e("span",{class:"muted",children:"No setting matches."}):null]}),e("section",{class:"vpanel",hidden:c!==0,children:[e("h2",{children:"How it runs"}),e("p",{class:"muted",children:"Anything left on Default follows the agent's own definition."}),e("div",{class:"fields",children:[e(T,{label:"Model",hint:"picking a model picks its engine",group:!0,children:e(O,{label:"Model",value:R,options:[...Q(g,y([G[E]??E,S?.model??h.engines[E]?.model].filter(Boolean).join(" \xB7 "))),...!i.engine&&i.model?[[C(void 0,i.model),i.model]]:[]],headings:_(g),onChange:Y})}),e(H,{name:"effort",label:"Effort",value:i.effort,options:ee,blank:y(S?.effort??h.engines[M(R).engine??E]?.effort)}),e(H,{name:"permissions",label:"Permissions",hint:"what the runner may change in the checkout",value:i.permissions,options:te,blank:y(S?.permissions??"read-only")}),f.length>1?e(T,{label:"Runs on",group:!0,children:e(O,{name:"runner",label:"Runs on",defaultValue:i.runner??"",options:f})}):null]})]}),k.map((n,s)=>{let l=i.integrations?.[n]??{},a=K(w[n]?.triggers),r=l.allowedEvents,t=w[n]?.tools;return e("section",{class:"vpanel",hidden:c!==s+1,children:[e("h2",{children:n}),e("p",{class:"muted",children:"Narrow what the agent does here. Only the events its definition declares can be picked."}),Array.isArray(l.allowedTools)?e("div",{class:"field",children:[e("span",{children:"Platform access"}),e(z,{values:l.allowedTools})]}):e(H,{name:`tools:${n}`,label:"Platform access",hint:"observe reads, comment also replies, write also pushes and merges",value:typeof l.allowedTools=="string"?l.allowedTools:void 0,options:ne,blank:y(typeof t=="string"?t:t?"custom":"observe")}),a.length?e("div",{class:"field",children:[e("span",{children:["Events ",e("small",{children:"all declared events unless you narrow it"})]}),e("div",{class:"checks",children:a.map(d=>e("label",{class:"check",children:[e("input",{type:"checkbox",name:`event:${n}`,value:d,defaultChecked:!r||r.includes(d)}),d]},d))})]}):null]},n)}),e("div",{class:"form-actions save",children:[e("button",{class:"btn",disabled:U,children:"Save"}),e(I,{value:F}),L?e("span",{class:"flash",role:"status",children:L}):null]})]})]})}export{ge as AgentSettingsForm};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a as v}from"./filter-91144ac2eec6297f.js";import{a as b,b as w,c as A}from"./agent-pills-b6a6da91c9559d9f.js";import{a as N}from"./tail-4891e727ee526792.js";import{a as C,b as I,c as k,d as P}from"./toolbar-8d98313606ad8a2d.js";import{b as y}from"./paged-3ddb6077bef42752.js";import"./badge-215c7b2631dafc69.js";import{b as h}from"./card-e86dcc81326d2b14.js";import{f as c}from"./format-105c706345987fb2.js";import"./sentinel-b5e032b38604dfd3.js";import{$1a as i}from"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-7f81ae7bc8c82438.js";import{$0a as u}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as f}from"./shared-init-933c7f9ee85be766.js";import{$2b as g}from"./shared-init-933c7f9ee85be766.js";import{$1a as e}from"./shared-init-933c7f9ee85be766.js";import{$1c as m}from"./shared-init-8f2ac936c95a7f7b.js";function R(){return e(i,{class:"btn",href:"/dash/agents/new",children:[e(f,{d:u}),"New agent"]})}function B({agent:n,catalog:o}){return e("li",{class:"agent-card",children:[e("div",{class:"bc-head",children:[e("span",{class:"mark",children:c(n.name)}),e("div",{class:"grow",children:[e("h3",{children:e(i,{class:"cover",href:"/dash/agents/[slug]",params:{slug:n.id},children:n.name})}),e("span",{class:"pills",children:e(A,{agent:n})})]})]}),e("div",{class:"lead-clamp",children:e("span",{children:n.description??"No description yet."})}),n.platforms.length?e("span",{class:"pfs",children:n.platforms.map(r=>e(w,{id:r.id,info:o.find(a=>a.id===r.id),state:r.state},r.id))}):e("span",{class:"pfs muted",children:"Listens nowhere yet"})]})}var D=[["","All agents"],["dashboard","Dashboard agents"],["repository","Repository agents"],["builtin","Built-in"]];function _({first:n,limit:o,filters:r,catalog:a,head:q,children:L}){let{values:l,set:p,query:K}=I(r),s=y({name:"agents",fetchPage:t=>g.agents.list({cursor:t,limit:o,...l}),query:K,first:n,initial:C(r)});return e(m,{children:[e(P,{head:q,action:e(R,{}),children:[e(k,{value:l.q,label:"Search agents",onInput:t=>p("q",t,250)}),e(v,{name:"agents",facets:[{key:"platform",label:"Platform",options:a.map(t=>[t.id,t.name]),icon:t=>{let d=a.find(S=>S.id===t);return d?e(b,{brand:d.brand}):void 0}},{key:"type",label:"Source",options:D}],values:l,onChange:p})]}),L,s.rows.length?e("ul",{class:"agent-grid","aria-busy":s.stale,children:s.rows.map(t=>e(B,{agent:t,catalog:a},t.id))}):s.stale?null:e(h,{title:"No agents match",children:"Try another search or filter."}),e(N,{noun:"agents",...s})]})}export{_ as AgentsGrid,D as KINDS};
|
package/dist/dash/public/assets/chunks/{badge-676b01e0c615bf7b.js → badge-215c7b2631dafc69.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$1a as s}from"./shared-init-933c7f9ee85be766.js";function o({tone:n,title:t,children:e}){return s("span",{class:n?`badge ${n}`:"badge",title:t,children:e})}function l({values:n}){let t=n.filter(e=>!!e);return t.length?s("span",{class:"chips",children:t.map(e=>s("span",{class:"chip",children:e},e))}):s("span",{class:"muted",children:"None"})}function d({value:n,title:t}){return s("span",{class:"id",title:t??n,children:n})}export{o as a,l as b,d as c};
|
package/dist/dash/public/assets/chunks/{card-e0901d68b79dfa93.js → card-e86dcc81326d2b14.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$1a as n}from"./shared-init-933c7f9ee85be766.js";function p({title:a,count:e,actions:t,tone:s,children:i}){return n("section",{class:s?`card frame ${s}`:"card frame",children:[a?n("div",{class:"bar",children:[n("h2",{children:[a,e!==void 0?n("span",{class:"n",children:e}):null]}),t?n("span",{class:"bar-r",children:t}):null]}):null,i]})}function c({title:a,children:e}){return n("div",{class:"empty",children:[n("b",{children:a}),e?n("span",{children:e}):null]})}function u({label:a,inline:e,dots:t,h:s}){return n(e?"span":"div",{class:e?"loading inline":"loading",role:"status",style:s?`--h:${s}px`:void 0,children:n("span",{children:[t?n("i",{class:"dots",children:[n("b",{}),n("b",{}),n("b",{})]}):n("i",{class:"spin"}),a]})})}export{p as a,c as b,u as c};
|
package/dist/dash/public/assets/chunks/{combo-952a457d52360d88.js → combo-09e246dc9a517fa8.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$0p as D}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as C}from"./shared-init-933c7f9ee85be766.js";import{$1a as r}from"./shared-init-933c7f9ee85be766.js";import{$1c as E,$1g as l,$1j as m,$1k as g,$1m as L}from"./shared-init-8f2ac936c95a7f7b.js";var q=50;function F({label:v,name:H,class:I,options:b,placeholder:T,value:d,onChange:w,onOpen:M}){let[A,i]=l(!1),[P,a]=l(!1),[o,c]=l(0),[y,S]=l(""),$=g(null),u=g(null),p=L(),k=P?d.trim().toLowerCase():"",s=(k?b.filter(e=>e.toLowerCase().includes(k)):b).slice(0,q),n=A&&s.length>0,x=e=>{let t=s[e];t&&w(t),i(!1),a(!1)};return m(()=>{if(!n)return;u.current?.showPopover();let e=()=>{let t=$.current?.getBoundingClientRect(),f=u.current;if(!t||!f)return;let h=innerHeight-t.bottom-12,W=h<Math.min(f.scrollHeight,240)&&t.top>h;S(`left:${Math.round(Math.min(t.left,innerWidth-f.offsetWidth-8))}px;min-width:${Math.round(t.width)}px;`+(W?`bottom:${Math.round(innerHeight-t.top+4)}px;max-height:${Math.round(Math.min(360,t.top-12))}px`:`top:${Math.round(t.bottom+4)}px;max-height:${Math.round(Math.min(360,h))}px`))};return e(),addEventListener("resize",e),addEventListener("scroll",e,!0),()=>{removeEventListener("resize",e),removeEventListener("scroll",e,!0)}},[n,s.length]),m(()=>{n&&u.current?.querySelector(`[data-index="${o}"]`)?.scrollIntoView({block:"nearest"})},[n,o,y]),r(E,{children:[r("input",{ref:$,name:H,class:I,role:"combobox","aria-label":v,"aria-autocomplete":"list","aria-expanded":n,"aria-controls":`${p}-list`,"aria-activedescendant":n?`${p}-${o}`:void 0,autocomplete:"off",placeholder:T,value:d,onInput:e=>{w(e.currentTarget.value),a(!0),c(0),i(!0)},onFocus:()=>{a(!1),i(!0),M?.()},onClick:()=>{i(!0),M?.()},onBlur:()=>{i(!1),a(!1)},onKeyDown:e=>{if(n){if(e.key==="ArrowDown")c((o+1)%s.length);else if(e.key==="ArrowUp")c((o-1+s.length)%s.length);else if(e.key==="Enter")x(o);else if(e.key==="Escape")i(!1);else return;e.preventDefault()}}}),n?r("div",{ref:u,id:`${p}-list`,class:"pop select-pop",popover:"manual",role:"listbox","aria-label":v,style:y||"visibility:hidden",onMouseDown:e=>e.preventDefault(),children:s.map((e,t)=>r("div",{id:`${p}-${t}`,"data-index":t,role:"option","aria-selected":e===d,class:t===o?"pop-item on":"pop-item",onPointerMove:()=>t!==o&&c(t),onClick:()=>x(t),children:[r("span",{class:"grow",children:e}),r(C,{d:D})]},e))}):null]})}export{F as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as Fe}from"./connect-repositories-77591110836bdf03.js";import{a as pe,b as qe,c as je,e as Ke}from"./composer-data-6f7608fed13f3dd7.js";import{b as Ie,c as le,e as ce,g as G,h as Be}from"./model-options-15c53331a2f28a4f.js";import{a as H}from"./select-a90307706cffa6e0.js";import{j as He}from"./task-ddfddeaf07fb684c.js";import{c as Pe}from"./card-e86dcc81326d2b14.js";import{b as ne}from"./field-aa0a4b98a976781e.js";import{a as Se,g as C}from"./format-105c706345987fb2.js";import{$3e as Ae}from"./shared-init-7f81ae7bc8c82438.js";import{$6a as Oe}from"./shared-init-7f81ae7bc8c82438.js";import{$1a as re}from"./shared-init-7f81ae7bc8c82438.js";import{$5d as ae}from"./shared-init-7f81ae7bc8c82438.js";import{$0C as Ne,$0f as Re,$0o as Me,$0p as se,$0r as ie,$0t as Te,$0w as De}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as b}from"./shared-init-933c7f9ee85be766.js";import{$2b as h}from"./shared-init-933c7f9ee85be766.js";import{$1a as t}from"./shared-init-933c7f9ee85be766.js";import{$1c as g,$1g as u,$1i as U,$1j as xe,$1k as T,$1m as Le}from"./shared-init-8f2ac936c95a7f7b.js";var it=[["","Default"],["low","Low"],["medium","Medium"],["high","High"]],at=[["","Default"],["read-only","Read-only"],["workspace-write","Write"],["auto","Auto"]],J="coder:draft",V="+connect",de="+other",ue="+pick",fe="+clone",lt=/^\/(review|flow)(?:\s+(\S+))?\s*([\s\S]*)$/,ct=(a,s,i)=>[["",a],...[...new Set([s,...i])].filter(Boolean).map(l=>[l,l])],pt=(a,s,i)=>[["",a],...s&&!i.some(([l])=>l===s)?[[s,s]]:[],...i],We=(a,s,i)=>{let l=[...a.recent,...s].map(p=>p.path);return[["","No folder"],...[...new Set([...l,i])].filter(p=>p&&p!==a.current.path).map(p=>[p,He(p)]),a.picker?[ue,"Choose\u2026"]:[de,"Type a path\u2026"],[fe,"Repository\u2026"]]};function dt(a,s){let i=[["",[["",`Default \xB7 ${[le[s.engine]??s.engine,s.engines[s.engine]?.model].filter(Boolean).join(" ")}`]]]];for(let l of Ie)a[l]?.length&&i.push([le[l]??l,[[G(l,""),ce(s.engines[l]?.model)],...a[l].map(p=>[G(l,p),p])]]);return i}var ze=(a,s)=>{let i=a.find(([l])=>l&&l===s)?.[1];return[["",ce(i?.toLowerCase())],...a.slice(1)]};function ut(a){let s=a.currentTarget,i=document.querySelector(`[popovertarget="${s.id}"]`)?.getBoundingClientRect();if(a.newState!=="open"||!i)return;let l=Math.round(i.bottom+6);s.style.top=`${l}px`,s.style.right=`${Math.round(document.documentElement.clientWidth-i.right)}px`,s.style.maxHeight=`${Math.max(160,window.innerHeight-l-16)}px`}function ft(a){return Object.fromEntries(a.split(/\s+/).filter(Boolean).map(s=>{let i=s.indexOf("="),l=i<0?"true":s.slice(i+1);try{return[i<0?s:s.slice(0,i),JSON.parse(l)]}catch{return[s.slice(0,i),l]}}))}function mt({id:a,entries:s,active:i,selected:l,onActive:p}){return t(g,{children:s.flatMap((m,w)=>[m.head?t("div",{class:"pop-label",role:"presentation",children:m.head},`h:${m.key}`):null,t("div",{id:`${a}-${w}`,role:"option","aria-selected":l===void 0?w===i:m.key===l,class:w===i?"pop-item on":"pop-item",onMouseDown:r=>r.preventDefault(),onPointerMove:()=>w!==i&&p(w),onClick:m.pick,children:[t("span",{class:"grow",children:m.label}),m.hint?t("small",{children:m.hint}):null,l===void 0?null:t(b,{d:se})]},m.key)])})}var gt=(a,s,i,l)=>{let p={ArrowDown:1,ArrowUp:-1}[a.key];return!p||!i?!1:(a.preventDefault(),l((s+p+i)%i),!0)};function ht({reason:a,back:s="/dash/tasks"}){return t("div",{class:"notice slim",role:"status",children:[t(b,{d:De}),t("span",{class:"grow",children:a||"Tasks need a model credential to run."}),t(re,{class:"btn outline sm",href:"/dash/settings/[tab]",params:{tab:"credentials"},search:{return:s},children:"Add credential"})]})}function bt({initial:a,data:s,defaults:i,missing:l,connectLabel:p,tz:m}){let w=Oe(),[r,X]=u({...qe,...a}),[d,me]=u(s),[k,Z]=u(),[q,ge]=u(!1),[Ue,$]=u(""),[he,Ge]=u(),[Je,Ve]=u(),[D,_]=u(""),[Xe,S]=u(!1),[Ze,j]=u(0),[Q,_e]=u([]),[O,A]=u(""),[N,be]=u(!1),we=T(null),y=T(null),ke=T(null),ye=T(null),R=Le();U(()=>void(O&&ye.current?.focus()),[O]),U(()=>{let e=localStorage.getItem(J);e&&y.current&&!y.current.value&&(y.current.value=e),_(y.current?.value??""),y.current?.focus(),S(!0)},[]);let ve=D.startsWith("/");U(()=>{let e=r.repo;!ve||!e||k?.repo===e||(Z({repo:e}),h.pulls.list(e).then(o=>Z({repo:e,items:o})).catch(o=>{Z({repo:e,items:[]}),$(C(o))}),h.flows.list(e).then(o=>me(c=>({...c,flows:o.map(n=>n.name)}))).catch(()=>{}))},[ve,r.repo]);let P=(e,o)=>{if(o===de)return A("path");if(o===fe)return A("url");if(o===ue)return void Ye();if(o===V)return void Fe("/dash/tasks").catch(c=>$(C(c)));M({[e]:o}),(e==="repo"||e==="cwd")&&y.current?.focus({preventScroll:!0})},M=e=>{let o={...r,...e};X(o),document.cookie=`compose=${encodeURIComponent(JSON.stringify(o))}; path=/; max-age=31536000; samesite=lax`},Y=e=>{if(!e.ok)return $(e.detail);$(""),A(""),_e(o=>[...o.filter(c=>c.path!==e.folder.path),e.folder]),P("cwd",e.folder.path===d.folders?.current.path?"":e.folder.path)},Qe=async e=>{e.trim()&&Y(await h.folders.check(e.trim()).catch(o=>({ok:!1,detail:C(o)})))},Ye=async()=>{document.body.style.cursor="progress";let e=await h.folders.pick().catch(o=>({ok:!1,detail:C(o)}));document.body.style.cursor="",(e.ok||e.detail)&&Y(e)},et=async e=>{if(!e.trim())return;be(!0),document.body.style.cursor="progress";let o=await h.folders.clone(e.trim()).catch(c=>({ok:!1,detail:C(c)}));document.body.style.cursor="",be(!1),Y(o)},ee=e=>{let o=y.current;o.value=e,localStorage.setItem(J,e),_(e),j(0),S(!1),o.focus(),o.setSelectionRange(e.length,e.length)},K=async e=>{let o=y.current?.value.trim()??"";if(q||N||!(o||e))return;let[,c,n="",v=""]=lt.exec(o)??[];if(!e&&c&&!(c==="flow"?n:/^#?\d+$/.test(n)))return void S(!1);let x=e??(c==="review"?Number(n.replace("#","")):void 0);if(x&&!r.repo)return $("Pick a repository first.");let{agent:I,engine:z,model:B,effort:E,permissions:te,runner:ot}=r,[nt,rt]=d.folders?["",r.cwd]:[r.repo,""],oe=Object.fromEntries(Object.entries({repo:nt,cwd:rt,engine:z,model:B,effort:E,permissions:te,runner:ot}).filter(([,L])=>L));ge(!0),$("");try{let L=x?await h.review({...oe,repo:r.repo,pr:x}):c==="flow"?await h.flows.run(n,{...oe,agent:I,args:ft(v)}):await h.tasks.create({...oe,agent:I,prompt:o});(!e||c)&&localStorage.removeItem(J),Ae(L.task.id,"queued",o||`Review of #${x}`),w.push("/dash/tasks/[id]",{params:{id:L.task.id}})}catch(L){ge(!1),L.status===409?Ge(C(L)):$(C(L))}},f=(()=>{let e=/^\/(\S*)$/.exec(D)?.[1]?.toLowerCase();if(e!==void 0)return{label:"Commands",entries:[{key:"review",label:"/review",hint:"Review a pull request",pick:()=>ee("/review ")},...d.flows.map(n=>({key:`flow ${n}`,label:`/flow ${n}`,hint:`Run the ${n} flow`,pick:()=>ee(`/flow ${n} `)}))].filter(n=>n.key.includes(e)),note:"No command matches."};let o=/^\/flow\s+(\S*)$/.exec(D)?.[1];if(o!==void 0)return{label:"Flows",entries:d.flows.filter(n=>n.includes(o)).map(n=>({key:n,label:n,hint:`Run the ${n} flow`,pick:()=>n===o?void K():ee(`/flow ${n} `)})),note:"No flow matches."};let c=/^\/review\s+#?(\S*)$/.exec(D)?.[1];if(c!==void 0)return r.repo?k?.items?{label:`Pull requests in ${r.repo}`,entries:[...k.items.filter(n=>String(n.number).startsWith(c)||n.title.toLowerCase().includes(c.toLowerCase())).sort((n,v)=>+(String(v.number)===c)-+(String(n.number)===c)).map(n=>({key:`#${n.number}`,label:`#${n.number} ${n.title}`,hint:[n.author,n.createdAt?Se(Date.parse(n.createdAt),m):""].filter(Boolean).join(" \xB7 "),pick:()=>void K(n.number)})),...c?[]:[{key:"",label:r.repo,hint:"Pick another repository",pick:()=>M({repo:""})}]],note:k.items.length?"No open pull request matches.":"No open pull requests."}:{label:`Pull requests in ${r.repo}`,entries:[],note:"loading"}:{label:"Pick a repository",entries:[...d.repos.filter(n=>n.includes(c)).map(n=>({key:n,label:n,pick:()=>P("repo",n)})),{key:V,label:p,pick:()=>P("repo",V)}]}})(),F=!!(f&&!Xe),W=f?Math.min(Ze,Math.max(0,f.entries.length-1)):0;xe(()=>{let e=ke.current;if(!e)return;if(!F)return void(e.matches(":popover-open")&&e.hidePopover());let o=()=>{let c=we.current.getBoundingClientRect();e.style.top=`${Math.round(c.bottom+6)}px`,e.style.left=`${Math.round(c.left)}px`,e.style.width=`${Math.round(Math.min(c.width,460))}px`};return o(),e.matches(":popover-open")||e.showPopover(),addEventListener("scroll",o,!0),addEventListener("resize",o),()=>{removeEventListener("scroll",o,!0),removeEventListener("resize",o)}},[F,D]);let tt=r.engine||i.engine,Ee=i.engines[tt]??{},Ce=d.agents.filter(([e])=>e!=="coder"),$e=[r.agent!=="coder"&&r.agent,r.engine!==i.engine&&r.engine,...["model","effort","permissions"].map(e=>r[e]!==Ee[e]&&r[e]),r.runner&&(d.runners.find(([e])=>e===r.runner)?.[1]??r.runner)].filter(Boolean).join(" \xB7 ");return t(g,{children:[t("form",{ref:we,class:"composer",onSubmit:e=>{e.preventDefault(),K()},children:[t("textarea",{ref:y,name:"prompt",rows:1,role:"combobox","aria-label":"What should the agent do?","aria-autocomplete":"list","aria-expanded":F,"aria-controls":`${R}-slash`,"aria-activedescendant":F&&f?.entries.length?`${R}-slash-${W}`:void 0,placeholder:pe,autofocus:!0,onFocus:()=>S(!1),onBlur:()=>S(!0),onInput:e=>{let o=e.currentTarget.value;localStorage.setItem(J,o),_(o),j(0),S(!1)},onKeyDown:e=>{if(!e.isComposing){if(F&&f){if(gt(e,W,f.entries.length,j))return;if(e.key==="Escape")return e.preventDefault(),S(!0);if(f.entries.length&&(e.key==="Enter"&&!e.shiftKey||e.key==="Tab"))return e.preventDefault(),f.entries[W].pick()}e.key!=="Enter"||e.shiftKey||(e.preventDefault(),K())}}}),t("div",{class:"composer-line",children:[d.folders?O?t(g,{children:[t("input",{class:"folder-path","aria-label":O==="url"?"Repository URL":"Folder path",ref:ye,placeholder:O==="url"?"https://github.com/owner/repo":"Absolute path or ~/\u2026",readOnly:N,"aria-busy":N,onKeyDown:e=>{if(N)return e.preventDefault();if(e.key==="Escape")return e.preventDefault(),$(""),A("");e.key!=="Enter"||e.isComposing||(e.preventDefault(),(O==="url"?et:Qe)(e.currentTarget.value))},onBlur:e=>!N&&!e.currentTarget.value.trim()&&A("")}),N?t("span",{class:"folder-busy",children:"Cloning\u2026"}):null]}):t("span",{class:"folder",title:r.cwd||d.folders.current.path,children:t(H,{label:"Folder",value:r.cwd,options:We(d.folders,Q,r.cwd),subs:Object.fromEntries(We(d.folders,Q,r.cwd).flatMap(([e])=>e&&e!==de&&e!==ue&&e!==fe?[[e,Q.find(o=>o.path===e)?.url??e]]:[])),onChange:e=>P("cwd",e)})}):t(H,{label:"Repository",value:r.repo,options:[...ct("No repository",r.repo,d.repos),[V,p]],onChange:e=>P("repo",e)}),t("button",{type:"button",class:"quiet",popovertarget:`${R}-settings`,"aria-label":"Run options",title:"Model, effort, permissions and more",children:[t(b,{d:Ne}),$e?t("span",{children:$e}):null]}),t("button",{class:"btn sm send",disabled:q||!D.trim(),"aria-busy":q,"aria-label":q?"Starting task":"Start task",title:"Start task (Enter)",children:t(b,{d:Te})})]}),O==="url"?t("small",{class:"folder-hint",children:"Uses this machine's git logins"}):null,t(ne,{value:Ue}),t("div",{id:`${R}-settings`,class:"pop composer-settings",popover:"auto",onBeforeToggle:ut,children:[t("p",{class:"pop-label",children:"Model"}),t("div",{role:"group","aria-label":"Model",class:"pop-radios",children:[dt(d.models,i).map(([e,o])=>t(g,{children:[e?t("p",{class:"pop-group",children:e}):null,o.map(([c,n])=>{let v=c===G(r.engine,r.model),x=Be(c),I=ze(it,i.engines[x.engine||i.engine]?.effort),z=v&&r.effort?I.find(([E])=>E===r.effort)?.[1]:void 0,B=Je===c;return t(g,{children:[t("div",{class:"pop-row",children:[t("button",{type:"button",role:"menuitemradio","aria-checked":v,class:v?"pop-item on":"pop-item",onClick:E=>{M({...x,effort:""}),E.currentTarget.closest("[popover]")?.hidePopover()},children:[t("span",{class:"grow",children:n}),z?t("small",{children:z.toLowerCase()}):null,v?t(b,{d:se}):null]}),t("button",{type:"button",class:"pop-chev","data-keep":!0,"aria-label":`Effort for ${n}`,"aria-expanded":B,onClick:()=>Ve(B?void 0:c),children:t(b,{d:Re})})]}),B?t("div",{role:"group","aria-label":`Effort for ${n}`,class:"pop-sub",children:I.map(([E,te])=>t(ae,{on:v&&r.effort===E,onPick:()=>{M({...x,effort:E}),document.getElementById(`${R}-settings`)?.hidePopover()},children:te},E))}):null]},c)})]},e)),t(re,{class:"pop-item add-models",href:"/dash/settings/[tab]",params:{tab:"models"},children:[t(b,{d:ie}),t("span",{class:"grow",children:"Add models"})]})]}),t("p",{class:"pop-label",children:"Permissions"}),t("div",{role:"group","aria-label":"Permissions",children:ze(at,Ee.permissions??"auto").map(([e,o])=>t(ae,{on:r.permissions===e,onPick:()=>M({permissions:e}),children:o},e))}),Ce.length||r.agent!=="coder"?t(g,{children:[t("p",{class:"pop-label",children:"Agent"}),t(H,{label:"Agent",value:r.agent,options:pt("coder",r.agent,Ce),onChange:e=>M({agent:e})})]}):null,d.runners.length>1?t(g,{children:[t("p",{class:"pop-label",children:"Runs on"}),t(H,{label:"Runs on",options:d.runners,value:r.runner,onChange:e=>M({runner:e})})]}):null]}),t("div",{ref:ke,id:`${R}-slash`,class:"pop composer-slash",popover:"manual",role:"listbox","aria-label":f?.label??"Commands",children:f?t(g,{children:[t("div",{class:"pop-label",children:f.label}),t(mt,{id:`${R}-slash`,entries:f.entries,active:W,onActive:j}),f.note==="loading"?t(Pe,{label:"Loading pull requests",inline:!0}):f.note&&!f.entries.length?t("p",{class:"pop-note",children:f.note}):null]}):null})]}),he===void 0||l?null:t(ht,{reason:he})]})}function wt(){return t("div",{class:"composer","aria-hidden":"true",children:[t("textarea",{rows:1,disabled:!0,tabIndex:-1,placeholder:pe}),t("div",{class:"composer-line"})]})}function jt({agent:a}){let s=T(null),[i,l]=u(),[p,m]=u(""),[w,r]=u(!1),X=T(),d=()=>X.current??=Ke(h).then(l,k=>m(C(k)));return t(g,{children:[t("button",{type:"button",class:"btn new-task",onClick:()=>{r(!0),s.current?.showModal(),d()},onPointerEnter:d,onFocus:d,children:[t(b,{d:ie}),"New task"]}),t("dialog",{ref:s,class:"compose-dialog","aria-label":a?`New task for ${a}`:"New task",onClose:()=>r(!1),onClick:k=>k.target===k.currentTarget&&s.current?.close(),children:[t("header",{children:[t("h2",{children:"New task"}),a?t("span",{class:"sub",children:a}):null,t("button",{type:"button",class:"icon-btn","aria-label":"Close",onClick:()=>s.current?.close(),children:t(b,{d:Me})})]}),w?i?t(bt,{...i,initial:{...je(document.cookie),...a?{agent:a}:{}},tz:Intl.DateTimeFormat().resolvedOptions().timeZone}):p?t(ne,{value:p}):t(wt,{}):null]})]})}export{ht as a,bt as b,wt as c,jt as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{a,b,c,d}from"./composer-417166b029f48c47.js";import"./connect-repositories-77591110836bdf03.js";import"./composer-data-6f7608fed13f3dd7.js";import"./model-options-15c53331a2f28a4f.js";import"./select-a90307706cffa6e0.js";import"./task-ddfddeaf07fb684c.js";import"./card-e86dcc81326d2b14.js";import"./field-aa0a4b98a976781e.js";import"./format-105c706345987fb2.js";import"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-7f81ae7bc8c82438.js";import"./wular-pnext-246221e985d863e5-0.js";import"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-933c7f9ee85be766.js";import"./shared-init-933c7f9ee85be766.js";import"./shared-init-933c7f9ee85be766.js";import"./shared-init-246221e985d863e5-2.js";import"./shared-init-246221e985d863e5-2.js";import"./shared-init-8f2ac936c95a7f7b.js";export{b as Composer,c as LoadingComposer,a as NeedsCredential,d as NewTaskButton};
|
package/dist/dash/public/assets/chunks/{confirm-f2fe4ba9905a89c6.js → confirm-5ae484241ad888fd.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$1a as e}from"./shared-init-933c7f9ee85be766.js";import{$1i as s,$1k as c,$1m as u}from"./shared-init-8f2ac936c95a7f7b.js";function D({open:n,title:d,body:i,confirmLabel:f,onConfirm:m,onClose:p,busy:t}){let r=c(null),a=u();s(()=>{let o=r.current;n&&!o.open?o.showModal():!n&&o.open&&o.close()},[n]);let l=()=>!t&&p();return e("dialog",{ref:r,class:"confirm","aria-labelledby":a,onCancel:o=>{o.preventDefault(),l()},onClick:o=>o.target===o.currentTarget&&l(),children:e("form",{onSubmit:o=>{o.preventDefault(),m()},children:[e("h2",{id:a,children:d}),i?e("p",{children:i}):null,e("div",{class:"actions",children:[e("button",{type:"button",class:"btn ghost",disabled:t,onClick:l,autofocus:!0,children:"Cancel"}),e("button",{class:"btn destructive","aria-busy":t,children:f})]})]})})}export{D as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{b as i}from"./field-
|
|
1
|
+
"use client";import{b as i}from"./field-aa0a4b98a976781e.js";import{g as l}from"./format-105c706345987fb2.js";import{$0r as m}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as c}from"./shared-init-933c7f9ee85be766.js";import{$2b as a}from"./shared-init-933c7f9ee85be766.js";import{$1a as t}from"./shared-init-933c7f9ee85be766.js";import{$1g as r}from"./shared-init-8f2ac936c95a7f7b.js";function x({apps:u}){let[d,s]=r(""),[p,e]=r(""),b=o=>{e(o),s(""),a.apps.install(o,location.pathname).then(({url:n})=>{location.href=n}).catch(n=>{e(""),s(l(n))})};return t("div",{class:"notice soft",role:"status",children:[t(c,{d:m}),t("span",{class:"grow",children:"Add the built-in agent to your repositories and channels."}),u.map(o=>t("button",{type:"button",class:"btn outline sm",disabled:p!=="",onClick:()=>b(o.id),children:o.label},o.id)),t(i,{value:d})]})}export{x as ConnectApps};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$2b as i}from"./shared-init-933c7f9ee85be766.js";async function u(o){let[a,n]=await Promise.all([i.apps.list(),i.integrations.list()]),r=new Set(n.filter(t=>t.repositories).map(t=>t.id)),e=a.map(t=>t.value).sort((t,l)=>+!!l.builtin-+!!t.builtin).find(t=>r.has(t.integration));if(!e)throw new Error("No app here can reach repositories yet.");let{url:s}=await i.apps.install(e.id,o);location.href=s}export{u as a};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";import{a as V}from"./segmented-de4386ccaac7304d.js";import{a as X}from"./combo-09e246dc9a517fa8.js";import{f as q}from"./list-7270361464fc3c04.js";import"./confirm-5ae484241ad888fd.js";import{a as B}from"./badge-215c7b2631dafc69.js";import{a as Q}from"./select-a90307706cffa6e0.js";import{a as M,c as J}from"./card-e86dcc81326d2b14.js";import{b as R}from"./field-aa0a4b98a976781e.js";import{g as A}from"./format-105c706345987fb2.js";import{$6a as W}from"./shared-init-7f81ae7bc8c82438.js";import"./wular-pnext-246221e985d863e5-0.js";import"./shared-init-7f81ae7bc8c82438.js";import{$5a as z,$5b as Y}from"./shared-init-7f81ae7bc8c82438.js";import{$0B as j,$0p as x,$0q as U}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as T}from"./shared-init-933c7f9ee85be766.js";import{$2b as v,$2d as F}from"./shared-init-933c7f9ee85be766.js";import{$1a as t}from"./shared-init-933c7f9ee85be766.js";import"./shared-init-246221e985d863e5-2.js";import"./shared-init-246221e985d863e5-2.js";import{$1c as _,$1g as c,$1i as w,$1k as K}from"./shared-init-8f2ac936c95a7f7b.js";var Z=[{id:"claude",name:"Claude",key:"ANTHROPIC_API_KEY",hint:"Anthropic API key",signIn:"Claude"},{id:"codex",name:"Codex",key:"OPENAI_API_KEY",hint:"OpenAI API key",signIn:"ChatGPT"},{id:"custom",name:"Custom",key:"OPENAI_API_KEY",hint:"API key"}],st=["OPENAI_API_KEY","OPENROUTER_API_KEY","AI_GATEWAY_API_KEY","GROQ_API_KEY","TOGETHER_API_KEY","ANTHROPIC_API_KEY"],it=[["personal","Just me"],["workspace","Workspace"]],at={signin:"Sign in",key:"API key",token:"Setup token"},rt=new Set(["owner","admin"]);function lt({row:n,busy:i,onAct:d,onSignIn:f,canManage:r}){let u=n.label.endsWith("-subscription"),p=[n.account?.email,n.account?.plan].filter(Boolean).join(" \xB7 "),a=u&&f,m=q(r?{label:u?"Sign out":"Remove",title:u?`Sign out of ${n.label}?`:`Remove ${n.label}?`,body:"Tasks that use it stop running.",onRemove:()=>d("remove")}:void 0);return t("tr",{children:[t("td",{children:[t("span",{class:"row-title",children:[t("b",{children:n.label}),t(B,{children:n.scope}),n.isDefault?t(B,{tone:"acc",children:"default"}):null]}),t("span",{class:"sub mono",children:p?`${p} \xB7 ${n.masked}`:n.masked})]}),t("td",{class:"acts",children:[n.isDefault||!r?null:t("button",{type:"button",class:"btn ghost sm","aria-busy":i==="default",onClick:()=>void d("default"),children:"Make default"}),a||m.item?t(z,{summaryClass:"icon-btn",label:"Actions",summary:t(T,{d:U}),children:[a?t(_,{children:[t(Y,{title:"Sign in again",onClick:a}),t(Y,{title:"Switch account",onClick:a})]}):null,m.item]}):null,m.dialog]})]})}function ct({engine:n,token:i,admin:d,autoFocus:f,onSaved:r}){let[u,p]=c(""),a=K(null),[m,y]=c(n.key),[o,s]=c("personal"),[g,I]=c(!1),[P,k]=c("");w(()=>{f&&a.current?.focus()},[]);let O=()=>{g||!u.trim()||!m.trim()||(I(!0),k(""),v.credentials.add({engine:n.id,env:{[i?"CLAUDE_CODE_OAUTH_TOKEN":m.trim()]:u.trim()},...o==="workspace"&&!i?{workspace:!0}:{}}).then(r).catch(C=>{I(!1),k(A(C))}))};return t("form",{class:"cred-add",method:"post",onSubmit:C=>{C.preventDefault(),O()},children:[n.id==="custom"?t(_,{children:t(X,{label:"Environment variable",name:"custom-var",class:"mono cred-var",options:st,placeholder:"OPENAI_API_KEY",value:m,onChange:y})}):null,t("input",{type:"password",autocomplete:"off",name:`${n.id}-${i?"token":"key"}`,"aria-label":i?"Your claude setup-token":n.hint,placeholder:i?"Paste a claude setup-token, then Enter":`${n.hint}, then Enter`,ref:a,"aria-busy":g,value:u,onInput:C=>p(C.currentTarget.value)}),d?t(Q,{label:"Who can use this key",options:it,value:i?"personal":o,onChange:s,disabled:i}):null,t(R,{value:P}),t("button",{hidden:!0})]})}function N({engine:n,label:i}){let d=[`Sign in with ${n.signIn}`,`Open ${n.signIn} sign-in`,"Open sign-in page","Open again"];return t("span",{class:"sign-label","data-all":d.join(`
|
|
2
|
+
`),children:i})}function dt({login:n,engine:i,onChange:d,onDone:f,onError:r}){let[u,p]=c(!1),[a,m]=c(!1);w(()=>{if(!n.id||n.state==="done"||n.state==="failed")return;let o=setTimeout(()=>{v.credentials.loginStatus(n.id).then(s=>{if(s.state==="done")return f();if(s.state==="failed")return r(s.error??"Sign-in failed. Try again.");d(s)}).catch(s=>r(A(s)))},800);return()=>clearTimeout(o)},[n]);let y=o=>{d({...n,state:"verifying"}),v.credentials.loginCode(n.id,o).catch(s=>r(A(s)))};return n.url?n.engine==="codex"?t("div",{class:"cred-login grow end",role:"status",children:[t(J,{label:"Waiting for approval\u2026",inline:!0}),t("span",{class:"code-box",children:[n.code,t("button",{type:"button",class:"icon-btn","aria-label":u?"Copied":"Copy code",title:u?"Copied":"Copy code",onClick:()=>void navigator.clipboard.writeText(n.code??"").then(()=>p(!0)),children:t(T,{d:u?x:j})})]}),t("a",{class:"btn",href:n.url,target:"_blank",rel:"noopener noreferrer",children:t(N,{engine:i,label:"Open sign-in page"})})]}):t("div",{class:"cred-login grow end",role:"status",children:[a?t("input",{class:"mono",autoFocus:!0,autocomplete:"off","aria-label":`Code from the ${i.signIn} sign-in page`,placeholder:"Paste the code from the sign-in page",disabled:n.state==="verifying",onPaste:o=>{let s=o.clipboardData?.getData("text").trim();s&&(o.preventDefault(),y(s))},onKeyDown:o=>{let s=o.currentTarget.value.trim();o.key==="Enter"&&s&&y(s)}}):null,t("a",{class:"btn",href:n.url,target:"_blank",rel:"noopener noreferrer",onClick:()=>m(!0),children:t(N,{engine:i,label:a?"Open again":`Open ${i.signIn} sign-in`})})]}):t("div",{class:"cred-login grow end",role:"status",children:t("button",{type:"button",class:"btn",disabled:!0,"aria-busy":"true",children:t(N,{engine:i,label:`Sign in with ${i.signIn}`})})})}function wt({status:n}){let[i,d]=c(n),[f,r]=c(""),[u,p]=c(""),a=K(),m=o=>{a.current?.();let s=Date.now()+5*6e4,g=!0,I=F(async()=>{let k=await v.engines.status();g&&(d(k),(k[o]?.signedIn||Date.now()>s)&&(P(),r("")))},2e3),P=()=>{g=!1,I()};a.current=P};w(()=>()=>a.current?.(),[]);let y=(o,s)=>{r(`${o}:${s}`),p(""),v.engines[s](o).then(g=>{d(g),s==="login"?m(o):r("")}).catch(g=>{r(""),p(A(g))})};return t(_,{children:[Z.filter(o=>o.id!=="custom").map(o=>{let s=i[o.id],g=f===`${o.id}:login`;return t(M,{title:o.name,children:t("div",{class:"cred-new",children:[s?.signedIn?t("span",{class:"signed grow",children:[t(T,{d:x}),"Signed in to ",o.name]}):g?t("span",{class:"grow muted",children:["Finish signing in in the window ",o.name," opened."]}):t("span",{class:"grow muted",children:"Not signed in on this machine."}),s?.signedIn?t("button",{type:"button",class:"btn secondary-danger sm",disabled:f===`${o.id}:logout`,onClick:()=>y(o.id,"logout"),children:"Sign out"}):t("button",{type:"button",class:"btn secondary sm","aria-busy":g,disabled:!!f,onClick:()=>y(o.id,"login"),children:"Sign in"}),g?t("button",{type:"button",class:"btn ghost sm",onClick:()=>{a.current?.(),r("")},children:"Cancel"}):null]})},o.id)}),t(R,{value:u}),t("p",{class:"muted",children:"On the local server, custom models read their key variable from this machine's environment."})]})}function Ot({rows:n,me:i,focus:d,back:f}){let r=W(),[u,p]=c(""),[a,m]=c(""),[y,o]=c(""),[s,g]=c({}),[I,P]=c({}),k=!i.user,O=k||rt.has(i.organization?.role??""),C=i.server?.subscriptions;w(()=>m(""),[n]);let E=(e,b)=>g(S=>({...S,[e]:b})),G=e=>{e&&E(e),o(""),f?location.href=f:r.refresh()},H=e=>{p(""),E(e,{id:"",engine:e,state:"starting"}),v.credentials.login(e).then(b=>E(e,b)).catch(b=>{E(e),p(A(b))})},tt=(e,b)=>a?Promise.resolve():(m(`${e.scope}/${e.label}/${b}`),p(""),v.credentials[b==="default"?"setDefault":"remove"](e.label,{workspace:e.scope==="workspace"}).then(()=>r.refresh()).catch(S=>{m(""),p(A(S))}));return t(_,{children:[t(R,{value:u}),Z.map(e=>{let b=n.filter(l=>l.engine===e.id),S=e.id!=="custom"&&!k&&!!C?.[e.id],L=[...S?["signin"]:[],"key",...e.id==="claude"&&!S?["token"]:[]],$=I[e.id]??L[0],et=!b.length||y===e.id,h=e.id==="custom"?void 0:s[e.id];return t(M,{title:e.name,count:b.length||void 0,actions:h?t("button",{type:"button",class:"btn ghost-danger sm",onClick:()=>{E(h.engine),h.id&&v.credentials.cancelLogin(h.id).catch(()=>{})},children:"Cancel"}):b.length&&y!==e.id?t("button",{type:"button",class:"btn ghost sm",onClick:()=>o(e.id),children:"Add"}):null,children:t("div",{id:`engine-${e.id}`,class:"cred-engine",children:[e.id==="custom"?t("p",{class:"muted cred-note",children:["Custom keys back ",t("a",{href:"/dash/settings/models",children:"custom models"}),". A model uses OPENAI_API_KEY unless it names another variable."]}):null,b.length?t("table",{class:"rows creds",children:t("tbody",{children:b.map(l=>{let D=`${l.scope}/${l.label}/`;return t(lt,{row:l,busy:a.startsWith(D)?a.slice(D.length):"",canManage:l.scope==="personal"||O,onAct:nt=>tt(l,nt),...S&&l.scope==="personal"?{onSignIn:()=>H(e.id)}:{}},D)})})}):null,b.length&&e.id!=="custom"?t("p",{class:"muted cred-note",children:["Ready. Built-in models run on this key. Add aliases or custom endpoints on"," ",t("a",{href:"/dash/settings/models",children:"Models"}),"."]}):null,et||h?t("div",{class:"cred-new",children:[L.length>1?t(V,{label:`How to add ${e.name}`,disabled:!!h,options:L.map(l=>[l,at[l]]),value:$,onChange:l=>P({...I,[e.id]:l})}):null,h?t(dt,{login:h,engine:e,onChange:l=>E(h.engine,l),onDone:()=>G(h.engine),onError:l=>{E(h.engine),p(l)}}):$==="signin"?t("div",{class:"cred-login grow end",children:t("button",{type:"button",class:"btn",autoFocus:d===e.id,onClick:()=>H(e.id),children:t(N,{engine:e,label:`Sign in with ${e.signIn}`})})}):t(ct,{engine:e,token:$==="token",admin:O,autoFocus:d===e.id||!!I[e.id],onSaved:()=>G()},$)]}):null]})},e.id)})]})}export{Ot as CredentialsList,wt as EngineLogins};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$4a as u}from"./shared-init-7f81ae7bc8c82438.js";import{$6a as p}from"./shared-init-7f81ae7bc8c82438.js";import{$0e as l}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as m}from"./shared-init-933c7f9ee85be766.js";import{$1a as t}from"./shared-init-933c7f9ee85be766.js";import{$1m as s}from"./shared-init-8f2ac936c95a7f7b.js";function D({page:o,from:i,to:c,today:e,on:f}){let d=p(),a=s();return t("span",{class:f?"menu custom on":"menu custom",children:[t("button",{popovertarget:a,type:"button",children:["Custom",t(m,{d:l})]}),t("form",{id:a,class:"pop date-pop",popover:"auto",onSubmit:r=>{r.preventDefault();let n=new FormData(r.currentTarget),[b,g]=[String(n.get("from")),String(n.get("to"))].sort();r.currentTarget.hidePopover(),d.push(o.href,{params:o.params,search:u(o.search,{from:String(b),to:String(g)}),scroll:!1})},children:[t("label",{class:"field",children:[t("span",{children:"From"}),t("input",{type:"date",name:"from",defaultValue:i,max:e,required:!0})]}),t("label",{class:"field",children:[t("span",{children:"To"}),t("input",{type:"date",name:"to",defaultValue:c,max:e,required:!0})]}),t("button",{class:"btn sm",children:"Apply"})]})]})}export{D as a};
|
package/dist/dash/public/assets/chunks/{editor-34cb529d6d8a4b09.js → editor-804b84f4fe6539cd.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use client";import{a as j}from"./segmented-
|
|
1
|
+
"use client";import{a as j}from"./segmented-de4386ccaac7304d.js";import{a as xe,c as oe,d as Le}from"./heads-a42817b32d2d7f08.js";import{a as Ee,b as Ae,c as Te}from"./agent-pills-b6a6da91c9559d9f.js";import{c as U}from"./toolbar-8d98313606ad8a2d.js";import{a as se}from"./paged-3ddb6077bef42752.js";import{a as ne}from"./badge-215c7b2631dafc69.js";import{b as Oe}from"./instructions-3a1dcaff2d868aa5.js";import{a as Ce}from"./connect-repositories-77591110836bdf03.js";import{c as ee,e as te,f as Se,g as Ie,h as Re,i as Pe}from"./model-options-15c53331a2f28a4f.js";import{a as ke}from"./select-a90307706cffa6e0.js";import{a as Z,c as K}from"./card-e86dcc81326d2b14.js";import{a as A,b as $}from"./field-aa0a4b98a976781e.js";import{f as H,g as D}from"./format-105c706345987fb2.js";import{a as we}from"./sentinel-b5e032b38604dfd3.js";import{$6a as _}from"./shared-init-7f81ae7bc8c82438.js";import"./wular-pnext-246221e985d863e5-0.js";import{$1a as be}from"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-7f81ae7bc8c82438.js";import{$0e as X,$0m as W,$0r as ve,$0u as ye}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as T}from"./shared-init-933c7f9ee85be766.js";import{$2b as q}from"./shared-init-933c7f9ee85be766.js";import{$1a as e}from"./shared-init-933c7f9ee85be766.js";import"./shared-init-246221e985d863e5-2.js";import"./shared-init-246221e985d863e5-2.js";import{$1c as E,$1g as y,$1i as B}from"./shared-init-8f2ac936c95a7f7b.js";function De({agent:s,actions:o,back:c}){return e(E,{children:[e(we,{}),e("header",{class:"hero",children:[e("span",{class:"hero-mark",children:H(s.name)}),e("div",{class:"grow",children:[c,e("div",{class:"title-row",children:[e("h1",{children:s.name}),e(Te,{agent:s})]}),e("p",{class:"lead",children:s.description??"No description yet."})]}),o?e("div",{class:"actions",children:o}):null]})]})}function Ne({port:s}){return e(Z,{title:"Receive platform events",children:e("div",{class:"guide",children:[e("p",{children:["Platforms reach this server through a public address. Expose port ",s," with one of these."]}),e("ul",{class:"steps-list",children:[e("li",{children:e("code",{children:["ngrok http ",s]})}),e("li",{children:e("code",{children:["cloudflared tunnel --url http://localhost:",s]})}),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 $e=/^[\w.-]+\/[\w.-]+$/,nt=s=>/^[0-9a-f]{12,}$/i.test(s)?s.slice(0,7):s;function ot({preview:s,onDone:o}){let[c,l]=y(new Set),[f,i]=y(!1),[b,g]=y("");if(B(()=>l(new Set),[s.repo]),s.error)return e($,{value:s.error});if(!s.agents)return e(K,{label:`Reading ${s.repo}`,h:180});if(!s.agents.length)return e("p",{class:"muted",children:[s.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 w=s.agents.filter(p=>!p.taken&&!c.has(p.id)).map(p=>p.id);return e("form",{class:"import-agents",onSubmit:async p=>{if(p.preventDefault(),!!w.length){i(!0),g("");try{let{imported:k}=await q.agents.import(s.repo,void 0,w);o(k)}catch(k){i(!1),g(D(k))}}},children:[e("ul",{class:"picks-list",children:s.agents.map(p=>e("li",{children:e("label",{class:"check",children:[e("input",{type:"checkbox",checked:!p.taken&&!c.has(p.id),disabled:p.taken,onChange:k=>{let S=new Set(c);k.currentTarget.checked?S.delete(p.id):S.add(p.id),l(S)}}),e("span",{children:[e("b",{children:p.name})," ",e("span",{class:"id",children:p.id}),p.version?e("span",{class:"badge",children:["v",p.version,p.commit?` \xB7 ${nt(p.commit)}`:""]}):null,e("small",{children:p.taken?"An agent with this id already exists here.":p.description??"No description."})]})]})},p.id))}),e("p",{class:"muted",children:["Each push to ",s.repo," that changes an agent publishes its new version here."]}),e("div",{class:"form-actions end",children:[e($,{value:b}),e("button",{class:"btn",disabled:f||!w.length,children:["Import ",w.length===1?"1 agent":`${w.length} agents`]})]})]})}function qe({connected:s,connectLabel:o,tunnel:c,port:l}){let f=_(),[i,b]=y(),[g,w]=y(""),[p,k]=y(),[S,v]=y("");B(()=>{s&&q.repositories.list().then(se(performance.now())).then(d=>b(d.map(P=>P.repo))).catch(d=>{b([]),v(D(d))})},[]);let R=d=>{k({repo:d}),q.agents.preview(d).then(se(performance.now())).then(({agents:P})=>k(L=>L?.repo===d?{repo:d,agents:P}:L)).catch(P=>k(L=>L?.repo===d?{repo:d,error:D(P)}:L))},V=d=>d.length===1?f.push("/dash/agents/[slug]",{params:{slug:d[0]}}):f.push("/dash/agents"),n=g.trim().toLowerCase(),C=(i??[]).filter(d=>d.toLowerCase().includes(n)),x=$e.test(g.trim())&&!i?.includes(g.trim())?g.trim():"";return e("div",{class:"import",children:[e("div",{class:"import-repos",children:[s?e(U,{value:g,label:"Search repositories or type owner/repo",onInput:w}):e(E,{children:[e("div",{class:"notice soft",children:[e(T,{d:W}),e("span",{class:"grow",children:"Connect to list your repositories here."}),e("button",{type:"button",class:"btn outline sm",onClick:()=>void Ce("/dash/agents/new?template=import").catch(d=>v(D(d))),children:o})]}),e("form",{class:"with-btn",onSubmit:d=>{d.preventDefault(),$e.test(g.trim())&&R(g.trim())},children:[e("input",{class:"mono","aria-label":"Repository",placeholder:"owner/repo",autocomplete:"off",value:g,onInput:d=>w(d.currentTarget.value)}),e("button",{class:"btn outline",children:"Look up"})]})]}),e($,{value:S}),s?e("div",{class:"repo-list scroll-box",role:"list",children:i?e(E,{children:[x?e("button",{type:"button",class:"pop-item","aria-pressed":p?.repo===x,onClick:()=>R(x),children:[e(T,{d:W}),e("span",{class:"grow",children:x})]}):null,C.map(d=>e("button",{type:"button",class:"pop-item","aria-pressed":p?.repo===d,onClick:()=>R(d),children:[e(T,{d:W}),e("span",{class:"grow",children:d})]},d)),!C.length&&!x?e("p",{class:"pop-note",children:"No repository matches. Type owner/repo to use another."}):null]}):e(K,{label:"Loading repositories",h:240})}):null,!s&&c?e(Ne,{port:l}):null]}),e("div",{class:"import-preview",children:p?e(E,{children:[e("h3",{children:["Agents in ",p.repo]}),e(ot,{preview:p,onDone:V})]}):e("p",{class:"muted",children:"Pick a repository to see the agents in its .coder/agents folder."})})]})}var Be=[["Brisk","Calm","Clever","Keen","Nimble","Quiet","Steady","Swift","Tidy","Bright","Patient","Lucky"],["Heron","Otter","Falcon","Lynx","Badger","Relay","Beacon","Compass","Lantern","Pilot","Sparrow","Harbor"]],je=s=>s[Math.floor(Math.random()*s.length)],Fe=()=>`${je(Be[0])} ${je(Be[1])}`;var Me=[["read-only","Read only"],["workspace-write","Edit files"],["auto","Auto"]],rt={"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"},it=[["low","Low"],["medium","Medium"],["high","High"]],F=["observe","comment","write"],He={observe:["Observe","reads the platform only"],comment:["Comment","also replies and reacts"],write:["Write","also changes code there, like opening pull requests"]},at=[["blank","Blank","start from nothing"],["helper","Slack helper","answers questions in chat"],["reviewer","Reviewer","reviews pull requests"]],lt=6,ct=`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.`,dt={mention:"replies to @mentions",pull_request:"reviews pull requests",issue:"triages issues",comment:"reads comments",message:"reads messages",reaction:"answers reactions",command:"runs slash commands"},mt=s=>Array.isArray(s)?s.map(String):s&&typeof s=="object"?Object.keys(s):[],We=s=>s.toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40);function ut(s,o){let c=s?.definition,l={name:s?.name??o,id:s?.id??We(o),description:s?.description??c?.description??"",platforms:[],events:{},match:{},tools:{},permissions:c?.permissions??"read-only",systemPrompt:s?.systemPrompt??"",engine:c?.engine??"",model:c?.model??"",effort:c?.effort??""};for(let[f,i]of Object.entries(c?.integrations??{})){if(l.platforms.push(f),l.events[f]=mt(i.triggers),l.match[f]={},i.triggers&&!Array.isArray(i.triggers))for(let[b,g]of Object.entries(i.triggers))g&&typeof g=="object"&&"match"in g&&(l.match[f][b]=String(g.match));l.tools[f]=i.tools}return l}var Ke=s=>Object.entries(s?.events??{}).filter(([,o])=>!o.noisy).map(([o])=>o);function _e(s,o){let c=l=>{let f=o.filter(l).map(i=>i.id);return{platforms:f,events:Object.fromEntries(f.map(i=>[i,Ke(o.find(b=>b.id===i))])),tools:Object.fromEntries(f.map(i=>[i,"comment"])),match:{}}};return s==="reviewer"?{...c(l=>"pull_request"in l.events),description:"Reviews pull requests and answers questions about the code.",systemPrompt:ct}:s==="helper"?{...c(l=>l.id==="slack"),description:"Answers the team's questions in chat.",systemPrompt:pt}:{platforms:[],events:{},tools:{},match:{},description:"",systemPrompt:""}}function ft(s,o,c){let l=s?.triggers&&!Array.isArray(s.triggers)?s.triggers:{},f=Object.fromEntries(o.map(i=>{let b=l[i],g=c[i]?.trim(),w=b&&typeof b=="object"?{...b}:{};return g?w.match=g:delete w.match,Object.keys(w).length?[i,w]:[i,b===void 0||typeof b=="object"?!0:b]}));return Object.values(f).every(i=>i===!0)?o:f}function gt(s){let o=s.platforms.filter(l=>s.events[l]?.length).map(l=>`${s.events[l].map(f=>dt[f]??f.replace(/_/g," ")).join(" and ")} in ${l}`),c=o.length?o.join(", "):"runs from the dashboard and the CLI";return`${c.charAt(0).toUpperCase()}${c.slice(1)}.`}var ht=(s=[],o=[])=>s.length===o.length&&s.every(c=>o.includes(c));function bt(s){if(!s)return[];let o=F.filter((c,l)=>!l||!ht(s.presets[c],s.presets[F[l-1]]));return o.length>1?o:[]}var vt=(s,o)=>s.filter(c=>F.indexOf(c)<=F.indexOf(o)).at(-1)??"";function $s({catalog:s,agent:o,suggested:c="",section:l,models:f,defaults:i={engine:"",engines:{},builtin:{}},template:b,connected:g=!1,connectLabel:w="Connect",tunnel:p=!1,port:k=""}){let S=
|
|
6
|
-
`,...a?{name:a}:{},...n.description.trim()?{description:n.description.trim()}:{}}),v&&n.platforms.length?S.push("/dash/agents/[slug]/platforms",{params:{slug:h}}):S.push("/dash/agents/[slug]",{params:{slug:h}})}catch(u){ie(!1),z(D(u))}},ue=e(E,{children:[e($,{value:ze}),v?e("button",{type:"button",class:"btn outline","aria-pressed":R==="import",onClick:()=>de("import"),children:"Import from repo"}):null,v?null:e(
|
|
7
|
-
You answer questions about acme/app from its source. Cite file paths.`,value:n.systemPrompt,onInput:t=>N("systemPrompt",t.currentTarget.value)}):e("div",{class:"body md md-preview",children:n.systemPrompt.trim()?Oe(n.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:"Where it listens"}),s.length>lt?e(U,{value:re,label:"Search platforms",onInput:Ue}):null]}),e("p",{class:"muted",children:"Each platform becomes an app, set up on the next page. With none it runs from the dashboard and the CLI."}),e("ul",{class:"listen",children:[he.map(t=>{let r=n.platforms.includes(t.id),m=n.events[t.id]??[],h=Object.entries(t.events);return e("li",{class:r?"on":void 0,children:[e("label",{class:"listen-row",children:[e("span",{class:"pf-mark","aria-hidden":"true",children:e(Ee,{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:r,onChange:a=>Xe(t.id,a.currentTarget.checked)})]}),r?e("div",{class:"triggers",children:[e("div",{class:"chips",role:"group","aria-label":`What wakes it on ${t.id}`,children:h.map(([a,u])=>{let O=m.includes(a);return e("button",{type:"button",class:"chip","aria-pressed":O,title:u.description,onClick:()=>Ze(t.id,a,!O),children:a.replace(/_/g," ")},a)})}),h.filter(([a,u])=>u.noisy&&m.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:n.match[t.id]?.[a]??"",onInput:u=>et(t.id,a,u.currentTarget.value)})]},a))]}):null]},t.id)}),he.length?null:e("li",{class:"listen-none muted",children:"No platform matches."})]}),Y.length?e(A,{label:"Platform access",hint:He[ce]?.[1]??"differs between platforms",group:!0,children:e(j,{label:"Platform access",options:Y.map(t=>[t,He[t][0]]),value:ce,onChange:t=>N("tools",Object.fromEntries(n.platforms.map(r=>[r,t])))})}):null]}),e("details",{id:"agent-run",class:"form-part run",open:l==="run",children:[e("summary",{children:[e("h2",{children:"Run settings"}),e("span",{class:"grow muted",children:Je}),e(T,{d:X})]}),e("div",{class:"run-body",children:[e("div",{class:"fields",children:[e(A,{label:"Engine and model",hint:"what runs each task",group:!0,children:e(ke,{label:"Model",value:Ie(n.engine,n.model),options:Se(f,te(Qe)),headings:Pe(f),action:{label:"Add models",icon:
|
|
5
|
+
If asked to change code, describe the change and stop.`,dt={mention:"replies to @mentions",pull_request:"reviews pull requests",issue:"triages issues",comment:"reads comments",message:"reads messages",reaction:"answers reactions",command:"runs slash commands"},mt=s=>Array.isArray(s)?s.map(String):s&&typeof s=="object"?Object.keys(s):[],We=s=>s.toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40);function ut(s,o){let c=s?.definition,l={name:s?.name??o,id:s?.id??We(o),description:s?.description??c?.description??"",platforms:[],events:{},match:{},tools:{},permissions:c?.permissions??"read-only",systemPrompt:s?.systemPrompt??"",engine:c?.engine??"",model:c?.model??"",effort:c?.effort??""};for(let[f,i]of Object.entries(c?.integrations??{})){if(l.platforms.push(f),l.events[f]=mt(i.triggers),l.match[f]={},i.triggers&&!Array.isArray(i.triggers))for(let[b,g]of Object.entries(i.triggers))g&&typeof g=="object"&&"match"in g&&(l.match[f][b]=String(g.match));l.tools[f]=i.tools}return l}var Ke=s=>Object.entries(s?.events??{}).filter(([,o])=>!o.noisy).map(([o])=>o);function _e(s,o){let c=l=>{let f=o.filter(l).map(i=>i.id);return{platforms:f,events:Object.fromEntries(f.map(i=>[i,Ke(o.find(b=>b.id===i))])),tools:Object.fromEntries(f.map(i=>[i,"comment"])),match:{}}};return s==="reviewer"?{...c(l=>"pull_request"in l.events),description:"Reviews pull requests and answers questions about the code.",systemPrompt:ct}:s==="helper"?{...c(l=>l.id==="slack"),description:"Answers the team's questions in chat.",systemPrompt:pt}:{platforms:[],events:{},tools:{},match:{},description:"",systemPrompt:""}}function ft(s,o,c){let l=s?.triggers&&!Array.isArray(s.triggers)?s.triggers:{},f=Object.fromEntries(o.map(i=>{let b=l[i],g=c[i]?.trim(),w=b&&typeof b=="object"?{...b}:{};return g?w.match=g:delete w.match,Object.keys(w).length?[i,w]:[i,b===void 0||typeof b=="object"?!0:b]}));return Object.values(f).every(i=>i===!0)?o:f}function gt(s){let o=s.platforms.filter(l=>s.events[l]?.length).map(l=>`${s.events[l].map(f=>dt[f]??f.replace(/_/g," ")).join(" and ")} in ${l}`),c=o.length?o.join(", "):"runs from the dashboard and the CLI";return`${c.charAt(0).toUpperCase()}${c.slice(1)}.`}var ht=(s=[],o=[])=>s.length===o.length&&s.every(c=>o.includes(c));function bt(s){if(!s)return[];let o=F.filter((c,l)=>!l||!ht(s.presets[c],s.presets[F[l-1]]));return o.length>1?o:[]}var vt=(s,o)=>s.filter(c=>F.indexOf(c)<=F.indexOf(o)).at(-1)??"";function $s({catalog:s,agent:o,suggested:c="",section:l,models:f,defaults:i={engine:"",engines:{},builtin:{}},template:b,connected:g=!1,connectLabel:w="Connect",tunnel:p=!1,port:k=""}){let S=_(),v=!o,[R,V]=y(b??"blank"),[n,C]=y(()=>({...ut(o,c),...v?_e(b??"blank",s):{}})),[x,d]=y(!1),[P,L]=y("write"),[re,Ue]=y(""),[Ve,ie]=y(!1),[ze,z]=y(""),N=(t,r)=>C(m=>({...m,[t]:r})),G=(t,r=n.tools[t])=>Array.isArray(r)?"custom":r??"observe",Q=n.platforms.length?G(n.platforms[0]):"comment",Ge=n.platforms.every(t=>G(t)===Q),ae=n.platforms.map(t=>[t,bt(s.find(r=>r.id===t))]).filter(([,t])=>t.length),Y=F.filter(t=>ae.some(([,r])=>r.includes(t))),le=new Set(ae.map(([t])=>G(t))),ce=le.size===1?vt(Y,[...le][0]):"",pe=(t,r)=>Object.entries(i.builtin[t]??{}).find(([,m])=>m===r)?.[0]??r,M=n.engine||i.engine,J=i.engines[M]??{},Qe=[ee[i.engine]??i.engine,pe(i.engine,i.engines[i.engine]?.model)].filter(Boolean).join(" \xB7 "),Ye=Me.find(([t])=>t===n.permissions),Je=[ee[M]??M,n.model||pe(M,J.model),n.effort||J.effort,Ye?.[1].toLowerCase()].filter(Boolean).join(" \xB7 ");B(()=>{if(!l)return;let t=document.getElementById(`agent-${l}`);t?.scrollIntoView({block:"start"}),t?.querySelector("input, textarea, button")?.focus({preventScroll:!0})},[]);let de=t=>{V(t),t!=="import"&&C(r=>({...r,..._e(t,s)}))},me=t=>C(r=>({...r,name:t,...v&&!x?{id:We(t)}:{}})),Xe=(t,r)=>C(m=>{let h=Object.keys(s.find(a=>a.id===t)?.events??{});return{...m,platforms:r?s.map(a=>a.id).filter(a=>a===t||m.platforms.includes(a)):m.platforms.filter(a=>a!==t),events:r&&!m.events[t]?.length?{...m.events,[t]:Ke(s.find(a=>a.id===t))}:m.events,tools:r&&!m.tools[t]?{...m.tools,[t]:Ge&&Q!=="custom"?Q:"comment"}:m.tools}}),Ze=(t,r,m)=>C(h=>{let a=h.events[t]??[],u=m?h.match:{...h.match,[t]:{...h.match[t],[r]:""}};return{...h,events:{...h.events,[t]:m?[...new Set([...a,r])]:a.filter(O=>O!==r)},match:u}}),et=(t,r,m)=>C(h=>({...h,match:{...h.match,[t]:{...h.match[t],[r]:m}}})),tt=async()=>{let t=n.platforms.find(u=>!n.events[u]?.length);if(t)return z(`Pick at least one event on ${t}, or turn ${t} off.`);let r={};for(let u of n.platforms)r[u]={triggers:ft(o?.definition?.integrations?.[u],n.events[u]??[],n.match[u]??{}),tools:n.tools[u]};let m={...o?.definition,integrations:r,permissions:n.permissions};for(let u of["name","description","engine","model","effort"]){let O=n[u].trim();O?m[u]=O:delete m[u]}let h=v?n.id:o.id,a=n.name.trim();ie(!0),z("");try{let u=o?.files;await q.agents.put(h,{definition:m,...u?{files:u}:{},systemPrompt:n.systemPrompt.trim()?n.systemPrompt:`You are ${a||h}.
|
|
6
|
+
`,...a?{name:a}:{},...n.description.trim()?{description:n.description.trim()}:{}}),v&&n.platforms.length?S.push("/dash/agents/[slug]/platforms",{params:{slug:h}}):S.push("/dash/agents/[slug]",{params:{slug:h}})}catch(u){ie(!1),z(D(u))}},ue=e(E,{children:[e($,{value:ze}),v?e("button",{type:"button",class:"btn outline","aria-pressed":R==="import",onClick:()=>de("import"),children:"Import from repo"}):null,v?null:e(be,{class:"btn ghost",href:"/dash/agents/[slug]",params:{slug:o.id},children:"Cancel"}),e("button",{class:"btn",disabled:Ve||!n.name.trim()||R==="import",children:v?"Create agent":"Publish new version"})]}),fe=v?e(Le,{...xe.newAgent,back:e(oe,{href:"/dash/agents",params:{},label:"Agents"}),actions:ue}):e(De,{agent:o,back:e(oe,{href:"/dash/agents/[slug]",params:{slug:o.id},label:o.name}),actions:ue}),ge=v?e("div",{class:"templates",role:"radiogroup","aria-label":"Start from",children:at.map(([t,r,m])=>e("button",{type:"button",role:"radio","aria-checked":R===t,class:"tile",onClick:()=>de(t),children:[e("b",{children:r}),e("small",{children:m})]},t))}):null;if(R==="import"&&v)return e("div",{class:"agent-new",children:[fe,ge,e(qe,{connected:g,connectLabel:w,tunnel:p,port:k})]});let st=re.trim().toLowerCase(),he=s.filter(t=>`${t.id} ${t.description}`.toLowerCase().includes(st));return e("form",{class:"agent-new",onSubmit:t=>{t.preventDefault(),tt()},children:[fe,ge,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(A,{label:"Name",hint:"its handle on every platform",children:e("span",{class:"with-btn",children:[e("input",{name:"name",required:!0,value:n.name,onInput:t=>me(t.currentTarget.value)}),v?e("button",{type:"button",class:"btn outline",title:"Suggest another name",onClick:()=>me(Fe()),children:[e(T,{d:ye}),"Suggest"]}):null]})}),v?e(A,{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:n.id,onInput:t=>{d(!0),N("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:o.id})]})]}),e(A,{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:n.description,onInput:t=>N("description",t.currentTarget.value)})})]}),e("section",{id:"agent-instructions",class:"form-part",children:[e("div",{class:"part-head",children:[e("h2",{children:"Instructions"}),e(j,{label:"Instructions view",options:[["write","Write"],["preview","Preview"]],value:P,onChange:L})]}),P==="write"?e("textarea",{name:"systemPrompt",rows:10,"aria-label":"Instructions",placeholder:`Markdown. The system prompt every task starts from.
|
|
7
|
+
You answer questions about acme/app from its source. Cite file paths.`,value:n.systemPrompt,onInput:t=>N("systemPrompt",t.currentTarget.value)}):e("div",{class:"body md md-preview",children:n.systemPrompt.trim()?Oe(n.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:"Where it listens"}),s.length>lt?e(U,{value:re,label:"Search platforms",onInput:Ue}):null]}),e("p",{class:"muted",children:"Each platform becomes an app, set up on the next page. With none it runs from the dashboard and the CLI."}),e("ul",{class:"listen",children:[he.map(t=>{let r=n.platforms.includes(t.id),m=n.events[t.id]??[],h=Object.entries(t.events);return e("li",{class:r?"on":void 0,children:[e("label",{class:"listen-row",children:[e("span",{class:"pf-mark","aria-hidden":"true",children:e(Ee,{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:r,onChange:a=>Xe(t.id,a.currentTarget.checked)})]}),r?e("div",{class:"triggers",children:[e("div",{class:"chips",role:"group","aria-label":`What wakes it on ${t.id}`,children:h.map(([a,u])=>{let O=m.includes(a);return e("button",{type:"button",class:"chip","aria-pressed":O,title:u.description,onClick:()=>Ze(t.id,a,!O),children:a.replace(/_/g," ")},a)})}),h.filter(([a,u])=>u.noisy&&m.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:n.match[t.id]?.[a]??"",onInput:u=>et(t.id,a,u.currentTarget.value)})]},a))]}):null]},t.id)}),he.length?null:e("li",{class:"listen-none muted",children:"No platform matches."})]}),Y.length?e(A,{label:"Platform access",hint:He[ce]?.[1]??"differs between platforms",group:!0,children:e(j,{label:"Platform access",options:Y.map(t=>[t,He[t][0]]),value:ce,onChange:t=>N("tools",Object.fromEntries(n.platforms.map(r=>[r,t])))})}):null]}),e("details",{id:"agent-run",class:"form-part run",open:l==="run",children:[e("summary",{children:[e("h2",{children:"Run settings"}),e("span",{class:"grow muted",children:Je}),e(T,{d:X})]}),e("div",{class:"run-body",children:[e("div",{class:"fields",children:[e(A,{label:"Engine and model",hint:"what runs each task",group:!0,children:e(ke,{label:"Model",value:Ie(n.engine,n.model),options:Se(f,te(Qe)),headings:Pe(f),action:{label:"Add models",icon:ve,onPick:()=>S.push("/dash/settings/[tab]",{params:{tab:"models"}})},onChange:t=>C(r=>({...r,...Re(t)}))})}),e(A,{label:"Effort",hint:"how hard the model thinks",group:!0,children:e(j,{label:"Effort",options:[["",te(J.effort)],...it],value:n.effort,onChange:t=>N("effort",t)})})]}),e(A,{label:"Repository access",hint:rt[n.permissions],group:!0,children:e(j,{label:"Repository access",options:Me,value:n.permissions,onChange:t=>N("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:H(n.name)}),e("div",{class:"grow",children:[e("h3",{children:n.name.trim()||"Unnamed agent"}),e("span",{class:"pills",children:[e(ne,{children:"dashboard"}),o?.local?null:e(ne,{children:["v",v?1:o.currentVersion+1]})]})]})]}),e("div",{class:"lead-clamp",children:e("span",{children:n.description.trim()||"No description yet."})}),n.platforms.length?e("span",{class:"pfs",children:n.platforms.map(t=>e(Ae,{id:t,info:s.find(r=>r.id===t),state:"none"},t))}):e("span",{class:"pfs muted",children:"Listens nowhere yet"})]}),e("p",{class:"summary",children:gt(n)})]})]})]})}export{$s as AgentEditor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{a as m,b as k,c as N,e as C,g as u,h as g}from"./list-
|
|
1
|
+
"use client";import{a as m,b as k,c as N,e as C,g as u,h as g}from"./list-7270361464fc3c04.js";import"./confirm-5ae484241ad888fd.js";import{a as p}from"./badge-215c7b2631dafc69.js";import{b as c,c as f,e as S}from"./model-options-15c53331a2f28a4f.js";import{a as w}from"./select-a90307706cffa6e0.js";import"./card-e86dcc81326d2b14.js";import"./field-aa0a4b98a976781e.js";import"./format-105c706345987fb2.js";import{$5b as d}from"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-933c7f9ee85be766.js";import"./shared-init-933c7f9ee85be766.js";import{$1a as t}from"./shared-init-933c7f9ee85be766.js";import{$1c as a,$1g as E}from"./shared-init-8f2ac936c95a7f7b.js";function D({first:s,defaults:R}){let[h,v]=E(""),n=m(s.config),o=n.value.chain??s.effective.chain??c,l=n.value.approvals?.allowedNetworkHosts??[],y=[...o.filter(e=>c.includes(e)),...c.filter(e=>!o.includes(e))],I=(e,i)=>(s.config.engines?.[e]?.[i]?void 0:s.effective.engines?.[e]?.[i])??R[e]?.[i],b=(e,i,L)=>t("label",{children:[i,t(w,{label:`${f[e]} ${i}`,value:n.value.engines?.[e]?.[i]??"",options:[["",S(I(e,i)??(i==="permissions"?"auto":void 0))],...L.map(r=>[r,r])],onChange:r=>void n.patch({engines:{[e]:{[i]:r||null}}})})]});return t(a,{children:[t(g,{title:"Engines",count:o.length,error:n.error,children:y.map(e=>t(u,{title:f[e],badges:t(a,{children:[o[0]===e?t(p,{tone:"acc",children:"default"}):null,o.includes(e)?null:t(p,{children:"off"})]}),sub:t("span",{class:"inline-picks",children:[b(e,"effort",k),b(e,"permissions",N)]}),actions:o[0]===e?null:t("button",{type:"button",class:"btn secondary sm",disabled:h===e,"aria-busy":h===e,onClick:()=>{v(e),n.patch({chain:[e,...o.filter(i=>i!==e)]}).finally(()=>v(""))},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(g,{title:"Allowed network hosts",count:l.length,error:"",add:t(C,{fields:[["host","Host, like registry.npmjs.org"]],onAdd:({host:e})=>n.patch({approvals:{allowedNetworkHosts:[...new Set([...l,e])]}})}),children:l.map(e=>t(u,{title:e,remove:{title:`Remove ${e}?`,body:"Tasks lose access to it.",onRemove:()=>n.patch({approvals:{allowedNetworkHosts:l.filter(i=>i!==e)}})}},e))})]})}export{D as EnginesList};
|
package/dist/dash/public/assets/chunks/{field-901f1f35c18c39c9.js → field-aa0a4b98a976781e.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$1a as n}from"./shared-init-933c7f9ee85be766.js";function s({label:e,hint:l,group:r,children:o}){return n(r?"div":"label",{class:"field",children:[n("span",{children:[e,l?n("small",{children:l}):null]}),o]})}function m({value:e}){return e?n("p",{class:"flash err",role:"alert",children:e}):null}export{s as a,m as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{f as L}from"./paged-3ddb6077bef42752.js";import{$5a as A,$5d as T}from"./shared-init-7f81ae7bc8c82438.js";import{$0d as P,$0f as v,$0o as D,$0v as H}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as R}from"./shared-init-933c7f9ee85be766.js";import{$1a as n}from"./shared-init-933c7f9ee85be766.js";import{$1c as w,$1g as K,$1i as F,$1k as O}from"./shared-init-8f2ac936c95a7f7b.js";var q="coder:filters",W=5,M=5;function B(o,r){if(o.length<=M)return o;let s=o.slice(0,M),i=o.find(([u])=>u===r);return i&&!s.includes(i)?[...s.slice(0,M-1),i]:s}var Q=o=>o.options.filter(([r])=>r).length>=W;function X(o,r,s={}){return r?o.options.find(([i])=>i===r)?.[1]??s[`${o.key}:${r}`]??r:"Any"}function _(o,r,s={}){return o.filter(i=>r[i.key]).map(i=>{let u=X(i,r[i.key],s);return{key:i.key,text:i.inline?u:`${i.label}: ${u}`}})}function j(o,r,s){let i=s.trim().toLowerCase(),u=r.filter(([,a])=>a.toLowerCase().includes(i)),f=[...u,...o.filter(([a])=>!u.some(([t])=>t===a))];return{shown:f.slice(0,L),more:f.length>L}}function S(){try{return JSON.parse(localStorage.getItem(q)??"{}")??{}}catch{return{}}}function z(o,r){let s=S();s[o]=[r,...(s[o]??[]).filter(([i])=>i!==r[0])].slice(0,5),localStorage.setItem(q,JSON.stringify(s))}function le({name:o,facets:r,values:s,onChange:i}){let[u,f]=K({}),a=(c,p)=>f(y=>({...y,...Object.fromEntries(p.map(([E,k])=>[`${c}:${E}`,k]))}));F(()=>{let c=S();for(let p of r)a(p.key,c[`${o}:${p.key}`]??[])},[]);let t=_(r,s,u);return n(w,{children:[n(A,{class:"filter-more",summaryClass:`field-btn${t.length?" on":""}`,summary:t.length?`Filter \xB7 ${t.length}`:"Filter",children:n(G,{name:o,facets:r,values:s,seen:u,onFound:a,onPick:(c,[p,y])=>{!c.inline&&p!==s[c.key]&&(z(`${o}:${c.key}`,[p,y]),a(c.key,[[p,y]])),i(c.key,c.inline||p!==s[c.key]?p:"")}})}),n("span",{class:"filter-chips",children:t.map(c=>n("button",{type:"button",class:"chip",title:c.text,"aria-label":`Clear ${c.text}`,onClick:()=>i(c.key,""),children:[n("span",{class:"grow",children:c.text}),n(R,{d:D})]},c.key))})]})}function G({name:o,facets:r,values:s,seen:i,onFound:u,onPick:f}){let a=O(null),[t,c]=K(),[p,y]=K(""),[E,k]=K(),$=O(0),N=O(),h=p.trim(),C=e=>a.current?.querySelector(e)?.focus(),b=e=>{e&&(N.current=e.key),c(e),y(""),k(void 0)};F(()=>{let e=a.current.closest("[popover]"),l=g=>{g.newState==="open"?C(".pop-item"):b()};return e.addEventListener("toggle",l),()=>e.removeEventListener("toggle",l)},[]),F(()=>{a.current?.closest(":popover-open")&&C(t?"input":`[data-facet="${N.current}"]`)},[t]),F(()=>{if(!t?.search||!h)return;let e=++$.current,l=setTimeout(()=>void t.search(h,L+1).then(g=>{$.current===e&&(k(g),u(t.key,g))},()=>$.current===e&&k([])),200);return()=>clearTimeout(l)},[t,h]);let U=t?t.search&&h?E??[]:t.options.filter(([e,l])=>e&&l.toLowerCase().includes(h.toLowerCase())):[],x=t?j(U,S()[`${o}:${t.key}`]??[],h):{shown:[],more:!1},I=!!(t?.search&&h&&!E);return n("div",{ref:a,class:"filter-panel",onKeyDown:e=>{let l=[...a.current.querySelectorAll("input, .pop-item")],g=l.indexOf(document.activeElement),m=e.target,d=e.key;if(d==="ArrowDown")l[(g+1)%l.length]?.focus();else if(d==="ArrowUp")l[(g-1+l.length)%l.length]?.focus();else if(d==="ArrowRight"&&m.dataset.facet)m.click();else if(d==="ArrowLeft"&&t&&m.tagName!=="INPUT")b();else if(d==="Enter"&&m.tagName==="INPUT")C("[role=menuitemradio]");else if(d==="Escape"&&t)e.stopPropagation(),b();else return;e.preventDefault()},children:t?n(w,{children:[n("button",{type:"button",class:"pop-item","data-keep":!0,onClick:()=>b(),children:[n(R,{d:P}),n("span",{class:"grow",children:t.label})]}),Q(t)?n("label",{class:"search",children:[n(R,{d:H}),n("input",{type:"search",value:p,placeholder:`Find ${t.label.toLowerCase()}`,"aria-label":`Find ${t.label.toLowerCase()}`,autocomplete:"off",onInput:e=>y(e.currentTarget.value)})]}):null,n("div",{role:"group","aria-label":t.label,"aria-busy":I,children:x.shown.map(([e,l])=>n(T,{icon:t.icon?.(e),on:s[t.key]===e,onPick:()=>f(t,[e,l]),children:l},e))}),x.more?n("p",{class:"pop-note",children:"Type to find more."}):!x.shown.length&&!I?n("p",{class:"pop-note",children:"Nothing matches."}):null]}):r.map(e=>{let l=e.options.filter(([m])=>e.inline||m);if(!l.length)return null;let g=B(l,s[e.key]);return n(w,{children:[n("p",{class:"pop-label",children:e.label}),n("div",{role:"group","aria-label":e.label,children:g.map(([m,d])=>n(T,{icon:e.icon?.(m),on:s[e.key]===m,onPick:()=>f(e,[m,d]),children:d},m))}),l.length>g.length?n("button",{type:"button",class:"pop-item","data-keep":!0,"data-facet":e.key,"aria-haspopup":"true",onClick:()=>b(e),children:[n("span",{class:"grow",children:"More"}),n("span",{class:"muted",children:l.length-g.length}),n(R,{d:v})]}):null]},e.key)})})}export{le as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var m=(t,e,n)=>Object.fromEntries(new Intl.DateTimeFormat("en-US",{...n,timeZone:e}).formatToParts(t).map(o=>[o.type,o.value]));function s(t,e,n){if(!t)return"Not available";let o={month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0},r=m(t,e,o),i=`${r.hour}:${r.minute} ${r.dayPeriod}`;if(!n)return`${r.month} ${r.day}, ${r.year}, ${i}`;let a=m(Date.now(),e,o);return r.year!==a.year?`${r.month} ${r.day}, ${r.year}, ${i}`:r.month===a.month&&r.day===a.day?i:`${r.month} ${r.day}, ${i}`}function c(t,e){let n=m(t,e,{hour:"numeric",minute:"2-digit",second:"2-digit",hour12:!0});return`${n.hour}:${n.minute}:${n.second} ${n.dayPeriod}`}function d(t,e){let n=m(t,e,{month:"short",day:"numeric",year:"numeric"});return`${n.month} ${n.day}, ${n.year}`}function $(t){if(t===void 0)return"Not available";if(t<1e3)return`${Math.round(t)} ms`;if(t<6e4)return`${(t/1e3).toFixed(1)} s`;let[e,n]=t<36e5?["min",6e4]:t<1728e5?["h",36e5]:["d",864e5];return`${(t/n).toLocaleString("en-US",{minimumFractionDigits:1,maximumFractionDigits:1})} ${e}`}var f=t=>t.toLocaleString("en-US");function h(t){return(t??"?").trim().charAt(0).toUpperCase()||"?"}var y=t=>t instanceof Error?t.message:String(t);export{s as a,c as b,d as c,$ as d,f as e,h as f,y as g};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as h}from"./sentinel-b5e032b38604dfd3.js";import{$1a as p}from"./shared-init-7f81ae7bc8c82438.js";import{$0d as c}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as d}from"./shared-init-933c7f9ee85be766.js";import{$1a as t}from"./shared-init-933c7f9ee85be766.js";import{$1c as l}from"./shared-init-8f2ac936c95a7f7b.js";var i={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 u(r,a){let s=r?.match(/^\/dash\/tasks\/([^\/?]+)$/);if(s)return{href:"/dash/tasks/[id]",params:{id:decodeURIComponent(s[1])},label:"Task"};let e=r?.match(/^\/dash\/(usage|agents|tasks)(?:\?(.*))?$/);if(!e)return a;let n=new URLSearchParams(e[2]??""),o=i[e[1]].title;return e[1]==="usage"?{href:"/dash/usage",params:{},search:n,label:o}:e[1]==="agents"?{href:"/dash/agents",params:{},search:n,label:o}:{href:"/dash/tasks",params:{},search:n,label:o}}function f(r){if(!r?.startsWith("/"))return;let a=new URL(r,"http://dash");if(a.origin!=="http://dash"||!/^\/dash(\/|$)/.test(a.pathname))return;let[,,s,e]=a.pathname.split("/"),n=i[s]?.title??"Back";if(s==="agents"&&e)try{n=decodeURIComponent(e)}catch{}return{to:{href:a.pathname,search:a.searchParams},label:n}}function E({label:r,back:a,...s}){let e=f(a),n=e?.label??r;return t(p,{class:"back","aria-label":n,...e?.to??s,children:[t(d,{d:c}),t("span",{children:n})]})}function x({title:r,lead:a,actions:s,meta:e,back:n}){return t(l,{children:[t(h,{}),t("header",{class:"head",children:[t("div",{children:[n,t("div",{class:"title-row",children:[t("h1",{children:r}),e?t("div",{class:"meta",children:e}):null]}),a?t("p",{class:"lead",children:a}):null]}),s?t("div",{class:"actions",children:s}):null]})]})}export{i as a,u as b,E as c,x as d};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$1a as t}from"./shared-init-933c7f9ee85be766.js";import{$1b as g,$1g as a,$1j as C,$1k as b}from"./shared-init-8f2ac936c95a7f7b.js";function x({lines:c=10,class:e,children:o}){let n=b(null),[p,h]=a(!1),[l,u]=a(!1);return C(()=>{let s=n.current,i=()=>h(l||s.scrollHeight>s.clientHeight+1);i();let r=new ResizeObserver(i);return r.observe(s),()=>r.disconnect()},[o,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("button",{type:"button",class:"btn ghost sm more-toggle","aria-expanded":l,onClick:()=>u(!l),children:l?"Show less":"Show more"}):null]})}var v=/`([^`\n]+)`|\*\*(.+?)\*\*|__(.+?)__|\*(\S(?:.*?\S)?)\*|(?<!\w)_(\S(?:.*?\S)?)_(?!\w)|\[([^\]\n]+)\]\(([^)\s]+)\)/g,S=/^(?:https?:|mailto:)/i,_=/^\s*(```|~~~)/,$=/^(#{1,6})\s+(.*?)(?:\s+#+)?\s*$/,E=/^\s*(?:([-*+])|\d+[.)])\s+(.*)$/,w=/^\s*(?:#{1,6}\s|```|~~~|[-*+]\s|\d+[.)]\s)/;function d(c){let e=[],o=0;for(let n of c.matchAll(v)){let[p,h,l,u,s,i,r,f]=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||i?e.push(t("em",{children:d(s||i)})):S.test(f)?e.push(t("a",{class:"link",href:f,target:"_blank",rel:"noopener noreferrer",children:d(r)})):e.push(...d(r)),o=n.index+p.length}return o<c.length&&e.push(c.slice(o)),e}function y(c){let e=c.split(/\r?\n/),o=[];for(let n=0;n<e.length;){let p=e[n],h=_.exec(p),l=$.exec(p),u=E.exec(p);if(h){let s=e.findIndex((r,f)=>f>n&&r.trim().startsWith(h[1])),i=s<0?e.length:s;o.push(t("pre",{children:t("code",{children:e.slice(n+1,i).join(`
|
|
2
2
|
`)})})),n=i+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],i=[];for(let r;(r=E.exec(e[n]??""))&&!r[1]===s;n++)i.push(t("li",{children:d(r[2])}));o.push(s?t("ol",{children:i}):t("ul",{children:i}))}else if(!p.trim())n++;else{let s=[];for(;e[n]?.trim()&&(!s.length||!w.test(e[n]));n++)s.length&&s.push(t("br",{})),s.push(...d(e[n]));o.push(t("p",{children:s}))}}return o}function z({text:c}){return t(x,{class:"body md",children:y(c)})}export{x as a,y as b,z as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{b as a,c as b}from"./instructions-3a1dcaff2d868aa5.js";import"./shared-init-933c7f9ee85be766.js";import"./shared-init-8f2ac936c95a7f7b.js";export{b as Instructions,a as markdown};
|
package/dist/dash/public/assets/chunks/{list-87b359bebd26986a.js → list-7270361464fc3c04.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as w}from"./confirm-
|
|
1
|
+
import{a as w}from"./confirm-5ae484241ad888fd.js";import{a as h}from"./card-e86dcc81326d2b14.js";import{b}from"./field-aa0a4b98a976781e.js";import{g as d}from"./format-105c706345987fb2.js";import{$5a as v,$5b as R}from"./shared-init-7f81ae7bc8c82438.js";import{$0q as g}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as C}from"./shared-init-933c7f9ee85be766.js";import{$2b as y}from"./shared-init-933c7f9ee85be766.js";import{$1a as o}from"./shared-init-933c7f9ee85be766.js";import{$1g as u,$1k as f}from"./shared-init-8f2ac936c95a7f7b.js";function T(r,s){if(!s||typeof s!="object"||Array.isArray(s))return s;let e=r&&typeof r=="object"&&!Array.isArray(r)?{...r}:{};for(let[n,t]of Object.entries(s))t===null?delete e[n]:e[n]=T(e[n],t);return e}function q(r){let[s,e]=u(r),[n,t]=u(""),i=f(0),a=f(r);return{value:s,error:n,patch:l=>{let p=++i.current;return t(""),e(m=>T(m,l)),y.config.patch(l).then(m=>(a.current=m,p===i.current&&e(m),!0),m=>(p===i.current&&(e(a.current),t(d(m))),!1))}}}var B=["low","medium","high"],N=["read-only","workspace-write","auto"];function z(r){let[s,e]=u(r),[n,t]=u("");return{value:s,setValue:e,error:n,setError:t,send:async(a,c)=>{t("");try{let l=await a();return c&&e(c(l)),!0}catch(l){return t(d(l)),!1}}}}function G({fields:r,onAdd:s}){return o("form",{class:"add-row",method:"post",onSubmit:async e=>{e.preventDefault();let n=e.currentTarget,t=Object.fromEntries([...new FormData(n)].map(([i,a])=>[i,String(a).trim()]));Object.values(t).some(i=>!i)||await s(t)&&n.reset()},children:[r.map(([e,n])=>o("input",{name:e,placeholder:n,"aria-label":n,autocomplete:"off"},e)),o("button",{class:"btn",children:"Add"})]})}function A(r){let[s,e]=u(!1),[n,t]=u(!1);if(!r)return{};let{title:i,body:a,label:c="Remove",onRemove:l}=r;return{item:o(R,{title:c,danger:!0,onClick:()=>e(!0)}),dialog:s?o(w,{open:!0,title:i,body:a,confirmLabel:c,busy:n,onClose:()=>e(!1),onConfirm:()=>{t(!0),l().finally(()=>{t(!1),e(!1)})}}):null}}function H({title:r,badges:s,sub:e,actions:n,menu:t,remove:i}){let a=A(i);return o("tr",{children:[o("td",{children:[o("span",{class:"row-title",children:[o("b",{children:r}),s]}),e?o("span",{class:"sub mono",children:e}):null]}),o("td",{class:"acts",children:[n,t||a.item?o(v,{summaryClass:"icon-btn",label:"Actions",summary:o(C,{d:g}),children:[t,a.item]}):null,a.dialog]})]})}function J({title:r,count:s,error:e,children:n,add:t}){return o(h,{title:r,count:s,actions:o(b,{value:e}),children:[o("div",{class:"table-scroll",children:o("table",{class:"rows settings",children:o("tbody",{children:n})})}),t]})}export{q as a,B as b,N as c,z as d,G as e,A as f,H as g,J as h};
|
package/dist/dash/public/assets/chunks/{mcp-list-b42f0d2ee463b37d.js → mcp-list-2e715d48666b54ad.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{d as B,g as H,h as _}from"./list-
|
|
1
|
+
"use client";import{d as B,g as H,h as _}from"./list-7270361464fc3c04.js";import"./confirm-5ae484241ad888fd.js";import{c as O}from"./toolbar-8d98313606ad8a2d.js";import{a as q}from"./paged-3ddb6077bef42752.js";import{a as F}from"./badge-215c7b2631dafc69.js";import{a as j}from"./card-e86dcc81326d2b14.js";import{a as v,b as x}from"./field-aa0a4b98a976781e.js";import{g as P}from"./format-105c706345987fb2.js";import"./sentinel-b5e032b38604dfd3.js";import"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-933c7f9ee85be766.js";import{$2b as k}from"./shared-init-933c7f9ee85be766.js";import{$1a as e}from"./shared-init-933c7f9ee85be766.js";import{$1c as y,$1g as h,$1k as M}from"./shared-init-8f2ac936c95a7f7b.js";var J=r=>r.toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40),K=r=>(r.match(/"[^"]*"|'[^']*'|\S+/g)??[]).map(i=>i.replace(/^(["'])(.*)\1$/,"$2")),Y=["docs","search","browser","files"],ee=r=>r.type??(r.url?"http":"stdio"),z=r=>r.url??[r.command,...(r.args??[]).map(i=>i.replace(/\{((?:runtime|package):[^}]+)\}/g,(n,d)=>`{${r.argumentInputs?.find(o=>o.name===d)?.label??d}}`))].join(" ").trim();function w({kind:r,list:i}){return e(y,{children:i.map(n=>e(v,{label:e("span",{class:"mono",children:n.label??n.name}),hint:n.description??(n.required?"required":"optional"),children:e("input",{name:`${r}:${n.name}`,type:n.secret?"password":"text",placeholder:n.placeholder,defaultValue:r==="arg"?n.placeholder:void 0,autocomplete:"off",required:n.required})},n.name))})}function te({onAdd:r,error:i,taken:n}){let[d,o]=h(""),[s,m]=h(),[a,R]=h(),[N,S]=h(!1),T=M(),b=M(null),C=t=>{m({q:t}),k.mcp.search(t.trim()).then(q(performance.now())).then(l=>m(c=>c?.q===t?{q:t,items:l}:c)).catch(l=>m(c=>c?.q===t?{q:t,error:P(l)}:c))},D=t=>{if(o(t),clearTimeout(T.current),!t.trim())return m(void 0);T.current=setTimeout(()=>C(t),250)},U=t=>{R(t),m(void 0),o("");let l=b.current.elements;l.namedItem("name").value=J(t.title),l.namedItem("target").value=z(t),requestAnimationFrame(()=>{let c=b.current;(c?.querySelector("input[name^='arg:'], input[name^='env:'], input[name^='header:']")??c?.querySelector("button"))?.focus()})};return e(j,{title:"Add an MCP server",actions:e(x,{value:i}),children:[e("div",{class:"registry",children:[e(O,{value:d,label:"Search the MCP registry",onInput:D}),s?e("div",{class:"registry-results scroll-box","aria-live":"polite","aria-busy":!s.items&&!s.error,children:s.error?e("div",{class:"registry-note err",role:"alert",children:[e("span",{class:"grow",children:s.error}),e("button",{type:"button",class:"btn ghost sm",onClick:()=>C(s.q),children:"Retry"})]}):s.items?s.items.length?s.items.map(t=>e("button",{type:"button",class:"pop-item rich",onClick:()=>U(t),children:e("span",{class:"grow",children:[e("b",{children:t.title})," ",e(F,{children:t.type}),e("small",{children:t.description||t.name})]})},t.name)):e("p",{class:"registry-note",children:"No server in the registry matches. Type its command or URL below."}):e("div",{role:"status","aria-label":"Searching the registry",children:[0,1,2].map(t=>e("div",{class:"skel",children:[e("i",{}),e("i",{})]},t))})}):null]}),e("form",{ref:b,class:"add-form",method:"post",onSubmit:async t=>{t.preventDefault();let l=[...new FormData(t.currentTarget)].map(([p,u])=>[p,String(u).trim()]),c=p=>l.find(([u])=>u===p)?.[1]??"",E=p=>Object.fromEntries(l.filter(([u,f])=>u.startsWith(p)&&f).map(([u,f])=>[u.slice(p.length),f])),I=c("name"),g=c("target");if(!I||!g)return;let W=a?.command?z(a):void 0,Z=a&&g===W?[a.command,...a.args??[]]:K(g),[Q,...L]=Z.map(p=>p.replace(/\{((?:runtime|package):[^}]+)\}/g,(u,f)=>c(`arg:${f}`))),A=E("env:"),$=E("header:"),V=/^https?:\/\//.test(g)?{url:g,...a?.url===g?{type:a.type}:{},...Object.keys($).length?{headers:$}:{}}:{command:Q,...L.length?{args:L}:{},...Object.keys(A).length?{env:A}:{}};S(!0);let X=await r({name:I,...V,...a?.description?{description:a.description}:{}});S(!1),X&&(b.current?.reset(),R(void 0))},children:e("div",{class:"add-grid",children:[e(v,{label:"Name",children:e("input",{name:"name",placeholder:Y.find(t=>!n.includes(t)),autocomplete:"off",pattern:"[A-Za-z0-9][A-Za-z0-9_\\-]*"})}),e(v,{label:"Command or URL",hint:a?a.description:void 0,children:e("input",{name:"target",class:"mono",placeholder:"npx -y @acme/mcp or https://mcp.acme.dev",autocomplete:"off"})}),e(w,{kind:"arg",list:a?.argumentInputs??[]}),e(w,{kind:"env",list:a?.env??[]}),e(w,{kind:"header",list:a?.headers??[]}),e("button",{class:"btn",disabled:N,children:"Add"})]})})]})}function ge({first:r}){let i=B(r),n=o=>o.mcp??{},d=Object.entries(i.value);return e(y,{children:[e(te,{error:i.error,taken:d.map(([o])=>o),onAdd:o=>i.send(()=>k.mcp.add(o),n)}),e(_,{title:"MCP servers",count:d.length,error:"",children:d.map(([o,s])=>{let m=s.url??[s.command,...s.args??[]].join(" ");return e(H,{title:o,badges:e(F,{children:ee(s)}),sub:s.description?e(y,{children:[e("span",{class:"plain",children:s.description}),e("br",{}),m]}):m,remove:{title:`Remove ${o}?`,body:"New tasks no longer attach it.",onRemove:()=>i.send(()=>k.mcp.remove(o),n)}},o)})})]})}export{ge as McpList};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{a as X}from"./combo-
|
|
1
|
+
"use client";import{a as X}from"./combo-09e246dc9a517fa8.js";import{a as Y,d as Z,g as J,h as W}from"./list-7270361464fc3c04.js";import"./confirm-5ae484241ad888fd.js";import{a as B}from"./badge-215c7b2631dafc69.js";import{b as $,c as _,e as G,j as V}from"./model-options-15c53331a2f28a4f.js";import{a as F}from"./select-a90307706cffa6e0.js";import{a as H,c as q}from"./card-e86dcc81326d2b14.js";import{a as p,b as x}from"./field-aa0a4b98a976781e.js";import{g as z}from"./format-105c706345987fb2.js";import{$5b as D}from"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-933c7f9ee85be766.js";import{$2b as P}from"./shared-init-933c7f9ee85be766.js";import{$1a as e}from"./shared-init-933c7f9ee85be766.js";import{$1c as M,$1g as c,$1k as j}from"./shared-init-8f2ac936c95a7f7b.js";var ne=[["custom","Custom endpoint"],["claude","Claude"],["codex","Codex"]],le={claude:"sonnet",codex:"sol"},se=[["low","Low"],["medium","Medium"],["high","High"]],re=[["personal","Just me"],["workspace","Workspace"]],L=V,Q={id:"other",name:"Other",baseUrl:"",envKey:"",needsKey:!0},ee=v=>v.split("/").pop().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),ae=(v,m)=>v.find(C=>!(C in m));function ie({builtin:v,credentials:m,admin:C,taken:T,efforts:d,error:a,onAdd:y}){let[f,E]=c("custom"),i=f==="custom"?"custom":"alias",k=e(p,{label:"Engine",group:!0,children:e(F,{label:"Engine",options:ne,value:f,onChange:E})}),[b,U]=c(""),[o,t]=c(!1),[s,n]=c(0),h=v[f]??{},w=h[le[f]]??Object.values(h)[0];return e(H,{title:"Add a model",actions:e(x,{value:a}),children:e("form",{class:"add-form",method:"post",onSubmit:async A=>{A.preventDefault();let g=A.currentTarget,r=Object.fromEntries([...new FormData(g)].map(([R,S])=>[R,String(S).trim()]));if(i==="custom"&&!r.name&&(r.name=ee(r.model??"")),!r.name||!r.model||i==="custom"&&!r.baseUrl)return;t(!0);let I=i==="alias"?await y(()=>P.models.alias(r.name,[f,r.model,b].filter(Boolean).join(":"))):await y(async()=>{let R=r.envKey||"OPENAI_API_KEY";return r.key&&await P.credentials.add({env:{[R]:r.key},engine:"custom",label:L.find(S=>S.id===r.provider)?.name,workspace:r.scope==="workspace"}),P.models.add({name:r.name,baseUrl:r.baseUrl,model:r.model,envKey:R})});t(!1),I&&(g.reset(),n(s+1))},children:i==="alias"?e("div",{class:"add-grid",children:[k,e(p,{label:"Name",children:e("input",{name:"name",placeholder:ae(["fast","deep","quick"],T),autocomplete:"off",pattern:"[a-z0-9][a-z0-9\\-]*"})}),e(p,{label:"Model id",children:e("input",{name:"model",placeholder:w??"model id",autocomplete:"off"})}),e(p,{label:"Effort",hint:"optional",group:!0,children:e(F,{label:"Effort",options:[["",G(d[f])],...se],value:b,onChange:U})}),e("button",{class:"btn",disabled:o,children:"Add"})]}):e(de,{engine:k,credentials:m,admin:C,taken:T,busy:o},s)})})}function de({engine:v,credentials:m,admin:C,taken:T,busy:d}){let[a,y]=c(L[0]??Q),[f,E]=c(a.baseUrl),[i,k]=c(a.envKey),[b,U]=c(""),[o,t]=c("personal"),[s,n]=c(null),h=j(0),[w,A]=c(""),g=l=>!!l&&!!m?.some(u=>u.env.includes(l)),[r,I]=c(!1),R=j(),S=(l,u,O)=>{let te=++h.current;if(!l.trim())return n(null);I(!0),P.models.probe({baseUrl:l.trim(),...u.trim()?{envKey:u.trim()}:{},...O.trim()?{key:O.trim()}:{}}).catch(K=>({reachable:!1,modelListed:null,models:null,detail:z(K)})).then(K=>{te===h.current&&(I(!1),n(K.models?{...K,models:[...K.models].sort()}:K))})},N=(l,u,O)=>{clearTimeout(R.current),R.current=setTimeout(()=>S(l,u,O),250)},oe=s?s.reachable?s.models?`${s.models.length} listed`:"reachable, no model list":/HTTP 40[13]/.test(s.detail)?"key rejected":s.detail:void 0;return e(M,{children:[e("div",{class:"add-grid",children:[v,e(p,{label:"Provider",group:!0,children:e(F,{label:"Provider",name:"provider",options:L.map(l=>[l.id,l.name]),value:a.id,onChange:l=>{let u=L.find(O=>O.id===l)??Q;y(u),E(u.baseUrl),k(u.envKey),n(null),(b.trim()||g(u.envKey)||!u.needsKey)&&S(u.baseUrl,u.envKey,b)}})}),e(p,{label:"Model name",hint:"optional",children:e("input",{name:"name",placeholder:ee(w)||"short name like kimi",autocomplete:"off",pattern:"[a-z0-9][a-z0-9\\-]*"})})]}),e("div",{class:"add-grid",children:[a.needsKey&&m?e(p,{label:"API key",hint:e(M,{children:[g(i)?`optional, your saved ${i}`:`saved as ${i}`,a.keyUrl?e(M,{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:g(i)?"Optional":`${a.name} API key`,value:b,onInput:l=>{U(l.currentTarget.value),N(f,i,l.currentTarget.value)}})}):null,e(p,{label:"Model id",group:!0,hint:r?e(q,{label:"Fetching models",inline:!0,dots:!0}):oe,children:e(X,{label:"Model id",onOpen:()=>{!s&&!r&&S(f,i,b)},name:"model",options:s?.models??[],placeholder:s?.models?.[0]??"qwen3-coder",value:w,onChange:A})}),a.needsKey&&m&&C?e(p,{label:"Scope",group:!0,children:e(F,{label:"Scope",name:"scope",options:re,value:o,onChange:t})}):null]}),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:f,onInput:l=>{E(l.currentTarget.value),N(l.currentTarget.value,i,b)}})}),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:i,onInput:l=>k(l.currentTarget.value)})})]})]}),e("button",{class:"btn",disabled:d,children:"Add model"})]})]})}function Ee({first:v,config:m,credentials:C,admin:T}){let d=Z(v),a=Y(m.config),y=o=>({...d.value,models:o.models??{}}),f=o=>a.value.engines?.[o]?.model??m.effective.engines?.[o]?.model,E=o=>d.value.models[o]?.disabled===!0,i=a.value.chain??m.effective.chain??$,k=Object.entries(d.value.models).filter(([,o])=>o.provider||o.baseUrl),b=[...Object.entries(d.value.builtin).flatMap(([o,t])=>Object.entries(t).filter(([s])=>!k.some(([n])=>n===s)).map(([s,n])=>({name:s,engine:o,target:n,entry:d.value.models[s],removable:!1}))),...k.map(([o,t])=>({name:o,engine:t.provider??"custom",target:t.baseUrl?`${t.model} \xB7 ${t.baseUrl}`:`${t.model}${t.effort?` \xB7 ${t.effort}`:""}`,entry:t,removable:!0}))],U=[...new Set([...i,...$])].map(o=>[o,b.filter(t=>t.engine===o)]).filter(([,o])=>o.length);return e(M,{children:[e(ie,{builtin:d.value.builtin,credentials:C,admin:T,taken:{...d.value.models,...Object.assign({},...Object.values(d.value.builtin))},efforts:Object.fromEntries($.map(o=>[o,a.value.engines?.[o]?.effort??m.effective.engines?.[o]?.effort])),error:d.error,onAdd:o=>d.send(o,y)}),U.map(([o,t],s)=>e(W,{title:_[o]??o,count:t.length,error:s?"":a.error,children:t.map(({name:n,target:h,entry:w,removable:A})=>{let g=[n,h].includes(f(o)??"");return e(J,{title:n,badges:e(M,{children:[g&&i[0]===o?e(B,{tone:"acc",children:"default for new tasks"}):null,g&&i[0]!==o?e(B,{children:["default for ",_[o]??o]}):null,w?.disabled?e(B,{children:"off"}):null]}),sub:h===n?void 0:`\u2192 ${h}`,actions:g||w?.disabled?null:e("button",{type:"button",class:"btn ghost sm",onClick:()=>void a.patch({engines:{[o]:{model:n}}}),children:"Make default"}),menu:e(D,{title:E(n)?"Enable":"Disable",onClick:()=>void d.send(()=>P.models[E(n)?"enable":"disable"](n),y)}),remove:A?{title:`Remove ${n}?`,body:"Tasks that ask for it stop running.",onRemove:()=>d.send(()=>P.models.remove(n),y)}:void 0},n)})},o))]})}export{Ee as ModelsList};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$1g as h,$1i as l,$1k as u}from"./shared-init-8f2ac936c95a7f7b.js";var L=t=>`${history.state?.__pnextEntry??location.pathname}|${t}`,$=t=>history.state?.coderPages?.[t],j=(t,e)=>history.replaceState({...history.state,coderPages:{...history.state?.coderPages,[t]:e}},""),B=6e4,F=t=>e=>new Promise(n=>{let s=performance.now()-t;setTimeout(n,s>150?450-s:0,e)}),P=(t,e)=>({query:t,rows:e.items,next:e.next,meta:e});function q({name:t,query:e,first:n,initial:s,root:D,fetchPage:I}){let y=u(new Map([[s,{page:n,at:Date.now()}]])),[c,w]=h(()=>P(s,n)),[T,f]=h(""),[S,m]=h(!1),b=u(null),d=u(c);d.current=c;let a=u(void 0),p=u(void 0),E=(r,o,g)=>{let _=`${o}|${r}`;if(a.current?.key===_)return;let x={key:_};a.current=x,f(""),m(!0);let M=performance.now(),O=L(t),R=g?void 0:y.current.get(o);R&&Date.now()-R.at<B&&w(P(o,R.page)),I(r).then(F(M)).then(i=>{a.current===x&&(g||y.current.set(o,{page:i,at:Date.now()}),f(""),p.current=void 0,w(v=>{let K=g&&v.query===o?{...v,rows:[...v.rows,...i.items],next:i.next}:P(o,i);return L(t)===O&&j(t,K),K}))}).catch(i=>{a.current===x&&(p.current=()=>E(r,o,g),f(i instanceof Error?i.message:String(i)))}).finally(()=>{a.current===x&&(a.current=void 0,m(!1))})};l(()=>()=>{a.current=void 0},[]);let k=u(n);return l(()=>{k.current!==n&&(k.current=n,a.current=void 0,m(!1),y.current.set(s,{page:n,at:Date.now()}),w(P(s,n)))},[n]),l(()=>{a.current=void 0,p.current=void 0,f(""),m(!1);let r=$(t);if(r&&r.query===e&&r.rows.length>d.current.rows.length){w(r);return}e!==d.current.query&&E("",e,!1)},[e]),l(()=>{let r=b.current;if(!r||!c.next||T)return;let o=new IntersectionObserver(([g])=>{g?.isIntersecting&&d.current.next&&d.current.query===e&&E(d.current.next,e,!0)},{root:D?.()??null,rootMargin:"0px 0px 300px 0px"});return o.observe(r),()=>o.disconnect()},[c.next,c.rows.length,e,T]),{rows:c.rows,meta:c.meta,more:!!c.next,busy:S,error:T,stale:S&&c.query!==e,sentinel:b,retry:()=>{f(""),p.current?.()}}}function A(t){let e=new URL(location.href);for(let[n,s]of Object.entries(t))s?e.searchParams.set(n,s):e.searchParams.delete(n);history.replaceState(history.state,"",e)}function G(t){let e=new URLSearchParams(location.search);return Object.fromEntries(t.map(n=>[n,e.get(n)??""]))}var W=20,z=20;export{F as a,q as b,A as c,G as d,W as e,z as f};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{b as C}from"./field-
|
|
1
|
+
"use client";import{b as C}from"./field-aa0a4b98a976781e.js";import{g as $}from"./format-105c706345987fb2.js";import{$5a as h,$5b as r}from"./shared-init-7f81ae7bc8c82438.js";import{$0l as m,$0q as p,$0r as k}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as u}from"./shared-init-933c7f9ee85be766.js";import{$2b as g}from"./shared-init-933c7f9ee85be766.js";import{$1a as t}from"./shared-init-933c7f9ee85be766.js";import{$1c as l,$1g as c}from"./shared-init-8f2ac936c95a7f7b.js";function D({integration:a,apps:o,installed:I,createUrl:d,owners:n=[]}){let[v,f]=c(""),[M,b]=c(!1),i=(e="")=>e?`${d}&owner=${encodeURIComponent(e)}`:d,y=e=>{b(!0),f(""),g.apps.install(e,location.pathname).then(({url:s})=>{location.href=s}).catch(s=>{b(!1),f($(s))})};return o.length?t(l,{children:[I?null:t("button",{type:"button",class:"btn sm",disabled:M,onClick:()=>y(o[0].id),children:"Install"}),t(h,{summaryClass:"icon-btn",label:`More for ${a}`,wide:!0,summary:t(u,{d:p}),children:[o.map(e=>t(r,{icon:k,title:o.length>1?`Install ${e.name} on another account`:"Install on another account",sub:"Add this app to more repositories, another org, or another workspace.",onClick:()=>y(e.id)},e.id)),t(r,{icon:m,href:i(n[0]),title:`Create another ${a} app`,sub:"A separate app for an account this one cannot be installed on."})]}),t(C,{value:v})]}):t(l,{children:[t("a",{class:"btn sm",href:i(n[0]),title:n[0]?`Creates the app in ${n[0]}`:void 0,children:"Create app"}),n.length?t(h,{summaryClass:"icon-btn",label:`Where the ${a} app lives`,wide:!0,summary:t(u,{d:p}),children:[...n.slice(1),""].map(e=>t(r,{icon:m,href:i(e),title:e?`Create in ${e}`:"Create under your account",sub:"The app is private to where it lives."},e))}):null]})}export{D as PlatformActions};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{f as Z}from"./list-7270361464fc3c04.js";import"./confirm-5ae484241ad888fd.js";import{a as _}from"./badge-215c7b2631dafc69.js";import{d as Y}from"./composer-data-6f7608fed13f3dd7.js";import"./model-options-15c53331a2f28a4f.js";import{a as N}from"./select-a90307706cffa6e0.js";import{a as X,c as K}from"./card-e86dcc81326d2b14.js";import{a as B,b as I}from"./field-aa0a4b98a976781e.js";import{d as L,g as C}from"./format-105c706345987fb2.js";import{$5a as $,$5b as x}from"./shared-init-7f81ae7bc8c82438.js";import{$0A as M,$0B as Q,$0e as H,$0i as q,$0l as z,$0m as G,$0p as O,$0q as J,$0r as U,$0x as V}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as b}from"./shared-init-933c7f9ee85be766.js";import{$2b as u,$2d as A}from"./shared-init-933c7f9ee85be766.js";import{$1a as e}from"./shared-init-933c7f9ee85be766.js";import{$1c as T,$1g as l,$1i as E,$1k as j}from"./shared-init-8f2ac936c95a7f7b.js";var W={local:q,"local-docker":V,"vercel-sandbox":z,"github-actions":G,http:M},oe=new Set(["default","local"]),ee=[["personal","Just me"],["workspace","Workspace"]],ae=new Set(["owner","admin"]),re=n=>Date.now()-n<6e4?"just now":`${L(Date.now()-n).replace(/\.\d/,"")} ago`;function ie({runner:n,tested:s}){return s==="testing"?e("span",{class:"sub runner-status",children:[e("i",{class:"dot"}),"Testing\u2026"]}):s?e("span",{class:`sub runner-status ${s.ok?"ok":"bad"}`,children:[e("i",{class:"dot"}),s.ok?`Reached in ${L(s.ms)}`:s.detail]}):e("span",{class:`sub runner-status${n.online?" ok":""}`,children:[e("i",{class:"dot"}),n.online?"Online":n.lastSeen?`Last seen ${re(n.lastSeen)}`:"Not seen yet"]})}function le({runner:n,manage:s,onChange:i,onError:g}){let[k,c]=l(!1),[d,r]=l(!1),[v,a]=l(),m=j(null);E(()=>m.current?.select(),[d]);let R=oe.has(n.id),y=Z(s&&!R?{title:`Remove ${n.name}?`,body:"Its tasks go to another runner.",onRemove:()=>i(()=>u.runners.remove(n.id))}:void 0),p=()=>{a("testing"),u.runners.test(n.id).then(a,f=>{a(void 0),g(C(f))})};return e("tr",{children:[e("td",{children:[e("span",{class:"row-title",children:[e("b",{class:"runner-name",children:[e(b,{d:W[n.kind]??M}),d?e("input",{class:"runner-rename","aria-label":"Runner name",defaultValue:n.name,ref:m,onKeyDown:f=>{let o=f.currentTarget.value.trim();f.key==="Escape"&&r(!1),f.key==="Enter"&&o&&i(()=>u.runners.update(n.id,{name:o})).then(()=>r(!1))},onBlur:()=>r(!1)}):n.name]}),e(_,{children:n.scope}),n.default?e(_,{tone:"acc",children:"default"}):null]}),e(ie,{runner:n,tested:v})]}),e("td",{class:"acts",children:[n.default||!s?null:e("button",{type:"button",class:"btn secondary sm",disabled:k,"aria-busy":k,onClick:()=>{c(!0),i(()=>u.runners.update(n.id,{default:!0})).finally(()=>c(!1))},children:"Make default"}),e($,{summaryClass:"icon-btn",label:"Actions",summary:e(b,{d:J}),children:[e(x,{title:"Test",onClick:p}),s&&!R?e(x,{title:"Rename",onClick:()=>r(!0)}):null,y.item]}),y.dialog]})]})}function F({value:n}){let[s,i]=l(!1);return e("div",{class:"runner-cmd",children:[e("code",{children:n}),e("button",{type:"button",class:s?"icon-btn copied":"icon-btn","aria-label":s?"Copied":"Copy command",title:s?"Copied":"Copy command",onClick:()=>void navigator.clipboard.writeText(n).then(()=>i(!0)),children:e(b,{d:s?O:Q})})]})}function ue({pairing:n,onCancel:s}){return e("div",{class:"runner-pair",children:[e("details",{class:"runner-step",children:[e("summary",{children:"Install the Coder CLI on that computer, if it is not there yet"}),e(F,{value:"npm install -g @wular/coder"})]}),e("div",{class:"runner-step",children:[e("p",{children:"Run this there. The token works once and expires in 15 minutes."}),e(F,{value:n.command})]}),e("details",{class:"runner-step",children:[e("summary",{children:"Behind a firewall? This server has to reach that computer over HTTPS"}),e("p",{children:["Open a tunnel on that computer first, then add its address to the command above as"," ",e("code",{children:"--runner-url"}),"."]}),e(F,{value:"cloudflared tunnel --url http://localhost:4100"})]}),e("div",{class:"runner-wait",children:[e(K,{label:"Waiting for that computer to connect",inline:!0,dots:!0}),e("button",{type:"button",class:"btn secondary-danger sm",onClick:s,children:"Cancel"})]})]})}function de({catalog:n,admin:s,personal:i,known:g,onAdded:k}){let[c,d]=l(),[r,v]=l(i?"personal":"workspace"),[a,m]=l(!1),[R,y]=l(""),[p,f]=l(),o=n.find(t=>t.kind===c);E(()=>{if(!p)return;let t=Math.min(p.expiresAt,Date.now()+15*6e4),w=!0,D=A(async()=>{if(Date.now()>t)return P();let S=await u.runners.list();!w||!S.items.some(h=>!g.includes(h.id))||(k(S),P())},2e3);return()=>{w=!1,D()}},[p]);let P=()=>{f(void 0),d(void 0)},ne=t=>{y(""),f(void 0),d(t.kind),t.connect==="pair"&&(m(!0),u.runners.pair({scope:r}).then(f,w=>{d(void 0),y(C(w))}).finally(()=>m(!1)))};return e("form",{class:"runner-add",method:"post",onSubmit:async t=>{if(t.preventDefault(),!o||a)return;let w=Object.fromEntries([...new FormData(t.currentTarget)].map(([h,te])=>[h,String(te).trim()])),{name:D,...S}=w;m(!0),y("");try{await u.runners.add({kind:o.kind,name:D||o.name,scope:r,config:Object.fromEntries(Object.entries(S).filter(([,h])=>h))}),k(await u.runners.list()),d(void 0)}catch(h){y(C(h))}m(!1)},children:[e("div",{class:"runner-pick",children:[e($,{summaryClass:"btn secondary",label:"Runner kind",align:"left",wide:!0,summary:e(T,{children:[e(b,{d:o?W[o.kind]:U}),o?o.name:"Add a runner",e(b,{d:H})]}),children:n.filter(t=>t.available).map(t=>e("button",{type:"button",role:"menuitemradio","aria-checked":t.kind===c,class:"pop-item rich",onClick:()=>ne(t),children:[e(b,{d:W[t.kind]??M}),e("span",{class:"grow",children:[t.name,e("small",{children:t.available?t.description:t.reason})]}),e(b,{d:O})]},t.kind))}),o?.connect==="fields"?e(T,{children:[o.help?e("p",{class:"muted runner-help",children:o.help}):null,e("div",{class:"add-grid",children:[e(B,{label:"Name",hint:"shown in the list",children:e("input",{name:"name",placeholder:o.name,autocomplete:"off"})}),o.fields.map(t=>e(B,{label:t.label,hint:t.hint??(t.optional?"optional":void 0),children:e("input",{name:t.key,type:t.secret?"password":"text",placeholder:t.placeholder,required:!t.optional,autocomplete:"off"})},`${o.kind}:${t.key}`))]})]}):null,o?.connect==="fields"?e("div",{class:"runner-foot",children:[e(I,{value:R}),i?e(N,{label:"Who can use this runner",options:ee,value:s?r:"personal",onChange:v,disabled:!s}):null,e("button",{class:"btn","aria-busy":a,disabled:a,children:"Add runner"})]}):e(T,{children:[o&&i?e(N,{label:"Who can use this runner",options:ee,value:s?r:"personal",onChange:v,disabled:!s||!!p}):null,a&&!p?e(K,{label:"Pairing",inline:!0}):null,e(I,{value:R})]})]}),p?e(ue,{pairing:p,onCancel:P}):null]})}function Ie({first:n,me:s}){let[i,g]=l(n),[k,c]=l(""),d=!s.user||ae.has(s.organization?.role??""),r=Y(i.items);E(()=>A(()=>u.runners.list().then(g),3e4),[]);let v=async a=>{c("");try{return await a(),g(await u.runners.list()),!0}catch(m){return c(C(m)),!1}};return e(X,{title:"Runners",count:r.length,actions:e(I,{value:k}),children:[e("div",{class:"table-scroll",children:e("table",{class:"rows settings",children:e("tbody",{children:r.map(a=>e(le,{runner:a,manage:a.scope==="personal"||d,onChange:v,onError:c},a.id))})})}),e(de,{catalog:i.catalog,admin:d,personal:!!s.user,known:r.map(a=>a.id),onAdded:g})]})}export{Ie as RunnersList};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$
|
|
1
|
+
import{$1a as o}from"./shared-init-933c7f9ee85be766.js";function p({label:u,options:t,value:a,onChange:l,class:s,disabled:c}){let i=Math.max(0,t.findIndex(([e])=>e===a));return o("div",{class:s?`seg-btns ${s}`:"seg-btns",role:"radiogroup","aria-label":u,onKeyDown:e=>{let r=e.currentTarget.closest("form");if(e.key==="Enter"&&r)return e.preventDefault(),r.requestSubmit();let n={ArrowRight:1,ArrowDown:1,ArrowLeft:-1,ArrowUp:-1}[e.key];if(!n)return;e.preventDefault();let d=(i+n+t.length)%t.length;l(t[d][0]),e.currentTarget.children[d]?.focus()},children:t.map(([e,r],n)=>o("button",{type:"button",role:"radio","aria-checked":e===a,tabIndex:n===i?0:-1,disabled:c,onClick:()=>l(e),children:r},e))})}export{p as a};
|