@wular/coder 0.3.18 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -16
- package/bin/coder.mjs +3 -1
- package/dist/actions-Mk3FSlpJ.js +20 -0
- package/dist/adapter-B0oYCI0S.js +1 -0
- package/dist/adapter-BKVzTDnn.js +1 -0
- package/dist/adapter-DPInwbJG.js +1 -0
- package/dist/adapter-DaiJMOYo.js +1 -0
- package/dist/adapter-PeKziOUg.js +1 -0
- package/dist/add-BxpLHnvD.js +1 -0
- package/dist/add-CE-70LFs.js +1 -0
- package/dist/add-U-pty9qJ.js +6 -0
- package/dist/add-ej0X9e3a.js +1 -0
- package/dist/add-json-CEa-6luW.js +1 -0
- package/dist/agent-BsYx3Odz.js +3 -0
- package/dist/agent-JdtZozvP.js +1 -0
- package/dist/alias-DX-Bm86x.js +2 -0
- package/dist/app-BT5f7zL5.js +1 -0
- package/dist/approvals-C-AvFt6s.js +2 -0
- package/dist/approve-DOmpQRNd.js +2 -0
- package/dist/apps-CjfrZyM5.js +1 -0
- package/dist/archive-BUB8gFKD.js +4 -0
- package/dist/archive-BziJ1rQ-.js +3 -0
- package/dist/archive-sweep-CtBcARgN.js +1 -0
- package/dist/args-BOEEdpWk.js +1 -0
- package/dist/ask-dE3U3ss2.js +4 -0
- package/dist/auth-BFny--17.js +1 -0
- package/dist/auth-DWHIzqbA.js +1 -0
- package/dist/builtin/coder/agent.json +24 -0
- package/dist/builtin/coder/system.md +17 -0
- package/dist/chat-3Znsevah.js +1 -0
- package/dist/chat-B_yhNTo0.js +13 -0
- package/dist/chat-bridge-BS9WtP3X.js +2 -0
- package/dist/cli-BilSDkvE.js +9 -0
- package/dist/cli.d.ts +71 -1
- package/dist/cli.js +1 -91
- package/dist/client-D9IoAuDD.js +1 -0
- package/dist/config-Da_cwoxI.js +3 -0
- package/dist/create-C_iMJV4Y.js +1 -0
- package/dist/credentials-B1jv6dkg.js +1 -0
- package/dist/dash/manifest.json +3427 -0
- package/dist/dash/public/assets/apple-touch-icon.png +0 -0
- package/dist/dash/public/assets/chunks/agent-pills-c9c4ac4d4a10df83.js +1 -0
- package/dist/dash/public/assets/chunks/agent-settings-form-8be2ddab074aba6d.js +1 -0
- package/dist/dash/public/assets/chunks/agents-grid-951584b6f4c4314e.js +1 -0
- package/dist/dash/public/assets/chunks/badge-676b01e0c615bf7b.js +1 -0
- package/dist/dash/public/assets/chunks/card-e0901d68b79dfa93.js +1 -0
- package/dist/dash/public/assets/chunks/combo-41234c24668b1db1.js +1 -0
- package/dist/dash/public/assets/chunks/composer-5534be50bc12385e.js +1 -0
- package/dist/dash/public/assets/chunks/composer-d10d4b1d54c4f751.js +1 -0
- package/dist/dash/public/assets/chunks/composer-data-6f7608fed13f3dd7.js +1 -0
- package/dist/dash/public/assets/chunks/confirm-f2fe4ba9905a89c6.js +1 -0
- package/dist/dash/public/assets/chunks/connect-apps-aa2a3d82e48ed8c3.js +1 -0
- package/dist/dash/public/assets/chunks/connect-repositories-5389ec8701a3deac.js +1 -0
- package/dist/dash/public/assets/chunks/credentials-list-bc5bfcab058176c5.js +2 -0
- package/dist/dash/public/assets/chunks/custom-range-4761ab14f05149df.js +1 -0
- package/dist/dash/public/assets/chunks/editor-bfe8cd854f8001be.js +7 -0
- package/dist/dash/public/assets/chunks/engines-list-f1191390f5715b39.js +1 -0
- package/dist/dash/public/assets/chunks/field-901f1f35c18c39c9.js +1 -0
- package/dist/dash/public/assets/chunks/format-eb03fc9d9744d960.js +1 -0
- package/dist/dash/public/assets/chunks/heads-f3bcd289663d48fa.js +1 -0
- package/dist/dash/public/assets/chunks/instructions-052fa45a9daf6db6.js +2 -0
- package/dist/dash/public/assets/chunks/instructions-d0a4b0d95009c262.js +1 -0
- package/dist/dash/public/assets/chunks/list-1d259660d7612c5f.js +1 -0
- package/dist/dash/public/assets/chunks/mcp-list-e3bebbbe831393b8.js +1 -0
- package/dist/dash/public/assets/chunks/model-options-15c53331a2f28a4f.js +1 -0
- package/dist/dash/public/assets/chunks/models-list-44f857a469ca04d5.js +1 -0
- package/dist/dash/public/assets/chunks/paged-bc6fa0c2b9d52ed7.js +1 -0
- package/dist/dash/public/assets/chunks/platform-actions-d1426602049926d2.js +1 -0
- package/dist/dash/public/assets/chunks/runners-list-1901af8a5dea1f09.js +1 -0
- package/dist/dash/public/assets/chunks/runtime-246221e985d863e5-1.js +2 -0
- package/dist/dash/public/assets/chunks/segmented-358ff2b4992b8384.js +1 -0
- package/dist/dash/public/assets/chunks/select-7ae25fd8a7d6c338.js +1 -0
- package/dist/dash/public/assets/chunks/sentinel-c972a33dc69a5135.js +1 -0
- package/dist/dash/public/assets/chunks/shared-init-246221e985d863e5-2.js +1 -0
- package/dist/dash/public/assets/chunks/shared-init-88cce66bb3cfe1e5.js +5 -0
- package/dist/dash/public/assets/chunks/shared-init-8f2ac936c95a7f7b.js +1 -0
- package/dist/dash/public/assets/chunks/shared-init-ffb3397e494137c9.js +2 -0
- package/dist/dash/public/assets/chunks/tail-7c27aab8ba268bd9.js +1 -0
- package/dist/dash/public/assets/chunks/task-actions-8e1d93c788d001df.js +1 -0
- package/dist/dash/public/assets/chunks/task-fa8b82e95e771c4a.js +1 -0
- package/dist/dash/public/assets/chunks/task-view-6d7618d2820a5cb4.js +3 -0
- package/dist/dash/public/assets/chunks/tasks-list-f4784e5cbd0ed785.js +1 -0
- package/dist/dash/public/assets/chunks/toolbar-a75d2570f07cbb70.js +1 -0
- package/dist/dash/public/assets/chunks/versions-list-fc2e0d2a7382e049.js +1 -0
- package/dist/dash/public/assets/chunks/wular-pnext-246221e985d863e5-0.js +1 -0
- package/dist/dash/public/assets/connect-382b1729a7ae7808.css +1 -0
- package/dist/dash/public/assets/dash-9e02d5d1a6d42ee3.css +1 -0
- package/dist/dash/public/assets/dash-account-04859899c1838ada.css +1 -0
- package/dist/dash/public/assets/dash-agents-9e678137267dec07.css +1 -0
- package/dist/dash/public/assets/dash-agents-new-26fa27b17ef9b8d8.css +1 -0
- package/dist/dash/public/assets/dash-agents-param-slug-b975c48f8abf3444.css +1 -0
- package/dist/dash/public/assets/dash-agents-param-slug-edit-e13fda599bb04843.css +1 -0
- package/dist/dash/public/assets/dash-agents-param-slug-platforms-70292932cb27bc96.css +1 -0
- package/dist/dash/public/assets/dash-agents-param-slug-settings-71f9a86251723fcc.css +1 -0
- package/dist/dash/public/assets/dash-agents-param-slug-tasks-fb8eb2ed71006601.css +1 -0
- package/dist/dash/public/assets/dash-agents-param-slug-usage-7c8740f1cdd52c71.css +1 -0
- package/dist/dash/public/assets/dash-settings-8eb818da462227e8.css +1 -0
- package/dist/dash/public/assets/dash-settings-param-tab-849a1a9542e273f5.css +1 -0
- package/dist/dash/public/assets/dash-tasks-81e510e0b6931b42.css +1 -0
- package/dist/dash/public/assets/dash-tasks-param-id-bbd2a83342f2ec10.css +1 -0
- package/dist/dash/public/assets/dash-usage-8e0259e03eaed1bd.css +1 -0
- package/dist/dash/public/assets/favicon.ico +0 -0
- package/dist/dash/public/assets/favicon.svg +1 -0
- package/dist/dash/public/assets/fonts/LICENSE-fira-code +93 -0
- package/dist/dash/public/assets/fonts/fira-code-latin-400-normal-717ee080.woff2 +0 -0
- package/dist/dash/public/assets/fonts/fira-code-latin-500-normal-530b6706.woff2 +0 -0
- package/dist/dash/public/assets/fonts/fira-code-latin-700-normal-98730669.woff2 +0 -0
- package/dist/dash/public/assets/global-d2adbf01910d9df5.css +1 -0
- package/dist/dash/public/assets/login-c129b1ce237be260.css +1 -0
- package/dist/dash/public/assets/pnext-client-03b03b254e525e82.js +1 -0
- package/dist/dash/public/assets/pnext-client-1b9ab0963a8ff77b.js +1 -0
- package/dist/dash/public/assets/pnext-client-1c7859bb888f4ef0.js +1 -0
- package/dist/dash/public/assets/pnext-client-3c748afe963fb05d.js +1 -0
- package/dist/dash/public/assets/pnext-client-4f47c2cae220f107.js +1 -0
- package/dist/dash/public/assets/pnext-client-6ab9fd9b53b794d2.js +1 -0
- package/dist/dash/public/assets/pnext-client-6c241786342498e4.js +1 -0
- package/dist/dash/public/assets/pnext-client-80b56d420f02b808.js +1 -0
- package/dist/dash/public/assets/pnext-client-83135c17bae850a3.js +1 -0
- package/dist/dash/public/assets/pnext-client-8e6fa4302ae0396f.js +1 -0
- package/dist/dash/public/assets/pnext-client-932c9d8cc0717fc8.js +1 -0
- package/dist/dash/public/assets/pnext-client-a42ae63d4de113f9.js +1 -0
- package/dist/dash/public/assets/pnext-client-d2ee6f8c1e337032.js +1 -0
- package/dist/dash/public/assets/pnext-client-d513f65ec23b7f20.js +1 -0
- package/dist/dash/public/assets/pnext-client-ecb88e2a8a109954.js +1 -0
- package/dist/dash/public/assets/pnext-client-f1545ee6270bbf9a.js +1 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/boot-B2MFTRO2.js +30 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/build-tier-XJJSL5FR.js +2704 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-2HFY3DQT.js +208 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-2ICEVELW.js +834 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-3UPROT2C.js +35 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-4P5CMIYT.js +1582 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-4TKZKZ3Q.js +131 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-5RDEILQB.js +437 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-62KEQM43.js +25 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-6KQSWT6D.js +831 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-7DCNCW6O.js +724 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-B4THCTQP.js +22 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-C2LIV2MM.js +172 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-CCATPVTW.js +378 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-COXJAPTU.js +89 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-E6IXL2NJ.js +6270 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-FLGRBFAH.js +1198 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-FTJVHFWD.js +61 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-H523KSIH.js +5151 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-HT6KKX6A.js +20 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-JESFYECC.js +438 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-JRPJM2XY.js +17 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-L2IWDUXG.js +107 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-L5P4Y4UC.js +183 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-NQE46AZN.js +647 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-PA4QEARJ.js +129 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-PZ5AXOLW.js +7146 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-SNVPTULL.js +2397 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-T3QZT3PG.js +220 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-VC5O2SDP.js +72 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-WZX4V6CM.js +231 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-XUUIDXY5.js +627 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-ZHFDO3PR.js +265 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/compile-CE2DN7ZA.js +18 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/config-UREY7XJT.js +16 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/config-loader-UI2XE3PZ.js +17 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/entry.js +219 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/generate-I2PPTDFD.js +16 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/modules-UVOCE4C2.js +48 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/pipeline-UW47K537.js +963 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/proxy-ITGOVJBW.js +26 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/register-4SA55SWT.js +12579 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/router-JNKHLBCZ.js +505 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/routes-PD6J2NXW.js +54 -0
- package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/tsconfig-defaults-ZXEH7RQK.js +15 -0
- package/dist/default-Bobztoxf.js +1 -0
- package/dist/default-vYPT26DR.js +1 -0
- package/dist/delete-D8gEwoOj.js +4 -0
- package/dist/delete-z1_86nf6.js +2 -0
- package/dist/disable-DVKd-0Xb.js +1 -0
- package/dist/discover-Df-a8K4R.js +3 -0
- package/dist/discover-Dvr_3_Xr.js +1 -0
- package/dist/dispatch-BKeAch9E.js +14 -0
- package/dist/docs-BX65z2Iu.js +2 -0
- package/dist/docs-DKJnqZqt.js +2 -0
- package/dist/enable-C8Zf_wpN.js +1 -0
- package/dist/env-CRf6wkM2.js +1 -0
- package/dist/exec-RZFLclKX.js +11 -0
- package/dist/executor-BvAA7Cgw.js +10 -0
- package/dist/flow/builtin/review.d.ts +157 -0
- package/dist/flow/builtin/review.js +19 -0
- package/dist/flow/index.d.ts +1 -1
- package/dist/flow/index.js +1 -1
- package/dist/flow-17k25MHt.js +1 -0
- package/dist/github-actions-DwUzm4hC.js +24 -0
- package/dist/http-Bkg_OQ6r.js +1 -0
- package/dist/{index-BQ-b77or.d.ts → index-CZjFX5zV.d.ts} +116 -238
- package/dist/init-CoMfFxbG.js +1 -0
- package/dist/integrations-5xCaXSd-.js +1 -0
- package/dist/integrations-BAgdVDhj.js +5 -0
- package/dist/lib/broker.js +3 -3
- package/dist/list-BAKvxSbh.js +4 -0
- package/dist/list-BYiG8Zav.js +2 -0
- package/dist/list-BxEywhHU.js +1 -0
- package/dist/list-C5w01-8q.js +1 -0
- package/dist/list-CIW2joV1.js +1 -0
- package/dist/list-DX-z3SBp.js +3 -0
- package/dist/list-DpCf4G-H.js +4 -0
- package/dist/list-VToARh3C.js +1 -0
- package/dist/load-BpEsAn51.js +2 -0
- package/dist/local-H3uvqEbq.js +1 -0
- package/dist/log-view-dg0TlKLA.js +1 -0
- package/dist/login-BFxX4jJy.js +1 -0
- package/dist/login-DkkslfBx.js +1 -0
- package/dist/logout-BHAtw4Z8.js +1 -0
- package/dist/maintenance-C5FklUw3.js +1 -0
- package/dist/match-CXAjDhg7.js +1 -0
- package/dist/mcp-BgKb2Cdk.js +1 -0
- package/dist/mcp-CCZOAo06.js +1 -0
- package/dist/mcp-server-DGzme0YX.js +1 -0
- package/dist/migrate-C4vM7DQN.js +2 -0
- package/dist/migrate-N-85_N7J.js +1 -0
- package/dist/model-Bs1StDo3.js +1 -0
- package/dist/models-_5LVGC3m.js +1 -0
- package/dist/output-BKeyLbvt.js +5 -0
- package/dist/prompt-CEuBMNhk.js +7 -0
- package/dist/push-CUC55Bqd.js +1 -0
- package/dist/queue-6io_NOP3.js +116 -0
- package/dist/refresh-BIrmrWYq.js +1 -0
- package/dist/remote-miQNTVRa.js +1 -0
- package/dist/remove-B93LNkZI.js +1 -0
- package/dist/remove-C5_xggx7.js +1 -0
- package/dist/remove-CuH8a3L9.js +1 -0
- package/dist/remove-eQ8y5C5p.js +1 -0
- package/dist/rename-CYfy03FE.js +1 -0
- package/dist/result-BEtQZHaY.js +5 -0
- package/dist/result-BzaM3inj.js +15 -0
- package/dist/resume-DYzKvyEw.js +3 -0
- package/dist/review-oIBeECZE.js +7 -0
- package/dist/rolldown-runtime-DT7IzrpZ.js +1 -0
- package/dist/rotate-key-IdMYH7gg.js +1 -0
- package/dist/run-BDYl0CKl.js +2 -0
- package/dist/run-CTtd0Znc.js +5 -0
- package/dist/run-CawRGnOg.js +2 -0
- package/dist/runner-D7ScbIHJ.js +1 -0
- package/dist/runner-sUpWJ_k0.js +1 -0
- package/dist/schema-CU2iFkp8.js +1 -0
- package/dist/sdk.d.ts +1166 -191
- package/dist/sdk.js +1 -1
- package/dist/serve-BTeomYxW.js +1 -0
- package/dist/serve-CE8YV2e9.js +1 -0
- package/dist/serve-CPnmrKyf.js +2 -0
- package/dist/serve-CQKZxzFE.js +4 -0
- package/dist/serve-GmRO89s5.js +12 -0
- package/dist/server-Kb22cWfF.js +1 -0
- package/dist/setup-host-GFTUzzZJ.js +6 -0
- package/dist/shared-DVtzWhUT.js +1 -0
- package/dist/show-CMUg8SJu.js +1 -0
- package/dist/show-COTZEYgc.js +1 -0
- package/dist/status-D26U--p8.js +1 -0
- package/dist/steer-C6uARLp5.js +4 -0
- package/dist/stop-BrGI3hSS.js +1 -0
- package/dist/stop-ByCAlbmN.js +3 -0
- package/dist/store-B94tSate.js +42 -0
- package/dist/store-DzqXS2wT.js +8 -0
- package/dist/task-C6VAg5WU.js +1 -0
- package/dist/task-CgOKgkEG.js +1 -0
- package/dist/task-DeglY79z.js +5 -0
- package/dist/test-NEbhlxvo.js +1 -0
- package/dist/tools-D0Zfs8Hx.js +1 -0
- package/dist/types-D0q15RJa.js +1 -0
- package/dist/types-I5Cwtl_K.d.ts +389 -0
- package/dist/unalias-C9NqmSDq.js +1 -0
- package/dist/update-BTxYQj7Z.js +2 -0
- package/dist/upgrade-hA0yWBvx.js +2 -0
- package/dist/usage-BhqoCjvE.js +1 -0
- package/dist/usage-C4d9X2Uq.js +1 -0
- package/dist/watch-CSdj24ct.js +5 -0
- package/dist/watch-DtRuC0Wc.js +8 -0
- package/dist/wire-BeT1Axeo.js +1 -0
- package/dist/worker-CXndxmGF.js +9 -0
- package/dist/worker-DX7P9kWl.js +1 -0
- package/dist/workflow-Dcmdooi8.js +1 -0
- package/docs/agents/coder.md +26 -0
- package/docs/agents/index.md +120 -0
- package/docs/config.md +51 -30
- package/docs/dash.md +64 -0
- package/docs/flows.md +20 -15
- package/docs/mcp.md +62 -0
- package/docs/models.md +41 -23
- package/docs/review.md +41 -0
- package/docs/sdk.md +57 -38
- package/docs/self-host.md +188 -0
- package/migrations/0000_initial.sql +252 -0
- package/migrations/meta/0000_snapshot.json +1787 -0
- package/migrations/meta/_journal.json +13 -0
- package/package.json +37 -7
- package/plugins/agents/skills/coder/SKILL.md +14 -60
- package/plugins/claude/.claude-plugin/plugin.json +1 -1
- package/plugins/claude/commands/setup.md +2 -2
- package/plugins/claude/skills/dispatch/SKILL.md +14 -58
- package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
- package/plugins/cursor/README.md +5 -5
- package/plugins/cursor/assets/logo.png +0 -0
- package/plugins/cursor/skills/coder/SKILL.md +14 -59
- package/src/client/index.ts +573 -0
- package/src/client/types.ts +506 -0
- package/src/core/errors.ts +72 -0
- package/src/core/task/log-view.ts +173 -0
- package/src/server/auth/sign-in.ts +14 -0
- package/src/server/dash/api/load.ts +62 -0
- package/src/server/dash/api/types.ts +11 -0
- package/src/server/dash/app/connect/page.tsx +42 -0
- package/src/server/dash/app/dash/account/loading.tsx +11 -0
- package/src/server/dash/app/dash/account/notify.tsx +42 -0
- package/src/server/dash/app/dash/account/page.css +81 -0
- package/src/server/dash/app/dash/account/page.tsx +126 -0
- package/src/server/dash/app/dash/account/sign-out.tsx +24 -0
- package/src/server/dash/app/dash/agents/(list)/agent-menu.tsx +10 -0
- package/src/server/dash/app/dash/agents/(list)/agents-grid.tsx +143 -0
- package/src/server/dash/app/dash/agents/(list)/connect-apps.tsx +46 -0
- package/src/server/dash/app/dash/agents/(list)/loading.tsx +14 -0
- package/src/server/dash/app/dash/agents/(list)/page.css +72 -0
- package/src/server/dash/app/dash/agents/(list)/page.tsx +89 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/layout.tsx +135 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/loading.tsx +5 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/page.css +21 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/page.tsx +173 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/loading.tsx +18 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/page.css +87 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/page.tsx +258 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/platform-actions.tsx +111 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/agent-settings-form.css +114 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/agent-settings-form.tsx +294 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/loading.tsx +5 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/page.tsx +54 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/tasks/loading.tsx +5 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/tasks/page.tsx +14 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/loading.tsx +31 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/page.css +12 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/page.tsx +163 -0
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/versions-list.tsx +53 -0
- package/src/server/dash/app/dash/agents/[slug]/edit/loading.tsx +31 -0
- package/src/server/dash/app/dash/agents/[slug]/edit/page.tsx +91 -0
- package/src/server/dash/app/dash/agents/agent/agent-pills.css +27 -0
- package/src/server/dash/app/dash/agents/agent/agent-pills.tsx +133 -0
- package/src/server/dash/app/dash/agents/agent/hero.css +40 -0
- package/src/server/dash/app/dash/agents/agent/hero.tsx +60 -0
- package/src/server/dash/app/dash/agents/agent/instructions.css +29 -0
- package/src/server/dash/app/dash/agents/agent/instructions.tsx +82 -0
- package/src/server/dash/app/dash/agents/editor/connect-repositories.ts +16 -0
- package/src/server/dash/app/dash/agents/editor/editor.css +263 -0
- package/src/server/dash/app/dash/agents/editor/editor.tsx +774 -0
- package/src/server/dash/app/dash/agents/editor/import-picker.css +48 -0
- package/src/server/dash/app/dash/agents/editor/import-picker.tsx +253 -0
- package/src/server/dash/app/dash/agents/editor/names.ts +35 -0
- package/src/server/dash/app/dash/agents/new/loading.tsx +25 -0
- package/src/server/dash/app/dash/agents/new/page.tsx +72 -0
- package/src/server/dash/app/dash/layout.css +265 -0
- package/src/server/dash/app/dash/layout.tsx +332 -0
- package/src/server/dash/app/dash/page.tsx +14 -0
- package/src/server/dash/app/dash/settings/[tab]/credentials-list.css +94 -0
- package/src/server/dash/app/dash/settings/[tab]/credentials-list.tsx +619 -0
- package/src/server/dash/app/dash/settings/[tab]/credentials.tsx +36 -0
- package/src/server/dash/app/dash/settings/[tab]/engines-list.css +16 -0
- package/src/server/dash/app/dash/settings/[tab]/engines-list.tsx +135 -0
- package/src/server/dash/app/dash/settings/[tab]/list.css +98 -0
- package/src/server/dash/app/dash/settings/[tab]/list.tsx +215 -0
- package/src/server/dash/app/dash/settings/[tab]/loading.tsx +6 -0
- package/src/server/dash/app/dash/settings/[tab]/mcp-list.css +43 -0
- package/src/server/dash/app/dash/settings/[tab]/mcp-list.tsx +290 -0
- package/src/server/dash/app/dash/settings/[tab]/models-list.tsx +513 -0
- package/src/server/dash/app/dash/settings/[tab]/page.tsx +89 -0
- package/src/server/dash/app/dash/settings/[tab]/runners-list.css +153 -0
- package/src/server/dash/app/dash/settings/[tab]/runners-list.tsx +457 -0
- package/src/server/dash/app/dash/settings/layout.tsx +50 -0
- package/src/server/dash/app/dash/settings/model-options.ts +117 -0
- package/src/server/dash/app/dash/settings/page.tsx +7 -0
- package/src/server/dash/app/dash/settings/settings-head.tsx +24 -0
- package/src/server/dash/app/dash/settings/tunnel-guide.tsx +28 -0
- package/src/server/dash/app/dash/tasks/[id]/activity.tsx +202 -0
- package/src/server/dash/app/dash/tasks/[id]/loading.tsx +31 -0
- package/src/server/dash/app/dash/tasks/[id]/page.tsx +30 -0
- package/src/server/dash/app/dash/tasks/[id]/task-actions.tsx +164 -0
- package/src/server/dash/app/dash/tasks/[id]/task-view.css +407 -0
- package/src/server/dash/app/dash/tasks/[id]/task-view.tsx +513 -0
- package/src/server/dash/app/dash/tasks/composer-data.ts +96 -0
- package/src/server/dash/app/dash/tasks/composer.css +316 -0
- package/src/server/dash/app/dash/tasks/composer.tsx +890 -0
- package/src/server/dash/app/dash/tasks/list/status.css +50 -0
- package/src/server/dash/app/dash/tasks/list/status.tsx +20 -0
- package/src/server/dash/app/dash/tasks/list/task.ts +45 -0
- package/src/server/dash/app/dash/tasks/list/tasks-list.css +85 -0
- package/src/server/dash/app/dash/tasks/list/tasks-list.tsx +402 -0
- package/src/server/dash/app/dash/tasks/list/tasks-section.tsx +96 -0
- package/src/server/dash/app/dash/tasks/page.tsx +53 -0
- package/src/server/dash/app/dash/token-from-hash.tsx +17 -0
- package/src/server/dash/app/dash/usage/custom-range.tsx +63 -0
- package/src/server/dash/app/dash/usage/day-chart.css +109 -0
- package/src/server/dash/app/dash/usage/day-chart.tsx +110 -0
- package/src/server/dash/app/dash/usage/loading.tsx +17 -0
- package/src/server/dash/app/dash/usage/metric.ts +13 -0
- package/src/server/dash/app/dash/usage/page.tsx +117 -0
- package/src/server/dash/app/dash/usage/range-bar.css +13 -0
- package/src/server/dash/app/dash/usage/range-bar.tsx +69 -0
- package/src/server/dash/app/dash/usage/stats.css +52 -0
- package/src/server/dash/app/dash/usage/stats.tsx +19 -0
- package/src/server/dash/app/dash/usage/top-agents.css +40 -0
- package/src/server/dash/app/dash/usage/top-agents.tsx +138 -0
- package/src/server/dash/app/dash/usage/usage.css +0 -0
- package/src/server/dash/app/globals.css +692 -0
- package/src/server/dash/app/layout.tsx +52 -0
- package/src/server/dash/app/login/page.css +26 -0
- package/src/server/dash/app/login/page.tsx +57 -0
- package/src/server/dash/app/page.tsx +5 -0
- package/src/server/dash/app/responsive.css +49 -0
- package/src/server/dash/app/zone.tsx +13 -0
- package/src/server/dash/comps/frame/auth-panel.css +60 -0
- package/src/server/dash/comps/frame/auth-panel.tsx +44 -0
- package/src/server/dash/comps/frame/drawer.css +28 -0
- package/src/server/dash/comps/frame/drawer.tsx +39 -0
- package/src/server/dash/comps/frame/heads.ts +41 -0
- package/src/server/dash/comps/frame/loading-card.tsx +65 -0
- package/src/server/dash/comps/frame/page-head.css +83 -0
- package/src/server/dash/comps/frame/page-head.tsx +71 -0
- package/src/server/dash/comps/frame/stream.tsx +50 -0
- package/src/server/dash/comps/frame/task-toasts.tsx +214 -0
- package/src/server/dash/comps/frame/theme-choices.tsx +46 -0
- package/src/server/dash/comps/nav/current-link.tsx +53 -0
- package/src/server/dash/comps/nav/side-toggle.tsx +30 -0
- package/src/server/dash/comps/nav/to.ts +22 -0
- package/src/server/dash/comps/ui/badge.css +64 -0
- package/src/server/dash/comps/ui/badge.tsx +41 -0
- package/src/server/dash/comps/ui/card.css +93 -0
- package/src/server/dash/comps/ui/card.tsx +77 -0
- package/src/server/dash/comps/ui/collapse.css +32 -0
- package/src/server/dash/comps/ui/collapse.tsx +49 -0
- package/src/server/dash/comps/ui/combo.tsx +154 -0
- package/src/server/dash/comps/ui/confirm.css +36 -0
- package/src/server/dash/comps/ui/confirm.tsx +67 -0
- package/src/server/dash/comps/ui/field.css +25 -0
- package/src/server/dash/comps/ui/field.tsx +34 -0
- package/src/server/dash/comps/ui/icon.css +22 -0
- package/src/server/dash/comps/ui/icon.tsx +17 -0
- package/src/server/dash/comps/ui/icons.ts +44 -0
- package/src/server/dash/comps/ui/menu.css +178 -0
- package/src/server/dash/comps/ui/menu.tsx +152 -0
- package/src/server/dash/comps/ui/segmented.css +44 -0
- package/src/server/dash/comps/ui/segmented.tsx +58 -0
- package/src/server/dash/comps/ui/select.css +103 -0
- package/src/server/dash/comps/ui/select.tsx +250 -0
- package/src/server/dash/comps/ui/sentinel.css +58 -0
- package/src/server/dash/comps/ui/sentinel.tsx +67 -0
- package/src/server/dash/comps/ui/tabs.css +81 -0
- package/src/server/dash/comps/ui/tabs.tsx +32 -0
- package/src/server/dash/comps/ui/tail.css +12 -0
- package/src/server/dash/comps/ui/tail.tsx +37 -0
- package/src/server/dash/comps/ui/toast.css +72 -0
- package/src/server/dash/comps/ui/toolbar.css +143 -0
- package/src/server/dash/comps/ui/toolbar.tsx +93 -0
- package/src/server/dash/package.json +5 -0
- package/src/server/dash/pnext-env.d.ts +4 -0
- package/src/server/dash/pnext.config.ts +5 -0
- package/src/server/dash/public/assets/apple-touch-icon.png +0 -0
- package/src/server/dash/public/assets/favicon.ico +0 -0
- package/src/server/dash/public/assets/favicon.svg +1 -0
- package/src/server/dash/public/assets/fonts/LICENSE-fira-code +93 -0
- package/src/server/dash/public/assets/fonts/fira-code-latin-400-normal-717ee080.woff2 +0 -0
- package/src/server/dash/public/assets/fonts/fira-code-latin-500-normal-530b6706.woff2 +0 -0
- package/src/server/dash/public/assets/fonts/fira-code-latin-700-normal-98730669.woff2 +0 -0
- package/src/server/dash/tsconfig.json +10 -0
- package/src/server/dash/utils/client.ts +19 -0
- package/src/server/dash/utils/format.ts +75 -0
- package/src/server/dash/utils/paged.ts +184 -0
- package/src/server/dash/utils/range.ts +117 -0
- package/dist/app-server-CW93J9zJ.js +0 -3
- package/dist/runtime-D-U1DNkI.js +0 -26
- package/dist/upgrade-DOj06r5b.js +0 -37
package/docs/config.md
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
# Configuration
|
|
2
2
|
|
|
3
|
-
The Coder configuration reference. Machine defaults live in `~/.coder/config.json`;
|
|
3
|
+
The Coder configuration reference. Machine defaults live in `~/.coder/config.json`; `.coder/config.json` in a repo overrides them per project. Merge order, later wins:
|
|
4
4
|
|
|
5
5
|
1. Built-in defaults
|
|
6
6
|
2. `~/.coder/config.json`
|
|
7
|
-
3. `<repo
|
|
8
|
-
4. CLI flags on the dispatch itself (`--
|
|
7
|
+
3. `<repo>/.coder/config.json`
|
|
8
|
+
4. CLI flags on the dispatch itself (`--engine`, `--model`, `--effort`, `--permissions`)
|
|
9
9
|
|
|
10
10
|
Read and write values from the CLI (`--workspace` targets the repo file instead of the user file):
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
-
coder config
|
|
13
|
+
coder config list
|
|
14
|
+
coder config get <key>
|
|
14
15
|
coder config set chain '["codex", "claude", "custom"]'
|
|
15
|
-
coder config set
|
|
16
|
+
coder config set engines.codex.model sol
|
|
16
17
|
```
|
|
17
18
|
|
|
18
19
|
## Full shape
|
|
@@ -20,63 +21,83 @@ coder config set agents.codex.model terra
|
|
|
20
21
|
```json
|
|
21
22
|
{
|
|
22
23
|
"chain": ["codex", "claude", "custom"],
|
|
23
|
-
"
|
|
24
|
-
"codex": { "model": "
|
|
24
|
+
"engines": {
|
|
25
|
+
"codex": { "model": "sol", "effort": "high", "permissions": "auto", "network": true },
|
|
25
26
|
"claude": { "model": "opus", "effort": "medium", "permissions": "auto" },
|
|
26
27
|
"custom": { "model": "qwen" }
|
|
27
28
|
},
|
|
28
29
|
"models": {
|
|
29
30
|
"qwen": { "baseUrl": "http://localhost:11434/v1", "model": "qwen2.5-coder:32b" },
|
|
30
|
-
"fast": { "provider": "codex", "model": "gpt-
|
|
31
|
+
"fast": { "provider": "codex", "model": "gpt-6-luna" },
|
|
31
32
|
"big": { "provider": "claude", "model": "opus", "effort": "high" },
|
|
32
|
-
"
|
|
33
|
+
"astra": { "disabled": true }
|
|
33
34
|
},
|
|
34
35
|
"approvals": {
|
|
35
36
|
"escalationTimeoutMs": 120000,
|
|
36
37
|
"allowedNetworkHosts": ["localhost", "127.0.0.1", "registry.npmjs.org"]
|
|
38
|
+
},
|
|
39
|
+
"agents": {
|
|
40
|
+
"review": false,
|
|
41
|
+
"helper": {
|
|
42
|
+
"permissions": "read-only",
|
|
43
|
+
"integrations": {
|
|
44
|
+
"github": { "allowedTools": "comment" }
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"mcp": {
|
|
49
|
+
"docs": { "command": "npx", "args": ["-y", "docs-mcp"], "tools": ["search"] }
|
|
37
50
|
}
|
|
38
51
|
}
|
|
39
52
|
```
|
|
40
53
|
|
|
41
54
|
## `chain`
|
|
42
55
|
|
|
43
|
-
Fallback order. When an
|
|
56
|
+
Fallback order. When an engine can't start (missing binary, auth, quota), the task automatically retries on the next entry. Default `["codex", "claude"]`.
|
|
44
57
|
|
|
45
|
-
## `
|
|
58
|
+
## `engines`
|
|
46
59
|
|
|
47
|
-
Per-
|
|
60
|
+
Per-engine defaults, used when a dispatch doesn't override them:
|
|
48
61
|
|
|
49
|
-
| Key
|
|
50
|
-
|
|
|
51
|
-
| `model`
|
|
52
|
-
| `effort`
|
|
53
|
-
| `permissions` | `read-only`, `workspace-write`, `auto`
|
|
62
|
+
| Key | Values |
|
|
63
|
+
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
64
|
+
| `model` | codex: `luna`, `sol` (default), `astra` · claude: `sonnet`, `opus` (default), `fable` · custom: any name from `models` · or any full model id |
|
|
65
|
+
| `effort` | `low`, `medium`, `high` |
|
|
66
|
+
| `permissions` | `read-only`, `workspace-write`, `auto` |
|
|
54
67
|
|
|
55
|
-
Permission modes are one surface across all engines: read-only can't modify anything, workspace-write stays inside the repo, auto
|
|
68
|
+
Permission modes are one surface across all engines: read-only can't modify anything, workspace-write stays inside the repo, and auto enables Codex network access plus policy-answered escalations; `engines.codex.network` overrides network access for every mode when set.
|
|
69
|
+
|
|
70
|
+
A task reaches only its workspace unless you give it more. Pass `--add-dir <dir>` to `coder run` once for each sibling repo or shared folder the task needs. Relative paths resolve against the workspace and each one must already exist. Read-only tasks can read these directories but never write them, while workspace-write and auto tasks can write them just like the workspace. Claude receives them as `--add-dir` and `permissions.additionalDirectories`, so its OS sandbox follows the same rules. Codex already reads everywhere in read-only, and in the other modes it receives them as extra writable roots in the turn's sandbox policy. The directories are saved on the task, `coder result` lists them, and both `--resume` and steering keep them.
|
|
56
71
|
|
|
57
72
|
## `models`
|
|
58
73
|
|
|
59
74
|
One namespace for every model you can name as `--model`, keyed by that name. An entry's shape decides what it is:
|
|
60
75
|
|
|
61
|
-
| Shape
|
|
62
|
-
|
|
|
63
|
-
| `{ "baseUrl", "model", "envKey"?, "wireApi"? }`
|
|
64
|
-
| `{ "provider": "codex"\|"claude", "model", "effort"? }` | alias onto a built-in engine
|
|
65
|
-
| `{ "disabled": true }`
|
|
76
|
+
| Shape | Meaning | Managed by |
|
|
77
|
+
| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------- |
|
|
78
|
+
| `{ "baseUrl", "model", "envKey"?, "wireApi"? }` | custom OpenAI-compatible endpoint (the `custom` engine) | `coder model add/update/remove` |
|
|
79
|
+
| `{ "provider": "codex"\|"claude", "model", "effort"? }` | alias onto a built-in engine | `coder model alias/unalias` |
|
|
80
|
+
| `{ "disabled": true }` | bare toggle turning off any model name (built-in, entry from another config layer, or raw engine slug) | `coder model disable/enable` |
|
|
66
81
|
|
|
67
|
-
Every shape also accepts `"disabled": true` to park the entry without deleting it. An entry named after a built-in alias (e.g. `
|
|
82
|
+
Every shape also accepts `"disabled": true` to park the entry without deleting it. An entry named after a built-in alias (e.g. `luna`) shadows it. See [Models](models.md).
|
|
68
83
|
|
|
69
84
|
## `approvals`
|
|
70
85
|
|
|
71
86
|
Tunes the `auto` permission mode; ignored by `read-only` and `workspace-write`.
|
|
72
87
|
|
|
73
|
-
| Key
|
|
74
|
-
|
|
|
88
|
+
| Key | Meaning |
|
|
89
|
+
| --------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
|
75
90
|
| `escalationTimeoutMs` | How long an escalated approval waits for an answer before auto-denying and letting the task move on. Default `120000`. |
|
|
76
|
-
| `allowedNetworkHosts` | Hosts (and their subdomains) coders may reach without an approval. Default `[]
|
|
91
|
+
| `allowedNetworkHosts` | Hosts (and their subdomains) coders may reach without an approval when network sandboxing is active. Default `[]`. |
|
|
92
|
+
|
|
93
|
+
`allowedNetworkHosts` is pre-allowed in the Claude sandbox and auto-accepted by the Codex approval policy when `engines.codex.network` is `false`. A bare hostname covers its subdomains; anything else escalates as usual. Listing `localhost`, `127.0.0.1` or `::1` also lets sandboxed Claude commands serve on local ports (macOS), so a task can run a dev server.
|
|
94
|
+
|
|
95
|
+
Allowlist only hosts you trust: the check is by name, not by the address the name resolves to.
|
|
96
|
+
|
|
97
|
+
## `agents`
|
|
77
98
|
|
|
78
|
-
|
|
99
|
+
Per-agent usage: enable, override, scope. Reference and examples in [Agents](agents/index.md#usage).
|
|
79
100
|
|
|
80
|
-
|
|
101
|
+
## `mcp`
|
|
81
102
|
|
|
82
|
-
|
|
103
|
+
Servers tasks can attach with `--mcp <name>`, in the `.mcp.json` entry shape. Reference and CLI in [MCP](mcp.md).
|
package/docs/dash.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Dashboard
|
|
2
|
+
|
|
3
|
+
The dashboard is Coder's web UI at `/dash`. `coder dash` runs it on this machine as a UI over the CLI's own config, agents and tasks, with no account and no database.
|
|
4
|
+
|
|
5
|
+
To self-host your own Coder in the cloud, see [Self-hosting](self-host.md). There the same dashboard serves a workspace.
|
|
6
|
+
|
|
7
|
+
`coder dash` is short for `coder server serve`:
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
coder dash # http://localhost:8787
|
|
11
|
+
coder dash --port 3100
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Sign-in
|
|
15
|
+
|
|
16
|
+
- **Local**: `coder dash` prints a dashboard link that carries its admin token (`/dash#token=…`), new on each start unless `ADMIN_TOKEN` is set. The dashboard answers only on `localhost`, `127.0.0.1` and `[::1]` at its port.
|
|
17
|
+
- **Cloud**: members sign in with Wular Auth and switch workspaces from the menu. Members are managed in Wular Auth, and Settings links there.
|
|
18
|
+
|
|
19
|
+
## Pages
|
|
20
|
+
|
|
21
|
+
**Agents**: agents from two sources. Give one its own app from its Platforms tab.
|
|
22
|
+
|
|
23
|
+
- **Dashboard agents** are made in the editor.
|
|
24
|
+
- **Local**: saved in `~/.coder/agents/<id>/`.
|
|
25
|
+
- **Cloud**: kept in the workspace; every change is a new version.
|
|
26
|
+
- **Repository agents** come from a repo's `.coder/agents/<id>/`.
|
|
27
|
+
- **Local**: read from the repo the server runs in; edits are written back there.
|
|
28
|
+
- **Cloud**: imported from GitHub on each push to the repo's branch, through the agent's app.
|
|
29
|
+
|
|
30
|
+
**Tasks**: start, watch, steer, ask, stop, approve and continue tasks, and run flows and reviews. On a local server a task can run in any folder on the machine; recent folders are offered first. Repository… clones an https or ssh git URL with the machine's own git logins into `~/.coder/checkouts` and runs the task there.
|
|
31
|
+
|
|
32
|
+
- **Local**: every task on this machine, including those started with `coder task run`.
|
|
33
|
+
- **Cloud**: the workspace's tasks, from the dashboard, `coder task run --server` and platform events.
|
|
34
|
+
|
|
35
|
+
Local dashboard tasks open as soon as their worker starts. If the engine then fails to start, the task shows the failure and its output. `coder task run` still waits for startup and tries the next engine in its chain.
|
|
36
|
+
|
|
37
|
+
Archiving hides a task from the default list. A running task keeps running, and steering an archived task brings it back.
|
|
38
|
+
|
|
39
|
+
**Usage**: tasks, runner time and tokens per day, and the top agents.
|
|
40
|
+
|
|
41
|
+
**Settings**: what every task runs with.
|
|
42
|
+
|
|
43
|
+
- **Credentials**: the engine logins tasks run with.
|
|
44
|
+
- **Local**: this machine's `claude` and `codex` logins, with Sign in and Sign out running each CLI's own commands here.
|
|
45
|
+
- **Cloud**: encrypted personal and workspace [credentials](self-host.md#credentials).
|
|
46
|
+
- **Engines**, **Models** and **MCP**: engine defaults, models and MCP servers.
|
|
47
|
+
- **Local**: the user config, as `coder config`, `coder model` and `coder mcp add --user` edit it.
|
|
48
|
+
- **Cloud**: the workspace's config, which a repo's own `.coder/config.json` can only narrow.
|
|
49
|
+
- **Runners**: where tasks run, each with its own engine logins.
|
|
50
|
+
- **Local**: this machine.
|
|
51
|
+
- **Cloud**: the server's default runner plus the [runners](self-host.md#runners) you add. Personal runners are yours; workspace runners need an owner or admin. Secrets are encrypted.
|
|
52
|
+
|
|
53
|
+
Add a runner from the catalog in Settings → Runners. Your own machine pairs with one command, `coder runner serve --url <server> --token <token>`, behind a public HTTPS tunnel (`--runner-url`). The token lasts 15 minutes and works once. A paired machine calls home every minute and shows offline after five without one. Local and Docker kinds exist only on a local server.
|
|
54
|
+
|
|
55
|
+
A task runs on the runner it names, else its agent's runner, your default, the workspace default, then the server's own.
|
|
56
|
+
|
|
57
|
+
For GitHub Actions, save `coder server workflow` as `.github/workflows/coder-agent.yml` and select that file in the runner form. Its worker command is `coder agent run --task`; the task result comes back through the server callback. Job logs appear after GitHub archives them when the job finishes. For Vercel Sandbox, supply the team and project IDs, or set `VERCEL_TEAM_ID` and `VERCEL_PROJECT_ID` on the server. Sandbox logs stream while the task runs. See [runner setup](self-host.md#runners) for authentication and workflow inputs.
|
|
58
|
+
|
|
59
|
+
## Platform events
|
|
60
|
+
|
|
61
|
+
Agents answer GitHub, Slack and other platforms only when the platform can reach the server.
|
|
62
|
+
|
|
63
|
+
- **Local**: open a tunnel (`ngrok http 8787`, `cloudflared tunnel --url http://localhost:8787`, or VS Code's Ports panel set to Public) and restart with `PUBLIC_URL` set to the tunnel's URL. The tunnel serves only webhooks and app setup callbacks, never the dashboard or `/admin`.
|
|
64
|
+
- **Cloud**: platforms reach it at its own `PUBLIC_URL`.
|
package/docs/flows.md
CHANGED
|
@@ -42,9 +42,7 @@ A flow is an ordinary TypeScript module: import the primitives, use top-level `a
|
|
|
42
42
|
// .coder/flows/verify-wave.ts
|
|
43
43
|
import { task, pipeline, args } from '@wular/coder/flow';
|
|
44
44
|
|
|
45
|
-
export default await pipeline(args.clusters as string[], c =>
|
|
46
|
-
task(`Verify cluster ${c}.`),
|
|
47
|
-
);
|
|
45
|
+
export default await pipeline(args.clusters as string[], c => task(`Verify cluster ${c}.`));
|
|
48
46
|
```
|
|
49
47
|
|
|
50
48
|
## The primitives
|
|
@@ -55,23 +53,20 @@ Dispatch one coder task and await its result.
|
|
|
55
53
|
|
|
56
54
|
```ts
|
|
57
55
|
const r = await task('Explain the auth module', {
|
|
58
|
-
model: '
|
|
56
|
+
model: 'sol',
|
|
59
57
|
permissions: 'read-only',
|
|
60
58
|
});
|
|
61
59
|
r.output; // final message text
|
|
62
60
|
```
|
|
63
61
|
|
|
64
|
-
Options are the same as the `coder run` flags (`
|
|
62
|
+
Options are the same as the `coder run` flags (`engine`, `model`, `effort`, `permissions`, `name`, `system`, `resume`, `cwd`, and `addDirs` for `--add-dir` - see `coder run --help`), plus one of its own:
|
|
65
63
|
|
|
66
|
-
- `returns` - a zod schema for structured output instead of prose. The runtime
|
|
64
|
+
- `returns` - a zod schema for structured output instead of prose. The runtime passes the schema natively, validates the reply (one corrective retry on mismatch), and the parsed value lands on `r.data`:
|
|
67
65
|
|
|
68
66
|
```ts
|
|
69
|
-
const r = await task(
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
returns: z.object({ files: z.array(z.string()) }),
|
|
73
|
-
},
|
|
74
|
-
);
|
|
67
|
+
const r = await task('List every file that imports the legacy cache API.', {
|
|
68
|
+
returns: z.object({ files: z.array(z.string()) }),
|
|
69
|
+
});
|
|
75
70
|
|
|
76
71
|
r.data.files; // string[], validated
|
|
77
72
|
```
|
|
@@ -117,9 +112,7 @@ Prefer `pipeline` for anything multi-stage: fast items never wait for slow ones.
|
|
|
117
112
|
Use `Promise.all` for plain parallel batches:
|
|
118
113
|
|
|
119
114
|
```ts
|
|
120
|
-
const findings = await Promise.all(
|
|
121
|
-
areas.map(area => task(`Audit ${area}.`)),
|
|
122
|
-
);
|
|
115
|
+
const findings = await Promise.all(areas.map(area => task(`Audit ${area}.`)));
|
|
123
116
|
```
|
|
124
117
|
|
|
125
118
|
### `args`
|
|
@@ -202,6 +195,18 @@ The one rule this buys: **a flow must produce the same prompts on every run**. D
|
|
|
202
195
|
|
|
203
196
|
An explicit path (`coder flow run ./scratch/one-off.ts`) bypasses discovery entirely. `coder flow discover` shows every flow discoverable from where you stand.
|
|
204
197
|
|
|
198
|
+
### Built-in flows
|
|
199
|
+
|
|
200
|
+
Coder ships a few flows of its own; they resolve after the directories above, so a repo flow of the same name overrides them. `coder flow discover` lists them with scope `builtin`.
|
|
201
|
+
|
|
202
|
+
- `review`: the `coder review` code review. Args: `pr` (number or GitHub URL), `post` (comment on the PR), `base`/`head`/`since` (as the CLI flags), `engine`/`model`/`effort`. Returns `{ findings, summary }`. `coder flow run review --args '{"pr":42,"post":true}'`
|
|
203
|
+
|
|
204
|
+
### Flows run by an agent
|
|
205
|
+
|
|
206
|
+
An [agent](agents/index.md) runs a flow like any script: `coder flow run <name>` from its shell, inside its sandbox. It can run any flow, including one it writes during the task.
|
|
207
|
+
|
|
208
|
+
The tasks a flow starts can't exceed the agent's `permissions` (`read-only` < `workspace-write` < `auto`). A task without permissions inherits the agent's, and one asking for more fails before it starts. Platform actions, like the `review` flow's comments, run outside the sandbox, so no token enters it.
|
|
209
|
+
|
|
205
210
|
## CLI
|
|
206
211
|
|
|
207
212
|
```bash
|
package/docs/mcp.md
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# MCP
|
|
2
|
+
|
|
3
|
+
Give tasks tools of your own: an MCP server is saved once under `mcp` in `.coder/config.json`, then attached to a task by name. Nothing attaches unless asked, so the default run stays lean.
|
|
4
|
+
|
|
5
|
+
```sh
|
|
6
|
+
coder mcp add docs -- npx -y docs-mcp # stdio server: the command after --
|
|
7
|
+
coder mcp add linear --url https://mcp.linear.app/mcp # remote server; OAuth login happens in the engine on first use
|
|
8
|
+
coder run --mcp docs,linear "why do uploads fail after a rename?"
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Adding servers
|
|
12
|
+
|
|
13
|
+
| Command | Does |
|
|
14
|
+
| ------------------------------------------ | -------------------------------------------------------------------------------------------- |
|
|
15
|
+
| `coder mcp add <name> -- <command> [args]` | Stdio server. `--env K=V,...` sets its environment |
|
|
16
|
+
| `coder mcp add <name> --url <url>` | Remote server. `--header K=V,...` adds request headers, `--transport sse` for legacy servers |
|
|
17
|
+
| `coder mcp add-json <name> '<entry>'` | Paste an entry from any `.mcp.json`, Cursor `mcp.json`, or a vendor README as is |
|
|
18
|
+
| `coder mcp list`, `coder mcp rm <name>` | List and remove |
|
|
19
|
+
|
|
20
|
+
`add` takes `--tools a,b` to cap what the agent may call; `add-json` accepts a `tools` array in the entry. `add`, `add-json` and `rm` take `--user` to write `~/.coder` instead of the repo. Repo and user maps merge, repo wins on a name.
|
|
21
|
+
|
|
22
|
+
## Config shape
|
|
23
|
+
|
|
24
|
+
The entries are the `.mcp.json` convention shared by Claude Code, Cursor, Windsurf and Codex, so anything written for them drops in:
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{
|
|
28
|
+
"mcp": {
|
|
29
|
+
"docs": { "command": "npx", "args": ["-y", "docs-mcp"], "tools": ["search"] },
|
|
30
|
+
"sentry": {
|
|
31
|
+
"command": "npx",
|
|
32
|
+
"args": ["-y", "@sentry/mcp-server"],
|
|
33
|
+
"env": { "SENTRY_TOKEN": "${SENTRY_TOKEN}" }
|
|
34
|
+
},
|
|
35
|
+
"github": {
|
|
36
|
+
"url": "https://api.githubcopilot.com/mcp/",
|
|
37
|
+
"headers": { "Authorization": "Bearer ${GH_TOKEN}" }
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
| Key | Purpose |
|
|
44
|
+
| ------------------------ | ------------------------------------------------------------------- |
|
|
45
|
+
| `command`, `args`, `env` | Stdio server to spawn |
|
|
46
|
+
| `url`, `headers`, `type` | Remote server; `type` is `http` (streamable HTTP, default) or `sse` |
|
|
47
|
+
| `tools` | Allowlist of tool names; omit for every tool the server offers |
|
|
48
|
+
| `description` | What the server is for |
|
|
49
|
+
|
|
50
|
+
`${VAR}` and `${VAR:-default}` in any value expand from the environment when the server starts, so tokens never sit in the file.
|
|
51
|
+
|
|
52
|
+
## Attaching to a task
|
|
53
|
+
|
|
54
|
+
`--mcp` on `coder task run` (and `coder run`) takes names, `all`, or an inline JSON array of entries with a `name` field for one-off servers:
|
|
55
|
+
|
|
56
|
+
```sh
|
|
57
|
+
coder run --mcp docs "..."
|
|
58
|
+
coder run --mcp all "..."
|
|
59
|
+
coder run --mcp '[{"name":"tmp","command":"node","args":["server.js"]}]' "..."
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Claude gets the servers through `--mcp-config` with the allowlist as `mcp__<name>__<tool>`; Codex gets them as `mcp_servers.<name>` overrides with `enabled_tools`. Agents attach their integration tools the same way, so an agent never needs an entry here.
|
package/docs/models.md
CHANGED
|
@@ -8,27 +8,27 @@ Manage every model Coder can dispatch to. That means the built-in Codex and Clau
|
|
|
8
8
|
# local Ollama model, no key
|
|
9
9
|
coder model add qwen --base-url http://localhost:11434/v1 --model qwen2.5-coder:32b
|
|
10
10
|
|
|
11
|
-
# third-party provider via OpenRouter
|
|
12
|
-
coder model add kimi --base-url https://openrouter.ai/api/v1 --model moonshotai/kimi-k2
|
|
11
|
+
# third-party provider via OpenRouter, key read from the environment
|
|
12
|
+
coder model add kimi --base-url https://openrouter.ai/api/v1 --env-key OPENROUTER_API_KEY --model moonshotai/kimi-k2
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
`model add` saves the entry, probes the endpoint, and reports anything missing (unreachable URL, unset key env var, no codex). Change one later with `coder model update <name>`, drop it with `coder model remove <name>`. Flags:
|
|
16
16
|
|
|
17
|
-
| Flag
|
|
18
|
-
|
|
|
19
|
-
| `--base-url <url>` | OpenAI-compatible API base (e.g. `http://localhost:11434/v1`)
|
|
20
|
-
| `--model <id>`
|
|
21
|
-
| `--env-key <VAR>`
|
|
22
|
-
| `--workspace`
|
|
17
|
+
| Flag | Meaning |
|
|
18
|
+
| ------------------ | ---------------------------------------------------------------------------------------- |
|
|
19
|
+
| `--base-url <url>` | OpenAI-compatible API base (e.g. `http://localhost:11434/v1`) |
|
|
20
|
+
| `--model <id>` | the provider's model id (e.g. `qwen2.5-coder:32b`) |
|
|
21
|
+
| `--env-key <VAR>` | env var holding the API key; omit for keyless local endpoints |
|
|
22
|
+
| `--workspace` | write to `<repo>/.coder/config.json` instead of the user file |
|
|
23
23
|
|
|
24
24
|
## Use it
|
|
25
25
|
|
|
26
|
-
Anywhere a model name goes; together they form the `custom`
|
|
26
|
+
Anywhere a model name goes; together they form the `custom` engine:
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
29
|
coder run --model qwen "explain this repo" # per task
|
|
30
|
-
coder run --
|
|
31
|
-
coder config set
|
|
30
|
+
coder run --engine custom "explain this repo" # the custom engine (its default model, or the only one)
|
|
31
|
+
coder config set engines.custom.model qwen # default model for --engine custom
|
|
32
32
|
coder model list # list models + probe their endpoints
|
|
33
33
|
```
|
|
34
34
|
|
|
@@ -43,23 +43,37 @@ coder config set chain '["codex", "claude", "custom"]'
|
|
|
43
43
|
Built-ins are just pre-seeded aliases tied to an engine, so `coder model list`
|
|
44
44
|
shows them and your own aliases together, grouped per engine. Disable
|
|
45
45
|
any model name - a built-in, a custom model, an alias, or a raw engine slug
|
|
46
|
-
like `gpt-
|
|
46
|
+
like `gpt-6-astra` - without removing its configuration, then re-enable it
|
|
47
47
|
when needed; requests for a disabled model fail at dispatch:
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
|
-
coder model disable
|
|
51
|
-
coder model enable
|
|
50
|
+
coder model disable astra
|
|
51
|
+
coder model enable astra
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
Create an alias for an
|
|
54
|
+
Create an alias for an engine spec with `coder model alias fast codex:luna`
|
|
55
55
|
(effort can ride along: `coder model alias big claude:opus:high`); remove it
|
|
56
56
|
with `coder model unalias fast`. Aliases may reuse a built-in name, so
|
|
57
|
-
`coder model alias
|
|
58
|
-
`
|
|
57
|
+
`coder model alias luna codex:gpt-x` intentionally overrides the built-in
|
|
58
|
+
`luna`, and `model list` shows the override in its place.
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
The built-ins:
|
|
61
|
+
|
|
62
|
+
| Alias | Model | Use it for | Needs |
|
|
63
|
+
| -------- | --------------------- | -------------------------------- | -------------- |
|
|
64
|
+
| `luna` | `gpt-6-luna` (codex) | mechanical work | codex 0.156.1 |
|
|
65
|
+
| `sol` | `gpt-6.1-sol` (codex) | the default | codex 0.159.1 |
|
|
66
|
+
| `astra` | `gpt-6-astra` (codex) | the hardest work; costs the most | codex 0.154.0 |
|
|
67
|
+
| `sonnet` | `sonnet` (claude) | mechanical work | claude 2.1.197 |
|
|
68
|
+
| `opus` | `opus` (claude) | the default | claude 2.1.280 |
|
|
69
|
+
| `fable` | `fable` (claude) | the hardest work; costs the most | claude 2.1.257 |
|
|
70
|
+
|
|
71
|
+
A task on an older CLI still runs, with a warning to run `codex update` or
|
|
72
|
+
`claude update`.
|
|
73
|
+
|
|
74
|
+
Claude aliases pass through to the claude CLI, which resolves them to its
|
|
75
|
+
current model (`opus` is Claude Opus 5.5 today). Any full model id, such as
|
|
76
|
+
`gpt-5.6-sol` or `claude-sonnet-5`, also works as a pass-through.
|
|
63
77
|
|
|
64
78
|
## Config shape
|
|
65
79
|
|
|
@@ -70,10 +84,14 @@ engine alias, or a bare disable toggle for any model name):
|
|
|
70
84
|
```json
|
|
71
85
|
{
|
|
72
86
|
"models": {
|
|
73
|
-
"qwen": {
|
|
74
|
-
|
|
87
|
+
"qwen": {
|
|
88
|
+
"baseUrl": "http://localhost:11434/v1",
|
|
89
|
+
"model": "qwen2.5-coder:32b",
|
|
90
|
+
"envKey": "MY_KEY"
|
|
91
|
+
},
|
|
92
|
+
"fast": { "provider": "codex", "model": "gpt-6-luna" },
|
|
75
93
|
"big": { "provider": "claude", "model": "opus", "effort": "high" },
|
|
76
|
-
"
|
|
94
|
+
"astra": { "disabled": true }
|
|
77
95
|
}
|
|
78
96
|
}
|
|
79
97
|
```
|
package/docs/review.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Review
|
|
2
|
+
|
|
3
|
+
`coder review` runs one read-only review task over local changes or a pull request, checks every finding against the repository, and prints the ones that hold. With `--post` it comments inline on the pull request and keeps one sticky summary. A local review covers everything since the merge-base with the origin default branch, committed or not, and never touches the index or working tree.
|
|
4
|
+
|
|
5
|
+
```sh
|
|
6
|
+
coder review # local changes since the default branch
|
|
7
|
+
coder review --base main --path src # only src, against main
|
|
8
|
+
coder review --pr 42 --post # pull request 42, posted as comments
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Flags
|
|
12
|
+
|
|
13
|
+
| Flag | Meaning | Default |
|
|
14
|
+
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
|
|
15
|
+
| `--effort <level>` | Model reasoning effort and review depth: `low` reports critical and major defects, `medium` any defect, `high` also minor issues | Repository configuration, `medium` |
|
|
16
|
+
| `--base <ref>` | Older side of a local diff | Merge-base of `HEAD` and the origin default branch |
|
|
17
|
+
| `--head <ref>` | Newer side of a local diff, commits only | The working tree |
|
|
18
|
+
| `--pr <n \| url>` | Pull request number in the origin repo, or a GitHub pull request URL | Local diff |
|
|
19
|
+
| `--since <sha>` | Keep only pull request hunks changed after this commit | Head in the previous sticky summary |
|
|
20
|
+
| `--path <p>` | Review only this pathspec; repeatable | Everything |
|
|
21
|
+
| `--exclude <p>` | Leave this pathspec out; repeatable | Nothing |
|
|
22
|
+
| `--post` | Post inline comments and update the sticky summary; needs `--pr` | Print only |
|
|
23
|
+
| `--md` | Print Markdown | Enabled unless `--json` is used |
|
|
24
|
+
| `--json` | Print `{ findings, summary, runId }` | Disabled |
|
|
25
|
+
| `--engine <name>` | Engine for the review task | Repository configuration |
|
|
26
|
+
| `--model <alias\|slug>` | Model for the review task | Repository configuration |
|
|
27
|
+
| `--cwd <dir>` | Checkout to review | Current directory |
|
|
28
|
+
|
|
29
|
+
`--pr` cannot be combined with `--base` or `--head`, and `--json` cannot be combined with `--md`.
|
|
30
|
+
|
|
31
|
+
## Repository rules
|
|
32
|
+
|
|
33
|
+
The reviewer reads `AGENTS.md`, `CLAUDE.md`, and an optional `.coder/review.md` from the base commit, so a change cannot rewrite its own rules. Each file is capped at 32,000 characters.
|
|
34
|
+
|
|
35
|
+
## Submodules
|
|
36
|
+
|
|
37
|
+
Changed submodules are reviewed file by file under their path. Uninitialized ones, ones missing a needed commit, and nested repositories that are not submodules are skipped with a warning, and submodule findings are never posted inline.
|
|
38
|
+
|
|
39
|
+
## Exit codes
|
|
40
|
+
|
|
41
|
+
The command exits `0` when the review completes, even with findings, `1` when the diff, review, or posting fails, `3` when no engine starts, and `4` while a task awaits approval.
|